论文部分内容阅读
摘 要:PLC在现代工业控制的应用中已非常广泛。但随着控制系统复杂性和自动化程度的不断提高,采用常规的面向过程的方法进行PLC编程会变得十分困难。因此,必须采用面向对象的编程方法,为PLC程序组被控对象建立功能/数据模块FB/DB,为每个控制系统的每个程序组分别定义和创建公用模块FC。
关键词:PLC编程 功能模块 段控制 组控制
1 问题的提出
在现代工业生产中,PLC的应用极其普遍,在大型的集中控制系统中,通常会用到多个PLC,每个独立的PLC又由相对独立的程序组组成,每个程序组控制几台至几十台设备,各台设备间的控制要求较多,有的被控对象自身较为复杂,这就使得PLC控制也就越趋复杂。
PLC控制的复杂性,自然也就使其软件设计更加繁琐。其软件设计在满足生产工艺和电气联锁控制关系的基础上,还应尽可能满足在使用上操作简便、直观,这包括:PLC主机自检;自动进行设备组备妥检查;系统音响试验输出;程序组启动预告输出;程序组设备的正常启/停联锁、运行联锁、紧急停车;组设备运行状态输出;设备启动过程中或系统正常运行后设备故障时的故障联锁停车、故障报警输出;故障解除后复位且能够从故障设备位置重新完成程序组设备顺序启动的控制等。
2 解决的思路
控制对象和对象之间关系的多样性,体现在PLC程序的编写上,就越来越庞大。这样采用一般面向过程的方法进行PLC编程会变得十分困难,且程序的调试和修改也同样十分困难。因此,必须采用面向对象的编程方法[1]。主体思想有两条:
第一条:为程序组中每个独立的被控对象或需要同时启/停的一组被控对象建立功能/数据模块FB/DB,被控对象在程序组中的联锁关系及自身控制要求都通过功能模块FB的外部属性和内部属性进行体现。
第二条:为每个PLC控制系统的每个程序组分别定义和创建公用模块FC,每个公用模块FC的入口/出口条件作为公共对象的外部属性;把按功能划分的设备间的故障判定、功能输出等作为公共对象的内部属性。
3 程序设计的方法
对于各个PLC集中控制系统,首先根据工艺生产流程,将整个车间分成若干个工段。在每个工段内,根据驱动设备的启停顺序和流程分支,将驱动设备分成若干个组。对于每一个组的驱动设备,在正常操作情况下,根据工艺流程,逆流程开车,顺流程停车。为了减小设备启停对电网的冲击,所有设备都是按顺序单台启动,根据设备的容量大小和启动特性,每台设备的启停相对于前一台设备都设置了相应的延时时间。对于操作员来说,整个生产线的启动,只是按设计的操作顺序启动每个组,只不过是点几下鼠标而己,不需要每台设备都去操作,使得操作非常简单。
3.1 段控制
从生产工艺考虑,不需要其它设备的参与,能够独立完成一定生产任务的一些设备的集合被称为一个段。一台PLC可以单独控制一个段,也可以几个小段由一个PLC控制。根据段的控制要求,设计一个通用的功能块FB220,功能块如图1所示,其主要功能如下:
检测系统状态:
AC220V控制电源状态;
DC24V控制电源状态;
PLC电池电压状态;
PLC冷却风扇状态;
系统紧急停车开关位置;
接收上位机的预警测试指令;
段状态字SSTA送至上位机。
3.2 组控制
按生产工艺,在同一时间段内允许同时开停的设备作为一个组,组内设备的开停不依赖于其它设备的开停,它收集组内各台设备的驱动状态,汇总后送至上位机,并接收上位机发出的各种控制指令,通过组控制字节分别送至每个驱动。组控制功能块FB227,其控制过程如图2所示:首先向FB227中输入参数AUX1、AUX2,FB227接收上位机指令GCOM,并采集组内设备的驱动状态STAC;然后FB227将组控制字节GRUP送至每个驱动,将组状态GSTA、组报警GALM送至上位机[2]。
3.3 驱动
驱动分为马达驱动和电磁阀驱动,马达驱动按控制方式分为主驱动和辅助驱动马达。主驱动马达是指为维持正常生产必须持续运行的马达,其开停与组的开停同步,若遇有分支的情况下,通过选择来确定。辅助驱动马达是指在生产过程中不是每時每刻都需要参与的马达,它的开停是根据生产的需要,是断续运行的设备,其开停依赖于组,但又不完全由组控制。按马达种类分有单向马达、可逆马达、电动执行器、电动推杆等。根据每种驱动的控制要求编写各自的功能块,在主程序中可以很方便地调用,使得程序结构简单,易于维护。单向主驱动马达的功能块FB200,其驱动过程如图3所示。
结论
采用面向对象的编程方法,设置PLC段、组、马达驱动等功能模块,尽可能按功能要求创建各种功能模块,在主程序中进行调用,使得复杂系统PLC的编程问题变得有迹、有序、系统和规范化,复杂问题简单化了,其发展前景无限。
参考文献:
[1]郑晨科.现代可编程序控制器原理与应用.清华大学出版社,2002.
[2]杨能长,张兴毅.可编程控制器PC原理及应用.重庆大学出版社,2006.
关键词:PLC编程 功能模块 段控制 组控制
1 问题的提出
在现代工业生产中,PLC的应用极其普遍,在大型的集中控制系统中,通常会用到多个PLC,每个独立的PLC又由相对独立的程序组组成,每个程序组控制几台至几十台设备,各台设备间的控制要求较多,有的被控对象自身较为复杂,这就使得PLC控制也就越趋复杂。
PLC控制的复杂性,自然也就使其软件设计更加繁琐。其软件设计在满足生产工艺和电气联锁控制关系的基础上,还应尽可能满足在使用上操作简便、直观,这包括:PLC主机自检;自动进行设备组备妥检查;系统音响试验输出;程序组启动预告输出;程序组设备的正常启/停联锁、运行联锁、紧急停车;组设备运行状态输出;设备启动过程中或系统正常运行后设备故障时的故障联锁停车、故障报警输出;故障解除后复位且能够从故障设备位置重新完成程序组设备顺序启动的控制等。
2 解决的思路
控制对象和对象之间关系的多样性,体现在PLC程序的编写上,就越来越庞大。这样采用一般面向过程的方法进行PLC编程会变得十分困难,且程序的调试和修改也同样十分困难。因此,必须采用面向对象的编程方法[1]。主体思想有两条:
第一条:为程序组中每个独立的被控对象或需要同时启/停的一组被控对象建立功能/数据模块FB/DB,被控对象在程序组中的联锁关系及自身控制要求都通过功能模块FB的外部属性和内部属性进行体现。
第二条:为每个PLC控制系统的每个程序组分别定义和创建公用模块FC,每个公用模块FC的入口/出口条件作为公共对象的外部属性;把按功能划分的设备间的故障判定、功能输出等作为公共对象的内部属性。
3 程序设计的方法
对于各个PLC集中控制系统,首先根据工艺生产流程,将整个车间分成若干个工段。在每个工段内,根据驱动设备的启停顺序和流程分支,将驱动设备分成若干个组。对于每一个组的驱动设备,在正常操作情况下,根据工艺流程,逆流程开车,顺流程停车。为了减小设备启停对电网的冲击,所有设备都是按顺序单台启动,根据设备的容量大小和启动特性,每台设备的启停相对于前一台设备都设置了相应的延时时间。对于操作员来说,整个生产线的启动,只是按设计的操作顺序启动每个组,只不过是点几下鼠标而己,不需要每台设备都去操作,使得操作非常简单。
3.1 段控制
从生产工艺考虑,不需要其它设备的参与,能够独立完成一定生产任务的一些设备的集合被称为一个段。一台PLC可以单独控制一个段,也可以几个小段由一个PLC控制。根据段的控制要求,设计一个通用的功能块FB220,功能块如图1所示,其主要功能如下:
检测系统状态:
AC220V控制电源状态;
DC24V控制电源状态;
PLC电池电压状态;
PLC冷却风扇状态;
系统紧急停车开关位置;
接收上位机的预警测试指令;
段状态字SSTA送至上位机。
3.2 组控制
按生产工艺,在同一时间段内允许同时开停的设备作为一个组,组内设备的开停不依赖于其它设备的开停,它收集组内各台设备的驱动状态,汇总后送至上位机,并接收上位机发出的各种控制指令,通过组控制字节分别送至每个驱动。组控制功能块FB227,其控制过程如图2所示:首先向FB227中输入参数AUX1、AUX2,FB227接收上位机指令GCOM,并采集组内设备的驱动状态STAC;然后FB227将组控制字节GRUP送至每个驱动,将组状态GSTA、组报警GALM送至上位机[2]。
3.3 驱动
驱动分为马达驱动和电磁阀驱动,马达驱动按控制方式分为主驱动和辅助驱动马达。主驱动马达是指为维持正常生产必须持续运行的马达,其开停与组的开停同步,若遇有分支的情况下,通过选择来确定。辅助驱动马达是指在生产过程中不是每時每刻都需要参与的马达,它的开停是根据生产的需要,是断续运行的设备,其开停依赖于组,但又不完全由组控制。按马达种类分有单向马达、可逆马达、电动执行器、电动推杆等。根据每种驱动的控制要求编写各自的功能块,在主程序中可以很方便地调用,使得程序结构简单,易于维护。单向主驱动马达的功能块FB200,其驱动过程如图3所示。
结论
采用面向对象的编程方法,设置PLC段、组、马达驱动等功能模块,尽可能按功能要求创建各种功能模块,在主程序中进行调用,使得复杂系统PLC的编程问题变得有迹、有序、系统和规范化,复杂问题简单化了,其发展前景无限。
参考文献:
[1]郑晨科.现代可编程序控制器原理与应用.清华大学出版社,2002.
[2]杨能长,张兴毅.可编程控制器PC原理及应用.重庆大学出版社,2006.