西门子模块6ES73225GH000AB0
西门子模块6ES73225GH000AB0
产品价格:¥99(人民币)
  • 规格:原装正品
  • 发货地:上海
  • 品牌:
  • 最小起订量:1台
  • 免费会员
    会员级别:试用会员
    认证类型:企业认证
    企业证件:通过认证

    商铺名称:上海晨莅自动化科技有限公司

    联系人:李艳(小姐)

    联系手机:

    固定电话:

    企业邮箱:20131179@qq.com

    联系地址:金山区枫泾镇枫弯路500弄

    邮编:201501

    联系我时,请说是在电子快手网上看到的,谢谢!

    商品详情
      西门子模块6ES73225GH000AB0

      西门子模块6ES73225GH000AB0

      6ES7322-5GH00-0AB0

      SIMATIC S7-300,数字输出 SM 322,电位隔离, 16 DA(固态继电器), AC/DC 24-48V;0.5A mit 一个一组,1x 40极

      全新原装,质量保证,保修一年,提供技术及售后服务,价格公道合理
       _______________________ 
      【SIEMENS】
      上海晨莅自动化科技有限公司
      联  系  人:李经理
      电话(Tel :15821198951(微信同步)
      在线(QQ):201311793 
      传   真   :021-67351121
       ______________________________________ 

      1 概述
      S7-1200 与 S7-300 之间的以太网通信方式比较多,可以采用ISO on TCP、TCP和 S7 的方式进行通信。在S7-1200 CPU 中采用ISO on TCP和TCP这两种协议进行通信所使用的指令是相同的,都使用 T-block ( TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV ) 指令编程。S7-300 CPU一侧如果使用的是CPU集成的PN接口,连接不在STEP7的NetPro中建立连接,而是使用西门子提供的OPEN IE 的方式来实现。
      本文主要介绍了如何实现在S7-1200 和S7-300 CPU集成PN口之间的ISO on TCP通信,包括通信的基本步骤、配置及编程等内容。具体的实现方法有多种,比如在S7-1200中可以使用不带连接的通信指令(TCON, TDISCON, TSEN, TRCV),也可以使用带连接的通信指令(TSEND_C, TRCV_C);在S7-300中可以采用功能块编程的方式来实现,也可以使用Open Communication Wizard工具(OPEN IE向导)的方式来建立OPEN IE的通信。
      为了方便理解,本文在S7-1200中使用不带连接的通信指令TCON, TDISCON, TSEN, TRCV,在S7-300侧通过功能块编程的方式来实现。
      关于S7-1200和S7-300 OPEN IE通信的文档可以登录西门子自动化与驱动集团网站的下载中心,网址:http://www.ad.siemens.com.cn/download/ ,根据如表1提供的文档编号搜索并下载相关文档。

      文档编号 中文标题
      A0426 西门子 S7-1200 PLC 技术参考Version 1.5
      A0416 S7-1200与S7-300 的以太网TCP 及ISO on TCP通信
      A0421 如何实现两个S7-1200 CPU之间的以太网通信
      A0415 通过S7协议实现S7-1200 与S7-300的通信
      A0414 S7-1200基本以太网通信使用指南
      A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门
      A0345 使用 Open Communication Wizard 建立开放式 ISO on TCP 通信
      A0346 使用 Open Communication Wizard 建立开放式 UDP 通信
      A0347 使用 Open Communication Wizard 建立开放式 TCP 通信
      A0344 S7-300和S7-400集成PN口的S7通信
      A0334 PN CPU/CP的开放式通讯-Open IE

      表1 下载中心文档列表

      2 软硬件及所要完成的通信任务

      2.1硬件设备

      实验的硬件设备:
      1、S7-1200 CPU,CPU1212 AC/DC/RLY(6ES7 212-1BD30-0XB0)
      2、S7-300 PN CPU,CPU317-2PN/DP(6ES7 317-2EH13-0AB0 V2.6.7)
      3、PC机(带以太网卡)
      4、SCALANCE X216交换机,S7-1200、S7-300和PC通过交换机互连起来
      5、TP以太网电缆

      2.2 软件环境

      1、STEP7 Basic V10.5 SP2
      2、STEP7 V5.4 SP5
      3、通信所需的功能块,请参见附件提供的例程 ”Sample_1 ( 50 KB ) ” 或参考下载中心文档:《A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门》提供的程序。下载链接:80490650

      2.3 所要完成的通信任务
      本例中所要完成的通信任务定义为:
      1、 将S7-1200的发送数据块DB3里的8个字节数据发送到S7-300的DB3中。
      2、 将S7-300 DB3里接收到的8个字节数据再发送到S7-1200的接收数据块DB4中。


      3 S7-1200 CPU的组态编程

      3.1创建新项目

      1、打开STEP 7 Basic 软件并新建项目
      在STEP 7 Basic 的 “Portal View”中选择“Create new project”创建一个新项目,项目名称为“GS_ISO”。


      2、添加硬件并命名PLC
      然后进入 “Project view”,在“Project tree” 下双击 “Add new device”,在对话框中选择所使用的S7-1200 CPU(6ES7 212-1BD30-0XB0)添加到机架上,设备名为 PLC_1,如图1所示。


      图1 添加新的PLC站

      为了编程方便,我们使用 CPU 属性中定义的时钟位,定义方法如下:
      在“Project tree> PLC_1 > Device configuration” 中,选中 CPU ,然后在下面的属性窗口中,“Properties > System and clock memory” 下,将系统位定义在MB1,时钟位定义在MB0,如图2所示。程序中我们主要使用 M0.3,它是以2Hz 的速率在0和1之间切换的一个位,可以使用它去自动激活发送任务。


      图2 系统和时钟存储器

      3、为 S7-1200 CPU的PROFINET 通信口分配以太网地址
      在 “Device View”中点击 CPU 上代表PROFINET 通信口的绿色小方块,在下方会出现PROFINET 接口的属性,在 “Ethernet addresses”下分配IP 地址为 192.168.0.2 ,子网掩码为255.255.255.0,如图3所示。


      图3为 S7-1200 CPU的PROFINET 接口分配IP地址

      3.2调用并配置通信指令

      1、在 PLC_1 的 OB1 中调用 “TCON”通信指令
      进入“Project tree > PLC_1 > Program blocks > OB1” 主程序中,从右侧窗口 “Instructions > Extended Instructions > Communications” 下调用 “TCON” 指令,并选择 “Single Instance” 生成背景 DB块,如图4所示。


      图4 调用TCON指令

      2、定义PLC_1 的 “TCON” 连接参数
      PLC_1 的 TCON 指令的连接参数需要在指令下方的属性窗口“Properties > Configuration > Connection parameter”中设置,如图5所示。

      连接参数说明:

      End point

      :选择通信伙伴,这里选择“unspecified”

      Address

      :指定通信伙伴S7-300站的IP地址“192.168.0.3”

      Connection type

      :选择通信协议为ISO on TCP

      Connection ID

      :连接的地址 ID 号,这个 ID 号在后面的编程里会用到

      Connection data

      :创建连接时,系统会自动生成本地的连接 DB 块,所有的连 接数据都会存在这个 DB 块中。

                                       

      :选择本地 PLC_1作为主动连接,S7-300 CPU作为被动连接

      Address details

      :设定 TSAP 地址这里本地设置成“PLC_1”, TSAP ID自动为“50.4C.43.5F.31”,伙伴方设置成不设置TSAP(ASCII),设置TSAP ID 为“E0.02.50.4C.43.5F.31”。


      图5 “TCON” 指令的连接参数

      3、分配 “TCON” 的块参数
      在指令下方的属性窗口“Properties > Configuration > block parameter”中设置,可以根据需要自己为“TCON” 块指定相应的输入输出参数。指定好参数的块,如图6所示。其中M8.0作为启动连接的触发位,连接ID = 1与连接参数里面的设置相同。


      图6 “TCON” 的块参数

      4、在 PLC_1 的 OB1 中调用 “TSEND” 发送通信指令
      首先创建一个发送数据块,通过 “Project tree > PLC_1 > Program blocks > Add new block”,选择 “Data block” 创建 DB 块,选择绝对寻址,点击“OK”键,如图7所示。


      图7 创建一个发送数据块DB3

      打开创建的发送数据块,在数据块中定义发送数据区为 8个字节的数组,如图8所示。


      图8 创建发送数据区

      然后在OB1 中调用“TSEND”发送通信指令,并为“TSEND”指定参数。使用M0.3( 2Hz 的时钟脉冲)上升沿激活发送任务,指定发送数据区为P# DB3.DBX0.0 BYTE 8,连接 ID = 1与连接参数里面的设置相同,发送长度LEN=8。分配好参数的“TSEND”块如图9所示。


      图9 调用“TSEND”发送通信块

      5、在 PLC_1 的 OB1 中调用“TRCV”接收通信指令
      同样,先创建一个接收数据块DB4 ,如图10所示。“TRCV”接收通信指令的调用方法与“TSEND” 发送通信指令的调用方法相同,M8.1作为接收指令的使能位,如图11所示。


      图10创建接收数据区

       


      图11 调用“TRCV”接收通信块

      6、在 PLC_1 的 OB1 中调用 “TDISCON”通信指令
      最后,为了断开通信链接,我们需要调用“TDISCON”通信指令,如图12所示。


      图12 调用“TDISCON”通信块

      3.3下载程序
      至此,S7-1200侧的组态和编程都已经完成,可以在项目编译无错误后,直接下载到S7-1200 CPU中,并启动CPU的运行。


      4 S7-300 CPU的组态编程
      S7-300带PN接口的CPU支持ISO on TCP通信功能,通过该集成以太网接口组态ISO on TCP通信时,只能使用开放式通信专用的功能块,这些专用的功能块可以在STEP7 “ 通讯块”的 “标准库 ”中找到,如图13所示。


      图13 S7-300 CPU通信指令库

      库中提供了下列通信功能块:
      ′> FB 65 "TCON",用于建立连接,连接时需要UDT65来提供参数
      > FB 66 "TDISCON",用于终止连接
      > FB 63 "TSEND",用于发送数据到S7站点、S5站点、PC站或者第三方设备
      > FB 64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据

      要通过CPU 的 集成PN 接口实现开放的ISO on TCP通信,不能在Netpro网络组态中直接建立连接,必须通过程序指定每个连接的参数。用于通信的FB标准功能块,请参见附件提供的例程 ”Sample_1 ( 50 KB ) ” 或参考下载中心文档《A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门》提供的例程。下载链接:80490650

      从附件提供的例程 ”Sample_1 ( 50 KB ) ” 中将把需要的程序块拷贝到新建的项目中,包括:
      > UDT 65 "TCON_PAR",存放用户通信参数
      > FB420 "SET_ISO_ENDPOINT" ,用于修改UDT65内通信对象参数
      > FC21, 被FB420调用
      随后,使用通信功能块 FB65 "TCON"、FB66 "TDISCON"、FB63 "TSEND" 和 FB64 "TRCV" 完成程序的编写。

      4.1创建新项目

      1、打开STEP7,新建一个项目
      2、在项目中插入一个SIMATIC 300的站
      3、组态硬件,插入一个CPU317-2PN/DP的CPU,并为PN接口分配IP地址“192.168.0.3”,如图14所示。同时,在CPU的“Cycle/Clock Memory”属性页中指定MB0为时钟存储器,在程序中可以使用M0.3(2Hz 的时钟脉冲)去自动激活发送任务,如图15所示。


      图14为PN接口分配IP地址

       


      图15设置时钟存储器字节

      4.2编写通信程序

      1、从样例程序中拷贝通信所需的块
      从附件提供的sample_1 ( 50 KB ) 例程中把需要的FB420、FC21与UDT65程序块拷贝到新创建的项目中,如图16所示。


      图 16

      2、生成数据块
      在程序中创建一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65,如图17所示。


      图17

      3、生成并调用FB块
      首先生成一个FB块(本例为FB400),在FB400静态变量区建立一个结构“T_TSAP“,包含如下变量,并为变量分配初始值,如图18所示。
      1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有两个前导字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP规定)和 0x02(CPU槽号)
      2) LOC_TSAP(STRING14)= 本地用户定义的ASCII字符'PLC_1' (注意要与S7-1200侧设置保持一致)。
      3) REM_RACK_SLOT(BYTE)= B#16#0 不使用两个前导符。
      4) REM_TSAP (STRING16)= 远程用户定义的ASCII字符'PLC_1' (注意要与S7-1200侧设置保持一致)。


      图18

      然后在生成的FB400中调用FB420,如图19所示。


      图19

      其中参数的含义如下:
      1)ID: 连接ID,与S7-1200里的设置保持一致
      2)DEV_ID:用于本PLC型号(注意不是通信对方)
      DEV_ID = B#16#1本PLC型号为 IM151-8 PN/DP CPU
      DEV_ID = B#16#2本PLC型号为CPU31x-2PN/DP或IM154-8 CPU
      DEV_ID = B#16#3本PLC型号为CPU319-3PN/DP
      DEV_ID = B#16#5本PLC型号为CPU41x-3PN/DP
      3)ACTIVE: 主动或是被动建立连接,通信双方必须一个主动,一个被动,本例中S7-300侧为被动方。
      4)T_TSAP: 静态变量区的结构变量,用于ISO ON TCP 通信的TSAP地址
      5)IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址,即S7-1200的IP地址192.168.0.2
      6)CON_DB: 用UDT65生成的变量,即DB101

      4、在OB1中调用发送和接收功能块
      在OB1中先调用FB400功能块,为其指定背景数据块DB400,如图20所示。


      图20

      然后再在OB1中依次调用通信功能块FB65、FB64、FB63、FB66。其中发送和接收功能块FB64、FB63的数据区都为DB3,建立DB3如图21所示。关于块的使用请参考STEP7的在线帮助或相关文档说明。


      图21

      FB65 “TCON”,建立连接功能块,如图22所示。通过输入参数 "REQ"一个上升沿来建立连接。 “ID” 为连接ID,“CONNECT” 参数填写用 UDT65 生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON" 断开连接、CPU停止或者断电。其中CONNECT指定为通过UDT65生成的DB块,即DB101, ID = 1。通过M8.0启动作业,执行连接的建立。


      图22

      FB64 “TRCV”,接收功能块,如图23所示。"TRECV" EN_R始终为TRUE, ID 填写连接ID,”DATA” 填写接收数据区,输出参数 "NDR" 用于表示新的数据已经收到,输出参数 "LEN" 表示接收的数据长度。本例中连接ID = 1。指定DB3作为接收数据块,接收数据的字节长度为8,接收作业通过M8.1使能。


      图23

      FB63 “TSEND”,发送功能块,如图24所示。连接ID = 1。指定DB3为发送数据块,发送字节长度为8,发送作业通过M0.3触发。"TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。


      图24

      FB66 “TDISCON”,取消连接功能块,如图25所示。可以根据需要取消ID=W#16#1的连接,作业通过M8.2使能。


      图25

      4.3下载程序
      S7-300侧的组态和编程都完成后,直接下载到S7-300 CPU中,并启动CPU的运行。


      5 监控通信结果
      对S7-1200和S7-300都组态和编程后,下载所有组态及程序并搭建好网络后,首先在在S7-1200中将M8.0置位为1,然后再在S7-300中将M8.0置位为1,两个站的“TCON” 被激活,建立两个站之间的ISO on TCP连接。
      连接正常建立后,即可以进行数据的交换。在S7-1200和S7-300站中将 ”TRCV” 功能块的EN_R置位为1,使能接收,监控通信结果如图26所示。
      通过监控结果可以看到,S7-1200中发送数据块DB3的8个字节数据被发送到S7-300站的DB3中,同时,S7-300的DB3中接收到的数据又被发送到S7-1200的接收数据块DB4中。


      图26 在线监控通信结果

      1. 概述
      在现场应用中,很多仪表和设备仅支持Modbus RTU的通讯协议,第三方仪表可以做Modbus主站或从站,西门子的通讯模块CP341 / CP441-2 通过Dongle(硬件狗)可以扩展该协议,S7-200 集成的口可以支持自由口通讯,通过指令库也可以方便的实现Modbus RTU通讯。本文以S7-200作为Modbus 主站,CP341作为Modbus 从站,实现Modbus RTU通讯,阐述两者在通讯方面的设置和注意事项。


      2. 软件环境西门子模块6ES73225GH000AB0

      2.1 STEP7 V5.4 SP4
      用于编写 S7-300/400程序,此软件需要从西门子购买,本文档中的300的程序是使用Step7 V5.4 SP4的软件编写。

      2.2 CP PTP Param V5.1 SP11
      串行通讯模板的驱动程序,安装此驱动后才能对PtP模板进行参数配置,并在Step7中集成通讯编程需要使用的功能块。此驱动随购买模板一起提供,也可以从以下的链接下载27013524

      2.3 CP PTP Modbus Slave V3.1 SP7
      CP341或CP441-2用于Modbus从站时,需要安装此驱动协议,但安装之前必须先安装PtP Driver,此驱动可以在购买Modbus Dongle时选择购买,也可以从以下的链接下载27774276

      2.4 STEP7 Micro/WIN V4.0 SP6
      用于S7-200编程的软件,本文档中的200的程序是使用Step7 Micro/win 的软件编写。此软件可以从西门子下载中心免费下载,也可以从以下的链接下载。
      http://www.ad.siemens.com.cn/download 网站 自动化系统>>S7-200>>软件,文档编号S0002。

      2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
      S7-200实现Modbus RTU功能,可以使用Modbus的指令库,要使用西门子的标准指令库,必须先安装指令库的软件包 Instruction Library,安装后,可以在Step 7-Micro/WIN软件的库中找到Modbus相关的指令,该软件包可以从以下的链接下载。http://www.ad.siemens.com.cn/download 网站 自动化系统>>S7-200>>软件,文档编号S0010。


      3. 硬件列表和接线

      3.1 硬件列表

      S7-300从站 CPU315-2DP 6ES7 315-2AG10-0AB0
      CP341 RS422/485 6ES7 341-1CH01-0AE0
      Dongle 6ES7 870-1AB01-0YA0
      PC 适配器(USB) 6ES7 972-0CB20-0XA0
      S7-200主站 CPU 224XP 6ES7 214-2BD23-0XB0

      表1 硬件设备

      3.2 硬件接线

      3.2.1 接口定义
      S7-200的通讯口为RS485物理口(9针口),CP341是RS422/485的接口类型(15针口),两种设备的接口引脚的示意图如下所示,更详细的信息可以参考CP341及S7-200通信接口的手册。


      图1 S7-200 CPU通信口引脚定义

       


      图2 S7-300 CP341 RS422/485 通讯口引脚定义

      3.2.2 接线示意图


      图3 硬件结构和接线示意图


      4. 组态设置和编程

      4.1 S7-200做Modbus主站的设置
      S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口,此串行字符通信的格式:1个起始位;7/8位数据位;1位奇/偶/无校验;1停止位。通信波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500,符合这些格式的串行通讯设备可以和S7-200进行自由口通讯,Modbus RTU指令库就是使用自由口编程实现的。

      4.1.1 Modbus RTU主站库

      使用Modbus 主站指令库时需要注意的几点:

      • 需要S7-200的编程软件是 Micro/WIN V4.0 SP5及以上版本;
      • Modbus RTU 主站库对CPU的版本有要求,CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*-***23-0BA*);
      • Modbus主站可读/写的最大数据量为120个字(指每一个 MBUS_MSG 指令);
      • Modbus 主站库支持Port0和Port1(从站库只支持Port0口),本例中用Port0;
      • 使用Modbus 库时必须对库存储区进行分配,见下图设置,而且分配的空间不能和程序中其它空间冲突,否则编译调用会报错。


      图4 库存储区设置

      • Modbus主站库支持的功能码和地址对应关系:
         
        Modbus 地址 读 / 写 Modbus 从站须支持的功能
        00001~09999 功能1:读输出点
          数字量输出 功能5:写单个输出点
          功能15:写多个输出点
        10001~19999 功能2:读输入点
          数字量输入
        30001~39999 功能4:读输入寄存器
          输入寄存器
        40001~49999 功能3:读保持寄存器
          保持寄存器 功能6:写单个寄存器
          功能16:写多个寄存器

        表2需要从站支持的功能

      4.1.2 S7-200 Modbus主站编程
      编程时,使用SM0.0调用MBUS_CTRL完成主站的参数初始化,详细见下表,参数的说明也可以从子程序的局部变量表中找到。


      图5 Modbus RTU 主站初始化

      图中各参数含义如下

      编号 符号/含义 说                   明
      a EN / 使能 必须保证每一扫描周期都被使能(使用SM0.0)。
      b Mode / 模式 为1时使能为Modbus协议;为0时恢复为PPI协议。
      c Baud / 波特率 支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。
      d Parity / 校验 校验方式选择:0=无校验;1=奇校验,2=偶校验。
      e Timeout / 超时 主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000毫秒,允许设置的范围为1-32767。这个值必须设置足够大以保证从站有时间响应。
      f Done / 完成位 初始化完成,此位会自动置1。
      g Error / 错误位 初始化错误代码。

      表3

      调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求。


      图6 调用Modbus RTU 主站读写子程序

      图中各参数含义如下

      编号 符号/含义 说                   明
      a EN / 使能 同一时刻只能有一个读写功能使能。
      b First / 读写请求位  每一个新的读写请求必须使用脉冲触发。
      c Slave / 从站地址 可选择的范围1–247。
      d RW / 读写操作位 0=读, 1=写。
      e Addr / 读写从站的数据地址 选择读写的数据类型:
      00001 至 0xxxx - 开关量输出
      10001 至 1xxxx - 开关量输入
      30001 至 3xxxx - 模拟量输入
      40001 至 4xxxx - 保持寄存器。
      f Count / 数据的个数 通讯的数据个数(位或字的个数)。
      g DaptPtr / 数据指针 如果是读指令,读回的数据放到这个数据区中;
      如果是写指令,要写出的数据放到这个数据区中。
      h Done / 完成位 读写功能完成位。
      i Error / 错误代码 只有在Done位为1时,错误代码才有效。

      表4

      从上图中可见,S7-200作为Modbus RTU主站,波特率9.6Kb/s,偶校验,连接从站的站地址是3,数据存储区为VB2000开始的区域。

      4.2 CP341 做Modbus 从站的硬件组态

      4.2.1 硬件组态


      图7 S7-300侧硬件组态

      4.2.2 设置Modbus参数


      图8 消息桢字符结构

      按照上述操作设置参数,从上图可以看出,本例中的传输波特率9.6Kb/s,1位起始位,8位数据位,偶校验位,1位停止位,从站站地址是3,主从通讯设备的字符帧格式和波特率等参数设置需要一致。


      图9 RS422/485 接口组态

      RS422/485接口只能一个有效,接口的选择只需要组态而不需要在硬件上短接。

      4.2.3 Modbus驱动的下载
      当配置好Modbus通信的参数后,保存前需要向CP341下载Modbus Slave的驱动,一旦下载完成后无需再次下载。
      需要注意的是,在下载驱动时(可以在无Dongle情况下下载),需要将CPU停机,然后下载,操作过程如下所示。


      图10 下载Dongle时,需要CPU停机

       


      图11 从站驱动下载后结果

      4.2.4 CP341做Modbus从站的编程
      从Step7 软件下的EXAMPLE目录中,找到项目名“zXX21_05_PtP_Com_MODSL”的项目,打开,然后将Modbus通讯模块FB80传递到用户项目中,打开路径如下所示。


      图12 Modbus Slave 例程打开路径

      OB1中调用FB80编程如下:


      图13 FB80程序块调用

      CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK为1信号,否则CP_START_ERROR为1,同时可以从ERROR_NR察看错误信息,也可以在硬件组态中在线后的CP341的诊断缓冲区察看详细的错误信息,错误信息对照和处理方式可以参考
      《S7-300以用于PtP CP Modbus 协议RTU格式S7的可装载驱动程序为从站》的手册。

      FB80的各参数含义如下

      LADDR 硬件组态中CP341的起始逻辑地址,本例中为256
      START_TIMER 初始化超时定时器,本例中为T120
      START_TIME 初始化定时器时间,本例中为5S
      OB_MASK I/O访问错误屏蔽位,本例中为True(I/O访问错误已屏蔽)
      CP_START FB初始化使能位,本例中为M0.0
      CP_START_FM CP_START 初始化的上升沿位,本例中为M0.1
      CP_NDR 从CP卡写操作位,本例中为m0.2
      CP_START_OK 初始化完成且无错误,本例中为M0.3
      CP_START_ERROR 初始化完成,但有错误,本例中为M0.4
      ERROR_NR 错误号,本例中为MW2
      ERROR_INFO 错误信息,本例中为MW4

      表5


      5. 通讯测试
      Modbus RTU格式通信协议是以主从的方式进行数据传输的,在传输的过程中主站是主动方,即主站发送数据请求报文到从站,从站返回响应报文。Modbus 系统间的数据交换是通过功能码来控制的,以下对现场常用的功能码进行分类测试,关于功能码的详细信息请参考手册。

      5.1 FC01/05/15功能码
      CP341从站的通讯区域配置


      图14 FC01/05/15 参数组态界面

      FC01、FC05、FC15对应的数据区为位输出,数据的传递以位为单位,可以读写操作,用户地址区为0xxxx,Modbus地址在信息传递中从0开始。如上图,左边为信息传递地址(地址区不能冲突),右边对应的是S7-300的数据区。例如左边信息传递地址从0 ~ 7对应用户地址区为00001 ~ 00008,对应S7-300的M10.0 ~ M10.7,并且以此为例说明FC01功能码的通讯。
      S7-200主站程序调用


      图15 功能码FC01使用

      S7-200主站,用功能码FC01读取从站8点数字量输出,接收的数据存放在VB2000开始的区域,测试截图结果如下。


      图16 FC01功能码数据交换

      5.2 FC02功能码
      CP341从站的通讯区域配置


      图17 FC02 参数组态界面

      FC02对应的数据区为位输出,数据的传递以位为单位,只读操作,用户地址区为1xxxx,Modbus地址在信息传递中从0开始,如上图,左边为信息传递地址(地址区不能冲突),右边对应的是S7-300的数据区。例如左边信息传递地址从0 ~ 7对应用户地址区为10001 ~ 10008,对应S7-300的M20.0 ~ M20.7,并且以此为例说明FC02功能码的通讯。
      S7-200主站程序调用


      图18 功能码FC02使用

      S7-200主站,用功能码FC02读取从站8点数字量输入,接收的数据存放在VB2000开始的区域,测试截图结果如下。


      图19 FC02功能码数据交换

      5.3 FC03/06/16 功能码
      CP341从站的通讯区域配置


      图20 FC03/06/16参数组态界面

      FC03/06/16 对应的数据区为寄存器,数据的传递以字为单位,可以读写操作,用户地址区为4xxxx,Modbus地址在信息传递中从0开始。如上图,左边为信息传递地址,右边对应的是S7-300的数据区,左边传输地址不可改,右边只对应一个数据区。例如用户地址
      区为40001 ~ 40004,对应S7-300数据区为DB1.DBW0 ~ DB1.DBW6,并且以此为例说明
      FC03功能码的通讯。
      S7-200主站程序调用


      图21功能码FC03使用

      S7-200主站,用功能码FC03读取从站4个字寄存器,接收的数据存放在VB2000开始的区域,测试截图结果如下。


      图22 FC03功能码数据交换


      5.4 FC04 功能码
      CP341从站的通讯区域配置


      图23 FC04参数组态界面

      FC04对应的数据区为寄存器输入,数据的传递也以字为单位,只读操作,用户地址区3xxxx,Modbus地址在信息传送中从0开始。如上图,左边为信息传递地址,右边对应的是S7-300的数据区,左边传输地址不可改,右边只对应一个数据区。例如用户地址区为30001 ~ 30004,对应S7-300数据区为DB1.DBW0 ~ DB1.DBW6,并且以此为例说明FC04功能码的通讯。
      S7-200主站程序调用


      图24功能码FC04使用

      S7-200主站,用功能码FC04读取从站4个字输入寄存器,接收的数据存放在VB2000开始的区域,测试截图结果如下。


      图25 FC04功能码数据交换

      5.5 Limits 栏


      图26 Limits 参数组态界面

      对于写功能码FC05、06、15、16,可以禁用或限制访问相关S7-300存储区,即使用这些功能码时,S7-300存储区需要在设定的最小和最大的范围之间,如果访问的区域超出这个范围,则访问会被拒绝,同时输出报错误信息。


      6. 总结
      本文档以S7-200为主站和CP341为从站简单介绍了Modbus RTU通讯,关于通讯的组态设置,编程以及常用功能码的使用,其具体的使用可以作为西门子串行通讯模块与第三方的仪表、设备等进行串行通信的参考。

      S7300电源模板
      6ES7307-1BA00-0AA0
      6ES7307-1EA00-0AA0
      6ES7307-1KA01-0AA0
      CPU
      6ES7312-1AE13-0AB0
      6ES7312-5BE03-0AB0
      6ES7313-5BF03-0AB0
      6ES7313-6BF03-0AB0
      6ES7313-6CF03-0AB0
      6ES7314-1AG13-0AB0
      6ES7314-6BG03-0AB0
      6ES7314-6CG03-0AB0
      6ES7315-2AG10-0AB0
      6ES7315-2EH13-0AB0
      6ES7317-2AJ10-0AB0
      6ES7317-2EK13-0AB0
      6ES7318-3EL00-0AB0
      内存卡
      6ES7 953-8LF20-0AA0
      6ES7 953-8LG11-0AA0
      6ES7 953-8LJ20-0AA0
      6ES7 953-8LL20-0AA0
      6ES7 953-8LM20-0AA0
      6ES7 953-8LP20-0AA0
      开关量模板
      6ES7 321-1BH02-0AA0
      6ES7 321-1BH10-0AA0
      6ES7 321-1BH50-0AA0
      6ES7 321-1BL00-0AA0
      6ES7 321-7BH01-0AB0
      6ES7 321-1EL00-0AA0
      6ES7 321-1FF01-0AA0
      6ES7 321-1FF10-0AA0
      6ES7 321-1FH00-0AA0
      6ES7 321-1CH00-0AA0
      6ES7 321-1CH20-0AA0
      6ES7 322-1BH01-0AA0
      6ES7 322-1BH10-0AA0
      6ES7 322-1CF00-0AA0
      6ES7 322-8BF00-0AB0
      6ES7 322-5GH00-0AB0
      6ES7 322-1BL00-0AA0
      6ES7 322-1FL00-0AA0
      6ES7 322-1BF01-0AA0
      6ES7 322-1FF01-0AA0
      6ES7 322-5FF00-0AB0
      6ES7 322-1HF01-0AA0
      6ES7 322-1HF10-0AA0
      6ES7 322-1HH01-0AA0
      6ES7 322-5HF00-0AB0
      6ES7 322-1FH00-0AA0
      6ES7 323-1BH01-0AA0
      6ES7 323-1BL00-0AA0
      模拟量模板
      6ES7 331-7KF02-0AB0
      6ES7 331-7KB02-0AB0
      6ES7 331-7NF00-0AB0
      6ES7 331-7NF10-0AB0
      6ES7 331-7HF01-0AB0
      6ES7 331-1KF01-0AB0
      6ES7 331-7PF01-0AB0
      6ES7 331-7PF11-0AB0
      6ES7 332-5HD01-0AB0
      6ES7 332-5HB01-0AB0
      6ES7 332-5HF00-0AB0
      6ES7 332-7ND02-0AB0
      6ES7 334-0KE00-0AB0
      6ES7 334-0CE01-0AA0
      附件
      6ES7 365-0BA01-0AA0
      6ES7 360-3AA01-0AA0
      6ES7 361-3CA01-0AA0
      6ES7 368-3BB01-0AA0
      6ES7 368-3BC51-0AA0
      6ES7 368-3BF01-0AA0
      6ES7 368-3CB01-0AA0
      6ES7 390-1AE80-0AA0
      6ES7 390-1AF30-0AA0
      6ES7 390-1AJ30-0AA0
      6ES7 390-1BC00-0AA0
      6ES7 392-1AJ00-0AA0
      6ES7 392-1AM00-0AA0
      6ES7 392-1BM01-0AA0
      功能模板
      6ES7 350-1AH03-0AE0
      6ES7 350-2AH00-0AE0
      6ES7 351-1AH01-0AE0
      6ES7 352-1AH02-0AE0
      6ES7 355-0VH10-0AE0
      6ES7 355-1VH10-0AE0
      6ES7 355-2CH00-0AE0
      6ES7 355-2SH00-0AE0
      6ES7 338-4BC01-0AB0
      6ES7 352-5AH00-0AE0
      6ES7 352-5AH00-7XG0
      通讯模板
      6ES7 340-1AH02-0AE0
      6ES7 340-1BH02-0AE0
      6ES7 340-1CH02-0AE0
      6ES7 341-1AH01-0AE0
      6ES7 341-1BH01-0AE0
      6ES7 341-1CH01-0AE0
      6ES7 870-1AA01-0YA0
      6ES7 870-1AB01-0YA0
      6ES7 902-1AB00-0AA0
      6ES7 902-1AC00-0AA0
      6ES7 902-1AD00-0AA0
      6ES7 902-2AB00-0AA0
      6ES7 902-2AC00-0AA0
      6ES7 902-2AG00-0AA0
      6ES7 902-3AB00-0AA0
      6ES7 902-3AC00-0AA0
      6ES7 902-3AG00-0AA0
      6GK7 342-5DA02-0XE0
      6GK7 342-5DF00-0XE0
      6GK7 343-5FA01-0XE0
      6GK7 343-1EX30-0XE0
      6GK7 343-1EX21-0XE0
      6GK7 343-1CX00-0XE0
      6GK7 343-1CX10-0XE0
      6GK7 343-1GX20-0XE0
      6GK7 343-1GX21-0XE0
      6GK7 343-1HX00-0XE0
      6GK7 343-2AH00-0XA0
      6ES7971-1AA00-0AA0
      6ES7971-5BB00-0AA0
      6ES7314-6EH04-0AB0

      西门子模块6ES73225GH000AB0

    在线询盘/留言
  • 0571-87774297