首页 理论教育 开放式用户通信:S7-1200/1500与S7-300/400的应用

开放式用户通信:S7-1200/1500与S7-300/400的应用

时间:2023-06-30 理论教育 版权反馈
【摘要】:可以用博途对S7-1200/1500与S7-300/400之间的通信编程。本节主要介绍S7-300/400使用CPU集成的PROFINET接口,双方基于博途的开放式用户通信。S7-1500和S7-300/400的开放式用户通信的组态与编程见随书光盘中的例程“300_1500TCP”和“300_1500UDP”。

开放式用户通信:S7-1200/1500与S7-300/400的应用

1.S7-1200/1500与S7-300/400的以太网通信概述

如果S7-300/400使用以太网通信处理器(CP),S7-300/400可以建立ISO-on-TCP、TCP和UDP静态连接,用AG_SEND和AG_RCV指令编程进行通信。这种通信的硬件成本高,现在很少使用,一般使用开放式用户通信。

S7-300/400的CPU集成的PROFINET接口可以使用开放式用户通信和ISO-on-TCP、TCP、UDP协议,还可以使用S7协议通信。

可以用博途对S7-1200/1500与S7-300/400之间的通信编程。也可以用博途对S7-1200/1500编程,用STEP 7 V5.5对S7-300/400编程。本节主要介绍S7-300/400使用CPU集成的PROFINET接口,双方基于博途的开放式用户通信。

2.S7-300/400的组态与编程

在博途中生成一个名为“300_1200TCP”的项目(见随书光盘中的同名例程),PLC_1为CPU314C-2PN/DP,PLC_2为CPU1215C。它们的IP地址分别为192.168.0.1和192.168.0.2。组态时启用双方的MB0为时钟存储器字节。

与项目“1200_1200_ISO_C”相同,双方均采用验证通信是否实现的典型程序结构。

图6-23是S7-300的初始化组织块OB100中的程序,其中的#TEMP、#RETV1和#RETV2是OB100的接口区中定义的临时变量。DB1中保存要发送的数据的数组TO1200的元素被预置为16#3333,DB2中保存接收到的数据的数组FROM1200的元素被清零。因为FILL指令的输入参数BVAL不能使用常数,所以在FILL指令的前面增加了一条MOVE指令。

978-7-111-58719-4-Chapter06-34.jpg

图6-23 S7-300的OB100中的程序

在循环周期为0.5s的循环中断组织块OB33中,用ADD指令将要发送的第一个字DB1.DBW0加1。

在OB1中调用指令TCON建立连接,调用TDISCON断开连接(见图6-24)。在M10.0的上升沿建立起ID指定的连接,DB3是组态连接时自动生成的连接描述数据块PLC_1_Connection_DB。在M10.4的上升沿断开ID指定的连接。

978-7-111-58719-4-Chapter06-35.jpg

图6-24 TCON、TDISCON指令与连接参数组态

选中TCON,然后选中下面的巡视窗口的“属性>组态>连接参数”(见图6-24)。设置通信伙伴的“端点”为PLC_2,IP地址为192.168.0.2。连接类型为TCP,“连接ID”的默认值为1。由S7-300主动建立连接,本地端口号采用默认的2000。单击“本地”的“连接数据”选择框右边的978-7-111-58719-4-Chapter06-36.jpg按钮,单击出现的“<新建>”,自动生成连接描述数据块“PLC_1_Connection_DB”(DB3)。用同样的方法生成“PLC_2_Connection_DB”(DB3)。

在OB1中调用TSEND,每0.5s发送一次DB1中的100个整数(见图6-25);调用TRCV接收数据,将接收到的100个整数保存到DB2。LEN是发送或接收的最大字节数,RCVD_LEN是实际接收到的字节数。(www.xing528.com)

978-7-111-58719-4-Chapter06-37.jpg

图6-25 S7-300发送与接收数据的程序

3.S7-1200的组态与编程

调用TCON和TDISCON的程序与图6-24中的基本上相同。选中指令TCON,组态连接数的巡视窗口与图6-24的结构相同,本地PLC为PLC_2,伙伴的IP地址为192.168.0.1,由伙伴主动建立连接。

4.通信实验

硬件通信实验的方法和结果与项目“1200_1200ISO”的基本上相同。用监控表监视两块CPU的TCON、TDISCON的REQ输入M10.0和M10.4,以及DB2中接收到的DBW0、DBW2和DBW198。可以分别用M10.0和M10.4的上升沿建立连接和断开连接。

5.使用ISO-on-TCP协议的通信

将项目“300_1200TCP”另存为名为“300_1200ISO”的项目(见随书光盘中的同名例程),选中OB1中的TCON,在组态连接参数时(见图6-24),将连接类型改为“ISO-on-TCP”,采用默认的TSAP。

6.使用TSEND_C和TRCV_C的通信

在S7-300/400和S7-1200的TCP和ISO-on-TCP协议通信中,S7-1200除了使用TSEND和TRCV指令,还可以使用TSEND_C和TRCV_C指令,具体的程序见随书光盘中的例程“300_1200TCP_C”和“300_1200ISO_C”。

7.S7-1200/1500和S7-300/400之间的UDP协议通信

随书光盘中的例程“300_1200UDP”使用UDP协议通信,PLC_2(CPU 1215C)的程序与例程“1200_1200UDP”中PLC_2的基本上相同,IP地址为192.168.0.2。

PLC_1(CPU 314C-2 PN/DP)的IP地址为192.168.0.1。验证通信是否实现的程序结构与项目“300_1200TCP”的相同。在OB1中调用TCON、TDISCON、TUSEND和TURCV的程序与例程“1200_1200UDP”中CPU1215C的基本上相同。选中TCON,组态连接参数的巡视窗口与图6-20的基本上相同。

在通信双方类型为TADDR_Param的全局数据块DB7中,设置通信伙伴的IP地址和端口号。TUSEND和TURCV的输入参数ADDR的实参为DB7(见图6-22)。

S7-1500和S7-300/400的开放式用户通信的组态与编程见随书光盘中的例程“300_1500TCP”和“300_1500UDP”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈