魏 坚,刘广杰,黄云鹰,陆剑峰
(1.同济大学 电子与信息工程学院/CIMS研究中心,上海 201800;2.智能云科信息科技有限公司,上海 200082;3.沈机(上海)智能系统研发设计有限公司,上海 200082)
在2002年,以通用汽车为代表的企业开始提出工业互联网的概念,并把工业互联网作为制造业升级的核心[1]。工业互联网是基于海量数据采集、汇聚、分析的服务体系,它从机器处获取数据,然后通过平台汇集数据并进行分析,最后通过分析的结果来调整操作[2]。工业互联网作为一种基础设施,它连接了工业中的生产系统、产业链和价值链。它的结构如图1所示,主要由4部分组成。
1)边缘层:通过协议转换和感知技术对设备、系统、运行环境等要素信息进行数据采集,并将采集好的数据传送到云端。
2)IaaS层(Infrastructurea saService,基础设施即服务):将基础的计算网络存储资源虚拟化,以实现基础设施资源的池化,从而向用户提供可计量、弹性化的资源服务。
3)平台层:主要是指工业PaaS(PlatformasaService,平台即服务),这层是工业互联网的核心层。通过构建实时、可靠、安全的平台,将大量的工业技术原理、基础模块、行业知识规则化、软件化、模块化[3],并将这些封装成为可以重复使用的微服务,从而降低程序开发的门槛和开发成本。
4)应用层:主要是指工业SaaS(Softwareasaservice,软件及服务),这层以第三方开发者和行业用户为主。第三方开发者结合特定的工业应用场景将平台层的微服务进行再封装(即工业APP),行业用户通过对工业APP的调用以实现对特定制造资源的优化配置[4]。
图1 工业互联网的结构
工业互联网APP,简称工业APP,是基于工业互联网,承载工艺技术、工艺经验、工业知识,并且满足特定需求的工业应用软件[5]。工业互联网通过构建应用开发环境,借助工业应用开发工具和微服务组件,可以帮助应用层的用户快速构建定制化的工业APP。正是由于工业互联网的快速发展,工业APP在近几年实现了飞跃式的提升[6]。
但是由于我国的工业互联网正处于初级发展阶段,工业APP的开发遇到了瓶颈。其一,基于平台层开发的工业APP数量比较少。目前大部分的工业APP都是把云平台上的软件进行“移植”,即将云平台上的功能封装成工业APP,真正从设备的机理模型衍生出来的工业APP数量比较少。其二,现象级的工业APP比较少,我国大多数的工业APP只是局限于某个企业、某个组织,缺乏在行业内通用的工业APP[7]。其三,工业APP和工业设备层关系密切,目前缺少一种能嵌入到设备层的通用开发平台。
本文介绍了沈机(上海)智能系统研发设计有限公司发布的i5OS系统,及其APP开发平台和开发架构,然后提供了利用该开发平台开发工业APP的流程,最终实现在iSESOL工业互联网平台上线和应用,最后通过一个具体的案例进行了开发过程的完整说明。
从2007年开始,沈阳机床(集团)有限责任公司在上海成立数控系统核心技术研发团队。起初是对运动控制核心技术进行研发,历经5年,终于在2012年实现技术突破,并开始实施产业化进程并相继发布了一系列i5智能数控系统。2015年沈机(上海)智能系统研发设计有限公司成立(以下简称“沈机智能”)并负责i5的产业化应用。2017年沈机智能研发成功并发布了自主、安全、可控的工业操作系统系统i5OS。
i5OS是基于linux系统开发的管理工业控制硬件和软件的整套技术体系,主要的开发语言是C/C++、Python、Shell脚本语言。i5OS的总体框架如图2所示。i5OS主要由3层组成,第一层是i5OS认证设备层,经过认证的设备可以使用i5OS系统;第二层是i5OS底层平台层,这层是i5OS的核心层,主要是将工业控制、运动控制底层核心技术封装成API,并且提供工业APP开发的框架和协议;第三层是i5OS通用和专业APP层,通用APP是指所有通过i5OS认证的设备(机床、机器人、注塑机等设备)都能使用的APP,而专业APP是指面向特定设备设计的APP。
图2 i5OS的总体框架
在i5OS系统中,沈机智能将运动控制核心技术进行模块化封,形成标准的API,并提供了统一的工业APP开发平台。在这个平台上用户可以调用这些标准的API,同时工业APP的开发框架是开放的,用户可以自行设计。开发者可以聚焦行业特点,快速复用运动控制核心技术及相关基础功能,面向不同行业、不同领域开发高价值的工业APP。
随着工业互联网的理念的普及,依托于“工业互联+云服务+智能终端”的创新模式[8],智能云科信息科技有限公司(以下简称“智能云科”)构建了iSESOL工业互联网云平台。通过专门为互联网环境设计的iport协议,制造设备可以连接到iSESOL工业互联网平台。iSESOL工业互联网平台可以实时采集连接到云平台上的设备的数据,然后对这些数据进行大数据分析。在i5OS的工业APP开发平台上也提供了访问iSESOL工业互联网平台的相应接口,开发者不仅可以通过这些接口来访问机床的数据,也可以调用云平台上的服务组件、获取云平台大数据分析的结果。这样不仅减少了工业APP所需的资源和时间,也在一定程度上扩展了工业APP的功能。
i5OS操作系统APP是运行在数控系统上的一类工业APP,其开发框架如图3所示。整体框架的核心是coral脚本解析引擎,脚本引擎对象是IScripter,这是kiv内置的脚本解析工具,通过它可以来解析图元和插件。图元控件需要继承基类IscripterObject和IvectorObject,插件需要继承基类IScripterObject、IvectorObject和插件接口基类IPluginInterface,图元和插件都需要给定唯一的标识符。整体框架的基础是i5CNC解析器,它是图元、插件和机床交互的媒介。
图3 APP开发框架-kiv
通过丰富的图元界面可以构建出高效的可视化操作界面,图元的种类有很多,常用的图元有5类。
1)按钮图元:按钮图元有button、puresvgbtn、enumbutton、svgbutton四种。Button是基础按钮图元,puresvgbtn是可以设置背景图片的按钮图元,enumbutton是文字或背景图片可根据变量自动切换的按钮图元,svgbutton是可设置静态背景图片的按钮图元。
2)静态文本图元:静态文本图元只有text一种,用于显示纯文本。
3)动态文本图元:动态文本图元有ptext,enumptext两种。ptext用于显示动态脚本文本,enumptex用于显示枚举型脚本动态文本。
4)编辑器图元:编辑器图元有edit,piclistbox两种。edit为文本编辑器图元,piclistbox和edit类似,唯一区别在于piclistbox中完全使用图片设置,而非字符串。
5)图片图元:图片图元只有svg一种,用于显示引用的图片,支持svg、png格式的图片。
通过插件可以调用封装好的运动核心技术和机床运行过程中的参数,插件模块有4种。
1)alias.plugin:简单的别名插件,主要供配置人员设置一些别名来减少重复代码。
2)cnc.dev.plugin:访问CNC插件,连接参数池并提供访问、修改CNC参数的接口。
3)fun.kiv.plugin:通用接口插件,用于辅助其他插件的开发或获得软硬件信息。
4)netcheck.kiv.plugin:网络检查插件,用于检查网络的连接状态。
kiv的启动流程有6步。(1)启动应用进程;(2)载入应用主皮肤xml配置文件(有多款皮肤可供选择);(3)识别并载入相关的插件;(4)加载页面以及页面图元控件信息;(5)执行启动脚本;(6)执行周期性事件和响应鼠标事件。
kiv开发框架主要优势如下所示:
1)通过脚本解析引擎coral来解析xml配置文件,用户可以一键切换编辑环境与运行环境;
2)通过linux的平台访问接口来访问底层操作设备和云平台,而这种访问是通过插件实现的,比较稳定和快捷;
3)拥有灵活的插件机制,每一个插件都有唯一的标志符,开发者可以在统一管理的插件框架下开发自己的插件;
4)提供了丰富的显示图元控件,用户可以用图元控件搭建APP界面;
5)实现了基于参数读写的CNC访问方式,每个参数都有自己的读写权限;
6)开发语言多元,支持C/C++、Python、shell脚本语言。
现代数控机床的机械结构越来越复杂,同时对数控机床的自动化水平也不断提高,仅仅靠人工的方式来检验机床的性能是不能满足生产需求的,因此对数控机床的性能进行实时检测具有十分重要的现实意义。常用的性能检测的方法是对数控机床运行过程中的数据进行分析,建立运行数据和机床状态之间的模型[9]。
本案例实现的主要功能是,1)实时的获取机床的运行数据,包括本机的机床号,X、Y、Z轴的理论位置值、反馈位置值、理论速度值、反馈速度值;2)iSESOL工业互联网平台对机床运行过程中数据进行分析,得到机床的性能评分;3)数控机床上的APP调用云平台上机床性能评分;4)APP将性能评分通过可视化的界面在数控机床上展示出来。
图4 APP实现框架图
APP的搭建流程如下。
1)使用常见的图元搭建APP的界面;
2)通过载入插件cnc.dev.plugin来访问机床的运行数据;
3)通过载入插件python3.plugin来调用python程序(python3.plugin是python和c++转换的插件,需要自己编写,这是因为图元的框架是用C++来写的,如果要在图元里调用python程序,需要将python转换成C++能访问的形式),然后通过python程序来访问云平台的数据。
整个APP完成后的界面如图5~图7所示。图5是登录界面,账号和密码错误时会提醒重新输入。图6是参数展示界面,会实时地显示数控机床的型号和X、Y、Z轴的理论位置、反馈位置、理论速度和反馈速度,可以选择进入结果查询界面,也可以选择返回登录界面。图7是结果展示界面,可以选择需要查询的机床号(可以是本机床,也可以是操作人员权限范围内可以查询的其他机床),查询时间是指需要查询的性能测试处于机床所有测试中的时间位置,点击确认会弹出一个对话框显示性能测试的结果。
图5 登录界面
图6 参数展示界面
图7 结果查询界面
本文先介绍了工业互联网和工业APP的关系,然后以机床性能检测结果查询APP为例重点介绍了i5OS系统+iSESOL工业互联网平台以及在其上开发工业APP的方法,接着详细论述了工业APP的开发架构,最后通过这个平台开发出一款实时获取机床数据并且从云平台上获取性能测试结果的工业APP。