品牌
代理商厂商性质
上海市所在地
西门子6AV2132-0HA00-0AA1
LOGO! 基础启动器套件 LOGO! /24RCE, HMI KTP400 基础 单 PN, LOGO! 24V 1.3A, LOGO! Comfort V8, WinCC 基础, 信息资料,im SYSTAINER
西门子6AV2132-0HA00-0AA1
代理西门子PLC200/300/400/1200/S71500西门子变频器,MM440/430/420/G120/6RA70/6ES70/6RA80等系列变频器及备件。西门子触摸屏,西门子软启动器,西门子低压产品,西门子数控伺服,西门子传动,西门子楼宇,西门子工控系列模块,在本公司购买的产品,保证*,假一罚十,质保一年。一年内产品非人为损坏,可免费维修,
SIEMENS 上海翰粤自动化系统有限公司
:尚工()
:
:
概述
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通信的文档可以登录西门子自动化与驱动集团的下载中心,:http://www.ad.siemens.com.cn/download/ ,根据如表1提供的文档编号搜索并下载相关文档。
文档编号 | 中文标题 |
A0426 | 西门子 S7-1200 PLC 技术参考Version 1.5 |
A0416 | S7-1200与S7-300 的以太网TCP 及ISO on TCP通信 |
A0421 | 如何实现两个S7-1200 CPU之间的以太网通信 |
A0415 | 通过S7协议实现S7-1200 与S7-300的通信 |
A0414 | S7-1200基本以太网通信使用指南 |
A0284 | 使用西门子PLC集成的PN口实现S5 兼容通信使用入门 |
A0345 | 使用 Open Communication Wizard 建立开放式 ISO on TCP 通信 |
A0346 | 使用 Open Communication Wizard 建立开放式 UDP 通信 |
A0347 | 使用 Open Communication Wizard 建立开放式 TCP 通信 |
A0344 | S7-300和S7-400集成PN口的S7通信 |
A0334 | PN 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 兼容通信使用入门》提供的程序。下载链接:80490650
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”通信指令
zui后,为了断开通信链接,我们需要调用“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 兼容通信使用入门》提供的例程。下载链接:80490650
从附件提供的例程 ”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所示。
图19