S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信

n

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提供的文档编号搜索并下载相关文档。n

文档编号 中文标题
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 下载中心文档列表n

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

2.1硬件设备n

实验的硬件设备:
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 软件环境n

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中。n

3 S7-1200 CPU的组态编程

3.1创建新项目n

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

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图1 添加新的PLC站n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图2 系统和时钟存储器n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图3为 S7-1200 CPU的PROFINET 接口分配IP地址n

3.2调用并配置通信指令n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图4 调用TCON指令n

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

连接参数说明:n

End point

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

Address

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

Coection type

:选择通信协议为ISO on TCP

Coection ID

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

Coection 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”。

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图5 “TCON” 指令的连接参数n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图6 “TCON” 的块参数n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图7 创建一个发送数据块DB3n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图8 创建发送数据区n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图9 调用“TSEND”发送通信块n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图10创建接收数据区n

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图11 调用“TRCV”接收通信块n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图12 调用“TDISCON”通信块n

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

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图13 S7-300 CPU通信指令库n

库中提供了下列通信功能块:
´> 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创建新项目n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图14为PN接口分配IP地址n

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图15设置时钟存储器字节n

4.2编写通信程序n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图 16n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图17n

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侧设置保持一致)。

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图18n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图19n

其中参数的含义如下:
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生成的变量,即DB101n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图20n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图21n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图22n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图23n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图24n

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

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图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中。

S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
图26 在线监控通信结果

关键词
ISO on TCP,S7-1200,S7-300 PN CPU,OPEN IE,以太网

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论