我用松下PLC(FP-x)+两块AFPX-PLS输入输出卡,用直线差补控制伺服电机运动。可是运行后电机动一下就执行完了,并没有一段一段地走。
我猜想可能是所有数据一股脑都送出去了,没有管电机是否空闲。可我已经判断通道0、1空闲准备好R911C和R911D,不知道还应该怎么做,请高手指点。下面是相关程序:
...
ST R 22 要改变数据R22=1
F 0 (MV)
K 0
DT 83 要输出的数据段数
SET R 0
RST R 22
ST R 0 用过后清零
CALL 100 计算准备数据
ST X 7 1--运行差补,0--停止
AN R 0
CALL 200 差补运行
ED
SUB 200 ----- -差补运行
ST R 9010
F 30 (*)
DT 83
K 6
DT 31
F 0 (MV)
DT 31
I0
F 22 (+)
I0
K 2
I1
F 22 (+)
I1
K 2
I2
CALL 220 准备并送出一组数据
ST R 9010
F 35 (+1)
DT 83
ST >
DT 83
DT 30 ---要输出的数据段数
RST R 0 ;所有数据送完后清零
RET
SUB 220 准备并送出一组数据
ST/ R 911C 通道0空闲准备好
AN/ R 911D 且通道1空闲准备好
OT R 40
ST R 40
F 1 (DMV)
H 1000 增量CW/CCW输出
DT 0
F 1 (DMV)
I0DT 500
DT 2
F 1 (DMV)
I0DT 500
DT 4
F 1 (DMV)
K 0
DT 6
F 1 (DMV)
I1DT 500
DT 8
F 1 (DMV)
I2DT 500
DT 10
F 175 (SPSH)
DT 0
K 0
RET
|