现场案例:用户使用CMMT-ST-C8-1C-EC-S0驱动器带ERMO旋转电缸,编程环境为欧姆龙Sysmac Studio,功能块为Festo提供的PTP功能块。使用过程中发现,定位位置超过2147°,完成后实际位置变为负数,以下为模拟图:


解决方案:
将CMMT-ST配置参数中的FactorGroup做调整,比如将位置系数由默认的-6改为-3,显示即不会溢出。


故障原因:
CMMT通过EtherCAT现场总线与PLC通讯时,采用CIA402标准,过程数据传输的目标位置和实际位置均采用DINT格式,其值域为-2147483648~+2147483647。驱动器内部根据FactorGroup中的位置系数,将浮点数类型的位置处理成DINT类型再通过总线传输。默认设置时,position位置系数为-6,CMMT的position型PDO参数经过小数点右移6位再取整后,才通过总线传输。举个例子,CMMT的actual position为2147.483647,总线传输时变为2147483647。因此,若系数选择过大,换算后的位置数据就可能超过DINT值域而造成溢出。
此问题通常发生在以°为单位的旋转运动应用中。不管是伺服还是步进驱动器,不论是哪家PLC,都会存在这个问题。