简介:
ACS是一款以色列的运动控制卡,控制直线电机,运动精度到u级别。常用在工业领域。
1.使用:
- 运动控制卡的流程一般是先连接,其次轴回零,最后轴运动。各种不同类型的控制卡原理几乎是一样的。根据相应的控制方式,封装连接、回零、相对运动、绝对运动、使能、断开等函数,方便调用。
- 根据相应的指令或者dll调用,传入相应的参数。
- 此控制卡有指令和dll混合搭配使用。
1.连接
2.回零
- 一般是通过指令在软件的buffer里测试。
- 回零逻辑是寻向、设置回零速度等参数、找到正或负限位、然后在某个方向上慢跑直到感应信号后选择某个位置后停止。
INT Axis Axis=0 MFLAGS(Axis).#DEFCON=1 HomeFlag(Axis)=0 ENABLE(Axis) WAIT 200 IF^MFLAGS(Axis).#BRUSHOK;COMMUT Axis; TILL MFLAGS(Axis).#BRUSHOK; END; WAIT 500 FDEF(Axis).#LL=0 FDEF(Axis).#RL=0 VEL(Axis)=30.000000 ACC(Axis)=500.000000 DEC(Axis)=500.000000 JOG(Axis),- TILL FAULT(Axis).#LL HALT Axis TILL ^AST(Axis).#MOVE VEL(Axis)=10.000000 ACC(Axis)=500.000000 DEC(Axis)=500.000000 JOG(Axis),+ IST(Axis).#IND=0 TILL IST(Axis).#IND HALT Axis TILL ^AST(Axis).#MOVE WAIT 500 SET FPOS(Axis) = FPOS(Axis) - IND(Axis) PTP/e (Axis), 0 WAIT 1000 SET FPOS(Axis)=0 FDEF(Axis).#LL=1 FDEF(Axis).#RL=1 STOP
3.相对和绝对运动
- 要设置速度、加速度、减速度和点位。
- 相对运动的限位,可以通过读取当前位置再加上相对位置的数值转化成绝对运动。也可以使用PTP/r。
char szTmp[128]; { ::sprintf(szTmp, "!MOVE\r\nVEL(%d)=%f\r\nACC(%d)=%f\r\nDEC(%d)=%f\r\nPTP(%d),%f\r\nstop\r\n", axis, vel, axis, acc, axis, dcc, axis, pos); }
4.Buffer
- 此控制卡所有的控制都是通过运行buffer,才能真正启动。
- 一般先停止buffer,清除buffer,加载buffer,运行buffer,等待buffer。
5.读位置
- 如果回零时,不启用补偿,则使用反馈值。否则,使用真实值。
6.关闭
原文链接:https://blog.csdn.net/C_gyl/article/details/95472326