ModbusTCP PN-CPU V2.6块库使用说明

网友投稿 477 2022-11-28

ModbusTCP PN-CPU V2.6块库使用说明

1)该功能块库可以用于S7-300/400单站系统或ET200S带CPU的接口模块通过CPU的集成PN口进行ModbusTCP通讯。

需要注意的是对于用于Modbus TCP的功能块FB63/64/65/66有一定的版本要求如下:

FB63(TSEND) V2.1或更高

FB64(TRCV) V2.2或更高

FB65(TCON) V2.4或更高

FB66(TDISCON) V2.1或更高

3)通过S7-CPU的PROFINET接口进行Modbus TCP通信时,需要使用通信块FB65 "TCON"、FB66 "TDISCON"、FB63 "TSEND"和FB64 "TRCV",要进行Modbus TCP通信,必须在数据块中为每个连接指定相应的参数,因此通过Modbus TCP Wizard向导软件,可以非常便捷地指定各连接的参数,通过Modbus TCP Wizard,只需指定各连接类型所需的相应参数,之后,该向导将包含有连接描述的所有参数的DB导入到STEP 7项目中,向导的安装界面如下图1所示,另外通过软件包安装集成到Step7后也有参数DB,具体可以根据实际的项目情况来进行调整,详细地内容将在下面的配置章节中详细描述。

图1 Modbus TCP Wizard起始界面

图2块库、例程、英文手册和软件注册的文件夹位置

图3例程(注:当找不到例程时可以通过”Browse..”按钮来进行查找)

图4功能块库(注:当找不到块库时可以通过”Browse..”按钮来进行查找)

2. 配置S7-400单站系统通过CPU集成PN口作为Server进行Modbus TCP通讯

图5服务器功能块库程序结构

2.1例子中使用的硬件设备及软件

本例中所用的硬件设备如下表:

表1服务器硬件清单

所用到软件如下表:

名称 订货号
STEP7 V5.5组态编程软件英文版
“ ModbusTCP PN-CPU V2.6”软件选项包 2XV9450-1MB02
Modscan32 V7.0

表2服务器软件清单

2.2 S7-400系统及Modscan32软件组态

打开Step7软件,新建一个工程项目文件,命名为“M_TCP_CPU_V26 (Server)”,在项目下插入一个S7-400站,如下图6所示:

图6新建S7-400 Station

图7硬件组态并设置PN接口的IP地址

硬件组态完成后,编译保存,并将例程站点“SIMATIC 400(Server)”中的程序(System data不需要拷贝)拷贝到该项目中。

图8 DB2“MODBUS_PARAM“的TCP连接参数设置部分

关于DB2“MODBUS_PARAM”的TCP连接参数含义如下表3所示:

表3 DB2“MODBUS_PARAM”的TCP连接参数含义

图9 DB2“MODBUS_PARAM”的Modbus参数设置部分

2.3 通讯测试

表4 Modbus数据类型

由于服务器主功能块FB102“MODBUSPN”的参数需要初始化,因此分别在OB100及OB1中调用FB102,在OB100中调用FB102完成相关参数的初始化,FB102的管脚分布如下图10所示:

图10 FB102“MODBUSPN”的管脚参数定义

注意:在图16中已经填写的参数不需要初始化,在OB1调用赋值;而未填写的参数需要初始化,在OB100中调用完成。

图11对应TCP通讯的Modscan32连接窗口

下载硬件组态及程序到CPU中,将DB2“MODBUS_PARAM”的参数“server_client”使能为1,在Modscan32的“Set up->Data Definition”中设置数据扫描周期、寄存器连接类型、起始地址、长度等,如下图12所示:

图12 Modscan32中Modbus数据参数定义

由于Modbus的内部地址编排时基于数据链路层和应用层有一定的映射关系,因此Modbus的地址与SIMATIC中的DB块的地址时按照一定的地址映射关系来相对应,这样造成了DB块中有一定的地址偏移量,在本例中假设数据区的定义如下图19所示,其DB偏移量、Modbus物理编址、应用层编址如下图14所示:

图13本例中的数据区定义

图14 DB偏移量、Modbus物理编址、应用层编址对应关系

在Step7的项目程序中新建一个变量监控表,插入需要监控的参数和数据区变量,可以看到Modscan32软件与CPU414-3PN/DP的数据通讯已经建立起来了,双方可以进行正常的保持寄存器数据读写操作,如下图15所示:

图15通讯连接建立

3.配置S7-400单站系统通过CPU集成PN口作为Client进行Modbus TCP通讯

3.1例子中使用的硬件设备及软件

本例中所用的硬件设备如下表:

名称 数量 订货号
S7-400电源模块PS 407 10A 1 6ES7407-0KA01-0AA0
S7-400 CPU414-3PN/DP 1 6ES7414-3EM05-0AB0(V5.2)
S7-400机架 1 6ES7400-1JA00-0AA0
网线 若干
笔记本电脑 1

表5客户端硬件清单

所用到软件如下表:

名称 订货号
STEP7 V5.5组态编程软件英文版
“ ModbusTCP PN-CPU V2.6”软件选项包 2XV9450-1MB02
ModSim32免授权版本可从网上免费获取

表6:客户端软件清单

3.2 S7-400单站系统与ModSim32软件组态

打开Step7软件,新建一个工程项目文件,命名为“M_TCP_CPU_V26(Client)”,在项目下插入一个S7-400站,如下图16所示:

图16新建S7-400 Station

双击插入的SIMATIC 400 Station的“Hardware”,打开硬件组态,在硬件组态界面下分别插入机架,电源PS407、CPU414-3PN/DP,本例中将CPU的PN口IP地址设为192.168.70.2,如下图17所示:

图17硬件组态并设置CPU的IP地址

由于需要在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”来完成初始化,关于DB2“MODBUS_PARAM”各参数的含义请参见2.2章节中的图8、9说明。

硬件组态完成后,编译保存,并将例程站点“SIMATIC 400(Client)”中的程序(System data不需要拷贝)拷贝到该项目中。打开DB2“MODBUS_PARAM”并切换到数据视图,修改需要访问的Modbus TCP server的IP地址和端口号,本例中作为服务器的电脑IP为192.168.70.245,端口号为502;设置方式如下图18所示:

图18 S7-400单站系统做客户端时不同的功能码的参数定义

3.3通讯测

由于“ModbusTCP PN-CPU V2.6”选项包支持功能码FC1,2,3,4,5,6,15,16,不同的功能码测试过程中类似,因此下面同样以FC03(读写保持寄存器)为例来说明通讯测试的整个过程,对于其他功能码的测试将不再重复描述。

需要说明的是由于客户端功能块需要定义具体的功能码,而主功能块FB102“MODBUSPN”并没有直接的管脚来定义功能码,而是由DB2“MODBUS_PARAM”中的两个参数“DATA_TYPE”和“single-write”共同决定,详细情况如下图19所示:

图19 S7-400单站系统做客户端时不同的功能码的参数定义

由于客户端和服务器均使用相同的功能块FB102“MODBUSPN”的参数需要初始化,因此分别在OB100及OB1中调用FB102,在OB100中调用FB102完成相关参数的初始化,FB102的管脚分布参见2.3章节中图10的说明。

打开ModSim32软件,在“Connection--->connect”中打开连接属性对话框,连接接口选择“Modbus/TCP svr”,TCP/IP Server Port为本地服务器的端口502,如下图20所示:

图20 ModSim32中设置端口号

下载硬件组态及程序到CPU中,将DB2“MODBUS_PARAM”的参数“server_client”使能为0,给参数ENQ_ENR发送脉冲信号;在打开的ModSim32软件窗口设置寄存器连接类型、起始地址、长度等,如下图21所示:

图21 ModSim32中Modbus数据参数定义

关于SIMATIC中DB偏移量、Modbus物理编址、应用层编址对应关系请参考本文中2.3章节图14的说明。

在Step7的项目程序中新建一个变量监控表,插入需要监控的参数和数据区变量,可以看到ModSim32软件与CPU414-3PN/DP的数据通讯已经建立起来了,双方可以进行正常的保持寄存器数据读写操作(读写权限由参数"WRITE_ READ"决定),如下图22所示:

图22 S7-400单站系统作为客户端与ModSim32软件通讯

4.“ModbusTCP PN-CPU V2.6” 软件包通讯使用总结及相关注意事项

1)由于订货号2XV9450-1MB02程序中会占用CPU较大的装载和工作存储区,因此对于性能比较低特别是S7-300的低端CPU进行通讯时必须考虑一定的富余量。

2)对于SIMATIC S7,参数DB_x的数据区建议使用不同的DB块,使用同一个DB的不同地址区会造成地址编排混乱,另外参数Start_x与END_x参数不能出现地址叠加情况。

3)第三方设备的数据区与SIMATIC S7的数据DB块的地址对应关系可以先按照第三方的数据区域Modbus地址的偏移关系之后计算相应的偏移量。

4)建议使用项目中的样例程序,只须修改连接ID,定义通讯双方的IP地址、端口号及相应的数据存储区等,能减少编程量,只须把样例程序放到一个单独的FC块中即可,样例程序中定义了足够的数据区,连接成功及错误次数指示等。

5)Modbus TCP每一包的数据最多只能发送125个寄存器或2000个比特位,超过该范围必须进行分包处理。

6)S7-300/400作为Client能与多少个Server建立通讯或者作为Server时能与多少个Client通讯取决于产品所支持的TCP连接数,Modbus/TCP协议并没有对此进行约束和限制。

7)如果使用SIMATIC S7作为Modbus服务器,那么一些CPU的可用端口号会受到限制,以下端口号可用于本地端口,如下图23所示:

图23 SIMATIC作为Modbus服务器的端口号使用限制

详细情况可参考以下FAQ连接:哪些通信口可以进行 Modbus/TCP 通讯,作为 Modbus 服务器的 SIMATIC S7 CPU 可以与多少个 Modbus 客户端通信?

5 “ModbusTCP PN-CPU V2.6” 软件包授权

未经授权的Modbus TCP软件可用于测试和学习,不允许用于商业行为;未经授权的软件测试时CPU的INTF指示灯红色闪烁,并在CPU故障缓冲区生成错误信息;同时,Modbus TCP功能块报错,如图24、25所示:

图24CPU诊断缓冲区报错

图25Modbus TCP功能块报错A090

每个CPU都需要对功能块MODBUSPN进行授权。授权有两个步骤:读取IDENT_CODE和申请注册码REG_KEY。且在CPU中必须调用OB121。

5.1 读取IDENT_CODE

1、下载程序并将CPU切换到RUN模式;

2、打开MODBUSPN(FB102)的背景块DB102,确认IDENT_CODE的偏移地址为54;如图26所示:

图26确认IDENT_CODE的偏移地址

3、打开变量监视表,输入DB102.DBB54开始的20个字节,偏移地址56开始的18个字符即为IDENT_CODE,监控如图27所示:

图27确认IDENT_CODE

4、按上图方式,获取IDENT_CODE和软件包装上的License-No,并按照章节6.2和6.3的描述步骤申请注册码。

授权中心联系方式:010-64757575

通过西门子授权服务中心申请注册码时,需要您提供所购买的软件订货号、IDENT_CODE和软件包装上的License-No,如图27所示。

5.3 通过网站申请注册码REG_KEY

1、通过西门子技术支持网站申请,

图28技术支持网站

图29步骤1

图30步骤2

图31步骤3

图32步骤4

图33步骤5

5.4 使用注册码REG_KEY

1、西门子授权中心收到技术支持申请后,将会尽快给您回复邮件;

2、当获取到注册码后,在项目中打开LICENSE_DB(DB3);

3、通过菜单“View--->Data View”将DB块切换到数据视图模式,将获取的17位注册码填写到“Actual value”中,如图34所示。

图34输入注册码

4、将LICENSE_DB(DB3)下载到CPU中,CPU的INTF指示灯熄灭;并可通过查看MODBUSPN(FB102)的输出引脚LICENSED为true且不再报A090错误代码,确认注册码激活成功,如图35所示。

图35注册码激活成功

6. CPU集成PN口进行Modbus TCP通讯FB输出常见故障代码及处理

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:puzzle(006.1)平面划分问题HDU 1249 三角形
下一篇:ArcGIS道路空间指数的计算详解(附矢量练习数据)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~