图15 通讯连接建立
下面以S7-400单站系统及ModSim32软件为例,详细介绍如何将S7-400单站系统配置为Client,ModSim32为Server进行Modbus TCP通讯,在本例中同样使用FC10“AG_CNTRL”版本的功能块,由于客户端和服务器模式均使用相同的功能块,因此客户端功能块库的程序结构及各功能块完成的功能可以参考图5。
本例中所用的硬件设备如下表:
名称 |
数量 |
订货号 |
S7-400电源模块PS 407 10A |
1 |
6ES7407-0KA01-0AA0 |
S7-400 CPU414-3PN/DP |
1 |
6ES7414-3EM05-0AB0(V5.2) |
S7-400 CP443-1 |
1 |
6GK7443-1EX41-0XE0(V1.0) |
S7-400 机架 |
1 |
6ES7400-1JA00-0AA0 |
网线 |
若干 |
|
笔记本电脑 |
1 |
|
表4 客户端硬件清单
所用到软件如下表:
名称 |
订货号 |
STEP7 V5.5 组态编程软件 英文版 |
|
“ ModbusTCP CP V4.3” 软件选项包 |
2XV9450-1MB00 |
ModSim32 免授权版本 |
可从网上免费获取 |
表5 客户端软件清单
打开Step7软件,新建一个工程项目文件,命名为“M_TCP_CP_V43(Client)”, 在项目下插入一个S7-400站,如下图16所示:
图16 新建S7-400 Station
双击插入的SIMATIC 400 Station的“Hardware”,打开硬件组态,在硬件组态界面下分别插入机架,电源PS407、CPU414-3PN/DP、CP443-1,本例中将CP的IP地址设为192.168.70.2,如下图17所示:
图17 硬件组态并设置CP443-1的IP地址
打开Netpro网络组态,选中CPU414-3PN/DP,插入一个新连接,连接伙伴为Unspecified,连接类型为TCP Connection,如下图18所示:
图18 网络组态-新建TCP connection
打开连接属性对话框中的“General Inbation”,由于CP443-1做Client主动发起连接,因此需要勾选“Active connection estabishment”选项,ID保持缺省即可,在“Address”栏中同样由于CP443-1做Client,对于本地的端口号设置为2000(一般从2000以外开始以避免与别的协议资源冲突),对于通讯伙伴Remote的IP地址设置为测试PC机的IP 地址,本例中 PC机的IP设置为192.168.70.245,而Port号设置为502,如下图19所示:
图19 S7-400为客户端的TCP connection参数设置
组态完成后,编译保存,将例程站点“SIMATIC 400(Client)”中的程序(System data不需要拷贝)拷贝到该项目中并下载(注意:OB100中调用的FB108的id和laddr需根据组态确认)。
关于服务器和端口号的设置请参考本文中2.2章节说明。
由于“ModbusTCP CP V4.3”选项包支持功能码FC1,2,3,4,5,6,15,16,不同的功能码测试过程中类似,因此下面同样以FC03(读写保持寄存器)为例来说明通讯测试的整个过程,对于其他功能码的测试将不再重复描述。
需要说明的是由于客户端功能块需要定义具体的功能码,而主功能块FB108 “MODBUSCP”并没有直接的管脚来定义功能码,而是由其中的两个参数“DATA_TYPE”和“single-write”共同决定(参见后面的管脚参数说明),详细情况如下图20所示: