SIMATIC S7-1500 Modbus TCP通讯

描述

SIMATIC S7-1500 Modbus TCP通讯 

很多工业现场的 Modbus TCP 通信应用中,常常需要一个 P LC控制器通过Modbus TCP 作为客户端访问多个服务器,且客户端和服务器之间都有读和写操作的应用需求。如图 1-1 所示,一个作为客户端的 C PU A连接了作为服务器的C PU B 和C PU C,此连接关系中,C PU A将占用两个 TCP连接资源,C PU B 和CPU C将分别占用一个 TCP连接资源。 

MODBUS

本文以此为例子,说明客户端中该如何配置连接参数,如何简单的编程实现对两个服务器的访问。例子中的要求如下图所示: 

MODBUS

调用多个客户端指令的方法 

例程调用结构 

OB1 调用分别连接 CPU B 的FC1 和连接 CPU C的F C2,FC1和FC2同时调用,无需轮询。需要注意:对于同一个连接中调用的多个 MB_C lient ,要求背景数据块相同,指令引脚 CONNECT关联的数据类型为“T CON_IP_V4”的参数必须为同一个。如图 2-1 所示:

 MODBUS

FC1 中调用了 3 次MB_C lient ,利用 C PU属性中设置的时钟脉冲,每 0 .5 s 激活一次连续访问,根据图 1-2 所示,为“读——>写——>读”的操作。 

FC2 中调用了 2 次MB_C lient ,利用 C PU属性中设置的时钟脉冲,每 0 .5 s 激活一次连续访问,根据图 1-2 所示,为“读——>写”的操作。 

C PU A/B/C中,对于数据类型为“T CON_IP_V4”的连接参数,如图 2-2 所示: 

MODBUS

程序的执行过程 

以FC1程序块为例,该程序块为 CPU A访问 C PU B的连续操作(读——>写——>读),当TCP连接建立后,利用 CPU的时钟脉冲,每隔 0 .5 s 触发一次第一个MB_Client 指令的 REQ进行读操作,然后,利用其输出的 D ONE和ERROR触发第二个 MB_Client 指令的 REQ进行写操作,最后,利用第二个 MB_Client输出的 D ONE和ERROR 触发第三个 MB_Client 指令的 REQ进行读操作,(注意:本例中为 0 .5 s 触发一次连续的操作,而在实际的项目中,请根据实际的读/写操作次数和访问数据量,调整触发间隔,保证读/写操作都能正常完成);图 2-3 所示: 

MODBUS

C PU A访问CPU C的连续操作(读——>写),同 CPU A访问 C PU B的连续操作类似,这里不再复述。 

通讯测试 

使用上述方法对同一个 Modbus  TCP 连接,实现多个访问操作,以下是 CPU A对CPU B做的“读——>写——>读”的操作,如图 3-1 所示: 

MODBUS

注:本文中作为 server 的两台 CPU不局限于西门子的 PLC,也可以是第三方的作为modbus TCP 服务器的设备,例如智能仪表,第三方控制器,PC中运行的modsim32测试工具。 






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分