周广旭
(许昌卷烟厂 河南 许昌 461000)
摘要:德国Hauni公司的KLD-2z烘丝机与Tobspin切丝机的PLC程序中大量使用面向对象的思维去编写PLC程序,相比卷烟厂其他设备的程序在很多方面有明显优势。本文即参考面向对象思维改进卷烟厂制丝车间储片房的PLC控制程序。同时结合使用Step7、Excel、OPC软件的优点,使PLC程序结构清晰、空间占用少、项目实施效率更高、可读性强、方便排障等。
关键词:PLC;面向对象;UDT块;Excel;OPC;Hauni;制丝车间;储片
引言:
卷烟厂储片房内有十组对顶柜,每组对顶柜分左右两个储柜,每柜可存储5000公斤烟叶。一组储柜用一辆铺料车,用于接收上游传送来的烟叶,同时把烟叶均匀铺在下侧对顶柜内,铺料车可以沿储柜纵向行走移动,铺料带可以前后铺料。
十组对顶柜共用两辆铺料航车,可以接收上游烟叶;铺料航车沿十组对顶柜的上面,垂直与对顶柜纵轴移动,可把烟叶准确送入任一对顶柜铺料车上。
储片柜控制系统采用分布式控制,硬件采用西门子可编程控制器S400、ET200子站、丹佛斯FC300变频器, Profinet总线通信。每组对顶柜使用一个ET200S子站。
西门子编程软件Step7中,可以借鉴面向对象编程方式。如UDT块,与面向对象只有属性没有方法的类相似,UDT块可以嵌套使用,与类的继承相似;如多重背景的FB块与既有属性又有方法的类相似;如ET200S下的电机启动器虽然分单向、双向两种类型,因其过程数据一样,可以共用一个UDT块,这与对象的多态性相似。
在DB块中嵌套UDT块,并为其赋值,就实现了类的实例化。多重背景的FB块中嵌套调用没有背景数据块的FB块,也是对其实例化。
1、设计思路简介
为了完成工艺任务及设备自动化目标,使用五层设计的原则使任务目标逐层递减,通过状态相位控制使每层之间的通信接口也尽量最小化。
2、元器件层
元器件层包括智能仪器仪表、电机启动器、变频器、隔离开关、光电开关等硬件。
智能仪器仪表大多带有自动控制、过载保护、自动自我诊断等功能,硬件本身相当于既有属性又有方法的类,在Step7中硬件组态相当于对其实例化。只需要对硬件对象进行接口调用,对其状态字、控制字读写,不需要编写对应调用方法或者扩展其软件功能,所以大多数情况使用UDT块。
2.1、电机启动器
以ET200S的电机启动器为例,储片柜项目中大量使用这种电机起动器,分单双向、高低性能多种类型,其过程变量,包括控制位、状态位、故障报警位、电流显示等,可以实现其基本的自动化控制功能。编写2个UDT块,输入UDT块和输出UDT块。
2.2、隔离开关
普通元器件如电机的隔离开关,输入有关闸、合闸、手动启动的开关位;输出有启动/停止、故障的指示灯信号,使用UDT块进行统一组织。
2.3、开关量传感器
光电开关、接近开关等开关量传感器,只有属性没有方法的类使用UDT块,一组相同设备的开关量传感器统一组织成一个UDT。一些传感器可直接编写成故障报警位,如铺料车左超出报警。
3、子站层
子站层控制元器件层,并进行逻辑运算处理,可实现一些组合功能,如闭环控制,运行监测等。如对电机启动器和隔离开关等子站下的硬件的UDT块的多重继承,既要有属性又要有方法,所以此层就需要使用多重背景FB块。
储片柜中一个子站控制一组对顶柜,相应的制作对顶柜类FB块。设计步骤是先建立控制模型,对控制顺序和逻辑关系进行描述,根据模型编写程序代码;然后在自动化控制程序中不能确定的或无法通过程序自动计算或者计算不准确的,需要人工根据经验或者工艺要求来确定的参数,如配方参数和设备参数等,需要做成配方或者设备参数UDT块;接着建立与单元层通信的状态相位接口状态相位;最后故障报警列表编写到UDT块中。
3.1、控制命令
使用FB块的输入变量传递其控制命令,如在对顶柜子站中输入变量为启动、停止、选择出柜、选择进柜、自动、手动。
3.2、配方参数
此参数组主要影响工艺质量,如存料时间和存料批次号。每种品牌的烟叶存料时间都各不相同,有时为改进工艺也需要调整此参数。
3.3、设备参数
此类参数主要影响设备运行效率、能耗,是对自动化程序调教的参数(附件4)。如因铺料车往返运行,中间有停顿时间,上游皮带机却一直供料,同时铺料车重量大,惯性大,铺料带行走电机启动太快可能抖动,启动慢则可能堵料,所以此类参数需要经技术人员根据经验和实际情况调教。
3.4、状态相位
此层的状态相位包括进柜、出柜、高速倒料、存料、空柜、存料结束、故障、自动、手动。STEP7中程序编写使用相位控制各个零备件层模块的运行,相位控制可以实现各个模块之间的互锁。
3.5、故障
自动化控制中故障一旦产生,设备就必须停止运行。子站层的故障大多是逻辑关系上的故障,与元器件层的故障报警位不同,需要进行逻辑运算才能得出的报警位。举例如下:
例1.正在生产过程,铺料带电机实际电流突然低于参数铺料皮带脱断电流阈值,即可判断其脱离负载,产生此故障位。
3.6、报警
报警信息预示着可能有故障产生,此参数大多通过逻辑运算得到。如正在生产过程中,左出料底带电机实际电流低于参数左出料底带打滑电流阈值,则会触发置位静态变量表中相应报警位。
4、单元层
单元层相当于流水线上一个节点,可能是上下游相邻的几个子站节点,或者是多个具有相同硬件和完成同样功能的子站节点,具有协同几个子站节点实现同一任务的功能,如为预防生产线因为某一节点停机造成生产线停机,增加相同节点实现主设备和备用设备的切换。从流水线层来看多个子站就如同一个节点一样使用,监控其状态相位,给其启停信号。
在储片房中,有选柜单元、上游传送带单元、下游传送带单元。以下仅介绍选柜单元层设计,此单元主要执行选柜功能,选柜单元下含十个对顶柜柜子站、航车子站组成。
5、生产线层
此层即是主站S400要完成的功能,包括控制各单元启停顺序,与上下游工序通信,使用数据块读写外围元器件,编写故障组织块等功能。
OB1组织块主要使能FC1块和FC2块。
5.1、FC1单元控制块
根据各单元层相位信息,控制各个单元启停顺序或各个单元的互锁,某一单元发生故障停机,则其上游单元立刻停止向下游输出,下游单元继续运行一定时间后停机。
5.2、FC2通信块
通过块赋值或者指针调用把外围I/O传入内部DB数据块,如电机启动器的PIW和PQW传入或者写出相应DB块(如单元层的背景数据块)。
6、OPC监控层
首先在OPC中建立设备通道,此通道包含S400主站的地址等信息,用于OPC服务器与跟主PLC建立通信。
接着从Step7中导出单元层背景数据块至Excel,使用Excel中筛选功能筛选出变量名字中含有“故障”的行,汇总成故障组,同理依次使用同样方法汇总出警告组、配方参数列表、设备参数列表等。
最后,在OPC中储片柜通道中下设相应故障文件夹、配方参数文件夹、设备参数等文件夹,使用刚才导出自Step7的Excel文件分组导入OPC对应文件夹内。这样就可以在画面组态中调用这些数据进行监控。
7、结论
如果硬件需要升级或者使用替代品牌,只需要更改相应UDT块,即可在整个程序中更新使用。
因为使用继承功能(多重背景),根据变量名进行调用,同一个数据不需要在多个地址传递存储,这样做减少DB块和FB块的存储单元大小,进而减少程序规模,节约了有限的系统资源。
PLC只负责生产,而故障监控、状态读取和变量写入的汇总并编组传送,由OPC结合其他工具实现。
综上所述,在本例中的流水线项目上,借鉴面向对象编程方式并结合OPC监控和Excel,不仅可以提高程序质量,还极大提高编程效率。
参考文献:
[1]王品.面向对象编程思想在煤炭企业中的应用. 煤炭技术,10:15-16页(2012)
[2]周元芳. 结构化及面向对象的程序设计方法在PLC编程中的应用[J],浙江工业大学学报. 9:30-31页(2003)
[3]董伟,李坤,王健,赵瑜,闫军民. HAUNI松散回潮滚筒含水率控制系统的改进,烟草科技. 11:50-51页(2012)