产品简介
长沙6ES7392-1AJ00-0AA0西门子模块 PLC
长沙6ES7392-1AJ00-0AA0西门子模块 PLC
产品价格:¥10
上架日期:2019-02-24 12:09:12
产地:德国
发货地:长沙
供应数量:不限
最少起订:1台
浏览量:246
资料下载:暂无资料下载
其他下载:暂无相关下载
详细说明

    长沙   西门子   6ES7392-1AJ00-0AA0   模块 PLC  

     

     

     

     

    Modbus TCP通信概述

    MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见它覆盖了使用TCP/IP协议的“Intranet”“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC’sI/O模块,以及连接其它简单域总线或I/O模块的网关服务的。

    MODBUS/TCP 使MODBUS_RTU协议运行于以太网,MODBUS TCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址。

    1. 通讯所使用的以太网参考模型

    Modbus TCP传输过程中使用了TCP/IP以太网参考模型的5层:

    第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容

    第二层:数据链路层,格式化信号到源/目硬件址数据帧

    第三层:网络层,实现带有32IPIP报文包

    第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度

    第五层:应用层,Modbus协议报文

    2. Modbus TCP数据帧

    Modbus数据在TCP/IP以太网上传输,支持Ethernet II802.3两种帧格式Modbus TCP数据帧包含报文头、功能代码和数据3部分MBAP报文头(MBAPModbus Application ProtocolModbus应用协议)4个域,共7个字节,如图1所示

    1 MODBUS TCP报文

    由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS应用协议报文头中。

    3. Modbus TCP使用的通讯资源端口号

    Modbus服务器中按缺省协议使用Port 502 通信端口Modbus客户器程序中设置任意通信端口,为避免与其他通讯协议的冲突一般建议2000开始可以使用

    4. Modbus TCP使用的功能代码

    按照使用的通途区分共有3种类型分别为:

    1) 公共功能代码:已定义好功能码,保证其唯一性,由Modbus.org认可;

    2) 用户自定义功能代码有两组,分别为6572100110,无需认可,但不保证代码使用唯一性,如变为公共代码,需交RFC认可;

    3) 保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。

    按照应用深浅,可分为3个类别:

    1) 类别0,客户机/服务器最小可用子集:读多个保持寄存器(fc.3);写多个保持寄存器(fc.16)

    2) 类别1,可实现基本互易操作常用代码:读线圈(fc.1);读开关量输入(fc.2);读输入寄存器(fc.4);写线圈(fc.5);写单一寄存器(fc.6)

    3) 类别2,用于人机界面、监控系统例行操作和数据传送功能:强制多个线圈(fc.15);读通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)

    5. Modbus TCP通讯应用举例

    在读寄存器的过程中Modbus TCP请求报文为例,具体的数据传输过程如下

    1) Modbus TCP客户端实况,用Connect()命令建立目标设备TCP 502端口连接数据通信过程;

    2) 准备Modbus报文,包括7个字节MBAP内请求;

    3) 使用send()命令发送;

    4) 同一连接等待应答;

    5) recv()读报文,完成一次数据交换过程;

    6) 当通信任务结束时,关闭TCP连接,使服务器可以为其他服务。

     

    S7-300/400 的CPx43-1 MODBUS TCP 通讯(STEP7)

    下面章节将介绍如何使用软件选项包” ModbusTCP CP V4.3 "的功能块库配置S7-300/400单站系统通过CP343-1/CP443-1与第三方模拟软件进行Modbus/TCP进行通讯的详细步骤

    1.“ ModbusTCP CP V4.3”块库使用说明

    1) 该功能块库可以用于S7-300单站通过CP343-1S7-400单站通过CP443-1进行ModbusTCP通讯。

    2) 由于需要在SIMATIC站与其他通讯伙伴之间建立TCP连接用于Modbus通讯,因此需要调用SIMATIC S7标准功能块,对于S7-300/400CP来说,需要调用FC5(AG_SEND)FC6(AG_RECV)功能块。

    3) 对于主要功能块FB106107108来说,包含了V1.xV2.x,它们管脚参数并没有更改,只是在V2.x中增加了FC10”AG_CNTRL”功能块用于管理TCP连接,是否支持功能块与CP的型号和固件版本有关,如下图1所示:

    1 功能块V1.xV2.x版本区别

    当将软件选项包安装完集成到Step7时,可以在Step7安装文件的相应目录中找到块库、例程、英文手册,另外还可找到用CFC语言编程的功能快库,供读者选用,如下图2~4所示,在实际的项目调试过程中由于例子程序的各项功能比较完善,因此可以直接使用例子程序根据项目的实际情况修改相应的参数即可,可以节省大量的参数设置时间,以下主要描述了使用软件选项包” ModbusTCP CP V4.3 "配置S7-300/400站的详细配置和编程步骤

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

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

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

    2. 配置S7-400单站系统通过CP443-1 作为Server进行Modbus TCP通讯

    S7-400单站系统及Modscan32软件为例,详细介绍如何将S7-400单站系统通过CP443-1配置为ServerModscan32Client进行Modbus TCP通讯,在本例中将使用带FC10”AG_CNTRL”版本的功能块,下图5为服务器功能块库的程序结构及各功能块完成的功能

    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 CP443-1

    1

    6GK7443-1EX41-0XE0(V1.0)

    S7-400 机架

    1

    6ES7400-1JA00-0AA0

    网线

    若干

     

    笔记本电脑

    1

     

     

     

     

     

     

     

    1 服务器硬件清单

    所用到软件如下表:

    名称

    订货号

    STEP7 V5.5 组态编程软件 英文版

     

    “ ModbusTCP CP V4.3 软件选项包

    2XV9450-1MB00

    Modscan32 V7.0

     

     

     

     

    2 服务器软件清单

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

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

    6 新建S7-400 Station

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

    7 硬件组态并设置CP443-1IP地址

    打开Netpro网络组态,选中CPU414-3PN/DP,插入一个新连接,连接伙伴为Unspecified,连接类型为TCP Connection,如下图8所示:

    8 网络组态-新建TCP connection

    打开连接属性对话框中的“General Inbbbbation”,由于CP443-1Server被动连接,因此不勾选“Active connection estabishment”选项ID保持缺省即可,在“Address”栏中同样由于CP443-1Server,因此填入连接的Port号设置为502,组态完成后,编译保存,将例程站点“SIMATIC 400(Server)”中的程序(System data不需要拷贝)拷贝到该项目中并下载(注意:OB100中调用的FB108idladdr需根据组态确认)。对于通讯伙伴RemoteIP地址可以不填,即允许任意IP地址的客户端发起连接,如下图9所示:

    9 S7-400为服务器的TCP connection参数设置

    对于服务器和客户端的端口号(下述中以Port代替)的选择需要注意以下几点:

    1)一般情况下服务器端的Port号modbus TCP规范缺省为502,客户端的Port号设置为客户端允许的号即可,另外各厂商产品也有一些限制,对于SIMATIC产品一般从2000之后开始。

    2)对于一个系统来说,当创建多个TCP连接时,要保证IP地址和Port号不重合,即同一个IP地址下创建多个TCP连接时Port号必须不同,而不同的系统因IP地址不同可以使用相同的Port号,例如本例中如果需要创建多个TCP连接作为Server时因只有一个IP,因此Port号必须不同。

    2.3 通讯测试

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

      

    3 Modbus数据类型 

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

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

    打开Modscan32软件,在“Connection--->connect”中打开连接属性对话框,连接接口选择“Remote TCP/IP Server”IP Address分别填入CPUIP

    192.168.70.2Service为远程服务器的端口502,在协议的选择对话框中可以定义传输模式、通讯超时响应时间,报文发送间隔及允许写多个保

    持寄存器等,这里分别保持缺省设置即可,如下图11所示:

    18:对应TCP通讯的Modscan32连接窗口

    下载网络组态及程序到CPU中,使能参数ENQ_ENR=1,在 Modscan32“Set up->Data Definition”中设置数据扫描周期、寄存器连接类型、起始地址、长度等,如下图11所示:

    11 Modscan32Modbus数据参数定义

    之后在ModScan32中就可以建立和远程CP443-1 Server的连接了,在Netpro中可以看到连接已经建立起来,如下图12所示:

    12 Modscan32激活与S7-400的连接

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

    13本例中的数据区定义

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

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

    15 通讯连接建立

    3. 配置S7-400单站系统作为Client进行Modbus TCP通讯

    下面以S7-400单站系统及ModSim32软件为例详细介绍如何将S7-400单站系统配置为ClientModSim32Server进行Modbus TCP通讯,在本例中同样使用FC10AG_CNTRL”版本的功能块,由于客户端和服务器模式均使用相同的功能块,因此客户端功能块库的程序结构及各功能块完成的功能可以参考图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 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 客户端软件清单

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

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

    16 新建S7-400 Station

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

     

    17 硬件组态并设置CP443-1IP地址

    打开Netpro网络组态,选中CPU414-3PN/DP,插入一个新连接,连接伙伴为Unspecified,连接类型为TCP Connection,如下图18所示:

    18 网络组态-新建TCP connection

    打开连接属性对话框中的“General Inbbbbation”,由于CP443-1Client主动发起连接,因此需要勾选“Active connection estabishment”选项ID保持缺省即可,在“Address”栏中同样由于CP443-1Client,对于本地的端口号设置为2000(一般从2000以外开始以避免与别的协议资源冲突)对于通讯伙伴RemoteIP地址设置为测试PC机的IP 地址,本例中 PC机的IP设置为192.168.70.245Port号设置为502,如下图19所示:

    19 S7-400为客户端的TCP connection参数设置

    组态完成后,编译保存,将例程站点“SIMATIC 400(Client)”中的程序(System data不需要拷贝)拷贝到该项目中并下载(注意:OB100中调用的FB108idladdr需根据组态确认)。

    关于服务器和端口号的设置请参考本文中2.2章节说明。

    3.3 通讯测试

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

    需要说明的是由于客户端功能块需要定义具体的功能码,而主功能块FB108 “MODBUSCP”并没有直接的管脚来定义功能码,而是由其中的两个参数“DATA_TYPE”“single-write”共同决定(参见后面的管脚参数说明),详细情况如下图20所示:

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

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

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

    21 ModSim32中设置端口号

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

    22 ModSim32Modbus数据参数定义

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

    之后在CP443-1 Client就可以建立和远程ModSim32 Server的连接了,在Netpro中可以看到连接已经建立起来,如下图23所示:

    23 Modscan32激活与S7-400的连接

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

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

    4. “ ModbusTCP CP V4.3” 选项包通讯使用总结及相关注意事项

    由于是通过PC测试软件模拟第三方设备与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协议并没有对此进行约束和限制。 

    5 .“ModbusTCP CP V4.3” 软件包授权

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

    25 CPU诊断缓冲区报错

    26 Modbus TCP功能块报错A090

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

    5.1读取IDENT_CODE

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

    2、打开MODBUSCPFB108)的背景块DB108,确认IDENT_CODE的偏移地址为108;如图27所示:

    27 确认IDENT_CODE的偏移地址

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

    28 确认IDENT_CODE

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

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

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

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

    5.3 通过网站申请注册码REG_KEY

    1、通过西门子技术支持网站申请,打开如下网址,点击“技术问题提交”:

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

    29 技术支持网站

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

    30 步骤1

    31 步骤2

    32 步骤4

    33 步骤5

    34 步骤6

    5.4 使用注册码REG_KEY

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

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

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

    35 输入注册码

    4、将LICENSE_DBDB3)下载到CPU中,CPUINTF指示灯熄灭;并可通过查看MODBUSPNFB102)的输出引脚LICENSEDtrue且不再报A090错误代码,确认注册码激活成功,如图36所示。

    36 注册码激活成功

    6. CP进行Modbus TCP通讯FB输出常见故障代码及处理

    STATUS(Hex)

    故障原因

    处理措施

    FB MODBUS故障

    A002

    Modbus起始地址Start_x错误

    由通讯伙伴确认起始地址

    A003

    Modbus地址映射的DB块的数据区长度太短,最低长度:

    -寄存器:

    (START_ADDRESS – start_x + LENGTH) * 2

    -

    (START_ADDRESS – start_x + LENGTH) / 8

    其他可能的原因:

    ·参数初始化错误(CPClient)

    ·客户端请求报文时错误的地址区域(CPServer)

    扩展DB区域

    CPClient,修改参数START-ADDRESS或者LENGTH

    CPServer,修改客户端的请求

    A004

    仅在CPClient时才有此故障:

    参数DATA_TYPEWRITE_READ设置不匹配,不可能对输入寄存器或离散输入进行写操作

    修改此两个参数

    A005

    CPClient时:

    参数LENGTH设置无效

    CPServer时:

    Client请求的寄存器号无效,合法的数据类型范围如下:

    读线圈/离散输入: 1 to 2000

    写线圈: 1 to 1968

    读寄存器: 1 to 125

    写保持寄存器: 1 to 123

    CPClient时:

    修改参数LENGTH

    CPServer时:

    修改Client请求的数据类型范围

    A006

    CP为客户端时:

    数据区1-8中对应的Modbus地址范围(DATA_TYPE,

    START_ADDRESS LENGTH

    )不存在

    CP为服务器时:

    客户端请求的报文不正确

    CPClient时:

    修改参数DATA_TYPE,START_ADDRESS LENGTH

    CPServer时:

    修改Client 请求或修改数据类型data_type_x.

     

    A007

    CPClient时:

    参数MONITOR监控时间设置无效,值必须>20ms

    修改参数MONITOR

    A008

    接收监控超时,可能的原因:

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    对于MODBUSCP V1.x:

    同步错误,报文丢失

    检查通讯伙伴的参数设置,如单元标识符等

    A009

    CPClient,接收标识符TI与发送不一致, 连接将终止和重新建立

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    通过抓包工具来分析和修正通讯伙伴的报文

     

    A00A

    CPClient时,接收参数UNIT 与发送的不一致,连接将终止和重新建立

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    A00B

    CPClient时:

    接收与发送功能码不一致

    CPServer时:

    无效的功能码被接收

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    对于MODBUSCP V1.x:

    同步错误,报文丢失

    CPClient时:

    通过抓包工具来分析和修正通讯伙伴的数据报文格式

    CPServer时:

    注意FB MODBUS仅支持功能码FC1234561516

    A00C

    接收到的字节长度与寄存器/位不匹配

    CP为服务器时,CP将发一个响应异常给客户端

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    通过抓包工具来分析和修正通讯伙伴的报文

     

    A00D

    仅在CP Client 时发生:

    响应的MODBUS寄存器/位地址或长度与客户端请求的不一致

    A00E

    MODBUS报文报头的长度与寄存器/位 不匹配,FB将忽略

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    对于MODBUSCP V1.x:

    同步错误,报文丢失

    A00F

    0的协议标识符报文被接收

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    对于MODBUSCP V1.x:

    同步错误,报文丢失

    A010

    数据区1-8 DB块号重复使用

    确保每个Db块号只使用一次

    A011

    DATA_TYPE参数设置(范围为1-4)

    修改DATA_TYPE参数

    A012

    数据区参数data_type_1data_type_2设置重叠

     

    数据区不能有重叠的modbus地址区域

    A013

    数据区参数data_type_1data_type_3设置重叠

    修改此参数

    A014

    数据区参数data_type_1data_type_4设置重叠

    A015

    数据区参数data_type_1data_type_5设置重叠

    A016

    数据区参数data_type_1data_type_6设置重叠

    A017

    数据区参数data_type_1data_type_7设置重叠

    A018

    数据区参数data_type_1data_type_8设置重叠

    A019

    当参数data_type_x设置不为0时,db_x被赋值0

    db_x不能为0

    A01A

    报头中长度错误:

    范围3-253字节

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    通过抓包工具来分析和修正通讯伙伴的报文

     

    A01B

    CPServer及使用功能码FC05:

    接收的线圈值无效

    CP将发送异常报文

    A01E

    CP接收到无法识别的数据,

    对于MODBUSCP V2.x:

    所有通过502端口的连接激将中断并重新建立

    对于MODBUSCP V1.x:

    同步错误,报文丢失

    分析错误信息,通过抓包工具来分析和修正通讯伙伴的报文

    A01F

    功能块FB MBBUSCP返回一个无效的状态

    联系产品供货商

    A020

    参数Check_conn_cycle设置<1s时,对于功能块AG_CNTRL过短

    当为Client模式时,参数Check_conn_cycle=TRUECheck_conn_cycle设置需要>1s

    当为Server模式时,Check_conn_cycle设置需要>1s

    A023

    数据区参数data_type_2data_type_3设置重叠

     

    数据区不能有重叠的modbus地址区域

    A024

    数据区参数data_type_2data_type_4设置重叠

    A025

    数据区参数data_type_2data_type_5设置重叠

    A026

    数据区参数data_type_2data_type_6设置重叠

    A027

    数据区参数data_type_2data_type_7设置重叠

    A028

    数据区参数data_type_2data_type_8设置重叠

    A034

    数据区参数data_type_3data_type_4设置重叠

    A035

    数据区参数data_type_3data_type_5设置重叠

    A036

    数据区参数data_type_3data_type_6设置重叠

    A037

    数据区参数data_type_3data_type_7设置重叠

    A038

    数据区参数data_type_3data_type_8设置重叠

    A045

    数据区参数data_type_4data_type_5设置重叠

    A046

    数据区参数data_type_4data_type_6设置重叠

    A047

    数据区参数data_type_4data_type_7设置重叠

    A048

    数据区参数data_type_4data_type_8设置重叠

    A056

    数据区参数data_type_5data_type_6设置重叠

    A057

    数据区参数data_type_5data_type_7设置重叠

    A058

    数据区参数data_type_5data_type_8设置重叠

    A067

    数据区参数data_type_6data_type_7设置重叠

    A068

    数据区参数data_type_6data_type_8设置重叠

    A068

    数据区参数data_type_7data_type_8设置重叠

    A07A

    参数id设置无效:范围1-64

    修改参数id

    A07C

    参数data_type_1设置无效:范围0-4

    修改参数data_type_x

    A07D

    参数data_type_1未定义,data_type_1为缺省的使用数据区,需要定义

    修改参数data_type_1

    A07E

    参数db_x值与背景DB中的值不一致

    修改参数db_x

    A080

    OB1OB100调用FB MODBUS功能块时使用了不同的背景DB

    需要使用相同的背景DB

    A081

    CPClient且使用FC05功能码时:

    接收的线圈状态与发送不一致

    通过抓包工具来分析和修正通讯伙伴的报文

    A082

    CPClient且使用FC06功能码时:

    接收的寄存器值与发送不一致

    通过抓包工具来分析和修正通讯伙伴的报文

    A083

    仅在CPClient:在上一个请求还没有处理完成时又发送新的请求

    等待DONE =TRUE  ERROR = TRUE后再发送新请求

    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模式)

    通过抓包工具来分析和修正通讯伙伴的报文

    FC/SFC故障

    7xxx

    请参考SIMATIC的在线帮助

    通过在线帮助SIMATIC manager -> mark block -> key F1 –> Ethernet -> see also -> code bbbbuation可以查到相关帮助信息

    8xxx

    请参考SIMATIC的在线帮助

    通过在线帮助SIMATIC manager -> mark block -> key F1 –> Ethernet -> see also -> code bbbbuation可以查到相关帮助信息

    SFC24故障

    80A1

    DB=0或超出了CPU允许的范围

    选择有效的DB

    80B2

    DB块在CPU中不存在

    DB_x参数中的DB块必须创建并下载到CPU

    80B3

    DB块被创建为“Unbbbbed”类型

    DB块不能创建为“Unbbbbed”类型

     

    硬件列表

    设备名称

    设备型号

    PS 307

    6ES7 307-1EA01-0AA0

    CPU 319-3PN/ DP

    6ES7 318-3EL00-0AB0

    MMC

    6ES7 953-8LG30-0AA0

    CP341

    6ES7 341-1CH02-0AE0

    Dongle

    6ES7 870-1AB01-0YA0

    应用CP341进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示。

    图1

    组态和配置

    1、打开软件TIA PORTAL

    图2

    STEP7 V13,点击项目->新建...创建一新项目,项目名称为341_modbus_Master。

    2、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 319-3PN/DP->6ES7 318-3EL00-0AB0。

    图3

    3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 319-3PN/DP已经存在,只需要插入PS307和CP341。

    图4

    4、双击CP341模板,进入CP341的属性框,配置CP341参数。

    图5

    5、在“协议”选项中选择“Modbus主站”。配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无。

    图6

    6、本示例选用的是RS422/485接口的CP341,还需要设置接口属性,如下图所示。

    图7

    编写通信程序

    1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“S7串行通信模板Modbus RTU主站可装载驱动的操作说明” 6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为400。

    图8

    图9

    2、进入主程序OB1,从通信->通信处理器->PtP链接:CP341,调用发送功能块P_SND_RK和接收功能块P_RCV_RK。P_SND_RK的背景数据块为DB1,P_RCV_RK的背景数据块为DB2。

    图10

    CP341的发送功能块P_SND_RK 的参数设置见下表。

    管脚

    解释描述

    SF

    ‘S’为发送,此处必须为大写的‘S’

    LADDR

    硬件组态中的起始逻辑地址,本例中为256,见图11。

    REQ

    发送数据触发位,上升沿触发,本例中为M0.5,为时钟存储器的位,见图12。

    DB_NO

    发送数据块号,本例中为10(DB10)

    DBB_NO

    发送数据的起始地址,本例中为0(DB10.DBB0)

    LEN

    发送数据的长度,本例中为6

    R_TYP

    ‘X’为扩展的数据块,此处必须为大写的‘X’

    R

    取消通讯,本例中不用

    DONE

    发送完成位,发送完成后为TRUE,同时没有错误

    ERROR

    错误位,为TRUE说明有错误

    STATUS

    状态字,标识错误代码,查看Modbus Master手册获得相应的说明

    其它参数

    本例中不用

     

    CP341的接收功能块P_RCV_RK 的参数设置见下表。

    管脚

    解释描述

    LADDR

    硬件组态中的起始逻辑地址,本例中为256,见图11。

    DB_NO

    发送数据块号,本例中为11(DB11)。

    DBB_NO

    发送数据的起始地址,本例中为0(DB11.DBB0)。

    LEN

    接收数据的长度,本例中为MW22,只显示一个扫描周期,即:只有在接收到数据的当前周期,此值不为0。

    EN_R

    使能接收位,本例中为M20.0,常闭点, 始终保持接收状态。

    R

    取消通讯,本例中不用。

    NDR

    接收完成位,接收完成并没有错误为TRUE,只显示一个扫描周期。

    ERROR

    错误位,为TRUE说明有错误,只显示一个扫描周期。

    STATUS

    状态字,标识错误代码,只显示一个扫描周期,查看Modbus Master手册获得相应的说明。

    其它参数

    本例中不用

     

    图11

    图12

    设备连接

    本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口.

     具体的电缆连接方法请查看:串口接线

    如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器(需要选购第三方设备)。

    通信测试

    前面使用 TIA Step7 软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件ModSim32软件来测试CP341和计算机的通信,步骤如下

    1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。

    图13

    2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和CP341的参数相同。

    图14

    3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。

    图15

    4、首先将硬件配置和程序下载到CPU319-3PN/DP中,时钟脉冲信号M0.5从0跳变成1时,CP341将数据发送出去。

    图16

    5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。

    图17

    手册下载

    更详细的资料请参看如下手册:

     CP341使用手册

     MODBUS RTU主站手册

    长沙    西门子   6ES7392-1AJ00-0AA0

     

在线询盘/留言
  • 免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,本网对此不承担任何保证责任。我们原则 上建议您选择本网高级会员或VIP会员。
    0571-87774297