恭喜,你发布的帖子
发布于 2021-08-11 11:49:17
2楼
1,伺服驱动器里的modbus rtu访问地址要和200smart的modbus访问指令对应起来;
先从最简单的伺服驱动器编码器数值读取来做测试:
编码器单圈数据是32位的数据,2个寄存器;如果连续读取2个数据,必须将西门子plc的高位字和低位字顺序互换。16进制4202H对应10进制的16898,两个字就是16898+16899,在200smart的modbus rtu通信对应地址要再加400001,也就是416899和416900。要么将plc侧的高低字互换,要么将伺服驱动器侧的高低字互换,我选择以PLC为主,在伺服驱动器侧互换,利用伺服驱动器的modbus rtu地址镜像:
这也算是所谓“间接寻址”了!
实际的镜像组合:
可以看到,我已经在modbus访问地址的镜像中,将单圈编码器数据的高低字16898和16899进行了互换,plc只需访问16进制的4418H(17432)以后的连续数据即可,紧挨单圈编码器数据的是多圈数据(1个字)、伺服驱动器的状态字(440Ah)、伺服驱动器的输入状态字(4402h,最低位servo on状态)、当前的block No:、、、
v107.0为伺服ready信号,v109.0为servo on信号,当未检测到这两个信号为1时,使其为1;当ready且servo on,则不再发送轮询指令,而编码器位置和伺服状态等读取指令则在每个轮询周期中都被执行。
请填写推广理由:
分享
只看
楼主