怎么写出完美的plc程序?
2021/12/30 14:37:11
本文主要是介绍怎么写出完美的plc程序?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
工业控制中,plc程序编写是一项基础的工作,但也是确保生产正常运行的重要环节。PLC最好的评判标准是实践,看程序是否达到生产预期的目的,但这是远远不够的,因为能达到控制要求的程序还有优劣之分,到底什么样的程序才能称得上好的程序呢?现归纳为以下几个方面(请原谅手机党):
1.正确性(调试成本低)
PLC的程序首先要正确,且能通过实际生产的验证,这是对PLC程序的起码要求,做不到这一点,一切免谈。程序要正确,就得准确的使用指令、语法和内部器件,准确的使用指令与准确理解指令相联系,对指令含义和使用条件一定要弄清楚,内部器件正确使用也是重要的,一定要做到该掉电保护的一定要用掉电保护的器件,反之则不能用。
2.可靠性(维护成本低)
一个正确的程序还要可靠,这也是对PLC程序的基本要求。有的PLC程序,在正常的工作条件下或合法操作时能正确工作,而出现非正常工作条件【如临时停电,又很快再通电】或进行非法操作【如一些按钮不按顺序按,或同时按若干按钮】后,程序就不能正常工作了。这种程序,就不大可靠,或说不稳定,就是不好的程序。好的PLC程序对非正常工作条件出现,能予以识别,并能使其与正常条件衔接,可使程序适应于多种情况。好的PLC程序对非法操作能予以拒绝,且不留下隐患,只接受合法操作,联锁是拒绝非法操作常用的手段,继电电路常用这个方法,PLC也可继承这个方法。
3.可读性(学习成本低)
要求所设计的程序可读性要好。这不仅便于程序设计者加深对程序的理解,便地调试,而且,还要便于别人读懂你的程序,便于使用者维护,必要时,也可使程序推广。要使程序可读性好,要做到以下几点:
(1)程序的设计脉络就要尽可能清晰,结构上有层次感
(2)功能层实现模块化,或者使用面向对象的方法进行设计
(3)要多用一些标准的设计
(4)I/O分配要有规律性,便于记忆与理解
(5)变量层尽量使用符号名编程
(6)做好程序的注释
(7)内部器件的使用也要讲规律性,不要随便地拿来就用
(8)每个功能的地址段分配要留有一定的余量作为备用
可读性在程序设计开始时就要注意。这不易完全做到。因为在程序调试的过程中,指令的增减,内部器件的使用变化,可能使原较清晰的程序,变的有些乱。所以在设计时就对调试增减留有一定的余地,然后调试完毕后再做一下整理,这样所设计的程序具有更高的质量。
4.精简性(存储成本低)
使PLC程序尽可能简短,也是应追求的目标。简短的程序可以节省用户存储区;多数情况下也可节省执行时间,提高对输入的响应速度,还可提高程序的可读性。程序是否简短,一般可用程序所用的指令条数衡量,用的条数少,程序自然就简短。要想程序简短,从大的方面讲,要优化程序结构,用流程控制指令简化程序,从小的方面讲还要用功能强的指令取代功能单一的指令,以及注意指令的安排顺序等。
5.省时性(运行成本低)
程序简短可以节省程序运行时间,但简短与省时并不完全是一回事,因为运行程序时间虽与程序所拥有指令条数有关,而且还与所使用的是什么指令有关,PLC指令不同,执行的时间也不同,而且,有的指令在逻辑条件ON时执行与在OFF时执行其时间也不同,另外,由于使用了流程控制指令,在程序中不是所有指令都要执行等。所以运行程序的时间计算是较复杂的,但要求其平均时间少,最大时间也不太长是必要的,这样可提高PLC的响应速度。省时的关键是用好流程控制指令,按情况确定一些必须执行的指令,作必备部分,其余的可依程序进行,有选择地执行,或作些分时工作的设计,避免最大时间太长等。
6.继承性(变动成本低)
要使程序具有继承性,那就是要便于修改和移植。PLC的特点之一就是方便,可灵活地适用于各种情况,其办法就是靠修改或重新设计程序,重新设计程序用于PLC工艺用途已经更改的情况,不仅程序重编,而且I/O也要重新分配,即便如此,很多独立功能的子程序依然可以适用于不同的工艺控制;对于相同或类似的工艺控制,多数情况下不需要重编程序,作一些修改就可以了。这就要求程序具有继承性,具有方便快捷的通用性接口,便于参数修改和程序的移植。
7.总结
在设计PLC程序的过程中,对于上述要求要同时兼顾和平衡,不能顾此失彼,得不偿失。
以上就是plc简介特点的相关内容,您了解了吗?不明白的朋友可以结合plc视频教程亲自实践一下,更容易理解。本文来源:www.jcpeixun.com。
这篇关于怎么写出完美的plc程序?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享