本着有始有终,负责任的态度,完成了以下测试。
实验软件 :STEP 7-MicroWIN SMART V2.5
实现硬件:ST60 V2.5
实验目的: 探究s7-200smart 运动控制的机制
我这边只提供一个参考方向。
PLC通过高速计数检测PLC所发的脉冲
I0.0 对应高速计数HC0
I0.1 对应STP
Q0.0 轴1脉冲输出
Q0.1模拟外部STP信号输出
详细见接线图
该实验主要涉及几个知识点,高数计数,轴运动控制,定时中断,立即输出
同时分享一个小技巧,由于SMART PLC没有TRACE功能,我们可以自己做一个.利用定时中断和数据指针,将要检测的数据存到一段V区,限制总的采集数量,通过设定的条件开始采集数据,然后把数据从状态表中拷贝出来进行分析,简单点可以导入EXCEL。
我这边分别验证了三个异常停车Abort,MOD_EN和STP的不同响应。基本方法,触发一个GOTO ,在定时中断中根据当前位置,提前给出三种不同停车。其中STP是通过立即输出Q0.1模拟实现。
实验结果:果然如论坛上其他帖子描述一样,Abort 和断MOD_EN都会出现脉冲多发的情况(停止时脉冲多于正常停车的脉冲),Abort要比MOD_EN多发的要多一些,而STP没有测试出多发的情况(可能测试次数和提前的距离,速度,加减速组合的样本还不足)并且三种情况,脉冲好像都没有真正立即停止,所以之前猜测并不成立。
由于对底层机制确实不知,所有只能在以后的应用中规避这种多发的问题。
大家也可以顺着我这个方向,继续挖掘,PLC底层的机制。
////////////////////////////////////////////////////////////////////////////////////////////////////////
题外话:这个加减速时间最少好像只能设定20,不然PLC运行时会报组态错误。
另一个分享一个小技巧,勾选读取位置,向导会多出一个AXIS0_RDPOS的子程序
根据在1ms定时中断检测,发现即使以100KHz频率发脉冲,读到的值和HC0最多相差30个脉冲左右,所以在有些场合完全可以用AXIS0_RDPOS在定时中断中快速刷新轴当前位置。