基于RSLogix5000软件的模块化设计
2015-05-30赵颖淼
赵颖淼
摘 要:本文阐明了模块化设计的概念、功能模块的设计原理,简单介绍了模块化设计的特点及发展前景。针对一汽通用哈尔滨轻型汽车有限公司搬迁改造项目涂装车间机运系统的电气控制系统,详细介绍了模块化编程的方法及模块化程序的实际应用。对电气控制系统的设计具有一定的实际指导意义。
关键词:模块化设计;PLC;RSLogix5000軟件;标签;数据结构体
1 模块化设计介绍
1.1 模块化设计
简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系,以功能模块为单位进行程序设计实现其求解算法的方法。
1.2 模块化设计具有以下优点
大量利用已有的经过试验、生产和市场验证的模块,可以降低设计风险,提高产品的可靠性和设计质量;设计的重用及并行的产品开发和测试可以大大缩短设计周期;模块化降低程序复杂度,使程序设计、调试和维护等操作简单化;模块化有利于企业研发团队分工,规范不同团队间的信息接口,进行更为深入的专业化研究和不同模块系统的并行开发;模块化是在传统设计基础上发展起来的一种新的设计思想,现已成为一种新技术被广泛应用,模块化设计的产品正在不断涌现。
2 项目简介
一汽通用哈尔滨轻型汽车有限公司搬迁改造项目是一个年产10万辆的轻型卡车生产线。涂装车间的电气控制系统划分为12个控制系统,其中机运设备电气控制系统7个,工艺设备电气控制系统5个。共使用12套ROCKWELL的PLC ,使用DeviceNET现场总线。电气控制系统是在美国通用汽车公司的工程师指导和ROCKWELL(中国)全方位技术支持下,完全采取模块化设计思想进行设计的,每个控制系统都是由若干数量和种类的单元模块与盘柜模块组成。基于硬件的模块化设计和RSLogix5000软件的特性,控制程序完全采用模块化设计思想编制。
3 软件介绍
RSLogix5000是美国罗克韦尔自动化有限公司开发的用于对其公司PLC产品的编程软件。RSLogix5000软件是符合IEC61131-3标准的软件包,是一个包含编程、诊断、在线监控等功能的集成系统开发平台。系统的主要功能是为控制工程师和系统编程人员提供一个可以把他们的程序概念转变成一系列的程序图和定义用于快速地创建可执行程序。它具有以下几个显著特点:
统一的项目查看;具有控制器标签(Controller Tags)和程序标签(Program Tags)两类标签;用户可以自定义的数据结构体;每个程序都包含程序标签、一个可执行的主例程和多个其他例程。
3.1 软件界面
本项目程序设计采用了V16.03.00版本的RSLogix5000软件,其界面如图1所示。左侧的Controller Organizer选项栏中呈树状列表显示了控制器的相关信息。包括全局作用域标签(Controller Tags)、任务(Tasks)、数据类型(Data Types)、I/O配置(I/O Configuration)等。
3.2 标签及用户自定义的数据结构体
标签就是实际工程中的变量,有模拟量如水位、压力、温度等,数字量如打开、关闭启动、停止等。在程序中使用它们进行编程,调试中通过在线监视在窗口中查看当前状态。
标签的数据类型可以分为两大两类:①基本类型:布尔型(BOOL)、短整型(SINT)、整型(INT)、双整型(DINT)、实型(REAL);②结构体类型:预定义型(Predefined)、用户定义型(User-Defined)。
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体和其他基本数据类型比较具有一个显著的优点:结构体可以做成想要的数据类型以方便日后的使用。
3.3 标签的作用域
在上面我们提到过此软件的标签包括控制器标签和程序标签两类。两类标签最主要的区别就是作用域不同。控制器标签是全局作用域标签,它可以被控制器内的全部例程使用而不管这些例程归属于哪个程序,对控制而言这些标签是全局的。程序标签是局部作用域标签,它只限于该标签所在的程序内的例程使用,在其他程序的例程不能访问另一个程序的程序标签,对于控制而言,这些标签是局部的。
控制器标签在Controller Tags里显示可以直接增加或新建的方式添加新的控制器标签。程序标签的位置在各个程序里的Program Tags中,以同样的方法添加。在Controller Tags或Program Tags中我们可以看见有一列名为“Alias For”的区域。这部分是用于添加标签名称的,我们称之为别名标签。当一个标签被编辑了别名标签后,则表明此标签和该别名标签实际为一个标签,在模块化设计中有很大的作用。
3.4 程序结构介绍
每个程序都包含程序标签、一个可执行的主例程和多个其他例程。程序标签定义了本程序内所用到的所有局部标签;主例程内通过调用指令可以按主例程内的顺序调用其他例程。
4 基于RSLogix5000的模块化设计
下面以本项目机运设备控制程序的编制来说明基于RSLogix5000的程序模块化设计方法。如图2所示,是一个双向变频滚床的控制程序。程序中的每个例程都是以其主要功能命名的,这样可以使得应用此程序的人员清晰易懂。程序中包括了该设备的I/O映射(B001_MapInputs/ B002_MapOutputs)、参数(B005_Parameters)、模式(M001_Modes)、连锁(zB100_Interlocks_PRBA)、基本动作(zS021_SkidIndexIn ~ zS905_SkidJogRev)及ARMORSTART 的控制(zV_PRB
_AB284VFD)等例程。而这些例程就是一个个模块程序,在其他类型设备的控制程序中也可以得到广泛的应用。
4.1 标签的模块化设计
利用RSLogix5000的控制器标签和程序标签的控制域不同及用户可以自定义数据结构体的特点。程序标签采用了模块化的设计方法。首先,将程序中所需要的变量统计好,按照共同属性分类建立出所需要的数据结构体。然后,在标签中建立程序中所需要的標签并选择对应的数据类型。标签的建立是以所有设备通用性所建立的,在别名标签一列填的才是具体设备的名称。这样的设计使得建立好一个设备的模板程序后,其他此类设备的控制程序可以直接使用这个模板程序,只需将标签别名按照需要修改,不需要修改程序。如果是按照一个设备所建立的标签则应用此模板程序时需要重新建立标签,然后按照标签修改各个例程,也就称不上为模块化设计了。
4.2 I/O接口程序的模块化设计
在硬件图纸的设计时,已经规定好设备上的各传感器的名称和作用。程序编制时将设备的输入点和对应的传感器进行映射,在其他例程中就可以直接使用传感器名称编程。这样的设计使得今后使用此程序的人员方便理解程序。
如图3所示,为B001_MapInputs中的一条语句(Rung),该Rung表示程序中该设备的滑撬点动正转(SkidJogForward)、滑橇进入(SkidIndexIn)、滑橇移出(SkidIndexOut)这三个程序中的虚拟按钮等同于按钮站上的F403PB按钮。此处的设计方式使得在应用此模板时只需将按钮这一点按照需要修改即可,不必将程序中应用到这三个虚拟按钮的点都作相应修改。大大节省了应用此模块的修改时间。
如图4所示为B002_MapOutputs中的两个Rung,一个是将ARMORSTART的输出全部映射到相应的数据区;一个是控制按钮站上相应的指示灯亮灭的Rung。因为用户可以自定义数据结构体,使得可以通过一个指令将多个点映射到对应的数据区,这对模块化设计的使用性有很大的帮助。
4.3 设备动作程序的模块化设计
根据本项目的机运设备单元的功能特点,共设计出26个对应设备单元的电气单元模块。其中绝大部分都包含了双向变频滚床的动作,一个双向变频滚床包含以下6个基本动作:
滑橇进入SkidIndexIn;滑橇反向进入SkidReverseIn;滑撬点动正转SkidJogForward;滑橇移出SkidIndexOut;滑橇反向移出SkidReverseOut;滑撬点动反转SkidJogRevers。
其他设备是在双向变频滚床的动作基础上增加相应的动作,如转台多了正转、反转,移行机多了移行机前进、后退,升降机多了上升、下降等动作。这样我们将这些不同的动作分别设计出相应的控制程序模块,当设计不同类型的设备的控制程序模块,然后通过程序中的主例程对它们进行调用。
4.4 变频控制程序的模块化设计
在I/O接口模块设计中提到其中一个Rung是将ARMORSTART的输出全部映射到相应的数据区。专门为这些ARMORSTART的输出设计了一个例程,用于PRB(Power Roll Bed滚床)变频控制。ARMORSTART的变频控制有Present Freq、Comm Port、4-20mA Input等多种形式,我们采用的是Present Freq的控制方式。首先在ARMORSTART的参数配置中将Parameter 138 (Speed Reference)选择Option 4 (Preset Freq)、Parameter 151 (Digital In1 Sel)选择Preset Freq、Parameter 152 (Digital In2 Sel)选择Preset Freq。这种控制方式的基本原理是通过“DrvIn2-DrvIn”的组合:“0-0”= Preset Frequency 1;“0-1”= Preset Frequency 2;“1-0”= Preset Frequency 3;“1-1”= Preset Frequency 4。同样,我们在ARMORSTART的参数配置中将Parameter 170 —Parameter 173 (Preset Frequency 0—3)这四个参数设定成我们想要的4个速度的频率(0~50Hz)。
因为硬件的模块化设计使得每个设备上相同位置的检测开关的作用相同,因此只需将限定条件设计成模板程序,当输送的橇体到不同的位置时使得“DrvIn2-DrvIn”发生变化。
通过上面的介绍不难发现,硬件高度采用了模块化的设计,使得设备规范化和统一化。利用这一特点再对程序进行模块化的编制使得做好模块程序后,可以按照各类设备的特点组合成各类设备的模板程序。
5 模块化设计的实际应用
在按照上述方法编制出模板程序后,设计人员可以简单、快速、正确的编制出相同设备的控制程序。以控制系统中一台变频滚床为例,编制程序的步骤如下:
观察模板程序的程序标签,确定需要添加别名标签的数量和数据结构体;在控制器标签列表中添加控制器标签(并注意数据结构体类型应当与程序标签中的数据结构体类型一致);)在程序标签中列表中添加别名标签;在例程中修改设备的操作按钮名称及指示灯名称;在例程中修改设备的Offset值、ASCⅡ值,用于在人机界面上的显示。
对于变频滚床来说,每一个滚床的程序都只需通过模板程序进行以上五步修改即可完成。如果只有一两个滚床,这种设计并看不出任何优势,但是据统计本项目共有222台滚床,通过重复的、简单的修改就可完成以往设计人员需要很长时间才能完成的工作量,这就体现了模块化设计的优势。
6 结语
通过介绍可以感受得到,模块化设计大大提高了设计效率、减少了设计师的劳动负荷、缩短了设计周期,通过多种模块程序的组合可以快速的制作多种产品的模板程序,具有更高的一致性、互换性,从而提高了设计质量及日后的维护和检修。大规模定制已成为现代制造业的主流生产模式,随着人们对个性化产品的要求越来越高,市场竞争日益激烈,企业迫切需要切实可行的产品设计方法。具有多重突出优势的模块化设计在当今这样一个高速发展、讲究效率的社会中势必会得到发展和普及。随着模块化设计理念的广泛应用和不断发展,它将改变我们将来的生产方式,提高产品的质量。
参考文献:
[1] 童时中.模块化原理设计方法及应用[M].北京:中国标准出版社,2001:05.
[2] 郭岚,张祥建,徐晋. 模块化的微观结构与风险特性:基于产业集群的分析[J]. 科研管理. 2008(05)
[3] 苗建军,曹江涛,孙剑. 模块网络:产业集群发展的新阶段[J]. 科技进步与对策. 2008(01)
[4] 戴魁早. 产业组织模块化研究前沿探析[J]. 外国经济与管理. 2008(01)
[5] 邓雪琴. 论珠三角产业集群发展模式的转型[J]. 商业时代. 2007(26)