第4章采用MCGS组态软件设计立体仓库监控演示界面4.1基于MCGS仿真实现的意义利用MCGS可视化仿真技术,可以实现满足要求的在仿真界面,能提供一个多角度、多层次的观察仿真过程。计算机上实现工程的模拟测试和仿真,用户可以根据需要直接修改各种仿真参数,从而大大降低了开发费和难度。同时可以通过组态仿真使读者能够设计出更加实用的控制系统,从而可以在较短的时间内,以较少的代价完成较好的效果。基于MCGS组态软件设计的基本步骤可以概括为以下几点:①查看资料,组织材料。②设计窗口。③建立设备管理和构造实时数据库。④制作工程动画和动画连接。⑤编写脚本控制流程程序。⑥整体运行、程序调试。4.2MCGS实现立体仓库工程画面MCGS组态软件所建立的工程由主控窗口、设备窗口、用户窗口、实时数据库窗口和运行策略五部分构成,每一部分分别进行不同的组态设计,完成不同的工作,具有不同的特性。组成MCGS公车各要素间的关系如图4-1所示。图4-1MCGS工程各要素间的关系工程画面的制作是整个工程制作的主要步骤之一,其主要目的是以实际的控制对象为模板通过绘制和动画功能的设置能够实时模拟系统的运行。它是在用户窗口中完成,由新建窗口组建。立体仓库画面制作具体步骤如下:(1)在“用户窗口”中单击“新建窗口”按钮,建立“窗口0”,如图4-2所示:图4-2新建画面窗口(2)选中“窗口0”,单击“窗口属性”,进入“用户窗口属性设置”。(3)将窗口名称改为:“立体仓库”;窗口位置选中“最大化显示”,其它不变,单击“确认”。图4-3画面建立(4)在“用户窗口”中,选中“立体仓库监控系统”,点击右键,选择下拉菜单中的“设置为启动窗口”选项,将该窗口设置为运行时自动加载的窗口。如图4-3所示:最后生成的画面如图4-4所示:图4-4最后生成的组态监视画面4.3MCGS实时数据库的读写实现4.3.1MCGS实时数据库简介MCGS用数据对象来表述系统中的实时数据,用对象变量代替传统意义的值变量。我们把用数据库技术管理的所有数据对象的集合称为实时数据库。实时数据库是MCGS的核心,是应用系统的数据处理中心,系统各部分均以实时数据库为数据公用区,进行数据交换、数据处理和实现数据的可视化处理。设备窗口通过设备构件驱动外部设备,将采集的数据送入实时数据库;由用户窗口组成的图形对象,与实时数据库中的数据对象建立连接关系,以动画形式实现数据的可视化;运行策略通过策略构件,对数据进行操作和处理。4.3.2数据对象的类型在MCGS组态软件中,数据对象有开关型、数值型、字符型、事件型、组对象等五种类型。不同类型的数据对象,属性不同,用途也不同。①开关型:记录开关信号(0或非0)的数据对象称为开关型数据对象,通常与外部设备的数字量输入输出通道连接,用来表示某一设备当前所处的状态,也用于表示MCGS中某一对象的状态,如对应于一个图形对象的可见度状态。②数值型:数值型数据对象除了存放数值及参与数值运算外,还提供报警信息,与外部设备的模拟量输入输出通道连接。数据对象的数值范围是:负数是从-3.402823E38到-1.401298E-45,正数从1.401298E-45到3.402823E38。③字符型:字符型数据对象是存放文字信息的单元,用于描述外部对象的状态特征,其值为多个字符组成的字符串,字符串长度最长可达64KB。④事件型:用来记录和标识某种事件产生或状态改变的时间信息。事件型数据对象的值是19个字符组成的定长字符串,用来保留当前最近一次事件所产生的时刻:“年,月,日,时,分,秒”。⑤组对象:数据组对象是MCGS引入的一种特殊类型的数据对象,类似于一般编程语言中的数组和结构体,用于把相关的多个数据对象集合在一起,作为一个整体来定义和处理。4.3.3立体仓库控制系统数据库的构造MCGS中定义的数据对象的作用域是全局的,像通常意义的全局变量一样,数据对象的各个属性在整个运行过程中都保持有效,系统中的其它部分都能对实时数据库中的数据对象进行操作处理。而数据对象是实时数据库的基本单元。构造实时数据库的过程,就是定义数据对象的过程。通过对2*3立体仓库工作要求的分析,要实现对仓库控制系统的仿真我们需要以下实时数据库及数据对象。如下图4-5所示:图4-5立体仓库部分实时数据库4.4MCGS与PLC设备的通信设备窗口是MCGS系统的重要组成部分,负责建立系统与外部硬件设备的连接,使得MCGS能从外部设备读取数据并控制外部设备的工作状态,实现对应工业过程的实时监控。MCGS实现设备驱动的基本方法是:在设备窗口内配置不同类型的设备构件,并根据外部设备的类型和特征,设置相关的属性,将设备的操作方法。系统运行过程中,设备构件由设备窗口统一调度管理,通过通道连接,向实时数据库提供从外部设备采集到的数据,从实时数据库查询控制参数,发送给系统其它部分,进行控制运算和流程调度,实现对设备工作状态的实时检测和过程的自动控制。MCGS设备目录的分类方法,为了用户在众多的设备驱动中方便快速的找到需要的设备驱动,MCGS所有的设备驱动都是按合理的分类方法排列的,分类方法如图4-6所示:图4-6MCGS设备驱动分类方法在本次设计中,要进行设备通信的步骤是:打开“设备窗口”,双击“设备窗口”,选中设备工具箱,单击设备管理,选中本组态设计中需要的“通用串口父设备”、“西门子S7-200PPI”如图4-7所示:图4-7MCGS中设备通信的选择双击“通用串口父设备”对其设备属性进行编辑,其中“最小采集周期”为200ms,“串口端口号”为“0-COM1”,“数据校验方式”为“2-偶校验”,如图4-8再点击确认:图4-8通用串口父设备的设置双击“PLC-{西门子S7-200PPI}”,对MCGS数据与PLC中的数据进行连接,由于本次设计中需要的输入口、输出口较多,为满足通道要求,需要增加输入输出口,具体步骤为:在PLC-{西门子S7-200PPI}中选中“设置设备内部属性”,选择“增加通道”,根据本次设计的需要,增加合适的通道值,点击确认。增加通道后如图4-9所示:图4-9PLC通道数的增加单击“通道连接”,将MCGS中的按钮输入、显示输出与PLC设备中的输入输出口相联接。如图4-10所示:图4-10PLC与MCGS的通道连接然后单击“设备调试”就可以在线调试了。若“通信状态标志”为0则表示通讯正常,否则MCGS组态软件和西门子S7-200PLC设备通讯失败。如图4-11所示:图4-11PLC与MCGS设备调试4.5监视画面的设定与动画的连接由图形对象搭制而成的图形画面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。MCGS实现图形动画设计的主要方法是将用户窗口中图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。在系统运行过程中,图形对象的外观和状态特征,由数据对象的实时采集值驱动,从而实现了图形的动画效果。本立体仓库的制作的动画效果部分包括:1)库位的库存情况:例如选择库位号并双击,出现属性设置,选择“颜色动画连接”中的“填充颜色”则出现如图4-12所示。在其表达式的“?”中选择需要的实时数据库作为表达式,并使其与库位号库位1传感器建立连接,并添加填充颜色连接。将0对应的颜色改为黄色,即指示灯没指示时的颜色,再次单击“增加”按钮,将1对应的颜色改为红色,即指示灯有指示时的颜色。如图4-12所示:图4-12数据对象填充颜色设置2)按钮的开关的设置:添加数据对象“启动\停止”设置基本属性,并设置好操作属性。本开关设置为“按1松0”。特别要注意的是连接已经建立好的所需要的数据对象。如图4-13所示:图4-13构件的属性设置3)指示灯的颜色变化:以堆垛机左移指示灯为例。双击组态画面中的堆垛机左移指示灯,选中属性设置中的“可见度”,使其与相应数据对象进行连接,在“表达式非零时”框中选择对应图符可见,即表达式=1时,指示灯可见。如图4-14和图4-15所示:图4-14属性设置图4-15可见度设置4.6编制控制流程4.6.1脚本程序的简介脚本程序是组态软件中的一种内置编程语言引擎。当某些控制和计算任务通过常规组态方法难以实现时,通过使用脚本语言,能够增强整个系统的灵活性,解决其常规组态方法难以解决的问题。MCGS脚本程序为有效地编制各种特定的流程控制程序和操作处理程序提供了方便的途径。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。在MCGS中,脚本语言是一种语法上类似Basic的编程语言。可以应用在运行策略中,把整个脚本程序作为一个策略功能块执行,也可以在菜单组态中作为菜单的一个辅助功能运行,更常见的用法是应用在动画界面的事件中。MCGS引入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如:对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。4.6.2立体仓库脚本程序的编制由于MCGS脚本程序是为了实现某些多分支流程的控制及操作处理,因此包括了几种最简单的语句:赋值语句、条件语句、退出语句和注释语句,同时,为了提供一些高级的循环和遍历功能,还提供了循环语句。所有的脚本程序都可由这五种语句组成,当需要在一个程序行中包含多条语句时,各条语句之间须用“:”分开,程序行也可以是没有任何语句的空行。大多数情况下,一个程序行只包含一条语句,赋值程序行中根据需要可在一行上放置多条语句。用比较多的是条件语句。条件语句有如下三种形式:If〖表达式〗Then〖赋值语句或退出语句〗If〖表达式〗Then〖语句〗EndIfIf〖表达式〗Then〖语句〗Else〖语句〗EndIf条件语句中的四个关键字“If”、“Then”、“Else”、“Endif”不分大小写。如拼写不正确,检查程序会提示出错信息。条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套,为编制多分支流程的控制程序提供了可能。本动画我们对“库位显示”、“行显示”“列显示”进行了脚本程序编程。“库位显示”if按钮1=1then库位显示=1elseIF按钮2=1THEN库位显示=2elseIF按钮3=1THEN库位显示=3elseIF按钮4=1THEN库位显示=4elseIF按钮5=1THEN库位显示=5elseIF按钮6=1THEN库位显示=6elseIF停止按钮=1THEN库位显示=0endifendifendifendifendifendifendif“行显示”IF按钮1=1OR按钮3=1OR按钮5=1THEN行显示=1elseIF按钮2=1OR按钮4=1OR按钮6=1THEN行显示=2elseIF停止按钮=1THEN行显示=0endifendifendif“列显示”IF按钮1=1OR按钮2=1THEN列显示=1elseIF按钮3=1OR按钮4=1THEN列显示=2elseIF按钮5=1OR按钮6=1THEN列显示=3elseIF停止按钮=1THEN列显示=0endifendifendifendif