背景:工业设备系统运行工况参数数据是错综复杂的,需要借助若干主/子系统图来进行展示,从而全面展现整个系统的状态,完成对系统的监控,确保系统健康稳定运行,提升工程运维水平。但这样的前端展示环境往往是复杂多变的,开发成本非常高,需要对各个系统图中的图元属性,比如颜色,大小,位置等等进行参数化驱动,对参数的文本进行实时的跟踪变化,以往都是通过监控大屏链接数据库,通过大量前后端开发工作来实现的,功能比较固化、单一,不够灵活。如果没有本地服务器设备,只有移动端设备,如何能使用参数化驱动的方式,更新网页内容,与工程人员进行交互,支撑决策,就是一个亟待解决的需求。
方案:系统图可以通过多种矢量图形软件进行绘制,功能丰富,使用友好。只要保存成SVG矢量图形格式文件,其中的图元属性信息以及参数文本就都是可以更新的,这是矢量图形的一大特点。使用腾讯云存储来保存这样的SVG或者PNG格式图形文件,建立KNIME工作流,一方面与腾讯云文件地址相连接,另一方面可以链接数据库,各类数据源,固化数据的提取,加工,属性计算等逻辑。使用Odoo,DataHunter等开源免费的ERP开发环境,建立网站或者数据大屏,与腾讯云存储文件(包括数据文件、图像文件)相对接,可以作为计算结果文本信息,系统图+参数数据的前端展示环境。使用KNIME建立定时任务,就可以实时参数化驱动前端网页上的各类变化。
工程人员在现场,使用手机,登录网站或者腾讯文档等环境,就可以看到KNIME工作流加工好的计算结果,设备系统的系统图,其中含有图元属性(例如报警信息,通过图元颜色,大小改变。)、参数数据文本等等,即可发挥他们的经验。甚至他们还可以通过微博、腾讯文档等环境,进行信息输入,通过工作流读取参数输入,对系统图形,计算过程,甚至实际控制过程进行干预。
本例(视频介绍请移步B站,搜索Up:“星汉长空”,视频:KNIME案例(266)手机参数监控):
步骤1. 使用矢量图形绘制环境绘制系统图,这里使用的是yEd Graph Editor软件,将绘制好的图形保存为SVG矢量图形格式。
(注:对于将来需要进行替换的关键参数信息或者图元属性信息,可以使用特殊的符号加以替代,如“$xxx”,这样将对后面的KNIME工作流实时处理带来极大便利。)
步骤2. 在KNIME中加入XML Reader节点,将SVG模板文件读入,其数据格式为XML。拖入Table Manipulator节点,对数据格式加以转换,从XML格式转换为String格式。
步骤3. 使用Random Numbers Generator节点来模拟实时参数数据,发生两个随机参数数据,将其进行圆整(Math Formula节点),保留小数点后一位,然后将其转为字符串(Number To String节点),为替换SVG模板文件中的文本做好准备。
步骤4. 使用String Replacer节点(这里方法很多,并不唯一),完成SVG模板中参数信息的替换(图元属性的替换同理)。再次拖入Table Manipulator节点,对数据格式加以转换,将String格式的数据转回XML格式。
步骤5. 使用XML Writer节点,更新SVG模板,完成对参数信息,图元属性等等数据的更新。生成更新后的SVG文件,即为实时系统图。
步骤6. 使用Python View节点,通过指定图像尺寸,将SVG文件转化为适合网页端(或者移动端)显示的PNG格式文件(如果腾讯云存储中的图像文件格式为SVG,前面可以忽略。)。最后使用Image Writer将文件写入腾讯云存储文件位置。
步骤7. 建立定时任务工作流,并执行,就可以实时获取参数数据信息,并更新前端网页内容,便于工程人员使用手机浏览实时系统运行情况。网站和手机上都可以设置定时刷新(会耗费较多的流量),就可以观看实时运行参数的变化过程(如污染物监控示例图像中,左右两幅手机图片中的数据变化对比,就是实时刷新形成的。)。
解释1. 何为KNIME?KNIME数据分析平台是一款强大开源的数据挖掘软件平台,可以固化数据处理的流程,在人与人,人与机器之间进行传递。
解释2. 何为Odoo?Odoo是一套完整的系统,是一个开源框架,针对 ERP 的需求发展而来,适合定制出符合客户各种需求的ERP系统、电子商务系统、CMS、或者是网站。