news 2026/6/9 17:09:55

基于plc的单部6层,单部六层电梯控制系统。 具体实现内容看看视频。 支持软件为博途v15.1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于plc的单部6层,单部六层电梯控制系统。 具体实现内容看看视频。 支持软件为博途v15.1

基于plc的单部6层,单部六层电梯控制系统。 具体实现内容看看视频。 支持软件为博途v15.1。 wincc监控画面画好了电梯的模型,无需eet仿真即可看到电梯运行过程,可以呈现出电梯运行时的状态。 有lw,ppt可选

这个六层电梯控制系统项目用TIA Portal V15.1开发挺有意思的。我直接在西门子1200 PLC上撸代码,WinCC的监控画面自己用矢量图拼了个动态电梯模型,比用EET那些预制组件灵活多了。

硬件配置简单粗暴:数字量输入接24个按钮(每层内外呼),输出点控制接触器和指示灯。重点在于程序架构——我用了状态机+时间片轮询的方式。核心是下面这个状态枚举:

TYPE E_ElevatorState : ( IDLE := 1, //待机 MOVING_UP := 2, //上行 MOVING_DOWN := 3, //下行 DOOR_OPEN := 4, //开门中 DOOR_CLOSE := 5 //关门中 ); END_TYPE

每次扫描周期先处理呼叫信号,这里用了个小技巧——把内外呼信号存入两个数组:

VAR InternalCall: ARRAY[1..6] OF Bool; //内呼 ExternalUp: ARRAY[1..5] OF Bool; //外呼上行 ExternalDown: ARRAY[2..6] OF Bool; //外呼下行 END_VAR

楼层判断用光电开关的上升沿触发,这里要注意消抖处理。比如到达3楼时的处理逻辑:

IF "Floor3_Sensor" AND NOT Pre_Floor3 THEN CurrentFloor := 3; "Brake" := 0; //抱闸释放 //检查该层是否有呼叫... END_IF Pre_Floor3 := "Floor3_Sensor";

方向决策算法是重头戏。我参考了电梯调度中的SCAN算法,但做了简化。核心是这个优先级判断:

  1. 当前运行方向上的同向呼叫
  2. 反向最远端点呼叫
  3. 当前楼层反向呼叫

用WinCC做动画监控时,电梯轿厢位置通过PLC的Real型变量传递。这里有个坑——直接绑定整型变量会出现跳帧,所以我在OB30循环中断里做了平滑处理:

//每100ms执行 ActualPosition := ActualPosition + (TargetPosition - ActualPosition) * 0.2;

开门动画最折腾,用WinCC的C脚本控制门扇移动:

int door_state = GetTagByte("DoorState"); if(door_state == 4){ //开门中 left_door += 3; right_door -= 3; SetTagValue("LeftDoor", left_door); }

调试时建议多用变量表监控,特别是这个状态变迁视图:当电梯停在2楼收到4楼上呼时,应该先上升到4楼,途中响应3楼的内呼。这时候看directionflag和targetfloor的变化特别明显。

项目包里有个叫Elevator_Scheduler的FB块,里面的调度算法模块可以单独移植。比如这个判断是否要改变运行方向的逻辑:

IF (CurrentDirection = UP) AND (HighestCall < CurrentFloor) THEN NeedReverse := TRUE; ELSIF (CurrentDirection = DOWN) AND (LowestCall > CurrentFloor) THEN NeedReverse := TRUE; END_IF

实际跑起来发现个有趣现象:早高峰时电梯会更频繁地在一楼逗留,这时候程序里的"peak_mode"标志位会临时调整停靠策略——允许同方向连续停靠,牺牲部分效率来提升吞吐量。

源码里有个E_Stop处理很多人容易忽略。急停不仅要切断动力,还要用沿检测保存最后楼层:

IF "Emergency_Stop" THEN LastKnownFloor := CurrentFloor; //...其他安全处理 END_IF

这个项目改改参数就能套用在立体车库或传送带系统上,特别是那个带权重值的调度算法,调整下响应系数就能实现不同策略——比如医疗电梯优先、货梯避开高峰之类的需求。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 18:42:51

visualstudio code cline使用mcp amap

安装cline 配置json {"mcpServers": {"amap-maps": {"command": "npx","args": ["-y","amap/amap-maps-mcp-server"],"env": {"AMAP_MAPS_API_KEY": "bc1b47865fXXXXX"…

作者头像 李华
网站建设 2026/5/30 17:54:25

救命神器10个AI论文工具,MBA论文写作必备!

救命神器10个AI论文工具&#xff0c;MBA论文写作必备&#xff01; 论文写作的“救星”&#xff1a;AI 工具如何改变 MBA 学生的学习方式 在当今快节奏的学术环境中&#xff0c;MBA 学生面临着越来越高的论文写作要求。从选题到开题&#xff0c;从初稿撰写到最终定稿&#xff0c…

作者头像 李华
网站建设 2026/5/30 18:39:53

基于多时间尺度滚动优化的多能源微网双层调度模型探索

MATLAB代码&#xff1a;基于多时间尺度滚动优化的多能源微网双层调度模型 关键词&#xff1a;多能源微网 多时间尺度 滚动优化 微网双层模型 调度 主要内容&#xff1a;代码主要是一个多能源微网的优化调度问题&#xff0c;首先对于下层多能源微网模型&#xff0c;考虑以其最小…

作者头像 李华
网站建设 2026/6/5 10:42:34

10 个 AI 论文优化工具,高效复现数学建模优秀论文并提升质量

在开始详细介绍之前&#xff0c;先为大家总结10个推荐AI工具的核心对比。以下表格简明扼要地对比了这些工具的主要优势、处理时间和适配平台&#xff0c;方便Java毕业论文用户快速筛选&#xff1a; 工具名称 主要用途 处理时间 适配平台 关键优势 askpaper 降AIGC率&…

作者头像 李华