理论教育 PLC网络指令通信程序设计优化方案

PLC网络指令通信程序设计优化方案

时间:2023-07-01 理论教育 版权反馈
【摘要】:用这些命令,可改变相关PLC的工作状态,如可改变指定的PLC处于监控工作模式等。从图6-95可知,执行CMND指令,将通过PLC的CPU总线或网络,发送以字S为起始地址的指定字节数的FINS命令,到指定的设备。利用网络通信指令,进行通信,过程较复杂。

PLC网络指令通信程序设计优化方案

1.欧姆龙PLC与PLC网络命令通信

网络协议通信指令见表6-21。

表6-21 网络协议通信指令

978-7-111-39745-8-Chapter07-124.jpg

以下仅对SEND、RECV及CMND指令做简要介绍。其他可参阅有关说明书。

(1)SEND指令。用于向网络节点发送数据。其梯形图格式为978-7-111-39745-8-Chapter07-125.jpg

这里,S为源字首地址,指明从本PLC哪个内存区读取数据;D为目标字首地址,指明所读取的数据发送给那个PLC的那个内存区;C为控制字首地址,指明要发送多少数据等信息,含义如见表6-22。

表6-22 控制字C~C+4含义

978-7-111-39745-8-Chapter07-126.jpg

如图6-90所示,执行SEND指令,则把从本地节点的S地址开始的C指明的字数,传给目标节点的D地址开始的目标存储区中。

被传送的PLC不必编程。本指令也可微分执行。

图6-91所示为数据传送路径简图。

978-7-111-39745-8-Chapter07-127.jpg

图6-90 网络数据传送

978-7-111-39745-8-Chapter07-128.jpg

图6-91 数据传送路径

如果目标节点号被设为FF,数据将向指定网络的所有节点广播。这就是广播传送。

如果需要响应(C+3的为12~15设置为0),但在响应监视时间内未收到响应,数据可最多传输15次(在C+3的位0~3中设置重试次数)。广播传输没有响应或重试。

图6-92所示为发送数据梯形图程序。当“输入条件”和A20200(对某机型端口00的通信端口允许标志)为ON时,D00100~D00109的10个字被传输到本地网的节点3 D00000~

978-7-111-39745-8-Chapter07-129.jpg

图6-92 发送数据梯形图程序

D00009的10个字中。如果在10s之内未收到响应,数据将传输3次。

978-7-111-39745-8-Chapter07-130.jpg

(2)RECV指令。用于从网络节点读取数据。其梯形图格式为978-7-111-39745-8-Chapter07-131.jpg

这里,S为源字首地址,指明从哪个内存区接收数据;D为目标字首地址,指明所接收的数据存放在哪个内存区;C为控制字首地址,指明要接收多少数,从哪个节点接收等信息,见表6-22。

如图6-93所示,执行RECV指令,请求把从指定节点,字S开始的C中指定数目的字,传输到本PLC,并写入以D开始的数据区中。

图6-94所示为数据传送路径简图。

978-7-111-39745-8-Chapter07-132.jpg

图6-93 网络数据读取

978-7-111-39745-8-Chapter07-133.jpg

图6-94 数据读取路径

RECV(098)要求有响应,因为响应包含要接收的数据。如果在C+4中设置的应答监视时间内没收到应答,数据传输请求重复达15次(重试次数在C+3的0~3位设置)。

(3)CMND指令。用以向网络节点发送命令。其梯形图格式为978-7-111-39745-8-Chapter07-134.jpg

这里,S为源字首地址,指明从哪个内存区接收数据;D为目标字首地址,指明所接收的数据存放在哪个内存区;C为控制字首地址,指明要接收多少数,从哪个节点接收等信息,见表6-23。

执行本指令,可向网络上的节点发送通信命令。用这些命令,可改变相关PLC的工作状态,如可改变指定的PLC处于监控工作模式等。

其通信过程如图6-95所示。

表6-23 控制字C~C+5含义

978-7-111-39745-8-Chapter07-135.jpg

①命令和应答数据的允许最大字节数由使用的网络决定,对于控制器链接,最大设置是07C6(1990字节)。

②如果实际的应答数据字节数超过C+1中的设置,应答数据将不存储。如果实际的应答数据字节数少于C+1中的设置,将存储接收到的数据,设置为响应字的其他部分将保持不变。

单元地址指明了单元,如下表所示。

978-7-111-39745-8-Chapter07-136.jpg

从图6-95可知,执行CMND指令,将通过PLC的CPU总线或网络,发送以字S为起始地址的指定字节数的FINS命令,到指定的设备。应答数据存储到以D开始的存储区中。

978-7-111-39745-8-Chapter07-137.jpg

图6-95 通信过程

CMND发送的是欧姆龙FINS协议的命令代码。如代码为0102,那么执行CMND指令,如同执行SEND。代码为0101,执行CMND指令,如同执行RECV。

【例1】如图6-96a所示程序,就是一个发送FINS命令到另一个CPU单元的例子。当000000和A20207(某型机端口07的通信端口允许标志)为ON时,CMND将FINS命令0101(内存区读)传输到节点号3。应答存储到D00200~D00211中。

该命令从D00010~D00019中读取10个字。应答包含有2字节的命令代码(0101),2字节完成代码,然后是10字的数据,总共12字或24个字节。10s内未接收到应答,数据将最多可重复传输3次。这里的S及C中各字的取值及含义如图6-96b所示。

【例2】如图6-97a所示程序,显示了一个发送FINS命令到本地CPU单元的例子。当CI/O 000000和A20207(某型机端口07的通信端口允许标志)为ON并且A34313为OFF时,CMND(490)将FINS命令2215(创建/删除目录)传输到本地CPU单元。应答存储到D00100~D00101中。这里,FINS命令将在欧姆龙目录下创建一个叫CS/CJ的目录。命令代码(2字节)和结束代码(2字节)将被返回并作为应答存储。这里的S及C中各字的取值及含义如图6-97b所示。

利用网络通信指令,进行通信,过程较复杂。若被传的对方也正处于通信状态,则这个传送将不执行。故通信指令执行中,要求设定重试及其次数,还有不少成功或失败的标志。另外,被通信的对方也可设定或用指令(程序),予以禁止或保护,以保护自己的数据及自身安全。

2.西门子PLC间网络指令通信

(1)S7-200网络通信命令

978-7-111-39745-8-Chapter07-138.jpg

图6-96 CMND通信示例程序一及图中S及C中各字的取值及含义

1)网络读(NETR)指令。用以在PPI网络上,进行网络初始化,以读取指定站点、指定存储区的数据。其梯形图格式为978-7-111-39745-8-Chapter07-139.jpg(www.daowen.com)

这里,EN为指令执行条件,输入为ON,则执行本指令;TBL为字表的首地址;PORT为选用的通信口。

执行本指令,则从PORT指定的通信口,从TBL字表中指定的远程站点、指定的存储区,读取一个或多个字符,并存储于TBL字表指定的存储区中。而接收字节数则由TBL字表确定,最多可接收16个。

2)网络写(NETW)指令。用以在PPI网络上,进行网络初始化,以把数据写入TBL指定站点、指定存储区。其梯形图格式为978-7-111-39745-8-Chapter07-140.jpg

这里,EN为指令执行条件,输入为ON,则执行本指令;TBL为字表的首地址;PORT为选用的通信口。

执行本指令,则用PORT指定的通信口,把TBL字表指定的存储区中数据,传送给TBL字表中指定的远程站点、指定的存储区。而传送字节数则由TBL字表确定,最多可接收16个。

以上两指令,在每一PLC中,最多可使用8次。

978-7-111-39745-8-Chapter07-141.jpg

图6-97 CMND通信示例程序二及图中S及C中各字的取值及含义

此两指令的TBL字表长度最大为23个字节,其含义如图6-98所示。

图中偏移0字节,即TBL指向的字节为状态字节。位D为1,执行功能完成;0未完成。位A为1,通信功能激活;0未激活。位E为1,通信出错;0未出错。如出错,错误码记录在它的0~3位中。

偏移1字节,指定远程站点站号。偏移2到偏移5共4个字节,指定远程站点的存贮区指针。而存储区可以是输入区I、输出区Q、辅助区M或数据存储区V。偏移6字节,指定读、写数据的字节数。在偏移7字节及其后,用于存储读、写数据。其最大偏移字节,取决于指定读、写数据的字节数。如指定读、写数据的字节数为16个,则最大偏移为22个字节。

用这两个网络通信指令的特点是,只需一方执行程序,调用此指令,而被读、写方不必编程,不必执行程序,也可实现通信。但双方都应处于PPI下,否则无法通信。

978-7-111-39745-8-Chapter07-142.jpg

图6-98 TBL字表含义

方便的是S7-200编程软件STEP 7 Mcro/WIN提供有使用者两个指令的导向,可按自身要求指定有关参数。完成后,将生成一个NET-EXE子程序供调用。而且查找指令帮助,STEP 7 Mcro/WIN还提供编程实例。

(2)S7-300、400网络通信函数。S7-300、400 PLC不用指令,而是函数。而且这类函数很多,并多与使用通信模块或网络有关。在MPI网上,可使用的有X-PUT(SFC67)、X-GET(SFC68)、X-SEND(SFC65)及X-REC(SFC66)等。在Profibus网上,可使用的有DPWD-DAT(SFC15)、DPRD-DAT(SFC14)、DP-SEND(FC1)及DP-REC(FC2)等。在以太网上,可使用的有AG-SEND(FC5)及AG-REC(FC6)等。在使用串口通信时,可使用的有P-SEND(FB2)、P-RCV(FB3)、P-SEND-RK(FB8)及P-REC-RK(FB7)等。当然,有的函数在使用前,还须对网络进行相关的组态

有的函数为单边通信方式,如用X-GET、X-PUT,使用时,编程一方作为客户机,而不编程一方作为服务器。特别适合S-300(作为客户机)与S7-200(作为服务器)通信。只要在S7-300上执行X-GET、X-PUT指令,即可从或向函数指定站点的S7-200上的函数指定的字节中读取或写入数据。而读取或要写入的数据则存于函数指定S7-300的存储区中。

而有的函数为双边通信方式,如X-SEND、X-REC,使用时,通信双方都要编程。一方发送,用X-SEND指令,把函数指定存储区中数据打包,记上包的标志(REQ-ID,其值由用户选定),发送函数指定的站点。另一方接收,用X-REC指令,接收发来的数据,并存于指令指定的存储区中。但不管谁发来的数据,它都接收。所以还要对数据包的标识(REQ-ID)进行判断,以确定是否为所要接收的数据。

也可使用标准的通信函数块PUT(FB14)、GET(FB15)、SEND(FB12)及REC(FB13)。其功能与上述4个函数基本相同。但只能在S7-300、400间通信,而且在使用前,要做相应组态,要指定双方为通信伙伴。

S7-300、400还有很多通信函数或函数块,功能很强,并多与使用说明网络及通信模块有关。有了这些函数或函数块,为设计PLC通信程序提供了很大方便。

以下为两套S7-300通过以太网实现数据链运行网络指令实现通信的实例。运行程序前首先要做好网络组态,其步骤如下:

1)打开SIMATIC Manager,根据本系统要求,插入两个S7-300的站,插入CPU,并开始相应硬件组态。

2)分别插入两个系统的以太网模块。如图6-99所示在CPU 314C-PtP机架上插入CP343-1模块。在弹出的“Properties-CP343-1”窗口上,点击“Properties”按钮

3)之后将弹出如图6-100所示的“Properties-Ethernet interface CP343-1”窗口。并在其上设置IP地址及子网掩码,并建立以太网。

4)另一S7-300站也做类似组态。组态完两套系统的硬件模块后,分别进行下载,然后点击Network Configration按钮,打开如图6-101所示系统的网络组态窗口NetPro,并选中CPU314。

5)在窗口的左下部分点击鼠标右键,插入一个新的网络链接,并设定链接类型为ISO-on-TCP connection或TCP connection或UDP connection或ISO Transport connection,如图6-102所示。

6)以上选定后,点击“OK”按钮,将弹出如图6-103所示“Properties-ISO-on-TCP Connec-tion”(链接属性)窗口。使用该窗口的默认值,并根据图6-103a对话框右侧信息再进行有关程序块的参数设定。

7)当两套系统之间的链接建立完成后,用鼠标选中图标中的CPU,分别进行下载。

8)到此为止,系统的硬件组态和网络配置已经完成。下面进行系统的软件编制,在SIMAT-IC Manager界面中,分别在CPU314C-2PTP、CPU314C-2DP中插入OB35定时中断程序块和数据块DB1,DB2,并在两个OB35中调用FC5(AG_Send)和FC6(AG_Recv)程序块,如图6-104所示。

978-7-111-39745-8-Chapter07-143.jpg

图6-99 插入CP343-1模块

978-7-111-39745-8-Chapter07-144.jpg

图6-100 Properties-Ethernet interface CP343-1窗口

9)创建DB1、DB2数据块,如图6-105a所示。

10)两套控制程序已经编制完成,分别下载到CPU当中,将CPU状态切换至运行状态,就可以实现S7-300之间的以太网数据交换了。这点击编程窗口的“View”菜单项的“Data View”项,切换到数据监视状态,在图6-105所示的窗口上观测。从站可看到CPU314C-2DP的DB1数据发送到CPU314C-2PtP的DB2情况。

978-7-111-39745-8-Chapter07-145.jpg

图6-101 网络组态窗口上选中CPU314

978-7-111-39745-8-Chapter07-146.jpg

图6-102 插入新连接

除了上述两套系统链接,也可多套链接。一个实例就是沈阳旭风电子公司为本溪钢厂辽宁冶金技师学院所配置的S7-300实验室。该系统有20个实验台。每台都配置有S7-300及其以太网模块。同时还都配置计算机及以太网卡。这40个以太网接口都通过交换机连接,组成星形拓扑的因特网。20台计算机、PLC站点都有自身唯一的IP地址。如图6-106所示,每台PLC站点还分别命名为IE1~IE20(但该图仅显示部分站点)。

该图点击了IE1站点的CPU图标,从图下方可见到完成的组态的连接。指明了连接的类型是UDP connection,自身及连接对方的IP地址。当然为了PLC间交换数据,连接双方的PLC还都得与上述2个这点连接一样,定义数据块、编写相应程序调用FC5、FC6功能块。而网络上的任何计算机,如运行Step 7软件则可与网络上的任何一台PLC联机编程、监控。当然计算机间做好设置相互访问也是可以的。由于这里是实验室,用的是普通交换机,网络的实时性、确定性不是很理想。但作为实验、熟悉以太网组态及编程应用还是很理想的。再就是这里站点间建立连接的数量是有限制的。具体与因特网模块的性能有关。

978-7-111-39745-8-Chapter07-147.jpg

图6-103 Properties-ISO-on-TCP connection窗口

978-7-111-39745-8-Chapter07-148.jpg

图6-104 调用FC5(AG_Send)、FC6(AG_Recv)程序块

3.三菱PLC网络指令通信

所用的网络指令很多,也多与使用通信模块、网络或协议有关。表6-24为它的Q不同协议使用的通信指令。

978-7-111-39745-8-Chapter07-149.jpg

图6-105 CPU314C-2DP DB1及CPU314C-2PtP DB2数据块及其监视画面

978-7-111-39745-8-Chapter07-150.jpg

图6-106 多套以太网连接实例

表6-24 三菱PLC网络通信命令

978-7-111-39745-8-Chapter07-151.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈