波恩大师:
刚做了一个步进位置控制,采用的是传统的:204文本+PLC+步进驱动器+步进电机。 今天从以上各位的发言中了解到,电子手轮也可以代替文本输入脉冲频率,但仍然还有些地方不太明白,特向波恩大师请教。
34楼说“用差分手轮直接驱动步进电机”,也就是说,电子手轮可以代替步进驱动器直接连接步进电机。
但楼主(2楼)的解释:“编码器的A、B相信号送入PLC,PLC带一个脉冲模块,脉冲模块输出的脉冲给步进电机驱动器。”也就是说,由手轮发信号给PLC,再由PLC发脉冲给步进驱动器,最后由步进驱动器驱动步进电机。
以上两种说法究竟哪一个正确?
谢谢!
好久的帖子啊,我回复一下吧,不知道还有没有人看。
一)手轮直接接伺服高速脉冲输入的时候,伺服脉冲指令方式设置为AB相正交脉冲,就可以很方便地运行,不会有以上提及的问题。
不过这种方式,实际应用中是受限制颇多,并不推荐。需注意以下两点:
1)伺服自动控制部分仍然需要接受PLC脉冲。
部分PLC不具备AB相脉冲发送方式;
部分PLC是有AB相输出方式,但是两个脉冲源(PLC和手轮)同时接线进入伺服,由于二极管存在导通互锁的问题,可能会存在丢脉冲的情况。
我知道汇川公司的IS500伺服(其它品牌可能也有,我暂且不知道),是可以有单独输入口直接接受电子手轮信号,且有倍率切换输入,可以克服此缺点。
2)电子齿轮比的问题。
由于手轮频率很低,因此必须为之单独设置一套电子齿轮比。实际应用中,往往会要求手轮每个脉冲运行1丝(或其它定值)。
二)手轮接PLC
通过PLC的AB相高速计数器,将手轮信号中继转换后输出。我经常使用的方式。
大部分运动控制器和部分PLC模块,可以直接接受电子手轮,应用更方便。
普通T型PLC,编程思路是:
1)定时(几十ms为宜)计算高速计数值的差值,将此差值运算后通过高速脉冲输出给伺服。
2)AB相计数器的增减标志位作为伺服方向控制信号。
诚如上面上面同学说提,这种应用存在绝对位置和相对位置的问题,我也一直没有找到什么比较好的解决办法。
利用欧姆龙PLC的绝对/相对位置控制比较方便的特点,我实际应用中倒是比较成功的,可以做到精确的定量正反向控制。
三菱的每次手轮信号使能时,必须先进行手轮信号高速计数器和高速脉冲输出清零。原因是三菱我只会用来做相对控制,怎么也没有学会用绝对控制,这一点,烦请会的人教教我,(q-q-2- 8- 6- 0- 6- 0- 6- 5- 2)谢谢。
西门子的200用电子手轮的时候是几乎没法用的,以上同学的思路很正确,但是实际编程根本没法实现,乱动是几乎每次可以重现,且毫无规律!大概是200这东西实在是太落后了吧。
插播一下,就轻工机械场合而言(其它重工场合我不是很熟悉),个人认为无论是性能还是价格,还是性价比,西门子的PLC全是可以进垃圾堆的。除了品牌和所谓的可靠性之外,大概是一无是处了。可是君不见无数国产PLC都好好稳定运行那么多年而无事么?可见,PLC的可靠性不是那么神秘的。
就这些了。
一直盘旋在脑子里挺难受得,刚才编了个样例,供大家参考。
前面是普通的正反转控制,后面是电子手轮控制。用汇川PLC编的,不过程序和三菱FX2系列是100%完全通用的。
//伺服电机伺服锁定S_ON
LD M8000
OUT Y14
//以下为正反转手动控制
LD M8000
LD X13
OR X14
ANB
DPLSV D110 Y0 Y10
//通过对速度赋值的正负,来控制方向。不需要直接对Y10/Y11进行操作。
LD M8000
MPS
AND X13
DMOV K10000 D110
MPP
AND X14
DMOV K-10000 D110
//以下为电子手轮控制。
//电子手轮操作在线自动判断。检测到手轮转动(X0,X1),便自动启用手轮M0;在线后5秒钟无操作,则判断手轮下线。
LD M8000
OUT C251 K999999
LDP X0
ORP X1
OUT C0 K1
RST T0
LD C0
ANI X13
ANI X14
OUT M0
OUT T0 K50
LD T0
OR M8002
RST C0
//响应手轮指令前的清零工作
LDP M0
DMOV K0 D8140
DMOV K0 D8142
LDF M0
RST C251
DMOV K0 D102
LD M0
DMOV C251 D100
DMUL D100 D10 D102
//伺服0和伺服1的手轮控制输出
LD M0
AND M8012
DDRVA D102 D106 Y0 Y10
//手轮倍率设定。默认4:1电子齿轮比时,手轮一圈100脉冲*25=2500=电机转一圈
LD M8002
MOV K25 D10
DMOV K5000 D106
//