视窗式光机电一体化设备动作流编辑系统
技术领域
本发明提供一种自动设备的动作流编辑系统,更具体而言是指视窗式光机电一体化设备动作流编辑系统。
背景技术
光机电一体化自动设备是由嵌入式程序控制的半自动/全自动控制系统,如汽车工厂的装配作业机器人、半导体硅晶片工厂的多机器臂(多轴)自动化生产设备,全自动生化分析仪。由软件系统、电气系统、机械系统、流体管路系统组成。软件系统通过电路系统采集外界信息(如光电传感器,机械开关,温度,压力,颜色等),经过自身控制逻辑运算处理,通过电路控制系统来控制机械系统和流体管路系统,以高度的智能精确严密地完成复杂的运动控制行为。一台设备为了其自身业务功能的需要,需要具备多项自动处理流程。比如,一台医学核磁共振机,既要设计出做患者头部影像采集的流程,又要设计出做患者胸部影像采集的流程。这些流程由设备的多个工作单元(工作轴,开关电控单元等)在时间和空间上有序的配合协调动作,共同完成一项复杂的工作流程。随着技术进步和市场竞争的激烈化,设备构成越来越趋于复杂化,多运动单元自动设备由一些不同特征的多个单元构成。比如,一台全自动生化分析仪,通常有10~20个步进或伺服电机,同时还有许多开关控制单元(如抓手,阀门,泵),还有许多直流电机驱动的单元(如传输带、供样器)组成。
机械/结构工程师需要对光机电自动化设备的各项功能去设计其动作流程,也就是,为了完成该项功能,合理设计各个单元在时间上的动作,单元之间的动作互斥和衔接关系,并定义该流程执行过程中的动态检测内容,使得各种不同情况下机器能够智能的做出不同的动作响应。
机械(结构)工程师在设计结构时,有各种各样的CAD制图工具辅助其进行三维的制图设计。而设计工作流程的时候,目前没有任何直观的工具来描述机器的各个单元该如何在时间和空间上配合来完成该流程。
光机电一体化自动设备在现有开发方式上,机械/结构工程师将自己的设计意图以自然语言或者其它形式语言表达出来,然后和软件工程师进行会议讲解沟通,软件工程师再根据其理解去设计软件并编写运动控制逻辑代码(常用的有PLC可编程逻辑阵列,嵌入式系统C语言运动控制程序,根据所采用的具体硬件平台而不同,这些均需要很高的专业知识和综合技能)。现实情况下,由于软件工程师和机械/结构工程师之间客观存在的专业分工差异以及各自的领域经验的不同,使得双方间的沟通无法完全透彻、精准严密地完成,因而到目前为止,自动控制设备(如产业机器人、多功能机器臂)的开发存在研发周期长,成本大,责任分割困难的问题。
不同的软件开发商的软件体系结构各不相同,即使同一开发商内部,其软件结构也随工程师而存在较大的个体差异。在使用自然语言进行沟通时,地方性语言的特性(方言),语言表达习惯,结构工程师之间也同样存在较大的个体差异。而且,使用自然语言无法精确严密的描述动作流程以及每个动作的详细。
再者,光机电一体化设备由于其本身构造的复杂性和宽多个专业领域的特征,开发初期,设备运动控制的细节本身也确实很难明确定义出来,需要在设计、研讨,试研制,试运行的各个作业环节中不断进行调整和改良。绝大多数情况下,变更都涉及到软件担当方的软件程序代码修改,属于人工作业,既要投入较大的人力成本,还会受到入软件开发作业中的软件错误的干扰。
发明内容
本发明的主要目的在于提供视窗式光机电一体化设备动作流编辑系统,本发明为自动化设备的机械/结构工程师在本发明提供的系统的编辑装置的X-Y纵横网格界面上以图形制图方式绘制运动动作,设计图面纵轴(Y轴)为各个运动单元,横轴(X轴)为时间,X轴刻度单位为50毫秒或者100毫秒(可设置),对各运动单元在时间轴上绘制动作信息,从而设计出各运动单元有序配合进行协调动作的机器动作流数据。
本发明的又一目的是为工程师提供一套对动作流设计图进行错误检查的分析器。通过对设计图进行预先分析计算,存在碰撞或部件损坏的危险场面被检测出,以避免存在运动干涉的动作流图在机器上试运行时发生碰撞损坏昂贵的零配件。
本发明的再一目的提供一个有效的解决方案来将机械/结构工程师和软件工程师之间的沟通量降至最少程度。
本发明的又一目的提供一个将工程师所设计出来的动作流图转换生成C/C++源代码文件的代码生成装置。对于软件开发担当者而言,不再需要理解动作流的图面所表达的内容,更不需要理解空间时间上动态运行的各个单元的运动配合关系,甚至都不用理解生成的程序代码文件中的函数/数组定义/变量定义的具体含义。唯一需要做的就是将其导入软件工程项目中进行编译链接,并安装到目标机器中启动流程运行。这样一来,面向同一开发项目的不同领域担当者之间的沟通风险大大降低,沟通量大大减少,大大提高开发效率。
本发明采用的技术方案为:视窗式光机电一体化设备动作流编辑系统,包括,
一动作流编辑装置,该动作流编辑装置用于表达时间轴上各个单元的动作状况、用于表达对每个驱动电机的动作描述和控制参数、用于表达每个开关单元的动作。
一错误检查装置,该错误检查装置使用运动干涉条件表来检查利用该动作流编辑装置编辑出来的动作流是否存在错误,并分析各个单元的每一动作是否存在满足了干涉条件的其它运动单元的位置状态或者其它开关单元的逻辑状态,并将满足了干涉条件的各个动作以及其干涉错误信息显示出来,提示人工修改动作流。
一源代码生成装置,该源代码生成装置用于将该动作流编辑装置产生的动作流数据转换生成C/C++语言源程序代码。
该源代码生成装置能够将动作流图中的每个动作转换成C/C++语言编码的源程序代码,生成的代码包含如下信息:封装动作流的启动,运行,停止等操作的C++类,表达各个单元的动作信息(含动作时刻,动作名称,动作函数体名称,位置参数速度参数)的数组定义,表达各个动作函数的函数声明和函数实体。
该动作流编辑装置使用X-Y的二维表格来表达时间轴上得各个单元的动作,比如,Y用于表示运动单元,而X用于表示时间。
该驱动电机为脉冲电机或伺服电机。
该动作流编辑装置,以文字或涂色来描述开关单元的开、关动作,比如,用ON来表示开关单元的开启,用OFF来表示开关单元的闭合。
本发明的有益效果为:本发明在结构包括,一动作流编辑装置,一错误检查装置及一源代码生成装置,该动作流编辑装置用于表达时间轴上各个单元的动作状况、用于表达对每个驱动电机的动作描述和控制参数、用于表达每个开关单元的动作。一错误检查装置,该错误检查装置使用运动干涉条件表来检查利用该动作流编辑装置编辑出来的动作流是否存在错误,并分析各个单元的每一动作是否存在满足了干涉条件的其它运动单元的位置状态或者其它开关单元的逻辑状态,并将满足了干涉条件的各个动作以及其干涉错误信息显示出来,提示人工修改动作流。一源代码生成装置,该源代码生成装置用于将该动作流编辑装置产生的动作流数据转换生成C/C++语言源程序代码。
本发明为自动化设备的机械/结构工程师在本发明提供的系统的编辑装置的X-Y纵横网格界面上以图形制图方式绘制运动动作,设计图面纵轴(Y轴)为各个运动单元,横轴(X轴)为时间,X轴刻度单位为50毫秒或者100毫秒(可设置),对各运动单元在时间轴上绘制动作信息,从而设计出各运动单元有序配合进行协调动作的机器动作流数据。
本发明为工程师提供一套对动作流设计图进行错误检查的分析器。通过对设计图进行预先分析计算,存在碰撞或部件损坏的危险场面被检测出,以避免存在运动干涉的动作流图在机器上试运行时发生碰撞损坏昂贵的零配件。
本发明提供一个有效的解决方案来将机械/结构工程师和软件工程师之间的沟通量降至最少程度。
本发明将工程师所设计出来的动作流图转换生成C/C++源代码文件的代码生成装置。对于软件开发担当者而言,不再需要理解动作流的图面所表达的内容,更不需要理解空间时间上动态运行的各个单元的运动配合关系,甚至都不用理解生成的程序代码文件中的函数/数组定义/变量定义的具体含义。唯一需要做的就是将其导入软件工程项目中进行编译链接,并安装到目标机器中启动流程运行。这样一来,面向同一开发项目的不同领域担当者之间的沟通风险大大降低,沟通量大大减少,大大提高开发效率。
附图说明
图1为本发明的各装置间的关系方框图
图2为物理碰撞装置冲突的示例图。
图3为某设备的液流管路系统示例图。
图4为C语言代码生成装置处理流程图。
具体实施方式
视窗式光机电一体化设备动作流编辑系统,包括,
一动作流编辑装置,该动作流编辑装置用于表达时间轴上各个单元的动作状况、用于表达对每个驱动电机的动作描述和控制参数、用于表达每个开关单元的动作。
一错误检查装置,该错误检查装置使用运动干涉条件表来检查利用该动作流编辑装置编辑出来的动作流是否存在错误,并分析各个单元的每一动作是否存在满足了干涉条件的其它运动单元的位置状态或者其它开关单元的逻辑状态,并将满足了干涉条件的各个动作以及其干涉错误信息显示出来,提示人工修改动作流。
一源代码生成装置,该源代码生成装置用于将该动作流编辑装置产生的动作流数据转换生成C/C++语言源程序代码。
该源代码生成装置能够将动作流图中的每个动作转换成C/C++语言编码的源程序代码,生成的代码包含如下信息:封装动作流的启动,运行,停止等操作的C++类,表达各个单元的动作信息(含动作时刻,动作名称,动作函数体名称,位置参数速度参数)的数组定义,表达各个动作函数的函数声明和函数实体。
进一步,该动作流编辑装置使用X-Y的二维表格来表达时间轴上得各个单元的动作,比如,X用于表示运动单元,而Y用于表示时间。
该驱动电机为脉冲电机或伺服电机。
该动作流编辑装置,以文字或涂色来描述开关单元的开、关动作。比如,用ON来表示开关单元的开启,用OFF来表示开关单元的闭合
如图1所示,该动作流编辑装置10,提供一个X-Y表格式编辑界面,用来绘制动作流图,该动作流编辑装置10能够根据单元配置信息自动创建空白的工作流图,图面X轴为时间轴,按100毫秒刻度或50毫秒刻度标注时刻刻度值;图面Y轴上依次罗列各个运动控制单元。
用户在工作流图中依次按照单元和时间填入动作名称,标注动作参数。对于步进电机或伺服电机驱动的单元,标注速度参数名称和位置。对于直流电机驱动单元或输出端口控制单元(如阀门、抓手,泵),标注ON/OFF,开/闭,启/停,或者涂色。涂色方式标注比较直观,从动作起点时间到动作结束时间的时间段涂上白色以外的任何颜色即可。
表1
表1标注动作参数后的动作流图,如表1动作流图绘制完成后,用户操作编辑装置的界面将其存入动作流数据文件11,该动作流编辑装置10将表格的各个格子的格式和内容全部保存到该动作流数据文件11,以保证下次用户打开该动作流文件时能够按照同样的界面显示出来。
如图1所示该错误检查装置20,根据机械/结构工程师配置在文件中的运动单元运动干涉配置文件21中的配置信息对动作流数据进行运动冲突错误检测。查出错误时通过人机接口提示错误信息22,即提示具体的错误号码和错误信息。
其错误检查的方法是:从动作流数据文件11中读取各个运动控制单元以及其时间轴上的各个动作,而后对每个动作,根据其运动单元名称从运动冲突配置表中查出该单元的冲突配置清单对于冲突配置清单中的每个冲突配置。
如果它是物理碰撞干涉冲突,则进一步检查碰撞冲突对象的单元在动作启动时刻上的位置状态,如果位置状态符合了碰撞干涉条件,则检测出冲突。
如果它是逻辑状态干涉,则检查干涉对象的单元在动作启动时刻的状态(ON或OFF),若该状态符合了干涉条件,则检测出冲突。
对于已经检查出的冲突,将其错误码和错误信息,以及动作名称,时间轴上时刻显示到人机接口界面上。
物理碰撞装置冲突的示例如图2所示,
表2
表2显示是有物理碰撞冲突错误的设备的动作流图,机器臂B在1.1秒钟的转动的目标位置是位置1,此时,机器臂A已经停留在该位置,冲突检测装置根据机器臂B的1.1秒动作的干涉对象(机器臂A)在干涉位置来检测出运动干涉,提示相应的错误信息给工程师。同样,机器臂A在2.3秒钟的动作,由于其运动轨迹经过注入位置2,而2.3秒时刻机器臂C正在往注入位置2运动途中,此时同样有可能产生机器臂A和机器臂C的碰撞,冲突检测装置按照冲突规则发现此错误并提示工程师修改。
图3为某设备的液流管路系统图。
表3是有逻辑冲突错误的设备的动作流图
表3
在表3的动作流图中,阀门V1在1.7秒钟关闭,而此时泵P1还在泵水中,阀门V2也是关闭状态,这种情况下,泵P1的出口全部处于关闭状态,泵P1工作导致出口部分压力过大,产生泄露或者导致P1泵的过载损坏。运动干涉检测装置对阀门V1的1.7秒的关闭动作进行状态冲突检测时即可发现V1和V2都关闭,P1开,这种状态符合了冲突配置信息文件中关于P1/V1/V2的逻辑冲突条件,因此检测该错误并提示工程师修改动作流图。
如图1所示的该语言源代码生成装置30,其提供一个操作界面,用户在该界面上选择动作流,并设定基本的程序运行特征设定值,装置据此而生成一套C/C++语言源程序代码文件31。
C/C++语言源程序代码源代码按照逻辑单位分成几个部分:
动作时间表定义文件:定义各单元的动作列表数组详细,含动作序号,动作时刻,名称,C函数名称,ON/OFF控制,驱动速度,驱动位置。
动作C函数体定义文件:各个动作的函数实现代码。对于端口开关动作,自动生成的函数体中已经有开关端口的代码。对于脉冲电机驱动的动作,生成脉冲电机控制器的驱动代码,这些代码不依赖于具体的控制器型号,而是调用根据相应驱动程序提供的抽象接口来完成电机运动控制。
动作流的类定义文件:封装该动作流的启动,停止,运行时控制代码。
如图4所示意为C语言代码生成装置处理流程图
流程说明:
从运动单元运动参数配置文件中读取单元参数的配置信息(单元略称,驱动类型,停留位置,驱动速度列表)。
从数据保护与记忆装置中获取用户所指定的动作流图的动作流信息。得到每个单元的动作列表,每个动作,得到其详细信息(速度,位置,端口ON/OFF)。动作的表现形式有颜色涂色,文字标注,对于端口根据颜色涂色来分析出端口ON动作和OFF动作,对于脉冲电机或伺服电机单元,根据文字标注来识别动作及其参数。
对于每个动作进行代码翻译,该动作的相应代码作为字符串追加到代码文件中。
本发明的实施例以及附图只是为了展示本发明的设计构思,本发明的保护范围不应当局限于这一实施例。
通过上面的叙述可以看出本发明的设计目的是可以有效实施的。实施例的部分展示了本发明的目的以及实施功能和结构主题,并且包括其他的等同替换。因此,本发明的权利构成包括其他的等效实施,具体权利范围参考权利要求。