今天我们分享一个常用的多点多速运动控制案例,要求在HMI上能实现报警显示、手动、自动控制;各段速度、位置的设定;IO表监控等功能。
01具体控制要求:(1) HMI上面能够实现手动运行速度、点动速度的显示;
(2) HMI上能有手动、自动控制画面;并能显示报警具体信息
(3) HMI上能显示当前位置、目标位置、当前速度、目标速度的显示
(4) HMI上能设置各段位置和速度
(5) 当在手动模式时,自动模式不能运行,两种模式需互锁
(6) 要求每次启动时均在A 位置开始运行,在没有按下停止按钮时,应在ABC三点循环运行,可随意更改三点位置值及运行速度
(7) 当按下停止按钮时,不能立即停止,应运行完该段位置才能停止
(8) 当按下急停按钮时,电机应立即停止
本例子采用200SMART ST20 CPU,在看本案例时需要有一定的定位基础知识,能够清楚步进电机是如何进行控制的,是怎么去实现改变运行方向并了解运动控制向导操作!
02案例介绍:下图是电机的示意图;I0.2为正限位 I0.3为原点信号I0.4为负限位
HMI手动控制画面显示当前位置、点动速度、手动运行速度及设置手动运行速度
[img=415.3pt,196.06583pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knr4toYRQhJ7HlJ03gBXjWnG8icMW6DHN1GkJgpyDibiaIVt1rgunCia3ibVA/640?wx_fmt=png[/img]
自动控制画面 显示当前位置和速度,目标位置和速度,使能指示等
[img=415.3pt,178.56937pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knDrVnT2Y3M0vRQPicx8JWWniaYJOiaPXaLHBtvvuCGIaooMxB1BkxB0wew/640?wx_fmt=png[/img]
参数设置画面可设置各段速度和位置
[img=415.3pt,248.65pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knyNYwxB8HicoHYsgm4ceTwmMT2W0GEIIjyuJPJicLBltp6zJ8yqy3xF9w/640?wx_fmt=png[/img]
其他画面不一一展示
下面我们开始写程序,首先应该是轴使能以及初始化程序,但在编写初始化程序之前,我们考虑在HMI方便运行间歇时间的设定,做了个时间数据的运算程序
[img=355.5pt,84.75pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knUWQ4SCkJmTN6XMW33XkEgY5vk2icqBibXxFet7ia3kjc6Zib5P7dSeaEsg/640?wx_fmt=png[/img]
接着使用单按钮的方式编写轴使能程序 HMI及硬件按钮均可使能
[img=370.5pt,374.25pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5kntJ1LSDnsjL0BwSOvib0TbKv5iaIvQcc4Jibj3ATOW6wklM7NNE3jxUQIw/640?wx_fmt=png[/img]
其次我们接着编写手动部分的程序,手动运行正反转时需要互锁,并且在自动模式时手动模式不能运行,所以用定位使能及自动运行两个条做手动程序的EN位
[img=415.3pt,262.06195pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knWOjSjWtLq6meAiagcic82yHtibe7BGMyc2h8OkXX8bgTSZkcreiawyGMXA/640?wx_fmt=png[/img]
当点动正转或反转时,我们把当前速度传送至HMI上显示
[img=339.75pt,90.0pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5kn527q7W7HBzsPciaTlOR7vNZc2V1JOrBHdvr4cYSiaaAwLmBzFEQwbJBw/640?wx_fmt=png[/img]
执行回原点程序
[img=399.75pt,135.75pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knOn7No14K5Z5ia3RUaboj0KLYrtbTwSJgbGLOjQZsnEiamMAoGABm745g/640?wx_fmt=png[/img]
原点完成后把第一A点的位置和速度传送至目标位置和速度中
[img=493.26245pt,44.416454pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knriacmQFDy4kP5nbXORtuPwdJicuDGTctZmgCrMSiawoicQs4nSibkxJeorQ/640?wx_fmt=png[/img]
最后是自动部分的程序,当没有急停的情况下,按下启动按钮后,则开始执行GOTO指令,开始运行依第一段速度运行至第一段位置
[img=415.3pt,252.20827pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knjDJUeYXG3UOTN8mqVFanOEXYkDOgPQnuPZMrvTOgVp9kyUtM77djrQ/640?wx_fmt=png[/img]
当当前位置和第一段A点位置相等时,把B点位置和速递传送至目标值地址内,延时一定时间后,运行至B点,当到达B点后把C点的位置和速度传送至目标位置地址
[img=415.3pt,311.7634pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knLJHjUSIrJL6gR3Eyk9sZVvHZQ3E8ncXSaEDpN8YImghflwSwSGhFyA/640?wx_fmt=png[/img] [img=377.25pt,269.25pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knfUY0jkdv4UbuibtcQCxvvl9ZI5ENTDkyl3bHLRrHgYBUM1EoLvYIcaw/640?wx_fmt=png[/img]
在没按下停止时,在ABC三处反复循运行;按下停止按钮后,则不再运行下一段目标值;按下急停按钮时,则需立即停止
[img=415.3pt,119.158424pt]https://mmbiz.qpic.cn/mmbiz_png/ibKSicAclq35UR3fzcLmGsqxC8MQN2O5knfW2OfJTgrTJ6stp5zm4I1ia360cJzLpNeiayXNxbWH6ELdwcqiapALZiag/640?wx_fmt=png[/img]
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |