西门子6ES7 307-1BA00-0AA0PLC电源模块
价格:电议
地区:上海市
电 话:021-57359188
手 机:15921550783
传 真:021-57359188


 概述
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通信的文档可以登录西门子自动化与驱动集团网站的中心,网址:https://www.ad.siemens.com.cn/download/ ,根据如表1提供的文档编号搜索并相关文档。

文档编号中文标题
A0426西门子 S7-1200 PLC 技术参考Version 1.5
A0416S7-1200S7-300 的以太网TCP ISO on TCP通信
A0421如何实现两个S7-1200 CPU之间的以太网通信
A0415通过S7协议实现S7-1200 S7-300的通信
A0414S7-1200基本以太网通信使用指南
A0284使用西门子PLC集成的PN口实现S5 兼容通信使用入门
A0345使用 Open Communication Wizard 建立开放式 ISO on TCP 通信
A0346使用 Open Communication Wizard 建立开放式 UDP 通信
A0347使用 Open Communication Wizard 建立开放式 TCP 通信
A0344S7-300S7-400集成PN口的S7通信
A0334PN CPU/CP的开放式通讯-Open IE

表1 中心文档列表

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 兼容通信使用入门》提供的程序。链接:

2.3 所要完成的通信任务
本例中所要完成的通信任务定义为:
1、 将S7-1200的发送数据块DB3里的8个字节数据发送到S7-300的DB3中。
2、 将S7-300 DB3里接收到的8个字节数据再发送到S7-1200的接收数据块DB4中。


3 S7-1200 CPU的组态编程

3.1创建新项目

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


2、添加硬件并命名PLC
然后进入 “Project view”,在“Project tree” 下双击 “Add new device”,在对话框中选择所使用的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所示。

连接参数说明:

End point

:选择通信伙伴,这里选择“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作为被动连接

Address details

:设定 TSAP 地址这里本地设置成“PLC_1”, TSAP ID自动为“50.4C.43.5F.31”,伙伴方设置成不设置TSAP(ASCII),设置TSAP ID 为“E0.02.50.4C.43.5F.31”。


图5 “TCON” 指令的连接参数

3、分配 “TCON” 的块参数
在指令下方的属性窗口“Properties > Configuration > block parameter”中设置,可以根据需要自己为“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程序
至此,S7-1200侧的组态和编程都已经完成,可以在项目编译无错误后,直接到S7-1200 CPU中,并启动CPU的运行。


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


图13 S7-300 CPU通信指令库

库中提供了下列通信功能块:
′> 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 兼容通信使用入门》提供的例程。链接:

从附件提供的例程 ”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创建新项目

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


图14为PN接口分配IP地址

 


图15设置时钟存储器字节

4.2编写通信程序

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


图 16

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


图17

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


图18

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

西门子CPU312
图19

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

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


图20

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


图21

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


图22

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


图23

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


图24

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


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


图26 在线监控通信结果

1.概述
通过以太网可以实现S7-1200与S7-300连接通信。S7-300可以使用带集成口CPU或通信处理器(CP343-1)连接到工业以太网上,它们都提供S7 通信的功能,既可作为客户机,也可以作为服务器,所拥有的连接资源可参见相关产品手册;S7-1200 集成以太网接口,提供S7 通信的功能,只能作为服务器,可以同时建立3 个通信连接。

下面会用一个实例来描述S7-300 如何与S7-1200建立通信连接。

192.168.0.8 192.168.0.18

192.168.0.100



图1: 实例网络拓扑图

S7 1200 与 S7-300 通过 S7通信的基本原理如下图所示:


图2:S7-300与S7-1200 通信原理


2.硬件需求
? S7-1214C AC/DC/RLY
? CPU 319-3 PN/DP
? SCALANCE X204-2
? PG/PC


3.软件需求
? S7-1200编程软件 STEP 7 Basic V10.5
? S7-300 编程软件 STEP 7 V5.4 + SP4


4.组态

4. 1 S7-1200 配置
? 使用STEP 7 Basic 创建项目“comS7300”;


图3: 创建项目

? 添加S7-1200 设备 CPU1214C,设置IP 地址192.168.0.18;



图4: 添加S7-1200设备

4. 2 S7-1200 PLC 编程
? 在Program blocks 下,添加程序块(DB1,DB2,DB3),其中DB1和DB3为符号DB(选择 Symbolic access only),DB2为地址DB(不选择 Symbolic access only) , S7 通信只支持地址DB 寻址通信;


图5: 创建地址DB2

? 打开全局DB2,输入2个数组类型数据,每个数组有16 个元素;


图6: 在DB2中添加数据

? 创建两个监视表格(监视表格_1, 监视表格_2) 用来观察DB2的实时状态;
? 将程序到PLC CPU1214C 中。

4. 3 S7-300 配置
使用STEP 7 创建 SIMATIC 300 Station。

? 在硬件组态中添加CPU 319-3 PN/DP,设置IP地址 192.168.0.8;


图7: 硬件组态

? 在网络组态中(NetPro)中创建S7连接,首先在打开的NetPro中点击 SIMATIC 300 (1) 机架的“CPU 319-3PN/DP”处;



图8: 在NetPro中选择相应的机架

? 创建连接一个与“Unspecified”的S7 连接,点击“OK”;


图9: 添加S7连接

? 在相应的输入通信伙伴的IP地址192.168.0.18,点击“Address Details…”;


图10:输入通信伙伴IP地址 ;

? 在Address Details 对话框中,将通信伙伴的槽号改为1,确认其TSAP 为03.01,点击“OK”,之后,可以将所建立硬件组态和网络连接编译并到PLC 中。


图11:设置通信伙伴机架和槽号 ;

4. 4 S7-300 PLC 编程
? 在STEP 7 Blocks 中创建写数据DB1 ( put data)和读数据DB3 (get data)数据块;


图12: DB1和DB2;

? 打开主程序OB1,分别在Network1和Network2中添加指令FB14 GET和 FB15 PUT,并为其添加背景数据块DB14和DB15 ;


图13: 选择单边通信指令;

注意:
在选择指令时,要根据使用的产品来确定。如果采用CPU集成的以太网接口建立S7 通信,要采用左侧的指令;如果采用CP 以太网卡建立S7通信,要采用右侧的指令。


图14:在OB1中调用FB14 ;

 


图15:在OB1中调用FB15 ;

? 创建变量表VAT_1监视写数据操作(PUT);


图16:变量表VAT_1 ;

? 创建变量表VAT_2监视读数据操作(GET);


图17:变量表VAT_2 ;


5.调试 S7-1200 与S7-300 PLC 通信
? 从S7-300 程序中可知,在M1.0 从0变为1时,读取S7-1200的数据DB2.DBB0~DB2.DBB15 到S7-300 DB3.DBB0~ DB3.DBB15中;


图18:S7-300调用GET函数读取S7-1200数据

? 从S7-300 程序中可知,在M5.0 从0变为1时,将S7-300的数据DB1.DBB0~ DB1.DBB15 写入S7-1200 的DB2.DBB16~DB2.DBB31中;


图19:S7-300调用PUT函数写入S7-1200数据


6.总结
在使用S7-300与S7-1200 建立S7 通信时,所能建立的连接数和通信任务是与S7-300产品的型号相关,如:CPU319-3 PN/DP ,可组态的连接数为16,可建立通信任务为32(也就是可调用的通信指令的背景数据的总数),每个作业的用户数据值与所使用的块类型和通信伙伴有关,PUT 为212 个字节,GET为222个字节。

1 G120控制单元CU240  

2 CU240E 6SL3244-0BA10-0BA0

3 CU240S 6SL3244-0BA20-1BA0

4 CU240S DP 6SL3244-0BA20-1PA0

5 CU240S PN 6SL3244-0BA20-1FA0

6 CU240S DP-F 6SL3244-0BA21-1PA0

7 CU240S PN-F 6SL3244-0BA21-1FA0

8 PM240(不带内置滤波器)380-480V 3AC 重载  

9 1.3A/0.37KW 6SL3224-0BE13-7UA0

10 1.7A/0.55KW 6SL3224-0BE15-5UA0

11 2.2A/0.75KW 6SL3224-0BE17-5UA0

12 3.1A/1.1KW 6SL3224-0BE21-1UA0

13 4.1A/1.5KW 6SL3224-0BE21-5UA0

14 5.9A/2.2KW 6SL3224-0BE22-2UA0

15 7.7A/3KW 6SL3224-0BE23-0UA0

16 10.2A/4KW 6SL3224-0BE24-0UA0

17 18A/5.5KW 6SL3224-0BE25-5UA0

18 25A/7.5KW 6SL3224-0BE27-5UA0

19 32A/11KW 6SL3224-0BE31-1UA0

20 38A/15KW 6SL3224-0BE31-5UA0

21 45A/18.5KW 6SL3224-0BE31-8UA0

22 60A/22KW 6SL3224-0BE32-2UA0

23 75A/30KW 6SL3224-0BE33-0UA0

24 90A/37KW 6SL3224-0BE33-7UA0

25 110A/45KW 6SL3224-0BE34-5UA0

26 145A/55KW 6SL3224-0BE35-5UA0

27 178A/75KW 6SL3224-0BE37-5UA0

28 205A/90KW 6SL3224-0BE38-8UA0

29 250A/110KW 6SL3224-0BE41-1UA0

30 302A/132KW 6SL3224-0XE41-3UA0

31 370A/160KW 6SL3224-0XE41-6UA0

32 477A/200KW 6SL3224-0XE42-0UA0

33 PM240(不带内置滤波器)380-480V 3AC 轻载  

34 1.3A/0.37KW 6SL3224-0BE13-7UA0

35 1.7A/0.55KW 6SL3224-0BE15-5UA0

36 2.2A/0.75KW 6SL3224-0BE17-5UA0

37 3.1A/1.1KW 6SL3224-0BE21-1UA0

38 4.1A/1.5KW 6SL3224-0BE21-5UA0

39 5.9A/2.2KW 6SL3224-0BE22-2UA0

40 7.7A/3KW 6SL3224-0BE23-0UA0

41 10.2A/4KW 6SL3224-0BE2


品牌/商标

西门子

产品型号

6ES7307-1BA00-0AA0

原产地

德国

联系人:

李军