扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

MODBUS-TCP通信远程模块的使用分享(1)

3小时前
213
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

购买一个支持MODBUS-TCP通信的模块,下图为它的外观,品牌为艾莫迅,它支持较多的通信方式;有一个网口、两路串口、多路模量量收入输出、还可作通信协议转换。

模块接线说明:

ModBus TCP通信要求:

1.设备间连线:用网线相连;

2.通信规则:分客户端和服务端,服务端是一直在线的,如需通信则由客户端发起。所以根据需求确认通信设备各自充当的角色;

3.通信参数:需有指定的IP地址、端口(一般为502)、站号;

4.读写地址:MODBUS通信地址,即有位地址和寄存器地址(字16位);手册会说明对应的内容。

本例是以西门子1200系列PLC作为客户端,对模块的输入进行读取来说明MODBUS-TCP通信。

西门子1200PLC的MODBUS-TCP通信指令,有作为客户端的,有作为服务端的,主要是分是主动通信还是被动通信。主动通信方为客户端。

模块的输入输出地址与485地址的对应关系;如需读出输入通道0.0到0.7的状态,则需读10001到10008的8个位的状态。

拖入作为客户端的指令时会自己创建DB块,保存该指令的相关数据和参数。

设置通信单元的ID为1。此项相当重要!

指令引脚的手册官方解释,用自己的理解翻译一下。

指令引脚的手册官方解释,自己的理解翻译一下。

指令引脚的手册官方解释,自己的理解翻译一下。

如下图:

EN引脚作为指令执行使能;

REQ引脚,用10Hz的系统时钟来触发,1秒触发10次;

DISCONNECT引脚,0为建立连接、1为不连接;

MB_MODE引脚是0时为读操作,是1时为写操作。

建立一个数组,用来存储接收过来的数据,这里是读对方输入信号的状态,用位的数组,共8位。当为写时,就是存在这8位的值写到对方指定的地址上。所以是用指针式的数据,即从哪个地址开始的多少位。

命名为tcp01的BOOL数组,共8位,把该数据优化块的访问去掉,编译后有指定的偏移地址。

MB_DATA_ADDR引脚为MODBUS的读写地址,指PLC在MODBUS通信中规定的地址,此地址为标准的地址,大家的设备会按这个地址在内部进行映射,即一一对应。

MB_DATA_LEN引脚是指要从MB_DATA_ADDR的地址开始读多少个地址。对下图的引脚进行说明:读取服务端从10001开始的8个位状态,存储在刚创建的数组上。

指令的后面CONNECT引脚为通信参数引脚,有较多内容,在下一节说明。

本人在东莞从事教育培训行业,欢迎广大工控爱好的朋友一起学习,共同进步。如有想进一步了解和交流,加小编微信进工控学习群。同时欢迎关注转发,让学习智能制造更进一步。

相关内容:

串口通信之RS485 Modbus(RTU)(1) 

串口通信之RS485 Modbus(RTU)案例(2) 

串口通信之RS485 Modbus(RTU)案例(3) 

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录