我用 PLSY 发脉冲 给 伺服 ,然后变换相位 来 控制伺服正反转动, DDRVA 不能用 ,因为 发送脉冲时频率一直是变化的。
比如我 发送位置是 A到 B。 A是原点, AB 之间运动时,要是我发送脉冲数量+1.那么 伺服在A到B+1位置 移动 。
发送脉冲数为 -1那么伺服在A到 B-1位置 移动。 我想要 在A+/-1到B位置移动,需要怎么发送脉冲。
以上所有修改需要支持 AB之间运动的时修改。因为A和B都要修改,要不我就以B为原点,发送脉冲好了。
希望大神帮忙,重金赏识,谢谢啦
简单的说就是用相对定位,来实现绝对定位。
比如绝对定位DDRVA 就可以实现 。
DDRVA K0 K20000 Y0 Y1 向A位置转动
ddrva K100 k2000 y0 y1 向B位置转动
如上程序,伺服会来回移动在0和100之间
比如A到B。 A是0脉冲。 B是100脉冲。 那么 110脉冲,B点那边多了10,就是0到110.
相反 A的0脉冲变成 -10,那么实际位置是A那方向多走了10, -10到100走了110的距离。
就是A和B的位置都可以调
PLSY 指令AB也可以调,但因为是相对位置,把AB分成2条指令
PLSY K20000 K100 y0 AB相 向B运动
PLSY K20000 K100 Y0 BA相 向A运动
比如向B运动的100脉冲数变成110,那么向A运动的脉冲数也需要改成110.这实际就是0到110之间运动。要是向A运动的数值不改成110那么就是10到110之间运动。
要是我首先设置向A运动的数值110,那么A原点位置就是A+10.B点位置等于B-10。 这样因为先后顺序的问题, 运动的位置就会乱掉,没有绝对定位好用。
请问有大神可以解决这个问题不,太感谢了
由于重金赏识,PLSY,这条指令一般不带加减速时间,你用于伺服是可行,你用于步进是不可行,伺服从静止到一定速度对加减速时间要求比较低,今后的项目相对位置可以用DPLSR来做,对于你是用PLSY来实现DRVA,我的建议是在PLSY中的操作数指定为普通寄存器D区,更换D区里的数值就可以实现A+X,A-X,B+X,B-X,任意位置的定位,只需要提前把你需要走的位置的脉冲填在相应操作数的D区里,对于“明理 ”说
PLSY只能用一次,那是因为他接触的比较少,在某些品牌PLC中只能用一次,某些品牌PLC可以随便用,在只能用一次的场合,可以用我上面介绍的操作数定义为D区的方法,或者用流程隔开,用状态转移的STL的方式完成,或者用调用子程序完成,梯形图毕竟是自由的,给你的空间很大!