比较复杂,而且接收到响应数据具有一定的不确定性。因此,在协议宏程序中使用接收阵列的形式完成数据的接收工作。如图3所示,在接收阵列中设置了3种可能接收到的数据信息receivemessage,并规定接收到特殊数据信息后要进行的下一步处理方法
extprocess。
通信协议宏组态结束后,将其下载到通信板中。
三菱plc通信参数设置:通信格式设置为format1,波特率9600bps、偶校验、7位数据位、1位停止位。地址设置范围00h~0fh。
f图3接收阵列
欧姆龙plc通信参数设置:通信板a端口设定为协议宏通信方式,其他通信参数要与下位三菱plc的通信参数保持一致。
通信协议宏的调用与执行程序段如图4所示,28908为通信板端口a使用标志。pmcr指令的第一操作数“1000”、“1001”为控制字,第一位的“1”表示使用通信板的端口a,后3位数表示调用并执行的通信序列号。dm0000、dm0200为pmcr指令的第二操作数,所指定的有效通道存放发送的数据。dm0100、dm0300为pmcr指令的第三操作数,存放接收到的数据。当pmcr调用000号通信序列时,从三菱plc的x位元件组读取数据,当pmcr调用001号通信序列时,向下位plc的y位元件组写入数据。
图4协议宏调用程序
通信协议宏具有较强的灵活性,程序的编写和调用非常简单,容易实现不同厂家plc之间的通信。在程序的编制与调试过程中,一些细节问题必须予以注意:
1在程序中有多条pmcr指令时,使用微分指令避免指令间的冲突;
2读取几个设备的数据,使用变量的方式接收数据;
3最好将发送信息与接收信息写在不同的通信步中,避免从站断线导致pmcr指令执行标志无法复位。
fr