0 引言
制造执行管理系统(Manufacturing Execution System, MES)是企业信息系统中重要的一部分,它是上层的计划管理系统与底层的工业控制系统之间信息交互的纽带。在指导工厂的生产运作工程中,MES的人机交互程序负责将系统收集到的信息实时反馈给现场操作人员。目前企业中部署MES人机交互程序时采用的部署方式,普遍存在程序可恢复性和安全性不强、维护时需要大量人力等困难。特别是中小型制造企业普遍存在制造实力弱、资金不足、管理制度不完善、基础落后、技术不强等不足。因此,企业迫切需要一个更简单安全的MES方案来提高企业的信息化程度和综合竞争力。为此,本文根据某企业的流水线装配流程的实际需求,在基于.NET中的ClickOnce技术的理论基础上,提出了一种安全可靠的MES部署方案,给出了基于ClickOnce的MES人机交互程序实现的系统配置、程序设计等关键技术的设计思路。
1 MES人机交互程序
作为企业上层计划决策系统和底层过程控制系统之间的桥梁,制造执行系统(MES)在车间生产的计划调度、过程管理等方面起到了越来越重要的作用。人机交互程序作为MES中的一部分,肩负着向每个工位上的操作工显示生产信息、控制工位流程、人员登陆等功能。
MES在装配线上的人机交互程序具有如下特点:
1)数量众多。在MES中需要部署大量的人机交互程序。每一个工位都配有一个操作屏供装配工操作。
2)部署环境相同。装配线上操作屏使用工厂内部局域网,采用统一的操作系统,程序运行环境一致。
3)基本功能一致。每个线上人机交互程序都具有相同的基本功能,与PLC交互逻辑相同。
与此同时在程序开发中的需要面对许多挑战,包括:
1) 需求更改频繁。MES实施时存在定制作量大、成本高、周期长的问题。在实际开发中程序迭代速度快次数多,一个版本使用一段时间后需要更改功能。
2) 各工位具体功能不同。虽然界面的基本功能一致,但在诸如上线工位、条码打印工位具有不同的附加功能。这些功能会增大程序的复杂性。
3) 功能间松散耦合。功能间采用紧耦合设计时,僵硬脆弱的架构往往固化了系统的大部分功能,只余小部分可以进行参数的配置,难以保证企业的敏捷性,无法支持企业快速适应市场和生产环境的变化。
传统的部署方式大多是采用Windows Installer部署,既开发完成后生成一个安装程序,由实施人员在每台线上计算机上安装。这种方式不但需要大量的人员负责安装配置程序,而且当程序频繁迭代更新时也容易造成版本混乱的问题。
2 C lickOnce自动部署功能
2.1 功能介绍
ClickOnce 是微软开发工具Visual Studio中的一种部署技术,使用ClickOnce可在Windows中创建能够自行更新的应用程序,用户像运行IOS上的APP一样,通过运行安装文件即可安装程序,在程序每次运行前都会检查是否需要更新。在ClickOnce 部署技术出现之前,传统部署技术一直存在着三个主要的问题:
1) 应用程序更新困难。传统部署技术一般是指利用Windows Installer在计算机中安装部署应用程序。每当用户需要更新应用程序时,用户都必须在计算机中将原程序卸载并重新安装整个应用程序。而在ClickOnce部署技术中,每次程序启动时都会自动检查是否有更新程序。当检查到需要进行程序更新时,只会从共享文件夹中下载更改过的部分应用程序,然后在计算机中建立一个新的文件夹重新安装应用程序。
2)更新后影响用户的其它程序。使用传统方式部署应用程序时,原始程序的共享组件通常会被更新后的应用程序继续使用,开发部署人员稍有不慎便有可能发生程序间的版本冲突。而使用ClickOnce部署时,由于每个版本的应用程序都会分开保存在不同的文件夹中,这样不会影响其他应用程序。
3)更新时要求管理员安全权限。使用传统方式部署应用程序时,要求必须具有管理员权限用户才能进行部署,并且安装升级程序也需要被授权的用户,这给安装部署带来了很多困难;而ClickOnce部署时,可以很方便的使用普通用户权限安装应用程序,但系统保证访问应用程序的过程是安全的。
使用传统的部署技术,开发人员为了解决以上问题尝尝会选择使用Web上的应用程序而不是桌面应用程序。使用WEB应用部署和安装都方便,但WEB应用在响应速度和用户界面丰富性上却比不上桌面窗体。而通过使用ClickOnce技术部署的桌面应用程序,在克服了这三个主要问题的同时可以继续享受桌面窗体的优点。
2.2 C lickOnce部署的原理
ClickOnce部署的核心是两个在发布时生成的XML文件:应用程序清单和部署清单。这两个文件一般在开发时通过Visual Studio中的发布向导自动生成,发布者也可以利用Microsoft WindowsSDK Tools中的清单生成和编辑工具(Mage.exe)来手动生成需要发布的应用程序清单和部署清单。
应用程序清单中记录的应用程序本身的信息,包括程序集信息、应用程序安装时需要的文件、安装程序时需要的windows用户账户级别以及清单更新在什么位置保存。
部署清单中主要记录应用程序的采用何种方式部署,其中包括程序当前的版本号、通过何种方式获取应用程序清单。
部署清单在创建后会被复制到设定好的部署位置。该位置可以是Web服务器、局域网中的共享文件夹或媒体(如 CD)。应用程序清单和应用程序文件也会被复制到在部署清单中的制定部署位置。
在利用ClickOnce部署程序时,用户可以在网页上或保存部署的共享文件夹中打开部署清单文件,之后程序会自动将应用程序下载和安装到计算机上的一个独立的文件夹中。安装时程序会弹出一个对话框让用户确认安装信息,之后程序便会自动安装,安装结束后应用程序会被启动。
因为ClickOnce应用程序被单独存放在一个文件夹内,每个程序都是完全独立于原有程序的,应用程序的每一个版本都安装到一个安全的独立的缓存中,并从该缓存运行。所以安装或运行利用ClickOnce不熟的应用程序不会影响到现有的其他应用程序。默认情况下,ClickOnce应用程序需要具有网络域安全权限的用户在windows中运行。通过设置应用程序清单,可以提升安装程序所需要的的安全权限。
应用程序在安装后会在用户的“开始”菜单和 “添加/删除程序”组中添加应用程序安装信息。与传统部署技术不同的是,使用ClickOnce技术部署的应用程序不会向计算机中的注册表或C盘中的“Program Files”文件夹添加任何内容,且用户在安装时仅需要有限的权限。ClickOnce应用程序在运行时可以自动检测是否有更新的版本;应用程序在启动时会比对自身部署清单中的版本号和部署位置中部署清单中的版本号,当发现更高的版本后程序会提示用户进行更新。在程序发布时,开发人员可以设置发布软件的版本号。在程序运行中,网络管理员也可以通过对共享文件夹中的程序进行更改来控制更新策略。在程序部署到计算机后,最终用户在发现更新时还可以选择本机是否要进行程序更新。
2.3 C lickOnce部署的优点
图1 部署方式对比
在安装方式上,两种部署方式也有差别。使用 ClickOnce作为部署方式时需要先将应用程序发布到共享文件夹、光盘等指定位置。用户在安装时从该位置运行安装程序。 使用 Windows Installer作为部署方式时,则需要先创建一个应用程序安装程序文件并在待安装的系统上分发安装文件。用户运行安装文件以安装应用程序。
由于 ClickOnce部署的应用程序可自行更新,因此 ClickOnce对于要求经常更新的应用程序而言是最好的选择。尽管 ClickOnce应用程序最初可以通过使用 CD-ROM 安装,但在局域网使用时用户才能利用 ClickOnce更新功能。
2.4 小结
MES在装配线上的人机交互程序的在开发过程中,ClickOnce技术相对传统的安装程序部署方案具有明显的优势。安装程序时操作简单,无需额外设置步骤。程序只需在服务器更新后,操作屏上就可以自动更新。由于在局域网上运行,网络环境稳定快速,无需考虑更新下载失败等因素干扰。每台触摸屏可以采用相同的ClickOnce安装源文件,在程序中对完成工位功能需要的组件进行设置。同时使用ClickOnce技术部署程序时基于证书、代码访问安全性策略和 ClickOnce信任提示,使得程序的安装与更新更为安全。
3 基于ClickOnce的信息系统总体设计实现方案
在上述研究的基础上,设计并开发了MES在装配线上的人机交互程序。其中心思想是把不同功能从需求中提取出来并进行分类。依照功能特性的不同分类处理。同时在设计时将这些功能与工位解耦合,降低调试和后期维护时的难度。
系统包括用于运行数据库的数据库服务器。用于提供OPC接口与PLC交互数据的OPC服务器。用于人机交互程序发布和管理的ClickOnce发布服务器,线上操作屏。由于ClickOnce发布服务器功能简单,所以将服务器运行于虚拟机上即可满足性能要求。
图2 网络结构图
在设计本项目的人机交互程序时,针对不同的功能需求如过程数据读取、工序提示查看、工位控制、总成上线等关键功能,进行分类做不同的设计。
工序提示查看功能。是在界面上显示操作工需要在本工位上进行的操作及安全提示。这些提示信息依工位保存在数据库中,且对于单一工位来说在系统运行时工序提示是不会改变的。在实现这类功能时,在程序启动前先运行一个准备程序,准备程序负责从数据库中读取本工位的信息到本地的XML文档中,之后程序启动时只对本地的XML文档进行读取操作。这样设计可以减少运行时查询数据库给数据库增加的负担,同时这样将程序与数据库解耦合的做法也有利于调试和测试工作。
在线信息提示功能。是指管理员可以将重要信息显示在人机交互界面上,通知线上操作工。在实现这类需要频繁读取数据库信息的功能时,可以将信息放置在数据库中单一的一个表中,每个界面程序定时扫描这个表,以提高读取速度。
过程数据读取功能。是指在工人操作工位时,交互程序的界面上会显示工位操作中得到的的各项测量数据。这些数据是由PLC采集到的,存储在PLC的DB块中。MES通过OPC接口读取数据后,存储在数据库中。交互程序周期性的扫瞄数据库所在工位的数据,并将数据显示在界面上。
每个工位需要采集的数据数量不同,但基本格式可以统一。在实现这部分功能时,将数据收集和显示分开,在服务器上实现数据收集,界面上只显示数据。这样在服务器上以统一格式收集数据,并存储到数据表中。而在界面上的仅需要定时扫描数据表上本工位的数据,并显示在界面上。
工位控制功能。操作工通过界面按钮控制工位放行。界面程序通过OPC服务器,将工位控制命令写入PLC中的DB块,并通过与控制系统定义好的接口与控制程序交互。设计时需要将不同工位上与控制系统交互的流程统一,使得每个工位的接口都是一致的。
总装上线功能。在上线工位记录总装信息。只在上线工位及几个特殊工位运行。在设计时将这样的功能提取出来单独开发,并在程序启动时加入判定,只在指定工位启动程序。
将功能分为以上几类后,人机交互界面上的功能可以进一步划分为所有工位均具有、与工位相关。同时以触摸屏的IP作为工位判断的标识,既将工位号与IP一一相关存储在数据库中,在界面的准备程序中判断触摸屏属于哪个工位。这样所有触摸屏上要部署的程序就可以用一套代码生成,从而满足了ClickOnce部署的条件。
4 结束语
基于ClickOnce自动部署方式设计的MES,利用Visual Studio中的部署技术,与OPC技术和SQLServer数据库紧密结合。可以自动、灵活、高效的部署MES人机交互界面。解决了企业部署实施MES人机交互程序时面临的程序可恢复性和安全性不强、维护时需要大量人力等问题。整套系统经过生产阶段的测试后,系统性能稳定,操作简单,可扩展性好,可配置性强,节约大量的维护部署人力,可以更好地推动企业的制造信息化发展,提高企业自身的竞争力。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于ClickOnce技术的MES人机交互程序的设计与实现
本文网址:http://www.toberp.com/html/consultation/10820511413.html