0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

S7-300/400集成PN口MODBUS TCP通讯(STEP7)

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-05-29 14:23 次阅读

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

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

2)由于需要在SIMATIC站与其他通讯伙伴之间建立TCP连接用于Modbus通讯,而对于CPU的集成PN口来说使通过Open IE(开放式以太网通讯)的方式来建立TCP连接,因此需要调用SIMATIC S7标准功能块,包括FB63(TSEND)、FB64(TRCV)、FB65(TCON)、FB66(TDISCON)完成TCP的连接管理和数据通讯。

需要注意的是对于用于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,具体可以根据实际的项目情况来进行调整,详细地内容将在下面的配置章节中详细描述。

43304f84-fc13-11ed-90ce-dac502259ad0.png

图1 Modbus TCP Wizard起始界面

435fb3fa-fc13-11ed-90ce-dac502259ad0.jpgModbus TCP Wizard的相关信息及下载可以参考以下连接:关于创建 Modbus TCP 通信所需连接数据的向导 (Modbus TCP Wizard)

当将软件选项包安装完集成到Step7时,可以在Step7安装文件的相应目录中找到块库、例程、英文手册,如下图2~4所示,在实际的项目调试过程中由于例子程序的各项功能比较完善,因此可以直接使用例子程序根据项目的实际情况修改相应的参数即可,可以节省大量的参数设置时间,以下主要描述了使用软件选项包” ModbusTCP PN-CPU V2.6"配置S7-300/400站基于CPU集成PN口进行Modbus TCP通讯的详细配置和编程步骤。

4370f6b0-fc13-11ed-90ce-dac502259ad0.png

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

43a61ebc-fc13-11ed-90ce-dac502259ad0.png

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

43f16cb4-fc13-11ed-90ce-dac502259ad0.png

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

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

下面以S7-400单站系统及Modscan32软件为例,详细介绍如何将S7-400单站系统通过CPU集成PN口配置为Server,Modscan32为Client进行Modbus TCP通讯,下图5为服务器功能块库的程序结构及各功能块完成的功能:

44400874-fc13-11ed-90ce-dac502259ad0.png

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

注:Modscan32软件可以从网上免费下载得到,本例中使用的版本为V7.0版,由于各版本的功能不尽相同,因此需要注意版本问题。

2.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

表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所示:

44af2010-fc13-11ed-90ce-dac502259ad0.png

图6新建S7-400 Station

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

44f96f30-fc13-11ed-90ce-dac502259ad0.png

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

硬件组态完成后,编译保存,并将例程站点“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“来完成初始化,其中各参数的含义如下图8、9所示:

454780c6-fc13-11ed-90ce-dac502259ad0.png

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

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

类型 参数 含义
OPEN IE
通讯参数
block_length 固定值W#16#40
Id 连接ID,用于FB63/64/65/66
connection_type 取决于CPU类型,用于FB65(TCON)
TCP(兼容模式): CPU315、317<= FWV2.3                W#16#01;
TCP:CPU315,317>= FW V2.4、IM151-8PN/DP CPU、CPU314C、CPU319、CPU412、CPU414与CPU416
W#16#11
active_est 主动或被动连接:
S7作Client时为主动TRUE
S7作Server时为被动FALSE
local_device_id 取决于CPU类型:
IM151-8PN/DPB#16#1
CPU314C、315、317B#16#2
CPU319B#16#3
CPU412、414、416B#16#5
local_tsap_id_len local_device_id的长度:
主动连接时W#16#0
被动连接时W#16#2
rem_subnet_id_len 未使用
rem_staddr_len 参数rem_staddr的长度:
未具体定义连接B#16#0
有具体连接B#16#4
rem_tsap_id_len rem_tsap_id的长度:
主动连接时W#16#2
被动连接时W#16#0
next_staddr_len 通讯接口类型选择:
通过外部CP模块:非0的其它值
通过CPU的集成PN口:W#16#0
local_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
rem_subnet_id 未使用
rem_staddr 通信伙伴的IP地址,与参数connection_type有关,以192.168.0.1为例:
1)connection_type=B#16#01时
rem_staddr[1]= B#16#01(1),
rem_staddr[2]= B#16#00(0)
rem_staddr[3]= B#16#A8(168)
rem_staddr[4]= B#16#C0(192)
rem_staddr[5-6]=B#16#00(为IPV6预留)
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
next_staddr CP的机架号和槽号,当使用CPU的PN口时为B#16#00

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

45a969da-fc13-11ed-90ce-dac502259ad0.png

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

2.3 通讯测试

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

461f779c-fc13-11ed-90ce-dac502259ad0.png

表4 Modbus数据类型

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

46510212-fc13-11ed-90ce-dac502259ad0.png

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

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

打开Modscan32软件,在“Connection--->connect”中打开连接属性对话框,连接接口选择“Remote TCP/IP Server”,IP Address分别填入CPU的IP地址192.168.70.2,Service为远程服务器的端口502,在协议的选择对话框中可以定义传输模式、通讯超时响应时间,报文发送间隔及允许写多个保持寄存器等,这里分别保持缺省设置即可,如下图11所示:

46c97ea4-fc13-11ed-90ce-dac502259ad0.png

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

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

46f7041e-fc13-11ed-90ce-dac502259ad0.png

图12 Modscan32中Modbus数据参数定义

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

47295090-fc13-11ed-90ce-dac502259ad0.png

图13本例中的数据区定义

47636eb0-fc13-11ed-90ce-dac502259ad0.png

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

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

4818898a-fc13-11ed-90ce-dac502259ad0.png

图15通讯连接建立

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

下面以S7-400单站系统及ModSim32软件为例,详细介绍如何将S7-400单站系统CPU的集成PN口配置为Client,ModSim32为Server进行Modbus TCP通讯,由于客户端和服务器模式均使用相同的功能块,因此客户端功能块库的程序结构及各功能块完成的功能可以参考图5。

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所示:

48737a52-fc13-11ed-90ce-dac502259ad0.png

图16新建S7-400 Station

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

48c20be0-fc13-11ed-90ce-dac502259ad0.png

图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所示:

491a1db2-fc13-11ed-90ce-dac502259ad0.png

图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所示:

4951a142-fc13-11ed-90ce-dac502259ad0.png

图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所示:

49730472-fc13-11ed-90ce-dac502259ad0.png

图20 ModSim32中设置端口号

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

49a03d0c-fc13-11ed-90ce-dac502259ad0.png

图21 ModSim32中Modbus数据参数定义

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

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

49c30e9a-fc13-11ed-90ce-dac502259ad0.png

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

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

由于是通过PC测试软件interwetten与威廉的赔率体系 第三方设备与SIMATIC CPU的集成PN口进行Modbus TCP通讯,因此在实际的第三方设备与CPU的集成PN口进行通讯时需要注意以下几点:

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

2)对于SIMATIC S7,参数DB_x的数据区建议使用不同的DB块,使用同一个DB的不同地址区会造成地址编排混乱,另外参数Start_xEND_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所示:

4a439786-fc13-11ed-90ce-dac502259ad0.png

图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所示:

4a833436-fc13-11ed-90ce-dac502259ad0.png

图24CPU诊断缓冲区报错

4aa82566-fc13-11ed-90ce-dac502259ad0.png

图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所示:

4af32c3c-fc13-11ed-90ce-dac502259ad0.png

图26确认IDENT_CODE的偏移地址

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

4b4700be-fc13-11ed-90ce-dac502259ad0.png

图27确认IDENT_CODE

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

5.2 通过拨打西门子授权服务中心申请注册码REG_KEY

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

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

5.3 通过网站申请注册码REG_KEY

1、通过西门子威廉希尔官方网站 支持网站申请,打开如下网址,点击“威廉希尔官方网站 问题提交”:

https://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo2&aktprim=99&lang=zh

4b984f0a-fc13-11ed-90ce-dac502259ad0.png

图28威廉希尔官方网站 支持网站

2、请按如下示例的步骤进行操作(注意:由于步骤3搜索出来的参考信息无法解决授权问题,请直接点击“继续”进入步骤4),如图29~33所示。

4be11a28-fc13-11ed-90ce-dac502259ad0.png

图29步骤1

4c4423de-fc13-11ed-90ce-dac502259ad0.png

图30步骤2

4c6c260e-fc13-11ed-90ce-dac502259ad0.png

图31步骤3

4ca13de4-fc13-11ed-90ce-dac502259ad0.png

图32步骤4

4ce0fd26-fc13-11ed-90ce-dac502259ad0.png

图33步骤5

5.4 使用注册码REG_KEY

1、西门子授权中心收到威廉希尔官方网站 支持申请后,将会尽快给您回复邮件;

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

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

4d1fecb6-fc13-11ed-90ce-dac502259ad0.png

图34输入注册码

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

4d48e8e6-fc13-11ed-90ce-dac502259ad0.png

图35注册码激活成功

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

STATUS(Hex) 故障原因 处理措施
参数STATUS_MODBUS代码含义
A001 数据块DB(MODBUS_PARAM)长度过短 修改DB长度
A002 参数END_x小于Start_x 修改参数END_x大于Start_x
A003 Modbus地址映射的DB块的数据区长度太短,最低长度:
-寄存器:
(START_ADDRESS – start_x + LENGTH) * 2
-位
(START_ADDRESS – start_x + LENGTH) / 8
其他可能的原因:
·参数初始化错误(CPU为Client时)
·客户端请求报文时错误的地址区域(CPU为Server时)
扩展DB区域
当CPU为Client时:
修改参数START-ADDRESS或者LENGTH
当CPU为Server时:
修改客户端的请求
A004 仅在CP为Client时才有此故障:
参数DATA_TYPE及WRITE_READ设置不匹配,不可能对输入寄存器或离散输入进行写操作
修改此两个参数
A005 CP为Client时:
参数LENGTH设置无效
CP为Server时:
Client请求的寄存器号无效,合法的数据类型范围如下:
读线圈/离散输入: 1 to 2000
写线圈: 1 to 1968
读寄存器: 1 to 125
写保持寄存器: 1 to 123
CPU为Client时:
修改参数LENGTH
CPU为Server时:
修改Client请求的寄存器地址
A006 CP为客户端时:
数据区1-8中对应的Modbus地址范围(DATA_TYPE,
START_ADDRESS和LENGTH
)不存在
CP为服务器时:
客户端请求的报文不正确
CPU为Client时:
修改参数DATA_TYPE,START-ADDRESS或者LENGTH
CPU为Server时:
修改Client请求或修改参数data_type_x
A007 CPU为Client时:
参数RECV_TIME或CONN_TIME时间设置无效,RECV_TIME最少20ms, CONN_
TIME为100ms
修改此两参数
A009 仅在CPU为Client时发生,标示符TI与发送方不一致,连接中断 修正通讯伙伴的报文
A00A CPU为Client时:
接收参数UNIT与发送的不一致
A00B CPU为Client时:
接收与发送功能码不一致
CPU为Server时:
无效的功能码被接收
CPU为Client时:
检查通讯伙伴的数据报文格式
CPU为Server时:
注意FB MODBUSPN仅支持功能码FC01,02,03,04,05,06、15,16
A00C 接收到的字节长度与寄存器地址+不匹配,连接中断 检查通讯伙伴的数据报文格式
A00D 仅在CPU为Client时发生:
响应的MODBUS寄存器地址与请求的不一致
A00E MODBUS报文报头的长度与寄存器地址不匹配,FB将忽略
A00F 非0的协议标示符被接收,通讯中断
A010 参数DB1-DB8中有重复使用的DB块 修改为单独的DB
A011 参数DATA_TYPE设置无效(范围为1-4) 修改该参数
A012 数据区参数data_type_1和data_type_2设置重叠 统一类型的寄存器地址不能有叠加情况
A013 数据区参数data_type_1和data_type_3设置重叠
A014 数据区参数data_type_1和data_type_4设置重叠
A015 数据区参数data_type_1和data_type_5设置重叠
A016 数据区参数data_type_1和data_type_6设置重叠
A017 数据区参数data_type_1和data_type_7设置重叠
A018 数据区参数data_type_1和data_type_8设置重叠
A019 当参数data_type_x设置不为0时,db_x被赋值0 DB块号不能为0
A01A Modbus报头中错误的长度(1-253字节有效) 检查通讯伙伴的数据报文格式
A01F FB MODBUSPN处于无效的连接状态 联系产品支持
A023 数据区参数data_type_2和data_type_3设置重叠 统一类型的寄存器地址不能有叠加情况
A024 数据区参数data_type_2和data_type_4设置重叠
A025 数据区参数data_type_2和data_type_5设置重叠
A026 数据区参数data_type_2和data_type_6设置重叠
A027 数据区参数data_type_2和data_type_7设置重叠
A028 数据区参数data_type_2和data_type_8设置重叠
A034 数据区参数data_type_3和data_type_4设置重叠
A035 数据区参数data_type_3和data_type_5设置重叠
A036 数据区参数data_type_3和data_type_6设置重叠
A037 数据区参数data_type_3和data_type_7设置重叠
A038 数据区参数data_type_3和data_type_8设置重叠
A045 数据区参数data_type_4和data_type_5设置重叠
A046 数据区参数data_type_4和data_type_6设置重叠
A047 数据区参数data_type_4和data_type_7设置重叠
A048 数据区参数data_type_4和data_type_8设置重叠
A056 数据区参数data_type_5和data_type_6设置重叠
A057 数据区参数data_type_5和data_type_7设置重叠
A058 数据区参数data_type_5和data_type_8设置重叠
A067 数据区参数data_type_6和data_type_7设置重叠
A068 数据区参数data_type_6和data_type_8设置重叠
A078 数据区参数data_type_7和data_type_8设置重叠
A079 参数ID在DB(MODBUS_PARAM)中未定义 修改参数ID
A07A 无效的参数ID(ID值范围为1-4095)
A07B 参数ID在DB(MODBUS_PARAM)中存在2次 修改DB块DB(MODBUS_PARAM)
A07C 参数data_type_x无效(范围1-4)
A07D 参数data_type_1未定义,data_type_1为缺省的使用数据区,需要定义
A07E 参数DB_x与DB(MODBUS_PARAM)或FB102的背景DB号冲突
A07F FB102接口参数PARAM_DB错误,非通讯参数DB 指定正确的DB给接口参数PARAM_DB
A080 数据块DB(MODBUS_PARAM)更改但没有执行CPU重起 数据块DB(MODBUS_PARAM)需要初始化,当更改时需要CPU重起
A081 CP为Client且使用FC05功能码时:
接收的线圈状态与发送不一致
通过抓包工具来分析和修正通讯伙伴的报文
A082 CP为Client且使用FC06功能码时:
接收的寄存器值与发送不一致
通过抓包工具来分析和修正通讯伙伴的报文
A083 仅在CP为Client时:在上一个请求还没有处理完成时又发送新的请求 等待DONE =TRUE或ERROR = TRUE后再发送新请求
A084 授权码”IDENT_CODE”不能识别 联系产品支持
A085 在授权期间由于无效的写权限导致发生错误 对于授权DB,确认参数REG_KEY的结构是否正确
A090 功能块未授权,此为一状态信息,参数ERROR并不会置1,功能块在未授权情况仍然可以运行而不影响通讯 针对CPU读出预授权解码,之后按照授权操作向IT4industry.部门索取授权码
A091 收到异常响应码1(仅在Client模式),连接将终止和重新建立 通讯伙伴不支持请求的报文
A092 收到异常响应码2(仅在Client模式),无效的或不存在的地址请求 确认参数LENGTH或START_ADDRESS
是否正确
A093 收到异常响应码3(仅在Client模式) 通讯伙伴无法执行报文接收(例如请求长度不支持等)
A094 收到异常响应码4(仅在Client模式) 通讯伙伴无法执行报文接收
A095 收到未知的异常响应码(仅在Client模式) 通过抓包工具来分析和修正通讯伙伴的报文
参数STATUS_CONN代码含义
A100 CONN_TIME与RECV_TIME时间超出,RECV_TIME超出时连接终止 检查连接参数
A101 参数TDISCON的监控时间超出 联系产品供应商
SFC6/20故障代码
7xxx 请参考SIMATIC的在线帮助 通过在线帮助SIMATIC manager -> mark block -> key F1 –> Ethernet -> see also -> code evaluation可以查到相关帮助信息
8xxx 请参考SIMATIC的在线帮助 通过在线帮助SIMATIC manager -> mark block -> key F1 –> Ethernet -> see also -> code evaluation可以查到相关帮助信息
FB63,64,65,66故障代码
7xxx 请参考SIMATIC的在线帮助 通过在线帮助SIMATIC manager -> mark block -> key F1 –> Ethernet -> see also -> code evaluation可以查到相关帮助信息
8xxx 请参考SIMATIC的在线帮助 通过在线帮助SIMATIC manager -> mark block -> key F1 –> Ethernet -> see also -> code evaluation可以查到相关帮助信息
SFC24故障代码
80A1 DB=0或超出了CPU允许的范围 选择有效的DB
80B1 DB块在CPUU中不存在 DB_x参数中的DB块必须创建并下载到CPU中
80B2 DB块被创建为“Unlinked”类型 DB块不能创建为“Unlinked”类型

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8580

    浏览量

    151029
  • MODBUS
    +关注

    关注

    28

    文章

    1801

    浏览量

    76957
  • 通讯
    +关注

    关注

    9

    文章

    902

    浏览量

    34890
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79056
  • S7-300
    +关注

    关注

    8

    文章

    225

    浏览量

    34292

原文标题:S7-300/400集成PN口 MODBUS TCP 通讯(STEP7)

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子s7-300s7-400集成PNs7通信

    本文对S7-300s7-400集成PNs7通信作了基本介绍,对其配置步骤以及编程方法作了完
    发表于 10-11 16:35 14次下载
    西门子<b class='flag-5'>s7-300</b>和<b class='flag-5'>s7-400</b><b class='flag-5'>集成</b><b class='flag-5'>PN</b><b class='flag-5'>口</b>的<b class='flag-5'>s7</b>通信

    S7-1200与S7-300 PN/S7-400 PN UDP STEP7通信

    S7-1200 与 S7-300 PN 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在双方 CPU 调用通信-开放式用户通信TSEND_C,TRCV_C(1200支
    的头像 发表于 04-11 10:15 4552次阅读

    使用S7-1200与S7-300集成DP接口进行主从通信

    第二种情况:CPU 1214C 和 S7-300 CPU 使用 Step7 V12 不在一个项目中的操作。CPU 1214C 使用 Step7 V12,而 S7-300 CPU 分别使
    的头像 发表于 04-19 10:57 4635次阅读

    如何将S7-400单站系统通过CPU集成PN配置

    配置S7-400单站系统通过CPU集成PN作为Server进行Modbus TCP
    的头像 发表于 07-11 11:27 1922次阅读

    STEP7 5.5中对S7-300 CPU程序的上载过程

    本文简要讲解在STEP7 5.5中对S7-300 CPU程序的上载过程,S7-400 CPU 的上载方法与此相同,可作参考。
    的头像 发表于 07-15 10:39 1w次阅读

    S7-300 PN CPU之间的TCP通信(STEP7)

    SIMATIC S7- PN CPU包含一个集成的 PROFINET 接口,该接口除了具有 PROFINET I/O功能外还具有 TCP 通信功能。通过该
    的头像 发表于 11-23 09:51 4786次阅读

    S7-400作为PROFINET IO控制器(STEP7

    S7-400集成PN和CP443-1均可作为PROFINET IO控制器。本文以CPU 414-3 PN/DP作为IO设备,分别阐述以CP
    的头像 发表于 12-16 11:35 2004次阅读

    S7-300集成DPS7-200的DP主从通信设计实现

    S7-300S7-200通过EM277 进行PROFIBUS DP通讯,需要在STEP7中进行S7-300站组态,在
    的头像 发表于 01-29 16:14 4530次阅读

    STEP7 5.5中对S7-300 CPU程序的上载过程

    本文简要讲解在STEP7 5.5中对S7-300 CPU程序的上载过程,S7-400 CPU 的上载方法与此相同,可作参考。
    的头像 发表于 02-12 15:01 4085次阅读

    S7-300/400集成PN MODBUS TCP通讯(TIA)

    下面以S7-300单站系统及Modbus Slave软件为例,详细介绍如何将S7-300单站系统CPU的集成PN
    的头像 发表于 03-08 11:24 7266次阅读

    S7-400集成PN如何进行Modbus TCP通讯呢?

    打开Step7软件,新建一个工程项目文件,命名为“M_TCP_CPU_V26(Client)”, 在项目下插入一个S7-400
    的头像 发表于 04-03 09:49 2729次阅读

    S7-300/400的CPx43-1 MODBUS TCP通讯案例

    该功能块库可以用于S7-300单站通过CP343-1或S7-400单站通过CP443-1进行ModbusTCP通讯
    的头像 发表于 05-31 11:12 4890次阅读
    <b class='flag-5'>S7-300</b>/<b class='flag-5'>400</b>的CPx43-1 <b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b><b class='flag-5'>通讯</b>案例

    天拓分享:西门子plc S7-300/400系列的PLC通讯

    今天看一下西门子plc S7-300/400系列的PLC通讯。西门子plc S7-400s7-300之间进行以太网通信的时候,
    的头像 发表于 08-03 16:35 4103次阅读
    天拓分享:西门子plc <b class='flag-5'>S7-300</b>/<b class='flag-5'>400</b>系列的PLC<b class='flag-5'>通讯</b>

    浅谈S7-300 CPU集成PN配置的Modbus TCP通讯威廉希尔官方网站

    S7-300单站系统及Modbus Slave软件为例,详细介绍如何将S7-300单站系统CPU的集成PN
    发表于 10-17 15:36 3102次阅读
    浅谈<b class='flag-5'>S7-300</b> CPU<b class='flag-5'>集成</b><b class='flag-5'>PN</b><b class='flag-5'>口</b>配置的<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>通讯</b>威廉希尔官方网站

    S7-1200集成PN接口MODBUS TCP通信概述

    软件 STEP7 V11 SP1版本开始,S7-1200CPU 从Firmware V1.0.2开始,不再需要安装Modbus TCP的库文件,可以直接调用
    的头像 发表于 10-29 17:24 6621次阅读
    <b class='flag-5'>S7</b>-1200<b class='flag-5'>集成</b><b class='flag-5'>PN</b>接口<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b>通信概述