通过modbus tcp 和台达PLC通信测试记录
一, 准备工作安装台达梯形图软件 “WPLSoft”
http://downloadcenter.delta-china.com.cn/DownloadCenter?v=1&q=WPL&sort_expr=cdate&sort_dir=DESC
2.硬件连接
2.1 电脑网卡 连接PLC以太网, IP设为192.168.1.x网段,PLC默认IP为192.168.1.5.
2.2 PLC 供电24V, S/S输入公共端接GND,UP0/ZP0输出驱动电源的端口接GND / 24V
2.3 在 PLC X0输入触点, 对地接一个测试按钮,用于逻辑测试。
二, 编写梯形图
确保PLC上电,网线插上,电脑IP正确,能ping通PLC:192.168.1.5,打开WPLSoft,按下图操作,连接。
扫描后会出现PLC,点击下载通信按钮,进入梯形图
写一个简单测程序,测试 X , Y , M , C 等功能,下一步进行Modbus TCP测试,获取这些数据。
三,使用 Modbus Poll 软件直接读取
打开 Modbus Poll 设置IP,端口是默认就行
台达DVP26SE 规格书内 通信地址如下:
设置后可以获取到 X , Y , M , C
四,使用 使用Python 的 pyModbusTCP 库读取
# 需要安装 pip3 install pyModbusTCP
from pyModbusTCP.client import ModbusClient
# PLC 默认IP是192.168.1.5,端口502
client = ModbusClient(host="192.168.1.5", port=502, auto_open=True,timeout = 2)
#读取物理输入触点X,地址400;输出触点Y,地址500
x = client.read_discrete_inputs(0x400,10)
y = client.read_coils(0x500,10)
#测试读写逻辑触点M,地址800
m_write = client.write_single_coil(0x800,0)
m_read = client.read_coils(0x800,bit_nb=1)
#测试读C数据寄存器
c = client.read_holding_registers(0xE00,10)
if x:
print("X0~X9:",x)
else:
print("x read error")
if y:
print("Y0~Y9:",x)
else:
print("Y read error")
if m_write:
print("M0 Write Success")
else:
print("M0 Write error")
if m_read:
print("M0 Read:",m_read)
else:
print("M0 Read error")
if c:
print("C0~C9:",c)
else:
print("C0~C9 read error")
运行, 打印输出 ,对比和软件实时监控一致。
完
完整图片内容: https://blog.csdn.net/cqy1028/article/details/129828634
页:
[1]