輸入文字後請按 "enter"

2015-12-02 22:40

如何在仅支持32位数据的Modbus通信设备上处理64位

最新动态

 
大多数AKD伺服驱动器的参数为32位数据,有些则为64位。 AKD驱动器上的Modbus通信使用的是16位的缓存器。因此对于64位参数而言,需要4个缓存器来实现通过Modbus发送数据。

 
科尔摩根伺服驱动器
许多设备,包括PLC、HMI,以及计算机程序均不能处理64位数据。那么,当使用Modbus和仅支持32位值的设备时,如何读写64位的值呢?
 
有两种方法可以将64位值限制为32位。其中一种方法就是不使用上面两个缓存器。另一种方法就是使用专为64位参数设置的32位版本的Modbus地址。
 
在许多情况下,位置缩放比例可以设置成例如PL.FB等方式的位置值,如此将不超过32位。例如,如果将位置比例设置为10000计/电机每转一圈,那么需要429,496圈来达到32位的位置值。如果电机不超过该转数,则不会用到64位值上的两个缓存器。
 
对于可能存在负值的参数,符号位包含在最上面的16位缓存器中。因此,如果选择通过不使用上面两个缓存器的方式来将64位数据限制为32位值,则将会消除符号位,因此将不允许存在负值。正如仅使用下面两个缓存器来将64位数据限制为32位值一样,也可以仅使用最下面的16位缓存器,其适用于任何参数,无论是64位还是32位。有些AKD数据的值从不超过16位并且总是正值。
 
Modbus缓存器的顺序也很重要。对于AKD驱动器而言,Modbus地址码即为最上面一个缓存器的地址。而对于PL.FB而言,地址则为588,这是该数据最重要的缓存器的地址。缓存器591则是最下面的缓存器,或者说重要性最低的缓存器。因此,当使用参数的一部分数据量时,请谨记需要读写的缓存器是哪些。缓存器590和591是PL.FB的下面两个缓存器(32位)。
 
 
另一种方法就是使用从64位到32位重新映射的Modbus地址。例如,Modbus地址588用于PL.FB数据,为4个Modbus缓存器(588,589,590和591)。Modbus地址2072用于32为数据量的PL.FB数据,包括符号位,为2个Modbus缓存器。