目录
摘要 I
Abstract III
1绪论 1
1.1研究背景 1
1.2国内 外研究现状 2
1.2.1国外研究现状 2
1.2.2国内研究现状 3
1.3论文 研究的主要内容及技术路 线 4
1.3.1主要内容 4
1.3.2技术路线 5
2系统总体结构设计 6
2.1车间设备现状 6
2.2系统功能要求 6
2.3系统组成架构 7
2.3.1数据显示层 9
2.3.2数据处理层 9
2.3.3数据存储层 10
2.3.4数据采集层 10
2.4系统开发环境 11
2.5本章 小结 12
3西门子 828D 数控系统数据采集与存储 13
3.1西门子828D数控系统OPC UA原理 13
3.1.1OPC UA 的架构 13
3.1.2OPC UA 的变量 14
3.1.3OPC UA 的配置 15
3.2基于OPC UA的数据采集 16
3.2.1OPC UA 客户端设计 16
3.2.1.1OPC UA客户端功能开发 16
3.2.1.2OPC UA客户端界面设计 18
3.2.2数据采集的实现 20
3.2.2.1数据采集的具体变量 20
3.2.2.2基于Python的数据采集 21
3.3西门子828D数控系统数据存储 22
3.3.1关键问题分析 22
3.3.2数据库结构的设计 23
3.3.3数据库表的设计 24
3.4本章小结 27
4Web 服务器层功能模块设计 28
4.1基于OEE的数据分析模块 28
4.1.1设备综合效率 OEE 28
4.1.2OEE 在本系统的应用 29
4.1.2.1数控机床状态定义 29
4.1.2.2OEE 基础数据 29
4.1.2.3OEE 参数计算 30
4.2基于改进的 SDT 算法数据压缩模块 31
4.2.1SDT 算法原理 32
4.2.2SDT 算法评价指标 32
4.2.3SDT 改进算法 33
4.3基于RabbitMQ和 WebSocket的实时数据推送模块 35
431基于RabbitMQ的采集层数据传输 35
4.3.1.1RabbitMQ 原理 36
4.3.1.2RabbitMQ 数据传输 37
4.3.2基于WebSocket的显示层数据传输 37
4.3.2.1WebSocket 原理 38
4.3.2.2WebSocket 数据传输 38
4.4数控机床信息管理模块 39
4.4.1后台数据管理 39
4.4.2机床点检信息管理 42
4.4.3机床故障信息管理 43
4.4.4机床备件信息管理 44
4.4.5机床基础数据管理 46
4.5本章小结 50
5软件系统测试 51
5.1实验环境搭建 51
5.2系统运行实例 52
5.2.1数控机床实时监测模块运行实例 52
5.2.2数控机床信息管理模块运行实例 54
5.3系统性能测试 56
5.3.1数据传输模块测试 56
5.3.2数据压缩模块测试 57
5.4系统功能测试 59
5.5本章小结 60
6结论与展望 62
6.1结论 62
6.2创新点 62
6.3展望 63
参考文献 64
攻读学位期间发表的学术论文及研究成果 67
致谢 68
1绪论
1.1研究背景
随着 “中国制造 2025”战略的实施,拉开了我国从制造业大国向制造业强国 的转变的序幕。我国互联网产业的快速发展,正在深刻的影响着我国的制造行业。 在智能制造方面,我国正加大力度建设智能工厂,加快实现工厂各种设备的互联互 通,同时利用互联网技术智能地根据实时信息进行分析、判断、自我调整、自动驱 动生产[1]。数控机床作为智能工厂建设关键设备,如何提升数控机床的信息化管理 水平更显得尤为重要。机床行业技术水平作为衡量一个国家基础工业发展水平的重 要指标,数控机床的研发更是各国在装备制造领域必争的兵家之地。数控机床是制 造业价值生成的基础和实现制造业转型的支点,是一个国家基础制造能力的核心部 分[2]。据统计,在2016年我国数控机床的销售额达到了2630.4亿元,同比增长7.69%。 在 2017~2022年,我国数控机床市场将会保持 10%~20%的增长速度。预计到 2022 年,我国数控机床行业的市场规模将超过5000 亿元[3]。可以看出,数控机床市场在 我国是如此庞大。
数控机床作为典型的机电一体化高端制造装备,其控制系统和机械系统具有很 高的技术含量,现代高档数控机床更是机械加工设备复杂化、精密化、自动化的代 表。随着制造业对数控机床的需求越来越大,数控机床在通用性、稳定性、安全性 等方面也面临着越来越多的挑战,数控机床发生故障的概率也随着提高[4]。在传统 的车间生产制造中,如果数控机床出现故障,只能通过专业的技术人员进行解决甚 至必须依靠厂家提供帮助,费时费力。如果故障不能得到及时的排除,那么生产进 度将会被影响,降低整个车间的加工效率,甚至可能造成企业客户的流失。同时在 整个车间中对于数控机床的状态的掌握往往只能通过机床自带的人机交互界面进行 获取,管理人员不能准确的获取当前数控机床的状态。各种信息大多都是通过纸张 的形式进行传递,没有进行合理的数据管理[5]。
因此要实现车间的信息化管理,及时解决数控机床的故障。优秀的车间管理模 式,合理的数据管理方法刻不容缓,数控机床加工的实时数据是对机床进行实时监 测的依据,在数控机床信息化建设当中,应当依托物联网技术,数据分析技术,通 信技术实现对数控机床状态进行实时监测和对数据的实时获取。同时应当对采集的 数据的运用数据分析的手段,使用Web技术进行数控机床的远程监测,进而得出合 理的结论,反馈给企业改进加工工艺,提高企业的效益[6, 7]。同时开发相应的数控 机床信息管理模块,实现对机床相关信息的统一管理。
所以,借助智能的数据采集技术、数据库存储技术、数据分析以及互联网通信 技术,为传统制造业的数据存储和设备监测提供新的解决思路。对形成智能化的生 产制造,推动我国迈向制造强国具有重要的意义[9],其具体的实际意义如下:
(1) 自动化数据采集,过程数据实时监测。在传统的数控设备的状态监测中, 数控机床的数据需要现场的操作工人进行手动的数据采集,故障信息主要根据人机 界面故障信息显示或者故障灯的闪烁进行判断,采集数据时常不准确,重要的是缺 乏实时性。同时采集的数据多为纸质存储或者使用传统的 EXCEL 进行存储,没有 合理的管理数据措施。利用数控机床的数据接口获取需要的过程数据,不仅减轻了 工人劳动强度,还提高数据采集的效率与准确性。同时使用基于 B/S 架构的信息可 视化技术实现了数控机床加工数据的实时显示。
(2) 数据的科学管理。单台数据库服务器存储海量的机床的加工过程数据已经 很难满足需求,由于系统主要进行存储实时采集的数据,多为数据写操作。搭建数 据库的主从配置,既提升了读写效率,也保证了数据的备份,使系统运行更加稳定、 高效,也为接下来对数控机床进行数据分析提供数据支撑。
(3) Web 远程数据监测与分析。通过使用基于 B/S 架构的 Web 技术,能够轻松 的在远端实现实时的掌握数控机床的运行状态,同时将采集到数据进行统计分析以 图表的形式直观的展示给的工作人员,管理人员也可以不用深入到一线车间就能实 时查看数控机床当前的状态,进而可以实现与现场人员的实时交流,实现对数控机 床的高效管理。
(4) 机床相关信息的可视化管理。要维持一台数控机床的正常运行,需要多方 面的共同配合。例如机床操作人员管理、故障解决知识库管理、数控机床备件管理 以及保养维护管理。通过实现上述内容的有效管理,能够更加高效管理数控机床整 个加工流程,提高及时解决故障的能力,提高机床的加工效率,保证生产高效有序 的 进行 。
基于此,该系统可实现远程或离线访问查看,同时为 MES (Manufacturing
Execution System,制造执行系统),ERP (Enterprise Resource Planning,企业资源 计划)系统提供一线生产车间的数据,为实现车间乃至企业的智能化管理提供数据 保障。
1.2国内外研究现状
随着智能制造的概念不断深化,工业互联网作为新一代信息技术与制造业深度
融合。基于B/S架构的Web技术也在慢慢的取代原有的C/S架构的客服端,数控机 床的智能数据采集、智能存储技术、实时数据监测、大数据分析、Web可视化信息 管理等多个领域已成为国内外学者研究的重点内容[10]。
1.2.1国外研究现状
(1)Web 实时监测研究现状
早在1996年,美国的NorthAndover公司开始了Web信息监控技术的研究。同年该 公司首次实现了将PLC接入了因特网[小。随着Web技术的不断发展,互联网公司Sun, 制造业公司Ford都纷纷加入了该项技术的研究。在这之后,美国麻省理工学院和斯 坦福大学联合发起了对Web远程信息监控技术的讨论的会议。随后,多家企业使用 Java联合开发了一套Web信息监控系统,该系统完成了对一定规模的设备信息实时监 控,并通过采集的数据完成了早期的数据分析。当然这只是早期的研究,而并未将 该系统应用到实际的生产环境中[12]o 2005年,NI公司在自家产品LabVIEW中首加入 了网络通讯处理模块,实现了基于B/S架构的Web远程监视系统。西门子开发的 WinCC软件可使用Web Navigator组建远程的Web控制系统,实现信息的可视化。国 外的研究起步早,技术大都比较成熟,但是都需要购买且价格昂贵。由于在数据传 输方面需要通过生产商的服务器,所以数据可能存在泄露风险[13] o
(2)设备信息管理研究现状 设备信息管理作为智能制造研究的一个重要的组成部分,以日本、德国、美国 为首的发达国家很早就对信息管理系统进行研发,与此进行了大规模的推广与应用。 Choy和Su从智能管理的角度研究了生产设备的性能预测与智能维护,智能管理, 最终实现了企业对生产管理的高度智能化[14, 15]。在2004年,Fan —TienChen研究 了基于协调性和柔性、高度自主能力的智能生产管理信息系统,为该领域的研究奠 定了基础。2005年,Jimenez提出了基于B/S架构的生产管理信息系统的应用框架 结构,实现了系统的模块化与敏捷开发[⑹o美国EDS公司为通用公司开发的IMAN 软件已经稳定运行了十多年,实现了高度智能化信息化的管理,极大地提高了通用 公司的市场竞争力[17]。日本传统制造业对企业信息化与智能化的重视程度非常高, 例如发那科,三菱等大型制造业都进行了相应的设备信息管理的研究以及相应的信 息管理数据库[18]。
1.2.2国内研究现状
(1)Web 实时监测研究现状
近年来, Web 技术在我国得到飞速的发展。在智能制造的号召下,基于 Web 的 监控技术在制造行业得到了广泛的关注,各高校人员也开始了相关的研究。上海应 用技术大学的张杰人通过OPC UA采集西门子840D数控机床加工的实时数据,利 用 Web 技术和数据库技术将实时信息显示在网页上,实现了数控机床的实时监测 [19]。武汉理工大学的 卓祯雨 利用 CORBA(Common Object Request Broker Architecture)技术结合传统的Web远程监控技术,使用Java开发出了四层结构的 Web监控系统。该系统降低了 Web服务器和数据库服务器的负载,大大提高了系统 的性能,在某油田原油生产中得到了应用[20]o太原理工大学的邱浩使用MongoDB 数据库建组建了高性能的分布式数据库存储系统,使用 Node.js 技术在该数据库系 统上开发了一套选煤厂机电设备实时运行监测系统,通过 MATLAB 将采集数据进 行分析,为选煤厂创造了经济效益㈤]。上海交通大学的夏志通过嵌入式适配器采集 数控机床的数据,利用WebServer技术开发了基于B/S架构的数控机床远程监视与 管理系统,实现了对数控系统实时状态的监测[22]。
(2)设备信息管理研究现状
我国在制造业相关设备信息管理方面的研究起步较晚,与发达国家有一定的差 距。近年来,随着互联网行业的发展与我国对智能制造的需求,我国提出了“中国 制造2025”的口号。国内的高校和企业都更加深入地对智能信息管理开展研究。东 北林业大学的王哲健[23]等针对中小型机械制造企业的实际生产和管理情况,开发了 一套适合中小型机械企业的生产管理信息系统。 该系统包括基础数据管理、 信息浏 览、工资及成本核算、生产信息管理以及系统管理等模块,较好的满足了企业的实 际需求。李大勇、 李欣[24]利用基于 MAXIMO 平台的 EAM 解决方案,将现代化的 技术与企业的实际生产情况进行结合,将设备作为核心、工作流引擎为手段,建设 了智能化、一体化的安全生产管理平台,极大地提高了企业的管理水平。西安理工 大学的孙晓宁[25]从实际需求出发,根据企业的运营模式,建立了印刷企业管理信息 系统的总体框架,解决了企业管理信息混乱、数据不全或缺失、流转不畅、安全无 法保证等问题。
由于 Web 技术具体有分布性强、维护简单、开发简单以及共享性强的特点,在 制造业的实时监控方案中得到了广泛的采用。但是基于 B/S 架构的 Web 应用在速度 和安全性上有先天的不足,要做到无延迟、零响应以及完全的实时监控仍然面临着 许多的问题[26]。本文也只能利用当前现有的 Web 技术,通过改进数据传输的架构, 进而提高系统的实时监测的性能。
1.3 论文研究的主要内容及技术路线
1.3.1主要内容
本文主要为了满足企业对数控机床实时运行监测、相关信息管理、数据可视化 分析的需求。研究了基于OPC UA的828D数控系统的实时数据采集;MySQL数据 库的设计,包括数据表的设计和数据库架构的设计;对海量的过程数据的压缩算法 进行了研究;对提高实时数据的传输速度的方法进行了创新;对采集的数据进行了 可视化的分析;设计了 Web 页面用于各种的数据的显示。论文的主要研究内容如下:
(1) 通过分析车间现状以及企业需求,进而提出了此次开发系统的设计要求, 并设计系统的架构,同时详细阐述了数据显示层模块、数据处理层模块、数据层存 储模块、数据采集层模块该四个模块的具体实现方法和模块的功能。
(2) 具体研究了西门子 828D 数控系统的 OPC UA 相关内容。通过具体分析
OPC UA的特点,使用Python语言开发了一个OPC UA的客户端。利用Python语 言编写了自动化的数据采集程序,实现了西门子 828D 数控系统实时数据的采集。 系统采用 MySQL 数据库进行加工过程数据与人工录入数据的存储,使用数据库分 表技术,解决数据表存储量过大的问题。使用数据库读写分离的架构设计,解决数
据读写的问题,挺高数据库性能瓶颈。
(3) 通过使用 RabbitMQ 技术结合 WebSocket 技术实现采集数据的实时推送, 降低网络延迟。通过SDT算法将实时采集的加工过程数据进行压缩,以减少数据库 的存储容量。通过使用OEE方法计算设备的综合效率,提高了数控机床的加工效率。 最后详细阐述了数控机床信息管理模块各个子模块实现的具体流程,包括用户登录 模块、机床点检模块、故障信息管理模块、机床备件管理模块、后台数据管理模块 等子模块的开发。
(4) 通过使用 HTML、CSS、JavaScript、Jquery 等编程语言与 Echarts 图形库 完成了用户登录界面、实时数据显示界面、数据统计分析界面、机床点检信息界面、 故障信息管理界面、机床备件信息管理界面的设计与实现。
1.3.2技术路线
根据研究的主要内容得出论文的主要技术路线如图1-1 所示。
图 1-1 技术路线
Figure 1-1 Technical Roadmap )
2系统总体结构设计
基于 B/S 架构的数控机床实时监测与信息管理系统总体结构主要由四个模块组 成:数据显示层模块、数据处理层模块、数据存储层模块、数据采集层模块。其中 数据显示层主要作用是显示采集的实时数据、数据统计报表以及历史数据;数据处 理层的主要作用是为数据显示层提供经过处理,并以特定的格式组成的实时数据与 非实时数据;数据存储层的主要作用是存储采集到的实时数据和非实时数据; 系统 采集模块的主要作用是通过OPC UA协议实时采集数控机床的实时数据。
本章主要分析了机械加工企业对数控机床信息精细化的需求,通过对当前存在 的弊端进行了需求分析,同时根据当前的需求设计系统的总体结构,介绍了系统的 各结构组成,分析了系统数据的流向。
2.1车间设备现状
本次进行数据采集的数控机床的是 VMC655H 数控机床,其安装的是西门子 828D 数控系统。由于该数控机床并未进行任何信息化改造。所以数控机床自身的设 备信息,以及加工过程的实时信息都只能从数控机床自身的交互界面获取或者从技 术手册中获取,这就导致了我们不能实时的获取到其设备信息和实时信息。与此同 时,也无法查询到机床相关历史数据,不能对机床所处的状态进行实时把握与有效 的分析。当机床出现某些故障的时候, 也无法查询历史故障信息,从而影响设备的 快速维修维护。以上种种原因使得机床的保养与维护处于被动的状态,从而降低了 机床的生产效率, 严重时可导致整个生产进度的耽搁。
2.2系统功能要求
该系统是应用于车间的西门子 828D 数控机床的实时监测与信息管理当中。为 了能够实现对机床运行状态的实时监测,并且同时掌握机床的各种信息,从而达到 更好的帮助技术人员和管理人员维修管理机床的目的。因此该系统需具备实时显示 机床基本信息的功能、加工过程实时数据的显示,能够及时的显示报警信息,并且 提供对故障信息处理的解决方案。其次还能够为制定机床的定时保养维护,配件的 管理策略等提供数据支持。
针对上述所提的要求,同时结合车间的实际状况。本次系统开发的功能应满足 以下几点要求:
(1) 机床实时数据采集 本次系统采集的实时数据主要有机床运行状态、加工位置、运行程序、报警信 息、主轴运行状态等相关数据。由于西门子 828D 数控系统自身是一个开放式的数 控系统,其自身是支持 OPC UA 协议。当我们获取到西门子授权后,通过西门子 828D数控系统提供的标准的数据接口进行数据采集。实时的加工信息主要是为了检 测数控机床当前的运行的状态,例如当某些数据超过限定值,就会触发系统报警。 根据现场的实际需求,本次需要实时监测的数据主要包括机床的开关机时间、机床 实时的运行状态、当前加工程序的具体信息、机床主轴的转速、主轴倍率、主轴负 载、主轴电流、主轴进给、主轴当前的三维坐标等数据。后续可通过以上的数据对 机床当前的状态,进行生产评估,同时也可将这些数据运用到机床的整个效率分析 当中。
(2) 数据存储高效、稳定
由于该生产线属于批量生产,数据产生的速度极快,同时造成数据量极大,存 储周期长。本次采用了建立数据缓冲区解决插入数据的问题,使用 MySQL 数据库 的表分区功能解决单表储存数据量过大的问题。同时对数据库定期进行全备份,保 证数据的安全性。
(3) 数控机床加工信息的实时显示
利用Web页面对采集到的实时数据进行显示,通过RabbitMQ技术和WebSocket 全双工通信技术,实现数据实时推送至前端进行显示,利用事件通知的方式, 减少 网络资源的消耗,减轻后台服务器的压力
(4) 可人工录入数据
由于机床本身自带的一些静态数据无法通过程序采集,需要工作人员进行手工 的录入,需要采取表单提交的方式存储到数据库当中。当维修人员对机床故障完成 维修之后,也需要将故障的信息以及故障的解决方案通过表单提交的方式提交后台 存储到数据库当中,以便后期能够快速的解决类似的故障。同时为了提高数控机床 的加工效率,保证生产,需要对机床进行定期的维 护保养,需要人工定期的制定保 养的清单,并且录入系统。
(5) 历史信息的查询
通过自定义过滤条件,可查询满足条件的机床加工的历史信息, 据此分析机床 当时的状态,包括故障信息,以及报警信息等。也可查询某个故障的维修历史,包 括维修负责人,维修时间,维修的部件等。
(6) 统计报表
机床运行的过程中产生大量加工数据,需要统计例如机床的开关机时间、故障 报警代码、主轴的转速、主轴的负载等数据,通过报表形式实时的展示给技术人员。 除了实时的展示数据外,系统还可以以周、月、年作为统计的时间单位,对诸如本 月的报警次数、机床加工时间等数据进行统计形成统计报表,保证生产管理者能够 实时的获取机床的状态,以保证机床高效的运行,减少机床停机的概率,以及事故 率。
2.3系统组成架构
为了实现车间信息化的目标,本次设计的 828D 数控机床信息可视化平台需要
符合企业的实际需求,提高企业对设备状态的实时的把控,更加的人性化,智能化 的管理整个工厂的加工设备,提高入职人员的培训效率,工作人员更加容易的了解 整个机床的性能、参数,更好地掌控一线车间的状况,便于快速响应制定决策。本 系统的总体架构如图 2-l 所示。
图 2-1 系统总体框架图
(Figure 2-1 System overall framework diagram )
系统采用的是 B/S 的模式,整个系统由四个部分组成。包括:数据显示层,数 据处理层、数据存储层、数据采集层等。底层的数据采集通过 OPC UA 协议访问数 控机床对外提供数据的API,经过数据处理后将数据储存到MySQL数据库当中。 客户端通过地址访问Web服务器,Web服务器请求数据库得到相应的数据。其中服 务器定义好接口的地址,客户端通过访问该接口获取JSON格式的数据。其中JSON 是一种形如{keyl:value2,key2:value2}格式的数据交换格式,易于阅读和理解,也易于 机器解析和生成,是理想的数据交换格式[27, 28]。
2.3.1数据显示层
数据显示层是整个系统与外界进行交互的窗口, 当用户通过浏览器访问指定的 URL时,浏览器向后端发起AJAX请求,通过访问数据处理层提供的数据接口,获 取从 MySQL 数据库中查询的数据。同时浏览器发起 WebSocket 请求,建立浏览器 和服务器的全双工通信,然后从消息队列中获取实时数据,以此保证数据的实时性。 同时操作人员也可以在页面手工输入数据。最终数据通过前端页面的各种图表,表 格显示数据。本系统通过使用HTML、CSS、JavaScript、Jquery等编程语言与Echarts 图形库完成了整个前端Web页面的设计。页面结构如图2-2所示。
图 2-2 页面模块组成图
Figure 2-2 Page module composition diagram )
2.3.2数据处理层
数据处理层主要是利用Python编程进行构建,利用Python的Django框架对外 提供Web服务。Django框架是基于MVT (Model View Template)模式的后端框架, 实现了和数据库交互并进行数据处理、接收请求进行业务处理,封装构造要返回html 页面等主要的功能[29]。框架本身自带的ORM (Object Relational Mapping)框架, 非常的容易进行数据的管理和查询,实现数据库的增删改查的功能。Django框架结 构如图2-3 所示。
图 2-3 Django 框架
( Figure 2-3 Django framework )
2.3.3数据存储层
数据存储层使用 MySQL 数据库进行数据的存储,包括数控机床的动态数据和 静态数据。由于系统采集的数据多,所以需要存储的数据量大。同时,因为建立数 据库连接非常消耗资源,所以采用一次数据库 IO 操作,插入多条记录,保证插入 数据的效率。采用 MySQL 的表分区的操作,缓解数据库由于单表数据量过大,而 造成数据查询缓慢。采用读写分离的模式,能够线性的提升数据库的读性能,消除 读写锁冲突从而提升数据库的写性能,同时也实现了数据的备份[30]。数据库读写分 离架构如图 2-4 所示。
图 2-4 数据库读写分离架构图
(Figure 2-4 Database read-write separation architecture diagram)
2.3.4数据采集层
数据采集层的数据来源主要是数控机床在加工时候产生的各种实时数据以及人 工录入的数据。本次的采集对象是西门子 828D 数控系统里面的数据。自动采集程 序采用Python语言进行编写,Python语言是一门“胶水”语言,有许多可供用户选 择的工具包[31]。开发工具包则使用开源的OpcUa工具包,通过西门子828D数控系 统所支持 OPC UA 协议来获取各种实时数据,并通过 TCP/IP 协议进行传输。 通过 西门子 828D 数控系统提供的标准的 OPC UA 数据接口进行数据采集,最后将处理 后的数据按一定格式存储到MySQL数据库中或者使用RabbitMQ消息队列直接传输 到数据处理层供前端页面进行调用。数据采集流程如图2-5 所示。
图 2-5 数据采集流程图
Figure 2-5 Data collection flow diagram )
通过上述的介绍可以发现,本系统经过 OPC UA 协议采集机床的动态数据和静 态数据,经过底层的数据处理模块将数据储存到 MySQL 当中,或是直接通过写入 消息队列中供数据处理层调用。当使用者通过 URL 地址访问 Web 界面,向数据处 理层发起请求,后台通过数据接口或者消息队列获取数据库当中相应的数据或者采 集的实时数据,最终将数据以 JSON 格式返回到 Web 界面当中,通过各种图形图表 直观的展示机床的当前状态。整个系统的数据流向如图 2-6 所示。
图 2-6 数据流向图
Figure 2-6 Data flow diagram)
2.4系统开发环境
根据系统功能要求以及系统组成架构,为了完成本次开发。本次采用的主要软
ll
(C) 1994-2023 China Academic Journal Electronic Publishing House. All rights reserved, http://www.cnki.net
硬件型号如表2-1、 2-2所示:
表 2-1 系统软件
Table 2-1 System software)
名称 具体项 备注
操作系统 Win10
编程语言 Python3.7 、JavaScript 1.8.5 Python编写程序;JavaScript用于前后端数据交
HTML、CSS 互;HTML、CSS用于网页的开发
数据库 MySQL5.7 存储采集到的静态数据和动态数据
Web 框 架 Django2.1 为外界提供 Web 服务
消息队列 RabbitMQ3.6.14 提供消息队列服务,传递采集数据
IDE Pycharm2019 集成开发环境,编写程序快速、高效
表 2-2 系统硬件
Table 2-2 System hardware)
名称 具体项 备注
服务器 Win10 系统
工控机 倍福 TwinCAT 2 访问信息管理模块,人工录入数据
加工中心 VMC655H 安装西门子828D数控系统
监控大屏 75 寸显示器 作为实时监控显示屏幕
2.5本章小结
通过上述的介绍,本章主要完成了以下工作:
(1)分析了当前企业生产的状况以及企业的实际需求,并提出当前系统需要满 足 的功 能 。
(2)完成了可视化系统的框架的设计,并详细的阐述了当前系统各个组成部分 的功能、原理和实现方法。
(3)阐述系统整个数据的流向,明确了数据各个具体的使用环节。
(4)根据系统功能要求设计了系统组成架构,明确了系统的软,硬件组成。
3西门子 828D 数控系统数据采集与存储
西门子 828D 数控系统是西门子的全数字化中高端数控系统,该系统具有模块 化、开放性的特点,且该系统支持最新的OPC UA规范。OPC UA是一种标准的工 业接口规范,同时也是规范的实施数据中间件开发的框架,具
3.1西门子828D数控系统OPC UA原理
3.1.1OPC UA 的架构
OPC UA 作为一种新的数据传输架构, 将传统的 OPC 规范进行了有效的集成与 改进。其灵活性、安全性、扩展性相对于传统的 OPC 技术有了大大的提高,其目的 是为了满足工业 4.0 的需求,同时给行业的软、硬件供应商和集成方案解决商提供 了一种新的思路。由于OPC UA不再依赖于Windows系统,现在只需要满足OPC UA 新的规范,就能在诸如苹果的 macOS 操作系统、 Linux 操作系统、各种嵌入式系统 中开发出自己的 OPC UA 客户端与服务器。
西门子 828D 数控系统的 OPC UA 为用户提供了统一的地址空间和服务模型,解 决了以往同一系统的数据不能同时被访问的难题。同时改进了原来 OPC 信息传输的 弊端,可以通过管理员授权的单一端口进行数据的访问,减少了因为防火墙原因访 问失败的问题。同时西门子 828D 数控系统的 OPC UA 允许数据按不同格式表示, 允许开发者自定义变量,这极大方便了对数据的获取。 西门子 828D 数控系统 OPC UA 采用了基于 C/S 网络架构的设计模式。其中某个设备的 OPC UA 服务器可以被 一个或者多个UPC UA客户端访问。同时也可以通过OPC UA隧道技术穿透防火墙 接入互联网,在通过 OPC UA 客户端的进行访问[33-37]。其技术框架如图 3-1 所示。
图 3-1 OPC UA 技术框架
Figure 3-1 OPC UA Technical framework)
3.1.2OPC UA 的变量
本次使用的是西门子OPERATE V4.7版本的OPC UA服务器,该服务器将报警 服务器和数据提供服务器整合到一起,给外界提供唯一的一个OPC UA服务器供其 调用。根据西门子提供的《西门子828D NC变量和接口信号》可知,西门子828D 数控系统的OPC UA服务器所提供的系统变量如表3-1所示。
表 3-1 系统变量
Table 3-1 System variable)
变量地址 变量名称
/Axis 轴变量
/Bag 方式组变量
/Ch annel 通道变量
/DriveVisa 驱动变量
/GUD GUD 变量
/Hmi Hmi 变量
/Random Plc 变量
/Methods 通过方法读入变量表中不包含的变量
/Nck Nck 变 量
/Plc Plc 变量
/SEA 通用设定数据
通道设定数据
刀具变量
本次采集的机床实时数据来自/Channel地址中的通道变量,报警实时数据来自 /Nck 地址变量,刀具数据来自 /Tool 地址变量。
3.1.3OPC UA 的配置
西门子828D数控系统自身支持最新的OPC UA,在使用西门子828D数控系统 的 OPC UA 之前,首先需要购买西门子的授权服务,开通此项功能。然后通过机床 的 HMI 面板配置 OPC UA 的服务。主要配置过程如图 3-2、 3-3 所示:
(1)注册系统选项,启动 OPC UA 服务器。
图 3-2 启动 OPC UA 服务器
Figure 3-2 Start the OPC UA server)
(2)设置OPC UA服务器,创建管理员及密码并激活OPCUA服务器。
图 3-3 初始化配置信息
Figure 3-3 Initial configuration information)
完成上述操作以后,确保HMI面板上的系统时间正确,重启系统,激活OPC UA 服务器完成对OPC UA服务的设置。
3.2基于OPC UA的数据采集
西门子 828D 数控系统具有“简单、好用、开放”的特点。通过向西门子购买 OPC UA服务器的授权之后,就可以开发相应的符合OPC UA规范的客户端程序, 并可以通过西门子828D数控系统的OPC UA服务器对外提供的数据接口访问系统 的数据。本小节主要介绍如何开发OPC UA客户端实现快速获取OPC UA浏览器所 支持的变量,以及方便的获取各变量的属性以及当前值。通过采用Python编程语言 实现了对西门子828D数控系统的数据采集。
3.2.1OPC UA 客户端设计
OPC UA服务器负责管理自身的数据和处理逻辑,并通过OPC UA通讯协议对 UPC UA客户端提供相应的服务。当OPC UA客户端向OPC UA服务器发送请求时, 服务器接收请求返回响应,这种C/S网络架构的通信形式可以实现安全、快速、稳 定、加密的数据交换,同时减少数据在传输的过程中的丢包现象,节约了网络带宽, 保证传输不受到环境和网络的过大影响[38]。
3.2.1.1OPC UA客户端功能开发
选定Pycharm2019开发环境,开发使用的是Python语言,使用的工具包是GitHub 开源的OpcUa工具包,可视化界面基于Python的PyQT5图形库编写。主程序的开
发流程 图如图 3-4 所示:
图 3-4 主程序流程示意图
(Figure 3-4 Schematic diagram of the main program flow)
主程序开发关键技术如下:
(1)开发环境配置
以 Python 为开发语言, 集成开发环境选择 JetBrains 软件公司出品的 PyCharm2019,使用OpcUa工具包连接西门子828D数控系统内置OPC UA服 务器, 使用 QtDesigner 来制作 UI 界面,最终使用 PyInstaller 将 Python 文件打 包成exe文件。具体开发工具如表3-2所示:
表 3-2 客户端开发工具
(Table 3-2 Client development tools)
工具名称 版本号
Python 3.7
PyCharm 2019
PyInstaller 3.4
PyQt5 5.11.3
OpcUa 0.98.7
QtDesigner 3.1
(2)初始化OPC UA的协议栈
初始化OPC UA协议栈的目的就是在连接到OPC UA服务器之前,与OPC UA 服务器建立信息交流的通道,该通道是独立于协议之外的通道,用于数据交换的安 全性。 在 Python 编程的中具体表现在导入 OpcUa 工具包的时候,该工具包有一个 名为―init__.py文件初始文件。
(3)连接OPC UA的服务器
通过 OpcUa 工具包的 Connect 函数连接到 OPC UA 服务器,通过 Disconnect 函 数断开与OPC UA服务器的连接。
(4)遍历获取节点属性
当连接到 OPC UA 服务器的时候,通过 get_node 方法获取节点对象, 通过 get_attributes方法获取node节点的属性及值,本次开发的OPC UA客户端主要提供 的功能 如 表 3-3 所示:
表 3-3 客户端主要功能
Table 3-3 Main functions of the client)
功能 描述
连接 连接OPC UA服务器
断开 断开 OPC UA 服务器
浏览 浏览 OPC UA 的 所 有变量
读 读取该节点的所有属性
订阅 订阅当前节点
监测 显示当前节点值的变化
3.2.1.2OPC UA客户端界面设计
界面采用 QtDesigner 进行编写, 将编写完毕的 UI 文件使用 pyuic 工具转换为 Python 文件代码,编写相关控件的逻辑函数,建立界面与程序的联系。最终使用 PyInstaller工具将其打包为exe文件。程序的主界面原型如图3-5所示:
图 3-5 主界面原型图
(Figure 3-5 Main interface prototype)
OPC UA 客户端界面主要由五个窗口组成:
(1) OPC UA 连接窗口
在连接栏窗口中,通过显式的输入当前OPC UA的URL地址,同时将用户名和 密码通过参数的形式进行传递。点击连接按钮,通过 OPC UA 客户端程序的解析, 将各个参数与OPC UA服务器进行匹配,如通过参数正确即可成功连接OPCUA服 务器。同时也可点击断开按钮,断开与OPC UA服务器的连接。
(2) OPC UA变量地址浏览窗口
在变量地址浏览窗口中,当输入正确的 URL 地址连接上 OPC UA 服务器时,该 浏览框即可显示当前 OPC UA 服务器所有的系统变量,用户或者开发人员可以通过 对照《西门子828D NC变量和接口信号》手册从变量地址浏览窗口中获取变量的具 体地址、变量名称、变量浏览名、节点的ID值。
(3) OPC UA变量属性浏览窗口 在变量属性浏览窗口中,当用户点击左侧的具体变量时,可以在该窗口查看变
量的具体属性值,例如变量的属性、变量值、变量类型。
(4) OPC UA变量订阅窗口 在变量订阅窗口中,当用户订阅某个变量时,就可以在该窗口查看订阅的变量
的当前的状态。
(5) OPC UA变量监测窗口 在变量监测窗口中,当用户订阅某个变量时,可通过该窗口查看当前订阅变量
当前值的变化趋势。
3.2.2数据采集的实现
本次设计的基于B/S架构的828D数控机床信息可视化平台的数据主要来源有两 部分,来自机床的实时数据与人工录入的静态数据。由于人工录入数据比较简单, 这里主要讲解关于使用Python程序自动采集机床的实时数据。
机床的实时数据主要是指通过OPC UA协议实时的采集数控机床当前的加工过 程数据。采集的数据一部分保存到 MySQL 数据库中,一部分通过消息队列传输到 数据处理层供前端页面使用。
3.2.2.1数据采集的具体变量
查询《西门子828D OPC UA配置手册》可知,OPC UA服务器支持监控项的 最大数量的计算公式如式(3-1)所示。
SL
MN = — (3-1)
UES
式中:
MN(Max Number): 最大采样数据条目数
SL(System Load): 系统负载
UES (Update Every Second):每秒更新
对OPC UA服务器进行数据采集的采样速率有开发者自定义,通过每秒更新公 式可得知OPC UA服务器变量每秒更新的数目,每秒更新计算公式如式(3-2)所示。
UES = — (3-2)
SR
式中:
SR (Sampling Rate):采样速率
西门子 828D 数控系统的系统负载为 500 条目/秒,本次预设的采样速率为 1 秒采集一次,根据上述公式可以计算出OPC UA服务器支持监控项的最大数据量为 500 个。本次监控的变量数目远远小于 500,故采集变量的数目满足 OPC UA 服务 器的要求。
通过OPC UA客户端并对照《西门子828D NC变量和接口信号》可以精确的 获取变量的地址,同时将监控的变量进行分类的统计,具体包括主轴相关变量地址 表、 XYZ 轴坐标相关变量地址表、程序相关变量地址表、报警信息变量地址表,各 变量地址具体信息如表3-4~3-7 所示。
表 3-4 主轴相关变量地址表
(Table 3-4 Spindle related variable address Table)
变量名称 变量地址
主轴转速 ns=2;s=/Channel/Spindle/actSpeed
主轴转速倍率 主轴负载率 主轴进给速度 主轴进给倍率 当前刀具号 主轴电流 ns=2;s=/Channel/Spindle/speedOvr
ns=2;s=/Channel/Spindle/driveLoad ns=2;s=/Channel/MachineAxis/actFeedRate ns=2;s=/Channel/GeometricAxis/feedRateOvr ns=2;s=/Channel/State/acMeasTNumber ns=2;s=/ChannelMachineAxis/aaCurr
表 3-5 XYZ 轴坐标相关变量地址表
(Table 3-5 XYZ axis coordinate related variable address Ta ble)
变量名称 变量地址
刀具 X 坐标位置 ns=2;s=/Channel/MachineAxis/actToolBasePos[u1,1]
刀具 Y 坐标位置 ns=2;s=/Channel/MachineAxis/actToolBasePos[u1,2]
刀具 Z 坐标位置 ns=2;s=/Channel/MachineAxis/actToolBasePos[u1,3]
X 轴剩余加工量 ns=2;s=/Channel/GeometricAxis/actDistToGoEns[u1,1]
Y 轴剩余加 工量 ns=2;s=/Channel/GeometricAxis/actDistToGoEns[u1,2]
Z 轴剩余加工量 ns=2;s=/Channel/GeometricAxis/actDistToGoEns[u1,3]
(Table 表 3-6 程 序 相关 变量 地址 表
3-6 Program related variable address Table)
变量名称 变量地址
正在运行程序名 /Channel/ProgramInfo/progName
当前程序段的编号 /Channel/ProgramInfo/actLineNumber
当前程序状态 /Channel/Spindle/actSpeed
当前主运行程序段 /Channel/ProgramInfo/actBlock
程序运行时间估算 /Channel/State/acPRTimeM
从程序段开始的时间 /Channel/State/acTime
当前运行刀具号 /Channel/State/acMeasTNumber
表 3-7 报警信息变量地址表
(Table 3-7 Alarm information variable address Table)
变量名称 变量地址
报警数量 /Nck/State/numAlarms
报警编号 /Nck/SequencedAlarms/alarmNo
报警时间 /Nck/SequencedAlarms/timeBCD
3.2.2.2基于 Python 的 数据采集
该采集程序采用的开发包与开发 OPC UA 的客户端的同为 GitHub 开源的基于 Python的OpcUa工具包。首先初始化OPC UA协议栈后,客户端发出请求与OPC UA 服务器建立连接,之后程序的任何请求都会通过此连接进行传输。数据采集程序流 程图如图 3-6 所示。
图 3-6 数据采集程序流程图
Figure 3-6 Data collection program flow diagram)
数据采集的核心流程是通过对机床当前状态进行判断,当机床当前状态发生变 化的时候,调用不同组的对应采集函数对组中各个监测的变量项进行数据采集,其 中采集的数据可以在压缩后直接存储到 MySQL 数据库中为数据统计分析提供数据 支撑,也可以直接传输到消息队列中以供调用。
3.3西门子828D数控系统数据存储
本节主要探讨了如何储存西门子 828D 数控系统采集数据,主要包括数据库设 计与具体的实现方案。根据系统的要求,数控机床恒线速以及G63代码常见解决方案对数据库设计所遇见的问题进行了具体的 分析,并提出了三个关键的问题:如何建立不同数据表的结构、如何实现存储海量 的实时加工数据、如何降低数据库的负载。与此同时,对以上三个问题都提出了具 体的解决措施。
3.3.1关键问题分析
在软件开发中,数据库的设计是非常重要的一项工作。优秀的数据库设计,可 以大大的提高整个系统的运行效率, 保证该信息可视化平台的稳定运行。 MySQL 数据库作为一款开源且性能优异的关系型数据库,对事务和外键等支持非常好,在 Web开发中占据了巨大的份额阳]。此次采用MySQL的主要原因有:MySQL数据库 和 Python 语言以及 Django 框架的兼容性很高,有许多开源的工具包可供开发者使 用,方便整个项目的开发;MySQL数据库支持多个客户机的同时访问,方便后期采 集数据在不同用户之间的共享;MySQL拥有优异的读写性能,数据表的数据存储量 大,满足本次系统的要求。但是在整个系统中数据的储存以及管理需要面对以下的 三个问题:第一, 如何在单表中存储海量的实时加工数据,通过 3.2.2 小节的分析 可以知道本次采集系统预设的采集的频率是每秒采集一次数据,经过计算,仅仅是 变量值为数字量的采集变量,当数控机床工作20小时的数据采集量就高达数 GB, 如果将所有的实时数据存入 MySQL 数据库,会给数据库服务器造成巨大的存储压 力,所以如何存储海量的实时加工数据,如何正确采用数据压缩算法,就显得格外 的重要;第二,如何正确的划分各个数据表之间的关系,建立正确主外键,使得数 据查询的效率更高,这对于提高整个系统的响应速度非常重要,因此应正确分析各 个实体之间的关系,建立实体关系模型;第三,本次开发的信息可视化平台向后台 数据库读写请求操作很频繁,如果所有的操作都在一个数据库就会给数据库带来很 大的读写压力,所以设计读写分离的数据库架构,将写操作放在主数据库中,将读 操作放在从数据库当中,从而使得数据库的负载均匀,降低数据库的负载压力。
3.3.2数据库结构的设计
通过上一小节的分析可知,数控机床工作20小时的数据采集量就达数GB,也 就意味着数据库单表的数据量大小随着时间线性增加。当需要对数据进行统计分析 的时候,由于单表的数据量巨大,就会造成查询效率降低,影响整个系统的运行速 度,从而给用户造成不好的体验。同时将读写操作放在同一个数据库进行,造成数 据库负载压力过大,查询缓慢。基于此,本次的数据库设计在数据库内部对实时数 据表采用水平分区的方式进行设计。数据表分区示意图如图 3-7 所示。
实时数据表R 表3 | 表4
图 3-7 数据库分区示意图
Figure 3-7 Database partition diagram)
对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理的子表组成。 通过设置分区列并以时间范围为参照标准,数据按照每一个月为尺度进行分区。从 而将单表的数据以趋于平均的方式存储在多个逻辑表中,从而逻辑上降低了单个表 的数据存储大小,提高了 MySQL的性能。
对于数据库的读操作是共享锁并不会阻塞其他读操作,但写操作会阻塞其他所 有操作。因此读的效率一般是远高于写的效率的,当进行数据采集存储实时数据的 时候都是写操作,此时写操作会阻塞大量的读,如果此时数据量大,甚至会造成数 据库崩溃,因此采用数据库读写分离的策略解决这个问题,同时由于从库会将主库 的数据进行实时的复制,所以也实现了数据库的备份操作。数据库读写分离流程如 图3-8 所示。
图 3-8 读写分离流程图
Figure 3-8 Read and write separation flowchart)
通过上图可以看出,当主库中的数据发生变化的时候,此时通过读取主库中的 二进制日志的改变记录,然后将从库的日志重新执行,从而使得从数据库的数据与 主数据库保持一致[40-42]。
3.3.3数据库表的设计
首先归纳出需要进行存储的数据,正确划分各个实体之间的关系,确保实体之
间的关系明确,无重复。根据分析,系统各实体之间的关系如图3-9 所示。
图 3-9 系统实体关系模型
Figure 3-9 System entity relationship model )
通过3.3.2 小节对数据库结构的设计,可以极大地提高数据库的存储性能。根据 系统的实体关系模型图,将采集的实时数据划分为4 部分:机床加工的实时过程数 据、机床加工的程序信息、机床的报警信息、机床开关机信息。分别为其建立数据 表, 其中 Machine_real_data 数 据 表 用 来 存 储 机 床 加 工 的 实 时 过 程 数 据, Machine_program_data 数据表用来存储机床加工实时程序信息, Machine_alarm_data 数据表用来存储机床实时的报警信息, Machine_onoff_data 数据表用来存储机床开 关机信息,各数据表的结构如表3-8~ 3-11 所示。
表 3-8 Machine_real_data 数据表结构
Table 3-8 Machine real data data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段 Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Spindle_speed Float 主轴转速 否
Spindle_override Float 主轴倍率 否
Spindle_load Float 主轴负载 否
Spindle current Float 主轴电流 否
Feed_ speed Float 进给速度 否
Feed_ override Float 进给负载 否
X_location Float X 轴当前坐标 否
Y_location Float Y 轴当前坐标 否
Z_location Float Z 轴当前坐标 否
X_move Float X 轴剩余移动量 否
Y_move Float Y 轴剩余移动量 否
Z_move Float Z 轴剩余移动量 否
Current_time Datatime 当期时间 否
表 3-9 Machine_porgram _data 数据表结构
Table 3-9 Machine porgram data data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Program_name Varchar 程序名 否
Program_num Int 程序段号 否
Program_content Varchar 程序内容 否
Machine_state Varchar 机床当 前状态 否
Tool_num Varchar 当前刀具号 否
表 3-10 Machine_alarm_data 数据表结构
Table 3-10 Machine alarm data data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Alarm_count Int 报警数量 否
Alarm_num Int 报警编号 否
Current_ontime Datatime 报警开始时间 否
Current_offtime Datatime 报警结束时间 否
表 3-11 Machine_onoff _data 数据表结构
Table 3-11 Machine onoff data data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
On_time Datatime 开机时间 否
Off time Datatime 关机时间 否
3.4 本章小结
通过上述介绍,本章主要完成了以下工作:
(1) 具体分析了西门子828D数控系统的OPC UA的结构、功能、变量以及如 何配置,为数据采集做好基础工作。
(2) 开发符合规范的OPC UA客户端浏览西门子828D数控系统的OPC UA服 务器的变量,通过Python编写数据采集程序,通过OPC UA实现数控机床实时的数 据采集。
(3) 使用MySQL数据将采集的数据进行存储,在数据库表的基础上利用数据 表分区功能减少单表的数据存储量,同时设计了数据库的读写分离的架构,避免了 因数据库写操作而阻塞数据库的其他操作,从而提高了数据库的性能。
4Web 服务器层功能模块设计
数据的采集是完成整个系统的第一步。利用不同的算法或者不同的处理逻辑对 数据进行有效的分析,从而得出不同的结论,是开发此系统目的之一。本章就此问 题探讨了使用SDT (旋转门)算法对海量的实时过程数据进行压缩,然后通过OEE 将数据进行有效的分析得出结果。利用RabbitMQ技术和WebSocket技术,直接将 采集到的实时数据进行前端页面的显示。最后根据需求,详细阐述了开发数控机床 信息管理模块的过程。
4.1基于 OEE 的数 据分析模块
设备综合效率OEE是衡量生产效率的黄金标准,它确定了生产时间中真正生产 效率的百分比。 OEE 高意味着生产制造速度快,没有停顿时间[43]。 计算 OEE 被用 作衡量设备的综合利用性能。通过计算OEE和潜在损失,可以获得如何系统地改进 制造过程的重要结论。OEE也是确定损失、基准进度和提高制造设备生产率的最佳 单一指标[44]。
4.1.1设备综合效率 OEE
设备综合效率 OEE 是主要是由三个部分组成包括设备时间开动率、性能开动 率、合格品率。其中设备时间开动率主要用来评价设备因为某种原因而无法开动, 从而带来的损失;性能开动率主要用来考虑任何导致生产不能以最大速度运行的因 素;合格品率主要用来衡量加工后没有达到质量的产品[切。OEE的计算方法为三个 指标的乘积,其计算公式为:
OEE = ETOR x PS x PR (4-1)
式中:
ETOR (Equipment time operating rate): 设备时间开动率
PS (Performance Start Rate):性能开动率
PR( Pass Rate): 合格率
OT (Operation Time):操作时间
PWT (Planned Working Time):计划工作时间
TPC (Theoretical Processing Cycle):理论加工周期
APT(Actual Production Time): 实际生产时间
QP(Qualified Product): 合格品
TO(Total Output): 总 产量
4.1.2OEE 在本系统的应用
4.1.2.1 数控机床状态 定义
通过OPC UA对西门子828D数控系统进行实时数据采集时,由3.2.2.2小节的 分析可知当数控机床发生变化的时候,OPC UA服务器的相关变量会发生变化,此 时程序会进行自动的采集数据,并对数据进行基本的处理,并通过依据数据将数控 机床的状态分为 5 种,如表 4-1 所示。
表 4-1 机床状态
Table 4-1 Machine status)
机床状态说明 机床状态定义
机床开机,系统通电,电源指示灯亮起 开机
机床完成开机,准备运行 加工程序 待机
机床启动加工,数控程序开始运行 加工
机床换刀、上下料、程序上传下载 转换
机床检修、计划停机、能源中断 停机
机床关机,系统断电,电源指示灯熄灭 关机
通过机床状态定义,本次将各状态分别与对应的时间段进行匹配。例如开机状 态即为开机时间,关机状态即为关机时间,待机状态则为待机时间,加工状态即为 加工时间,转换状态即为转换时间,停机状态即为停机时间。通过对上述数控机床 状态的定义,为接下来具体计算机床 OEE 做好理论支撑。
4.1.2.2OEE 基础数据
通过 4.1.2.1小节对数控机床状态的定义可知。影响数控机床的综合效率的因素 有很多,在本次开发的系统中,应具体分析这些影响因素。通过与管理人员,操作 人员实际沟通并结合上一小节对数控机床状态的定义分析,得出主要影响数控机床 的综合效率的因素有以下的几种:机床检修、计划停机、停电、待机等因素造成的 停机时间。
为了更好的计算数控机床的设备综合效率,便于 OEE 基础数据获取。故将各种 基础数据储存在如下数据表当中, 具体数据如表 4-2 所示。
表 4-2 OEE 基础数据表结构
(Table 4-2 OEE basic data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Open_time Float 通 电时 间 否
Run_time Float 运行时间 否
Wait_time Float 待机时间 否
Maintenance Float 维 修时间 否
Planned_shutdown Float 计划停机 否
Energy_interruption Float 能源中断 否
Qualified Int 合格品数量 否
Unqualified Int 不合格品数量 否
分析可知,由于该机床为批量加工同一种工件刹车盘,且有机械手自动上下料, 故由此可以认为每次单个零件加工时的准备时间是固定的。而维修时间、计划停机 时间、能源中断时间都可以从报表中获取,其他的机床状态的定义的时间均可以通 过 OPC UA 进行采集得到。
获取该数控机床某一周的运行情况并进行汇总,耗时如表4-3 所示:
表 4-3 机床运行数据统计
Table 4-3 Machine tool operation data statistics)
耗时项 耗时(h)
通电时间 84
运行时间 60.7
待机时间 5.7
维 修时 间 3.6
能源中断 0
计划停机时间 14
理论加工周期 0.25
合格品数 174 个
不合格品数 6个
4.1.2.3OEE参数计算
根据4.1.1小节对OEE公式的介绍,以及通过本系统采集到数据,可以按照OEE 的计算方式进行编程计算,获取OEE核心的三个指标。在本系统中要计算设备时间
开动率ETOR需要获取操作时间OT和计划工作时间PWT,系统中操作时间和计划
工作时间计算方法如式(4-5)(4-6)所示。
OT =PWT -DT (4-5)
PWT = AT (4-6)
式中:
DT (Down Time):停机时间
AT (All Time):总时间
计算性能开动率PS,首先需要先获取到理论加工周期TPC和实际生产时间APT, 其中实际生产时间APT需要从MES中获取或者操作工人的中记录中获取本系统的 理论加工周期计算方法如式(4-7)所示。
TPC = NUM x ET (4-7)
式中:
NUM (Number):工作时间内加工的工件数
ET (Estimated Time):预计加工时间
合格率PR的计算方式较为简单,只需要获取当前加工时间段内,加工工件的合 格品数量 QP 和加工的工件总数量 TO。
通过4.1.1节与本节对OEE公式的定义并结合4.122小节获取的OEE计算的基 础数据,就可以计算出该数控机床的OEE,其中:
设备时间开动率:ETOR=53.7/84X 100% = 63.93%
性能开动率:PS=0.25X (156+6)/53.7x 100%=74.13%
合格品率: PR=174/180=96.7%
设备综合效率:OEE=63.93%X74.13%x96.7%=45.83%
通过具体分析OEE的各项指标,可以看出设备时间开动率需要改善,可以通过
减少故障维修的时间以及计划停机时间,同时减少加工前的准备时间从而减少待机
时间,最终实现设备时间开动率的提高。显然,通过分析OEE可以找出影响加工效 率的环节,从而对企业产生积极的作用。
4.2基于改进的SDT算法数据压缩模块
在实时监控系统中,过程数据是进行故障诊断、工艺参数优化、数据挖掘以及
数据分析的重要的数据来源。根据3.3.1 小节分析的可知,数控机床工作 20 个小时 的产生的数据量高达数 GB。 若将其全部存入数据库,就会造成极大的存储负担。
本次采集的数控机床实时数据具有典型的工业数据的特点:在某段时间内, 数
据波动小,变化趋势平稳。而旋转门算法是一种通过使用线性
合对连续的过程数 据进行压缩的算法,主要适用于数据波动范围小,且连续的整型、浮点型数据的压 缩。其中旋转门算法具有压缩效率高、压缩比高、压缩误差可控制的特点,现已广 泛用于对实时数据的压缩[46]。因此需要在数据存入到数据库之前,结合旋转门算法~ 31
(C) 1994-2023 China Academic Journal Electronic Publishing House. All rights reserved, http://www.cnki.net
进行数据处理,通过数据压缩,以减少数据存储空间的浪费,提高存储的效率。
4.2.1SDT 算法原理
对于SDT算法,其核心的原理就是利用起点和终点确定的直线来代替其他的处 于误差范围内的数据点。当需要保存数据点的时候,会将当前数据点和上一个数据 点以及各自对应的时间点的数值大小进行保存,同时当前保存的数据点作为下一个 压缩区间的起点[47]。SDT算法原理如图4-1所示。
t0 t1 t2 t3 t4 t5 t
时间
图 4-1 SDT 算法原理图
(Figure 4-1 SDT algorithm principle diagram )
图4-1中的a,b,c,d,e,f均为需要保存的数据点,AE为容差(即门的宽 度)。其中a点为压缩的第一个数据点,根据容差的大小在a点上方和下方构建旋转 门的两个支点A1和A2,当只有1个数据点a的时候,此时门是关着的。随着数据 点的增加,此时门会逐渐的打开且在一段时间内门一旦打开就不会关闭。当两扇门 的内角和小于180°的时候,旋转继续进行。当两扇门的内角和大于或等于180°的 时候,此时将保存当前的数据点的前一个数据点以及时间。如图 4-1 所示,当旋转 至e点的时候,此时两门不满足继续旋转的条件,故将d点以及当前时间点进行存 储,并且将d点作为旋转门的当前起点,对下个数据点进行判断。重复以上流程直 到将所有的数据进行压缩归档[48-50]。
4.2.2SDT 算法评价指标
一般来说,衡量数据压缩的性能的指标包括压缩比CR (Compression Ratio)和 压缩误差CE (Compression Error)。其中压缩比CR用来表示压缩前的数据点的个 数和压缩后的数据点的个数的比值,值越小表示压缩的性能越高。压缩比 CR 的计 算公式如式(4-8)所示:
CR = n (4-8)
m
式中:n为压缩前的数据点的个数;m表示压缩后的数据点的个数且n < m。
这里使用平均绝对误差来定义压缩误差CE,平均绝对误差常用于测量实验数据 集的预测值和实际值之间的平均绝对误差。故通过计算压缩误差 CE 可以得知压缩 前后数据之间的逼近的程度,压缩误差 CE 越小表示压缩越精确。 压缩误差 CE 的 计算公式如式(4-9) 所示:
n
CE =-工比-7;| (4-9)
ni=0
式中:n为压缩前的数据点的个数;y为压缩前的数据点的值;y;为压缩后的 数据点经解压后的数据点的值。
从4.2.1小节关于SDT算法的原理描述中可以得知,容差hE是整个SDT算法 唯一可以进行人工干预的参数,容差AE大小合理的选择决定了压缩比和压缩误差最 终值的大小,也是保证数据压缩效果的关键因素。当容差hE偏大时,压缩比也随之 提高,但是会增加压缩误差,造成压缩数据与原始数据之间的偏差较大。当容差hE 偏小时,会保留较多的原始数据,得不到到良好的压缩效果。因此为了获得较好的 压缩效果,提高压缩的性能,就需要动态的调整容差,已获得更高的压缩比和更低 的压缩误差。
4.2.3SDT 改进算法
为了降低压缩的误差,提高压缩的精度。本次改进的 SDT 算法使用压缩误差 CE 来衡量压缩前后数据失真的程度,通过求解原始数据的压缩误差与期望压缩误 差的比值以达到动态的调整容差hE的目的,进而获得更好的压缩效果。
首先,在数据压缩之前自定义期望的压缩误差CE,利用改进的旋转门算法对原 始数据进行压缩。将压缩过后的数据进行解压,求出其压缩误差CE,计算该压缩 误差与自定义的压缩误差之间的比值b,然后通过比值b对容差进行实时的调整, 已达到降低压缩的误差的目的。 同时对上述流程不断的进行迭代求解,通过判断压 缩数据的压缩误差CE是否达到要求,动态调整容差h^E,使得被压缩的数据达到期 望的压缩误差,提高压缩的整体性能。
(1) 改进的 SDT 算法的流程
改进的SDT算法的流程图如图4-2所示。
图 4-2 改进的 SDT 算法流程图
Figure 4-2 Improved SDT algorithm flow diagram)
(2)SDT 改进算法步骤
设容差为A£,其范围为AE"in < AE < E ;T为压缩区间的最大时间间隔;e表 示自定义的期望压缩误差;CE表示压缩后的解压缩数据的压缩误差。
算法的具体步骤如下:
步骤1:首先初始化SDT改进算法的参数,设定AE"in初始值为0.8,AE^初始 min max
值为 0.2,即 AE =(AEmax + AEmin)/2,误差 e=0.5。
步骤2:设定压缩区间时间间隔为T,获取时间间隔为T的待压缩数据,将其读 入缓存当中进行下一步的SDT算法压缩。
步骤 3:对待压缩数据进行 SDT 算法压缩,首先计算最近保存的数据点到下一 个数据点的两扇旋转门的斜率心和d,n„,重复该步骤计算下一数据点的两扇旋转门 的斜率k”和knn,比较两数据点的k”和konn,并且保留上门斜率较大值与下门斜率 较小值。与此同时,如果上门斜率k””大于或等于下门斜率k””时,存储上一数据点, 并将当前数据点作为新的数据压缩起始点。如果上门斜率k”小于下门斜率kdnnn,则 该数据点将被丢弃。重复上述过程,直到所有的数据压缩完毕,然后进行下一步骤 的操作。
步骤4:等待压缩数据压缩完毕,将压缩完毕的数据进行解压缩。设压缩前的数 据为y,y,…,y”,解压后的数据为y;,y:,…,y;,利用式4-2带入数据,计算出数据 压缩前和数据压缩后的压缩误差CE值。然后计算CE值与自定义的期望误差e的比 值b,然后进行下一步骤的操作。
步骤5 :通过步骤4得到的比值b对容差hE进行动态的调整。
(1)如果b> 1,则认为解压后计算的压缩误差大于自定义的期望压缩误差。 则令容差hE = hEb,同时应满足hEn < hE < hEax。
(2)如果b < 1,则认为解压后计算的压缩误差小于自定义的期望压缩误差。 也即容差hE选择合理,不需要进行调整。
步骤6:利用调整后的容差hE,返回步骤3对数据进行重新的压缩,通过不断 地进行迭代计算,直到比值b < 1。保存压缩后的数据,完成整个数据压缩的过程。
4.3基于 RabbitMQ 和 WebSocket 的实时数据推送模块
为了实时的掌握数控机床在加工过程的状态,保证数控机床正常的运行。同时 在机床出现停机时,能够快速的定位故障位置,减少维修时间,提高维修效率,提 升数控机床信息化管理水平,实时数据传输是保证上述功能实现的前提。在数控机 床加工过程中,本系统通过 OPC UA 对数控机床进行实时数据采集,采集的实时数 据一方面处理后直接存入MySQL数据库,另一方面通过消息队列RabbitMQ传输到 数据处理模块,然后经由 WebSocket 协议直接推送到前端进行实时的数据显示。本 小节在第3 章的数据采集的基础上,设计了基于 JSON 的数据序列化格式,以及如 何通过消息队列 RabbitMQ 和 WebSocket 进行实时数据传输的架构。
4.3.1基于RabbitMQ的采集层数据传输
消息队列MQ(message queuing)是一种服务于不同应用程序间的异步的通信方 式。消息队列可以驻留在内存或者磁盘上,直到队列中的信息被取走为止,在消息 队列的模式当中,消息的产生者和消息的接收者分别定义为生产者和消费者[51]。队 列在信息传递之间有着诸多的优势,比如:消息异步传输、应用间解耦、流量削峰。 (1)消息异步传输:通过使用消息队列,不用等待队列中数据是否已经被消费者获 取,就可以直接处理下一个任务,从而减少等待时间,实现高效的数据传输。 (2) 应用间解耦:生产者不需要考虑是哪一个消费者会消费当前的数据,只需要将产生 的数据放入消息队列当中。(3)流量削峰:在一些高并发的场景中,所有的请求都 将写入到消息队列中,从而实时了请求的缓冲处理,极大地降低业务处理系统的压 力,同时以保证了数据处理的准确性[52]。
目前常用的消息队列中间件有 Kafka、ActiveMQ、RabbitMQ、RocketMQ 等这 几种。 ActiveMQ 和 RabbitMQ 这两种的消息队列 的数据吞吐量小于 Kafka 和 RocketMQ,适用于数据吞吐量一般的应用。常用消息队列的特性如下表4-4所示。
表 4-4 不同消息队列的特性
Table 4-4 Characteristics of different message queues)
名称 单机吞吐量 时效性 可用性 可靠性 功能支持
Kafka 10万级 毫秒级 非常高 可达 0 丢失 功能较少,支持简单的
MQ 功能
ActiveMQ 万级 毫秒级 高 可能丢失 功能相比其他MQ极其
Az
完备
RabbitMQ 万级 微妙级 高 可达 0 丢失 功能完备,性能高,延迟 低
RocketMQ 10 万级 毫秒级 非常高 可达 0 丢失 功能完备,对分布式支持
好,扩展性强
本次开发的实时监测模块主要考虑到实时性的问题,所以对延迟的要求较高, 同时RabbitMQ与本次采用的Python语言的集成度较好,故采用RabbitMQ作为系 统的消息队列中间件。
4.3.1.1RabbitMQ 原理
高级消息队列协议(advanced message queuing protocol,AMQP)是一个异步消 息传递所使用的应用层协议规范,该协议不仅定义了一种网络协议,同时也定义了 服务端的服务和行为。基于Erlang编程语言开发的RabbitMQ是AMQP规范是标准 实现,支持多种开发语言的。同时通过AMQP,RabbitMQ提供了灵活的消息路由、 配置化的消息持久化以及跨数据中心通信[53]。
在 RabbitMQ 的结构当中, 服务端主要是由交换机和队列组成, 而客户端主要 是由消费者和生产者组成。其中交换机主要接受生产者发送的消息,队列用来临时 存放数据的容器。RabbitMQ的消息传输模式如图4-3所示。
当生产者产生数据时,经由交换机转存至相应的队列中进行暂存,随后队列中 数据遵循先进先出的原则被消费者依次进行消费[54]。
4.3.1.2RabbitMQ 数据传输
通过3.2.2.1小节的分析可知数据采集的具体变量包括了主轴相关变量、XYZ 轴相关变量、程序相关变量、报警信息相关变量这 4 类实时数据。对于数控机床实 时数据的采集本次系统预设1s采集一次,为了解决实时数据传输频率高和传输量大 的问题,故采用 RabbitMQ 进行实时数据的传输,不仅可以保证数据传输的实时性, 保证数据不丢失,而且由于数据在传输中并不会保存到文件或者数据库中,也极大 地减少了磁盘的频繁读写[55]。
(1) 数据传输系统设计
基于 RabbitMQ 的采集层数据传输系统,实现了进程间的相互通信。实时数据 采集模块作为生产者,后端数据处理模块作为消费者。其中实时数据采集模块用于 连接OPC UA服务器,后端数据处理模块将接收到的实时数据封装为JSON的数据 格式,便于数据在各个模块之间的传递。基于 RabbitMQ 的采集层数据传输流向如 图 4-4 所示。
实时数据
图 4-4 基于 RabbitMQ 的采集层数据流向图
(Figure 4-4 Data flow chart of the acquisition layer based on RabbitMQ)
(2) 系统实现
该数据传输系统采用 Python 作为开发语言,使用开源的 Pika 库所提供 API 函 数操作RabbitMQo在RabbitMQ的生产者端,首先将数据进行序列化成JSON格式, 然后使用 basic_publish 方法将数据放入队列当中,实现发布消息的功能, 而在 RabbitMQ 的消费者端 程序一直处于阻塞模式, 当 数 据到来 时 程序自 动 调 用 basic_consume 方法接收对应的队列消息,最后通过 callback 回调函数解析传递的数 据,获取数据。
4.3.2基于 WebSocket 的显示层数据传输
在传统 B/S 架构的实时监测中,为保证数据传输的实时性,通常使用 AJAX 轮 询技术由浏览器主动向后端询问是否有实时数据[56]。该方式在方法的实现上比较简 单,但是缺陷也很明显。(1 )轮询每隔一定时间,重复发送HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求,加大服务器的压力,浪费服务器资源。(2)轮询 在服务端没有数据的时候,会产生大量的无效的请求, 浪费带宽。(3)轮询中,由 于请求是异步的,故响应结果无序,有可能造成数据的无效[57]。
基于HTML5标准的WebSocket通信机制,是建立在TCP (Transmission Control Protocol,传输控制协议)连接上实现全双工通讯的协议。在基于B/S架构的前后端 通信中,只需要浏览器和服务器完成一次握手, 两者之间就可以进行持久的连接, 也可实现数据的双向通信,实时性强延迟小。 WebSocket 占用的网络带宽少,控制 开销小,且几乎所有的浏览器都支持[58, 59]。因此它是实现浏览器和服务器之间数据 实时推送的理想通信机制。
4.3.2.1WebSocket 原理
WebSocket 是基于 TCP 传输协议,其本身属于应用层协议。 在于后端的连接当 中,复用了 HTTP握手通道,但是WebSocket在建立长连接之后,实现了浏览器和 服务器的双向通信[60],其交互的过程如图 4-5 所示。
图 4-5 WebSocket 浏览器与服务器交互过程
(Figure 4-5 WebSocket browser and server interaction process)
在连接开始时,由浏览器发起GET请求携带主要参数Upgrade: WebSocket。在 取得服务器的响应后,服务器携带主要参数Switching: Protocols发送至浏览器,服 务器返回状态码101,表示服务器同意连接协议转换为WebSocket,此时浏览器与 服务器就建立了 WebSocket 连接。
4.3.2.2WebSocket 数据传输
通过4.3.1小节可以得知,通过WebSocket传输到前端页面进行显示的数据主要 是来自 RabbitMQ 中数据,如果使用 AJAX 轮询的方式进行数据的获取,浪费服务 器资源与带宽,故使用支持全双工通信的 WebSocket 技术。同时考虑到数据量过大 且 Django 框架需要使用 Redis 数据库做缓存,故使用 Redis 数据库的发布-订阅功能 进行数据的传输以及数据的缓存。
(1) 数据传输系统设计
基于 WebSocket 的前端页面的实时数据推送系统,主要有四个部分组成包括: 数据源、 Redis 数据库、 WebSocket 推送服务、浏览器。当实时数据被暂存在 Redis 数据库当中,此时通过其发布-订阅功能就可以将数据通过 WebSocket 推送至前端进 行显示。 基于 WebSocket 的显示层数据流向如图4-6 所示。
图 4-6 基于 WebSocket 的显示层数据流向图
(Figure 4-6 Data flow diagram of display layer based on WebSocket)
(2) 系统实现
显示层数据传输系统采用了开源的 Django-WebSocket-Redis 工具包。该工具包 将 Redis 数据库作为 Django 框架的缓存数据库, 同时使用了 Redis 数据库的发布- 订阅功能,实现数据自动通过 WebSocket 发送至前端页面。在前端页面中通过使用 WS4Redis.js 插件的 WS4Redis 方法向服务器发起连接请求,服务器接收请求与前端 建立WebSocket连接。后端服务器通过publish_message方法进数据传输到Redis的 指定的通道中, 因为此时使用的是发布-订阅模式, 故前端使用 receive_message 回 调函数即可实时的接收数据,然后解析数据将其渲染到页面进行显示。
4.4数控机床信息管理模块
在传统的车间生产制造中,与数控机床相关的数据大多是通过人工进行采集, 同时使用纸质文件进行保存。 在进行数据回溯时,不仅费时费力,而且存在数据错 误与数据丢失的风险[61]。本文开发的数控机床信息管理模块主要目的就是建立数控 机床的基础数据管理中心,将与数控机床相关的数据通过格式化后存到数据库当中, 实现信息集成与信息管理,提升车间的管理水平。同时为MES,ERP系统提供数据 支撑。该数控机床信息管理模块主要由设备基础数据管理模块、故障信息管理模块、 机床点检信息管理模块、备件信息管理模块,后台数据管理模块等子模块组成。
4.4.1后台数据管理
在整个数控机床信息管理模块当中,有些数据的改动是需要后台数据管理员来 完成,例如:增加系统用户以及对用户权限做管理。利用 Django 开发的后台数据管 理模块,可以方便的对用户进行增删改查以及对用户进行权限管理,同时也可便捷 的导入系统初始数据,提高数据录入以及数据管理的效率。
( 1 )用户权限管理
在数控加工车间当中,环境较为复杂,为了保障整个系统的安全,必须对系统 的使用人员进行权限管理,不同的人员对应不同的权限。在整个系统中,主要有超 级管理员、设备工程师、普通操作人员三类用户。
数控机床信息管理模块主要提供以下功能:用户信息管理、设备点检信息管理、 机床数据管理、故障信息管理、机床备件管理。其中,超级管理员拥有全部权限, 出于安全的考虑,系统只允许同时一个超级管理员在线对所有数据进行修改或者添 加。设备工程师拥有部分模块的所有权限,可对机床自身的数据进行管理、对机床 的故障信息进行管理、以及对备件信息进行管理。 普通操作人员主要拥有各种模块 的查看权限,以及设备点检信息的修改权限。上述三类人员具体权限如表4-5所示。
表 4-5 用户具体权限表
Table 4-5 User specific permission Table)
用户名称 用户管理 机床基础
数据管理 故障信息
管理 机床点检
信息管理 备件信息
管理
超级管理员 增删改查 增删改查 增删改查 增删改查 增删改查
设备工程师 -- 查 增删改查 查 查
普通操作人员 -- 查 查 增删改查 查
通过以上的具体的权限管理,当用户登录时,会通过一系列的验证操作。用户 具体管理流程图如图 4-7 所示。
图 4-7 用户管理流程图
Figure 4-7 User management flowchart)
(2)用户信息管理 在用户信息管理模块中,超级管理员通过上述流程可以创建新用户,同时将用
户信息保存至用户数据表当中,用户数据表的结构如表 4-6 所示。
表 4-6 User_info 数据表结构
Table 4-6 User info data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段 Id 否 Pk
Username Varchar 用户名 否
Password Varchar 密码 否
Is_type Int 人员类别 否
Email Varchar 邮箱 否
Last_login Datetime 登录时间 否
Data joined Datetime 创建时间 否
4.4.2机床点检信息管理
随着数控机床使用年限的增加,对数控机床进行定时的保养与维护就显得更加 的重要。如果在长期的加工过程中,不制定相应的数控机床保养策略,那么在后期 的使用中就会大大的增加数控机床的故障率,同时使得数控机床的加工精度降低, 产品质量难以得到保障。通过和数控机床的操作人员以及车间管理人员的交流,本 次开发的设备点检信息模块可以定时记录人员对数控机床的点检记录,从而实现对 数控设备点检信息的管理。
( 1 ) 点检项目
本次数控机床的型号为VMC655H,使用的是西门子828D数控系统。相比传统 的普通机床,对数控机床的日常保养要求更高,本次对数控机床具体的保养项目以
及要求如表4-7 所示。 表 4-7 数控机床具体点检项目及内容
(Table 4-7 Specific inspection items and content of CNC machine tools)
点检项目 点检内容
横梁、滑枕 检查是否有漏油和渗油现象
传动机构 使用听声法和触觉法检查旋转和进给机构是否有异响声
主轴头 方健是否磨损, 锥孔是否有磕碰伤 ,主轴头外表 面是否有
新的磕碰痕迹
接油盒 、 水槽 检查机床周围的接油盒和水槽是否有漏油、漏水情况,并
清理槽内杂物
冷却液滤网 清 理铁屑及杂物,保 持滤网清洁
导轨防护罩 是否有损坏并及时清理与工作台面之间的铁屑及杂物
工作台面 有无新的磕伤、 铣伤的痕迹,及时砂轮或油石处理磕碰
后 的高 点
控制面板 外表保持清洁,按键、指示 灯、波段开 关、钥 匙开 关是否正常
手轮 外表保持清洁,调节旋钮是否正常
(2)点检信息数据表设计 为了实现机床点检信息的有效管理,需要将每次点检信息都保存至数据库当中 以便后期对数控机床的状态进行判定,制定更加有针对性的点检项目。数控机床点 检信息数据表结构如表4-8 所示。
表 4-8 点检信息数据表结构
( Table 4-8 Check information data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Hl_Hz Varchar 横梁、滑枕 否
Cd Varchar 传动机构 否
Zz Varchar 主轴头 否
Jyh_Sc Varchar 接油盒、水槽 否
Lw Varchar 冷却液滤网 否
Kzmb Varchar 控制面板 否
Fhz Varchar 导轨防护罩 否
Gztm Varchar 工作台面 否
Sl Varchar 手轮 否
4.4.3机床故障信息管理
故障数据是对数控机床加工产品进行可靠性分析和定期检验数控机床加工状态 的重要数据来源。同时当数控机床发生相同或者类似的故障的时候,维修人员能够 通过故障记录快速找到解决问题的方法,提高维修的速率。通过对国内的机械制造 企业的调查发现,大多数的企业没有将数控机床的故障信息做专门的收集与分析, 而是由某个部门将数控机床维修工单保存在 Excel 表或者直接记录在纸质工单上。 同时在企业在收集故障数据方面时效性差,容易遗漏数据,保存在Excel或者纸质 文件中不方便进行查找,不能有效利用故障数据。本次设计的数控机床故障信息管 理模块,能够快速的将故障信息进行录入,同时支持快速的进行故障信息的查找。
(1) 故障信息的分类
由于数控机床的故障信息种类繁多,所以需要将故障信息进行分类,将故障信 息进行规范化,有利于快速收集整理故障信息,保存在数据库当中。在故障信息管 理模块中,我们将故障信息分为 5 类,并且细化各种故障类型的具体故障项,数控 机床具体故障类型与故障具体项如表 4-9 所示。
表 4-9 数控机床故障类型与故障具体项
Table 4-9 CNC machine tool fault types and fault specific items)
故障类型 故障具体项
状态 温升异常 噪音超标 振动过大 异响 冲击过大
损坏 零部件损坏 元器件损坏 线路短路 线路断路
功能 部件不移动 移动不到位 回转不准
堵塞或 液、油、气 液、油、 气 排屑槽堵塞
渗漏 堵塞 渗漏
超差 几何精度 定位精度 工作精度
超差 超差 超差
松动 紧固件松动 预紧松动
其他 传感器失灵 电压不稳 用户操作错误 误报警 系统参数错误
(2)故障信息数据表设计
通过上述对数控机床故障信息的具体分类,随即可在数据库中建立相应的故障 信息表,进而有效管理机床的故障信息。故障信息数据表的具体结构如表4-10所示。
表 4-10 故障数据 表 结 构
Table 4-10 Failure data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Machine_name Varchar 机床名称 否
Fault_type Varchar 故障类型 否
Fault_item Varchar 故障具体项 否
Fault_info Varchar 故障信息 否
Fault_solve Varchar 故障解决方案 否
Fault_ontime Datatime 故障发生时间 否
Fault offtime Datatime 故障解决时间 否
4.4.4机床备件信息管理
当车间数控机床出现故障时,如果企业因为维修备件不足而导致维修停止,轻 则造成数控机床停机,重则影响生产进度。因此对备件信息进行有效管理,制定备 件录入系统的规范化操作,同时管理人员要实时统计车间备件数量,实时记录备件 入库数量,并且当备件数量低于某个数值时系统将发出警告,以此来保证备件充足 的数量。当数控机床出现故障的时候,能够第一时间提供维修备件,提高企业的快 速维修能力,保证生产的正常进行。
(1)备件出入库 本次开发的备件信息管理模块主要针对数控机床的电气备件和机械备件。当执 行备件入库时,首先需要对备件进行初检,如果检验不合格则直接剔除,不执行入 库记录;检验合格则直接进行入库操作,此时系统会自动记录入库备件数量、类型、 入库执行人员、入库时间,数控铣床电气图参考.pdf最终完成备件的入库。当数控机床发生故障需要更换备 件时,此时管理人员可进入备件管理页面,然后选择备件的类别, 最后选择具体备 件执行出库,执行出库的同时也将自动记录出库备件数量、出库执行人员、出库时 间,最终完成备件出库。备件具体出入库流程如图4-8 所示。
图 4-8 备件出入库流程图
(Figure 4-8 Flow chart of spare parts storage)
(2) 备件数据库设计 在每次执行出库或者入库时,备件信息管理模块都会自动记录出入库的信息, 并将其保存在数据库当中。同时当备件的数量更新时,此时也会自动更新备件数据 表中的备件的数量。后期需要查询备件出入库信息或备件的数量的时,就可以查询 数据库获取数据,实现备件相关信息的管理。备件出入库数据表、备件信息数据表 的具体结构如表4-11~4-13 所示。
表 4-11 备件出库数据表结构
(Table 4-11 Spare parts outbound data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Out_spare_name Varchar 出库备件名称 否
Out_spare_num Varchar 出库备件数量 否
Out_spare_operator Varchar 出库执行人 否
Out Spare item Datetime 出库时间 否
表 4-12 备件入库数据表结构
Table 4-12 Spare parts storage data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
In_spare_name Varchar 入库备件名称 否
In_spare_num Varchar 入库备件数量 否
In_spare_operator Varchar 入库执行人 否
In spare item Datetime 入库时间 否
表 4-13 备件数据表结构
Table 4-13 Spare parts data Table structure)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Spares_type Varchar 备件类型 否
Spares_num Varchar 备件编号 否
Spares_name Varchar 备件名称 否
Specification_num Varchar 规格型号 否
Measure_unit Varchar 计量单位 否
Current_amount Int 在库数量 否
Min_amount Int 库存下限 否
Max_amount Int 库存上限 否
Spares info Varchar 详细信息 否
4.4.5机床基础数据管理
经过对多家机械加工企业的调研发现,当工程师想要快速的了解一台机床的 数据时,往往需要去查询机床的技术手册。对于数控机床来说,由于结构复杂,系 统集成度高,因此参数也非常多,若一个车间有多台不同的数控机床,此时先要快 速了解数控机床的基础数据就会花费更多的时间。基于此,本文设计了一个具有普 适性的数控机床基础数据管理模块。通过此系统车间管理人员或工程师可以快速地 的获取数控机床的基础数据,节省了查找时间。
(1)数据分类 在机床基础数据管理模块中,我们把数控机床的基础数据分为了两类:数控机 床主要技术参数、数控机床后期参数。其中数控机床主要技术参数主要是数控机床 在出厂时厂家已经设定好的一些技术参数,主要分为6 类包括:尺寸参数、接口参 数 、运 动 参 数、 动 力 参数 、 精 度 参数 、 其 他参 数 。 数控 机 床 主要 技 术 参 数分类如表 4-14 所 示。
表 4-14 数控机床主要技术参数
Table 4-14 Main technical parameters of CNC machine tools)
参数类别 参数内容
尺寸参数 工作台 面积(长 X 宽)、承重 主轴端面到工作台距离 交换工作台尺寸、数量及交换时间
接口参数 工作台 T 形槽数、槽宽、槽间距 主轴孔锥度、直径 最大刀具尺寸及重量 刀库最大容量 刀具换刀时间
运动参数 主轴转速范围 各坐标行程及摆角范围 各坐标快进速度、切削进给速度范围
动 力参 数 主 轴电 机 功 率 伺服电机额定转矩
精度参数 定位精度、重复定位精度 分度精度(回转工作台)
其他参数 外形尺寸、重量
数控机床后期自定义参数主要是指当数控机床在车间已经安装完毕后,技术人 员根据车间实际情况后期定义的参数,例如:数控机床IP地址、编号、操作人员等。 具体自定义参数如图4-9 所示。
数控机床后期自定义参数
图 4-9 数控机床后期自定义参数
Figure 4-9 Customized parameters for CNC machine tools)
(2)机床基础数据数据库设计 将数控机床的基础数据按照上述介绍进行分类管理,实现快速准确查找数控机 床的基础数据。在录入系统之前,管理员首先将数控机床的主要技术参数进行整理, 然后自定义数控机床的后期参数,最终将数控机床的基础数据录入到系统保存在数 据库中。数控机床主要技术参数数据表、数控机床后期自定义参数数据表的具体结 构 如表 4-15、4-16 所 示。
表 4-15 数控机床主要技术参数数据表结构
Table 4-15 Data Table structure of main technical parameters of CNC machine tools)
字段名称
字段类型
备注 是否为空 约束
Max_tool_size Varchar 最大刀具尺寸 否
Max_tool_weight Float 最大刀具重量 否
Magazine_ capacity Int 刀库最大容量 否
Tool_change_time Float 刀具换刀
Spindle_speed_range Varchar 主轴转速范围 否
X_route Float X 轴行程 否
Y_route Float Y 轴行程 否
Z_route Float Z 轴行程 否
Xswing_angle_range Varchar X 轴摆角范围 否
Yswing_angle_range Varchar Y 轴摆角范围 否
Zswing_angle_range Varchar Z 轴摆角范围 否
Xfeed _speed_range Varchar X 轴快速进给速度范围 否
Yfeed _speed_range Varchar Y 轴快速进给范速度围 否
Zfeed _speed_range Varchar Z 轴快速进给速度范围 否
Xcut_speed_range Varchar X 轴切削进给速度范围 否
Ycut_speed_range Varchar Y 轴切削进给速度范围 否
Zcut_speed_range Varchar Z 轴切削进给速度范围 否
Motor_power Float 主轴电机功率 否
Servo_motor_torque Float 伺服电 机额定转矩 否
Position_accuracy Float 定位精度 否
Repeat_position_accuracy Float 重复定位精度 否
Indexing_accuracy Float 分度精度(回转工作台) 否
Dimensions Varchar 外形尺寸 否
Weight Float 重量 否
表 4-16 数控机床后期自定义参数数据表结构
Table 4-16 Data Table Structure of Customized Parameters of CNC Machine)
字段名称 字段类型 备注 是否为空 约束
Id Int 字段Id 否 Pk
Machine_num Varchar 机床编号 否 Fk
Machine_name Varchar 机床名称 否
Machine_ip Varchar 机床 IP 地址 否
System_type Varchar 系统类型 否
Manufacturer Varchar 生产商 否
Production_date Datetime 出厂日期 否
Operator Varchar 操作人员 否
Service_life Varchar 使用年限 否
Installation_date Datetime 安装日期
Current location Varchar 当前位置 否
4.5本章小结
通过上述介绍,本章主要完成了以下工作:
(1)系统的阐述了 OEE在本系统的具体实现方法;
(2)提出了一种改进的 SDT 算法,并成功的应用于实时数据的压缩;
(3)通过使用RabbitMQ和WebSocket完成了实时数据推送模块的设计,满足 数据实时推送的要求;
(4)开发了基于数控机床的信息管理模块,实现对数控机床的相关信息管理。
5软件系统测试
系统测试作为整个系统开发非常重要的一步,其能够验证系统是否存在未知的 错误,是否能够按照要求正常运行。只有经过严格的系统测试,才能将系统应用于 现场环境当中。本章通过搭建软件测试环境,通过运行系统并对系统重要功能进行 测试,从而保障系统运行的可靠性。
5.1实验环境搭建
本次实验环境主要采用的设备具体如表 5-1所示。
表 5-1 具体测试设备
(Table 5-1 Specific hardware equipment)
设备名称 作用 备注
工控机 系统客户端 操作系统为 Windows7
计算机 系统服务器 操作系统Windows 10,数据库为MySQL5.7,软件
系统运行环境为 Python3.7
VMC655H 加工中心实验台 安装西门子828D数控系统,
OPCUA 服务器版本为 SW4.7
75 寸显示器 实时监测数据显示 作为实时监控屏幕
VMC655H高速立式加工中心采用的是西门子828D数控系统,可用于实际工件 的加工,显示器用来显示实时监测的页面;工控机用于访问信息管理系统。笔记本 电脑作为系统的服务器,其主要功能有3个:(1)运行数据采集程序实现对数控机 床实时数据采集;(2 )作为数据库服务器存储采集到的数据;(3 )作为Web服务器 对外提供服务。基于此,本次系统测试的实验环境如图5-1 所示。
图 5-1 现场测试环境
Figure 5-1 Field test environment)
5.2系统运行实例
为了实现对数控机床运行状态的实时监测,并且同时掌握数控机床的各种相关 信息,从而达到更好的帮助技术人员和管理人员管理数控机床的目的。故需要运行 数据采集客户端和 Web 服务器程序,验证系统运行是否正确。
5.2.1数控机床实时监测模块运行实例
当数控机床进行模拟加工的时候,数据采集程序开始运行,此时数据采集端通 过OPC UA协议与服务器相连进行数据采集。此时通过输入URL地址访问服务器, 服务器返回数控机床实时监测的画面,结果如图5-2 所示。
数控机床实时监测与分析系统 当前时间:2020^12月27-21时51分8&
机床信息 1 L 主轴电流曲线
图 5-2 实时数据显示页面
Figure 5-2 Real-time data display page)
根据图 5-2 所示,可以获取到的实时数据包括:当前数控机床的运行时间、月产 量、主轴电流、主轴负载、主轴进给、主轴转速、主轴负载、XYZ轴绝对坐标、加 工程序等重要信息。
与此同时截取该时刻数控机床运行时的HMI界面信息,包括绝对坐标数值、运 行程序信息、主轴进给、主轴转速、主轴负载等关键信息,具体内容如图5-3 所示。
图 5-3 数控机床运行实时状态图
Figure 5-3 Real-time state diagram of CNC machine tool operation)
通过对比图5-2 与图5-3 可以得知,数控机床的当前加工状态与实时数据显示 页面的一致,同时观察HMI (人机界面)所显示的每个的轴的编程值、主轴进给速 度及倍率、主轴转速及倍率都同页面一致。当数控机床进行加工时,实时数据显示 页面的 X、 Y、 Z 轴当前的机械坐标和剩余移动量会随着加工的进行不断地变化, 界面也会同步显示当前主轴电流的曲线以及当前加工程序的具体信息。因此,可以 看出数控机床实时监测模块运行正常。
设备指数分析主要是建立在OEE的分析之上。在测试期间,首先让机床运行进 行模拟加工,利用 4.1.2 小节的计算方法得出数据,观察设备指数分析页面数据显 示情况,该界面可以展示数控机床在该段时间里的各项功能指标,通过该界面可以 实时的掌握数据机床的当前各种状态,具体效果如图5-4 所示。
图 5-4 设备指数分析页面
Figure 5-4 Equipment index analysis page)
通过使用 JavaScript 定时器功能, 用户可以自定义时间进行各项指标的计算。 从上图中我们也可以看出,各统计图的颜色分明,非常便于识别。同时,设备指数 分析与累计时间统计模块,用户也可以自行定义统计的时间跨度,选择按周、按月、 按年的方式进行数据的统计,满足不同用户使用需求。
5.2.2数控机床信息管理模块运行实例
该模块可实现远程或离线的可视化查看,同时为MES,ERP系统提供一线生产 车间的数据。该数控机床信息管理模块主要包括设备基础数据管理模块、故障信息 管理模块、机床点检信息管理模块、备件信息管理模块,后台数据管理模块等模块。 操作人员可随时输入URL地址进行访问,其登录界面如图5-5所示。
当用户输入正确的用户名和密码后即可进入操作界面,在这里以故障信息管理
界面进行演示。点击左侧的故障信息管理栏即可展开下拉框,当前即可选择进行信
息的录入与查询,具体效果如图5-6、 5-7 所示。
机床信息管理系统
Machine too I information management system
图 5-7 故障信息查询界面
Figure 5-7 Fault information query interface)
5.3系统性能测试
5.3.1数据传输模块测试
数据传输是保证采集到的实时数据能够快速推送至前端页面进行显示,是保证 整个实时监测系统 实时性的重要环 节。本次采用 消息队列 RabbitMQ 和 WebSocket 结合的方式实现实时数据低延迟推送。这里主要测试的参数是消息队列处理速率以 及通过 WebSocket 传输数据延迟时间 。
运行整 个系统,可以通过 RabbitMQ 的插件监控 RabbitMQ 内部 状态、确 认 RabbitMQ 可用并且能够响应、观察队列状态检测消费者异常、检测消息通信结构 中不合需求的配置更改等。定义消息队列处理速率V为:
式中:
Numl:为T1时刻的消息个数
Num2:为T2时刻的消息个数
每隔五分钟获取一次 RabbitMQ 消息队列处理的消息个数,并将消息处理速率绘 制如图 5-8 所示。
0~5 10 15 20 25 30 35 40 45 50 55 60
t/min
图 5-8 消息处理速率曲线图
Figure 5-8 Message processing rate curve)
观察图5-8可以看出在一个小时内,RabbitMQ服务器每秒处理数据的速率稳定, 曲线平稳,说明此时 RabbitMQ 服务器状态正常,数据处理稳定,没有发生消息拥 塞等问题,满足使用需求。
使用 Google Chrome 浏览器访问实时监测页面,从而建立起浏览器与服务器之 间的 WebSocket 连接。在这里,我们定义数据采集时间与浏览器接收数据时间两者 之间的差值为网络延迟时间,数控机床实时数据定义每隔一秒采集一次。启动数控
机床采集实时数据。获取实时数据采集时间, 同时通过 Chrome 开发者工具控制台 日志输出数据接收时间,计算两者的时间差值,绘制计算结果如图 5-9 所示。
(Figure 5-9 WebSocket push delay time curve)
观察图 5-9 可以看出,在一小时内,通过 WebSocket 传输,浏览器数据接收数 据的网络延迟时间平均在21ms,最大延迟时间不超过100ms,根据行业经验,数控 机床的实时监测数据传输延迟不超过 3 秒,故满足实时数据传输的延迟要求。
5.3.2数据压缩模块测试
基于改进的SDT算法主要是为了对实时加工数据进行压缩,为了验证本次改进 算法的压缩性能,故利用改进的 SDT 算法与普通的 SDT 算法对数据进行压缩,从 而进行对比分析。在这里,本文主要选择了主轴负载和X轴位置坐标两项典型数据 的进行实验。对工件进行铣平面加工,采集该加工过程的实时数据,对数据进行压 缩,结果如表 5-2、5-3所示。
表 5-2 普通 SDT 算法压缩结果
Table 5-2 Common SDT algorithm compression result)
采集数据项 △E CR CE
X 坐标 0.35 17.35 0.235
主轴负载 0.5 8.35 0.506
表 5-3 改进 SDT 算法压缩结果
Table 5-3 Improved SDT algorithm compression result)
采集数据项 △E CR CE
X 坐标 0.35 17.35 0.114
主轴负载 0.5 8.35 0.216
通过表5-2 和表5-3 对比分析可知,两次压缩得出的结果主要区别是压缩误差的 不同。当初始化相同的时候,此时改进的SDT算法相对于标准的SDT算法进行 数据压缩时,压缩误差CE明显变小,也即压缩后数据更加接近于真实数据。
同时我们将使用改进的SDT算法压缩过后的X坐标的数据值与压缩前的X坐标 值进行绘制对比,结果如图 5-l0、5-ll 所示。
Figure 5-10 X coordinate value before compression)
(Figure 5-11 X coordinate value after compression)
从图 5-l0、5-ll 对比可以看出,经过压缩后的 X 坐标数据值保留了原始数据的 变化趋势, 同时算法能够准确的记录到数据改变的关键点,进而能够很好的还原原 始数据。
通过上述分析来看,虽然数据在经过压缩后会丢失一些数据。对于数控机床的 实时监测来说,监控变量的数值变化趋势以及数值的突变往往预示着机床状态的变 化,这些变化通常与机床的故障以及机床的异常有直接的关系。因此,在该系统应 用改进的 SDT 算法对数据进行压缩满足系统需求。
5.4系统功能测试
数控机床信息管理模块主要由后台数据管理模块、设备基础数据管理模块、故 障信息管理模块、机床点检信息管理模块、备件信息管理模块等子模块组成,现对 各个模块进行功能测试,测试结果如表5-4~5-8 所示。
(1) 后台数据管理模块运行结果。
表 5-4 系统后台数据管理模块运行结果
Table 5-4 System background data management module running results)
功能测试 运行结果
管理员及用户显示是否正常 正常
创建系统管理员是否正常 正常
管理员是否能够正常添加普通用户 正常
添加、删除、修改权限功能是否正常 正常
导入初始化数据是否正常 正常
删除、修改、查询数据是否正常 正常
(2) 设备基础数据管理模块功能运行结果。
表 5-5 设备基础数据管理模块运行结果
(Table 5-5 Operation result of equipment basic data management module)
功能测试 运行结果
机床信息能否正常显示 正常
机床信息能否正常录入 正常
机床信息能否正常编辑 正常
机床信息能否正常删除 正常
录入数据时是否进行数据检查 正常
(3) 故障信息管理模块功能运行结果。
表 5-6 故障信息管理模块运行结果
(Table 5-6 Operation result of fault information management module)
功能测试 运行结果
故障信息能否按照类别正常显示 正常
故障信息能否按照类别进行录入 正常
录入数据时是否进行数据检查 正常
能否正常上传故障信息相关图片 正常
故障信息能否按照时间进行模糊查询 正常
(4) 机床点检信息管理模块功能运行结果。
表 5-7 机床点检信息管理模块运行结果
Table 5-7 Operation result of machine tool check information management module)
功能测试 运行结果
点检信息能否正常显示
点检信息能否正常进行录入 录入数据时是否进行数据检查 点检信息能 否按照时间进行模糊查询 能否将点检信息进行快速导出
点检信息能否正 常编辑
每日提醒功能是否正常 正常
正常 正常 正常 正常 正常 正常
(5) 机床备件信息管理模块功能运行结果。
表 5-8 机床备件信息管理模块运行结果
Table 5-8 Operation results of the machine tool spare parts information management module)
功能测试 运行结果
备件信息能否正常显示
备件信息能否按照类别正常进行录入 录入数据时是否进行数据检查 备件不足提醒功能否正常 备件出入库功能是否正常 能否将备件信息进行快速导出 备件信息能否正常编辑
备件信息能否按照类别或时间进行模糊查询 正常
正常 正常 正常 正常 正常 正常 正常
通过对系统的各个模块的每个功能进行测试,各功能均能正常操作并得到预期 的结果,故可证明本系统运行可靠,满足使用需求。
5.5本章小 结
通过上述介绍,本章主要完成了以下工作:
(1) 详细介绍测试环境软硬件组成并搭建系统的测试环境;
(2) 运行整个系统,进行数控机床的模拟加工,作为本系统的测试用例;
(3) 对数据采集模块进行测试,页面数据显示准确,传输速度满足需求;
(4) 对指数分析模块进行测试,分析结果符合实际情况;
(5) 对数据压缩模块进行测试,通过对比分析,表明数据压缩算法能大幅减少 数据存储量同时保证压缩后数据的准确性;
(6) 对信息管理模块的各个子模块进行了功能测试,结果表明,各功能模块运 行正常,系统稳定可靠。
6结论与展望
6.1结论
本文开发的基于B/S架构的数控机床实时监测与信息管理系统,实现了对数控 机床加工过程的实时监测、数据的压缩、数据分析的可视化,同时在此基础上,还 设计了数控机床基础数据管理、故障信息管理、机床点检信息管理、备件信息管理 等常用功能,实现了互联网和制造业的融合。现将得到的研究结果总结如下:
(1)设计了整个系统的组成与通信架构。设计了基于数据采集层、数据存储层、 数据处理层、数据显示层的系统架构,采用RabbitMQ和WebSocket实现实时数据 推送,满足行业数据传输延迟不超过 3秒的要求。
(2) 研究了西门子828D数控系统数据采集方法。分析OPC UA服务器所提供 的功能以及内部变量,通过OPC UA结合Python语言完成了对数控机床实时数据的 采集。
(3) 利用OEE分析方法改善数控机床加工效率。将采集到的相关数据进行OEE 分析, 从而得出影响数控机床 OEE 的环节,最终通过相应的措施提高 OEE 与数控 机床的效率。
(4) 数据压缩算法的改进与应用。对广泛应用的工业过程数据压缩算法 SDT 算法进行了改进,数据压缩率达到 50.2%。同时将其运用到实时数据的压缩当中, 从而减少了冗余信息的存储,减小了服务器的压力。
(5) 设计并开发了前端数据显示页面。利用HTML和CSS开发了实时监测与 指数分析的前端页面,通过Echart.js组件实现实时数据动态展示与数据分析结果的 图表化,进而能够实时掌握数控机床当前状态。
(6) 设计并开发了数控机床的信息管理系统。利用 Django 框架,开发了数控 机床的信息管理系统,实现了对数控机床的点检信息、故障信息、备件信息、基础 数据的管理,实现了制造信息的有效管理,提高了生产效率。
(7) 对系统的各个功能模块进行了现场测试,经过调试,整个系统的软件和硬 件均能够正常工作。
6.2创新点
(1) 通过比值法实现了 SDT算法容差的动态调整,极大提高了 SDT算法的压 缩性能,并同时减小了压缩误差,实现了对数控机床加工数据的压缩。
(2) 将消息队列RabbitMQ和WebSocket协议相结合,实现了采集数据的快速 传输,极大地降低了数据的延迟。
6.3展望
基于 B/S 架构的数控机床实时监测与信息管理系统,具有一定的通用性和普遍 性。该系统的研究涉及到了多方面的工作,包括数据采集、数据存储、数据传输、 数据显示。但本文的研究还有许多的不足,有很多的问题还需继续深入的研究, 今 后的研究工作可以从以下几个方面展开:
(1) 在数据采集中,只是针对西门子 828D 数控系统默认提供的系统变量进行 数据采集,没有对数控机床的I/O模块进行采集。后续可以采集数控机床的10信息, 从而更加全面的获取到数控机床的数据。
(2) 本文只是针对数控机床的加工过程进行了实时监测,并未涉及到对数控机 床进行实时的控制,后续可深入研究通过OPC UA对数控机床进行数据传输以及远 程控制。
(3) 本次对数控机床进行实时监测只是针对单台机床进行开发与测试,后续可 以将该系统应用于多台数控机床,实现对数控机床群的监测,更加符合现代制造业 的需求。
参考文献
[1]李杨,庞观士.智能制造新模式下的电子行业离散型智能制造工厂[J].机电工程技术, 2017,46(10):23-27.
[2]倪祥明.数控机床及数控加工技术[M].北京:人民邮电出版社,2011.
[3]智研数据研究中心. 2020-2026 年中国数控机床行业市场深度调研及投资前景分析报告 [R].2020.
[4]林宋,田建君.现代数控机床[M]. 2003:工业装备与信息工程出版中心,2003.
[5]焦亮.沈阳机床集团生产车间管理信息系统升级方案设计[D].吉林大学,2019.
[6]张区委.物联制造环境下的加工设备智能化方法研究[D].南京航空航天大学,2019.
[7]于会龙.机床大数据采集与存储技术研究[J].机电信息,2020(30):84-87.
[8]Juras Paul, Johnson Lauren.工业 4.0 实施之路[J].新理财,2020(10):62-64.
[9]聂笃伟.数控机床智能监控技术的研究与应用[J].现代工业经济和信息化,2018,8(9):29-31.
[10]黄韬,颜永红.基于WEB的数控远程监控系统的研究[J].教师,2011(5):117-118.
[11]Caiza G, Nunez A, Garcia C A, et al. Human Machine Interfaces Based on Open Source Web-Platform and OPC UA[J]. Procedia m anufacturing, 2020,42:307-314.
[12]Wang L, Orban P, Cunningham A, et al. Remote real-time CNC machining for web-based manufacturing[J] . Robotics and Computer-Integrated Manufacturing, 2004,20(6):563-571.
[13]宓方玮,黄贤超,陈滨.数字化制造设备信息采集技术方案[J].机床与液压,2016,44(02):28-32.
[14]KL C, WB L, Henry L, et al. Design of an intelligent supplier relationship management system for new product development[J]. International Journal of Computer Integrated Manufacturing, 2004,17(8):692-715.
[15]Su Y, Cheng F, Hung M, et al. Intelligent prognostics system design and implementation[J]. IEEE transactions on semiconductor manufacturing, 2006,19(2):195-207.
[16]钱诚.关于企业生产管理信息系统的分析与研究[J].工业控制计算机,2016,29(01):126-127.
[17]吕铁,韩娜.智能制造:全球趋势与中国战略[J].人民论坛•学术前沿,2015(11):6-17.
[18]叶华.项目式机械制造企业生产信息管理系统的设计与实现[D].哈尔滨工业大学,2015.
[19]张杰人.基于HTML5的数控机床实时监控与管理系统的研究与应用[D].上海应用技术大 学, 2018.
[20]卓祯雨.基于Web的远程监控系统实现技术的研究[D].武汉理工大学,2003.
[21]邱浩.基于MongoDB和Node.js的选煤机电设备运行监控系统研究[D].太原理工大学, 2019.
[22]夏磊.基于DNC系统的分布式船舶柴油机数控加工管理系统的设计与实现[D].江苏大学, 2019.
[23]王哲健.中小型机械制造企业生产管理信息系统设计与实现[D].东北农业大学,2007.
[24]李大勇,李欣,张昊.基于Maximo的生产管理信息系统设计[J].中国电力教育,2009(S2):64-65.
[25]孙晓宇.基于Web的印刷企业管理信息系统的设计与开发[D].西安理工大学,2018.
[26]练俊君,魏琳,饶晓红.基于嵌入式Linux Web服务器的机械设备状态监测系统设计J].自 动化仪表, 2019,40(07):43-46.
[27]屈展,李婵.JSON在Ajax数据交换中的应用研究J].西安石油大学学报(自然科学版), 2011,26(01):95-98.
[28]Barbaglia G, Murzilli S, Cudini S. Definition of REST web services with JSON schema[J]. Software: Practice and Experience, 2017,47(6).
[29]Shivam, Dhiman A K, Gupta S, et al. Telemedicine Solution using Django[J]. International Journal of Engineering and Management Research (IJEMR), 2020,10(2).
[30]高锦涛,刘文洁,李战怀.一种面向分布式读写分离系统的数据同步策略[J].西北工业大 学学报, 2020,38(01):209-215.
[31]成建宏.基于Web的低压电器试验设备远程监控系统设计与实现[D].西安工程大学,2019.
[32]刘薇.基于OPC UA的MES数据管理系统的研究[D].北京邮电大学,2019.
[33]陈彦智.基于OPC UA的机床运行状态数据可配置采集系统研究[D].重庆大学,2018.
[34]何雨婷.基于OPC UA的智能产线通信组件的设计与实现[D].中国科学院大学(中国科学 院沈阳计算技术研究所), 2020.
[35]谢春秋.基于OPC UA的数控机床远程监控系统研究[D].兰州理工大学,2017.
[36]张弛,吴明亮,陆军强,等.基于OPC UA的828D数控机床群远程监控系统设计[J].机械 制造与自动化, 2018,47(6):186-189.
[37]叶小高.基于OPC UA的自动化系统集成技术研究[J].中小企业管理与科技仲旬刊), 2015(11):258.
[38]李金亮.OPC UA客户端访问与测试功能研究及开发[D].华北电力大学(北京),2011.
[39]董梁玉.叉车可靠性强化试验远程监控系统的设计与实现[D].机械科学研究总院,2020.
[40]严成武.支持分库分表和读写分离的ORM框架的设计与实现[D].哈尔滨工业大学,2016.
[41]吴剑飞.高并发网站数据库方案的研究[D].上海交通大学,2016.
[42]MySQL Connector/Python Revealed:SQL and NoSQL Data Storage Using MySQL for Python Programmers[M] . Apress.
[43]Cole J. Machine Monitoring System Gives Real-Time KPI, OEE Data[J]. Modern Machine Shop, 2018,90(9).
[44]陈冉升,叶文华.基于数控机床实时数据采集的OEE计算方法研究J].中国制造业信息化, 2008,37(17):58-62, 66.
[45]李星, 张加波, 刘从华, 等. 数控机床远程监控及加工过程参数实时采集与应用效果分析 [J]. 新技术新工艺, 2015(5):153-156.
[46]王亚坤.火电厂过程数据特性的分析与研究[D].华北电力大学;华北电力大学(保定)模式 识别与智能系统, 2009.
[47]Han S, Liu X, Chen J, et al. A real-time data compression algorithm for gear fault signals[J].
Measurement, 2016,88.
[48]赵旭东,丁杰雄,边志远,等.SDT改进算法在数控系统监控平台中的应用[J].制造技术与 机床, 2014(10):155-159.
[49]商承亚,鲍先强,付立军,等.基于改进旋转门算法的船舶综合电力数据压缩技术分析J]. 中国舰船研究, 2020,15(1):82-88.
[50]刘劲松,于东,胡毅,等.改进的旋转门算法及其在数控机床监控领域的应用[J].组合机 床与自动化加工技术, 2018(02):81-83.
[51]马巍,武欣嵘,郑翔,等.RabbitMQ在实时监控系统中的应用[J].军事通信技术, 2017,38(01):82-85.
[52]周健.RabbitMQ消息队列在城市智慧综合管廊监控与报警集成管控平台上的应用[J].工业 控制计算机, 2019,32(09):12-13.
[53]Albano M, Ferreira L L, Pinho L M, et al. Message-oriented middleware for smart grids[J]. Computer Standards & Interfaces, 2015,38.
[54]肖顺,严碧波.一种基于RabbitMq的消息推送系统的设计与实现[J].电子世界, 2019(07):204-205.
[55]马巍,武欣嵘,郑翔,等.RabbitMQ在实时监控系统中的应用[J].军事通信技术, 2017,38(01):82-85.
[56]Zaidman A, Matthijssen N, Storey M, et al. Understanding Ajax applications by connecting client and server-side execution traces[J]. Empirical Software Engineering, 2013,18(2).
[57]吕振刚.基于Ajax技术的WEB研究[J].石油知识,2020(04):50-51.
[58]邵其专,蒋迪,莫熙.基于WebSocket技术面向电力调度的即时通信系统J].电子设计工 程, 2020,28(06):144-148.
[59]李先懿,郭正光.基于Websocket的车联网报警推送系统[J].计算机系统应用, 2020,29(03):127-131.
[60]李代立,陈榕.WebSocket在Web实时通信领域的研究[J].电脑知识与技术, 2010,6(28):7923-7925.
[61]邹旺.数字化车间制造过程数据采集与智能管理研究[D].贵州大学,2018.
原创文章出自天博,欢迎转载!