一套完整的PLC程序不仅简单到系统可以运行,还要求运行前有完整的注释、优秀的架构、良好的扩展性、完整的报警保护系统和仿真系统。
1.简单
使PLC程序尽可能简单。简单意味着尽可能使用标准化的程序框架和简单的指令。
要让程序简单,从大的方面来说,要优化程序结构,用流程控制指令简化程序,从小的方面来说,要用功能强大的指令代替功能单一的指令,注意指令的顺序。
2.可读性
要求设计的程序应该是可读的。这不仅方便程序员加深对程序的理解和调试,也方便别人阅读你的程序和用户维护。必要时,程序也可以推广。
为了使程序可读,设计的程序应该尽可能清晰。注意层次,实现模块化,用面向对象的方法设计。使用更标准的设计。
如遇特殊情况,使用语言编程。大多数情况下,为了便于阅读,请使用梯形图。
也就是说,I/O分布应该是有规律的,容易记忆和理解。如有必要,应发表一些意见。内部设备也要定时使用,不能随便使用。
程序设计之初就要注意可读性。这完全不容易做到。因为在程序调试的过程中,指令的增减,内部器件使用的变化,都有可能让原本清晰的程序变得有些凌乱。所以在设计中有一定的调试增减空间,然后在调试后做一些排序,这样设计出来的程序质量更高。
对方案的意见至少应包括以下几个方面:
A.系统说明:整个程序的版权公司和本程序的目的。
b、区块注释:此区块的主要用途和作者。
c,段落注释:这段代码的目的。
d、变量注释:重要性不用多说,包括I/O注释和中间变量注释。
至于保密,我觉得应该考虑程序的加密算法或者块的加密,而不是用减少评论的小聪明。
3.正确性
PLC的程序一定要正确,一定要经过实际工作的验证,证明它能正确工作。这是对PLC程序最基本的要求。如果做不到这一点,其他的都不会好。
为了使程序正确,我们必须准确地使用指令和正确地使用内部设备。指令的准确使用关系到对指令的准确理解,所以必须明确指令的含义和使用条件。必要的时候可以编译一些小程序来测试一些不清楚的指令。
对于同一个指令,由于PLC的出厂批次不同,或者PLC的系列型号不同,有些指令细节可能会有所不同。请仔细查阅编程手册。
正确使用内部设备也很重要。例如,一些PLC具有电源故障保护,而另一些则没有。要实现这种掉电保护,必须使用掉电保护器件,否则无法使用。
简而言之,准确使用指令,正确使用内部器件,使编译好的程序能正确完成,是PLC程序最根本的要求。
举个简单的例子,西门子的上升沿和下降沿需要使用具有存储功能的变量作为中间变量,比如M点或者DB点。如果使用FC的temp变量,就会出现问题。
4.可靠性
程序不仅要正确,还要可靠。可靠性反映了PLC程序的稳定性,这也是PLC程序的基本要求。
有些PLC程序在正常工作条件下或合法操作下可以正常工作,但在非正常工作条件下(如暂时断电,然后很快又上电)或非法操作(如某些按钮按错顺序或几个按钮同时按下)就不能正常工作。这种程序不可靠,或者说不稳定,就是坏程序。
一个好的PLC程序可以识别异常工况,将异常工况与正常工况联系起来,使程序适应各种情况。好的PLC程序可以拒绝非法操作,不留“痕迹”。只接受合法经营。
联锁是拒绝非法操作的常用手段。继电器电路经常使用这种方法,PLC也可以继承这种方法。
5.易于修改
让程序变得容易,也就是让程序变得容易修改。
PLC的一个特点就是方便,可以灵活应用于各种场合。解决方法是修改或重新设计程序。
重新设计程序是用来改变PLC程序的应用要求。不仅程序被重新编程,而且I/O也被重新分配。大多数情况下,不需要重新编写程序,只需要做一些修改。这就要求程序简单易修改。
易变是指灵活性,要求只需少量改变就能达到改变参数或调整动作的目的。
6.可量测性
很多程序可能在进入站点之前就已经编译好了,但是到了站点,可能就需要添加其他程序了。为了避免打乱整个系统的结构,你需要在每个功能区预留一定的空间进行备份。
在硬件上留足余量。写软件的时候考虑手动,自动,半自动,离开位置。
7.完整的报警系统
PLC系统在工业环境中经常使用,每一次事故都会造成或大或小的损失。为了对事故进行预先处理或在事故中最大限度地减少损失,必须重视PLC的报警和保护,并将其作为系统的重要组成部分。
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指令清除。
1.编程中严禁使用双输出,即同一输出语句或同一输出线圈在程序中出现两次或两次以上。在不同的模式条件下,同一个输出点的输出通过中间继电器传递,最后汇集到一起,绑到输出点。
12.使用触摸屏时,触摸屏和PLC共用的控制区和状态区不应被编程用于其他功能。
13.在使用PLC的专用模块之前,首先要弄清楚它的控制区和状态区是否占用工作字。如果是这样的话,你就不应该用其他方式编写这些工作词。
14.PLC的输入、输出、中间继电器、定时器、计数器和数据寄存器应用中文标注。输入和输出还应该有组件的名称和标签号。对应的输入点,一般情况下,默认为外围开关与NO触点相连,需要与NC触点相连的必须在备注中注明。所有的评论都要清晰,容易被误解,尽量少用笼统的引用。
15.项目调试完成后,系统必须保留最终的软件程序,保存的文件名应包含项目号/作者/日期信息/版本号等。
16.关于程序加密:加密程序的密码必须保存在专门的文件中,注明对应的用户名+密码+权限,分发给至少两个人知道密码,防止密码丢失导致程序无法打开。
三
编程建议
1.当PLC与上位机(或触摸屏)组成监控系统时,屏幕上往往会出现“手动”、“自动”等控制方式(一般只能一机多用)。你可以在程序中使用“MOV”指令。例如,当选择“手动”时,常量1 MOV被放入寄存器VB10,当选择“自动”时,常量2 MOV被放入同一寄存器VB10。只要判断一下寄存器里的数据,就知道系统是什么样的控制模式了。这种思路的好处是容易理解,不需要环环相扣等麻烦的程序。
2.当程序有模拟量控制时,如果读取的模拟量基本没有错误,可以采用时间滤波将其延迟一段时间。如果读取数据的误差较大,则需要其他滤波方法,如平均。可以查阅相关资料。
3.在程序调试的过程中(特别是设备修改时,你的程序被添加到原设备程序中),当程序语句中的条件满足,输出线圈未连接时,可以检查你的程序是否在这样的语句之间,比如JUMP \ go \等语句。还有一种可能是程序中断后,条件满足,没有输出,没有连接。一般不扫描这个程序。
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小时运行。