资源描述
工控程序开发训练项目课程学习总结报告班级:_41132_学号:_ _姓名:_ _指导教师: 郑家辉 2013年4月 第一章 项目过程1.1 项目产品简介名称:微机控制打包秤生产管理系统特点:工作界面简单,操作性强。主要用途:适用于各种颗粒状物料打包,如大米,小麦。1.2 项目产品主要功能及主要模块微机控制打包秤生产管理系统生产管理数据浏览报表打印辅助功能打包品种管理实际生产系统测试模拟生产高速喂料称斗中的料是否达到38kg打包开始是中速喂料否称斗中的料是否达到45kg低速喂料是否称斗中的料是否达到49kg稳定称斗2s放置包装袋释放包装袋称斗关门称斗开门放料是否是否达到10包称斗放料是否放完(重量0.5kg)包装袋是否夹紧称斗中的料是否达到50kg是否点动喂料打包完成是否否是是喂料搅笼电机停止转动否1.3 主控生产流程图1.4 数据库结构product_table表。主要用于记录各个品种的高停重量、中停重量、低停重量、单包重量。字段名称数据类型字段大小是否主键product_id自动编号长整型是product_name文本10否high_speed_weight数字单精度型否middle_speed_weight数字单精度型否low_speed_weight数字单精度型否single_bag_weight数字单精度型否sc_table表。主要用于记录生产品种的打包日期、打包时间、生产班组、品种名称、单包重量、每包生产重量、生产批号、字段名称数据类型字段大小是否主键sc_number自动编号长整型是sc_date日期/时间短日期否sc_time日期/时间长时间否sc_group文本2否sc_product_name文本16否sc_single_weight数字单精度型否sc_weight数字单精度型否sc_pihao文本14否1.5 项目产品运行效果图第二章 项目学习2.1 本课程的项目中所涉及到的Visual Basic方面的主要知识1、设置窗体或控件的属性值2、shape控件的使用3、VB赋值语句的使用4、计时器控件的设置与使用5、exe文件的生成和安装包的制作2.2 核心代码分析实际生产主控程序Public Sub produce_program_true(pzmc, scbs, scbz, gtzl, ztzl, dtzl, dbzl) Dim hw As Integer 定义hw变量 Dim mw As Integer 定义hw变量 Dim lw As Integer 定义hw变量 Dim a As Integer 定义hw变量 Dim ab As Integer 定义hw变量 Dim ph As String 定义hw变量 Label8.Caption = pzmc 显示品种名称 Call close_door 称斗门关 mark_ssj_yz = True 启动输送机运转动画 For a = 1 To scbs 为生产包数定义循环 Label9.Caption = scbs 显示生产包数 高速喂料 mark_djl = True 启动大搅笼动画 mark_xjl = True 启动小搅笼动画 Call high_speed 启动高速喂料(大、小搅笼)电机 mark_cdl_zj = True 启动秤斗料增加动画 Do While scale_weight = gtzl 如果当前秤重量高速停止重量gtzl,则一直高速喂料 scale_weight = now_scale_weight 读取当前秤数据 Label_chengdouzhongliang.Caption = Format(scale_weight, 0.00) 将称斗料重量值保留两位小数送屏幕显示 DoEvents 转让CPU控制权 Loop 中速喂料 mark_djl = True 启动大搅笼动画 mark_xjl = False 关闭小搅笼动画 Call middle_speed 启动中速喂料(大搅笼)电机 Shape_xiaojiaolongliao.Visible = False 将小搅笼动画隐藏 Do While scale_weight = ztzl 如果当前秤重量中速停止重量ztzl,则一直中速喂料 scale_weight = now_scale_weight 读取当前秤数据 Label_chengdouzhongliang.Caption = Format(scale_weight, 0.00) 将称斗料重量值保留两位小数送屏幕显示 DoEvents 转让CPU控制权 Loop 低速喂料 mark_djl = False 关闭大搅笼动画 mark_xjl = True 启动小搅笼动画 Call low_speed 启动低速喂料(小搅笼)电机 Shape_dajiaolongliao.Visible = False 将大搅笼动画隐藏 Do While scale_weight dbzl * 2 / 1000 如果(单包重量-称斗重量)大于单包重量*2/1000,则一直点动喂料 mark_xjl = True 启动小搅笼动画 Call low_speed 启动低速喂料(小搅笼)电机 my_sleep (500) 电机停转500毫秒 mark_xjl = False 关闭小搅笼动画 Shape_xiaojiaolongliao.Visible = False 将小搅笼动画隐藏 Call stop_speed 停止喂料,电机停转 my_sleep (1000) 电机停转1000毫秒 scale_weight = now_scale_weight 读取当前秤数据 Label_chengdouzhongliang.Caption = Format(scale_weight, 0.00) 将称斗料重量值保留两位小数送屏幕显示 DoEvents 转让CPU控制权 Loop 包装袋是否夹紧 Do While bag_status 1 检测包装袋是否夹紧 DoEvents 转让CPU控制权 Loop Label10.Caption = a 显示当前包数 bb = scale_weight 将当前称数据赋值给bb aa = aa + bb 将aa+bb的值即累计重量赋值给aa Label11.Caption = Format(aa, 0.00) 将累计重量值保留两位小数送屏幕显示 Picture_shangdai.Visible = True 显示夹紧包装袋时包装袋的动画 Picture_xiadai.Visible = False 隐藏释放包装袋时包装袋的动画 称斗开门 Call open_door 启动称斗开门 mark_cdl_js = True 显示称斗料增加动画 mark_cd_km = True 显示称斗开门动画 mark_bag_zj = True 显示包装袋移动动画 称斗料是否放完 Do While scale_weight = 0.5 检测称斗中剩余料是否大于0.5kg scale_weight = now_scale_weight 读取当前秤数据 Label_chengdouzhongliang.Caption = Format(scale_weight, 0.00) 将称斗料重量值保留两位小数送屏幕显示 DoEvents 转让CPU控制权 Loop 称斗关门 Call close_door 启动称斗关门 mark_cdl_js = False 关闭称斗料增加动画 mark_cd_km = False 关闭称斗开门动画 mark_bag_zj = False 关闭包装袋料增加动画 释放包装袋 Shape_kaimenliao.Visible = False 将开门下放料动画隐藏 Picture_shangdai.Visible = False 隐藏夹紧包装袋时包装袋的动画 Picture_xiadai.Visible = True 显示释放包装袋时包装袋的动画 mark_bag_yd = True 显示包装袋移动动画 Call release_bag 启动释放包装袋 Label_baoshu.Caption = 第 + Str(a) + 袋 显示“第几袋” If a = 1 Then 为生产批号定义if循环 ph = Format(Date, yyyymmdd) & Format(Time(), hhmmss) 将生产批号以“yyyymmddhhmmss”的格式显示 End If Adodc_sc.Recordset.AddNew 添加一条空纪录 Adodc_sc.Recordset.Fields(sc_date) = Date 为字段sc_date赋值Date Adodc_sc.Recordset.Fields(sc_time) = Time 为字段sc_time赋值Time Adodc_sc.Recordset.Fields(sc_group) = scbz 为字段sc_group赋值scbz Adodc_sc.Recordset.Fields(sc_product_name) = pzmc 为字段sc_product_name赋值pzmc Adodc_sc.Recordset.Fields(sc_single_weight) = dbzl 为字段sc_single_weight赋值dbzl Adodc_sc.Recordset.Fields(sc_weight) = ab 为字段sc_weight赋值ab Adodc_sc.Recordset.Fields(sc_pihao) = ph 为字段sc_pihao赋值ph Adodc_sc.Recordset.Update 更新当前记录 NextEnd SubPrivate Sub MSComm1_OnComm() Dim ss As String 定义ss变量 Dim mm As Integer 定义mm变量 ss = MSComm1.Input 将COM1端口赋值给ss mm = InStr(ss, ) 查找数据起始位置 now_scale_weight = Val(Mid(ss, mm + 1, 7) / 10 读取当前称数据 Label_chengdouzhongliang.Caption = Format(now_scale_weight, 0.00) 将称斗重量值保留两位小数送屏幕显示 MSComm1.InBufferCount = 0 清除缓冲区数据End Sub2.3 在整个包装秤自动称重系统中,指出本软件所起的作用对生产实行自动控制,并能够进行生产管理。第三章 项目总结3.1 在项目学习过程中遇到的问题、困难及解决方法或过程;问题:编写点动喂料代码时,总出现问题,实行不了点动。解决方法:通过询问同学,对点动喂料过程采用do while的语句。3.2 对本项目产品的完成情况评价;基本完成了项目要求,能对生产实行自动化控制。3.3 项目学习过程中自己在知识学习、技能训练等方面的体会及收获;体会:学会了计时器控件的使用;数据库的管理的应用;收获:在实际生产环节的调试过程中,懂得当遇到问题时,不应慌张,应细心的找出问题,并解决问题。3.4 对本次项目教学的意见或建议建议:项目数量太少,自己不能够熟练的掌握VB各个控件的使用。应多增加些项目,锻炼自己熟练编程的能力。8
展开阅读全文