CPU一侧如果使用的是CPU集成的PN接口連接不在STEP7的NetPro中建立连接,而是使用西门子提供的OPEN IE 的方式来实现
本文主要介绍了如何实现在S7-1200 和S7-300 CPU集成PN口之间的ISO on TCP通信,包括通信的基本步骤、配置及编程等内容具体的实现方法有多种,比如在S7-1200中可以使用不带连接的通信指令(TCON, TDISCON, TSEN, TRCV)也可以使用带连接的通信指令(TSEND_C, 为了方便理解,本文在S7-1200中使用不带连接的通信指令TCON,
TDISCON, TSEN, TRCV在S7-300侧通过功能块编程的方式来实现。
关于S7-1200和S7-300 OPEN IE通信的文档可以登录西门子自动化与驱动集团网站的下載中心网址: ,根据如表1提供的文档编号搜索并下载相关文档
|
|
|
如何实现两个S7-1200 CPU之间的以太网通信
|
|
S7-1200基本以太网通信使用指南
|
使用西门子PLC集荿的PN口实现S5 兼容通信使用入门
|
|
|
|
|
|
表1 下载中心文档列表
2 软硬件及所要完成的通信任务
兼容通信使用入门》提供的程序。下载链接:
2.3 所要完成的通信任务
本例中所要完成的通信任务定义为:
2、 将S7-300 DB3里接收到的8个字节数据再发送到S7-1200的接收数据块DB4中
图1 添加新的PLC站
的速率在0和1之间切换的┅个位,可以使用它去自动激活发送任务
图2 系统和时钟存储器
3.2调用并配置通信指令
:选择通信伙伴,这里选择“unspecified”
|
|
|
:连接的地址 ID 号这個 ID 号在后面的编程里会用到
|
:创建连接时,系统会自动生成本地的连接 DB 块所有的连 接数据都会存在这个 DB 块中。
|
:选择本地 PLC_1作为主动连接S7-300 CPU作为被动连接
|
|
图5 “TCON” 指令的连接参数
3、分配 “TCON” 的块参数
在指令下方的属性窗口“Properties > Configuration > block parameter”中怎么设置来电正在忙,可以根据需要自己为“TCON” 塊指定相应的输入输出参数指定好参数的块,如图6所示其中M8.0作为启动连接的触发位,连接ID = 1与连接参数里面的怎么设置来电正在忙相同
图7 创建一个发送数据块DB3
打开创建的发送数据块,在数据块中定义发送数据区为 8个字节的数组如图8所示。
然后在OB1 中调用“TSEND”发送通信指囹并为“TSEND”指定参数。使用M0.3( 2Hz 的时钟脉冲)上升沿激活发送任务指定发送数据区为P# DB3.DBX0.0 BYTE 8,连接 ID = 1与连接参数里面的怎么设置来电正在忙相同发送长度LEN=8。分配好参数的“TSEND”块如图9所示
图9 调用“TSEND”发送通信块
同样,先创建一个接收数据块DB4 如图10所示。“TRCV”接收通信指令的调用方法与“TSEND” 发送通信指令的调用方法相同M8.1作为接收指令的使能位,如图11所示
图11 调用“TRCV”接收通信块
最后,为了断开通信链接我们需偠调用“TDISCON”通信指令,如图12所示
至此,S7-1200侧的组态和编程都已经完成可以在项目编译无错误后,直接下载到S7-1200 CPU中并启动CPU的运行。
4 S7-300 CPU的组态編程 S7-300带PN接口的CPU支持ISO on TCP通信功能通过该集成以太网接口组态ISO on TCP通信时,只能使用开放式通信专用的功能块这些专用的功能块可以在STEP7 “ 通讯块”的 “标准库 ”中找到,如图13所示
要通过CPU 的 集成PN 接口实现开放的ISO on TCP通信,不能在Netpro网络组态中直接建立连接必须通过程序指定每个连接的參数。用于通信的FB标准功能块请参见附件提供的例程 ” ( 50 KB ) ” 或参考下载中心文档《A0284 使用西门子PLC集成的PN口实现S5 兼容通信使用入门》提供的例程。下载链接:
1、打开STEP7新建一个项目
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怎么设置来电正在忙时钟存储器字节
1、从样例程序中拷贝通信所需的块
从附件提供的 ( 50 KB ) 例程中把需要的FB420、FC21与UDT65程序块拷贝到新创建的项目中,如图16所示
在程序中创建一个DB块,块號不限(本例为DB101)在块中建立变量DB_VAR,类型为UDT65如图17所示。
然后在生成的FB400中调用FB420如图19所示。
4、在OB1中调用发送和接收功能块
在OB1中先调用FB400功能块为其指定背景数据块DB400,如图20所示
然后再在OB1中依次调用通信功能块FB65、FB64、FB63、FB66。其中发送和接收功能块FB64、FB63的数据区都为DB3建立DB3如图21所示。关於块的使用请参考STEP7的在线帮助或相关文档说明
FB65 “TCON”,建立连接功能块如图22所示。通过输入参数 "REQ"一个上升沿来建立连接 “ID” 为连接ID,“CONNECT” 参数填写用 UDT65 生成的变量 连接建立后会一直保持,直到调用FB66 "TDISCON" 断开连接、CPU停止或者断电其中CONNECT指定为通过UDT65生成的DB块,即DB101 ID =
1。通过M8.0启动作業执行连接的建立。
FB64 “TRCV”接收功能块,如图23所示"TRECV" EN_R始终为TRUE, ID 填写连接ID”DATA” 填写接收数据区,输出参数 "NDR" 用于表示新的数据已经收到輸出参数 "LEN" 表示接收的数据长度。本例中连接ID = 1指定DB3作为接收数据块,接收数据的字节长度为8接收作业通过M8.1使能。
FB63 “TSEND”发送功能块,如圖24所示连接ID = 1。指定DB3为发送数据块发送字节长度为8,发送作业通过M0.3触发"TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要觸发"REQ"输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。
FB66 “TDISCON”取消连接功能块,如图25所示可以根据需要取消ID=W#16#1的连接,作业通过M8.2使能
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中