测控系统应用软件实训——产品质量监测系统设计.doc
《测控系统应用软件实训——产品质量监测系统设计.doc》由会员分享,可在线阅读,更多相关《测控系统应用软件实训——产品质量监测系统设计.doc(26页珍藏版)》请在沃文网上搜索。
1、武汉理工大学测控系统应用软件实训课程设计说明书目录1. 绪论 42. 整体模块设计 4 3. 代码管理模块 53.1类型代码管理 53.2功率代码管理 54. 检测模块 65. 4.1开始检测 64.2停止检测 85.查询模块 95.1结果查询 9 5.2工位查询 196.数据表浏览模块 207.数据修改模块 228.打印报表模块 249.帮助模块 2510.总结与体会 2711.参考文献 281.绪论 自工业革命以来,人类已经越来越意识到机器性工作的可代替性是多么的重要。也正是由于这一点,自动化制造业得到了飞速的发展,到如今已经达到一个非常成熟的形态。而作为当代一名当代的中国大学生,尤其是像
2、我们这样的与制造业有关的工科专业学生,在这样的时代大潮中自然不能落于人后。在自身专业知识学习过程中要全力以赴,抓住任何机会充实自己。而恰好学校安排了测控系统软件设计这一课程让我们学习和锻炼,更要珍惜这样的机会。主题是制作一个质量检测软件,利用日光灯试验台来检测点亮日光灯的整流器或逆变器是否合格,并且通过多次测量灯管两端的电压和电流,再通过分析,来验证整流器或逆变器工作是否正常。单个整流器或逆变器有不同功率之分,也有可以同时点亮日光灯个数多少之分。检测一个整流器或逆变器,下位机大概会产生30组左右的电压和电流数据。总结之,本实训的目标是设计一个产品质量监测系统,保存日光灯试验台下位机产生的数据信
3、息,并时行产品合格检查、产品质量查询、分类统计和报表打印操作,以期使产品的质量管理工作系统化、规范化、自动化,从而体现自动化制造业带来的高效率和收益。产品质量监测系统安全管理模块 代码管理模块检测模块查询模块打印预览模块密码与权限管理退出系统类型代码功率代码开始检测停止检测结果查询工位查询数据表浏览模块数据修改模块2.整体模块设计图1 程序总体设计结构图3. 代码管理模块3.1类型代码管理(1)程序代码void _fastcall TF_Main:M_TypeClick(TObject *Sender) /类型代码编辑 F_Assist-ADOT_Count-First();/设定记录号计数数
4、据表当前活动记录是第一条记录 F_Assist-ADOT_Count-MoveBy(2);/下移两条记录至计数表中的仪器类型 F_Assist-DBLookupListBox1-ListField=;/先赋空值以免系统抛出异常 F_Assist-DBLookupListBox1-KeyField=;/先赋空值以免系统抛出异常 F_Assist-DBLookupListBox1-ListSource=DataModule1-DS_Type;/赋仪器类型表 F_Assist-DBLookupListBox1-KeyField=Type_ID;/赋类型记录号字段 F_Assist-DBLookupL
5、istBox1-ListField=Type_Name;/赋类型名称字段 F_Assist-Label2-Caption=仪器类型代码表; F_Assist-ShowModal(); /打开辅助资料窗体 (2)运行结果图2 仪器类型代码界面3.2功率代码管理(1)程序代码void _fastcall Ttcw:M_PowerClick(TObject *Sender) x=2; F_Assist-ADOT_Count-TableName=Industry_Power;/功率代码编辑 F_Assist-ADOT_Count-Open(); F_Assist-ADOT_Count-Edit();
6、DataModule1-AT_Power-Open(); DataModule1-AT_Power-Edit(); F_Assist-ADOT_Count-First();/设定记录号计数数据表当前活动记录是第一条记录 F_Assist-ADOT_Count-MoveBy(2);/下移两条记录至计数表中的仪器功率 F_Assist-DBLookupListBox1-ListField=;/先赋空值以免系统抛出异常 F_Assist-DBLookupListBox1-KeyField=;/先赋空值以免系统抛出异常 F_Assist-DBLookupListBox1-ListSource=Data
7、Module1-DS_Power;/赋仪器功率代码表 F_Assist-DBLookupListBox1-KeyField=Power_ID;/赋功率记录号字段 F_Assist-DBLookupListBox1-ListField=Power_Name;/赋功率名称字段 F_Assist-Label2-Caption=仪器功率代码表; F_Assist-Show(); /打开辅助资料窗体(2)运行结果图3 仪器功率代码界面4.检测模块4.1开始检测(1)流程图图4 流程图(2)程序代码void _fastcall Ttcw:M_StartClick(TObject *Sender) /打开串
8、口,开启JudgeTimer定时器定时测控串口 MainMenu-Items-Items2-Enabled=false;/使开始检测菜单项非能 MainMenu-Items-Items3-Enabled=True;/停止检测菜单项使能 if(Com1-PortOpen=True)/如果串口已打开,则关闭之 Com1-PortOpen=false; Com1-PortOpen=True; /打开串口 Com1-InBufferCount=0;/消除输入缓冲区的内容 Com1-OutBufferCount=0;/消除输出缓冲区的内容 if(!Com1-PortOpen) /判断串口初始化是否失败并
9、显示 ShowMessage(串口初始化失败); JudgeTimer-Enabled=true; /开启串口监听定时器 RE_Mess-Lines-Add(串口初始化成功,正在监听);/在RichEdit控件显示串口状态 RE_Mess-Lines-Add(用户可以开始检测数据);(3)运行结果图5 开始检测后界面4.2停止检测(1)程序代码void _fastcall Ttcw:M_PauseClick(TObject *Sender)/关闭串口,关闭JudgeTimer定时器定时测控串口 MainMenu-Items-Items2-Enabled=True;/开始检测菜单项使能 Main
10、Menu-Items-Items3-Enabled=false;/停止检测菜单项非能 JudgeTimer-Enabled=false; /关闭串口监听定时器 Com1-PortOpen=false; /关闭串口 RE_Mess-Lines-Add(串口已关闭,与下位机通信中断);/在RichEdit控件显示串口状态(2)运行结果图6 停止检测后界面5.查询模块5.1结果查询(1)程序代码以及对应程序结果#include #pragma hdrstop#include Query.h#include DM.h/-#pragma package(smart_init)#pragma resour
11、ce *.dfmTF_Query *F_Query;/-_fastcall TF_Query:TF_Query(TComponent* Owner) : TForm(Owner)/-void _fastcall TF_Query:CB_TimeClick(TObject *Sender) /判断时间查询复选框是否选中,以决定各单选按钮是否能使用 if(CB_Time-Checked) /若时间框选中,则各单选按钮被激活 RadioButton1-Enabled= true ; / RadioButton2-Enabled= true ; / RadioButton3-Enabled= true
12、 ; / else /否则,各单选按钮处于失效状态 RadioButton1-Enabled= false ; / RadioButton2-Enabled= false ; / RadioButton3-Enabled= false; / /-void _fastcall TF_Query:CB_CodeClick(TObject *Sender)/判断编号查询复选框是否被选中 if(CB_Code-Checked) M_Code-Enabled=true ;/memo控件被激活 Label2-Enabled=true;/标签控件被激活 else /memo与标签控件失效 M_Code-En
13、abled=false; Label2-Enabled=false; /-图7 时间设定查询界面图8时间设定查询结果/-void _fastcall TF_Query:CB_TypeClick(TObject *Sender) /判断类型查询是否选中 if(CB_Type-Checked) E_Type-Enabled=true; else E_Type-Enabled=false;图9按类型查询界面图10类型查询结果void _fastcall TF_Query:CB_PowerClick(TObject *Sender)/判断功率查询是否选中 if(CB_Power-Checked) E_
14、Power-Enabled=true; else E_Power-Enabled=false;/-图11按功率查询界面图12功率查询结果void _fastcall TF_Query:CB_NumClick(TObject *Sender) /判断管数查询是否选中 if(CB_Num-Checked) E_Num-Enabled=true; UpDown-Enabled=true; else E_Num-Enabled=false; UpDown-Enabled=false; 图13 按管数查询界面图14 按管数查询结果void _fastcall TF_Query:B_CancelClick
15、(TObject *Sender) DataModule1-AQ_Record-Close();/关闭检测记录数据源 DataModule1-AQ_Record-SQL-Clear();/清除SQL语句 DataModule1-AQ_Record-SQL-Add(SELECT * FROM Industry_Record); DataModule1-AQ_Data-Close();/关闭检测数据数据源 DataModule1-AQ_Data-SQL-Clear();/清除SQL语句 DataModule1-AQ_Data-SQL-Add(SELECT * FROM Industry_Recor
16、d,Industry_Data); DataModule1-AQ_Record-Open();/执行SQL语句,打开检测记录表 DataModule1-AQ_Data-Open();/执行SQL语句,打开检测数据表 F_Query-Close();/关闭检测数据查看窗口/- void _fastcall TF_Query:B_QueryClick(TObject *Sender)/查询按钮单击事件 if(!CB_Time-Checked&!CB_Type-Checked&!CB_Power-Checked &!CB_Num-Checked&!CB_Code-Checked) /若没有查询条件
17、Application-MessageBoxA(没有查询条件,请选择或输入,查询出错,MB_OKCANCEL); return; String str1=Industry_Record.Record_Type= + E_Type-Text + , str2=Record_Type= + E_Type-Text + , str3=Industry_Record.Record_Power= + E_Power-Text + , str4=Record_Power= + E_Power-Text + ; DataModule1-AQ_Record-Close();/关闭检测记录数据源 DataMod
18、ule1-AQ_Record-SQL-Clear();/清除SQL语句 DataModule1-AQ_Record-SQL-Add(SELECT * FROM Industry_Record WHERE ); /增加一条SQL语句,从检测记录表中提取数据记录 DataModule1-AQ_Data-Close();/关闭检测数据数据源 DataModule1-AQ_Data-SQL-Clear();/清除SQL语句 DataModule1-AQ_Data-SQL-Add(SELECT * FROM Industry_Record,Industry_Data WHERE Industry_Rec
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测控 系统 应用软件 产品质量 监测 设计