Skip to main content

A Cython Modbus TCP client with heartbeat and multi-connection management.

Project description

modbus-tcp-cython

一个 Cython 实现的 Modbus TCP 客户端模块。

支持:

  • Modbus TCP MBAP 组包和响应解析
  • 读保持寄存器,功能码 03
  • 读输入寄存器,功能码 04
  • 写单个保持寄存器,功能码 06
  • 写多个保持寄存器,功能码 10
  • 自定义 PDU 请求
  • 普通请求失败后自动重连重试
  • 后台心跳和自动重连
  • 多连接管理

安装

本地源码安装:

python -m pip install -U pip setuptools wheel Cython
python -m pip install .

强制重新安装本地源码:

python -m pip install --force-reinstall --no-build-isolation .

基本用法

from modbus_tcp import ModbusTcpClient

client = ModbusTcpClient(
    "192.168.180.18",
    26,
    timeout=5.0,
    debug=True,
    request_retries=1,
    request_retry_delay=0.2,
)

try:
    client.connect()
    values = client.read_holding_registers(
        unit_id=3,
        start_address=2,
        quantity=1,
    )
    print(values)
finally:
    client.close()

ModbusTcpClient

构造函数:

ModbusTcpClient(
    host,
    port=502,
    timeout=5.0,
    debug=False,
    request_retries=1,
    request_retry_delay=0.2,
)

参数:

  • host:Modbus TCP 服务端 IP
  • port:Modbus TCP 服务端端口,标准端口通常是 502
  • timeout:socket 连接和读写超时时间,单位秒
  • debug:是否打印 TX hex / RX hex
  • request_retries:普通请求失败后的自动重试次数,默认 1
  • request_retry_delay:重连后再次发送前的等待时间,单位秒

常用状态:

client.host
client.port
client.timeout
client.debug
client.is_connected
client.request_retries
client.request_retry_delay

连接管理

client.connect()

建立 TCP 连接。如果已经连接,会直接返回。

client.close()

关闭 TCP 连接,并停止心跳线程。

普通请求自动重连重试

普通读写请求默认支持自动重连重试。

流程:

发送请求
读取响应
如果超时或 socket 错误
关闭旧 socket
重新 connect
等待 request_retry_delay
重发请求
仍失败才抛异常

关闭自动重试:

client = ModbusTcpClient(
    "192.168.180.18",
    26,
    request_retries=0,
)

增加重试次数:

client = ModbusTcpClient(
    "192.168.180.18",
    26,
    request_retries=2,
    request_retry_delay=0.5,
)

注意:读请求重试通常安全。写请求如果设备已经执行但响应丢失,重试可能造成重复写入或重复动作。

读保持寄存器 03

values = client.read_holding_registers(
    unit_id=3,
    start_address=2,
    quantity=1,
)

对应 PDU:

03 00 02 00 01

返回:

[396]

读输入寄存器 04

values = client.read_input_registers(
    unit_id=3,
    start_address=0,
    quantity=2,
)

对应 PDU:

04 00 00 00 02

返回:

[123, 456]

写单个保持寄存器 06

value = client.write_single_register(
    unit_id=3,
    address=0x0006,
    value=20,
)

对应 PDU:

06 00 06 00 14

成功时返回写入值:

20

写多个保持寄存器 10

count = client.write_multiple_registers(
    unit_id=3,
    start_address=0x0010,
    values=[1, 2, 3],
)

成功时返回写入寄存器数量:

3

自定义 PDU

厂家自定义报文可以直接发送 PDU:

response_pdu = client.request_pdu(
    unit_id=0xFF,
    pdu=bytes.fromhex("03 00 70 00 00"),
    response_unit_id=0x01,
)

例如 RTU 文档写:

FF 03 00 70 00 00 CRC_L CRC_H

Modbus TCP 侧只需要传:

unit_id = FF
pdu     = 03 00 70 00 00
response_unit_id = 01

网关会把 TCP 的 Unit ID 转成 RTU 地址码,并自动补 RTU CRC。YX96R 的 FF 是厂家超级地址,响应 MBAP 中的 Unit ID 可能是设备实际地址,例如 01,因此这类请求需要显式传 response_unit_id

心跳

启动后台心跳:

client.start_heartbeat(
    unit_id=3,
    address=2,
    quantity=1,
    interval=10.0,
    max_failures=3,
    reconnect_attempts=3,
    reconnect_delay=2.0,
)

心跳会定时读取一个寄存器。连续失败达到 max_failures 后,会自动关闭连接并重连。

停止心跳:

client.stop_heartbeat()

查看心跳状态:

client.is_heartbeat_running()

如果心跳读取的是输入寄存器:

client.start_heartbeat(
    unit_id=3,
    address=0,
    quantity=1,
    use_input_registers=True,
)

多连接管理

from modbus_tcp import ModbusTcpManager

with ModbusTcpManager() as manager:
    manager.add_client(
        name="alarm_1",
        host="192.168.180.18",
        port=26,
        unit_id=3,
        timeout=5.0,
        debug=True,
        request_retries=1,
        request_retry_delay=0.2,
        heartbeat_address=2,
        heartbeat_interval=5.0,
        start_heartbeat=True,
    )

    values = manager.read_holding_registers(
        "alarm_1",
        start_address=2,
        quantity=1,
    )
    print(values)

ModbusTcpManager 常用接口

注册一路连接:

manager.add_client(
    name,
    host,
    port=502,
    unit_id=1,
    timeout=5.0,
    debug=False,
    request_retries=1,
    request_retry_delay=0.2,
    heartbeat_address=0,
    heartbeat_quantity=1,
    heartbeat_interval=10.0,
    heartbeat_max_failures=3,
    reconnect_attempts=3,
    reconnect_delay=2.0,
    use_input_registers=False,
    autoconnect=False,
    start_heartbeat=False,
)

连接管理:

manager.connect(name)
manager.close(name)
manager.connect_all()
manager.close_all()
manager.remove_client(name)

心跳管理:

manager.start_heartbeat(name)
manager.stop_heartbeat(name)
manager.start_all(connect=True, heartbeat=True)
manager.stop_all_heartbeats()

状态查询:

states = manager.states()

返回示例:

{
    "alarm_1": {
        "connected": True,
        "heartbeat_running": True,
    }
}

按连接名读写:

manager.read_holding_registers("alarm_1", 2, 1)
manager.read_input_registers("alarm_1", 0, 2)
manager.write_single_register("alarm_1", 0x0006, 20)
manager.write_multiple_registers("alarm_1", 0x0010, [1, 2, 3])
manager.request_pdu(
    "alarm_1",
    bytes.fromhex("03 00 70 00 00"),
    unit_id=0xFF,
    response_unit_id=0x01,
)

如果调用时不传 unit_id,会使用 add_client() 注册时配置的默认 unit_id

多路 Modbus TCP 转 RTU 网关

对于多路网关:

IP + TCP 端口 选择哪一路串口
Unit ID       选择这一路串口下面哪个 RTU 从站

例如:

192.168.180.18:5550 + Unit ID 1 -> HC0 串口上的 1 号从站
192.168.180.18:5551 + Unit ID 3 -> HC1 串口上的 3 号从站

异常

模块异常类:

from modbus_tcp import ModbusTcpError

示例:

try:
    client.read_holding_registers(3, 2, 1)
except ModbusTcpError as exc:
    print(exc)

常见异常:

  • modbus exception: function=0x83 code=0x02
  • connection closed by remote
  • transaction id mismatch
  • unit id mismatch
  • invalid byte count

调试建议

  1. 开启 debug=True 查看 TX hexRX hex
  2. 偶发超时时,优先调整 timeoutrequest_retriesrequest_retry_delay
  3. 后端是 RTU 网关时,轮询间隔不要太短。
  4. 同一个网关端口通常只允许一个 TCP 客户端连接。
  5. 如果同时启用心跳和业务轮询,注意串口总线压力。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modbus_tcp_cython-0.1.3.tar.gz (19.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

modbus_tcp_cython-0.1.3-cp314-cp314-win_amd64.whl (95.1 kB view details)

Uploaded CPython 3.14Windows x86-64

modbus_tcp_cython-0.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (766.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

modbus_tcp_cython-0.1.3-cp314-cp314-macosx_11_0_arm64.whl (115.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

modbus_tcp_cython-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl (118.5 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

modbus_tcp_cython-0.1.3-cp313-cp313-win_amd64.whl (93.4 kB view details)

Uploaded CPython 3.13Windows x86-64

modbus_tcp_cython-0.1.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (776.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

modbus_tcp_cython-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (114.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

modbus_tcp_cython-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl (118.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

modbus_tcp_cython-0.1.3-cp312-cp312-win_amd64.whl (93.5 kB view details)

Uploaded CPython 3.12Windows x86-64

modbus_tcp_cython-0.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (783.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

modbus_tcp_cython-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (115.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

modbus_tcp_cython-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl (119.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

modbus_tcp_cython-0.1.3-cp311-cp311-win_amd64.whl (95.3 kB view details)

Uploaded CPython 3.11Windows x86-64

modbus_tcp_cython-0.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (809.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

modbus_tcp_cython-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (117.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

modbus_tcp_cython-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl (121.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file modbus_tcp_cython-0.1.3.tar.gz.

File metadata

  • Download URL: modbus_tcp_cython-0.1.3.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for modbus_tcp_cython-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2d97fc67e3567959392bc33d661122e5684ab5cf628a0a9b9f0f21c9bf54f852
MD5 596b323b2d012d2d0cd698877d745bc5
BLAKE2b-256 ee4195ef974c4472f8dfc40740eb024ebf7c6d45ffdb8bc02175f5df72ef5a10

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3.tar.gz:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a9aaa611bcacf81ee2f78223bd18a51edfc2563a24c07382298ee8399a49da0c
MD5 1937e26f4b3e718a0cb8a65b347d09e8
BLAKE2b-256 8768625b8f15043bacd69369804d2b412b4300c05f307e520fcfd20d23b2376d

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b967fe86971ad4323d21013c9d6878d59c2b6f05a8b06fed7b585e0a83eaee21
MD5 ed57c6b82a22dd26860a4dac70413071
BLAKE2b-256 ea561811674b8835d3155e262a977439621de851306b26feb7faa2b51eb56a8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b990526746196c4a118c5b3bd77a74b70ac26f6f7ee3a50c3b671a7c7415a362
MD5 9332b9157ba56746d65620e1b0b910b5
BLAKE2b-256 af7aa02c5f6b5caded2574b3b52e07d636b94ab400f92195a63b5a678cc4de28

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 90bf1150a5c6c5112f33733c543a07c5f16b4294f75dddffb651bccfa08f95a3
MD5 3108b5db0f4e555793200660ec1546f6
BLAKE2b-256 6a9aa7bde2d34ff7077f414b5221842ca4131addd5fb370e307f953fbcf8ad56

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f66baa0565160230eced4308be50db09faab93aff38c5e3f45bd0eb5e1e9f3c4
MD5 c4e24be6e79ebb74647f57a14baf2022
BLAKE2b-256 8cdbd9c9c2fa90812be3137407a6baba49c978d4c3bbb434e256f1228988d70b

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9583cb6d458d9ecc3c461c8bd94d9c5d657b221e3c28f42a6cf082afaad3c446
MD5 1263d721013a0b053aa322729f4c56f5
BLAKE2b-256 7d952d9e4cfb366afec3d5a2735c293f1912c8e4f56417004b51d09a43b6bd01

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cc04b447085eef8269a8c7a81403b349fde366d8b181285208d0fcf53464226
MD5 c61a72036c79a6b4b92adff43b566127
BLAKE2b-256 631b6e25c2847206703bcd5624b0b5db9002d8fdd3d4ba721c32f10519567096

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6a9b49e6b0894172a6e84ef0970bfc2b044fe2731b642e88575eb66f8e95dbe5
MD5 1a558f1de637f26d88ea08f6261111b3
BLAKE2b-256 5f5505f5b55912a0d14e882a88ea8699575c072bc20238f53e83da95c76341bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1a4ccfe91e9e948cb0a1a46718c90928a27319af31905177f3f4f46647306cd6
MD5 bf09b3a949492965cb09646aa5cbcf5f
BLAKE2b-256 2110b0c111274f53cd692fa24136e67793e0eb01ffaf89aead272f7597c5e59a

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a0eea0e0eff0b4bf82a201efaa4b6fce614be2c2735fef2090e225e696ad253
MD5 dc0eda85c81263675e97aea6150339e8
BLAKE2b-256 cdc9ab1c45392ee531bb937b6fcdeb9438d6cf06d1c1b44893b7a1df7ad7abc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52af39118b7d2a5429645bbd5b9e5152a880731b6d87671cc66c442a1136497b
MD5 e2b00b2c7a5b07b5f8068f8483d43f6b
BLAKE2b-256 3bd2db7e7734f556acad394e9870f482ff3d4471632a4a4c319c07c9e40e076a

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b36c22d7d5924c855882ffaa1cb58f68c393cfbafeadf7243d545966ef6c5e02
MD5 69ddbe8c153f6e0b8d7ae8d5d241d6ac
BLAKE2b-256 9dd3fa6c0254dd5e589d86627c80be3698a49f0c18f0f60b3af0e8aeb8a41c9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 145290aa07fdd7b4db06d9cf55b56b6bc5fec662791170161b2238cd26ac6050
MD5 0091b062ac358a2723a7ad0499e295bb
BLAKE2b-256 757552a79243bf2542649d8cbb8e530b7010cfbd7202ddeb5c13457cba309091

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4681b92984c6b86bdb263ee3b7b6f3ab846daa956d42710d2bedf34df7b4fbd
MD5 78d93027b53971390841d20bf11cf8a4
BLAKE2b-256 f304dffc5c8f24849379bd1437be646f5868cf6ec92dd07e44d2d13c902ffcc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7751b8014e4226c685c32879f884156a6d990ae62667e2c2d3c760c6119a579
MD5 23c0e4cb3d2217adfd6b08f0e80e0890
BLAKE2b-256 653393a13d8f829c141cb4104fb12b788077e71cfb8c277a60ca6dd091a590e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modbus_tcp_cython-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for modbus_tcp_cython-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 69c40f6e93ed3896ebce3a16852c459bc1e94e1edb9ab773f32c177c0171701e
MD5 7489bc5f83999ef98269b50922ab3656
BLAKE2b-256 96d284a3eea732a9910a7a8fc7688bb1b6a41135fd32b45362a2a3a4dcbae34c

See more details on using hashes here.

Provenance

The following attestation bundles were made for modbus_tcp_cython-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on wangzihao223/modbus_tcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page