如何编写出质量较高的PLC程序?

一人独守一梦


作为一名自动控制设备维护人员,对这个话题很有发言权。在工作中,需要维护多种自动控制设备,都是由国内多个设备厂提供,当然接触到PLC程序的质量也就参差不齐,遇到特别差的程序时,揍人的心情都有。

其实,PLC程序高质量主要体现在两个方面:用户可读性、程序可移植性,可能很多人还想到程序的执行效率等,但目前硬件的水平都很高了,这点响应速度影响几乎可以不考虑了。

首先,用户可读性很重要,因为程序始终是要给人看的,程序都需要维护、处理bug、升级扩展等,这就要求PLC程序所有的变量命令要便于理解记忆、程序要有详细注释、各功能要分程序段、程序排列要美观,这样不仅编写人员方便调试,后期维护人员也便于消缺。

其次,程序可移植性也很重要,因为生产自动控制设备的厂商都是以营利为目的,一般PLC程序都是可以通用的,比如控制油泵的PLC程序,经过细节修改是可以用于控制水泵、空压机的,所以对自动设备厂商来说,高质量的PLC程序应该具备可移植性。PLC程序可移植性通常通过模块化设计来实现,即将各种特定功能做成功能块,当要实现相应功能时只需调用功能块即可,大大节约PLC程序开发时间,时间就是金钱啊。

总之,高质量PLC程序主要体现用户可读性、程序可移植性,以规范化、模块化方式来实现。



城南牛小壮


如何编写出质量较高的PLC程序,首先我们得创建一个属于自己的编程构架或者是程序分段,把整个程序分成几部分,比如我自己在写一个设备的PLC程序时会分成5部分:手动部分、自动部分、数据处理、通信部分、模拟量/数字量转换,尽量编程采用结构化编程的方法,这样能对程序进行分段处理,无论是简单工程还是结构化功能都可以采用。手动部分的作用是机械设备单个动作的控制一般用于测试以及维修方面,自动部分则是整个动作完整的流程编写,数据处理则是对手动、自动用到的数据进行传送、选择、计算等操作,通信部分是用到例如Modbus等通信控制元器件如变频器、伺服等装置编写的通信程序,模拟量/数字量则是采用模拟量控制元器件进行的DA转换程序或者采集模拟量数据进行的AD转换程序。

一个质量较高的PLC程序应基本满足简单可读性、稳定性、具有易于维护和扩展的功能,对于控制动作流程的尽量采用梯形图进行编程,即使是非编程人员也可清晰看清楚其动作顺序,多采用结构化编程,程序做到集中化就是上面说的属于哪部分就写在哪部分,尽量不要乱地方补充、乱地方修改,让人便于查看。PLC运行还需要稳定性,就是指的是某些地方的bug,可能在调试的时候都准确无误,在实际中误设置了参数、误动作,它却没有停止、报警或者不能正常工作,以及能够进行一次完成的运行,第二次、第三次就不能顺利进行了只能重启再开始运行,这些都属于程序的稳定可靠性,尽量把这些漏洞在调试试机时候找出来。在一个就是程序的维护性和扩展性,做到注释准确、程序结构优化,能够使维修人员迅速找到修改的地方,留有扩展的空间,对某些动作的修改、升级能够在整体构架中完成而不破坏。

在编程前对软元件的选择要准确,哪些是掉电保存的、掉电不保存的、对输入有区分,有高速计数的普通输入尽量不要占用高速输入端子、同理高速输出端子也一样。对定时器的选择如0.01ms的、0.1ms、1ms的、累计型的等选择,计数器的选择16位的、32位的、保持用的、高速计数用的都得分清楚使用,数据寄存器的选择也有16、32位、掉电保持的之分。另外指令的选择要根据数据的类型选择是16、32位的,避免到时候数据计算出错。这样PLC编写出的程序就能减少bug,质量会高一些。


以上就是如何编写出质量较高的PLC程序需要注意的几点要求,希望能帮到你!


工控人


PLC编程有几个主要的问题,最主要的一个是,上手快,但是精通很难。这是因为,PLC编程,尤其是梯形图的编程语言,设计初衷就是为了没有编程基础的工程师的,思维方式也和电力系统的继电器回路很相似,因此上手非常快,简单的模仿继电器回路的话,效率也比较高。

然而,PLC编程很快就遇到第二个问题,就是瓶颈很明显。一方面,可以得到的资料很有限,无论是教材还是课程,都是浅尝辄止,讲到会用就可以,对一些高级的应用方法,因为涉及保密、或者整个行业水平限制,都缺乏足够的学习资源。另一方面,梯形图编程直观的形式也是其不容易写出来高水平程序的原因之一。

那么,如何突破这些瓶颈呢?

有几个步骤。首先,需要有软件工程的基础训练和高级语言的基本知识,尤其是面向对象、模块化这些高级语言程序设计的基本素养。因为PLC程序本质上只是编程语言的一个分支,要写出水平高的程序,必须从理论上有一个高度,学会了面向对象,学会模块化,学会熟练使用PLC内置的高级模块,是水平提升的一个基础。

另一个,在可能的情况下,看到水平高的例程,是快速成长的催化剂。但是这样的机会可遇不可求,就像观摩高手过招一样,认真看高水平的例程可以快速提高。就我个人而言,也是偶然的机会学习了一些国外的很复杂的PLC程序之后,整个理念才有一个提升的。


魏智勇


编程靠的还是自己的一个编程思路,以及你自己的编程方式,不是说你拿到别人的程序,你进行一个解析就能搞定一种编程,不可能的,没有日积月累的积累,你是达不到一定的编程能力,没有一定的编程思路,编程,你要有合理的规划,合理的分配,有些东西你可以用,但是有些东西你可以简单,同时,我们要具备分析的能力,就是说当我们看到这个程序要求的时候,我们能想到一种很简单的编程方法,很简单的编程方式,能让别人读懂我们程序,这也是一种能力

编程靠的不是别人,靠的是自己独有的编程思路


电气PLC教学


不难,看写什么程序,看别人的程序,学习学习。


走进电世界


学好数学,尤其是高数,高手跟会编的人的区别是算法,要充分利用plc资源多快好省的干事。第二,就是要深刻理解生产流程。

日本人做一个面包机,在最有名的面包店做了半年学徒,回来搞出来面包机。我们国产的面包机,能烤面包而已。他们的,普通人都能做出专业的味道。


by8dream


尽量提前分配规划好PLC数据存储单元,在编程的时候要依次按着顺序使用,切勿跳动太大。

在达到功能的前提下要简化程序,多用子程序和跳转,尽量减少程序扫描周期,提高程序反应时间。


下相电工


说大点就是逻辑思维能力。具体操作的话就是要把做的东西用画流程图的形式详细画出来,那成功就过半,至于具体使用哪家的工具,那就是熟悉软件特性了。掌握一家你认为好用的软件,别家的基本上都是一样的。


分享到:


相關文章: