工控智汇

工控智汇

手把手教程|S7-1200 CPU 与S7-300 PN/S7-400 PN TCP通信(一)

admin 14 199

S7-1200与S7-300PN之间的以太网通信可以通过TCP协议来实现,使用的通信指令是在双方CPU调用T-block(TSEND_C,TRCV_C,TCON,TDISCON,TSEND,TRCV)指令来实现。通信方式为双边通信,因此TSEND和TRCV必须成对出现。

本案例也可以作为S7-1200与S7-400PN之间的TCP通信文档。

硬件和软件需求及所完成的通信任务

所需条件:

①S7-1200(CPU1215CDC/DC/DC,固件版本)/S7-300(集成PN口,固件版本)
②TIASTEP7V16,

所完成的通信任务:

①S7-1200CPU将通讯数据区DB3块中的10个字节的数据发送到S7-300CPU的接收数据区DB2块中。
②S7-300CPU将通讯数据区DB1块中的10个字节的数据发送到S7-1200CPU的接收数据区DB4块中。

S7-1200与S7-300(集成PN口)之间TCP通讯,可以分3种情况:

第一种情况:S7-1200与S7-300(集成PN口)在一个项目中操作(TIASTEP7V16);

第二种情况:S7-1200与S7-300(集成PN口)不在一个项目中的操作(两个TIASTEP7V16项目);

第三种情况:S7-1200与S7-300(集成PN口)不在一个项目中的操作(S7-1200在TIASTEP7V16项目中,S7-300在项目中)。

今天我们先介绍第一种情况(S7-1200与S7-300在同一项目中操作)

1.使用STEP7V16软件新建一个项目并完成硬件配置

在STEP7V16的“Portal视图”中选择“创建新项目”创建一个新项目。

2.添加硬件并命名PLC

然后进入“项目视图”,在“项目树”下双击“添加新设备”,在对话框中选择所使用的S7-1200CPU添加到机架上,命名为PLC_1。

为了编程方便,使用CPU属性中定义的时钟位,定义方法如下:

在“项目树”“PLC_1”“设备组态”中,选中CPU,然后在下面的属性窗口中,“属性”“系统和时钟存储器”下,将时钟位定义在MB0。

3.为PROFINET通信口分配以太网地址

4.使用STEP7V16软件添加新设备并命名PLC_2

与PLC_1在同一个项目中,在“项目树”下双击“添加新设备”,在对话框中选择所使用的S7-300CPU添加到机架上,命名为PLC_2,

为了编程方便,使用CPU属性中定义的时钟位,定义方法如下:
在“项目树”“PLC_2”“设备组态”中,选中CPU,然后在下面的属性窗口中,“属性”“时钟存储器”下时钟位定义在MB0。

5.为PROFINET通信口分配以太网地址

6.创建CPU的逻辑网络连接

在项目树“项目树”“设备和网络”“网络视图”视图下,创建两个设备的连接。用鼠标点中S7-1200上的PROFINET通信口的绿色小方框,然后拖拽出一条线,到另外一个S7-300上的PROFINET通信口上,松开鼠标,PN/IE_1的子网连接就建立起来了。

6.1

在S7-1200中调用并配置“TCON”、“TSEND”、“TRCV”通信指令

(1)

在S7-1200的OB1中调用“TCON”通信指令

①在S7-1200CPU中调用发送通信指令,进入“项目树”“PLC_1”“程序块”“OB1”主程序中,从右侧窗口“指令”“通信”“开放式用户通信”下调用“TCON”指令,创建连接。

②定义S7-1200的“TCON”连接参数

S7-1200的“TCON”指令的连接参数需要在指令下方的属性窗口“属性”“组态”“连接参数”中设置。

连接参数说明:

(2)

定义S7-1200的“TSEND”发送通信块接口参数

①调用“TSEND”在OB1内调用,发送10个字节数据到S7-300PN中

进入“项目树”“PLC_1”“程序块”“OB1”主程序中,从右侧窗口“指令”“通信”“开放式用户通信”下调用“TSEND”指令。

②创建并定义S7-1200的发送数据区DB块。

③定义S7-1200的“TSEND”发送通信块接口参数。

参数说明:

(3)

在S7-1200的OB1中

调用接收指令TRCV并配置基本参数

为了实现S7-1200接收来自S7-300PN的数据,则在S7-1200中调用接收指令TRCV并配置基本参数。

①创建并定义S7-1200的接收数据区DB块。

②调用“TRCV”在OB1内调用
进入“项目树”“PLC_1”“程序块”“OB1”主程序中,从右侧窗口“指令”“通信”“开放式用户通信”下调用“TRCV”指令,配置接口参数。

参数说明:

注意:ADHOC设置为TRUE,LEN设置为0时,可以接收变长数据。

6.2

在S7-300中调用并配置“TCON”、“TSEND”、“TRCV”通信指令

(1)

在S7-300的OB1中调用“TCON”通信指令

①在S7-300CPU中调用发送通信指令,进入“项目树”“PLC_2”“程序块”“OB1”主程序中,从右侧窗口“指令”“通讯”“开放式用户通信”下调用“TCON”指令,创建连接。

②定义S7-300的“TCON”连接参数

S7-300的“TCON”指令的连接参数需要在指令下方的属性窗口“属性”“组态”“连接参数中”中设置。

连接参数说明:

(2)

定义S7-300的“TSEND”发送通信块接口参数

①创建并定义S7-300的发送数据区DB1块

②调用“TSEND”在OB1内调用发送10个字节数据到S7-1200中

进入“项目树”“PLC_2”“程序块”“OB1”主程序中,从右侧窗口“指令”“通讯”“开放式用户通信”下调用“TSEND”指令,配置接口参数。

参数说明:

6.3

在S7-300的OB1中调用接收指令TRCV并配置参数

①创建并定义S7-300的接收数据区DB2块。

②将“TRCV”在OB1内调用
进入“项目树”“PLC_2”“程序块”“OB1”主程序中,从右侧窗口“指令”“通讯”“开放式用户通信”下调用“TRCV”指令,配置接口参数。

参数说明:

6.4

下载硬件组态及程序并监控通信结果

下载两个CPU中的所有硬件组态及程序,实现两个CPU之间数据交换。

就这样即可完成第一种情况:S7-1200与S7-300(集成PN口)在一个项目中PNTCP通信,