OPEN IE方式.docx
- 文档编号:3730140
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:16
- 大小:689.97KB
OPEN IE方式.docx
《OPEN IE方式.docx》由会员分享,可在线阅读,更多相关《OPEN IE方式.docx(16页珍藏版)》请在冰豆网上搜索。
OPENIE方式
1概述
S7-1200与S7-300之间的以太网通信方式比较多,可以采用ISOonTCP、TCP和S7的方式进行通信。
在S7-1200CPU中采用ISOonTCP和TCP这两种协议进行通信所使用的指令是相同的,都使用T-block(TSEND_C,TRCV_C,TCON,TDISCON,TSEN,TRCV)指令编程。
S7-300CPU一侧如果使用的是CPU集成的PN接口,连接不在STEP7的NetPro中建立连接,而是使用西门子提供的OPENIE的方式来实现。
本文主要介绍了如何实现在S7-1200和S7-300CPU集成PN口之间的ISOonTCP通信,包括通信的基本步骤、配置及编程等内容。
具体的实现方法有多种,比如在S7-1200中可以使用不带连接的通信指令(TCON,TDISCON,TSEN,TRCV),也可以使用带连接的通信指令(TSEND_C,TRCV_C);在S7-300中可以采用功能块编程的方式来实现,也可以使用OpenCommunicationWizard工具(OPENIE向导)的方式来建立OPENIE的通信。
为了方便理解,本文在S7-1200中使用不带连接的通信指令TCON,TDISCON,TSEN,TRCV,在S7-300侧通过功能块编程的方式来实现。
关于S7-1200和S7-300OPENIE通信的文档可以登录西门子自动化与驱动集团网站的下载中心,网址:
,根据如表1提供的文档编号搜索并下载相关文档。
文档编号
中文标题
A0426
西门子 S7-1200PLC 技术参考Version1.5
A0416
S7-1200与S7-300 的以太网TCP 及ISOonTCP通信
A0421
如何实现两个S7-1200CPU之间的以太网通信
A0415
通过S7协议实现S7-1200 与S7-300的通信
A0414
S7-1200基本以太网通信使用指南
A0284
使用西门子PLC集成的PN口实现S5 兼容通信使用入门
A0345
使用 OpenCommunicationWizard 建立开放式 ISOonTCP 通信
A0346
使用 OpenCommunicationWizard 建立开放式 UDP 通信
A0347
使用 OpenCommunicationWizard 建立开放式 TCP 通信
A0344
S7-300和S7-400集成PN口的S7通信
A0334
PNCPU/CP的开放式通讯-OpenIE
表1下载中心文档列表
2软硬件及所要完成的通信任务
2.1硬件设备
实验的硬件设备:
1、S7-1200CPU,CPU1212AC/DC/RLY(6ES7212-1BD30-0XB0)
2、S7-300PNCPU,CPU317-2PN/DP(6ES7317-2EH13-0AB0V2.6.7)
3、PC机(带以太网卡)
4、SCALANCEX216交换机,S7-1200、S7-300和PC通过交换机互连起来
5、TP以太网电缆
2.2软件环境
1、STEP7BasicV10.5SP2
2、STEP7V5.4SP5
3、通信所需的功能块,请参见附件提供的例程”Sample_1 (50KB)”或参考下载中心文档:
《A0284使用西门子PLC集成的PN口实现S5兼容通信使用入门》提供的程序。
下载链接:
80490650
2.3所要完成的通信任务
本例中所要完成的通信任务定义为:
1、将S7-1200的发送数据块DB3里的8个字节数据发送到S7-300的DB3中。
2、将S7-300DB3里接收到的8个字节数据再发送到S7-1200的接收数据块DB4中。
3S7-1200CPU的组态编程
3.1创建新项目
1、打开STEP7Basic软件并新建项目
在STEP7Basic的“PortalView”中选择“Createnewproject”创建一个新项目,项目名称为“GS_ISO”。
2、添加硬件并命名PLC
然后进入“Projectview”,在“Projecttree”下双击“Addnewdevice”,在对话框中选择所使用的S7-1200CPU(6ES7212-1BD30-0XB0)添加到机架上,设备名为PLC_1,如图1所示。
图1添加新的PLC站
为了编程方便,我们使用CPU属性中定义的时钟位,定义方法如下:
在“Projecttree>PLC_1>Deviceconfiguration”中,选中CPU,然后在下面的属性窗口中,“Properties>Systemandclockmemory”下,将系统位定义在MB1,时钟位定义在MB0,如图2所示。
程序中我们主要使用M0.3,它是以2Hz的速率在0和1之间切换的一个位,可以使用它去自动激活发送任务。
图2系统和时钟存储器
3、为S7-1200CPU的PROFINET通信口分配以太网地址
在“DeviceView”中点击CPU上代表PROFINET通信口的绿色小方块,在下方会出现PROFINET接口的属性,在“Ethernetaddresses”下分配IP地址为192.168.0.2,子网掩码为255.255.255.0,如图3所示。
图3为S7-1200CPU的PROFINET接口分配IP地址
3.2调用并配置通信指令
1、在PLC_1的OB1中调用“TCON”通信指令
进入“Projecttree>PLC_1>Programblocks>OB1”主程序中,从右侧窗口“Instructions>ExtendedInstructions>Communications”下调用“TCON”指令,并选择“SingleInstance”生成背景DB块,如图4所示。
图4调用TCON指令
2、定义PLC_1的“TCON”连接参数
PLC_1的TCON指令的连接参数需要在指令下方的属性窗口“Properties>Configuration>Connectionparameter”中设置,如图5所示。
连接参数说明:
Endpoint
:
选择通信伙伴,这里选择“unspecified”
Address
:
指定通信伙伴S7-300站的IP地址“192.168.0.3”
Connectiontype
:
选择通信协议为ISOonTCP
ConnectionID
:
连接的地址ID号,这个ID号在后面的编程里会用到
Connectiondata
:
创建连接时,系统会自动生成本地的连接DB块,所有的连接数据都会存在这个DB块中。
:
选择本地PLC_1作为主动连接,S7-300CPU作为被动连接
Addressdetails
:
设定TSAP地址这里本地设置成“PLC_1”,TSAPID自动为“50.4C.43.5F.31”,伙伴方设置成不设置TSAP(ASCII),设置TSAPID为“E0.02.50.4C.43.5F.31”。
图5“TCON”指令的连接参数
3、分配“TCON”的块参数
在指令下方的属性窗口“Properties>Configuration>blockparameter”中设置,可以根据需要自己为“TCON”块指定相应的输入输出参数。
指定好参数的块,如图6所示。
其中M8.0作为启动连接的触发位,连接ID=1与连接参数里面的设置相同。
图6“TCON”的块参数
4、在PLC_1的OB1中调用“TSEND”发送通信指令
首先创建一个发送数据块,通过“Projecttree>PLC_1>Programblocks>Addnewblock”,选择“Datablock”创建DB块,选择绝对寻址,点击“OK”键,如图7所示。
图7创建一个发送数据块DB3
打开创建的发送数据块,在数据块中定义发送数据区为8个字节的数组,如图8所示。
图8创建发送数据区
然后在OB1中调用“TSEND”发送通信指令,并为“TSEND”指定参数。
使用M0.3(2Hz的时钟脉冲)上升沿激活发送任务,指定发送数据区为P#DB3.DBX0.0BYTE8,连接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-1200CPU中,并启动CPU的运行。
4S7-300CPU的组态编程
S7-300带PN接口的CPU支持ISOonTCP通信功能,通过该集成以太网接口组态ISOonTCP通信时,只能使用开放式通信专用的功能块,这些专用的功能块可以在STEP7“通讯块”的“标准库”中找到,如图13所示。
图13S7-300CPU通信指令库
库中提供了下列通信功能块:
´> FB65"TCON",用于建立连接,连接时需要UDT65来提供参数
> FB66"TDISCON",用于终止连接
> FB63"TSEND",用于发送数据到S7站点、S5站点、PC站或者第三方设备
>FB64"TRCV"用于从S7站点、S5站点、PC站或者第三方设备接收数据
要通过CPU的集成PN接口实现开放的ISOonTCP通信,不能在Netpro网络组态中直接建立连接,必须通过程序指定每个连接的参数。
用于通信的FB标准功能块,请参见附件提供的例程”Sample_1 (50KB)”或参考下载中心文档《A0284使用西门子PLC集成的PN口实现S5兼容通信使用入门》提供的例程。
下载链接:
80490650
从附件提供的例程”Sample_1 (50KB)”中将把需要的程序块拷贝到新建的项目中,包括:
>UDT65"TCON_PAR",存放用户通信参数
>FB420"SET_ISO_ENDPOINT",用于修改UDT65内通信对象参数
>FC21,被FB420调用
随后,使用通信功能块FB65"TCON"、FB66"TDISCON"、FB63"TSEND"和FB64"TRCV"完成程序的编写。
4.1创建新项目
1、打开STEP7,新建一个项目
2、在项目中插入一个SIMATIC300的站
3、组态硬件,插入一个CPU317-2PN/DP的CPU,并为PN接口分配IP地址“192.168.0.3”,如图14所示。
同时,在CPU的“Cycle/ClockMemory”属性页中指定MB0为时钟存储器,在程序中可以使用M0.3(2Hz的时钟脉冲)去自动激活发送任务,如图15所示。
图14为PN接口分配IP地址
图15设置时钟存储器字节
4.2编写通信程序
1、从样例程序中拷贝通信所需的块
从附件提供的sample_1 (50KB)例程中把需要的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
其中参数的含义如下:
1)ID:
连接ID,与S7-1200里的设置保持一致
2)DEV_ID:
用于本PLC型号(注意不是通信对方)
DEV_ID=B#16#1本PLC型号为IM151-8PN/DPCPU
DEV_ID=B#16#2本PLC型号为CPU31x-2PN/DP或IM154-8CPU
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:
静态变量区的结构变量,用于ISOONTCP通信的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-300CPU中,并启动CPU的运行。
5监控通信结果
对S7-1200和S7-300都组态和编程后,下载所有组态及程序并搭建好网络后,首先在在S7-1200中将M8.0置位为1,然后再在S7-300中将M8.0置位为1,两个站的“TCON”被激活,建立两个站之间的ISOonTCP连接。
连接正常建立后,即可以进行数据的交换。
在S7-1200和S7-300站中将”TRCV”功能块的EN_R置位为1,使能接收,监控通信结果如图26所示。
通过监控结果可以看到,S7-1200中发送数据块DB3的8个字节数据被发送到S7-300站的DB3中,同时,S7-300的DB3中接收到的数据又被发送到S7-1200的接收数据块DB4中。
图26在线监控通信结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OPEN IE方式 IE 方式