Modbus是一种用于串行通信的工业协议,用于连接PLC、传感器、执行器等设备。在Modbus通信中,线圈是一种用于存储和读取开关状态的数据类型。要编程多个线圈,可以使用Modbus的写多个线圈(Write Multiple Coils)功能码,即功能码0x01。
```python
from pymodbus.client.sync import ModbusTcpClient
创建Modbus客户端连接
client = ModbusTcpClient('localhost')
连接到Modbus服务器
client.connect()
读取从线圈地址0开始的10个线圈的状态
starting_address = 0
quantity = 10
response = client.read_coils(starting_address, quantity)
读取的结果将保存在response.bits属性中
for i, bit_value in enumerate(response.bits):
print(f"Coil {i}: {bit_value}")
释放Modbus连接
client.close()
```
在这个示例中,我们首先导入了pymodbus库的ModbusTcpClient模块,并创建了一个Modbus TCP客户端连接。然后,我们使用`client.connect()`方法连接到Modbus服务器。接下来,我们使用`client.read_coils()`方法读取从线圈地址0开始的10个线圈的状态。最后,我们遍历`response.bits`属性以获取每个线圈的状态,并使用`client.close()`方法释放Modbus连接。
请注意,这个示例假设Modbus服务器正在本地主机(localhost)上运行,并且监听TCP端口502。在实际应用中,您需要根据您的Modbus服务器的实际地址和端口进行相应的修改。