S7-1200/S7-1500通过FB284控制V90伺服的位置控制时,很多场合我们需要随时改变位置或者随时改变速度的控制。比如以下例子:
1,对V90伺服走定位,需要位置,首先走到位置100MM,然后到达后马上走到位置500MM,然后走到位置150MM,等等。
2,需要实时改变速度,比如伺服在往位置500MM行进中,而速度通过外部随时在更改,比如以10MM/S,根据要求要改成11MM/S,12MM/S,15MM/S。
3,伺服正在往位置800MM行走中,此时改变目标为位置300MM,伺服迅速放弃800MM的位置指令,立即往300MM位置行走。如果更改了速度,速度也随之改变。
以上很多场合都会用到,常规的做法是利用新的EXECUTE上升沿来覆盖原来的指令。这很麻烦,比如速度实时改变的场合。怎么做才能快速有效的达到上述要求呢?其实很简单。
这个是FB284功能块的相关引脚解释,其中对ConfigEPOS这个字有上图的说明,图中说明将第8位置1,就可以激活V90的连续设定点功能。
那么在程序中我们调用FB284之前,先把这个位一直置1,即ConfigEPOS.X8=1即可。
这样在调用FB284功能 时,Execute只要在程序中触发并一直为1即可,我们需要改变位置或者速度 ,只需要对Postion和Velocity这两个随时进行更改就可以实现位置和速度的实时改变。
比如次写入Postion的值是500MM的转化值,也就是说伺服走到500MM,如果你改变了这个值,伺服马上就会更新,走到你的新的值,比如此时你设定是800MM的转化值,此时伺服就会直接走到800,同理,Velocity一旦改变,也会马上执行新的速度。
其实这个功能,用MODBUS控制V90伺服也是一样,也是可以实时改变的。