简介:
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.关闭