什么样的PLC程序算是好程序?

发布时间:2024-01-31  

下面我们就请前方专业的技术工程师来给我们介绍一下什么样的PLC程序算是好的程序呢?好的PLC程序中有哪些特点呢?大体有如下几个方面:  

1、正确性(调试成本低)

  PLC程序首先一定要能正确地工作,满足实际控制工艺要求。这是PLC程序的根本,若这一点做不到,其它一切没有任何意义。  

2、可靠性(维护成本低)

  不仅要正确,还要可靠。不能三天两头时不时地出问题。  

可靠反映着PLC程序的长期稳定性,这也是对PLC程序的基本要求。有的PLC程序,在正常的工作条件下或合法操作时能正确工作,而出现非正常工作条件(如临时停电,又很快再通电)或进行非法操作(如一些按钮不按顺序按,或同时按若干按钮或者连续按多次)后,程序就不能正常工作了。这种程序,就不太可靠,或说不稳定,就是不好的程序。

好的PLC程序对非正常工作条件的出现,能予以识别,并能使其与正常条件衔接,可使程序适应于多种情况,好的PLC程序对非法操作能予以拒绝,且不留下“痕迹”。只接受合法操作,即预防性健壮编程。联锁是拒绝非法操作常用的手段,继电电路常用这个方法,PLC及系统集成商也可继承这个方法。

3、可读性(学习成本低)

  要求所设计的程序可读性要好,便于理解,便于调试,也便于别人阅读使用你的程序,便于维护;必要时,也可使程序作为标准模板而便于推广。

  要使程序可读性好:   1)程序的设计脉络就要尽可能清晰,结构上有层次感;   2)功能层实现模块化,或者使用面向对象的方法进行设计;   3)使用一些标准设计、通用性设计;   4)变量层尽量使用符号名编程;   5)参数紧跟在使用它们之前再设定参数值(即设即用);   6)I/O地址分配要有规律性,便于记忆与理解;   7)内部器件的使用也要讲规律性,相同功能的地址分配要保有一定的不连续“断层裕量”(如x功能地址分配使用到k,那么下一功能的地址分配就不要从k+1开始,而要从k+n开始),以防功能更改;   8)必要时,还要做一些注释工作;可读性在程序设计开始时就要注意。这不容易做到。因为在程序调试的过程中,指令的增减,内部器件的使用变化,可能使原较清晰的程序,变的有些乱。所以在设计时就对调试增减留有一定的余地,然后调试完毕后再做一下整理,这样所设计的程序具有更高的质量。    

  4、简短性(存储成本低)

使PLC程序尽可能简短,也是应追求的目标。  

简短的程序可以节省用户存储区;多数情况下也可节省执行时提高对输入的响应速度,还可提高程序的可读性。程序是否简短,一般可用程序所用的指令条数衡量,用的条数少,程序自然就简短。从大的方面讲,要注意程序结构,提取实现相同功能代码段的共性,使用子程序、中断等减少代码量的方法;用流程控制指令简化程序,减少某时间点的工作量,不需要做的就不做,能尽量少做的就少做;从小的方面讲还要用多处理能力的强指令取代单处理能力的弱指令(使用大级别的数据代替小级别的数据或者数据结构,如用字节、字、双字操作数代替位操作数的指令,故障字、状态字、控制字、通讯字等;使用间接寻址代替连续地址存储单元的相同操作;使用块传送指令代替多条字节、字、双字传送指令,这些可以总结为“批处理”类操作)以及注意指令的安排顺序等,要注意兼顾程序的可读性。

5、省时性(运行成本低)

  程序简短有可能会节省程序运行时间,但简短与省时并不完全是一回事。   因为运行程序时间虽与程序所拥有指令条数有关,而且还与所使用的是什么指令有关,也就是与程序算法相关。PLC算法不同,执行的时间也不同。而且,有的指令,在逻辑条件ON时执行与在OFF时执行其时间也不同。另外,由于使用了流程控制指令,在程序中,不是所有指令都要执行等。所以,运行程序的时间计算是较复杂的。但要求其平均时间少,最大时间也不太长是必要的。这样可提高北京天拓四方科技有限公司是西门子工业自动化和驱动集团核心分销商(一级代理商)及系统集成商PLC的响应速度。省时的关键是用好流程控制指令。按情况确定一些必须执行的指令,作必备部分,其余的可依程序进行,有选择地执行,或作些分时工作的设计,避免最大时间太长等。  

6、易改性(变动成本低)   要使程序易改,也就是要便于修改。  

PLC的特点之一就是方便,可灵活地适用于各种情况。其办法就是靠修改或重新设计程序。重新设计程序用于改变PLC工艺要求的情况,不仅程序重编,而且I/O也要重新分配。

多数情况下不需要重编程序,做一些修改就可以了。这就要求程序具有易改性,便于修改。易改也就是弹性,要求只要作很少的改动,即可达到改变参数或更改动作的目的。

1)参数设定尽量采用间接赋值的方法,常量参数值尽量使用符号名,做到见名知意;

2)控制尽量使用中间存储器(如M、W)作为媒介、中间层,隔离I/O在逻辑上的直接耦合,便于更改逻辑;

3)尽量实现功能插件化模块块,使用户可以“自由配置”,以实现即需即加、即加即用。在设计PLC程序的过程中,对于上述要求要同时兼顾和平衡,不能顾此失彼,得不偿失。

关于PLC编程,老工程师的12点建议:

1、PLC和上位机(或触摸屏)组成监控系统时,在画面上很多时候需要有“手动”、“自动”等控制模式(一般都是多个只能一个时)。在程序里面可以用“MOV”指令。如:当选择“手动”就将常数1MOV到一个寄存器VB10里面,当选择“自动”就将2MOV到同一寄存器VB10。只要判断寄存器的数据是多少,就知道系统是那种控制方式。这样的思路好处是容易理解,不需要互锁之类的麻烦程序。  

2、程序有模拟量控制时,如果读取的模拟量基本上没误差,可以采取时间滤波的方式,延时一段时间。如果读取的数据误差很大,就需要采取其它的滤波方式,如算平均值等。可以查阅相关的资料。   3、在程序调试过程中(特别是设备改造时,你的程序是加入到原来设备的程序中时),当程序语句中出现条件满足,而输出线圈不接通时,可以检查你的这段程序是否是在这样的语句之间,如JUMPgoto等语句。还有一种可能就是在中断程序之后,条件满足而没输出不接通,一般都是这段的程序不被扫描。

4、在顺序控制程序时,即一个动作完成后,进入到下一个动作,等类似的顺序控制,采用+10+10控制模式,本人觉得很方便。其思路是:预置一个寄存器,在初始化时值为0,当系统启动后,对它+10,此时寄存器为10,寄存器等于10时可以做第一个动作;第一个动作完成后,再对寄存器+10,此时寄存器等于20,可以做第二个动作,第二个动作完成后又+10,此时寄存器等于30,这样只要判断寄存器里面数据为多少,就知道要完成那个动作。当需要跳跃动作时,可以不再+10,可以加+20+30....,看实际的需要而定。为什么加10而不是加1,因为加10之后,如果插入一段,只要在这10个空余的地方随便选择一个位置就可以了。  

5、在设计程序的时候,当出现工艺上的故障(非控制系统控制),最好将故障现象保持,并有灯光声音报警。直到操作工复位,以让其知道系统出现了故障。不然停机了,别人还认为你的程序出问题了,一般在设计一个新系统时是要注意到这些。

6、对于经常调用的子程序,可以做成子模块,频繁调用。

7、由于生产机械在工作循环中的各工步运动在执行时需要一定的时间,且这些时间都有一定的限度,因此可以以这些时间为参考,在要检测的工步动作开始的同时,起动一个定时器,定时器的时间设定值比正常情况下该动作要持续的时间长20%~30%,而定时器的输出信号可以用于报警或自动停机装置。当生产机械某工步动作的时间超过规定时间,达到对应的定时器预置时间,还未转入下一工步动作时定时器发出故障信号,该信号停止正常工作循环程序,起动报警或停机程序,这就是我们常说的超节拍保护。   8、一些安全用检测开关(如急停按钮、安全光幕、极限开关等)使用常闭(NC)输入。

9、为安全、节能考虑,尽量将输出设计成需要动作时才动作,一旦到位就停止输出,而不要设计成平时一直输出,需要停止时才让输出断开。

10、执行元件的动作原则应当是宁可不动,也不要乱动!

11、单台设备控制:单台设备必须有软手操/自动切换以及软手操时可以启/停功能,由自动切换到软手操时,设备不能停机;由软手操切换到自动时,设备启/停取决于自动程序。

12、单台设备(泵、风机及其它大型设备)运行满24小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启/停顺序除外,操作人员自行设定。 


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    arduino好还是单片机好,arduino和单片机的区别;很多初学者和我当初一样不知道arduino和单片机的区别。 其实我也是学完才知道arduino的存在,还好当初是直接学的51单片机,不然......
    单片机自学需要买开发板嘛?初学者如何使用单片机开发板?;从事单片机开发的那些老工程师,或者是刚入门的单片机软件工程师,可以说99%的人都曾经买过开发板,或者一直借助开发板来从事单片机开发工作。 也许......
    语言及接口技术》(作者:钟晓捷 陈涛 ,机械工业出版社 出版)等,可以在较大型的科技书店里查找或者直接从网上订购。 06、初学者到底是应该先学C还是汇编? 对于单片机的初学者来说,应该从汇编学起。因为......
    单片机好学还是plc好学?想转行选plc还是单片机?;很凑巧,单片机PLC我都学过。 我在学校的时候读的是电气工程专业,学校的知识覆盖面很广,基本每个东西都有学到一点。 什么......
    初学者怎么学单片机,嵌入式单片机培训机构有用吗?;之前很多的同事,做硬件开发的,测试的,或者想学单片机的小伙伴们都会问这个问题“初学者怎么学单片机” 我也是从一个小白开始的,不是天生就会单片机......
    怎么样才能学好单片机;很多单片机初学者问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机、如何开始上手、如何开始熟练这个过程给大家讲讲。先说说单片机,我们......
    只是一种学习方式,关键还是要多学、多写、多练、多理解。   本人当初刚开始学习单片机也是在对各种名词一知半解的状态下一步步走过来的,什么寄存器,什么准双向口,什么上拉下拉,初学者往往很难深入理解这些内容,但不建议初学者......
    STM32单片机寄存器的功能解析;“大神”叫你先上STM32,51是小朋友玩的,所以你就不学51了 初学者建议从51单片机开始,虽然很多人建议直接上STM32,但本人还是建议先学习51单片机,简单......
    就基本可以做一些简单的项目了。 那单片机怎么学? 单片机学习一定要有一个比较正确的方法,首先学习一下单片机C语言基础,C语言是单片机开发的语言工具。 无际单片机编程有提供针对单片机的C语言教程,大家可以找无际单片机......
    的通讯方式配置。51也可以成为我们与前辈沟通的桥梁。 虽然很多现在设计产品时主要应用STM32、PIC、NXP等,已经不再用51单片机了,但是我还是推荐51单片机作为入门工具,因为51作为入门单片机是非常合适初学者......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>