配置S7-400单站系统通过CPU集成PN口作为Client进行Modbus TCP通讯
下面以S7-400单站系统及ModSim32软件为例,详细介绍如何将S7-400单站系统CPU的集成PN口配置为Client,ModSim32为Server进行Modbus TCP通讯,由于客户端和服务器模式均使用相同的功能块.
4.2 S7-400单站系统与ModSim32软件组态
打开Step7软件,新建一个工程项目文件,命名为“M_TCP_CPU_V26(Client)”, 在项目下插入一个S7-400站,如下图所示:
双击插入的SIMATIC 400 Station的“Hardware”,打开硬件组态,在硬件组态界面下分别插入机架,电源PS407、CPU414-3PN/DP,本例中将CPU的PN口IP 地址设为192.168.70.2
由于需要在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”来完成初始化.
连接类型要设置为Client主动
硬件组态完成后,编译保存,并将例程站点“SIMATIC 400(Client)”中的程序(Systemdata不需要拷贝)拷贝到该项目中。
打开DB2“MODBUS_PARAM”并切换到数据视图,修改需要访问的Modbus TCP server的IP 地址和端口号,本例中作为服务器的电脑IP 为192.168.70.245,端口号为502.
rem_staddr: 通信伙伴的IP地址,与参数connection_type有关,以192.168.0.1为例:
2)connection_type= B#16#11时
rem_staddr[1]= B#16#C0(192)
rem_staddr[2]= B#16#A8(168)
rem_staddr[3]= B#16#00(0)
rem_staddr[4]= B#16#01(1)
rem_staddr[5-6]=B#16#00(为IPV6预留)
rem_tsap_id远程连接TSAP号,与参数connection_type有关
1)connection_type= B#16#01时
local_tsap_id[1] 本地连接端口号的低字节[16进制]
local_tsap_id[2] 本地连接端口号的高字节[16进制]
local_tsap_id[3-16] B#16#00
2)connection_type=B#16#11时
local_tsap_id[1] 本地连接端口号的高字节[16进制]
local_tsap_id[2] 本地连接端口号的低字节[16进制]
local_tsap_id[3-16] B#16#00
通讯测试
由于“ModbusTCP PN-CPU V2.6”选项包支持功能码FC1,2,3,4,5,6,15,16,不同的功能码测试过程中类似,因此下面同样以FC03(读写保持寄存器)为例来说明通讯测试的整个过程,对于其他功能码的测试将不再重复述。
需要说明的是由于客户端功能块需要定义具体的功能码,而主功能块FB102“MODBUSPN”并没有直接的管脚来定义功能码,而是由DB2“MODBUS_PARAM”中的两个参数“DATA_TYPE”和 “single-write”共同决定.
由于客户端和服务器均使用相同的功能块FB102“MODBUSPN”的参数需要初始化,因
此分别在OB100及OB1中调用FB102,在OB100中调用FB102完成相关参数的初始化。
打开ModSim32软件,在“Connection--->connect”中打开连接属性对话框,连接接口选择“Modbus/TCP svr”,TCP/IP Server Port为本地服务器的端口502.
下载硬件组态及程序到CPU中,将DB2“MODBUS_PARAM”的参数“server_client”使能为0,给参数ENQ_ENR发送脉冲信号;在打开的ModSim32软件窗口设置寄存器连接类型、起始地址、长度等.
在Step7的项目程序中新建一个变量监控表,插入需要监控的参数和数据区变量,可以看到ModSim32软件与CPU414-3PN/DP的数据通讯已经建立起来了,双方可以进行正常的保持寄存器数据读写操作(读写权限由参数"WRITE_ READ"决定)
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !