论文部分内容阅读
随着工业领域智能制造以及物联网的兴起,通过OPC UA协议获取设备的生产数据,并分析生产数据来提升生产效率成为主流趋势。本文针对目前市场上一些设备因出厂较早而无法提供OPC UA协议服务的问题,设计了一种基于OPC UA协议的数据采集系统。本文的研究内容主要包括以下几个部分:(1)本文中系统设计的核心部分是协议转换器的设计,通过协议转换器完成设备数据的协议转换。为了完成设备数据协议转换,并解决协议转换过程中链路复杂造成程序设计困难的问题,采用模块化设计将协议转换器划分成地址空间、数据请求器、协议解析器和驱动加载器。在地址空间的设计中,采用XML的树形结构保存节点之间的层级关系来提升节点检索的效率,采用OPC UA SDK提供的引用类来构造OPC UA协议中的地址空间。在数据请求器的设计中,通过制定数据请求信息规范使数据请求器能够根据使用者的需求完成设备数据的采集,同时为了让数据请求器能够兼容大部分驱动且具备可扩展性,基于工厂设计模式设计了驱动加载器。在协议解析器的设计中,为了让解析器能够根据使用者的需求进行数据解析,制定了解析协议信息规范,同时设计了节点管理类来对地址空间中的设备节点进行灵活的操作。为完成数据请求器以及协议解析器之间的数据交互,同时也为了让数据请求器能够兼容不同类型的设备驱动设计驱动开发模板,通过驱动开发模板规范设备驱动的开发流程,并完成机器人、PLC和车床的驱动开发。(2)为了存储历史数据和热点数据供其它应用使用,根据节点分类在MySQL中建立数据库,并按照设备类别存储历史数据,提高了历史数据查询效率,并通过Redis缓存数据库将最近采集转换的数据缓存至内存中,提升了客户端的请求效率。在系统中,主线程需要完成协议转换、历史数据存储、热点数据存储、日志以及报警等功能,但是主线程的执行效率很低并且协议转换的时延较大,为了解决这一问题,采用RabbitMQ消息中间件将历史存储、热点数据的存储以及其它功能与协议转换之间进行解耦,提升了系统主线程的执行效率并且提高了系统的吞吐量,并通过RabbitMQ为系统拓展留下接口。为了解决系统中配置文件混乱并且配置文件容易丢失或者被误删的问题,采用ZooKeeper分布式协同框架作为整个系统的配置中心,存储并管理整个系统中的配置信息,提高了系统的稳定性。(3)设计交互软件实现对协议转换器的操作,解决系统中需要配置的信息较多以及配置流程较为复杂的问题。同时为了简化设备节点层级配置、数据请求器配置以及协议解析器的配置流程,结合Winform中窗口控制技术以及工厂设计模式,在交互软件中设计向导功能。为了解决系统的安全性问题,依据OPC UA规范采用加密方法,在软件中完成了系统的安全性设置。同时在交互软件中设计查看历史数据、访问热点数据等功能。最后通过OPC UA客户端对交互软件进行测试。在完成基于OPC UA协议数据采集系统设计之后,采用虚拟调试技术结合加工工艺流程以及抛光打磨工艺流程对系统进行了验证,实验结果表明本文给出的基于OPC UA协议的数据采集系统符合设计目标,具备交互方便、转换准确以及拓展性强等优点。