modbus TCP通讯 从站 读写主站数据 python
时间: 2024-11-09 07:31:02 浏览: 21
Modbus TCP是一种工业通信协议,常用于自动化控制系统中,特别是PLC(可编程逻辑控制器)与上位机(如PC、服务器)之间的数据交换。在Python中,可以使用第三方库如`pymodbus`来进行Modbus TCP通信。
作为从站(Slave),你需要首先安装并导入`pymodbus`库,然后按照以下步骤操作:
1. **初始化连接**:
```python
from pymodbus.client.sync import ModbusTcpClient
client = ModbusTcpClient('your_host_ip', port=502) # 指定主站IP和端口,默认为502
```
2. **连接到主站**:
```python
if client.connect(): # 如果连接成功,返回True
print("Connected to Modbus server.")
else:
print("Failed to connect.")
```
3. **读取数据**:
```python
function_code = 3 # Function code for reading holding registers (HR)
address = 0 # 要读取的寄存器地址
quantity = 10 # 需要读取的寄存器数
result = client.read_holding_registers(address, quantity)
data = result.registers
```
4. **写入数据**:
```python
function_code = 6 # Function code for writing single coil (SC) or holding register (HR)
address = 100 # 写入的寄存器地址
value = 123 # 需要写入的数据
client.write_register(address, value)
```
5. **断开连接**:
```python
client.close()
print("Disconnected from Modbus server.")
```
阅读全文