6ES7952-1KY00-0AA0西门子6ES7952-1KY00-0AA0存储卡
凡在上海朕锌电气设备有限公司采购西门子产品,均可质保一年,假一罚十
花30秒询价,你会知道什么叫优势;花60秒咨询,你会知道什么叫服务;
合作一次,你会知道什么叫质量!以质量求生存,以信誉求发展。
我司将提供*的质量,服务作为自已Z重要的责任。
西门子模块6ES7331-7PF11-4AB1
SIEMENS 可编程控制器
1、 SIMATIC S7 系列PLC:S7-200、S7-1200、S7-300、S7-400、ET-200
2、 逻辑控制模块 LOGO!230RC、230RCO、230RCL、24RC、24RCL等
3、 SITOP直流电源 24V DC 1.3A、2.5A、3A、5A、10A、20A、40A可并联.
4、HMI 触摸屏TD200 TD400C K-TP OP177 TP177,MP277 MP377,
SIEMENS 交、直流传动装置
1、 交流变频器 MICROMASTER系列:MM420、MM430、MM440、G110、G120.
MIDASTER系列:MDV
2、全数字直流调速装置 6RA23、6RA24、6RA28、6RA70、6SE70系列
SIEMENS 数控 伺服
SINUMERIK:801、802S 、802D、802D SL、810D、840D、611U、S120
系统及伺报电机,力矩电机,直线电机,伺服驱动等备件销售。
SIEMENS西门子上海朕锌电气设备有限公司
:郑鑫 :
:www.zhenxindianqi。。cn
工作 (同步)
1. 概述
在现场应用中,很多仪表和设备仅支持Modbus RTU的通讯协议,第三方仪表可以做Modbus主站或从站,西门子的通讯模块CP341 / CP441-2 通过Dongle(硬件狗)可以扩展该协议,S7-200 集成的口可以支持自由口通讯,通过指令库也可以方便的实现Modbus RTU通讯。本文以S7-200作为Modbus 主站,CP341作为Modbus 从站,实现Modbus RTU通讯,阐述两者在通讯方面的设置和注意事项。
2. 软件环境
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主站可读/写的zui大数据量为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 栏
西门子模块6ES7331-7PF11-4AB1
图26 Limits 参数组态界面
对于写功能码FC05、06、15、16,可以禁用或限制访问相关S7-300存储区,即使用这些功能码时,S7-300存储区需要在设定的zui小和zui大的范围之间,如果访问的区域超出这个范围,则访问会被拒绝,同时输出报错误信息。
6. 总结
本文档以S7-200为主站和CP341为从站简单介绍了Modbus RTU通讯,关于通讯的组态设置,编程以及常用功能码的使用,其具体的使用可以作为西门子串行通讯模块与第三方的仪表、设备等进行串行通信的参考。
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”通信指令
zui后,为了断开通信链接,我们需要调用“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 在线监控通信结果
6ES75184AP000AB0 CPU 1518-4 PN/DP,4 MB 程序,20 MB 数据;1 ns;集成 2x PN 接口,2x 以
太网接口,1x DP接口
6ES75173AP000AB0 CPU 1517-3 PN/DP,2 MB 程序,8 MB 数据;2 ns;集成 2x PN 接口,1x 以
太网接口,1x DP接口
6ES75163AN010AB0 CPU 1516-3 PN/DP,1 MB 程序,5 MB 数据;10 ns ;集成 2xPN 接口,1x 以
太网接口,1x DP 接口
6ES75152AM010AB0 CPU 1515-2 PN,500 KB 程序,3 MB 数据;30 ns;集成 2x PN 接口,1x 以太
网接口
6ES75131AL010AB0 CPU 1513-1 PN,300 KB 程序,1.5 MB 数据;40 ns;集成 2x PN 接口
6ES75111AK010AB0 CPU 1511-1 PN,150 KB 程序,1 MB 数据;60 ns;集成 2x PN 接口
6ES75121CK000AB0 CPU 1512C-1 PN, 250 KB程序,1 MB数据;48 ns;集成2x PN接口;集成 32
DI/32 DO, 5 AI/2 AO, 6 HSC@100kHz
6ES75111CK000AB0 CPU 1511C-1 PN, 175 KB程序,1 MB数据;60 ns;集成2x PN接口;集成 16
DI/16 DO, 5 AI/2 AO, 6 HSC@100kHz
6ES75121DK010AB0 CPU 1512SP-1 PN,200KB 程序,1 MB 数据;48 ns;集成 1x PN 接口 (可用
ET 200SP总线适配器再拓展2个PN 接口)
6ES75101DJ010AB0 CPU 1510SP-1 PN,100KB 程序,750 KB 数据;72 ns;集成 1x PN 接口(可用
ET 200SP总线适配器再拓展2个PN 接口)
6ES76772AA310EB0 CPU 1515SP PC,2 GB RAM,8 GB CFAST; 预装32位WINDOWS EMBEDDED STANDARD
7 E,预装CPU 1505S V1.7软件控制器
6ES76772AA410FB0 CPU 1515SP PC,4 GB RAM,16 GB CFAST; 预装64位WINDOWS EMBEDDED
STANDARD 7 P,预装CPU 1505S V1.7软件控制器
6ES76772AA410FK0 CPU 1515SP PC,4 GB RAM,16 GB CFAST; 预装64位WINDOWS EMBEDDED
STANDARD 7 P,预装CPU 1505S V1.7软件控制器和WINCC ADVANCED RUNTIME(带有128点*)
6ES76772AA410FL0 CPU 1515SP PC,4 GB RAM,16 GB CFAST; 预装64位WINDOWS EMBEDDED
STANDARD 7 P,预装CPU 1505S V1.7软件控制器和WINCC ADVANCED RUNTIME(带有512点*)
6ES76772AA410FM0 CPU 1515SP PC,4 GB RAM,16 GB CFAST; 预装64位WINDOWS EMBEDDED
STANDARD 7 P,预装CPU 1505S V1.7软件控制器和WINCC ADVANCED RUNTIME(带有2048点*)
6ES76727AC000YA0 CPU 1507S,VERSION 1.8(1个浮点*), 仅能在SIMATIC IPC上使用
6ES78062CD000YA0 S7-1500软件控制器用ODK,使用C/C++扩展S7-1500软件控制器的功能
6ES71936AR000AA0 总线适配器BA 2×RJ45
6ES71936AF000AA0 总线适配器BA 2×FC快连式
6ES71936AP000AA0 总线适配器BA 2×SCRJ光纤
6ES75455DA000AB0 S7-1510/1512 SP CPU DP通信模块 (RS-485 PROFIBUS-DP)
6ES79548LC020AA0 S7-1200/1500 4M 存储卡
6ES79548LE020AA0 S7-1200/1500 12M 存储卡
6ES79548LF020AA0 S7-1200/1500 24M 存储卡
6ES79548LL020AA0 S7-1200/1500 256M 存储卡
6ES79548LP020AA0 S7-1200/1500 2G 存储卡
6ES79548LT020AA0 S7-1200/1500 32G 存储卡
6ES71555AA000AB0 ET 200MP IM 155-5 PN ST 标准型接口模块
6ES71555AA000AC0 ET 200MP IM 155-5 PN HF 高性能型接口模块
6ES71555BA000AB0 ET 200MP IM 155-5 DP ST 标准型接口模块
6ES75070RA000AB0 PS:60 W,额定输入电压 AC/DC 120/230 V
6ES75050RA000AB0 PS:60 W,额定输入电压 DC 24/48/60 V
6ES75050KA000AB0 PS:25 W,额定输入电压 DC 24 V
6EP1332-4BA00 PM 1507:72W, 24 V/3 A,额定输入电压 AC 120/230 V
6EP1333-4BA00 PM 1507:192W, 24 V/8 A,额定输入电压 AC 120/230 V
6ES75325HF000AB0 AQ 8:模拟量输出模块,高速 AQ 8x U/I HS, 35mm模块,不含前连接器
6ES75325HD000AB0 AQ 4:模拟量输出模块,AQ 4x U/I ST, 35mm模块,不含前连接器
6ES75325ND000AB0 AQ 4:模拟量输出模块,高性能,通道隔离,AQ 4x U/I HF, 35mm模块,不含
前连接器
6ES75325NB000AB0 AQ 2:模拟量输出模块,AQ 2x U/I ST, 25mm模块,含前连接器
6ES75317KF000AB0 AI 8:模拟量输入模块,AI 8x U/I/RTD/TC ST, (支持4通道RTD), 35mm模块,
不含前连接器
6ES75317NF100AB0 AI 8:模拟量输入模块,高速,AI 8x U/I HS, 35mm模块,不含前连接器
6ES75317PF000AB0 AI 8:模拟量输入模块,高性能,通道隔离,AI 8x U/R/RTD/TC HF(支持8通道
RTD),35mm模块,不含前连接器
6ES75317NF000AB0 AI 8:模拟量输入模块,高性能,通道隔离,AI 8xU/I HF,35mm模块,不含前
连接器
6ES75317QD000AB0 AI 4:模拟量输出模块,AI 4x U/I/RTD/TC ST, 25mm模块,含前连接器
6ES75347QE000AB0 AI4/AQ2:模拟量输入/输出模块 AI/AO 4x U/I/RTD/TC 2x U/I ST, 25mm模块
,含前连接器
6ES75221BL010AB0 DQ 32:数字量输出模块,晶体管 DQ 32 x 24 VDC/ 0.5A HF, 35mm模块,不
含前连接器
6ES75221BL100AA0 DQ 32:数字量输出模块,晶体管 DQ 32 x 24 VDC/ 0.5A BA, 25mm模块,含
前连接器
6ES75221BH010AB0 DQ 16:数字量输出模块,晶体管 DQ 16 x 24 VDC/ 0.5A HF, 35mm模块,不
含前连接器
6ES75221BH100AA0 DQ 16:数字量输出模块,晶体管 DQ 16 x 24 VDC/ 0.5A BA, 25mm模块,含
前连接器
6ES75225FH000AB0 DQ 16:数字量输出模块,可控硅 DQ 16x 230 VAC/ 1A ST (TRIAC), 35mm模
块,不含前连接器
6ES75225HH000AB0 DQ 16:数字量输出模块,继电器 DQ 16x 230 VAC/ 2A ST (RELAY), 35mm模
块,不含前连接器
6ES75225EH000AB0 DQ 16:数字量输出模块,晶体管 DQ16 X 24...48VUC/125VDC/0.5A, 35mm模块
,不含前连接器
6ES75221BF000AB0 DQ 8:数字量输出模块,高性能 DQ 8x 24VDC/ 2A HF, 35mm模块,不含前
连接器
6ES75225FF000AB0 DQ 8:数字量输出模块,可控硅 DQ 8 x 230 VAC/ 2A ST (TRIAC), 35mm模
块,不含前连接器
6ES75225HF000AB0 DQ 8:数字量输出模块,继电器 DQ 8x 230VAC/ 5A ST (RELAY), 35mm模块,
不含前连接器
6ES75211BL000AB0 DI 32:数字量输入模块,高性能 DI 32x 24VDC HF, 35mm模块,不含前连接
器
6ES75211BL100AA0 DI 32:数字量输入模块,DI 32x 24VDC BA, 25mm模块,含前连接器
6ES75211BH000AB0 DI 16:数字量输入模块,高性能 DI 16x 24VDC HF, 35mm模块,不含前连接
器
6ES75211BH100AA0 DI 16:数字量输入模块,DI 16x 24VDC BA, 25mm模块,含前连接器
6ES75211BH500AA0 DI 16:数字量输入模块,源型,DI 16x 24VDC SRC BA, 35mm模块,不含前连
接器
6ES75211FH000AA0 DI 16:数字量输入模块,DI 16x 230V AC BA, 35mm模块,不含前连接器
6ES75217EH000AB0 DI 16:数字量输入模块,DI 16 X 24...125V UC HF, 35mm模块,不含前连接
器
6ES75231BL000AA0 DI16/DQ16:数字量输入/输出模块,16x 24VDC/16x 24VDC/ 0.5A BA, 25mm模
块,含前连接器
6ES75501AA000AB0 TM Count 2 x 24 V:2通道高速计数器与位置采集(增量型编码器,24号),
35mm模块,不含前连接器
6ES75511AB000AB0 TM PosInput 2,2通道计数与位置采集(增量型/值编码器SSI,RS422和5V
TTL信号), 35mm模块,不含前连接器
6ES75521AA000AB0 TM Timer DIDQ 16x24V 带时间戳、高速计数、PWM等功能, 35mm模块,不含前
连接器
6ES75401AB000AA0 PtP RS422/485 通讯模块
6ES75411AB000AB0 PtP RS422/485,高性能通讯模块(支持Modbus RTU)
6ES75401AD000AA0 PtP RS232通讯模块
6ES75411AD000AB0 PtP RS232,高性能通讯模块(支持Modbus RTU)
6ES75901BC000AA0 S7-1500 安装导轨:2000 mm
6ES75901AJ300AA0 S7-1500 安装导轨:830 mm
6ES75901AF300AA0 S7-1500 安装导轨:530 mm
6ES75901AE800AA0 S7-1500 安装导轨:482 mm
6ES75901AC400AA0 S7-1500 安装导轨:245 mm
6ES75901AB600AA0 S7-1500 安装导轨:160 mm
6ES75922AX000AA0 标签,35mm模板适用,100片
6ES75921AX000AA0 标签,25mm模板适用,100片
6ES75921AM000XB0 35mm模板前连接器,螺钉型,40针,含4根跳线
6ES75921BM000XB0 35mm模板前连接器,快连型,40针,含4根跳线
6ES75921BM000XA0 25mm模板前连接器,快连型,40针,含4根跳线
6ES75905AA000AA0 "用于连接PE(地)到S7-1500安装导轨的接地元件,
对于2000mm的安装导轨是
必须的 每个包装20片"
6ES75911AA010AA0 S7-1511/13CPU显示面板
6ES75911BA010AA0 S7-1515/16/17/18CPU显示面板
6ES75908AA000AA0 S7-1500 PS/PM供电模板连接头,内含10片
6ES75280AA707AA0 接口模块(6ES7 155-5AA00-0AB0)前盖板5片/包
6ES75280AA007AA0 I/O模块前盖板5片/包,35mm模板适用
6ES75280AA000AA0 I/O模块前盖板5片/包,25mm模板适用
6ES75900AA000AA0 U型连接器,,5片/包
6ES75923AA000AA0 跳线,20片/包
6ES75905CA000AA0 35mm模块屏蔽套件:含屏蔽端子,框架以及24VDC接线端
6ES75905CA000AA0 25mm模块屏蔽套件:含屏蔽端子,框架以及24VDC接线端
6ES75905BA000AA0 模拟量/技术模板屏蔽端子
6ES76772AA300AA0 CPU 1515SP PC,2 GB RAM,不带CFAST卡,无预装软件,仅作备件使用
6ES76772AA400AA0 CPU 1515SP PC,4 GB RAM,不带CFAST卡,无预装软件,仅作备件使用
6ES72111BE400XB0 CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI
6ES72111AE400XB0 CPU 1211C DC/DC/DC,6输入/4输出,集成2AI
6ES72111HE400XB0 CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI
6ES72121BE400XB0 CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI
6ES72121AE400XB0 CPU 1212C DC/DC/DC,8输入/6输出,集成2AI
6ES72121HE400XB0 CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI
6ES72141BG400XB0 CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI
6ES72141AG400XB0 CPU 1214C DC/DC/DC,14输入/10输出,集成2AI
6ES72141HG400XB0 CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI
6ES72151BG400XB0 CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO
6ES72151AG400XB0 CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO
6ES72151HG400XB0 CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO
6ES72171AG400XB0 CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO
A5E "SIEMCORE918
BASED ON:
SIMATIC S7-1200, CPU 1212C,
COMPACT CPU, DC/DC/DC,
ONBOARD
I/O:
8 DI 24V DC; 6 DO 24 V DC;
2 AI 0 - 10V DC,
POWER SUPPLY: DC
20.4 - 28.8 V DC,
PROGRAM/DATA
MEMORY: 50 KB"
6ES72211BF320XB0 SM1221 数字量输入模块, 8 输入24V DC
6ES72211BH320XB0 SM1221 数字量输入模块, 16 输入24V DC
6ES72221HF320XB0 SM1222 数字量输出模块, 8输出继电器
6ES72221BF320XB0 SM1222 数字量输出模块, 8输出24V DC
6ES72221XF320XB0 SM1222 数字量输出模块, 8输出切换继电器
6ES72221HH320XB0 SM1222 数字量输出模块, 16输出继电器
6ES72221BH320XB0 SM1222 数字量输出模块, 16输出24V DC
6ES72231PH320XB0 SM1223 数字量输入输出模块 8输入24V DC/ 8输出继电器
6ES72231BH320XB0 SM1223 数字量输入输出模块 8输入24V DC/ 8输出24V DC
6ES72231PL320XB0 SM1223 数字量输入输出模块 16输入24V DC/ 16输出继电器
6ES72231BL320XB0 SM1223 数字量输入输出模块 16输入24V DC/ 16输出24V DC
6ES72231QH320XB0 SM1223 数字量输入输出模块 8输入120/230V AC/ 8输出继电器
6ES72314HD320XB0 SM1231 模拟量输入模块 4AI 13位分辩率
6ES72315ND320XB0 SM1231 模拟量输入模块 4AI 16位分辩率
6ES72314HF320XB0 SM1231 模拟量输入模块 8AI 13位分辩率
6ES72315PD320XB0 SM1231 热电阻模块 4RTD 16位分辩率
6ES72315QD320XB0 SM1231 热电偶模块 4TC 16位分辩率
6ES72315PF320XB0 SM1231 热电阻模块 8RTD 16位分辩率
6ES72315QF320XB0 SM1231 热电偶模块 8TC 16位分辩率
6ES72324HB320XB0 SM1232 模拟量输出模块 2AO 14位分辩率
6ES72324HD320XB0 SM1232 模拟量输出模块 4AO 14位分辩率
6ES72344HE320XB0 SM1234 模拟量输入输出模块 4AI/2AO
6ES72411CH320XB0 CM1241 RS485 /422通讯模块
6ES72411AH320XB0 CM1241 RS232通讯模块
6ES72411CH301XB0 CB1241 RS485信号板通讯模块
6ES72784BD320XB0 SM1278 I/O Link Master
6ES72213AD300XB0 SB1221 数字量信号板模块,支持5V DC输入信号, 4输入 5V DC,zui高频率200KHZ
6ES72213BD300XB0 SB1221 数字量信号板模块,支持24V DC输入信号,4输入 24V DC ,zui高频率
200KHZ
6ES72221AD300XB0 SB1222 数字量信号板模块 支持5V DC 输出信号, 4输出 5V DC,zui高频率
200KHZ
6ES72221BD300XB0 SB1222 数字量信号板模块 4输出 24V DC 0.1A zui高频率200KHZ
6ES72230BD300XB0 SB1223 数字量信号板模块 2输入24V DC/ 2输出24V DC
6ES72233AD300XB0 SB1223 数字量信号板查模块,支持5V DC输入信号,2输入 5V DC/2输出 5V DC
0.1A,zui高频率200KHZ
6ES72233BD300XB0 SB1223 数字量信号板模块,支持24 V DC输入信号, 2输入24V DC/ 2输出24V DC
0.1 A ,zui高频率200KHZ
6ES72324HA300XB0 SB1232, 模拟量信号板模块, 1AO
6ES72314HA300XB0 SB1231, 模拟量信号板模块, 1AI, 10位分辩率, (0-10V)
6ES72315PA300XB0 SB1231, 热电阻信号板模块,1 RTD 类型: Platinum (Pt)
6ES72315QA300XB0 SB1231, 热电偶信号板模块,1 TC1 类型: J, K
6ES79548LC020AA0 S7-1200 4M 存储卡
6ES79548LE020AA0 S7-1200 12M 存储卡
6ES79548LF020AA0 S7-1200 24M 存储卡
6ES79548LL020AA0 S7-1200 256M 存储卡
6ES79548LP020AA0 S7-1200 2G 存储卡
6ES79548LT020AA0 S7-1200 32G 存储卡
6ES72741XH300XA0 1214C /1215C 模拟器
6ES72741XF300XA0 1211C/1212C 模拟器
6ES72741XA300XA0 S7-1200CPU 2路模拟量输入模拟器
6ES72741XK300XA0 1217C模拟器,14输入通道,其中10通道为24V直流输入,4通道为1.5V差分输入
开关