资深PLC工程师为什么不愿意用置位和复位指令编程?

百科   2024-10-16 22:37   山东  

刚入行时,我和大多数PLC新手一样,对置位(Set)和复位(Reset)指令情有独钟。这两个指令简单易用,看似能解决许多控制难题,堪称PLC编程界的"瑞士军刀"。然而随着项目经验的积累,我逐渐发现这把"军刀"并非万能,反而常常带来意想不到的麻烦。

先说说执行效率的问题。以常见的电机启停程序为例,表面上看用置位复位指令能轻松实现控制,但细究其中奥妙就会发现隐患。在一个扫描周期内,同一个输出可能被重复写入两次 - 先置1再置0。这不仅拖慢了程序运行速度,还可能导致输出状态不稳定,仿佛两个指令在争夺操作权。 

再来谈谈编程陷阱。置位和复位指令往往需要成对出现,但在编写复杂程序时很容易遗漏其中之一。如果忘了写置位指令,输出可能一直保持0状态;漏掉复位指令,输出则可能永远保持1。更糟的是,这种错误往往难以察觉,需要反复梳理代码才能找出问题所在。

此外,置位复位指令还可能导致扫描周期"黑洞"。由于这类指令基于条件判断,如果一个周期内启停按钮都未被触发,相应的输出可能根本不会被写入。这种看似无害的跳过操作,在某些情况下可能引发意料之外的状况,让设备状态变得难以预测。

还有一个不容忽视的问题是程序逻辑的严密性。当置位和复位操作之间夹杂其他指令时,可能会出现短暂的逻辑混乱。例如,如果中间指令执行时间过长,可能导致启动和停止条件在同一周期内同时满足,造成电机刚启动就立即停止的奇怪现象。

最后,在需要处理多个输入信号的复杂工业现场,使用置位复位指令很容易因信号之间的微小时间差,导致设备执行逻辑不一致。某些关键信号可能会错过判断窗口,引发设备误操作。

那么,面对这些潜在问题,有什么更好的解决方案吗?我的建议是:使用程序自锁逻辑。相比传统的置位复位指令,自锁逻辑通过巧妙的程序设计,确保每次操作后设备都能保持在正确状态,不会因重复写入或遗漏操作而出现不确定性。

虽然置位复位指令看起来简单方便,但背后隐藏的效率低下、易遗漏、逻辑不严密等问题,往往会在实际应用中带来更多的调试麻烦。对于追求高效可靠控制的资深PLC工程师而言,自锁逻辑无疑是更明智的选择。毕竟在复杂的工业自动化环境中,我们需要的是稳定可靠的控制程序,而不是看似简单却暗藏风险的指令。

所以,下次编写PLC程序时,不妨试试自锁逻辑。相信你会发现,它不仅能让程序更加可靠,还能帮你省下不少调试时间。这可能就是多年项目经验带给我最宝贵的编程心得之一。

加入知识星球智能制造与自动化,加入会员可下载此公众号发布文章中的相关资料(行业报告、MES、数字化技术方案、自动化教程、自动化行业标准化资料VASS\SICAR\戴姆勒等、C#上位机开发、node-red开发、人工智能教程等)。

会员下载区

今天的文章,如果你感觉有价值,请记得一键三连:点赞加关注,留言,转发朋友圈,分享收藏,点击在看之后,一定记着加我个人微信:ZIDHXB。

往期精彩回顾




汽车行业Sicar控制标准资料有偿获取
博途PLC与FactoryIO联合仿真教程限时分享
PLC程序动态加密—分级催款可远程授权程序与授权软件分享
SIEMENS/西门子杯,六部十层电梯程序分享
FactoryIO与博途联合三色物料气缸分拣站程序分享
多台排水泵按累计运行时间切换和先启先停切换多模式控制PLC程序分享
倍福PLC视频教程及资料免费分享(36G)
三菱PLC编写的贪吃蛇与俄罗斯方块程序分享
库卡EthernetKRL备选软件包分享(版本V3.1.3)
精美博途Wincc界面程序模板分享
TIA_Portal_v18虚拟机分享
西门子博途V19全家桶与最新授权下载
大众VASS05标准Step7v5.5软件虚拟机分享
TIA_Portal_v19虚拟机分享
西门子SCL编程实例—扫雷游戏分享
西门子TIA博途软件入门到精通教程免费分享
西门子S7-1500博途PLC(基础+高级)视频教程分享
西门子TIA博途-SCL高级编程多套视频资料免费分享-限时删除
西门子TIA博途高级语言SCL视频资料分享
三菱FX3U系列plc精讲视频分享(40讲+240讲) 49GB
西门子smart200视频教程分享
两套西门子WinCC视频教程分享(9.5G)
PLC、触摸屏工控小游戏样例合集分享
EPLAN电气设计制图视频教程分享-限时删除
都有哪些好用电工仿真软件?学习电路图变得如此简
67本自动化书籍免费领取啦!!!
最新西门子授权工具EKB2022版分享
立体仓库穿梭车程序分享
威纶触摸屏视频教程(66讲)分享
博途TIA V16-V17全套软件与组件分享
标准化编程之-博途TIA程序设计编程规范
西门子SCL编程练习:排水泵根据运行时间先起先停控制
如何使用C#编写程序读写西门子PLC?
VASS标准—PLC安全程序架构讲解
VASS05标准—KUKA机器人培训课件
大众VASS_05标准——PLC程序架构
大众VASS05生画面遇到的问题总结
SEW_MOVIPRO变频器在VASS05标准中的应用
SEW_MOVIFIT变频器在VASS05标准中的应用
KUKA机器人高级编程(下)第3-4章(计时器\运动编程)
西门子博途SCL案例_仓储系统出料优先级控制程序实战练习
西门子TIA博途SCL高级教程—伺服V90速度控制
西门子TIA博途SCL高级教程—伺服V90定位控制
西门子TIA博途SCL高级视频教程—模拟量在工程中的应用
博途TIA Portal——SCL间接寻址PEEK和POKE指令的使用案例
西门子SCL高级语言教程—冒泡排序和选择排序
西门子SCL编程实例—字与位的转换Word_To_Bit
西门子博途WINCC脚本VBS教程4_脚本操作画面内对象的属性
如何使用C#编写程序读写西门子PLC?
C#上位机通过TCP/IP协议和KUKA机器人通讯
不外传的28条PLC编程规范及建议,赶紧收藏
win10家庭版安装西门子博途软件时提示“管理员已阻止你运行此应用”解决方法
西门子SCL编程-数据堆栈存储与操作在项目中的使用
博途实现程序动态加密—分级催款密钥授权管理系统程序实现
分享几个PROFINET网络故障诊断与分析案例
工控的面向对象编程
SiCar自动化标准平台架构
特斯拉EPLAN 电气图纸和结构标准
SICAR标准-VALVE_1_TO_8_3POS_FB夹具控制功能块
西门子PLC信号分析软件Winplc Analyzer 使用方法
PROFINET设备的GSD文件及其描述语言GSDML
大众标准VASS06软件环境设置
ABB机器人编程与应用中级篇
PLC编程算法—FIFO堆栈程序的实现
大众VASS06 项目库标准程序结构.
C#利用S7netplus读写西门子PLC数据
吉利KUKA_KRC4系列机器人现场应用规范和技术要求
TESLA特斯拉—PLC 逻辑编程规范
TESLA特斯拉—SCADA 设计规范
多台排水泵按累计运行时间切换和先启先停切换多模式控制PLC程序分享
西门子S7-200SMART编码器线速度测量算法
西门子S7-200SMART一阶RC低通滤波算法原理与实现
博途S7-1500SCL与FactoryIO仿真实现一阶RC低通滤波器皮带机速度平滑控制
Node-Red与ModbusTCP设备通信——写数据
Node-Red与ModbusTCP设备通信——读数据
大众汽车PLC-VASS05标准视频教程
你知道制造业10大系统集成:SCADA、MES、PLM、ERP、SCM、WMS、APS、QMS、CRM、EAM的关系吗?
西门子S7-300 SCL编程实现数组队列搜索、插入、删除、改动功能

智能制造与自动化
每天学习一点点,时间会给你一个不可思议的礼物。定期分享智能制造与自动化知识点,分享比收获更让人幸福。 智能制造、自动化、数字化、机器人、工业互联网 PLC\x5cMES\x5cSCADA\x5cEPLAN\x5c 西门子\x5c三菱\x5c施耐德\x5cKUKA\x5c
 最新文章