下图是我们的电柜,原先是计划通过三菱QD70定位模块发脉冲控制IAI电缸的,后面才发现这款控制器是只能收差动信号,而QD70定位模块是发出的集电极信号,需要加转换模块才能使用。为了不影响设备调试,先接了IO信号控制电缸走点位和示教。也能用,就是不用电脑的话不知道示教的是多少距离,有改动位置的话不容易恢复。
右侧的FX5U是外购设备的控制器,看它的接口就闲置的,就研究了一下IAI电缸的modbus通讯,下面介绍下怎么用。
首先看接线吧,电缸的1脚是B,2脚是A
IAI设置
电缸控制器那边确认站号和波特率即可,站号是拨码开关设置的,默认是0,表示1号站。
波特率需要用软件设置,就下面的这个软件。
由于只有保存备份了位置数据,忘记保存参数配置文件,所以没法上图看在哪里配置,我用的这款波特率默认的是,也没去改。
PLC参数设置
PLC参数也就波特率,奇偶校验那些,串口通讯的都是这些,设置一致就可以了。
PLC编程
因为我是IO控制的,接线如下,选择输出指令No.1
控制器就会走到我示教好的位置1,它是27.23mm的位置
主要是靠IO选择,为了实现方便调试功能,我只要通过modbus通讯实现2个功能就行了。
一个是读取实时位置显示在触摸屏,还有就是可以随时查看和修改各个No位置数据。
其他的功能我就没去看了,也没啥区别,只是对不同地址读写而已。
读取当前位置
下面是IAI手册的一部分,它的-存放的就是当前位置,写指令读取这个地址的数据就行了
下面是5U的主站读取指令,PLC作为主站,IAI为从站
H1表示1号从站就是IAI,H3是功能码,H为起始地址,H2位读取个数,格式就是上面的示列。CRC校验是不用考虑的,这条指令会自己计算,M为指令执行结果标志位,失败M会ON,成功的话M会ON,成功读取的数据就会存到D开始的地址里,转到到D起始的地址中。
返回数据示例如下
正常数据返回的话,D存的是数据字节数,D-D就是电缸的当前位置,。
2,读取No:位置数据
如上,No位置存放在H起始地址里,一个位置数据占用16个地址,就像读取当前位置那样读取就好了。
功能码还是03,起始地址变成了H,读取个数变成了H50,一次读取5条位置No数据,读取成功后存放在D开始的地址中
然后做好触摸屏能显示就好
3,写入No位置数据
地址没变,功能码变成H10了
以上就是实现读取实时位置和修改No位置数据的编程方式,有疑问可以一起探讨,感谢观看!
调试成功后,我就把QD70拆下来啦,又省下一个模块。