1、 机械手控制系统制作本实训介绍机械手控制系统的组态过程,详细讲解如何应用MCGS组态软件完成一个工程。本样例工程中涉及到动画制作、控制流程的编写、变量设计、定时器构件的使用等多项组态操作。结合工程实例,对MCGS组态软件的组态过程、操作方法和实现功能等环节进行全面的讲解,使学生对MCGS组态软件的内容、工作方法和操作步骤在短时间内有一个总体的认识。工程最终效果图如下: 图1 机械手控制系统界面3.1工程分析在开始组态工程之前,先对该工程进行剖析,以便从整体上把握工程的结构、流程、需实现的功能及如何实现这些功能。工程框架:n 1个用户窗口:机械手控制系统n 定时器构件的使用n 3个策略:启动策略
2、、退出策略、循环策略数据对象: 图形制作:机械手控制系统窗口n 机械手及其台架及工件n 启动和复位按钮n 上移、下移、左移、右移、启动、复位指示灯流程控制:按启动按钮后,机械手下移5S夹紧2S上升5S右移10S下移5S放松2S上移5S左移10S(S为秒),最后回到原始位置,自动循环。松开启动按钮,机械手停在当前位置。按下复位按钮后,机械手在完成本次操作后,回到原始位置,然后停止。松开复位按钮,退出复位状态。安全机制:对工程进行加密3.2建立工程可以按如下步骤建立样例工程:1 鼠标单击文件菜单中“新建工程”选项,如果MCGS安装在D盘根目录下,则会在D:MCGSWORK下自动生成新建工程,默认的
3、工程名为:“新建工程X.MCG”(X表示新建工程的顺序号,如:0、1、2等)2 选择文件菜单中的“工程另存为”菜单项,弹出文件保存窗口。3 在文件名一栏内输入“机械手控制系统”,点击“保存”按钮,工程创建完毕。3.3 制作工程画面3.3.1 建立画面1 在“用户窗口”中单击“新建窗口”按钮,建立“窗口0”。2 选中“窗口0”,单击“窗口属性”,进入“用户窗口属性设置”。3 将窗口名称改为:水位控制;窗口标题改为:机械手控制;窗口位置选中“最大化显示”,其它不变,单击“确认”。4 在“用户窗口”中,选中“水位控制”,点击右键,选择下拉菜单中的“设置为启动窗口”选项,将该窗口设置为运行时自动加载的
4、窗口。如3.3.2 编辑画面选中“水位控制”窗口图标,单击“动画组态”,进入动画组态窗口,开始编辑画面。3.3.3制作文字框图1 单击工具条中的“工具箱”按钮,打开绘图工具箱。2 选择“工具箱”内的“标签”按钮,鼠标的光标呈“十字”形,在窗口顶端中心位置拖拽鼠标,根据需要拉出一个一定大小的矩形。3 在光标闪烁位置输入文字“机械手控制系统”,按回车键或在窗口任意位置用鼠标点击一下,文字输入完毕。4 如果需要修改输入文字,则单击已输入的文字,然后敲回车键就可以进行编辑,也可以单击鼠标右键,弹出下拉菜单,选择“改字符”。1 选中文字框,作如下设置:1 点击(填充色)按钮,设定文字框的背景颜色为:没有
5、填充;2 点击(线色)按钮,设置文字框的边线颜色为:没有边线。3 点击(字符字体)按钮,设置文字字体为:宋体;字型为:粗体;大小为:264 点击(字符颜色)按钮,将文字颜色设为:蓝色。3.3.4 图形的绘制1画地平线:单击绘图工具箱中“画线”工具按钮,挪动鼠标光标,此时呈“十字”形,在窗口适当位置按住鼠标左键并拖曳出一条一定长度的直线。单击“线色”按钮选择:黑色。单击“线型”按钮,选择合适的线型。调整线的位置(按 键或按住鼠标拖动 )。调整线的长短(按Shift和键,或光标移到一个手柄处,待光标呈“十字”形,沿线长度方向拖动)。调整线的角度(按Shift和 键,或光标移到一个手柄处,待光标呈“
6、十字”形,向需要的方向拖动)。线的删除与文字删除相同。单击“保存”按钮。2画矩形:单击绘图工具箱中的“矩形”工具按钮,挪动鼠标光标,此时呈“十字”形。在窗口适当位置按住鼠标左键并拖曳出一个一定大小的矩形。单击窗口上方工具栏中的“填充色”按钮,选择:蓝色。单击“线色”按钮,选择:没有边线。调整位置( 按键盘的 键,或按住鼠标左键拖曳)。调整大小(同时按键盘的 Shift键 和 键中的一个;或移动鼠标,待光标呈横向或纵向或纵向或斜向“双箭头”形,按住左键拖曳)。单击窗口其他任何一个空白地方,结束第1个矩形的编辑。依次画出机械手画面9个矩形部分(7个蓝色,2个红色)。单击“保存”按钮。3.3.5 构
7、件的选取1 机械手的绘制:单击绘图工具箱中的(插入元件)图标,弹出对象元件管理对话框,如图: 图2 机械手构件的选择双击窗口左侧“对象元件列表”中的“其他”,展开该列表项,单击“机械手”,单击“确定”按钮。机械手控制画面窗口中出现机械手的图形。在机械手被选中的情况下,单击“排列”菜单,选择“旋转”“右旋90度”,使机械手旋转90度。调整位置和大小。在机械手上面输入文字标签“机械手”。单击“保存”按钮。2 画机械手左侧和下方的滑杆:利用“插入元件”工具,选择“管道”元件库中的“管道95”和“管道96”,如下图所示,分别画出两个滑杆,将大小和位置调整好。 图3 管道构件的选择3画指示灯:需要启动、
8、复位、上、下、左、右、夹紧、放松8个指示灯显示机械手的工作状态。选用MCGS元件库中提供的指示灯,这里选择“指示灯2”如下图所示,如下: 图4 指示灯构件的选择 画好后在每一个下面写上文字注释。调整位置,编辑文字。单击“保存”按钮。4画按钮:单击画图工具箱的“标准按钮” 工具,在画图中画出一定大小的按钮。调整其大小和位置。3.3.6整体画面最后生成的画面见图1。3.4 定义数据对象前面我们已经讲过,实时数据库是MCGS工程的数据交换和数据处理中心。数据对象是构成实时数据库的基本单元,建立实时数据库的过程也就是定义数据对象的过程。定义数据对象的内容主要包括:1)指定数据变量的名称、类型、初始值和
9、数值范围2)确定与数据变量存盘相关的参数,如存盘的周期、存盘的时间范围和保存期限等。在开始定义之前,我们先对所有数据对象进行分析。在本样例工程中需要用到以下数据对象:下面以数据对象“垂直移动量”为例,介绍一下定义数据对象的步骤:1 单击工作台中的“实时数据库”窗口标签,进入实时数据库窗口页。2 单击“新增对象” 按钮,在窗口的数据对象列表中,增加新的数据对象,系统缺省定义的名称为“Data1”、“Data2”、“Data3”等(多次点击该按钮,则可增加多个数据对象)。3 选中对象,按“对象属性”按钮,或双击选中对象,则打开“数据对象属性设置” 窗口。4 将对象名称改为:垂直移动量;对象类型选择
10、:数值型;在对象内容注释输入框内输入:“控制构件上下运动的参量”,单击“确认”。按照此步骤,根据上面列表,设置其他14个数据对象。 图5 数据参量的设置3.5 动画连接由图形对象搭制而成的图形画面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。MCGS实现图形动画设计的主要方法是将用户窗口中图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。在系统运行过程中,图形对象的外观和状态特征,由数据对象的实时采集值驱动,从而实现了图形的动画效果。本样例中需要制作动画效果的部分包括:5 按钮的开停及指示灯的变化。2 机械手的动画效果。
11、3.5.1按钮的开停及指示灯的变化1 按钮的动画连接:双击“启动按钮”,弹出“属性设置”窗口,单击“操作属性”选项卡,显示该页,如图所示。选中“数据对象值操作”。单击第1个下拉列表的“”按钮,弹出按钮动作下拉菜单,单击“取反”。单击第2个下拉列表的“?”按钮,弹出当前用户定义的所有数据对象列表,双击“启动按钮”。用同样的方法建立复位按钮与对应变量之间的动画连接。单击“保存”按钮。 图 6 按钮控件的属性设置2 指示灯的动画连接:双击启动指示灯,弹出“单元属性设置”窗口。单击“动画连接”选项卡,进入该页,如图所示。单击“三维圆球”,出现“?”和“”按钮。单击“”按钮,弹出“动画组态属性设置”窗口
12、。单击“属性设置”选项卡,进入该页,如图所示。单击“可见度”选项卡,进入该页,如图所示。在“表达式”一栏,单击“?”按钮,弹出当前用户定义的所以数据对象列表,双击“启动”(也可在这一栏直接输入文字:启动)。在“当表达式非零时”一栏,选择“对应图符可见”,如图所示。 图7 指示灯控件的动画组态设置 图8 指示灯控件的单元组态设置图9 指示灯控件的单元组态可见度设置 单击“确认”按钮,退出“可见度”设置页。 单击“确认”按钮,退出“单元属性设置”窗口,结束启动指示灯的动画连接。单击“保存”按钮。按照前面的步骤,依次对其它指示灯进行设置。3.5.2 构件移动动画连接1垂直移动动画连接。单击“查看”菜
13、单,选择“状态条”,在屏幕下方出现状态条,状态条左侧文字代表当前操作状态,右侧显示被选中对象的位置坐标和大小。在上工件底边与下工件底边之间画出一条直线,根据状态条大小指示可知直线总长度,假设为72个像素。在机械手监控画面中选中并双击上工件,弹出“属性设置”窗口。在“位置动画连接”一栏中选中“垂直移动”。单击“垂直移动”选项卡,进入该页,如图所示,在“表达式”一栏填入:垂直移动量。在垂直移动连接栏填入各项参数,意思是:当垂直移动量=0时,向下移动距离=0;当垂直移动量=25时,向下移动距离=72。单击“确认”按钮,存盘。(垂直移动量的最大值=循环次数*变化率=25*1=25;循环次数=下移时间(
14、上升时间)/循环策略执行间隔=5s/200ms=25次。变化率为每执行一次脚本程序垂直移动量的变化,本例中加1或减1。) 图10 下杆垂直运动量的设置2 垂直缩放动画连接。选中下滑杆,测量其长度。在下滑杆顶边与下工件顶边之间画直线,观察长度。垂直缩放比例=直线长度/下滑杠长度,本例假设为200。选中并双击下滑杆,弹出属性设置窗口,单击“大小变化”选项卡,进入该页,如图所示设定。变化方向选择向下。变化方式为缩放。输入参数的意义:当垂直移动量=0时,长度=初值的100%;当垂直移动量=25时,长度=200%。 图11 下杆垂直缩放的设置3 水平移动动画连接。在工件初始位置和移动目的地之间画一条直线
15、,记下状态条大小指示,此参数即为总水平移动距离,假设移动距离为180。脚本程序执行次数=左移时间(右移时间)/循环策略执行间隔=10s/200ms=50次。水平移动量的最大值=循环次数*变化率=50*1=50,当水平移动量=50时,水平移动距离为180。按图对右滑杆、机械手、上工件分别进行水平移动动画连接。参数设置的意思是:当水平移动量=0时,向右移动距离为0;当水平移动量=50时,向右移动距离为180。 图12 左杆水平移动的设置4 水平缩放动画连接。估计或画线计算左滑杆水平缩放比例,假设为300。按图所示设定参数。填入各个参数,并注意变化方向和变化方式选择。当水平移动参数=0时,长度为初值
16、的100%;当水平移动参数=50时,长度为300%。单击“确认”按钮,存盘。 图13 左杆缩放设置5 工件移动动画的实现。选中下工件,在“属性设置”页中选择可见度。进入“可见度”页,在表达式一栏填入:工件夹紧标志;当表达式非零时,选择:对应图符不可见。意思是:当工件夹紧标志=1时,下工件不可见;工件夹紧标志=0时,下工件可见。选中并双击上工件,将其可见度属性设置为与下工件相反,即当工件夹紧标志非零时,对应图符可见。存盘调试。3.5.3 控制程序的编写1 定时器的使用。单击屏幕左上角的工作台图标,弹出“工作台”窗口。单击“运行策略”选项卡,进入“运行策略”页,如图所示。选中“循环策略”,单击右侧
17、“策略属性”按钮,弹出“策略属性设置”窗口,如图所示。在“定时循序执行,循环时间ms”一栏,填入200。单击“确认”按钮。选中“循环策略”,单击右侧“策略组态”按钮,弹出“策略组态:循环策略”窗口。单击“工具箱”按钮,弹出“策略工具箱”,如图所示。在工具栏找到“新增策略行”按钮,单击,在循环策略窗口出现了一个新策略,如图所示。在“策略工具箱”选中“定时器”,光标变为小手形状。单击新增策略行末端的方块,定时器被加到该策略,如图所示。定时器的功能分为,启停功能:在需要的时候被启动,在需要的时候被停止。计时功能:启动后进行计时。计时时间设定功能,即可以根据需要设定时计时。状态报告功能:即是否到设定时
18、间。复位功能,即在需要的时候重新开始记时。对定时器属性设置。双击新增策略行末端的定时器方块,出现定时器属性设置。如图所示。 图14 计时器值的设定在“设定值”栏填入:12,代表设定时间为12s。在“当前值”栏,填入:计时时间。或单击对应“?”按钮,在弹出的变量列表中双击“计时时间”。至此,“计时时间”变量值将代表定时器计时时间的当前值。在“计时条件”一栏,直接或操作“?”按钮填入:时间到。则计时时间超过设定时间时,“时间到”变量将为1,定时器开始计时;为0时,停止计时。在“复位条件”一栏,填入:定时器复位。代表该变量为1时,定时器复位。在“计时状态”一栏,直接或操作“?”按钮填入:时间到。则计
19、时时间超过设定时间时,“时间到”变量将为1,否则为0。在“内容注释”一栏,填入:定时器。单击“确认”按钮,退出定时器属性设置。保存。3.5.4 利用定时器和脚本程序实现机械手的定时控制1 脚本程序基本语句。共有四种语句。赋值语句的形式为:数据对象=表达式。赋值语句用赋值号(“=”)来表示,它具体的含义是:把“=”右边表达式的运算值赋给左边的数据对象。赋值号左边必须是能够读写的数据对象,如:开关型数据、数值型数据、事件型数据以及能进行写操作的内部数据对象。而组对象、事件型数据、只读的内部数据对象、系统内部函数以及常量,均不能出现在赋值号的左边,因为不能对这些对象进行写操作。条件语句:条件语句有如
20、下三种形式:If 表达式 Then 赋值语句或退出语句If 表达式 Then 语句EndIfIf 表达式Then 语句Else 语句EndIf条件语句中的四个关键字“If”、“Then”、“Else”、“Endif”不分大小写。如拼写不正确,检查程序会提示出错信息。条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套,为编制多分支流程的控制程序提供了可能。“IF”语句的表达式一般为逻辑表达式,也可以是值为数值型的表达式,当表达式的值为非0时,条件成立,执行“Then”后的语句,否则,条件不成立,将不执行该条件块中包含的语句,开始执行该条件块后面的
21、语句。值为字符型的表达式不能作为“IF”语句中的表达式。退出语句:退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。2 回到组态环境,进入循环策略组态窗口,如图所示。 单击工具栏“新增策略行”按钮,在定时器下增加一行新策略。选中策略工具箱的“脚本程序”,光标变为手形。单击新增策略行末端的小方块,脚本程序被加到该策略。双击“脚本程序”策略行末端的方块。出现脚本程序编辑窗口。输入如下的程序清单。 图15 程序策略的组态程序清单如下:IF 下移=0 THEN垂直移动量=垂直移动量+1ENDIFIF 上移=0
22、 THEN垂直移动量=垂直移动量-1ENDIFIF 右移=0 THEN水平移动量=水平移动量+1ENDIFIF 左移=0 THEN水平移动量=水平移动量-1ENDIFIF 启动=1 AND 复位=0 then 定时器复位=0定时器启动=1ENDIFIF 启动=0 THEN 定时器启动=0ENDIFif 复位=1 and 计时时间44 then定时器启动=0endifif 定时器启动=1 thenif 计时时间5 then下移=0exitendifif 计时时间=7 then夹紧=0下移=1exitendifif 计时时间=12 then上移=0工件夹紧标志=1exitendifif 计时时间=22 then右移=0上移=1exitendifif 计时时间=27 then下移=0右移=1EXITENDIFIF 计时时间=29 THEN放松=0下移=1EXITENDIFIF 计时时间=34 THEN上移=0放松=1工件夹紧标志=0EXITENDIFIF 计时时间44 THEN左移=1定时器复位=1垂直移动量=0水平移动量=0EXITENDIFENDIFIF 定时器启动=0 THEN下移=1上移=1左移=1右移=1ENDIF。机械手控制系统设计结束,需要说明的是,本书介绍的设计方法并不是唯一的,也不是一定最好的。