计算机控制系统课程设计报告.docx
- 文档编号:4616586
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:14
- 大小:492.57KB
计算机控制系统课程设计报告.docx
《计算机控制系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机控制系统课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
计算机控制系统课程设计报告
计算机控制系统课程设计报告
计算机控制系统课程设计
报告
姓名:
王威
班级:
计082-1
学号:
200825502129
指导老师:
王培进
时间:
2012-3-3
一、设计目的
利用MCGS工控组态软件,结合实验系统,完成上位机监视系统的设计。
通过本设计,学会组态软件的基本使用方法、组态技术、为从事计算机控制方面的工作打下基础。
设计题目为:
液位控制监控系统
其实设计的该系统只是一个开环系统,手动控制,并没有实现自动PID控制,其主要的功能是过程的动画显示、实时数据显示、直接控制(水阀开度)、液位报警(包括上下限值得设定,报警表格、报警灯)、历史数据表。
二、设计内容具体实现方法
学习MCGS
首先,什么是MCGS?
它是怎么工作的?
在指导书上初步学习了MCGS之后,特别是做完整个设计之后,回过头才发现,这张图概括了MCGS的整个工作流程和功能,如下:
MCGS组态软件所建立的工程由主控窗口、设备窗口、用户窗口、实时数据库、运行策略五部分构成。
每一部分分别进行组态操作,完成不同的工作、具有不同的特性。
主控窗口:
设计的时候主要用它来添加菜单项了,就是在运行环境中菜单里有了你设计的功能窗口的名称,可以单击方便打开。
设备窗口:
前三天在学习阶段,在设备窗口添加模拟设备,给特定的数据以正弦输入,以模拟外部数据,以此来调试系统设计的正确性。
在系统设计阶段,通过设备窗口添加了实验所用的宇光808P仪表(就相当于在组态软件“认识的人”中挑出一个熟人跟它对话,“不认识的人”是说不上话的。
说不同的类型的话走不同的通道。
),从而实现了计算机与仪表的通信。
(这一步在实验册上叫注册设备驱动程序)。
用户窗口:
这个窗口主要用来设置工程中的人机交互界面,在这些窗口中进行组态设计,实现动画显示、数据显示、报警显示、曲线图等等。
实时数据库:
是工程各个部分数据交换和处理中心,将工程的各个部分连接成一个有机的整体,在工程中所有涉及到的数据变量必须在这里进行定义,这些变量作为数据采集、处理、输出控制、动画连接及设备驱动对象。
下面介绍所设计系统的各个部分及构建的方法:
用户窗口如下:
下图为系统的用户窗口“液位监视与控制系统”组态画面:
实时数据库中的变量定义如下图:
设备添加情况如下:
在设备窗口也进行了通道的连接,及仪表与计算机的通信通道与对应的实时数据库中的变量进行连接。
(不用进行读操作就可以把数据从仪表传到计算机中,但是必须用setdevice指令才能将特定的数据通过通道送到仪表中)
运行时涉及到的策略如下:
分别介绍各个模块的构建过程:
1、过程动画的构建
过程动画的构建是在用户窗口组态环境中添加的,在本系统中主要有数据显示、水流效果、水罐的水位上升下降效果。
水罐的属性设置如下:
水罐所关联的数据变量为“当前液位”,“当前液位”在0-20之间变化的时候,水罐的动画从“没水”升到“满水”。
而当前液位在实时数据库中定义了之后,在设备窗口进行了通道连接,可以实时接收水罐的液位,并将液位通过动画显示出来。
水流动画的显示:
其中“水泵”、“电动阀”为实时数据库中定义的变量,水泵和电动阀的组合图形设置为按钮输入,置反,这样在运行环境中电机水泵和电磁阀就可以让两个水块流动起来。
数据显示是通过文字框的显示功能来实现的,在文字框的属性中关联变量,并改文字框的功能为“显示输出”,从而实现了当前液位、设定的液位、和控制量的输出显示,具体的设置如下:
2、报警模块的构建
报警模块用来对当前液位进行上限报警和下限报警,在组态环境中,用工具箱中的
,添加报警构件,并在构件属性中关联变量“当前液位”
当然事实数据库中的“当前液位”要设置它的报警属性,即设置报警的上限值和下限值,以及报警语句等,设置如下:
(在系统改进之后,上下限的值可以用setalmvalue指令实现实时传送)
3、实时曲线模块的构建
该模块用来实时地用曲线的形式显示当前液位、控制量输出、设定的液位的数据,利用工具箱中的条件曲线构件
来实现,在构件属性中设置曲线关联的变量,线条颜色、粗细、坐标轴等等。
具体的属性设置如下:
要注意两个问题,时间轴的时间单位一定要改为“秒钟”。
控制量会在100及以上,将纵轴大小设置为100,控制量有时候会没法显示,纵轴过大会使当前值和设定值的曲线非常模糊,有一个方法就是在关联变量的时候,控制量输出/10.
4、报警灯模块的构建
报警灯用于对当前液位进行上限和下限报警,报警灯属性设置时关联变量“当前液位”,最初报警的条件是手动输入的,系统改进后,在实时数据库中添加了变量“液位上限”“液位下限”,可以实时改变报警的条件。
上限报警灯的属性设置如下:
下限报警灯的设置如下:
5、仪表控制模块的构建
该模块的作用是实现开环手动控制,实时地通过约定好的数据通道向仪表传送控制参数,如:
采样周期、PID参数、控制量输出,本设计中只用到了控制量输出的传送,可以实时地调节电磁阀的开度(但是试验中电磁阀开度变化太慢,以至于控制有较大延迟)实现的方法是利用了按钮关联策略,在运行策略中添加“用户策略”,该用户策略定义为“控制量输出传送”,在策略中新增策略行,添加工具箱中的“脚本程序”,利用setdevice语句,将界面输入框中的控制量的值传送到仪表。
输入框属性设置如下:
按钮属性设置如下:
运行策略中控制量输出传送策略如下:
其中的脚本程序如下:
在系统运行的时候,在输入框中输入数值,按设置按钮就可以把该数值发送到仪表,利用仪表输出该控制量,实现对电磁阀的实时控制。
采样周期、比例系数、微分系数、积分系数的传送的方法与此类似,而且在本设计中并没有用到,所以不再螯述。
三、过程中遇到的问题和验收时所加功能
因为在学习MCGS的时候实验书上的内容十分详细,在做设计时又没有超出范围,所以在设计的过程中遇到的问题不多,有两个小的问题,第一个问题是在控制量传送的时候,若是按照试验书得脚本语句:
那么控制量的数值传过去之后,作用了一下就马上归零了,其实到现在也没弄清楚是怎么回事,但是程序改动成下面的语句时就好用了:
第二个问题就是,由于控制量在传送的过程中有除以10的操作,所以在曲线实时显示控制量的值得时候,会有曲线波动,影响整体质量,我解决这个问题的方法是,定义了一个变量“控制量输出_temp”,在输入框里输入的值先赋给它,它直接显示,没有经过除10操作。
如下:
在验收的时候,根据老师的要求进行了5个地方的改进,进一步拓宽了自己的视野:
1当前液位报警的上限值和下限值得实时修改
解决的方法是,在实时数据库中添加“水位上限”“水位下限”两个变量,组态环境中添加两个输入框关联两个变量,在循环策略中添加上限和下限的传送语句,修改“当前液位”的报警属性,这样报警表格构件的功能也能实时修改,在报警灯的报警条件表达式中将固定的数改为上下限变量,也能实现报警灯报警条件的实时修改。
如下:
添加变量:
添加输入框:
循环策略中实时修改当前液位报警属性:
上限报警灯报警条件的修改:
2当前液位到达到液位上限值之后,控制量置0,液位下降至液位上限值之后,控制量恢复原来的值,重新出水。
以开关控制的方式实现液位的基本稳定(事实上由于电磁阀动作的滞后,液位并不能基本稳定),实现的方法是在循环策略中添加一下的语句:
报警灯的红绿闪烁,而不是隐形式闪烁
因为红绿闪烁更有视觉刺激,所以这项改动很有价值。
之前灯报警只是红灯报警,绿灯正常,没有闪烁,在报警灯的属性设置中有闪烁效果,有两种方式实现,一个是以图元可见度闪烁,另一个是以图元属性变化闪烁,第二个效果更好。
水流动画与控制量的值同步,而不再是鼠标点击控制。
当控制量归零的时候,水流停止流动,当控制量为输入值(非零)时水流重新流动。
实现的方法是在循环策略添加如下语句:
添加了菜单项,实现数据显示和报警数据记录表功能。
数据显示利用了新建窗口,在新的用户窗口组态环境中中利用自由表格实现。
报警记录表功能是在运行策略中添加新策略,利用策略工具箱中“报警信息浏览”构件实现的,最后在主控窗口添加这两个功能的菜单项,具体操作如下:
新增窗口:
在数据显示窗口组态环境中设计自由表格,连接要显示的变量
在主控窗口中添加“数据显示”菜单项
设置数据显示菜单项的功能:
在运行策略中添加用户策略“报警数据”
新增策略行并使用“报警信息浏览”构件
在主控窗口添加“报警数据”菜单项
设置该菜单项的属性:
个人所感
在进行设计的时候,心里一直感叹于组态软件的神奇功能,按照实验指导书一步步来,原本觉得生疏复杂的功能一个个实现。
通过近一个周的学习,掌握了MCGS最基本的设计流程,最重要的是培养了我对组态软件设计的浓厚兴趣,心里也对使用组态软件进行计算机控制有了自己的理解。
所以从心底感谢老师给我们这次设计的机会。
以下是我个人通过本次设计对组态软件的理解:
组态软件是实现计算机控制的一个中介,它将计算机与设备的连接方式以动画的方式生动地展示在我们面前;它管理着将双方传输(串口通讯)的数据,显示、处理、传输,还可以通过新策略的编写(直接使用构件或编写脚本程序)各种功能构件来实现人们想实现的功能。
强大的动画库、方便且可视化的操作流程、简单的VB编程,多种多样的构件功能都使新手进入计算机控制领域的门槛大大降低,非常容易上手,其次,主控窗口、用户窗口、实时数据库、用户策略、设备窗口使得设计工作变得井井有条,MCGS连变量都支持是汉字字符,写脚本程序的时候感觉相当棒。
在MCGS,动画只是起到辅助功能,让操作人员一目了然,具体的型号不唯一。
其实它最强大的功能是数据的处理和传输。
不同的仪表已经协议好通过哪些通道(个人理解通道为串口通讯中的不同的数据包数据标识)传递哪些数据,所以MCGS可以通过通信协议规则将不同通道的数据值赋给实时数据库内对应变量(可是设置属性,如开关型还是数值型,有没有报警上下限等),可以通过编程(新增策略)或功能构件实现诸如显示历史数据、报警等,或者通过处理已有的数据,计算得出新的值,然后利用setdevice指令通过约定好的通道从计算机发送到仪表从而实现计算机控制。
实时数据库里的变量值可以来自于按钮输入(如开关量置反,以实现水泵的开关标志,以控制税块的流动),也可以通过串口来自于外部设备,MCGS有强大的模拟设备功能,设计的过程中很多次用到了模拟的正弦输入来验证设计的正确性。
拉条构件也提供了手动的数据输入功能,很方便。
刚开始学习MCGS的时候,令我印象最深的是它动画效果的实现:
根据实际过程调出内置数据库中的静态图形(用户窗口组态环境中,从工具箱中调出,可以有对应的属性设置,如可见度、填充颜色、关联数据变量等),静态图形与实时数据库中已经设好的变量(根据实际应用设成不同的类型,如水泵、电磁阀等关联的是开关型变量,来表示启停,而水桶则关联数值型变量来表示液位高度)相关联,当关联数据变化时,对应的组合图符会有动作,从而实现动态效果,给操作人员良好的对话界面。
数据的变化可以来自手动输入(拉条)、模拟设备、或者是通过串口等送来的外部设备数据。
举例子说动态效果的实现,在实时数据库中设开关型变量“水泵”,水泵图形设置为按钮输入,置反;使水泵图形与“水泵”相关联,运行的时候点击水泵图形,则其对相应的数据在01之间跳变,水块也与“水泵”相关联,当水泵=1的时候水块有流动的效果,也就是在运行时,点击水泵图形,使“水泵”=1,然后水流动效果,达到点击开水泵的效果。
再例如,水罐属性设置为最大值100、最小值0,关联实时数据库中的数值型变量“当前液位”,则水罐中水的高度随着当前液位的变化而变化,且当前液位为100时,水罐满,当前液位为0是水罐空,实验中当前液位来自于以仪表,同过串行口传输给计算机,组态软件通过通道号识别它,并把它们赋给当前液位变量,水罐的水位高度随之改变。
用户功能的实现主要是靠功能构件(输入框、组合图幅、自由表格等等)和新增策略来实现(历史数据(存盘数据浏览)、报警数据、编写脚本程序等),为了使用的方便,还可以对新的策略在主控窗口添加新菜单项,或者建立一个新的窗口来管理新的功能,设计中的数据显示功能就是添加了新的用户窗口。
MCGS使用的便捷性使我对计算机控制产生了浓厚的兴趣,我打算今后对其进行深入学习,再次感谢老师安排这样的设计机会,学到了很多东西。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机控制 系统 课程设计 报告