西门子6ES7522-1BF00-0AB0
西门子6ES7522-1BF00-0AB0是数字输出模块 DQ 8xDC 24V/2A HF; 8 条通道,每组 8 条; 每组8A; 诊断;替换值
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-300CPU一侧如果使用的是CPU集成的PN接口,连接不在STEP7的NetPro中建立连接,而是使用西门子提供的OPEN IE的方式来实现。
本文主要介绍了如何实现在S7-1200 和S7-300 CPU集成PN口之间的ISO onTCP通信,包括通信的基本步骤、配置及编程等内容。具体的实现方法有多种,比如在S7-1200中可以使用不带连接的通信指令(TCON,TDISCON, TSEN, TRCV),也可以使用带连接的通信指令(TSEND_C,TRCV_C);在S7-300中可以采用功能块编程的方式来实现,也可以使用Open CommunicationWizard工具(OPEN IE向导)的方式来建立OPEN IE的通信。
为了方便理解,本文在S7-1200中使用不带连接的通信指令TCON, TDISCON, TSEN,TRCV,在S7-300侧通过功能块编程的方式来实现。
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中。
3S7-1200 CPU的组态编程
3.1创建新项目
1、打开STEP 7 Basic 软件并新建项目
在STEP 7 Basic 的 “Portal View”中选择“Create newproject”创建一个新项目,项目名称为“GS_ISO”。
2、添加硬件并命名PLC
然后进入 “Project view”,在“Project tree” 下双击 “Add newdevice”,在对话框中选择所使用的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所示。
连接参数说明:
Endpoint
| :选择通信伙伴,这里选择“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作为被动连接
| |
Addressdetails
| :设定TSAP 地址这里本地设置成“PLC_1”, TSAPID自动为“50.4C.43.5F.31”,伙伴方设置成不设置TSAP(ASCII),设置TSAP ID为“E0.02.50.4C.43.5F.31”。
|
图5“TCON” 指令的连接参数
3、分配 “TCON” 的块参数
在指令下方的属性窗口“Properties > Configuration > blockparameter”中设置,可以根据需要自己为“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下载程序