全网最全多部多层电梯群控算法分析2--单部思想
目录
前言
推荐文章
单部电梯动作拆解
启停
电梯启动条件
驱动系统原理图
电梯启动的步骤
电梯启动部分示例程序
电梯停层步骤
电梯停层部分示例程序
开关门
电梯开关门条件
示意图
电梯开关门示例程序
楼层计数
楼层计数部分示例程序
灯光
数码管
数码管部分示例代码
按钮指示灯
按钮指示灯部分示例程序
上下行指示灯
电梯功能拆解
初始化
安全
超载不能运行
超载示例程序
电梯越位返回
运行
前言
本文作为群控算法的前导内容,将简要阐述单部电梯的设计思路与常见问题,旨在统一前文提及的模块化设计理念和单部电梯思维框架。文中暂不涉及具体实现细节。
警告:本篇会涉及程序截图,均属于部分程序,可作为思路上的参考,切勿随意模仿
推荐文章
基于S7-1500的单部六层https://blog.csdn.net/qq_44808429/article/details/114574368?spm=1001.2014.3001.5501关于单部电梯算法,强烈推荐参考这位博主的系列文章,讲解比我详细得多。由于写作时电脑已卸载博图等软件,我无法提供具体示例说明。需要注意的是,该博主在上下行命令处理上采用分类讨论的方法,并不适用于我首篇文章提出的目标楼层算法,但其他思路值得借鉴。作为参加过三届西门子杯的选手,我衷心建议:可以借鉴他人思路,但最终必须形成自己的理解与创新。学习和模仿都是为了自我提升——比赛固然重要,但赛场外的成长更为关键!
单部电梯动作拆解
启停
电梯启动条件
所有楼层的电梯门及轿厢门必须完全关闭。
驱动系统原理图
制动系统原理图
如驱动系统原理图可知,电机启动需要三个条件
- 电机启动ZK
- 上行或下行--SK/XK
- 高速或低速--KK / MK
电机接通需同时满足三个条件:高速信号通常用于启动和稳速阶段,而低速信号则主要用于停层环节。
电梯启动的步骤
- 启动电机
- 启动上行或下行接触器(二者要互锁)
- 启动高速或低速接触器(二者要互锁)
电梯启动部分示例程序
电梯停层通常只需破坏三个条件中的任意一个即可实现,但在实际操作中还需经过减速过程。
电梯停层步骤
- 高速切低速
- 按照时间顺序依次启动三级制动 一级->二级->三级(制动等级越高,加速度的模值越高)
- 等到电梯到达指定楼层(当前楼层=目标楼层)指定位置(上下平层信号接通)关闭电机、上行或下行接触器、低速接触器(步骤一已经将高速切为低速)
作者碎碎念:注意很多人喜欢在这里只破坏一个启动条件, 虽然说逻辑上是可以的,但作为工科生要有责任感, 为了安全考虑请务必同时关掉三个接触器, 如果其中一个接触器无法松开至少还有两个可以补救电梯停层部分示例程序
开关门
电梯开关门条件
电梯稳停:上下平层信号接通,运动相关接触器断开
示意图
| 输入变量 | 输出变量 |
| 开门按钮 | 开门继电器 |
| 关门按钮 | 关门继电器 |
| 光幕信号 | |
| 开门到位 | |
| 关门到位 |
什么情况下开门
- 本层有任务(有人要进或者有人要出)
- 关门过程中有光幕信号(有人还要进不能关门)
- 有人按开门按键(电梯稳停中,不在运动中)
- 超载(不能启动开门让乘客下去)
什么情况下关门
- 开门到达一定时间且没有光幕信号
- 有人按关门按键
电梯开关门示例程序
楼层计数
相关变量
上行接触器 |
| 下行接触器 |
| 上平层信号 |
| 下平层信号 |
楼层计数方式没有统一标准,既可以采用"离开当前层"的计数方法,也可以选择"即将到达层"的计数方式。具体选择与算法设计相关,会带来一定影响,大家可以根据实际情况灵活运用。以下是基本的计数思路:究竟应该以什么为依据进行计数呢?
根据官方文件显示,轿厢配备了两个传感器:上平层和下平层。通过这两个传感器信号的组合方式,配合上下行接触器即可实现楼层计数功能。
电梯停稳且上下平层信号均已到位时,可断开所有启动相关的接触器。
上行离开当前楼层上行接触器接通 有下平层信号 没有上平层信号
上行到达另外一楼层上行接触器接通 有上平层信号 没有下平层信号
下行离开当前楼层下行接触器接通 上平层有信号 下平层没有信号
下行到达另一楼层下行接触器接通 下平层有信号 上平层无信号
楼层计数部分示例程序
灯光
数码管
用于楼层显示
每段数码管就是一个灯,例如a b g e d亮则显示2
通过不同数字组合可显示相应楼层信息
数码管部分示例代码
这个写法很多种我的比较独特不建议学习(推荐上述博主的方法,思路简单)
我用的是二维数组,且数组第一个为变量,建议各位用普通的置位复位就行
按钮指示灯
即每个按键都需要有一个指示灯,表示按亮了,如果有说明需要有双击取消或者单击取消功能
按钮指示灯部分示例程序
程序带双击消除
上下行指示灯
电梯运行方向指示灯至关重要,大多数乘客都是根据指示灯方向选择乘坐。然而这里暗藏玄机:运行时指示方向很简单,但停靠后的指示却大有讲究。尤其涉及到算法时更为复杂,因为指示灯方向直接影响后续路径规划。看似简单,实则暗藏门道。
这是作者在实践中总结的经验,虽难以用语言准确表达,但相信大家在实践过程中自然会遇到类似问题,并形成自己的理解。需要强调的是,外呼绝不容小觑。与内呼不同,外部仅仅表示一种期望,外呼之后大概率还隐藏着内呼需求。
电梯功能拆解
初始化
目标:定位电梯位置。电梯初始位置未知(各楼层无特殊传感器标识位置),通过移动到端点确定位置。到达端点(有限位器可判断)后折返,在返回过程中开始楼层计数,最终停在指定楼层即可。
例如:上行初始化到5层
- 电梯低速启动并向上运行
- 上端第一限位有信号,上行切下行并开始计数
- 楼层开始计数到指定楼层时停止
- 初始化结束
细节:电梯门没关好要关门
安全
超载不能运行
- 电梯当前载重量超过额定载重量,开启满载指示
- 打开电梯门
超载示例程序
官方提供的输入变量以word格式表示载重,其范围为0-2000kg。为提高数据可读性和使用便利性,需将word格式转换为浮点型real数据。这一转换过程需要两个指令:
- NORM_X指令:将word数据(0-27648)线性转换为0~1.0范围的real值
- SCALE_X指令:将标准化后的real数据等比缩放为0~2000.0的实际重量值
根据官方数据,word反馈值范围为0-27648,对应实际重量0-2000.0kg。因此两个指令的输入范围分别为:
- NORM_X:0-27648
- SCALE_X:0-2000.0
请注意,2000.0kg是传感器的最大量程,并非超载标准。实际超载重量以官方文件规定为准。一旦发生超载,电梯务必不能启动,开启门禁并发出警报,提示乘客主动离开电梯。
电梯越位返回
电梯超过正常行驶楼层,到达终端,即非初始化情况下触碰到限位开关。说明此时发生严重安全问题,要及时控制电梯停止运行返回正常楼层。
电梯两端分别有两级限位,触碰第一限位时立刻减速,触碰第二限位时立刻返回,类似初始化操作。
详细见后文
运行
即包括前面的启动、停层、开关门三个步骤的灵活应用
启动:前提电梯停稳且门锁关好无安全隐患
- 目标楼层=当前楼层 电梯开门(本层唤醒)
- 目标楼层>当前楼层 电梯上行
- 目标楼层<当前楼层 电梯下行
停止
- 当前楼层=目标楼层 开始减速
- 按时间顺序依次开启三级制动
- 上下平层信号接通,停止电梯运行
开关门
