网络协议通信指令如表7-8所示。
表7-8 网络协议通信指令
以下仅对SEND、RECV及CMND指令做简要介绍,其它指令可参阅有关说明书。1.SEND指令
用于向网络节点发送数据。其梯形图格式为:
这里,S为源字首地址,指明从本PLC哪个内存区读取数据;D为目标字首地址,指明所读取的数据发送给哪个PLC的哪个内存区;C为控制字首地址,指明要发送多少数据等信息,含义见表7-9。
表7-9 控制字C到C+4含义
如图7-39所示,执行SEND指令,则把从本地节点的S地址开始的C指明的字数,传给目标节点的D地址开始的目标存储区中。
被传送的PLC不必编程。本指令也可微分执行。
图7-40所示为数据传送路径简图。
图7-39 网络数据传送
图7-40 数据传送路径
如果目标节点号被设为FF,数据将向指定网络的所有节点广播。这就是广播传送。
如果需要响应(C+3的12~15位设置为0),但在响应监视时间内未收到响应,数据最多可传输15次(在C+3的0~3位中设置重试次数)。
图7-41所示为发送数据梯形图程序。当“输入条件”和A20200(对某机型端口00的通信端口允许标志)为ON时,D00100~D00109的10个字被传输到本地网的节点3D00000~D00009的10个字中。如果在10s之内未收到响应,数据将传输3次。
图7-41 发送数据梯形图程序
这里C中各字的取值及含义如下:
2.RECV指令
用于从网络节点读取数据。其梯形图格式为:
这里,S为源字首地址,指明从哪个内存区接收数据;D为目标字首地址,指明所接收的数据存放在哪个内存区;C为控制字首地址,指明要接收多少数,从哪个节点接收等信息,见表7-9。
如图7-42所示,执行RECV指令时,请求把从源节点的字S开始的C中指定数目的字,传输到本地节点,并写入以D开始的数据区中。
图7-43所示为数据传送路径简图。
(www.xing528.com)
图7-42 网络数据读取
图7-43 数据传送路径
RECV(098)要求有响应,因为响应包含要接收的数据。如果在C+4中设置的应答监视时间内没有收到应答,数据传输请求重复达15次(重试次数在C+3的0~3位设置)。
3.CMND指令
用以向网络节点发送命令。其梯形图格式为:
这里,S为源字首地址,指明从哪个内存区接收数据;D为目标字首地址,指明所接收的数据存放在哪个内存区;C为控制字首地址,指明要接收多少数,从哪个节点接收等信息,见表7-10。
执行本指令,可向网络上的节点发送通信命令。用这些命令,可改变相关PLC的工作状态,如可改变指定的PLC处于监控工作模式等。
其通信过程如图7-44所示。
表7-10 控制字C到C+5含义
从图7-44可知,执行CMND指令,将通过PLC的CPU总线或网络,发送以字S为起始地址的指定字节数的FINS命令,到指定的设备。应答数据存储到以D开始的存储区中。
CMND发送的是OMRON FINS协议的命令代码。如代码为0102,那么执行CMND指令,如同执行SEND;代码为0101,执行CMND指令,如同执行RECV。
例1 图7-45所示的程序就是一个发送FINS命令到另一个CPU单元的例子。当000000和A20207(某型机端口07的通信端口允许标志)为ON时,CMND将FINS命令0101(内存区读)传输到节点号3,应答存储到D00200~D00211中。
该命令从D00010~D00019中读取10个字。应答包含有2B的命令代码(0101)、2B完成代码,然后是10字的数据,总共12字或24B。10s内未接收到应答,数据将最多可重复传输3次。
图7-44 通信过程
图7-45 CMND通信示例程序一
这里的S及C中各字的取值及含义如下:
例2 图7-46所示的程序显示了一个发送FINS命令到本地CPU单元的例子。当CI/O 000000和A20207(某型机端口07的通信端口允许标志)为ON,并且A34313为OFF时,CMND(490)将FINS命令2215(创建/删除目录)传输到本地CPU单元。应答存储到D00100~D00101中。这里,FINS命令将在OMRON目录下创建一个叫CS/CJ的目录。命令代码(2B)和结束代码(2B)将被返回,并作为应答存储。
图7-46 CMND通信示例程序二
这里的S及C中各字的取值及含义如下:
利用网络通信指令进行通信,过程较复杂,若被传的对方也正处于通信状态,则这个传送将不执行,故通信指令执行中,要求设定重试及其次数,还有不少成功或失败的标志。另外,被通信的对方也可设定或用指令(程序),予以禁止或保护,以保护自己的数据及自身安全。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。