产品简介
长沙6ES7953-8LP31-0AA0西门子现货特价销售
长沙6ES7953-8LP31-0AA0西门子现货特价销售
产品价格:¥10
上架日期:2019-02-24 12:10:21
产地:德国
发货地:长沙
供应数量:不限
最少起订:1台
浏览量:293
资料下载:暂无资料下载
其他下载:暂无相关下载
详细说明

     

    长沙   西门子   6ES7953-8LP31-0AA0   现货特价销售   

     

     

     

     

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

    下面章节将介绍如何使用软件选项包ModbusTCP PN-CPU V2.6 的功能块库配置S7-300/400单站系统通过CPU的集成PN口与第三方模拟软件进行Modbus/TCP进行通讯的详细步骤

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

    1) 该功能块库可以用于S7-300/400单站系统或ET200SCPU的接口模块通过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,具体可以根据实际的项目情况来进行调整,详细地内容将在下面的配置章节中详细描述。

    Modbus_Screen_V13_en

    1 Modbus TCP Wizard起始界面

    Modbus TCP Wizard的相关信息及下载可以参考以下连接:关于创建 Modbus TCP 通信所需连接数据的向导 (Modbus TCP Wizard)

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

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

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

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

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

    下面以S7-400单站系统及Modscan32软件为例详细介绍如何将S7-400单站系统通过CPU集成PN口配置为ServerModscan32Client进行Modbus TCP通讯,下图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 机架

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

    6 新建S7-400 Station

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

    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_bbbbb“来完成初始化,其中各参数的含义如下图89所示

    8 DB2“MODBUS_bbbbb“TCP连接参数设置部分

    关于DB2MODBUS_bbbbbTCP连接参数含义如下表3所示:

    类型

    参数

    含义

     

     

    OPEN IE

    通讯参数

    block_length

    固定值W#16#40

    Id

    连接ID,用于FB63/64/65/66                                                          

    connection_type

    取决于CPU类型,用于FB65(TCON)

    TCP(兼容模式): CPU315317<= FWV2.3               W#16#01

    TCP:CPU315,317>= FW V2.4IM151-8PN/DP CPUCPU314CCPU319CPU412CPU414CPU416 

     W#16#11

    active_est

    主动或被动连接:

    S7Client时为主动    TRUE

    S7Server时为被动   FALSE

    local_device_id

    取决于CPU类型:

    IM151-8PN/DP              B#16#1

    CPU314C315317   B#16#2

    CPU319                         B#16#3

    CPU412414416      B#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的机架号和槽号,当使用CPUPN口时为 B#16#00

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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

    9 DB2“MODBUS_bbbbb”Modbus参数设置部分

    2.3 通讯测试

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

      

    4 Modbus数据类型

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

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

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

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

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

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

    12 Modscan32Modbus数据参数定义

    由于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通讯

    下面以S7-400单站系统及ModSim32软件为例详细介绍如何将S7-400单站系统CPU的集成PN口配置为ClientModSim32Server进行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所示: 

    16 新建S7-400 Station

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

    17 硬件组态并设置CPUIP地址

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

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

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

    3.3通讯测

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

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

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

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

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

    20 ModSim32中设置端口号

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

    21 ModSim32Modbus数据参数定义

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

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

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

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

    由于是通过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协议并没有对此进行约束和限制。

    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功能块报错,如图2425所示:

    24 CPU诊断缓冲区报错

    25 Modbus TCP功能块报错A090

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

    5.1 读取IDENT_CODE

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

    2、打开MODBUSPNFB102)的背景块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.26.3的描述步骤申请注册码。

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

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

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

    5.3 通过网站申请注册码REG_KEY

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

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

    28 技术支持网站

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

    29 步骤1

    30 步骤2

    31 步骤3

    32 步骤4

    33 步骤5

    5.4 使用注册码REG_KEY

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

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

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

    34 输入注册码

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

    35 注册码激活成功 

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

    STATUS(Hex)

    故障原因

    处理措施

    参数STATUS_MODBUS代码含义

    A001

    数据块DB(MODBUS_bbbbb)长度过短

    修改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

    其他可能的原因:

    ·参数初始化错误(CPUClient)

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

    扩展DB区域

    CPUClient时:

    修改参数START-ADDRESS或者LENGTH

    CPUServer时:

    修改客户端的请求

    A004

    仅在CPClient时才有此故障:

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

    修改此两个参数

    A005

    CPClient时:

    参数LENGTH设置无效

    CPServer时:

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

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

    写线圈: 1 to 1968

    读寄存器: 1 to 125

    写保持寄存器: 1 to 123

    CPUClient时:

    修改参数LENGTH

    CPUServer时:

    修改Client请求的寄存器地址

    A006

    CP为客户端时:

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

    START_ADDRESS LENGTH

    )不存在

    CP为服务器时:

    客户端请求的报文不正确

    CPUClient时:

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

    CPUServer时:

    修改Client 请求或修改参数data_type_x

    A007

    CPUClient时:

    参数RECV_TIMECONN_TIME时间设置无效,RECV_TIME最少20ms, CONN_

    TIME100ms

    修改此两参数

    A009

    仅在CPUClient时发生,标示符TI与发送方不一致,连接中断

    修正通讯伙伴的报文

    A00A

    CPUClient时:

    接收参数UNIT 与发送的不一致

    A00B

    CPUClient时:

    接收与发送功能码不一致

    CPUServer时:

    无效的功能码被接收

    CPUClient时:

    检查通讯伙伴的数据报文格式

    CPUServer时:

    注意FB MODBUSPN仅支持功能码FC0102030405061516

    A00C

    接收到的字节长度与寄存器地址+不匹配,连接中断

    检查通讯伙伴的数据报文格式

     

    A00D

    仅在CPU Client 时发生:

    响应的MODBUS寄存器地址与请求的不一致

    A00E

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

    A00F

    0的协议标示符被接收,通讯中断

    A010

    参数DB1-DB8中有重复使用的DB

    修改为单独的DB

    A011

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

    修改该参数

    A012

    数据区参数data_type_1data_type_2设置重叠

     

    统一类型的寄存器地址不能有叠加情况

    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块号不能为0

    A01A

    Modbus报头中错误的长度(1-253字节有效)

    检查通讯伙伴的数据报文格式

    A01F

    FB MODBUSPN处于无效的连接状态

    联系产品支持

    A023

    数据区参数data_type_2data_type_3设置重叠

     

    统一类型的寄存器地址不能有叠加情况

     

    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设置重叠

    A078

    数据区参数data_type_7data_type_8设置重叠

    A079

    参数IDDB(MODBUS_bbbbb)中未定义

    修改参数ID

    A07A

    无效的参数ID(ID值范围为1-4095)

    A07B

    参数IDDB(MODBUS_bbbbb)中存在2

    修改DBDB(MODBUS_bbbbb)

    A07C

    参数data_type_x无效(范围1-4)

    A07D

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

    A07E

    参数DB_xDB(MODBUS_bbbbb)FB102的背景DB号冲突

    A07F

    FB102接口参数bbbbb_DB错误,非通讯参数DB

    指定正确的DB给接口参数bbbbb_DB

    A080

    数据块DB(MODBUS_bbbbb)更改但没有执行CPU重起

    数据块DB(MODBUS_bbbbb)需要初始化,当更改时需要CPU重起

    A081

    CPClient且使用FC05功能码时:

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

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

    A082

    CPClient且使用FC06功能码时:

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

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

    A083

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

    等待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_TIMERECV_TIME时间超出,RECV_TIME超出时连接终止

    检查连接参数

    A101

    参数TDISCON的监控时间超出

    联系产品供应商

    SFC6/20故障代码

    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可以查到相关帮助信息

    FB63,64,65,66故障代码

    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

    80B1

    DB块在CPUU中不存在

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

    80B2

    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主站手册

     

    长沙   西门子   6ES7953-8LP31-0AA0

     

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