一个完整的可编程逻辑控制器(PLC)程序是什么样子的
完善的可编程控制器(PLC)程序的设计要求
一个完整的PLC程序不仅要使系统运行简单,还需要注释完整、架构优秀、扩展性好、报警保护系统和仿真系统完整才能运行。
1.简单
使PLC程序尽可能简单。简单就是尽量使用标准化的程序框架和简单的指令。
为了使程序简单,从大的方面来说,优化程序结构,用流控指令简化程序,从小的方面来说,用强大的指令代替单一的函数指令,注意指令的排列顺序。
2.可读性
设计的程序要求可读。这不仅方便程序员加深对程序的理解和调试,也方便别人阅读你的程序和用户维护。必要时,该程序也可以推广。
为了使程序可读,设计的程序应该尽可能清晰。要注重层次性,实现模块化,才能用面向对象的方法进行设计。使用更标准的设计。
特殊情况下,使用语言编程,多数情况下使用梯形图编程,便于阅读。
那么I/O分布应该是有规律的,容易记忆和理解的。如果需要,应该做一些标注工作。内部设备的使用也要有规律,不能随便使用。
编程之初要注意可读性。完全做到不容易。因为在程序调试过程中,指令的增减和内部设备的使用变化,可能会使原本比较清晰的程序有些混乱。所以在设计中,调试的增减是有一定余量的,然后调试完了就整理出来,这样设计出来的程序质量更高。
程序的注释至少应该有以下几个方面:
A.系统说明:整个程序的版权公司和本程序的目的
B.版块注释:本版块的主要目的和作者
C.段注释:该段代码的目的
D.可变注释:不用说,重要性包括I/O注释和中间可变注释
至于保密性,我觉得应该考虑程序的加密算法或者块的加密,而不是用减少评论的小聪明。
3.正确性
PLC的程序必须是正确的,必须经过实际工作的验证,才能证明能正确工作。这是对PLC程序最基本的要求。如果这个做不到,再好,别的都没用。
为了使程序正确,我们必须准确地使用指令和正确地使用内部设备。说明书的准确使用关系到对说明书的准确理解。因此,有必要明确说明的含义和使用条件。如果需要,可以编写一些小程序来测试一些不清楚的指令。
对于同一个指令,由于PLC的出厂批次不同,或者PLC的系列型号不同,一些指令的细节可能会有所不同,所以你要仔细查阅编程手册。正确使用内部设备也很重要。如果有些PLC有掉电保护,有些PLC没有。务必使用断电保护装置,否则无法使用。
总之,对PLC程序来说,最根本的要求就是要准确地使用指令,正确地使用内部设备,这样才能正确地执行所编程的程序。
举个简单的例子,西门子的上升沿和下降沿都需要使用存储函数的变量作为中间变量,比如M点或者DB点。如果用FC的temp变量,会有问题。
4.可靠性
程序不仅要正确,还要可靠。可靠性反映了PLC程序的稳定性,这也是PLC程序的基本要求。
有些PLC程序在正常工作条件下或合法操作下可以正常工作,但在非正常工作条件下(如临时断电、快速重新通电)或非法操作(如按下某些按钮出现故障或同时按下几个按钮)后就不能正常工作。这种程序不可靠,或不稳定,或程序不好。
一个好的PLC程序可以识别异常工况,并将其与正常工况联系起来,使程序适应各种情况。好的PLC程序可以拒绝非法操作,不留“痕迹”。仅接受合法操作。
联锁是拒绝非法操作的常用手段,常用于继电器回路,可由PLC继承。
5.易于修改
使程序易于修改,即便于修改。
PLC的特点之一就是方便,可以灵活应用于各种场合。解决办法是修改或重新设计程序。
重新设计程序用于改变可编程控制器过程的使用要求。不仅程序被重新编辑,I/O也被重新分配。大多数情况下,不需要重写程序,做一些修改就够了。这要求程序易于修改。
易变意味着灵活,只需要很少的改动就可以达到改变参数或者修改动作的目的。
6.可量测性
很多程序可能在进入站点之前就已经编译好了,但是到了站点之后,可能还需要添加其他程序。为了避免打乱整个系统的结构,你需要在每个功能区预留一定的空间备用。
在硬件上留有足够的余量。编译软件的时候考虑手动,自动,半自动,离开岗位。
7.完整的报警系统
工业环境中经常使用PLC系统,每次事故都会造成或大或小的损失。为了对事故进行预处理或最大限度地减少事故损失,必须注意可编程控制器的报警和保护,可编程控制器是系统的重要组成部分。
8.程序模拟
为了保证现场调试进度或者给客户看,往往需要在进入现场之前完全自动模拟自己的程序。因此,需要在程序中增加一个模拟程序,正常现场运行后,程序断开。为了使程序具有模拟功能,需要做以下工作:(1)将可编程逻辑控制器的实际输入输出点转换为可编程逻辑控制器的中间变量或数据块变量;
(2)根据工艺要求,编制各设备的仿真程序。
在设计PLC程序的过程中,如果能满足上述要求,就可以称之为好程序。
可编程控制器(PLC)编程代码
1.选择合适的可编程逻辑控制器(PLC)型号和输入输出点,当有特殊功能要求时,选择特殊功能模块。
2.熟悉所选的PLC编程指令和编译软件。
3.软件组件规划,包括内部继电器、锁存继电器、数据寄存器、定时器、计数器等。
4.程序规划,一般按照故障提取、故障处理、手动处理、自动处理、输出处理的顺序进行编程。较大的项目或设备应由功能单元分段加工。如果自动生产线上有起重机、行走和顶升旋转装置,则应根据上述单位分段编程。
5.分段、分块编写的程序前应加一小段注释,说明程序的功能,必要时可注明相应的工艺流程。块或分段程序和整体程序的定位顺序基本上要按照工艺流程顺序排列,以利于程序的可读性。
6.在程序设计之前,要对设备进行抽象,对常见的因素如停止、急停、过载、超限、超时、安全光幕、颠簸和停止、门开关等进行抽象。应提取并放置在起动电路或起动主控制和联锁电路中,这是整个程序结构的大前提。在此基础上,程序可分为自动和手动两个功能区。
7.提取程序结构手动功能区的共性因素,如手动因素和危及设备人身安全的因素,放入手动主控和联锁回路中,对手动控制进行保护、屏蔽和报警。
8.提取程序结构自动功能区的共同因素,如自动、超限、超时等,放入自动主控和联锁电路中,对自动控制下的设备进行保护、屏蔽和报警。一个总的原则是在保证安全的前提下,严格限制设备进入,宽松限制设备退出。
9.在设计程序时,应设计程序的总复位功能,方便用户在设备出现故障时尽快恢复设备的正常运行。总复位时应充分考虑设备和人员的安全。
10.当自动模式切换到手动模式时,程序应清除自动模式下的输出和中间状态。特别是在自动模式下使用设置命令时,必须在手动模式下使用复位命令将其清除。
11、编程中严禁使用双输出,即同一输出语句或同一输出线圈在程序中出现两次以上。不同模式下,同一个输出点的输出由中间继电器传递,最后汇集在一起,并与输出点相连。12.使用触摸屏时,触摸屏和PLC共享的控制区和状态区不得进行其他功能的编程。
13.在使用PLC的专用模块之前,先查明控制区和状态区是否占用工作字。如果是这样,这些工作字就不要在其他方面编程了。
14、PLC输入、输出、中间继电器、定时器、计数器、数据寄存器等。应该用中文注释。输入和输出还必须有组件名称编号。对于相应的输入点,默认是外围开关接NO触点,需要接NC触点的必须在备注中注明。所有注释都要清晰,容易产生误解,尽量少用笼统的引用。
15.项目调试完成后,系统必须保留最终的软件程序,保存的文件名应包括项目号/作者/日期信息/版本号等。
16.程序加密:加密程序的密码必须保存在一个专门的文件中,标明相应的用户名和密码权限,并分发给至少两个人来理解密码,以防止因密码丢失而导致程序无法打开的情况。
编程建议
1.当PLC和上位机(或触摸屏)组成监控系统时,屏幕上有“手动”和“自动”等多种控制模式(一般控制模式多了就只有一种)。程序中可以使用“MOV”命令。例如,在:中,当选择“手动”时,常数1
MOV将存储在寄存器VB10中,当选择“自动”时,2
MOV将存储在同一寄存器VB10中。只要判断寄存器的数据,就知道系统是哪种控制模式。这种思路的好处是容易理解,不需要联锁等繁琐的程序。
2.当程序有模拟控制时,如果读取的模拟基本无误,可以采用时间滤波延时一段时间。如果读取的数据误差很大,需要采用其他滤波方法,比如计算平均值。可以查阅相关资料。
3.在程序调试过程中(尤其是在设备修改时将你的程序添加到原设备的程序中),当程序语句中的条件满足且输出线圈没有连接时,可以检查你的程序是否在这类语句之间,比如JUMPgo to等等。另一种可能是程序中断后,条件满足但不打开输出,一般不扫描本节程序。
4.在顺序控制程序中,即一个动作完成后,进入下一个动作,以及其他类似的顺序控制,方便我采用10
^
10的控制方式。思路是:预置一个寄存器,初始值为0。当系统启动时,当寄存器为10且寄存器等于10时,可以进行第一个动作。第一个动作完成后,寄存器10可以用于第二个动作。第二个动作完成后,寄存器10等于30,所以只要你判断寄存器中的数据,你就知道你想完成那个动作。需要跳的时候可以加20到30而不是10,看实际需要。为什么要加10而不是1,因为加了10之后,如果插入一个段落,只需要选择这10个自由位置中的任意一个。
5.在设计程序时,当出现过程故障(不受控制系统控制)时,最好保持故障现象,声光报警。直到操作员重置,让他知道系统出现故障。否则机器会停机,别人会认为你的程序有问题。一般来说,我们在设计新系统时应该注意这些。
6.对于经常调用的子程序,可以做成子模块,经常调用。
7.由于生产机械在工作循环中的每一步移动都需要一定的时间来执行,并且这些时间具有一定的限制,所以可以将这些时间用作在要检测的步移动开始的同时启动计时器的参考。定时器的时间设定值比正常情况下动作持续的时间长20%
~
30%,定时器的输出信号可用于报警或自动停机装置。当生产机械的某一工作步骤的动作时间超过规定时间,达到相应定时器的预设时间时,定时器发出故障信号,然后进入下一工作步骤,停止正常工作循环程序,启动报警或停机程序。这就是我们常说的超级节拍保护。
8.一些安全检测开关(如急停按钮、安全光幕、限位开关等。)都是常闭(NC)输入。
9.为了安全节能,尽量把输出设计成必要时动作,一到位就停止输出,而不是设计成平时总是输出,必要时断开输出。
10.执行器的动作原理应该是静止不动而不是移动!
11.单台设备控制:进行软手操作时,单台设备必须具有软手操作/自动切换和启动/停止功能。当自动切换到软手操作时,设备不能停止;当从软手操作切换到自动操作时,设备的启动/停止取决于自动程序。
12.单台设备(泵、风机等大型设备)运行24小时后必须旋转,且必须有运行时间积累。如果启动/停止顺序是由上位机设定的,则应由操作员自行设定。