当前位置: 首页 > news >正文

手把手教你用MCGS撸一个立体车库控制系统

No4.00 基于MCGS 2×3升降横移式立体车库模拟仿真设计 程序有全部注释。 编程软件:MCGS 嵌入版7.7以上版本 把最好的技术分享给大家,欢迎光临本小店 实现功能: (1)有紧急停止功能。 (2)具有检测空车位并指示功能; (3)通过按键存放到相应的空车位; (4)通过按键取相应的存放车位的车; (5)程序通过脚本程序编写,具有学习意义;

最近在搞一个2×3升降横移式立体车库的仿真项目,用MCGS嵌入版折腾了挺久。今天把核心代码和实现思路扒出来,给想玩工业组态的朋友打个样。

先看整体框架:六车位分两层,下层平移载车板,上层升降。核心脚本全写在循环策略里,上电就开始跑逻辑。先定义个全局变量组:

'//----全局变量定义---- Dim EmergencyStop As Boolean '急停标志位 Dim CarPos(6) As Boolean '1-6号车位状态(True=有车) Dim CurrentFloor As Integer '当前操作楼层 Dim TargetPos As Integer '目标车位编号 Dim MovingFlag As Boolean '设备运行中标志

急停功能的实现最简单粗暴。在画面里放个红色蘑菇头按钮,脚本写成:

Sub EmergencyBtn_Click() EmergencyStop = Not EmergencyStop '切换急停状态 If EmergencyStop Then !SetDevice(升降机, 停止) '强制停止设备 !SetDevice(横移电机, 停止) MovingFlag = False End If End Sub

重点是这个SetDevice函数,直接操作设备对象的状态。实测发现急停后必须手动复位,避免误操作。

空车位检测用了个骚操作——在画面隐藏区域摆了六个透明矩形,每个对应车位的检测传感器。用循环定时扫描:

For i = 1 To 6 CarPos(i) = GetObject("Sensor" & i).Value '读取传感器状态 If CarPos(i) Then !SetFillColor("车位灯" & i, 红色) Else !SetFillColor("车位灯" & i, 绿色) End If Next

这里用颜色变化做可视化提示,比单纯用文本显示更符合工业习惯。注意MCGS的控件命名规则,别把"sensor1"写成"sensor_1"这种带下划线的,脚本会找不到对象。

存车逻辑是重头戏。当用户点击存车按钮时:

Sub 存车按钮_Click() If MovingFlag Or EmergencyStop Then Exit Sub '防呆设计 For i = 1 To 6 '找最低可用车位 If Not CarPos(i) Then TargetPos = i Exit For End If Next CurrentFloor = IIF(TargetPos<=3, 1, 2) '判断楼层 If CurrentFloor = 2 Then !SetDevice(升降机, 下降) '上层需要降下 Do While !GetDeviceState(升降机) <> "到位" Delay 100 Loop End If !SetAnimPosition("载车板", 目标坐标) '横移动画 MovingFlag = True End Sub

这里有个坑:MCGS的动画控件坐标是相对父容器的,得先用!GetProperty拿到父容器尺寸再换算位移量。取车逻辑类似,但要反过来处理升降顺序。

最后给小白们提个醒:MCGS的脚本引擎对循环特别敏感,死循环直接卡死整个运行时。建议在循环体内加DoEvents或者Delay,像这样:

While !GetDeviceState(电机) <> "停止" Delay 50 '释放CPU时间片 If EmergencyStop Then Exit While Wend

完整工程里还加了声光报警、操作记录查询这些锦上添花的功能。需要源码的兄弟可以私信,注释写得比毕业论文还详细(笑)。下次有机会再聊聊怎么用MCGS做Modbus通讯,那才是真·掉头发系列。

http://www.jsqmd.com/news/139820/

相关文章:

  • 《从视觉到听觉:游戏状态信息的屏幕阅读器适配底层逻辑》
  • 自动驾驶控制-纯跟踪算法路径跟踪仿真 matlab和carsim联合仿真搭建的无人驾驶纯跟踪控...
  • PMP学习笔记--环境
  • 从数据瓶颈到ROAS飙升21%!Skygo牵手热力引擎,按下游戏增长快进键
  • 知识城燕窝推荐:最新五大专业品牌精选 - 品牌测评家
  • leetcode 784. Letter Case Permutation 字母大小写全排列
  • 当图像开始跳舞:用Matlab玩转频率域滤镜
  • 元旦
  • 数据增强-window warping
  • 2025年末GEO优化公司优质实力推荐清单:优质公司核心竞争力全解析 - 速递信息
  • 知名AI搜索优化公司推荐,南方网通引领行业新风尚 - 工业设备
  • SQL 经典面试题
  • 从化精品咖啡推荐:TOP5选择攻略 - 品牌测评家
  • 【电动车】基于多目标优化遗传算法NSGAII的峰谷分时电价引导下的电动汽车充电负荷优化研究附Matlab代码
  • 2025国内最新工业通风软管厂家 TOP5 评测!服务于广州广东等地优质企业榜单发布,优质公司赋能各行业通风系统升级 - 全局中转站
  • 2025信创大事件盘点:从“根基”到“生态”,自主之路迈入新纪元
  • linux命令
  • 信誉好、实力强的 AI 搜索优化公司推荐 - 工业品网
  • 2025年终AI搜索优化服务商TOP推荐:影响大模型答案的核心变量全解析 - 速递信息
  • 从化精品咖啡店排名:权威榜单与深度测评 - 品牌测评家
  • 试验任务6
  • 强化学习人类反馈新训练法:SeRA算法详解
  • 抽象
  • 2025国内最新风管/通风管/软管/高温管/伸缩管品牌首要推荐嵘鑫风管:服务于广州广东湖南等地,优质厂家深耕通风领域,这家实力出圈 - 全局中转站
  • 2025年终AI搜索优化服务商优质推荐:2025年度最佳实战效果榜单 - 速递信息
  • 有实力且靠谱!售后完善的 AI 搜索优化专业公司推荐 - 工业品网
  • 实用指南:2025认证杯数学建模D题思路分享(附源码,论文)
  • uniapp开发微信公众号使用fixed固定定位,苹果手机出现内容不显示问题
  • 靠谱且性价比高的 AI 搜索优化公司推荐 - 工业品网
  • agc011_e 题解