网站首页  词典首页

请输入您要查询的论文:

 

标题 基于SignalR的物料预警系统设计
范文

    赵泽俊

    

    

    

    摘要:物料管理是工厂管理中重要的环节之一。实时获取与处理物料的信息能有效提高工厂的生产效率和管理水平。因此,为了提高工厂对物料的管理水平,解决对工厂库存物料信息的实时跟踪等问题,根据工厂的物料出库入库的流程,设计并实现了一个在ASP.NET平台下、基于SignalR框架和MVC模式对物料数据进行实时监控预警的系统。该系统通过实时通讯将物料相关数据通过服务器传递,实现物料相关数据的实时更新与显示,达到监控以及预警物料数据的效果,并在工厂的管理中得到很好的应用。

    关键词:物料管理;物料预警;SignalR;ASP.NET;MVC

    中图分类号:TP311.52? ? ? 文献标识码:A

    文章编号:1009-3044(2019)22-0107-03

    开放科学(资源服务)标识码(OSID):

    Design of Material Warning System Based on SignalR

    ZHAO Ze-jun

    (Shanghai Open University, Shanghai 200433, China)

    Abstract: Material management is one of the important links in factory management. Real-time obtaining and processing of the information of the materials can effectively improve the production efficiency and management level of the factory. Therefore, in order to improve the management level of the materials in the factory, and solve the problem of real-time tracking of material information of the factory inventory, this paper designs and implements a system for real-time monitoring and early warning of materials data based on SignalR framework and MVC mode under ASP.NET platform according to the process of the outgoing and inputting of factory materials. The system transfers the related data of material through the servers by real-time communication, realizes the real-time updating and display of the related data of material, achieves the effect of monitoring and early warning of material data, and is well applied in the management of factories.

    Key words: Material management; Warning of material data; SignalR; ASP.NET; MVC

    1 背景

    在工厂的物料管理中,物料库存数量会随着入库和出库流程发生变动;对于管理人员而言,物料的库存数量一方面可以反映库存的情况,一方面也可以反映出物料在生产线上的使用情况,因此需设计一个可以实时监控物料信息的系统来满足工厂对物料管理的需求。在以往的系统设计技术中,通过定时向服务器请求数据的方式不仅增加了服务器的运行压力,在实际运用中为了满足性能的要求,数据请求的时间设置过长,无法达到实时预警的效果[1-2]。为了解决在物料管理中的实时对物料当前库存信息的预警问题,本文设计的物料预警系统是利用Asp.Net平台、基于支持Web通信的SignalR框架[1]决实时预警的问题。SignalR能在通过浏览器和服务器之间建立通信通道,用户可以在浏览器和服务端之间快速、便捷地传递消息和数据[3]。

    2 SignalR概述

    SignalR是Asp.Net的一个提供了Web即时通信的服务的类库,集成了基于浏览器的客户端和Asp.Net服务端的库,实现客户端与服务端的双向对话。SignalR提供了一个简单的API,用于服务端的.Net代码远程过程调用客户端浏览器的JavaScript函数[4],并且提供了连接断开事件、分组连接等API实现连接管理。SignalR可以应用需要实时数据的业务场景,如聊天室、仪表盘、监控程序等。

    SignalR结构可以抽象为Hub层、持久连接层、传输层和Internet协议层[5]。最高一层是Hub层,提供API用于服务端调用客户端浏览器的JavaScript函数,使用Hub的API可以向指定的客户端发送消息,避免直接向所有的客户端广播消息;持久连接层相对较低的一层,其作用是保持客户端与服务器之间的持久连接,并在連接上发送数据;传输层包括WebSockets、Server-SentEvents、ForeverFrame、长轮询传输方式,SignalR在传输方式上会优先使用WebSockets、Server-SentEvents两种传输方式,只有在这两种传输方式失败的情况下才会用ForeverFrame、长轮询,保证连接的实时性、可靠性和稳定性;具体结构如图1所示。

    3 系统设计与实现

    3.1 系统功能设计

    根据调研,物料的基本单位为箱子,每个箱子都有条形码,因此物料预警系统以扫描条形码来实现物料的入库和出库操作,通过入库出库操作更新物料的数据,然后向浏览器发送更新的物料数据,达到预警的效果。物料预警系统的用户对象是管理员、组长、组员。管理员负责系统的管理,主要职责是维护人员、权限管理、管理物料所属的项目信息、查询所有物料的操作日志以及监控所有小组的物料数量;组长负责查看属于自己小组的物料预警、物料查询以及查看自己小组的物料操作日志;小组组员负责处理物料入库和物料出库操作。

    在系统的功能模块设计中,最重要的是物料预警模块的设计,小组组长和管理员对物料预警的范围不同,小组组长需要的是能预警属于自己的物料信息,而管理员需要的是能预警所有物料的信息,因此在实现系统的功能时需要将不同的小组组长和管理员的身份区分,向其发送所需的数据。

    3.2 系统架构设计

    系统采用在设计Web应用系统中被广泛应用的三层架构设计,分层模式的设计可以有效降低组件之间耦合性,更有利于组件的重用[8]。物料预警系统分为三层:视图层、服务层和数据层,具体架构如图3所示。

    系统图架构采用Asp.net的MVC5框架实现业务的管理功能,使用SignalR实现物料的预警功能。在MVC5的框架中,用户通过浏览器发送请求,输URL以controller/action/id的形式向服务层的控制器Controller请求数据,通过URL路由的解析映射到对应的控制器和action;控制器通过数据层获取数据后选择对应的视图cshtml,解析成静态页面展示给用户。

    在整个系统设计中,SignalR是十分重要的,因为该组件是实现实时更新物料数据和预警的基础,因此结合MVC框架设计添加客户端和服务端的SignalR组件。在向用户显示的视图层,在显示物料预警的视图,通过SignalR客户端接收组件和SignalR的客户端支持组件(JavaScript组件)向服务层请求和接收数据。在服务层的SignalR服务中包含Hub类、持久连接类和物料监视器,其中Hub类负责调用客户端的组件向其发送数据,持久连接类负责和浏览器保持连接,物料监视器是使用SqlDependency 监听数据库中的物料数据,当物料数据更新时通过SignalR向客户端发送数据。

    为了方便小组组员可以在局域网内进行操作,需要设计WebService,通过手持的PDA与服务器进行数据入库和出库的操作。

    3.3 详细设计

    设计物料预警系统最主要两点是设计物料入库出库的处理和监视物料信息并传递到客户端(浏览器)的流程。

    3.3.1 物料出库入库流程设计

    工厂的操作小组组员在处理物料箱子时,通过手持PDA通过WebService向服务器传递箱子编号和操作的类型(入库和出库),服务端判断操作类型然后修改数据库中箱子表的状态。当箱子的状态发送更变时,数据库的触发器通过修改的状态和箱子所属的物料编号调整物料表中对应的物料的当前数量。具体流程如图4所示。

    3.3.2 物料预警流程设计

    物料预警系统采用的是B/S的架构设计,因此对于用户而言,客户端也就是浏览器。物料预警的程序流程设计如图5所示。

    用户在登陆后通过SignalR的JavaScript创建connection.chatHub对象,通过这个对象向服务端请求和接收数据。由于物料属于不同的小组,因此需要为登陆的用户划分不同的群组,服务端根据不同的群组加载所需要的物料信息数据。在服务端的Hub类中创建AddGroup函数,用户访问浏览器通过SignalR连接对象的server.addGroup函数向服务端的AddGroup函数传递群组编号,请求加入到对应的群组中。

    在服务端将用户所属群组编号加入对应的群组后,用户在通过浏览器向服务端Hub类的sendGroupMsg函数请求数据,服务端通过物料监视器采用SqlDependencys组件来监听数据库中物料表的数据变动情况,将最新的数据返回sendGroupMsg。最后服务端的Hub类中的sendGroupMsg函数将最新的物料数据以Json格式返回到客户端浏览器。客户端在接收到物料的Json数据后解析,最终以图表向用户展示。在解析的过程中,判断物料信息中是否包含红色状态的物料,如果存在则播放报警音频,提示组长和管理员物料库存紧张,需要补充库存。

    3.4 系统实现

    本文设计物料预警系统在Asp.Net平台,使用Microsoft Visual Studio2015工具开发,使用部署在操作系统为Windows Server的服务器上,通过IIS发布物料预警系统站点。

    界面采用Html5和JavaScript展示,为用户提供人性化的操作界面。物料随着出库和入库的操作,实时更新数据库中的物料数据。预警界面会实时更新数据,并通过直观的方式方便用户了解物料库存的情况。系统为用户展示信息时,通过物料的状态显示不同的颜色,绿色代表库存充足,黄色代表库存略微紧张,红色代表库存紧张,需要补充。表示物料使用情况的进度条按照当前数量占库存最大数量的百分百显示,用户在查看物料当前库存数量的同时也能够直观地了解目前物料的使用比例。物料库存信息预警界面如图6所示。

    4 结论

    本文提出的物料预警系统是在对SignalR框架的研究的基础上,利用其Web的通信框架设计的,实现物料信息实时监控的功能。该系统运行稳定,并且在工厂中得到很好的应用,有效解决了管理者对物料库存的管理、监控和预警的问题。该系统能够使用户直观地观察到物料的库存情况,了解在生成过程中物料的使用情况,为管理者做出决策提供数据支持,有利于工厂提高生成效率和产品质量。

    参考文献:

    [1] 钱思宇. 基于Web的仓储监控系统的研究与实现[J]. 化工自动化及仪表, 2011, 38(9): 1078-1080, 1146.

    [2] 仰燕兰, 金晓雪, 叶桦. ASP.NET AJAX框架研究及其在Web开发中的应用[J]. 计算机应用与软件, 2011, 38(6): 195-198.

    [3] 李燕. 基于ASP.NET SignalR的实时Web功能的实现[J]. 电脑知识与技术, 2016, 12(24): 62-63.

    [4] 何文学, 罗晟勇, 彭天玲. SignalR技术在光伏监控系统中的研究与应用[J]. 计算技术与自动化, 2016, 35(1): 14-17.

    [5] 张强. 在线医疗系统的设计与实现[D]. 天津: 天津大学, 2016.

    [6] JOSE M Aguilar. SignalR Programming in Microsoft ASP.NET[M]. 2014.

    [7] Roberto Vespa. SignalR Real-time Application Cookbook[M]. 2014.

    [8] 黃志国, 柯敏毅. 基于ASP_NET MVC的设备维护管理系统设计与实现[J]. 软件导刊,2019(6): 121-124.

    【通联编辑:谢媛媛】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 0:36:01