西门子S7-300与S7-200SMART以太网接口实现S7通讯
敬业 |专注| 创新 | 传承
一、S7通信介绍S7-300/400通过以太网接口与S7-200 SMART PLC 之间的S7通讯需要S7-300/400侧编程调用PUT/GET指令,见表所示。
S7-400 | S7-300 | 描述 | 简要描述 |
SFB 14 | FB 14 | 读数据 | 单边编程读访问。 |
SFB 15 | FB 15 | 写数据 | 单边编程写访问。 |
S7-300/400根据使用通信接口(集成的PN口或CP343-1/CP443-1)不同,调用的功能块来源也不同。
通信接口为S7-300 集成PN接口时,需要使用Standard Library中PUT/GET指令,如图所示。
通信接口为S7-300 CP通信模块时,需要使用SIMATIC_NET_CP 库中PUT/GET指令
S7-400 CPU不区分通信接口,需要使用System Function Blocks 中的SFB14/SFB15指令块,如图所示。
本文以采用1个315-2PN/DP,1个S7-200 SMART PLC为例,介绍它们之间的S7通信。
在STEP7中创建一个新项目,项目名称为S7-300-SMART。插入1个S7-300站,在硬件组态中插入CPU 315-2 PN/DP。如图所示。
设置CPU 315-2PN/DP的IP地址:,如图所示。硬件组态完成后,即可下载该组态。
打开“NetPro”设置网络参数,选中CPU 315-2PN/DP,在连接列表中建立新的连接。步骤如图所示。
选择 Unspecified 站点,选择通讯协议 S7 connection,点击 Apply,如图所示。
在弹出的S7 connection属性对话框中,勾选 Establish an active connection,设置Partner address:(S7-200 SMART PLC IP 地址),如图所示。
点击 "Address Details" ,再弹出来的对话框设置 Partner 的 Slot 为1,如图所示。点击 OK即可关闭该对话框。
网络组态创建完成后,需要编译,如图所示。
网络组态编译无错,鼠标先点击 CPU 315-2PN/DP ,然后点击下载按钮下载网络组态,步骤如图所示。
可以通过SFB/FB 14 "GET",从远程CPU中读取数据。
S7-300:在REQ的上升沿处读取数据。在REQ的每个上升沿处传送参数ID、ADDR_1和RD_1。在每个作业结束之后,可以分配新数值给ID、ADDR_1和RD_1参数。
通过状态参数NDR数值为1来指示此作业已完成。只有在前一个作业已经完成之后,才能重新激活读作业。远程CPU可以处于RUN或STOP工作状态。如果 正在读取数据时发生访问故障,或如果数据类型检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。
通过使用SFB/FB 15 "PUT",可以将数据写入到远程CPU。
S7-300:在REQ的上升沿处发送数据。在REQ的每个上升沿处传送参数ID、ADDR_1和SD_1。在每个作业结束之后,可以给ID、ADDR_1和SD_1参数分配新数值。
如果没有产生任何错误,则在下一个SFB/FB调用时,通过状态参数DONE来指示,其数值为1。只有在后一个作业完成之后,才能再次激活写作业。远程 CPU可以处于RUN或STOP模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出 表示。
打开SIMATIC 315 PN-1的OB1,在OB1中依次调用FB14,FB15如图
FB14参数说明 :
参数 | 描述 | 数据类型 | 存储区 | 描述 |
REQ | INPUT | BOOL | I、Q、M、D、L | 上升沿触发调用功能块 |
ID | INPUT | WORD | M、D、常数 | 地址参数ID |
NDR | OUTPUT | BOOL | I、Q、M、D、L | 为1时,接收数据成功 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 接收到新数据 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 故障代码 |
S7-300: | IN_OUT | ANY | M、D I、Q、M、D、 | 从S7-200 SMART的数据地址中读取数据;V区数据对应DB1。 |
S7-300: | IN_OUT | ANY | S7-300:M、D | 本站接收数据地址 |
FB15参数说明 :
参数 | 描述 | 数据类型 | 存储区 | 描述 |
REQ | INPUT | BOOL | I、Q、M、D、L | 上升沿触发调用功能块 |
ID | INPUT | WORD | M、D、常数 | 地址参数 |
DONE | OUTPUT | BOOL | I、Q、M、D、L | 为1时,发送完成 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 为1时,有故障发生 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 故障代码 |
S7-300: | IN_OUT | ANY | M、D I、Q、M、D、 | 写入S7-200 SMART的数据地址数据;V区数据对应DB1。 |
S7-300: | IN_OUT | ANY | S7-300:M、D S7-400 I、Q、 | 本站发送数据地址 |
注意:
S7-200 SMART PLC 不需要编程。S7-200 SMART 中的V存储区在S7-300/400 PLC 编程中以DB1数据块的形式体现。
备注:
FB14/FB15可以直接使用S7-200SMART里面的I/Q/M存储区,如果要使用S7-200SMART里面的V区,S7-300在编程的时候对应存储区为DB1区,S7-200SMART的V区与S7-300的对应关系如下: