最近遇到一个比较特别的问题,之所以特别呢,是因为除了我之外应该没人遇到了。
物料: 台达单相200W A2系列伺服一台。
三菱fx3u PLC 一台+ FX3U-485ADP-MB通讯适配器(modbus协议,有特定的ADPRW指令)
功能:PLC最为控制器,实现对伺服的定位控制,人机上编写正反向点动功能。
问题:由于PLC控制的伺服台数较多(7台)所以使用PLC本身的高脉冲输出控制显然是不够的,有什么可行的办法呢?bingo 伺服的PR模式。因为打算使用通讯控制了,所以就不考虑DI了。果断焊接CN3接头,参数设定,程序编写,吧啦吧啦 一切OK。顺利通讯上。使用MODBUS的 0x06功能,向P4-07内 写入PR#xx 顺利执行,但是怎么实现点动呢?目前我研究出来两种方法 :
NO.1 在DI动能设定里 设定 正向寸动 反向寸动(DI2 DI3),通过参数设定 P3-06 0XFF 以及P4-07 实现了对 DI的通讯控制,从而可以正反向动。
NO.2 对P4-05进行设定,使用通讯,向P4-05内写入 4998时 正转 4999时反转,OK。
但是问题来了:这两种方式都是 正转和反转 但并不能实现 正向点动和反向点动。以为使用通讯时 发一个脉冲 便会把参数 写入到 伺服的寄存器内 然后就一直在寄存器内,除非有新的参数写入,这便造成了我写入正向点动的数据后,必须在写入停止数据 马达才能停下来,否则一直持续旋转,我尝试用PLC对触发条件进行互锁,
即当条件ON时写入点动的数据 条件OFF时写入停止的数据,OK 理论上想法不错,但是试验后发现,延迟很高,当ON时不会立马转动,当OFF是也不会立马停止,都会有 1-2s 的延迟。 现在真的没办法了,请求大神能指点迷津,小弟不胜感激。
楼主最近还看过
看……“是因为除了我之外应该没人遇到了。”这句话应该是我说的。
你的程序肯定是调度出现问题。
要么是通讯空隙非常多。通常,新手编程一般都是用计时器来做时序的,0.2秒之后再做下一个动作什么的,白白浪费很多时间。明明一个通讯只要那么10几毫秒就完成了,硬要拖到0.2秒,那么中间那180毫秒plc愣着都不知道干嘛好。
要么是不该执行的多余通讯长期占用线路。特别是写参数的指令,小心把驱动器的eeprom写坏了。A2有个参数ram化的功能用到不?手册上不叫ram化,名字我忘了。这个作用可以使改写不写到eep当中,仅而次之,大家都知道写ram的速度比写eep的速度快多少?这个事情可以让通讯更快。更快。
不过,三菱的plc有个硬伤,很多很多指令都要经过end处理,或者要经过一个off周期。定位指令高速指令功能指令。这个硬伤使得你的处理必须等到下一个扫描周期才能开始或者才能结束。无疑多了等待时间。