首页 历史故事S7-1200与S7-300/400PLC的通信优化

S7-1200与S7-300/400PLC的通信优化

【摘要】:S7-1200 PLC与S7-300/400 PLC之间的以太网通信方式相对来说要多一些,可以采用下列方式:TCP、ISO on TCP和S7通信。采用TCP和ISO on TCP这两种协议进行通信所使用的指令是相同的,在S7-1200 PLC中使用T-Block指令编程通信。要求:S7-1200 PLC将DB2的100个字节发送到S7-300 PLC的DB2中,S7-300 PLC将输入数据IB0发送给S7-1200 PLC的输出数据区QB0。下载S7-1200 PLC和S7-300 PLC中的所有组态及程序,监控通信结果。

S7-1200 PLC与S7-300/400 PLC之间的以太网通信方式相对来说要多一些,可以采用下列方式:TCP、ISO on TCP和S7通信。

采用TCP和ISO on TCP这两种协议进行通信所使用的指令是相同的,在S7-1200 PLC中使用T-Block指令编程通信。如果是以太网模块,在S7-300/400 PLC中使用AG_SEND、AG_RECV编程通信。如果是支持Open IE的PN口,则使用Open IE的通信指令实现。

对于S7通信,S7-1200 PLC的PROFINET通信口只支持S7通信的服务器端,所以在编程组态和建立连接方面,S7-1200 PLC不用做任何工作,只需在S7-300 PLC一侧建立单边连接,并使用单边编程方式PUT、GET指令进行通信。

S7-1200 PLC中所有需要编程的以太网通信都使用开放式以太网通信指令T-block来实现。调用T-block通信指令并配置两个CPU之间的连接参数,定义数据发送或接收信息的参数。

STEP 7 Basic提供了两套通信指令:带连接管理的功能块,带有连接管理的功能块。带连接管理的功能块执行时自动激活以太网连接,发送/接收完数据后,自动断开以太网连接。

1.S7-1200PLC与S7-300PLC之间的ISOonTCP通信

S7-1200 PLC与S7-300 PLC之间通过ISO on TCP通信,需要在双方都建立连接,连接对象选择“Unspecified”。下面通过简单例子演示这种组态方法。要求:S7-1200 PLC将DB2的100个字节发送到S7-300 PLC的DB2中,S7-300 PLC将输入数据IB0发送给S7-1200 PLC的输出数据区QB0。

(1)S7-1200 PLC的组态编程

组态编程过程与S7-1200 PLC之间的通信相似,主要步骤包括:

1)使用STEP 7 Basic V10.5软件新建一个项目,添加新设备,命名为PLC_3。

2)为PROFINET通信接口分配以太网地址192.168.0.1,子网掩码为255.255.255.0。

3)调用“TSEND_C”通信指令并配置连接参数和块参数。连接参数如图8-24所示,块参数如图8-25所示。图8-24中,选择通信伙伴为“未定义”,通信协议为“ISO-on-TCP”,选择PLC_3为主动连接方,要设置通信双方的TSAP地址。

978-7-111-34922-8-Chapter08-27.jpg

图8-24 连接参数

4)调用“TRCV”通信指令并配置块参数。因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“Connec-tion ID”号,如图8-26所示。

(2)S7-300 PLC的组态编程

组态步骤如下:

1)使用STEP 7编程软件新建一个项目,插入一个S7-300 PLC站进行硬件组态。为编程方便,我们使用时钟脉冲激活通信任务,在硬件组态编辑器中CPU的属性对话框的“周期/时钟存储器选项卡中设置,如图8-27所示,将时钟信号存储在MB0中。

978-7-111-34922-8-Chapter08-28.jpg

图8-25 块参数

978-7-111-34922-8-Chapter08-29.jpg

图8-26 配置TRCV块参数

978-7-111-34922-8-Chapter08-30.jpg

图8-27 设置同期/时钟存储器

2)配置以太网模块。在硬件组态编辑器中,设置S7-300 PLC的以太网模块“CP343-1”的IP地址为192.168.0.2,子网掩码为255.255.255.0,并将其连接到新建的以太网Ethernet(1)上,如图8-28所示。

978-7-111-34922-8-Chapter08-31.jpg

图8-28 连接到以太网上

3)网络组态。打开网络组态编辑器,选中S7-300 PLC,双击连接列表,打开“插入新连接”对话框,如图8-29所示,选择连接伙伴为“未指定”,通信协议为“ISO-on-TCP连接”。确定后,在连接的属性对话框的“地址”选项卡中设置通信双方的TSAP地址和IP地址,需要与通信伙伴对应,如图8-30所示。

978-7-111-34922-8-Chapter08-32.jpg

图8-29 网络组态

978-7-111-34922-8-Chapter08-33.jpg

图8-30 连接属性

4)编写程序。在S7-300 PLC中,新建接收数据区为DB2,定义成100 B的数组。在OB1中,调用库中通信块FC5(AG_SEND)、FC6(AG_RECV)通信指令,如图8-31所示,其含义见注释。

978-7-111-34922-8-Chapter08-34.jpg

图8-31 例子程序

978-7-111-34922-8-Chapter08-35.jpg

图8-31 例子程序(续)

5)监控通信结果。下载S7-1200 PLC和S7-300 PLC中的所有组态及程序,监控通信结果。在S7-1200 PLC中向DB2中写入数据:“11”、“22”、“33”,则在S7-300 PLC中的DB2块收到数据也为“11”、“22”、“33”。在S7-300 PLC中,将“2#1111_1111”写入IB0,则在S7-1200 PLC的QB0区中收到的数据也为“2#1111_1111”。

2.TCP通信

使用TCP通信,除了连接参数的定义不同,通信双方的其他组态及编程与前面的ISO on TCP通信完全相同。

S7-1200 PLC中,使用TCP与S7-300 PLC通信时,设置PLC_3的连接参数如图8-32所示。设置通信伙伴S7-300 PLC的连接参数如图8-33所示。

978-7-111-34922-8-Chapter08-36.jpg

图8-32 使用TCP时的连接参数

978-7-111-34922-8-Chapter08-37.jpg

图8-33 S7-300 PLC的TCP连接参数设置

3.S7通信

对于S7通信,S7-1200 PLC的PROFINET通信口只支持S7通信的服务器端,所以在编程组态和建立连接方面,S7-1200 PLC不用做任何工作,只需在S7-300 PLC一侧建立单边连接,并使用单边编程方式PUT、GET指令进行通信。

注意:如果在S7-1200 PLC一侧使用DB块作为通信数据区,必须将DB块定义成绝对寻址,否则会造成通信失败。

下面通过简单的例子演示这种方法的组态。要求:S7-300 PLC读取S7-1200 PLC中DB2的数据到S7-300 PLC的DB11中,S7-300 PLC将本地DB12中的数据写到S7-1200 PLC的DB3中。

只需要在S7-300 PLC一侧配置编程,步骤如下:

1)使用STEP 7软件新建一个项目,插入S7-300 PLC站。在硬件组态编辑器中,设置S7-300 PLC的以太网模块“CP343-1”的IP地址为192.168.0.2,子网掩码为255.255.255.0,并将其连接到新建的以太网Ethernet(1)上。

2)网络组态。打开网络组态编辑器,选中S7-300 PLC,双击连接列表打开“插入新连接”对话框,选择通信伙伴为“未指定”,通信协议为“S7连接”。确定后,其连接属性如图8-34所示。单击“地址详细信息”按钮,打开“地址详细信息”对话框,如图8-35所示,要设置S7-1200 PLC的TSAP地址为03.01或03.00。S7-1200 PLC预留给S7连接的两个TSAP地址分别为03.01和03.00。

3)编写程序。在S7-300 PLC中,新建接收数据区为DB2,定义成100 B的数组。在OB1中,调用库中通信块FB14(GET)、FB15(PUT)通信指令,如图8-36所示,其含义见注释。对于S7-400 PLC,调用的是SFB14(GET)、SFB15(PUT)通信指令。

4)监控通信结果。配置S7-1200的硬件组态并设置IP地址为192.168.0.1,创建通信数据区DB2、DB3。然后下载S7-300 PLC及S7-1200 PLC的所有组态及程序,并监控通信结果。可以看出,在S7-1200 PLC中的DB2写入数据:“1”、“2”,则在S7-300 PLC中的DB11中收到数据也为“1”、“2”。在S7-300 PLC中,将“11”、“22”写入DB12,则在S7-1200PLC的DB3中收到的数据也为“11”、“22”。

978-7-111-34922-8-Chapter08-38.jpg

图8-34 连接属性对话框

978-7-111-34922-8-Chapter08-39.jpg

图8-35 地址详细信息

978-7-111-34922-8-Chapter08-40.jpg

图8-36 例子程序

978-7-111-34922-8-Chapter08-41.jpg

图8-36 例子程序(续)