资源描述
一、S7-200 SMART CPU之间的以太网通信
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
— CPU与编程设备之间的数据交换。
— CPU与HMI之间的数据交换。
— CPU与其他S7-200 SMART CPU之间的PUT/GET通信。
S7-200 SMART CPU 以太网连接资源如下:
— 1个连接用于与STEP7 Micro/Win SMART软件的通信。
— 8个连接用于CPU与HMI之间的通信。
— 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET主动连接
— 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET被动连接
PUT/GET 指令格式
S7-200 SMART CPU提供了PUT/GET 指令,用于S7-200 SMART CPU之间的以太网通信(PUT/GET 指令格式见 表 1)。PUT/GET 指令只需要在主动建立连接的 CPU 中调用执行,被动建立连接的 CPU不需要进行通信编程。PUT/GET 指令中TABLE 参数用于定义远程CPU的 IP地址、本地CPU和远程 CPU的数据区域以及通信长度(TABLE 参数定义见 表 2)。
表 1 PUT和GET 指令:
LAD/FBD
STL
描述
PUT TABLE
PUT 指令启动以太网端口上的通信操作,将数据写入远程设备。PUT 指令可向远程设备写入最多 212 个字节的数据。
GET TABLE
GET 指令启动以太网端口上的通信操作,从远程设备获取数据。GET 指令可从远程设备读取最多 222 个字节的数据。
表 2 PUT和GET 指令的TABLE参数定义:
字节偏移量
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
D1
A2
E3
0
错误代码4
1
远程 CPU的 IP地址
2
3
4
5
预留(必须设置为0)
6
预留(必须设置为0)
7
指向远程 CPU 通信数据区域的地址指针
(允许数据区域包括:I、Q、M、V)
8
9
10
11
通信数据长度5
12
指向本地 CPU 通信数据区域的地址指针
(允许数据区域包括:I、Q、M、V)
13
14
15
1 D :通信完成标志位,通信已经成功完成或者通信发生错误。
2 A :通信已经激活标志位。
3 E :通信发生错误,错误原因需要查询 错误代码4。
4 错误代码 :见表 3 PUT 和 GET 指令TABLE 参数的错误代码。
5 通信数据长度 :需要访问远程 CPU通信数据的字节个数,PUT 指令可向远程设备写入最多 212 个字节的数据,GET 指令可从远程设备读取最多 222 个字节的数据。
表 3 PUT 和 GET 指令TABLE 参数的错误代码:
错误代码
描述
0
通信无错误
1
PUT/GET TABLE参数表中存在非法参数:
· 本地CPU通信区域不包括 I、Q、M 或 V。
· 本地CPU不足以提供请求的数据长度。
· 对于 GET指令数据长度为零或大于 222 字节;对于 PUT指令数据长度大于 212 字节。
· 远程CPU通信区域不包括 I、Q、M 或 V。
· 远程CPU 的IP 地址是非法的 (0.0.0.0)。
· 远程CPU 的IP 地址为广播地址或组播地址。
· 远程CPU 的IP 地址与本地 CPU的IP 地址相同
· 远程CPU 的IP 地址位于不同的子网。
2
同一时刻处于激活状态的 PUT/GET 指令过多(仅允许 16 个)
3
无可以连接资源,当前所有的连接都在处理未完成的数据请求(S7-200 SAMRT CPU主动连接资源数为 8 个)。
4
从远程 CPU 返回的错误:
· 请求或发送的数据过多。
· STOP 模式下不允许对 Q 存储器执行写入操作。
· 存储区处于写保护状态
5
与远程 CPU 之间无可用连接:
· 远程 CPU 无可用的被动连接资源(S7-200 SMART CPU被动连接资源数为 8 个)。
· 与远程 CPU 之间的连接丢失(远程 CPU 断电或者物理断开)。
6-9
预留
通信资源数量
S7-200 SMART CPU 以太网端口含有 8 个PUT/GET 主动连接资源和 8 个PUT/GET 被动连接资源。例如:CPU1 调用 PUT/GET 指令与 CPU2 ~ CPU9 建立8主动连接的同时,可以与 CPU10 ~ CPU17 建立8被动连接(CPU10 ~ CPU17 调用 PUT/GET 指令),这样的话 CPU1 可以同时与16台 CPU(CPU2 ~ CPU17)建立连接。关于主动连接资源和被动连接资源的详细解释如下:
1、主动连接资源和被动连接资源
· 调用 PUT/GET 指令的CPU 占用主动连接资源数;相应的远程 CPU 占用被动连接资源。
2、8 个PUT/GET 主动连接资源
· S7-200 SMART CPU 程序中可以包含远多于 8个PUT/GET 指令的调用,但是在同一时刻最多只能激活 8 个 PUT/GET 连接资源。
· 同一时刻对同一个远程 CPU 的多个 PUT/GET 指令的调用,只会占用本地 CPU的一个主动连接资源和远程 CPU的一个被动连接资源。本地 CPU 与远程 CPU之间只会建立一条连接通道,同一时刻触发的多个 PUT/GET 指令将会在这条连接通道上顺序执行。
· 同一时刻最多能对8个不同 IP 地址的远程 CPU 进行 PUT/GET 指令的调用,第9个 远程CPU的PUT/GET 指令调用将报错,无可用连接资源。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
3、8 个PUT/GET 被动连接资源
· S7-200 SMART CPU 调用 PUT/GET 指令,执行主动连接的同时也可以被动地被其他远程 CPU 进行通信读写。
· S7-200 SMART最多可以与被8个不同 IP 地址的远程 CPU 进行 建立被动连接。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
指令编程举例
在下面的例子中,CPU1 为主动端,其 IP 地址为192.168.2.100,调用 PUT/GET 指令;CPU2 为被动端,其 IP 地址为192.168.2.101,不需调用 PUT/GET 指令,网络配置见图 1 。通信任务是把 CPU1 的实时时钟信息写入 CPU2 中,把CPU2 中的实时时钟信息读写到 CPU1 中。
图 1 CPU通信网络配置图
1、CPU1 主动端编程
CPU1 主程序中包含读取 CPU 实时时钟、初始化 PUT/ GET 指令的 TABLE 参数表、调用 PUT 指令和 GET 指令等。
网络1:读取 CPU1 实时时钟,存储到 VB100 ~ VB107 。
图 2 读取 CPU1 实时时钟
注:READ_RTC 指令用于读取 CPU 实时时钟指令,并将其存储到从字节地址 T 开始的 8 字节时间缓冲区中,数据格式为 BCD 码。
网络2:定义 PUT 指令 TABLE 参数表,用于将 CPU1 的VB100 ~ VB107 传输到远程 CPU2 的VB0 ~ VB7。
图 3 定义 PUT 指令 TABLE 参数表
· a.定义通信状态字节
· b.定义 CPU2 IP 地址
· c.定义 CPU2 的通信区域 ,从 VB0 地址开始
· d.定义通信数据长度
· e.定义 CPU1 的通信区域,从 VB100 地址开始
网络3:定义 GET 指令 TABLE 参数表,用于将远程 CPU2 的VB100 ~ VB107 读取到 CPU1 的 VB0 ~ VB7。
图 4 定义 GET 指令 TABLE 参数表
· a.定义通信状态字节
· b.定义 CPU2 IP 地址
· c.定义 CPU2 的通信区域 ,从 VB100 地址开始
· d.定义通信数据长度
· e.定义 CPU1 的通信区域,从 VB0 地址开始
网络4:调用 PUT 指令和 GET 指令。
图 5 调用 PUT 指令和 GET 指令
2、CPU2 被动端编程
CPU2 的主程序只需包含一条语句用于读取 CPU2 的实时时钟,并存储到 VB100 ~ VB107,如图 6 所示。
图 6 读取 CPU2 实时时钟
PUT/GET例程
为了更好地理解 PUT/GET指令的编程,可参考下面的例程。
PUT_GET_CPU1.smart
PUT_GET_CPU2.smart
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
二:S7-200 SMART CPU PUT/GET 向导
在 S7-200 SMART CPU 之间以太网通信 章节中 CPU1 的PUT/GET 指令的编程可以使用 PUT/GET 向导以简化编程步骤。该向导最多允许组态 16 项独立 PUT/GET 操作,并生成代码块来协调这些操作。
PUT/GET 向导编程步骤
1、STEP 7 Micro/WIN SMART 在“工具” 菜单的“向导”区域单击“Get/Put”按钮,启动 PUT/GET 向导(见图 1)。
图 1 启动 PUT/GET 向导
2、在弹出的“Get/Put”向导界面中添加操作步骤名称并添加注释(见图 2)。
图 2 添加 PUT/GET 操作
· a. 点击“添加”按钮,添加PUT/GET 操作
· b. 为每个操作创建名称并添加注释
3、定义PUT/GET 操作(见图 3 、图 4)。
图 3 定义 PUT 操作
· a. 选择操作类型,PUT 或 GET
· b. 通信数据长度
· c. 定义远程 CPU 的 IP 地址
· d. 本地 CPU 的 通信区域和起始地址
· e. 远程 CPU 的 通信区域和起始地址
图 4 定义 GET 操作
· a. 选择操作类型,PUT 或 GET
· b. 通信数据长度
· c. 定义远程 CPU 的 IP 地址
· d. 本地 CPU 的 通信区域和起始地址
· e. 远程 CPU 的 通信区域和起始地址
4、定义PUT/GET 向导存储器地址分配(见图 5)。
图 5 分配存储器地址
注: 点击“建议”按钮向导会自动分配存储器地址。需要确保程序中已经占用的地址、PUT/GET 向导中使用的通信区域与不能存储器分配的地址重复,否则将导致程序不能正常工作。
5、在 图 5 中点击“生成”按钮将自动生成网络读写指令以及符号表。只需用在主程序中调用向导所生成的网络读写指令即可(见图 6)。
图 6 主程序中调用向导生成的网络读写指令
PUT/GET 向导例程
为了更好地理解 PUT/GET指令的编程,可参考下面的例程。
PUT_GET_CPU1.smart
PUT_GET_CPU2.smart
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
常见问题
1、S7-200 SMART CPU以太网通信端口支持哪些通信协议,是否支持TCP、UDP和ISO on TCP等开放式用户通信或Modbus TCP通信?
S7-200 SMART CPU以太网通信端口从V2.2固件支持TCP、UDP和ISO on TCP等开放式用户通信及Modbus TCP通信。
2、S7-200 SMART CPU标准型和紧凑型产品是否都支持 GET/PUT 通信?
S7-200 SMART CPU 全系列产品都支持 GET/PUT 通信。但是固件版本低于 V2.0 的产品不支持 GET/PUT 通信,CPU 固件可以通过 Micro SD 卡进行升级。
3、S7-200 SMART CPU在同一时刻能否对同一个远程 CPU 调用多于 8 个 GET/PUT 指令?
同一时刻对同一个远程 CPU 可以调用多于 8 个 GET/PUT 指令。同一时刻对同一个远程 CPU 调用多个 GET/PUT 指令只会占用 1 个GET/PUT 主动连接资源,而不是 8 个主动连接资源。
4、为什么有些第三方触摸屏不能与 STEP 7-Micro/WIN SMART 软件同时访问 S7-200 SMART CPU?
虽然S7-200 SMART CPU 以太网端口具有 25 个连接资源,但是其中只有 1 个连接资源(PG连接资源)用于与 STEP 7-Micro/WIN SMART 软件的通信。如果第三方触摸屏与S7-200 SMART CPU的连接也使用 PG连接资源,就会造成第三方触摸屏不能与 STEP 7-Micro/WIN SMART 软件同时访问 S7-200 SMART CPU。
5、GET/PUT 指令可以传送的最大用户数据是多少?
GET 指令可从远程站点读取最大 222 个字节的用户数据,PUT 指令可向远程站点写入最大 212 个字节的用户数据;大数据量的用户数据通信可以调用多个 GET/PUT 指令来实现。采用 GET/PUT 向导时每个操作的读写用户数据的最大个数为 200 个字节。
6、GET/PUT 通信错误有哪些可能原因?
GET/PUT 指令 TABLE 参数表的第一个字节提供了“错误代码”,用于排查错误原因。GET/PUT 指令故障可能原因:
● S7-200 SMART CPU 固件版本较低,通信双方 CPU 固件都需要 V2.0 及以上版本。
● 超出了本地 CPU 主动连接资源限制或远程 CPU 无可用的被动连接资源。
● GET/PUT 指令 TABLE 参数定义错误。
● 通信站点之间的物理连接出错。
二:S7-200 SMART CPU与S7-300/400以太网接口进行S7通信
S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。经过测试发现S7-300/400通过集成的PN口或CP343-1/CP443-1与S7-200 SMART PLC 之间的S7通信也是可以成功的, 但是需要S7-300/400侧编程调用PUT/GET指令。
注意:
1.S7-200 SMART CPU 与S7-300/400 CPU 之间的S7通信未经西门子官方测试,本文档仅供客户测试使用,使用该种通信方式所产生的任何危险需要有客户自己承担!
2.S7-200 SMARTPLC V2.0 版本才开始支持PUT/GET通信,V1.0版本的CPU需要升级固件后方可支持PUT/GET。
3. S7-300/400若采用CP通信时,则需要采用Standard或Advanced类型通信模块,CP343-1 Lean模块不支持。
4.本文仅介绍S7-300集成PN口与S7-200 SMART CPU S7通信。
S7通信介绍
S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。
S7-300/400通过以太网接口与S7-200 SMART PLC 之间的S7通讯经过测试是可以成功的,但是需要S7-300/400侧编程调用PUT/GET指令,见表1所示。
表 1 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指令,如图1所示。
图1 S7-300PN接口需采用Standard Library
通信接口为S7-300 CP通信模块时,需要使用SIMATIC_NET_CP 库中PUT/GET指令,如图2所示。
图2 S7-300 CP模块接口需采用SIMATIC_NET_CP库
S7-400 CPU不区分通信接口,需要使用System Function Blocks 中的SFB14/SFB15指令块,如图3所示。
图3 S7-400 需采用SFB程序块
硬件及网络组态
本文以采用1个315-2PN/DP,1个S7-200 SMART PLC为例,介绍它们之间的S7通信。
在STEP7中创建一个新项目,项目名称为S7-300-SMART。插入1个S7-300站,在硬件组态中插入CPU 315-2 PN/DP。如图4所示。
图4 STEP7 项目中插入S7-300站点
设置CPU 315-2PN/DP的IP地址:192.168.0.1,如图5所示。硬件组态完成后,即可下载该组态。
图5 设置CPU PN IP地址
打开“NetPro”设置网络参数,选中CPU 315-2PN/DP,在连接列表中建立新的连接。步骤如图6所示。
图6 NetPro组态视图中插入新连接
选择 Unspecified 站点,选择通讯协议 S7 connection,点击 Apply,如图7所示。
图7 组态新连接
在弹出的S7 connection属性对话框中,勾选 Establish an active connection,设置Partner address:192.168.0.2(S7-200 SMART PLC IP 地址),如图8所示。
图8 设置S7连接参数
点击 "Address Details" ,再弹出来的对话框设置 Partner 的 Slot 为1,如图9所示。点击 OK即可关闭该对话框。
图9 设置“address details”参数
网络组态创建完成后,需要编译,如图10所示。
图10 保存并编译连接
网络组态编译无错,鼠标先点击 CPU 315-2PN/DP ,然后点击下载按钮下载网络组态,步骤如图11所示。
图 11 下载组态连接
程序编程
可以通过SFB/FB 14 "GET",从远程CPU中读取数据。
S7-300:在REQ的上升沿处读取数据。在REQ的每个上升沿处传送参数ID、ADDR_1和RD_1。在每个作业结束之后,可以分配新数值给ID、ADDR_1和RD_1参数。
S7-400:在控制输入REQ的上升沿处启动SFB。在此过程中,将要读取的区域的相关指针(ADDR_i)发送到伙伴CPU。远程伙伴返回此数据。在下一个SFB/FB调用处,已接收的数据被复制到组态的接收区(RD_i)中。必须要确保通过参数ADDR_i和RD_i定义的区域在长度和数据类型方面要相互匹配。
通过状态参数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参数分配新数值。
S7-400:在控制输入REQ的上升沿处启动SFB。在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴CPU。 远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。必须要确保通过参数ADDR_i和SD_i定义的区域在编号、长度和数据类型方面相互匹配。
如果没有产生任何错误,则在下一个SFB/FB调用时,通过状态参数DONE来指示,其数值为1。只有在最后一个作业完成之后,才能再次激活写作业。远程CPU可以处于RUN或STOP模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。
打开SIMATIC 315 PN-1的OB1,在OB1中依次调用FB14,FB15如图12、图13所示:
图12 FB14调用
表2.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:
ADDR_1
S7-400:
ADDR_i
(1 ≤ i ≤ 4)
IN_OUT
ANY
M、D、I、Q、M、D、
T、C
从S7-200 SMART的数据地址中读取数据;V区数据对应DB1。
S7-300:
RD_1
S7-400:
RD_i
(1 ≤ i ≤ 4)
IN_OUT
ANY
S7-300:M、D
S7-400 I、Q、 M、D、T、C
本站接收数据地址
图13 FB15调用
表3.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:
ADDR_1
S7-400:
ADDR_i
(1 ≤ i ≤ 4)
IN_OUT
ANY
M、D、I、Q、M、D、T、C
从S7-200 SMART的数据地址中读取数据;V区数据对应DB1。
S7-300:
SD_1
S7-400:
SD_i
(1 ≤ i ≤ 4)
IN_OUT
ANY
S7-300:M、D
S7-400 I、Q、M、D、T、C
本站发送数据地址
注意:
S7-200 SMART PLC 不需要编程。 S7-200 SMART 中的V存储区在S7-300/400 PLC 编程中以DB1数据块的形式体现。
三:S7-200 SMART CPU与S7-1200进行S7通信
S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。
经过测试发现S7-1200与S7-200 SMART PLC 之间的S7通信也是可以成功的,S7-1200侧编程调用PUT/GET指令或者S7-200 SMART侧编程调用PUT/GET指令都是可以的。
注意:
1.S7-200 SMART CPU 与S7-1200 之间的S7通信未经西门子官方测试,本文档仅供客户测试使用,使用该种通信方式所产生的任何危险需要有客户自己承担!
2.S7-200 SMARTPLC V2.0 版本才开始支持PUT/GET通信,V1.0版本的CPU需要升级固件后方可支持PUT/GET。
3.本文只介绍了S7-1200侧调用PUT/GET指令编程方式(S7-200 SMART CPU作为服务器方,无需编程),未介绍S7-200 SMART侧编程调用PUT/GET方式。
硬件和软件需求及所完成的通信任务
本文以采用1个CPU1215C(6ES7215-1AG40-0AB0),1个S7-200 SMART PLC为例,介绍它们之间的S7通信。
硬件:
① S7-1200 CPU
② S7-200 SMART CPU (固件V2.0)
③ PC (带以太网卡)
④ TP以太网电缆
软件:
① STEP7 V13 SP1
② STEP 7 Micro/WIN SMART V2.1
所完成的通信任务:
① S7-1200 将通信数据区 DB1 中的200 个字节发送到 S7-200 SMART的VB 数据区。
② S7-1200 读取 S7-200 SMART中的VB数据区存储到S7-1200 的数据区DB2 。
S7-1200侧硬件组态和网络组态
1. 使用TIA V13 软件新建一个项目,添加1个S7-1200站点并为其分配网络和IP地址 ,如图1.所示。
图1. TIA 软件中添加S7-1200站点
2. TIA 软件的网络视图中为S7-1200 CPU 添加一个新连接,如图2.所示。
图2.S7-1200 添加新连接
在弹出"创建新连接"对话框中选择"未指定",然后点击"添加"按钮,添加新连接,如图3.所示。
图3.选择未指定连接
需要为新创建的连接指定连接伙伴方的IP地址和TSAP,设置方法如图4.,图5.所示。
注意:S7-200 SMART 侧的TSAP 只能设置为03.00 或者03.01 。
图4. 设置连接伙伴方IP地址
图5. 设置连接伙伴方TSAP地址
TIA软件程序编程
1 .创建发送数据块DB1(接收区数据块DB2类似),数据块定义为200个字节的数组且数据块的属性中需要取消"优化的块访问"选项,如图6. 所示。
图6. 创建数据块并取消优化访问
2.发送数据块与接收数据块创建完成后,即可在OB1中调用PUT/GET指令,进行S7通信了,如图7.所示。
图7.调用PUT/GET指令
表1.PUT 指令参数说明
CALL “PUT”
, %DB3
//调用 PUT,使用背景DB块:DB3
REQ
:=%M0.0
//上升沿触发程序块的调用
ID
:=W#16#0100
//连接号,要与连接配置中一致,创建连接时的连接号,见图1.标记7
DONE
:=%M2.0
// 为1时,发送完成
ERROR
:=%M2.1
// 为1时,有故障发生
STATUS
:=%MW4
// 状态代码
ADDR_1
:=P#DB1.DBX0.0 BYTE 200
// 发送到通信伙伴数据区的地址,对应S7-200 SMART VB0-VB199
SD_1
:=P#DB1.DBX0.0 BYTE 200
// 本地发送数据区
表2.GET指令参数说明
CALL “GET”
, %DB4
//调用 GET,使用背景DB块:DB4
REQ
:=%M0.1
//系统时钟 2秒脉冲
ID
:=W#16#0100
//连接号,要与连接配置中一致,创建连接时的连接号,见图1.标记7
NDR
:=%M2.2
//为1时,接收到新数据
ERROR
:=%M2.3
//为1时,有故障发生
STATUS
:=%MW6
//状态代码
ADDR_1
:=P#DB1.DBX200.0 BYTE 200
//从通信伙伴数据区读取数据的地址,对应S7-200 SMART VB200-VB399
RD_1
:=P#DB2.DBX0.0 BYTE 200
//本地接收数据地址
综合以上步骤,已经完成了S7-1200 硬件和软件部分的编程,下载只需要将程序下载到S7-1200 PLC 即可。
状态监控
1.连接状态监控
S7连接成功的建立是调用PUT/GET指令的基础,S7连接成功建立后,方能正确执行PUT/GET指令。
在TIA 软件的网络视图中,将软件切换到在线模式,可以监控S7连接状态,如图8.所示。
图8.监控S7连接状态
S7连接成功建立后,S7-1200 触发PUT/GET指令,通过TIA 软件监控表和STEP 7 Micro/WIN SMART 软件的状态表,可以监控数据通信是否正常。
注意:S7-200 SMART中V区对应于DB1,即在PUT指令中使用的通信伙伴数据区ADDR_1=P#DB1.DBX0.0 BYTE 200在S7-200 SMAR中对于为VB0~VB199。
本文档中S7-200 SMART 做S7通讯的服务器,占用S7-200 SMART PLC 的服务器连接资源,S7-200 SMART PLC 本身不需要编写通讯程序。
S7-1200 与S7-200 SMART S7 通讯的另外一种方法是S7-200 SAMRT PLC做客服端,S7-1200做服务器。该方式需要S7-200 SMART调用PUT/GET指令,S7-1200侧不需要编写通讯程序。
该方式比较简单,本文档不做介绍。
Welcome To
Download !!!
欢迎您的下载,资料仅供参考!
展开阅读全文