欧姆龙PLC CP1H与变频器通信要点总结 您所在的位置:网站首页 sanch是什么变频器 欧姆龙PLC CP1H与变频器通信要点总结

欧姆龙PLC CP1H与变频器通信要点总结

#欧姆龙PLC CP1H与变频器通信要点总结| 来源: 网络整理| 查看: 265

plc通过modbus协议读取变频器数据,欧姆龙plc的modbus协议与标准的modbus协议稍有区别

标准的读变频器数据格式为

从机地址 功能码  读取的寄存器起始地址高字节  读取的寄存器起始地址低字节  读取的寄存器数量高字节  读取的寄存器数量低字节  CRC低  CRC高

如    01 03 00 6B 00 01 CRC低 CRC高

而欧姆龙plc读变频器的数据格式为

从机地址 功能码  字节数  读取的寄存器起始地址高字节  读取的寄存器起始地址低字节  读取的寄存器数量高字节  读取的寄存器数量低字节  CRC低  CRC高

此处多了一个字节数,但是在实际发送的时候,变频器收到的数据却是标准格式,即字节数在发送的时候去掉了,或者说这是欧姆龙用于发送的一个参数,这个字节数的值是从字节数后面的寄存器开始算,

一个寄存器占2个字节,但CRC不参与计算,举例子:

如欧姆龙PLC发送的数据为:01 03 04 00 6B 00 01 CRC低 CRC高    (此时的字节数为04是因为起始寄存器占2字节,读取的寄存器数量占2字节,即00 6B 00 01)

但变频器收到的真实数据是:01 03 00 6B 00 01 CRC低 CRC高

因此要注意这其中的区别,否则将会导致通信失败。

举个例子,假如使用串口调试助手通过RS485转换器跟变频器通信,读取P0-04的寄存器值,那么发送的数据帧格式就是标准的modbus格式,即

01 03 00 04 00 01 C5 CB        (需要手动添加校验码,因为串口调试助手不会自动计算校验码)

若用欧姆龙PLC与变频器通信,则发送的数据帧格式是:

01 03 04 00 04 00 01 CRC低 CRC高

变频器按照标准的modbus协议格式返回数据,数据格式为  从机地址 功能码 字节数 寄存器1值高字节,寄存器1值低字节...寄存器N值高字节,寄存器N值低字节 CRC低,CRC高

字节数是寄存器数量的2倍,即字节数为2N,上述例子中PLC只读取1个寄存器值,因此变频器返回的实际数据为:

01 03 02 08 98 BE 2E    (0x0898为十进制的2200)

在这里,有一个重要的点要说明。

欧姆龙PLC CP1H在接收变变频器数据的时候,会将字节数02当成数据,导致接收到的数据为0x0208,0x9800,而实际的数据仅仅是0x0898而已,因此需要对接收的数据进行移位重新组合。

小知识点:

1.欧姆龙PLC CP1H存储接收到的数据是从D32354(假设用的是串口2)开始存储,每个寄存器2字节,16bit。因此变频器返回的数据被存在D32354的是0x0208,存在D32355的是0x9800(低字节补0),假如变频器返回的数据不止这两个字节,那么按照返回

顺序排列,不足两个字节的低字节自动补0。暂时不明白欧姆龙plc为什么这么做,将接收字节数当成数据,会导致真正的数据错位,需要重新组合排列。

2.欧姆龙PLC与变频器进行modbus通信时,plc不需要输入校验码,plc会自动计算并发送,只需要发送校验码之前的数据即可,不熟悉或者刚接触的人可能会将校验码一起发送,从而导致通信失败。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有