首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

西门子s7-200 SMART系列PLC基于Modbus TCP服务器的通信

「水电云」技术分享|西门子s7-200 SMART系列PLC基于Modbus TCP服务器的通信

一、引言

在应用西门子中小型PLC通信的时候,西门子目前主推的PLC比如s7-200 SMART PLC的CPU模块都自带有网口和RS485口,可以非常方便的组网。除了RS485口能定义Modbus RTU通信,网口也能定义Modbus TCP通信。

二、ModbusTCP服务器通信

Modbus TCP通信,使得Modbus RTU协议运行于以太网,Modbus TCP使用TCP/IP和以太网在站点间传送Modbus报文,Modbus TCP结合了以太网物理网络和网络标准TCP/IP以及以Modbus作为应用协议标准的数据表示方法。Modbus TCP通信报文被封装于以太网TCP/IP数据包中。

2.1 配置PLC为ModbusTCP服务器

西门子s7-200SMART系列PLC,如CPU型号为CPU ST40,集成有一个RS485口和一个网口,可以方便的组态为串口或自由口通信,比如Modbus RTU;而STEP 7-Micro/WIN SMART V2.2 和S7-200 SMART CPU 固件V2.2的发布,S7-200 SMART CPU开始支持TCP通信。

如图1所示,在STEP 7-MicroWIN SMART软件中配置PLC的硬件组态,CPU行选择相应型号,EM0开始选择扩展模块。CPU ST40(DC/DC/DC)集成有24点输入和16点输出。

2.2 Modbus TCP通信程序编写

在STEP 7-MicroWIN SMART中将硬件组态下载至PLC,也可以连带程序一并下载。通信程序包括添加指令库,调用通信指令,及通信指令编程。

2.2.1添加指令库MB_Server_0

首先要确定CPU和编程软件的版本是否支持Modbus TCP通信,硬件如图1所示,软件如图2所示,保证两者的版本都在V02.02以上。

其次确定指令库是否更新有支持Modbus TCP通信的指令库,注意库文件夹Open User Comm Test下的TCP_CONNECT(如图3)并不是指Modbus TCP。

一般没有支持Modbus TCP通信的指令库,需要购买并添加,当然可以去网上下载网友共享出来的该指令库。

STEP 7-Micro/WIN SMART库文件夹一般存储路径为C:UsersPublic DocumentsSiemensSTEP 7-MicroWIN SMARTLib(如图5),将下载的格式为smartlib的库文件拷入该路径下,然后进行添加(如图4)。

重启编程软件,可以看见“MB_Server_0”指令库已经被添加到项目树的库节点下(如图4),此外还可以添加客户端指令库“MB_Client_0”。

2.2.2在程序中调用通信指令

MBS_Connect指令用于建立或断开Modbus TCP连接;MBS_Slave指令用于处理来自Modbus TCP客户端的请求,并且该指令必须在每次扫描时执行,以便检查和响应 Modbus 请求。指令块的接口参数的类型和定义及功能,可按F1获取系统帮助。

2.3 Modscan32通信测试

至此,已经完成了Modbus TCP服务器的通信设置和编程,接下来就可以连接通信口开始数据包的测试了。

相比于众多的串口调试工具小软件需要手动发送报文,解析接收到的报文以此来判断通信是否正常,Modscan32,可以非常方便简单地测试Modbus通信。为测试PLC的Modbus TCP服务器通信,在调试工具做如图7设置。

如图8,Modscan32软件界面03功能码的地址40001-40010分别写入1.11、2.22、3.33、4.44、5.55,注意浮点数占用两个字,且西门子PLC浮点数双字需要交换高低字(如图11红框)。

在PLC侧,在编程软件中监视状态表VD1000~VD1016,对应40001~40010的数值,如图9所示。

交换读写,如图10、11。通过简单测试,可以说明s7-200 SMART PLC通过Modbus TCP服务器通信配置正确,编程没有问题,通信正常。

三、总结

西门子PLC的通信设置较为复杂,尤其是非以太网或自由口通信,需要调用通信指令,定义通信模式,设置通信参数和数据收发区。

对于西门子中小型PLC s7-200 SMART,其CPU模块都自带有网口和RS485口,可以非常方便的组网。除了RS485口能定义Modbus RTU通信,网口也能定义Modbus TCP通信。

在实际工程应用中,当CPU的一个端口(RS485)被触摸屏占用时,本文提供了另外一个网口配置成Modbus TCP服务器进而与上位机通信的解决方案,希望对大家有所启发和帮助。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181206G0ADIF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券