西门子200SMART实用定位程序案例详解,文末附源程序!
我们分享一个常用的多点多速运动控制案例,要求在HMI上能实现报警显示、手动、自动控制;各段速度、位置的设定;IO表监控等功能。
具体控制要求是
(1) HMI上面能够实现手动运行速度、点动速度的显示;
(2) HMI上能有手动、自动控制画面;并能显示报警具体信息;
(3) HMI上能显示当前位置、目标位置、当前速度、目标速度的显示;
(4) HMI上能设置各段位置和速度;
(5) 当在手动模式时,自动模式不能运行,两种模式需互锁;
(6) 要求每次启动时均在A 位置开始运行,在没有按下停止按钮时,应在ABC三点循环运行,可随意更改三点位置值及运行速度;
(7) 当按下停止按钮时,不能立即停止,应运行完该段位置才能停止;
(8) 当按下急停按钮时,电机应立即停止;
本例子采用200SMART ST20 CPU,在看本案例时需要有一定的定位基础知识,能够清楚步进电机是如何进行控制的,是怎么去实现改变运行方向,并了解运动控制向导操作!
下图是电机的示意图;I0.2为正限位 I0.3为原点信号I0.4为负限位
HMI手动控制画面显示当前位置、点动速度、手动运行速度及设置手动运行速度
自动控制画面 显示当前位置和速度,目标位置和速度,使能指示等
参数设置画面可设置各段速度和位置
其他画面不一一展示
下面我们开始写程序,首先应该是轴使能以及初始化程序,但在编写初始化程序之前,我们考虑在HMI方便运行间歇时间的设定,做了个时间数据的运算程序
接着使用单按钮的方式编写轴使能程序 HMI及硬件按钮均可使能
其次我们接着编写手动部分的程序,手动运行正反转时需要互锁,并且在自动模式时手动模式不能运行,所以用定位使能及自动运行两个条做手动程序的EN位
当点动正转或反转时,我们把当前速度传送至HMI上显示
执行回原点程序
原点完成后把A点的位置和速度传送至目标位置和速度中
后是自动部分的程序,当没有急停的情况下,按下启动按钮后,则开始执行GOTO指令,开始运行依段速度运行至段位置
当当前位置和段A点位置相等时,把B点位置和速递传送至目标值地址内,延时一定时间后,运行至B点,当到达B点后把C点的位置和速度传送至目标位置地址
在没按下停止时,在ABC三处反复循运行;按下停止按钮后,则不再运行下一段目标值;按下急停按钮时,则需立即停止