龙源期刊网 http://www.qikan.com.cn
PLC程序设计中结构化编程的应用
作者:王敬怡
来源:《电子技术与软件工程》2017年第23期
摘 要 结构化编程是PLC程序设计的常见方法之一,可以将复杂的任务分成多次进行处理,结合通用程序代码来对复杂任务的控制进行简化。本文结合PLC程序设计基本方法,对结构化编程的应用进行了分析和讨论。 【关键词】PLC 程序设计 结构化编程
工业化进程不断加快背景下,对于自动化控制提出了更高的要求,PLC控制系统也因此得到了越发广泛的应用。不过,传统PLC程序设计存在结构不清晰、程序冗长的问题,导致控制程序的功能单一,很难在多个不同项目中实现重复使用。如何更好的做好PLC程序设计,使得其能够满足不同设备自动化控制要求,是技术人员需要关注的重点所在。 1 PLC程序设计常用方法
PLC的全称为Programmable Logic Controller,可编程逻辑控制器,是一种专门针对工业环境而设计的数字运算操作电子系统,能够存储大量操作指令,通过模拟式输出或者数字式输出,实现对设备或者生产过程的有效控制。
想要确保PLC功能的有效发挥,需要首先进行程序设计,而比较常见的PLC程序设计方法有三种: 1.1 模块化编程
结合功能需求,将程序分为不同模块,在模块内设置相应的控制指令,系统依照顺序实现对模块的调用。这种编程方法得到的程序具有清晰的结构,无论是调试还是维护都非常方便,但是只能依照模块进行功能划分,调用也需要满足相应条件,代码繁琐冗长。 1.2 线性化编程
可以在一个程序块中放入所有代码,以S7-400为例,数据采集、台时统计、设备控制等程序都可以被写入OB1中。线性化编程可以得到与继电器控制电路相似的程序,依照顺序对指令进行处理,在小型设备中有着适用性好,不过在面对大中型项目时,存在程序结构不清、代码冗长问题,而且调试和维护都异常繁琐。 1.3 结构化编程
龙源期刊网 http://www.qikan.com.cn
可以将复杂的任务分成能够多次处理的小任务,结合通用程序代码来对复杂任务的控制进行简化。小任务可以表示为程序段,或者块,在对程序块进行调用时,只需要输入相应的地址或者参数,就可能实现对不同设备和工艺流程的有效控制,不需要对功能相同的代码进行重复输入。如果需要修改程序功能,对程序块进行修改即可,能够极大的提高编程效率。 2 PLC程序设计中结构化编程的应用
以水泵调度为例,对结构化编程在PLC程序设计中的应用进行简单分析。 2.1 变频水泵
在对输出输出类型进行设置时,可以在功能块外部,通过自动控制程序赋值,也可以人工设置,设定好的数值可以结合功能块内部逻辑进行修改。在赋值中,Command、State等参数采用了Word类型,每一位都代表了不同含义。变频水泵功能块中包含了水泵运行中几乎所有常见的信号处理要求及控制功能,一些在实际工程中不会很少使用的参数,可以空置,也可以直接设定为默认数值。对于水泵电流,需要设置专门的模拟量处理程序块,做好上下限报警及数据转换,如果发现电流超过上下限设定值,则程序会自动发出过流或者欠流信号,变频水泵功能块在接收到信号后,会依照设定好的程序展开保护功能,保证水泵正常运行。 2.2 水泵调度
泵站中,一般都是结合液位波动,对水泵频率和运行台数进行实时调整,确保正常运作,液位控制在水泵调度中发挥着非常关键的作用。通常来讲,泵站液位控制多是依照液位对水泵进行分段启停,因此,不同液位对应不同的水泵运行频率和开启数量,死区保护功能的存在避免了意外事故的发生。在对水泵启停液位进行设置时,为了避免特殊工况导致的水泵频繁启停,需要保证启动液位较停止液位稍高。
水泵的启停应该从几个方面进行考虑:一是热备状态,要求PLC对水泵通电情况进行检测,明确水泵的运行状态、控制模式以及是否存在故障。在确认无误后,判断水泵正常,处于热备状态,可以通过自动控制程序完成水泵的开停调度工作;二是平衡调泵,在调度水泵时,优先启动累计运行时间最短的泵,优先停止运行时间最长的泵,确保每一台泵的运转时间大致相同,而如果所有水泵运行时间相同,可以按照设定好的顺序实现水泵启停;三是启动间隔保护,在控制程序中,需要保证每一台水泵的启动频率不超过6次/h,两次启动间隔不低于10min,无论遇到任何情况,都不能同时启动两台或以上水泵。
从实际应用角度,可以依照分段启动原理,结合低水位保护等,编制泵站自动控制功能块,对需要开启的水泵数量进行计算。同时,编制水泵启停调度选择功能块,通过两个功能块的配合使用,能够实现对泵站自动调度程序的快速编制。 3 注意事项
龙源期刊网 http://www.qikan.com.cn
(1)在实际项目中,PLC程序设计一般会选择结构化编程与模块化编程相结合的方式,依照工艺段,对项目进行分割,形成多个任务模块,然后以任务模块为对象,开展结构化变成,实现设备控制、工艺控制以及数据分析统计等功能。
(2)在具体的功能块设计中,应该尽量采用单一功能模式,不能在同一个功能块中堆叠大量功能。以变频水泵功能块为例,只需要设置设备控制、状态分析、故障诊断功能即可,其他诸如温度检测、电流检测等功能应该放在通用模拟量模块中,根据实际需求传递给变频水泵功能块,这样不仅可以保证功能块结构清晰,而且调试和维护非常方便。
(3)PLC程序模块编制可以采用SCL语言,在编程环节采用标准化指令,为程序移植提供方便。例如,西门子SCL语言与Rockwell等PLC的ST语言类似,均属于PASCAL语言,也能够满足IEC61131-3国际标准的要求,如果想要将程序移植到相关编程环境中,只需要做出适量修改即可,不需要重新编程。 4 结语
总而言之,将结构化编程应用到PLC程序设计中,可以通过封装形成设备程序块或者流程程序块,任务块的创建和测试独立进行,互不影响。在实际应用中,只要现场信号准确,对调用接口进行测试,就可以完成调试,难度大大降低,效率也有了很大提高,灵活性和可靠性强。 参考文献
[1]孟彦京,薛宁.造纸机PLC程序的结构化设计研究[J].自动化仪表,2014,35(03):49-51.
[2]迟君平.PLC程序开发中的结构化编写方法[J].自动化博览,2011(04):90-92. [3]黄恭伟,倪受春,汪先兵,等.S7-1200PLC结构化编程的研究和应用[J].滁州学院学报,2015(05):62-64. 作者单位
长春奔腾瑞马自动化有限公司 吉林省长春市 130011