配置S7-400单站系统通过CPU集成PN口作为Server进行Modbus TCP通讯
下面以S7-400单站系统及Modscan32软件为例,详细介绍如何将S7-400单站系统通过CPU集成PN口配置为Server,Modscan32为Client进行Modbus TCP通讯,下图11为服务器功能块库的程序结构及各功能块完成的功能:
S7-400系统及Modscan32软件组态
打开Step7软件,新建一个工程项目文件,命名为“M_TCP_CPU_V26 (Server)”, 在项目下插入一个S7-400站,如下图12所示:
图12:新建S7-400 Station
双击插入的SIMATIC 400 Station的“Hardware”,打开硬件组态,在硬件组态界面下分别插入机架,电源PS407、CPU414-3PN/DP,本例中将CPU的PN口IP 地址设为192.168.70.2,如下图13所示:
硬件组态完成后,编译保存,并将例程站点“SIMATIC 400(Server)”中的程序(System data不需要拷贝)拷贝到该项目中。
由于需要在SIMATIC站与其他通讯伙伴之间建立TCP连接用于Modbus通讯,而对于CPU的集成PN口来说须通过Open IE(开放式以太网通讯)的方式来建立TCP连接,通过S7-CPU的 PROFINET接口进行 Modbus TCP 通信时,需要使用通信块 FB65 “TCON”、FB66 “TDISCON”、FB63 “TSEND”和 FB64 “TRCV”,要进行 Modbus TCP 通信,必须在数据块中为每个连接指定相应的参数,相应得参数在程序中主要由DB2“MODBUS_PARAM“来完成初始化,其中各参数的含义如下图14、15所示:
3.3 通讯测试
由于“ ModbusTCP PN-CPU V2.6”选项包支持功能码FC1,2,3,4,5,6,15,16,不同的功能码测试过程中类似,因此下面以FC03(读写保持寄存器)为例来说明通讯测试的整个过程,对于其他功能码的测试将不再重复᧿述,对于Modbus的数据类型可参考下表4:
由于服务器主功能块FB102“MODBUSPN”的参数需要初始化,因此分别在OB100及OB1中调用FB102,在OB100中调用FB102完成相关参数的初始化,FB102的管脚分布如下图16所示:
打开Modscan32软件,在“Connection---》connect”中打开连接属性对话框,连接接口选择“Remote TCP/IP Server”,IP Address分别填入CPU的IP 地址192.168.70.2,Service为远程服务器的端口502,在协议的选择对话框中可以定义传输模式、通讯超时响应时间,报文发送间隔及允许写多个保持寄存器等,这里分别保持缺省设置即可,如下图17所示:
下载硬件组态及程序到CPU中,将DB2“MODBUS_PARAM”的参数“server_client”使能为1,在 Modscan32 的“Set up-》Data Definition”中设置数据扫᧿周期、寄存器连接类型、起始地址、长度等,如下图18所示:
由于Modbus的内部地址编排时基于数据链路层和应用层有一定的映射关系,因此Modbus的地址与SIMATIC中的DB块的地址时按照一定的地址映射关系来相对应,这样造成了DB块中有一定的地址偏移量,在本例中假设数据区的定义如下图19所示,其DB偏移量、Modbus物理编址、应用层编址如下图20所示:
在Step7的项目程序中新建一个变量监控表,插入需要监控的参数和数据区变量,可以看到Modscan32软件与CPU414-3PN/DP的数据通讯已经建立起来了,双方可以进行正常的保持寄存器数据读写操作,如下图21所示:
原文标题:Modbus TCP 作为Server(主)实例
文章出处:【微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !