基于UML方法和SFC的龙门码垛机器人软件控制系统设计
2021-09-14谭玉良蒋涛涛叶舒颜
谭玉良,闫 立,蒋涛涛,叶舒颜
(蚌埠凯盛工程技术有限公司 ,蚌埠 233000)
在现代生产中,工业码垛机器人逐步演变成新时代的机电一体化高科技产品,对于企业提高生产效率、保障产品质量、降低生产成本和改善工作环境上起着很大的作用。而码垛机器人的主要功能则是通过软件控制系统来实现的,现在要求码垛机器人的软件控制系统必须具有可移植性、开放性、可扩展性,以适应码垛不同规格的物品[1]。因此,码垛机器人软件控制系统设计的重要性显得十分突出。
目前,系统软件设计的建模方法主要有功能分解法、数据流法、信息建模法和面向对象法,其中,面向对象法通过建立对象与问题域的完整映射如实反映问题域中事物的关系,主要设计的方法有面向对象系统设计方法(Booch),对象建模技术(OMT),面向对象的软件工程(OOSE)和UML[2]。此外,UML方法是其他三种面向对象法的统一方法,是一种面向对象开发的通用语言[3]。同时,编程语言也是控制软件设计不可或缺的一部分。在实际应用中发现,对实施相同的顺序控制,顺序功能图SFC采用工艺流程编译的方法进行编程,相对应梯形图(LD)程序而言,具有程序开发周期短、程序工艺过程清晰、语法规则精炼和可扩展性等优点[4],另外SFC可以有效解决PLC软件规模膨胀、LD编写困难的问题。
1 基于UML的龙门码垛机器人软件控制系统建模
1.1 系统需求分析
龙门码垛机器人软件控制系统的功能需求包括4个方面:基本控制、参数设置、人机交互和作业保护。1) 基本控制:该功能需求主要以自动码垛为核心,包括纸箱运输节拍控制、推箱节拍控制、气缸动作控制、托盘输送装置控制、光电信号检测和系统通讯控制等。2) 参数设置:配方选择、码垛层数设置和执行件运动速度设置。3) 人机交互:监控运行状态、监控输入信号、显示生产信息等。4) 作业保护:防止生产错误或执行误操作和防止设备运行时人员进入非安全区等。
1.2 静态建模
通过上述需求分析,可建立软件系统的静态模型[5]。静态模型从系统内部结构和静态角度描述系统,约束和限定系统功能范围[6]。静态建模主要用到UML提供的用例图、类图等视图。首先建立用例图,辨别出系统外界的参与者和系统边界,指出角色与角色、角色与用例和用例与用例之间的关系,然后建立类图,呈现出参与者和用例之间的关系。
在对龙门码垛机器人软件控制系统编程中,主要涉及到角色有托盘管理员角色、物品送入系统角色、物品送出系统角色和码垛机组管理员角色,涉及到用例有托盘供给用例、物品供给用例、设备维护用例和物品码垛用例。不同的角色与控制软件系统有不同的交互功能,其中,托盘管理员能够向码垛机器人提供空托盘,保证托盘输送线中存有空托盘;物品送入系统能够向码垛机器人输送需要码垛的同种规格的物品;物品送出系统能够在物品被码垛完毕后接收码垛好的物品,移入仓库系统中;码垛机组管理员主要负责设备维护,及监督物品送入系统和物品送出系统的运行状态,监督托盘输送状态,保证码垛机组良好的运行状态。综上所述,建立如图1所示的龙门码垛机器人软件控制系统用例图。
图1中的物品码垛用例是整个系统软件的核心功能,为了分析其内部具体的组成结构和相互关系,将内部结构及关系抽象成类[7],建立如图2所示的龙门码垛机器软件控制系统类图。根据图2分析,龙门码垛机器软件控制系统领域主要涉及到码垛机组管理员类、码垛装置类、物品输送装置类、推箱装置类、托盘输送装置类、物品类、托盘类、HMI类和PLC类。
其中码垛机组管理员类主要监控整个码垛机器人控制运行;物品输送装置类主要能够根据物品的属性和码垛物品摆放要求,具有物品输送节拍、物品输送速度和物品输送个数等属性,也可对物品进行转箱、挡箱、输送和计数等操作;推箱装置类主要读取PLC类地址寄存器中的数值进行推箱处理,具有推箱节拍、推箱速度和地址寄存器数值等属性,对输送摆放好的物品进行整排推箱、置位和复位地址和计数推箱次数等操作;托盘输送装置类主要根据托盘的属性具有输送托盘速度和托盘码垛工位信息检测等属性,并可对执行输送托盘到码垛工位等操作;码垛装置类根据物品和托盘属性,具有码垛层数、码垛速度和地址寄存器数值等属性,可具有接受和码垛单层物品、置位和复位地址寄存器和计数当前层数等操作;PLC类主要控制物品输送装置类、推箱装置类、托盘输送装置类和码垛装置类运行,具有运算速度、控制点数、兼容性和稳定性等属性,对三个装置类进行参数设置和运动实时计算等操作;HMI类主要与PLC类相互通信,具有检测码垛机器运行状态、设置控制参数和报警等操作。
1.3 动态建模
动态模型主要用于描述系统的动态行为,动态建模主要用到UML提供的序列图、合作图、状态图和活动图等四种视图。其中,序列图是描述软件系统动态模型的主要手段[8],故这里拟建立龙门码垛机器软件控制系统的序列图,用来描述其对象之间交互消息传递的时序关系。首先简述序列图的定义:
设序列图OSD=(OS,LS,Σ,f),其中:
1)OS表示系统对象集合,即系统中的每个对象为集合的元素;
2)AOLS表示全部对象位点集合,AOLS={θ(n),θ∈OS∧n∈SL(θ),n∈N},其中,θ(n)表示对象θ生命线上发送或接受消息的点,即位点,SL(θ)表示单个对象θ的位点集合;
3)Σ表示对象消息集合,其语法格式为{[NO.][MN][PL]},其中[NO.]表示消息序号,[MN]表示消息名,[PL]表示参数列表,[PL]可缺省;
4)f表示消息与位点之间的映射,f:Σ×{msnd,mred}→AOLS,其中msnd,mred表示消息的发送和接受。
从静态模型中可以看出龙门码垛机器软件控制系统以PLC对象为核心,主要与其交互的有托盘输送装置对象、物品输送装置对象、推箱装置对象和码垛装置对象。现以与PLC对象交互为基础,遵循上述定义原则,可对软件控制系统进行如下描述:
1)托盘输送装置对象-PLC对象:码垛控制系统运行前,PLC对象采集托盘码垛工位信息,若码垛工位无信息,则PLC对象向托盘输送装置对象发送信息,并弹出消息框,等待托盘输送到位,若码垛工位有信息,则PLC对象发送空指令信息,使托盘输送装置对象等待下一个指令信息;
2)物品输送装置对象-PLC对象:托盘输送到位后,PLC对象根据物品输送装置对象采集的物品送入信息和PLC对象内部算法,向物品输送装置返回转箱信息或不转箱信息;之后,挡箱光电信息检测到物品到位信息并向PLC对象发送其信息后,PLC对象根据内部算法向挡箱装置对象返回挡箱信息或不挡箱信息;
3)推箱装置对象-PLC对象: PLC对象采集挡箱光电计数信息和挡箱光电下降沿信息后,读取内部地址寄存器值进行整排推箱,将整排物品推至托架上或缓冲区中,其中,每推箱一次,PLC内部地址寄存器0和地址寄存器1的值同时加1;
4)码垛装置对象-PLC对象:当地址寄存器1值为2时,PLC对象向码垛装置对象发送码垛信息,码垛装置对象首先将整层物品和托架移至一定高度后向PLC对象发送到位信息,PLC对象接收到位信息并返回将整层物品和托架水平移至码垛工位的信息。PLC对象采集水平到位信息后再次返回夹紧信息,用于托架上物品的整形,之后码垛装置对象向PLC对象返回物品夹紧整形信息,最后,PLC对象向码垛装置对象返回托架复位信息进行托架恢复到码垛之前状态。待托架复位之后,码垛装置对象向PLC对象发送更新信息,用于复位PLC对象内部算法程序。
2 基于SFC的龙门码垛机器人控制软件程序设计
IEC61131-3[9,10]从公共元素和编程语言两个方面对PLC的编程进行了规范,且定义了SFC为编程语言的公共元素和拓扑程序框架[11],属于图形编辑模式。在程序设计中,步进点、转移条件和动作是SFC必要元素[12],步进点只有在转移条件成立时才能转移到其他步进点。
在图3中,UML序列图中对象c向对象d发送i:消息后,对象n由状态e转移到状态f中,对象d的动作发生改变。在SFC中,当转移条件XI成立后,原步进点SA及其伴随动作被清除,步进点SB及其伴随动作被驱动,控制动作发生改变。经分析后可得,UML序列图和SFC的状态或动作的转换都是在某一条件成立的情况下进行的。因此,序列图与SFC有着内在转换关系,序列图中对象d的状态可转换成SFC的步进点及其伴随动作,序列图中的i:消息可转换成SFC中的转移条件XI。故可从龙门码垛机器软件控制系统序列图中抽取相应的各个装置对象的SFC。
根据对软件控制系统的描述,PLC对象采集托盘输送装置对象的托盘码垛工位信息时,PLC对象会根据采集信息返回供于托盘输送装置对象进行选择分支的信息,控制码垛装置对象执行不同的动作。所以,在从UML中序列图中抽取SFC时,托盘码垛工位信息可转换成SFC中的转移条件,控制托盘装置对象转移到不同的步进点中,并有不同的伴随动作。这个控制流程可用SFC表示成如图4所示,PLC型号选择DVP-ES系列。
按照上述分析方法,可分别从完整的码垛机器人软件控制系统的UML序列图中可抽取物品输送装置对象、挡箱装置对象和码垛装置对象的顺序功能图SFC,如图5,图6和图7所示,其中,挡箱装置对象的动作分为前挡箱和后挡箱。各装置对象的SFC程序参数意义解释如表1所示。
为了便于主程序设计和修改,可将上述四个SFC程序转换成LD,进行封装成程序模块,分别为托盘输送程序模块、物品输送程序模块、挡箱程序模块和码垛程序模块。依据UML动态模型交互关系以及程序初始化条件,可汇编龙门码垛机器人软件控制系统的主控制程序框架,SFC,如图8所示,其中S11为托盘输送程序模块,S12为物品输送程序模块,S13为挡箱程序模块,S14为码垛程序模块。
表1 各装置对象的SFC程序参数意义解释
3 联合调试
经上述设计方法开发出的龙门码垛机器人软件控制系统,在投入生产运行之前需进行硬软件的联合调试。调试环境是在某矿泉水公司,在其实际工作环境下进行调试,调试的内容主要是针对物品转箱调试、物品挡箱调试、物品推箱调试和物品码垛调试。
物品输送调试主要是对进入输送线前端的物品进行转箱调试,即调节旋转装置伸出的位移使物品旋转到合理角度。如图9,物品旋转至90°。物品挡箱调试主要是依据码垛物品摆放要求以及物品的型号,修改内部算法来调整挡板位置,实现前挡箱动作和后挡箱动作。物品推箱调试主要是基于PLC内部算法,调试推箱距离使得单排物品被推至托架上或缓冲区,防止单排物品推至非工作区。物品码垛调试主要是调试托架在码垛和托架复位时运行平稳,使得托架上单层物品能够较准确无错误的在码垛工位处进行码垛,如图10所示。
经上述硬软件调试后,各个程序模块都达到了所设定的控制功能要求,龙门码垛机器软件控制系统运行稳定,达到了预期效果,也验证了该文所提出设计方法的可靠性和合理性。
4 结 论
提出了一种基于UML方法和SFC的龙门码垛机器软件控制系统设计方法,得到了以下结论:
a.基于软件控制系统的需求分析,建立了龙门码垛机器软件控制系统的UML静态模型和UML动态模型,分别描述软件控制系统的静态结构和动态行为。
b.基于建立的系统静态模型和动态模型,采用PLC图形编辑形式的顺序功能图SFC从UML模型中抽取各个装置对象的动作程序,然后封装成块,设计龙门码垛机器人软件控制系统的主程序,实现软件控制系统的所有控制功能。
c.经龙门码垛机器人的硬软件联合调试,龙门码垛机器软件控制系统达到了所设定控制功能要求。