基于博途西门子1200PLC与HMI数码管显示的停车场车辆数实时控制仿真系统——掌握自加自减指...
基于博途西门子1200PLCHMI数码管显示停车场车辆数目的控制仿真系统 程序掌握自加、自减指令数组表示数码管数字显示的使用方法 博途V16HMI 给想做停车场控制系统程序的朋友参考可直接模拟运行 学习梯形图入门逻辑SCL语言入门逻辑绝佳借鉴程序 程序简洁、精炼注释详细地下车库入口的红外光束一闪控制室里的数码管数字从63跳到了64。这个看似简单的数字跳动背后藏着PLC程序员的编程智慧。今天咱们用博途V16打开这个停车场控制系统的黑匣子看看怎么用SCL语言和梯形图实现车辆计数器的丝滑运作。PLC的肚子装着什么全局数据块里蹲着几个关键变量VAR_GLOBAL CarCounter: INT : 0; // 当前停车数量 Seg7Codes: ARRAY[0..9] OF BYTE : [16#3F,16#06,16#5B,16#4F,16#66,16#6D,16#7D,16#07,16#7F,16#6F]; // 0-9段码 InSensor: BOOL; // 进车传感器 OutSensor: BOOL; // 出车传感器 END_VAR段码数组像密码本把数字翻译成数码管能看懂的亮灯组合。比如数字8对应的16#7F其实就是二进制01111111让七段数码管全亮。主程序的加减法课这段梯形图逻辑像门卫大爷的计数本Network1: | InSensor OutSensor |----| |-----------(P)--[INC CarCounter] | | |----| |-----------(P)--[DEC CarCounter]用P触点确保传感器每次触发只计数一次就像自动铅笔的弹簧机构——按一下出一次笔芯。INC和DEC指令自带防抖功能比用普通线圈做自锁可靠得多。基于博途西门子1200PLCHMI数码管显示停车场车辆数目的控制仿真系统 程序掌握自加、自减指令数组表示数码管数字显示的使用方法 博途V16HMI 给想做停车场控制系统程序的朋友参考可直接模拟运行 学习梯形图入门逻辑SCL语言入门逻辑绝佳借鉴程序 程序简洁、精炼注释详细数码管变魔术SCL写的数码管处理程序像翻译官FOR #i : 0 TO 3 DO CASE CarCounter / (10 ** (3 - #i)) MOD 10 OF 0..9: Display.Seg7[#i] : Seg7Codes[CarCounter / (10 ** (3 - #i)) MOD 10]; ELSE: Display.Seg7[#i] : 16#00; END_CASE; END_FOR;这个循环把总数拆解成四个数码管位比如数字1234会被拆成[1][2][3][4]。指数运算10^(3-i)像切蛋糕的刀把数字按千位、百位逐层切开。HMI上的视觉戏法在博途的HMI编辑器里拖四个七段数显元件把它们的Segment变量分别绑定到Seg7[0]~Seg7[3]。设置闪烁属性为CarCounter60时启动警告效果当车满时数码管会自动开启呼吸灯模式。模拟运行的骚操作在PLCSIM里载入程序给InSensor/OutSensor打勾模拟车辆进出观察WatchTable里CarCounter的数值变化打开HMI仿真看数码管是否演出正确的数字disco故意让计数器超过9999会看到数码表演爆表特效——所有位数归零但实际计数继续这个程序最妙的彩蛋藏在段码数组里——把16#3F改成16#3E所有显示的0都会缺左下角适合用来检测数码管是否被人动过手脚。停车场管理系统看似简单但用200行代码就能演绎出工业控制的优雅逻辑这就是PLC编程的魅力所在。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433701.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!