加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线17838383235
公司新闻
完美的PLC程序是什么样子
发布时间: 2024-06-11 09:39 更新时间: 2024-06-30 08:00

我想和大家分享一篇有关PLC编程的文章。这篇文章将让你更深入了解完美的PLC程序应该具备的设计要求,以及在实际工作中关于PLC编程规范及建议。


对于一套完整的PLC程序而言,要使系统能够运行起来并不是唯一的目标,它还需要满足以下设计要求:完整的注释、精良的架构、良好的可扩展性、完备的报警保护系统以及运行前的模拟系统。

1.PLC程序要尽可能地简单化:简单的含义是尽可能使用标准化的程序框架,并且使用简单的指令。为了使程序简单,从大的方面讲,需要优化程序结构,利用流程控制指令简化程序。从小的方面讲,还要用功能强大的指令取代功能单一的指令,并注意指令排列的顺序等。

2.PLC程序的可读性要好:这不仅便于程序设计人员加深对程序的理解,便于调试,而且还要便于其他人读懂您的程序,便于使用者进行维护。因此,设计时要尽可能清晰,要注意层次、实现模块化,甚至可以采用面向对象的方法进行设计。同时,要多使用一些标准的设计,如采用梯形图编程,使程序易于阅读。在特殊情况下,可以采用语言编程。

此外,I/O分配要有规律性,便于记忆与理解,必要时还要做一些注释工作。内部器件的使用也要讲规律性,不要随意使用。

3.程序的注释至关重要:为了使程序易于理解,注释应该包含以下几个方面:系统注释(版权公司和此套程序用途)、程序块注释(此程序块的主要用途和作者)、段注释(此段代码的用途)以及变量注释(包括I/O注释、中间变量注释)。

 

虽然在程序调试的过程中,指令的增减和内部器件的使用变化可能会使原本清晰的程序变得有些混乱,但在设计时应该留有一定的余地,以便调试完毕后再进行整理,从而使所设计的程序具有更高的质量关于保密性,我认为应该在程序的加密算法或者块的加密上考虑,而不应该用减少注释这种小聪明来实现。

3.准确性:PLC的程序必须是正确的,并且必须经过实际工作验证,以证明其能够正确地运行。这是对PLC程序的基本要求,如果不能做到这一点,那么其他方面再好也是没有用的。

要确保程序的正确性,就必须准确地使用指令,正确地使用内部器件。准确地使用指令与正确理解指令是相关联的,因此必须弄清楚指令的含义和使用条件。有必要时,可以编写一些小程序来测试一些不清楚的指令。

同一条指令,由于PLC的出厂批次不同或是PLC的系列型号不同,一些指令的细节可能会有所不同,因此应该仔细查阅编程手册。

正确使用内部器件也非常重要。例如,有些PLC具有掉电保护,而有些则没有。必须确保具有掉电保护功能的地方一定要使用具有掉电保护功能的器件,否则就不能使用。

要准确地使用指令,正确使用内部器件,以确保编写的程序能够正确地运行,这是对PLC程序的基本要求。

举个简单的例子,西门子的上升沿和下降沿需要使用带存储功能的变量作为中间变量,比如M点或者DB点,如果使用FC的temp变量就会出问题。

4.可靠性:程序不仅要正确,还要可靠。可靠性反映了PLC程序的稳定性,这也是对PLC程序的基本要求。

有些PLC程序在正常的工作条件下或合法操作时能够正确运行,但在出现非正常工作条件(如临时停电,又很快再通电)或进行非法操作(如一些按钮不按顺序按,或同时按下若干按钮)后,程序就不能正常运行。这种程序就不够可靠,甚至可以说是不稳定的,即不是好的程序。

好的PLC程序能够识别非正常工作条件的出现,并能够使其与正常条件衔接,以使程序适应多种情况。好的PLC程序能够拒绝非法操作,并且不留下“痕迹”,只接受合法操作。

联锁是拒绝非法操作常用的手段,继电电路经常使用这种方法,PLC也可以继承这种方法。

5.易修改性:要使程序易于修改,也就是要便于修改。PLC的一个特点就是灵活,可以灵活地适应各种情况。要实现这一点,就需要通过修改或重新设计程序来实现。


重新设计程序用于改变PLC工艺的用途要求的情况,不仅需要重新编写程序,还需要重新分配输入/输出。在大多数情况下,只需要做一些修改而不需要重新编写整个程序。这就要求程序具有易于修改的特性。

易于修改也就意味着具有弹性,只需做出很少的改动,就可以达到改变参数或进行其他修改的目的。

6.延展性:许多程序可能在进入现场之前已经编写好,但是到了现场,可能还需要添加其他程序,为了避免打乱整套系统的结构,需要在每个功能区预留一定的空间作为备用。

硬件上要留出足够的余量,软件在编写的时候要考虑好手动、自动、半自动等情况,并留出相应的位置。

7.完美的报警系统:在工业环境中,PLC系统经常用于控制生产流程。由于每次故障都会造成不同程度的损失,为了在发生故障时减少损失或尽可能地进行事故预处理,必须充分重视PLC的报警和保护功能,并将其作为系统中bukehuoque的重要组成部分。

8.程序仿真:为了确保现场调试进度或向客户展示程序功能,通常需要在进入现场之前对自己的程序进行全自动仿真。因此,需要在程序中添加仿真代码部分,该部分将在正式的现场运行后自动断开。为使程序具有仿真功能,需要完成以下任务:

(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的输入、输出、中间继电器、定时器、计数器、数据寄存器等都要加中文注释。输入、输出还须有元器件名称位号。默认情况下,所有注释都应清晰明了,不易引起误解,尽量少使用泛指。

15、工程调试完成后,系统必须保留终软件程序,保存的文件名应包含项目编号/作者/日期信息/版本号等。

16、关于程序加密:对于加密程序的密码,必须有专门的文件予以保存,并注明相应的用户名、密码和权限。密码应分发给至少两个人以上,以防密码丢失导致无法打开程序的情况。

编程建议

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

2、当程序中存在模拟量控制时,如果读取的模拟量基本上没有误差,可以采用时间滤波的方式延迟一段时间。如果读取的数据误差很大,就需要采用其他的滤波方式,如算平均值等。可以查阅相关资料。

3、在程序调试过程中(特别是在设备改造时,将自己的程序添加到原来的设备程序中时),当程序语句中出现条件满足,但输出线圈未接通时,可以检查该段程序是否在这样的语句之间,如JUMP go 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小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启/停顺序除外,操作人员自行设定。


联系方式

  • 电  话:17838383235
  • 经理:徐嘉泉
  • 手  机:17838383235
  • 微  信:17838383235