这坨铁皮架子动起来的时候还挺带劲的。今天咱们来扒拉扒拉这个3x3立体车库的手动控制玩法,PLC程序里藏了不少有意思的骚操作
基于博途1200PLCHMI3x3立体车库~手动版~控制系统仿真 程序 1、任务PLC.人机界面横移式升降立体车库运行仿真 2、系统说明 系统设有手动各车位单独存车取车功能车位数显示剩余车位显示车牌号码自动显示功能。 此程序增加了各托盘手动移位功能。 立体车库博途仿真工程配套有博途PLC程序IO点表PLC接线图主电路图控制流程图 附赠设计参考文档(与程序不是配套仅供参考)。 博途V16HMI 可直接模拟运行 程序简洁、精炼注释详细先说核心的托盘移动逻辑程序里用了个数组存托盘状态。看到这段没VAR PalletPosition : ARRAY[1..9] OF BOOL : [FALSE, FALSE..., FALSE]; //9个托盘初始位置 CurrentSelected : INT : 0; //当前选中托盘 END_VARHMI上每个车位对应数组索引点哪个车位CurrentSelected就变哪个数。这招比用9个单独变量省事多了改配置尺寸也方便。手动模式里最骚的是这个互锁逻辑IF 手动模式激活 THEN FOR i : 1 TO 9 DO IF i CurrentSelected AND PalletPosition[i] THEN 互锁输出 : TRUE; //其他托盘在位时禁止操作 END_IF END_FOR END_IF这坨代码保证了每次只能操作一个托盘其他托盘要是没归位直接给你锁死操作权限。调试时候这功能救了我老命要不早撞车八百回了。HMI数据绑定也整得挺利索看这个车牌显示部分Text Tag:CarPlate_{CurrentSelected} Width120/直接拿当前选中索引动态绑定文本框PLC那边把字符串存到对应DB块就完事了。比传统每个车位单独做文本框省了八倍工作量。有个特别实用的手动微调功能程序里是这么玩的CASE 手动微调模式 OF 1: //横向移动 IF 左移按钮 THEN CurrentSelected : CurrentSelected - 1; ELSIF 右移按钮 THEN CurrentSelected : CurrentSelected 1; END_IF 2: //纵向移动 //类似逻辑... END_CASE这功能在调试时候巨好用直接拿着HMI上的方向键像玩街机一样挪托盘比用鼠标点坐标爽多了。基于博途1200PLCHMI3x3立体车库~手动版~控制系统仿真 程序 1、任务PLC.人机界面横移式升降立体车库运行仿真 2、系统说明 系统设有手动各车位单独存车取车功能车位数显示剩余车位显示车牌号码自动显示功能。 此程序增加了各托盘手动移位功能。 立体车库博途仿真工程配套有博途PLC程序IO点表PLC接线图主电路图控制流程图 附赠设计参考文档(与程序不是配套仅供参考)。 博途V16HMI 可直接模拟运行 程序简洁、精炼注释详细剩余车位计算用了条狠指令FreeSpaces : COUNT(ARR:PalletPosition, VAL:FALSE);直接调用系统自带的计数函数比用循环累加逼格高多了。这货实时统计空位数量HMI上显示的数字就是这变量直接绑定的。说个坑点刚开始做IO映射时候把升降电机的正反转输出接到相邻位了。结果仿真时候电机一动就直接短路报警。后来用这个查线工具才定位问题IO_Debug : 升降电机正转 升降电机反转; //同时触发时为1现在程序里还留着这个调试变量关键时刻真能救命。这套代码最牛的是扩展性想改成4x4甚至5x5的车库只要改数组大小和HMI布局核心逻辑完全不用动。有次甲方临时要加车位老子半小时就改完交差了这架构设计真香。仿真时候记得打开这个监控视图所有关键变量一目了然WatchWindow.AddVar(PalletPosition); WatchWindow.AddVar(CurrentSelected); WatchWindow.AddVar(互锁输出);配合博途自带的3D视图能看到托盘跟抽风似的来回窜比看纯数据带感多了。最后提醒新手别在手动模式下开自动模式切换程序里虽然做了互锁但仿真时容易把CPU整懵圈。要切换模式先按急停这血泪教训值顿饭钱。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2446981.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!