1.Cmnd的介绍
Cmnd是CP/CJ系列中一个可以发布任意Fins指令的功能块,支持网口和串口。此功能块有以下三步分组成。下面对Cmnd的一些使用进行介绍。
注意:CP编程手册上没有说明如果使用其他格式,需要在指令保存地址开头填入2803(CompoWay/F),2804(Modbus-RTU),2805(Modbus-ASCII)后面则输入对应的协议格式。若是使用Fins,则直接从指令保存地址首地址输入Fins格式,详细介绍请看 CP/CJ通信指令手册。**
2.串口
Cmnd可以通过串口网关发送任意Fins指令如 Hostlink Fins格式,Modbus-RTU,Modbus-ASCII,CompoWay/F 格式。
2.1用Cmnd发送Modbus-TCP
2.1.1 硬件接线
CP1H-EX | 温控表 | |
---|---|---|
RDB+ | —————————- | B- |
RDA- | —————————- | A- |
2.1.2 PLC设置
波特率和格式根据温控表的通信设置进行设置,模式选择串口网关<br /> ![image.png](https://cdn.nlark.com/yuque/0/2020/png/974473/1583138629893-f77e1a7b-d425-4733-9809-76bf4edf98a7.png#align=left&display=inline&height=375&name=image.png&originHeight=375&originWidth=883&size=55399&status=done&style=none&width=883)
2.1.3 程序
命令码:在Cmnd的指令发送首地址填入2804,转换成Modbus —RTU,后面的命令按Modbus格式填写![image.png](https://cdn.nlark.com/yuque/0/2020/png/974473/1583216912091-8efc3cd5-109b-4829-a1fb-0897e28ec667.png#align=left&display=inline&height=449&name=image.png&originHeight=449&originWidth=961&size=97957&status=done&style=none&width=961)
响应指令 前两个通道返回的是Fins指令的格式 2804 ,0000,后面的和Modbus格式一样<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/974473/1583217041966-42826120-6a2b-4075-8ce8-88081b47f0d1.png#align=left&display=inline&height=206&name=image.png&originHeight=206&originWidth=951&size=41033&status=done&style=none&width=951)
本案例 CMND 指令保存地址为D100 ,响应数据首地址为D200 ,控制数据为D300
** 如读温控表PV值**<br /> ** 命令指令: ** 01 03 20 00 00 01 <br /> 用Cmnd不需要发送CRC验证码<br /> <br /> **响应地址收到** 28 04 00 00 01 03 02 00 1B <br /> 前四个字节为Fins响应码,读取数据为1B转换成十进制27<br /> <br /> 触发前将发送命令写入 CMND指令保存地址![image.png](https://cdn.nlark.com/yuque/0/2020/png/974473/1583141388410-71a61a89-fce6-4ba1-961f-4e1447da1200.png#align=left&display=inline&height=210&name=image.png&originHeight=210&originWidth=969&size=10323&status=done&style=none&width=969)<br /> <br /> 触发后<br />![微信图片_20200302172612.jpg](https://cdn.nlark.com/yuque/0/2020/jpeg/974473/1583141447631-6c99eed3-3105-4737-9c92-544b58c0af55.jpeg#align=left&display=inline&height=1440&name=%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20200302172612.jpg&originHeight=1440&originWidth=1080&size=90279&status=done&style=none&width=1080)
CMND 响应保存数据地址收到数据
** 如写温控表SV值**<br /> **命令指令:** 01 06 21 03 02 00 <br /> 用Cmnd不需要发送CRC验证码<br /> ** 响应地址收到** 28 04 00 00 01 06 21 03 02 00
触发前将发送命令写入 CMND指令保存地址
触发前SV值为0
触发后SV值为512
2.1.4 案例程序
[Cmnd串口.zip](https://www.yuque.com/attachments/yuque/0/2020/zip/974473/1583218563824-bfebef1a-74b4-4e2a-9660-95e3279ba2f3.zip?_lake_card=%7B%22uid%22%3A%221583218563496-0%22%2C%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2020%2Fzip%2F974473%2F1583218563824-bfebef1a-74b4-4e2a-9660-95e3279ba2f3.zip%22%2C%22name%22%3A%22Cmnd%E4%B8%B2%E5%8F%A3.zip%22%2C%22size%22%3A11974%2C%22type%22%3A%22application%2Fzip%22%2C%22ext%22%3A%22zip%22%2C%22progress%22%3A%7B%22percent%22%3A99%7D%2C%22status%22%3A%22done%22%2C%22percent%22%3A0%2C%22id%22%3A%22Q0Ms6%22%2C%22card%22%3A%22file%22%7D)
3.网口
网口例子请参考 CJ走网口用Cmnd通信