欧姆龙CJ2MPLC使用SCU模块与温控器实现协议宏通讯
协议宏,欧姆龙把它定位为更高级(比无协议通信)的自由协议。
协议宏是一种通信协议工具包,用于发送符合具有串行通信端口的通用外部设备的自有报文内容。它适用于欧姆龙PLC与第三设备之间的通信,根据第三方设备的协议,如ModbusRTU来编写协议报文,进行1:1~N串行数据通信。

协议宏通信要用到欧姆龙CX-One软件包中的CX-Protocol软件和支持协议宏通信的串行通信SCU模块,用PMCR指令触发通信序列的执行。以上软件、硬件、指令是协议宏通信三要素。下面来学习一下协议宏通信的操作流程。
一、硬件设置及接线
以CJ1W-SCU41-V1模块连接E5EC温控器,通过协议宏通信发送Modbus命令读取温控器当前温度值,写入温控器设定值为例,首先要设定模块的单元号,这与模块所占用的通道号计算有关。模块的起始通道号n=1500+25*单元号,占用10个通道,如单元号为2,起始地址就是:1500+25*2=1550,占用1550~1559共10个通道。
CJ1W-SCU41-V1模块的端口1为RS-422A/485端口,端口2为RS-232C端口,一般使用RS-485端口二线式接线的情况较多,以此为例接线,则端口1的1-SDA、2-SDB(或6-RDA、8-RDB)脚分别接第三方设备,如温控器的A(-)、B(+),FG接电缆屏蔽层(模块侧单接)。
二、设置主从站通信参数
打开CX-Programmer软件,在IO配置表中打开SCU模块设定参数:

设置“Port1Settings”端口1参数,端口设置:“Usersettings”用户设置;通信方式:“Protocolmacro”协议宏;数据长度:8位;停止位:1位;奇偶校验:“Even”偶校验;波特率:9600bps。将参数下载到模块单元中,并重启让参数生效。
温控器的参数设置为:协议选择:MODBUS;站号:1;数据长度:8位;停止位:1位;奇偶校验:偶校验;波特率:9600bps。通信参数与PLC一致。
三、在CX-Protocol软件中写入发、收数据
1、在PLC的IO表中,右击SCU单元,按下图中所示,启动“CX-Protocol”软件,也可在桌面或开始菜单直接启动。

2、新建工程,选择PLC类型、通信网络类型。

3、在Projects(项目)列表中,右击“NewProtocollist(新协议列表)”,创建一个CS/CJPLCProtocol协议。


5、右击“NewSequence(新序列)”,创建步。

6、右击“SMessageList(发送消息列表)”,创建发送信息。命名信息为“S1”。重复以上,再创建发送信息,命名信息为“S2”。

7、右击“ReceiveMessageList(接收消息列表)”,创建接收信息。命名信息为“Rcv1”。重复以上,再创建发送信息,命名信息为“Rcv2”。






14、同理,编辑“S2”和“Rvc2”的数据,意为写入温控器SV值的发送与接收数据。“S2”的数据信息为“01(站号)+10(写多个寄存器功能码)+0106(开始地址)+0002(元素数)+04(字节数)+0000012C(写入温度值30.0度)+(C)”;“Rvc2”的数据信息为“01(站号)+10(写多个寄存器功能码)+04(字节数)+0002(元素数)+(C)”。


15、编写完成后,在“NewSequence”的Step步00中,分别设定“Command”为“SReceive”、“SMessage”为“s1”、“RecvMessage”为“Rcv1”。


16、同第5步,新建一个“Step01”,然后同第15步,分别设定“Command”为“SReceive”、“SMessage”为“s2”、“RecvMessage”为“Rcv2”。
把第00步中的“Next”项由“”设置为“Next”(继续执行下一步)。


四、写入通信程序
在CX-Programmer软件中编写程序,并下载到PLC中。

因n=1550+25*2=1550,端口1协议宏执行标志位为CIO(n+9).15;端口2协议宏执行标志位为CIO(n+19).15。1559.15位为ON时表示端口1正在执行协议宏通信。
