欢迎来到奥特威ATW称重软件官方网站! 收藏本站| 公司简介| 公司环境
全国统一热线
134 0202 6688
当前位置:主页 > 新闻中心 > 行业动态 > 智能称重管理系统软件的设计与开发

智能称重管理系统软件的设计与开发

文章出处: 人气:发表时间:2018-04-09 19:49
山西省是全国能源重化工基地,煤矿、钢铁、水泥、化工、电厂、酿酒、仓储、原料矿场和物流运输等厂矿企业每天均需要面对极 其繁杂的称重工作。为了提高经济效益和社会效益,笔者设计开发了智能称重管理系统,本论文从系统设计、软件设计、软件实现等 方面对该系统进行说明论证。并提供部分代码段作为学习研究。旨在拋砖引玉,促进计算机系统在社会各方面的应用。
山西省是全国能源重化工基地,煤矿、钢铁、水泥、化工、电厂、酿酒、仓储、原料矿场和物流运输等厂矿企业每天均需要面对极 其繁杂的称重工作。
为了提高经济效益和社会效益,笔者设计开发了智能称重管理系统,该系统是专门针对汽车电子衡器(地磅)开发的一套集称 重环节管理、数据自动捕获、汇总统计打印、远程数据报送等多项功能于一体的综合系统。该系统是结合一般电子衡器操作流程和 企业计量管理要求专门开发的。系统力求面向非专业操作人员编写,界面友好直观,操作流程完全等同于司磅人员的日常操作习 惯,操作人员无需培训即可参照软件简单明了的人机交互界面投入实际应用。
1.系统设计
为了使系统的实用性最大化,本系统采用了面向方面编程(AOP)的开发思路与多 层系统架构方案,使系统将来的可扩展性、可维护性大大加强。这种多层系统架构犹如一层一层包裹起来,每一层都是相对独立的模块,该设计模式孜孜不倦追求的是调用者 和被调用者之间的解耦,提高了应用系统层的内聚力,降低了层与层之间的耦合度,为 适应将来用户可能出现的新要求留有充分的升级余地。
http://www.weighiot.com/uploads/allimg/180120/1-1P120164152346.jpg
系统从一开始就考虑到安全性问题,将适合的验证机制、授权逻辑及安全通讯都纳 入考虑的范围内;提供高效能,并针对不同部署模式的共同作业进行最佳化;适用于不 同的应用程序案例及部署模式。
2.软件设计
根据实际考察,笔者将日常称重管理所需功能分为五部分,并据此将软件分为五大 模块,模块结构图如图2。
http://www.weighiot.com/uploads/allimg/180120/1-1P120164055609.jpg
1)称重模块:称重模块是所有模块的核心。实现了完善的进货、销 售过磅流程,提供友好的操作界面和便捷的操作方法,操作人员无需培 训即可参照软件简单明了的人机交互界面投入实际应用。
2)数据采集模块:自动采集各种型号汽车电子衡生成的重量数据,
并转换为称重管理模块能够识别的信息格式。
3)单据打印模块:实现进货、出货单据的打印输出以及汇总对汇总 表格、查询明细、作废单据的打印输出。
4)单据维护模块:实现对不完整单据的按单据类型排序、删除的功 能;对完整单据的按曰期、单据类型排序的功能,对无用单据作废的功能,对以往单据补打的功能。
5)汇总统计模块:
按照时间、品名、车号、单位等条件进行复杂查询。对磅房提交上来的数据按照时间、单位、货物进行汇总统计、明细查询,方便 检查人员直接掌握一线经营数据,能够体现出某单位的采购量或某运输单位的运输能力等数据。
3.软件实现
3.1编程平台
综合考虑软件流行程度和系统代价,本软件开发平台基于微软.NET Framework,采用C#语言与VC++语言混合编程,数据库采 用微软 SQL Server 2000。
软件主要功能模块
1)称重管理模块:该系统的核心。实现完善的供(进)货、销售、过磅流程,提供友好的操作界面和便捷的操作方法,操作人员无 需培训即可参照软件简单明了的人机交互界面投入实际应用。满足从一机一衡到一机多衡。
2)数据采集、通讯模块:自动采集由汽车电子衡生成的重量数据,并转换为称重管理模块能够识别的信息格式,提供系统准确 无误的信息。
3)打印模块:实现过磅单据、汇总表格、查询明细的打印输出,并可以在过磅单上打印出指定的企业名称。
4)领导查询模块:对磅房提交上来的数据按照时间、进货单位或运输单位进行查找、排序,方便企业领导直接掌握一线经营数据。
5)汇总统计模块:对磅房提交上来的数据按照时间对进货单位或运输单位数据汇总,能够体现出某单位的采购量或某运输单位的运输能力等数据。
3.3操作界面
用户接口层采用友好的图形用户界面(GUI界面),下图为系统 主要操作界面,主要是用户相关操作的实现以及数据显示,用以完 成数据的保存与维护。
3.4主要代码实现
下面选取“获取重量”部分的代码实现作为参考: int _stdcall GetNumber(char* hPort)
{ int iRet = 0;
if( ghPort == INVALID_HANDLE_VALUE )
{//打开端口
ghPort = OpenPort(hPort); if( ghPort == INVALID_HANDLE_YALUE ) 图 3 操作界面
http://www.weighiot.com/uploads/allimg/180120/1-1P12016412Q53.jpg
return -1;
if( ! SetPortState(ghPort, BaudRate, ByteSize, StopBits, Parity)) return -1;} char buffer[24] = {0}; // 缓冲区 int offset =0; //缓冲区偏移量 //设置端口缓冲区大小 SetupComm(ghPort, sizeof(buffer), 0); do{
DWORD retByte = 0;
ReadFile(ghPort, buffer + offset, sizeof(buffer) - offset, &retByte, NULL); offset += retByte;
}while(offset < sizeof(buffer));
buffer[offset] = A0';
if( lstrlen(buffer) ! = 0 )
{iRet = (int)PaseNumber((BYTE*)buffer, offset);}
ClosePort(ghPort); // 关闭端口 return 0;}
4.软件其它部分
1)软件的安全性考虑:本软件安全性考虑主要在数据库加密。对数据库加密后,只有本系统可以对数据进行操作(增、删、改 等),其他人员在本机上无法绕过本系统而直接调用数据库。
2)自动控制部分:由于不同型号的衡器采集到的衡器数据是不同的,系统在采集数据算法上作了智能识别,自动识别处理相近 的衡器发送的数据结构。
当有不能识别的衡器数据格式时,只需要针对特定的衡器信号增加一个数据采集组件,拷贝到系统指定目录即可,系统会自动 识别并装载该组件,对现有系统不需做任何修改。
3)视频显示:视频显示部分控制代码如下:
private void SetCam()
{ //视频初始化 RECT rect; rect.top = 0; rect.left = 0; rect.right = 320; rect.bottom = 240; int size = 12;
Font font = new Font("新宋体", size, FontStyle.Regular, GraphicsUnit.Pixel); string timer = DateTime.Now.ToLongTimeString();
//设置视频1
System.Diagnostics.Trace.Assert(handle1 == IntPtr.Zero); handle 1 = DSCapture.DSCapCreate("1", pic1.Handle); if (handle1 == IntPtr.Zero)
Cam1Err = true;
else
{ DSCapture.DSCapSetMediaType(handle1, 320, 240);
DSCapture.DSCapSetVideoPosition(handle1, rect);
DSCapture.DSCapSetAVStandard(handle1, AnalogVideoStandard.AnalogVideo_PAL_D);
DSCapture.DSCapPreview(handle1); rect.top = 7; rect.left = 7;
rect.right = size * str丄ength + rect.left; rect.bottom = size + rect.top;
//DSCapture.DSCapBlendText(handle1, str, rect, font.ToHfont());}
//设置视频2
System.Diagnostics.Trace.Assert(handle2 == IntPtr.Zero); handle2 = DSCapture.DSCapCreate("2", pic2.Handle); if (handle2 == IntPtr.Zero)
Cam2Err = true;
else
{ rect.top = 0; rect.left = 0; rect.right = 320; rect.bottom = 240;
DSCapture.DSCapSetMediaType(handle2, 320, 240);
DSCapture.DSCapSetVideoPosition(handle2, rect);
DSCapture.DSCapSetAVStandard(handle2, AnalogVideoStandard.AnalogVideo_PAL_I);
DSCapture.DSCapPreview(handle2); rect.top = 7; rect.left = 7;
rect.right = size * timer.Length + rect.left; rect.bottom = size + rect.top;
//DSCapture.DSCapBlendText(handle2, timer, rect, font.ToHfont());}}
5.结束语
本系统通过自动读取衡器重量,能够有效杜绝称重环节人为因素导致的管理漏洞、避免经济损失,提高司碚环节工作效率。同 时,还能够与生产管理、办公自动化等系统无缝连接,使管理者轻松掌握企业全局。经过二次开发,甚至可以在异地通过互联网实时 了解企业各项经营数据。
由于篇幅所限,这里主要介绍了软件实现部分,在实际应用时还需考虑工控系统、数据传输实现、数据处理时限等方面内容。
此文关键字:地磅称重软件,地磅软件
首页 | 公司简介 | 新闻中心 | 产品技术 | 行业应用 | 企业风采 | 走进我们 | 联系我们