联系热线:0573-86128502
您好,欢迎来到嘉兴奥拓迈讯自动化控制技术有限公司!
资讯分类
联系我们

地址:浙江省海盐县盐北路211号西区1-1

手机:13906834312

座机:0573-86128502

传真:0573-86112502

邮箱:hygongkong@163.com​

28条PLC编程规范及建议,带你写出 完美的程序!
来源:来源互联⽹,侵删 | 作者:降魔神兵 | 发布时间: 2019-07-15 | 479 次浏览 | 分享到:
28条PLC编程规范及建议,带你写出 完美的程序!
  完美的PLC程序需满⾜的设计要求⼀套完整的PLC程序,并不仅仅是使系统能够运⾏起来这么简单,它也需要完整的注释、精良的架构、良好的可扩展性、完备的报警保护系统、运⾏前的模拟系统。 简单性
  使PLC程序尽可能简单。简单的含义就是尽可能的使⽤标准化的程序框架,尽可能使⽤简单的指令。要想程序简单,从⼤的⽅⾯讲,要优化程序结构,⽤流程控制指令简化程序,从⼩的⽅⾯讲还要⽤功能强的指令取代功能单⼀的指令,以及注意指令的安排顺序等。
  可读性
要求所设计的程序可读性要好。这不仅便于程序设计者加深对程序的理解,便于调试,⽽且,还要便于别⼈读懂你的程序,便于使⽤者维护。必要时,也可使程序推⼴。
要使程序可读性好,所设计的程序就要尽可能清晰。要注意层次,实现模块化,以⾄于⽤⾯向对象的⽅法进⾏设计。要多⽤⼀些标准的设计。
 如遇特殊情况下采⽤语⾔编程,多数情况下请使⽤梯形图编程,⽅便阅读。再就是I/O分配要有规律性,便于记忆与理解。必要时,还要做⼀些注释⼯作。内部器件的使⽤也要讲规律性,不要随便地拿来就⽤。可读性在程序设计开始时就要注意。这不易完全做到。因为在程序调试的过程中,指令的增减,内部器件的使⽤变化,可能使原较清晰的程序,变的有些乱。所以在设计时就对调试增减留有⼀定的余地,然后调试完毕后再做⼀下整理,这样所设计的程序具有更⾼的质量。
程序的注释,起码应该有以下⼏个⽅⾯:
A、系统注释:整套程序的版权公司和此套程序⽤途
B、程序块注释:此程序块的主要⽤途和作者
C、段注释:此段代码的⽤途
D、变量注释:重要性⽆需多⾔,包含I/O注释、中间变量注释
⽽⾄于保密性的考虑,我觉得应该在程序的加密算法或者块的加密上考虑,⽽不应该⽤减少注释这种⼩聪明来实现。
  正确性
PLC的程序⼀定要正确,并要经过实际⼯作验证,证明其能够正确⼯作。这是对PLC程序的最根本的要求,若这⼀点做不到,其它的再好也没有⽤。
要使程序正确,⼀定要准确的使⽤指令,正确的使⽤内部器件。准确的使⽤指令与准确理解指令相联系,为此对指令含义和使⽤条件⼀定要弄清楚。必要时,可编些⼩程序对⼀些不清楚的指令作些测试。
同⼀指令,由于PLC的出⼚批次不同或是PLC的系列型号的不同,⼀些指令细节有可能不⼀样,应仔细查阅编程⼿册。内部器件正确使⽤也是重要的。如有的PLC有掉电保护,有的PLC没有。⼀定要做到该掉电保护的⼀定要⽤掉电保护的器件,反之则不能⽤。
总之,要准确的使⽤指令,正确使⽤内部器件,使所编的程序能正确要作,这是对PLC程序最根本的要求。
  可靠性
程序不仅要正确,还要可靠。可靠反映着PLC程序的稳定性,这也是对PLC程序的基本要求。有的PLC程序,在正常的⼯作条件下或合法操作
时能正确⼯作,⽽出现⾮正常⼯作条件(如临时停电,⼜很快再通电)或进⾏⾮法操作(如⼀些按钮不按顺序按,或同时按若⼲按钮)后,程序就不能正常⼯作了。这种程序,就不⼤可靠,或说不稳定,就是不好的程序。好的PLC程序对⾮正常⼯作条件出现,能予以识别,并能使其与正常条件衔接,可使程序适应于多种情况。好的PLC程序对⾮法操作能予以拒绝,且不留下“痕迹”。只接受合法操作。联锁是拒绝⾮法操作常⽤的⼿段,继电电路常⽤这个⽅法,PLC也可继承这个⽅法。
  易改性
要使程序易改,也就是要便于修改。PLC的特点之⼀就是⽅便,可灵活地适⽤于各种情况。其办法就是靠修改或重新设计程序。重新设计程序⽤于改变PLC⼯艺的⽤途要求的情况,不仅程序重编,⽽且I/O也要重新分配。多数情况下不需要重编程序,作⼀些修改就可以了。这就要求程序具有易性,便于修改。易改也就是弹性,要求只要作很少的改动,即可达到改变参数或理改动作的⽬的。
  扩展性
许多程序可能在进现场之前都已经编好,但是到了现场,可能还需要添加另外的程序,为了避免打乱整套系统的结构,需要在每个功能区预留⼀定的空间作为备⽤。硬件上留出⾜够的余量,软件在编写的时候把⼿动,⾃动,半⾃动考虑好,位置留出来。完备报警系统
PLC系统往往⽤于⼯业环境中,每⼀次的事故都会造成或⼤或⼩的损失,为了做到事故预处理或者在事故中将损失降到最⼩,必须重视PLC的报警和保护,在此将其摘出来作为系统的⼀个重要组成部分。
  程序模拟
为了保证现场的调试进度或者给客⼾展⽰,往往在进现场之前,要对⾃⼰的程序进⾏全⾃动的模拟。为此需要在程序中加⼊模拟程序部分,模拟程序部分在正常现场运⾏之后断开。为了使程序具备模拟功能,需要做以下⼯作:
(1)将实际的PLC的I/O点转换为PLC的中间变量或者数据块变量;
(2)根据⼯艺要求编写各个设备的模拟程序。在设计PLC程序的过程中,能够满⾜以上⼏个⽅⾯的要求的就能称的上是⼀个好程序了。
PLC程序设计规范
1、选择合适的PLC型号及I/O点数,有特殊功能需求时选择特殊功能模块。
2、熟悉所选择的PLC编程指令及编译软件。
3、进⾏软元件规划,包括内部继电器、保持继电器、数据寄存器、定时器、计数器等。
4、进⾏程序规划,⼀般以故障提取、故障处理、⼿动处理、⾃动处理、输出处理这样的顺序进⾏编程。⽐较⼤型的⼯程或设备按功能单元分段、分块进⾏处理,如⼀条⾃动化⽣产线中有提升机、移⾏、顶起旋转装置等,则应按上述单元分段分块编程。
5、在分段分块编写的程序前应加上简短的段注释,说明此段程序的功能,如有必要可以注明相应的⼯艺流程。分块或分段的程序再总体程序的位置顺序应基本上按⼯艺流程顺序排列,
便于程序的可读性。
6、在程序设计之前,应对设备进⾏抽象,对如停⽌、急停、过载、超限、超时、安全光幕、碰停、⻔开关等共⽤因⼦进⾏提取,放在启动回路或启动主控、连锁回路,作为整个程序结构的⼤前提,在此基础下,再将程序分为⾃动、⼿动两⼤功能区。
7、将程序结构⼿动功能区共⽤因⼦,如⼿动、危及设备⼈⾝安全等因数因⼦进⾏提取,放在⼿动主控、连锁回路,对⼿动控制进⾏保护、屏蔽、报警。
8、将程序结构⾃动功能区共⽤因⼦,如⾃动、超限、超时等因数因⼦进⾏提取,放在⾃动主控、连锁回路,对⾃动控制下设备进⾏保护、
屏蔽、报警。⼀个总的原则就是,在确保安全的前提下,严格限制设备的进,宽松限制设备的出。
9、程序设计时应设计程序总复位功能,便于使⽤者在设备出现故障情况下,可以⽅便尽快恢复设备正常⼯作。总复位应充分考虑在复位过程中设备和⼈员的安全。
10、⾃动模式切换到⼿动模式时,程序应清除⾃动模式下的输出和中间状态。特别是在⾃动模式使⽤SET指令时,必须在⼿动模式⽤RESET指令予以清除。
11、严禁在编制程序中使⽤双输出,即同⼀条输出语句或同⼀个输出线圈在程序中出现2次及以上。在不同模式条件下的对同⼀输出点的输出使⽤中间继电器进⾏中转,最后集中到⼀起并列到输出点。
12、使⽤触摸屏时,对触摸屏和PLC公⽤的控制区和状态区,不得做其他功能⽅⾯的编程使⽤。
13、对PLC的特殊模块,在使⽤之前,应先查明其控制区和状态区是否占⽤⼯作字,若占⽤,不得将这些⼯作字做其他⽅⾯的编程。
14、PLC的输⼊、输出、中间继电器、定时器、计数器、数据寄存器等都要加中⽂注释。输⼊、输出还要有元器件名称位号。对应的输⼊点,⼀般情况下默认为外围开关连接的是NO触点,对于需要接NC触点的须在注释中标明。所有注释应当清晰明了,不易产⽣误解,尽量少使⽤泛指。
15、⼯程调试完成后,系统必须保留最终软件程序,保存的⽂件名应包含项⽬编号/作者/⽇期信息/版本号等。
16、关于程序加密:对于加密程序的密码必须有专⻔的⽂件予以保存,并注明相应的⽤⼾名+密码+权限,分发给⾄少两个⼈以上了解密码,防⽌密码丢失带来⽆法打开程序的情况。
编程建议
1、PLC和上位机(或触摸屏)组成监控系统时,在画⾯上很多时候需要有“⼿动”、“⾃动”等控制模式(⼀般都是多个只能⼀个时)。在程序⾥⾯可以⽤“MOV”指令。如:当选择“⼿动”就将常数1MOV到⼀个寄存器VB10⾥⾯,当选择“⾃动”就将2 MOV到同⼀寄存器VB10。只要判断寄存器的数据是多少,就知道系统是那种控制⽅式。这样的思路好处是容易理解,不需要互锁之类的⿇烦程序。
2、程序有模拟量控制时,如果读取的模拟量基本上没误差,可以采取时间滤波的⽅式,延时⼀段时间。如果读取的数据误差很⼤,就需要采取其它的滤波⽅式,如算平均值等。可以查阅相关的资料。
3、在程序调试过程中(特别是设备改造时,你的程序是加⼊到原来设备的程序中时),当程序语句中出现条件满⾜,⽽输出线圈不接通时,可以检查你的这段程序是否是在这样的语句之间,如JUMPgo to等语句。还有⼀种可能就是在中断程序之后,条件满⾜⽽没输出不接通,⼀般都是这段的程序不被扫描。
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⼩时必须进⾏轮换,且必须有运⾏时间累计,如果由上位机设定启/停顺序除外,操作⼈员⾃⾏设定。