基于模型的PLC程序设计三 层次状态机

本文介绍如何使用西门子PLC的ST语言设计一个包含父状态(running)和子状态(runSlow, runFast)的状态机。在运行状态下,电机根据speed_up和speed_down按钮切换速度,按下stop按钮则直接停止。文章详细阐述了状态机的逻辑,并提供了程序变量声明和状态切换的实现方法,同时也讨论了如何利用历史状态来保持设备的连续运行状态。" 127274680,7365510,Python Tkinter 实现桌面悬浮新闻阅读器,"['Python', 'GUI开发', '多线程', '桌面应用', '数据获取']
摘要由CSDN通过智能技术生成

这次我们再在前面的例子上加深一步,写个含有父状态的状态机,同时用ST语言描述。

控制描述

有一个电机,按下启动按钮后低速启动,按下加速按钮后切换成高速,按下减速按钮后再切换成低速,如果按停止按钮,直接停止。用状态机描述如下:
这里写图片描述

这个状态机我们简要说明一下。和上一篇有点不一样。包换了一个父状态running,在running里含有两个子状态runSlow和runFast,分别通过按钮speed_up、speed_down切换。前面我们讲过,只要子状态激活,它的父状态必然激活。如果父状态激活,那么也必需有一个子状态激活,这里我们设定runSlow为默认的状态,因为它的上面有个无条件转移线。

生成ST程序

我们先把需要用的变量列出来。他们都为bool型的,分别是输入变量start,stop,speedUp, speedDown, 和两个输出runSlow, runFast, 然后再加一个状态变量state,另加4个常量分别表示4个状态,stateStop, stateRunning, stateRunSlow, stateRunFast。这里我们简要讲一下变量的命名规则,写PLC程序的,变量的命名都喜欢用Pascal命名法或匈牙利命名法。尤其是匈牙利命名法,已在PC编程中被

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值