董 令,慕小乔,李岩,刘克平
(长春工业大学 控制科学与工程,长春 130012)
ANY指针编程在多变量大数据处理中的应用
董 令,慕小乔,李岩,刘克平
(长春工业大学控制科学与工程,长春130012)
摘 要:针对工业现场多变量大数据特点,提出了一种西门子可编程控制器ANY指针编程方法。与传统逻辑控制编程方法相比,ANY指针编程可以对大量的数据进行批处理,速度快,实时性好,是对传统控制更好的应用和创新。以某汽车公司侧围生产线为例,给出了ANY指针编程方法的应用实例,详述了FB101功能块创建、ANY指针引用和定义以及ARRAY、STRUCT、UDT及多背景数据块的使用等方法,运用高级语言编程技巧显示人机界面,直观灵活的展现工业实时状况,很好地实现了结构化编程。应用结果表明该系统性能稳定,运行可靠,人机界面操作简便。
关键词:大数据;ANY指针;可编程控制器编程;汽车生产线
西门子PLC广泛应用于工业控制,尤其在汽车生产线上,汽车生产工艺越来越复杂,人机化要求越来越高,精度要求越来越苛刻,所需求的变量随之增加,普通的一条生产线变量就要成千上万个,批量数据的传送与处理,给工业控制提出了难题,针对大数据多变量问题,设计可靠、方便、易读的控制程序尤为重要,充分合理的利用PLC控制技术,是实现自动化汽车生产的关键。在此,对于多变量系统,程序上进行了研究与验证,传统的PLC寻址方式[1],包括直接寻址,存储器、寄存器间接寻址以及POINTER指针[2]数据类型都满足不了多变量大数据的控制,而且传统控制稳定性低,停台时间长等。基于某汽车侧围生产线上西门子PLC S7-400控制平台,利用ANY数据指针作为变量,开发出一种新应用。
ANY指针数据类型是10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。灵活采用高级编程语言中的一些技巧,实现变量的批量处理与控制,解决了传统PLC编程难以实现此控制的难题[3]。
1.1侧围生产线简介
侧围生产线为提高生产节拍是由若干个工位组成,每个工位根据生产工艺,成一定数量的冲压件焊接,最后完成侧围生产的半自动生产线。由于侧围冲压件多,为固定零件方便焊接,需要的气缸数量庞大且种类繁多。每个气缸需要检测原位和终点信号。侧围生产线控制除了气缸还有多种检测信号,比如零件占位检测,侧围外板检测,气源检测等,而且需要人工参与的协调控制。
1.2侧围生产线硬件系统配置
某汽车侧围生产线包括左右两侧,38个工位,16块触摸屏,左右各8块,选择HMI 2为例,如表1HMI 2控制工位气阀,表2HMI 2控制工位开关数量所示,HMI2控制三个工位,分别为AF03010,AF03015,AF03020,共96个气缸,19个检测信号,共需要211个输入点,20个输出点。从表中三个工位可以看出控制所需硬件和传感器繁多。据不完全统计,此侧围生产线共需要1300个气缸,180个检测信号,4000多组报警显示。
表1 HMI2控制工位气阀
表2 HMI2控制工位开关
1.3侧围生产线软件系统简介
首先,满足侧围生产工艺上的基本控制功能。要求人性化的HMI[3](人机操作界面)。清晰的实时状态显示。准确的故障诊断,缩短故障的排除时间,减少停台时间[5]。这都大大增加了数据处理与传送的繁琐。在生产线中,各个工位的控制是相似的,因此对于所有工位的逻辑控制是一致的,可以将其提炼为一个公共的FB控制块,在所有工位控制中调用此FB块,实现逻辑控制。但由于各个工位在控制对象的数量、形式以及逻辑步骤之间的连接差异等,需要在调用FB块时给出不同的形参值,为此设计了图1工位控制参数设定画面。所以上述功能的实现都需要以大量的数据交换作为基础,为了达到上述目的,在程序中使用了ANY指针变量。
图1 工位控制参数设定画面
2.1软件ANY指针声明
ANY指针是一种传递指针[6]的形参数据类型,用于逻辑块(FB、FC)之间传递参数,可以传递DB块号、数据地址、数据数量及数据类型。
在ANY数据类型参数中,数据区的含义如表3所示。
表3 数据区含义[2]
ANY指针由10个字节组成。其指针数据格式如表4所示,指针变量的数据格式,表5绝对(相对于地址等于0的地址指针对应指针数据格式的)地址分配。
表4 指针变量的数据格式
表5 绝对地址分配
2.2举例说明ANY指针赋值形式
1)对数据类型参数进行赋值时可以选择指针显示方式直接赋值,与其他指针相比,ANY类型指针可以表示一段长度的数据。例如:P#DB10.DBX0.0 BYTE 654,表示指向DB10.DBB0~DB10.DBB654 654个字节。
2)当在FB FC接口中定义了输入ANY指针变量时,指针按照指针的数据格式形式赋值。以模式命令指针为例:
3)I/O起始地址进行自定义指针#PLC_Use.HMI_ Setting.IO_Start_Address
3.1程序结构分析
针对侧围生产线大数据多变量的问题,程序采用结构化编程[4,7]和ANY指针实现,在编程时需要规划整体结构[8,9],采用层次化分别对每个工位进行控制,控制程序结构如图2所示。以FC101为例,FC101对应于触摸屏HMI2,可以实现AF03010,AF03015,AF03020工位的自动控制,与FB101,FB102,FB103分别对应,AF03010的控制包括FB95(Led_Exist_Sub),FB96 (Exist_check_Avail),FB97(Orig_Complete_sub),FB98(Orig_Valve_Control)等,其余FC102,FC103,FC104,FC105等为其他工位的控制。结构与FC101相似。
图2 控制程序结构
3.2ANY指针interface
根据工位具体情况,每块触摸屏控制的工位数不同,侧围生产线操作员通过触摸屏选择,控制不同工位。
以HMI的设计为例说明ANY指针[10]的应用。HMI是生产线上的重要部件,主要完成指令的输入和运行状态的显示及故障的报警输出。从数据流[11]向来看分为从HMI到PLC CPU的控制指令输出和从PLC CPU到HMI的显示数据的输入。在图3[3]中,按钮和模式选择是到PLC的输出数据,各种状态显示及报警是输入的数据,因此在FB101的接口定义中定义了Mode_Command_P、Ex_ Var_Button_P等到PLC的输出数据指针和LED_Point、HMI_IO_Dis_Point等到HMI的数据输入指针。
FB101[12~14]调用过程如图4所示。
在接口信号的输入端设置HMI_IO_Dis_Point为ANY指针数据变量,数据长度设置为320 byte,此时的ANY指针为形参变量,由于PLC内部的逻辑运算需要定义相应的临时变量,把临时变量赋值给输入的指针,使HMI_IO_Dis_Point 指针指向实际地址DB10. DBX1768.0,程序通过SFC20(块传送)把逻辑运算结果传送至临时变量temp T_HMI_IO_Dis_Point指针所指位置。并显示至触摸屏上。
图4 功能块FB101的调用
举例说明,设置两组阀分别设置4个气缸,设置MZ11夹紧,MZ12松开,I/O状态显示变量设置为整型量,当数值为2时显示黄色闪烁,代表气缸伸出或缩回的过程中,当数值为3时黄色不闪烁,代表缩回到位,当数值为4时,代表气缸报警。逻辑运算结果转化成数字量送入指针地址寄存器。I/O状态显示[3]如图5实例I/O状态显示所示。
图5 实例I/O状态显示
某汽车侧围生产线采用ANY指针方法的控制程序两年来得到了良好的效果,相比采用传统[15]的控制方法,CPU的工作内存明显减少,在CPU选型上可节省成本达25万元,再者,甲乙两班生产的停台时间由原来的平均每班组30分钟降低为5分钟,按10分钟两台侧围左右骨架计算,每个侧围骨架估价12000元,成本2000元。两年因减少停台而增加的利润为(30-5)×2×30×12×2÷5×(12000-2000)=7200万。
不仅在经济效益上有所提高,而且采用结构化和ANY指针编程的方法,易于调试,可移植性强,易读性强,易于分析逻辑关系,程序代码效率高,结构化编程和ANY指针的使用可简化程序设计过程,减小代码长度,提高编程效率,比较适合于较复杂自动化控制任务的设计。
参考文献:
[1] 李琦.数据结构和指针在PLC编程中的灵活运用[J].仪器仪表学报,2002(23):125-130.
[2] 苗虎.POINTER指针在连续平压机程序设计中的应用[J].木材加工机械,2014(2):27-29.
[3] 邹伟,杨平,徐德.基于MCGS组态软件的上位机控制系统设计[J].制造业自动化,2008,12,2007(9):1235-1255.
[4] 修志强,李阳,许国峰,任传敏.矿用蓄电池电动机车PLC程序模块化设计[J].工矿自动化,2010(9):102-104.
[5] 陆广平,王秀琳.自动送料系统桶装计量自控系统设计[J].计算机测量与控制,2009(11):2213-2215.
[6] 陈玉俊.指针在西门子S7系列PLC信号处理中的应用[J].冶金自动化,2011(2):832-836.
[7] Oscar Ljungkrantz,Knut Akesson,Martin Fabian,Amir Hossein Ebrahimi.An empirical study of control logic specifications for programmable logic controllers.Empirical software engineering 2014,19(3).
【】【】
[9] 李佳,王广林.PLC编程中数据结构和指针的应用数字技术与应用[J].数字技术与应用,2013:44.
[10] 谭锦洁,程良鸿.嵌入式PLC梯形图的一种数据结构描述方法[J].计算机工程,2004(10):85-87.
[11] 杨进才,杨雅琴.基于缓存与指针推进的混合移动性管理策略[J].计算机工程与应用,journal6,2007,43(8):46-48.
[12] 李明.制造业中多工步组合机床监控系统设计[J].制造业自动化,2012(20).
[13] 裴元方,冯萍,康继昌.PLC梯形图的一种数据结构描述方法[J].计算机工程与科学,2009,31(12):87-89.
[14] 秦绪平,张万忠.西门子S7系列可编程控制器应用技术[M].北京化学工业出版社,2011.
[15] 王志芳.指针逻辑的扩展与应用[D].中国科学技术大学,2009.
[16] 刘丽华,李笑.基于PLC与触摸屏的玻璃清洗机控制系统设计[J].制造业自动化,2008(6),2012,48(14):68-73.
制造软件
控制技术
ANY pointer programming in multivariable big data processing
DONG Ling, MU Xiao-qiao, LI Yan, LIU Ke-ping
中图分类号:TP399
文献标识码:A
文章编号:1009-0134(2016)05-0001-04
收稿日期:2015-11-12
作者简介:董令(1990 -),女,山东菏泽人,硕士,研究方向为工业机器人建模与控制。