摘要:很多工厂做数字化改造到了深水区,都会碰到数据不通的问题。不同厂商的设备、不同层级的系统,数据像一潭死水锁在各自的池子里面,要拿出来用就得花大价钱做定制开发。工业数据开放交互API接口服务就是解决这个问题的通用方案,本文结合我在离散制造领域的多个落地项目,说说实际落地的坑和选型经验,给有基础的工程师做参考。
离散制造车间为什么要做开放API?
前年给长三角一家做汽车冲压件的工厂做数字化升级。碰到个离谱的事。
车间十二台冲压设备,三台机械臂,分别来自四个不同的厂商。各自的数据都存在自己的控制端,MES要采集设备的压力、行程、稼动率数据,每个厂商都要做一次定制开发,开价最低的八万,最高的十八万,加起来小一百万,还得等两个多月才能做完。
说白了就是原来的工业系统都是封闭的。厂商不开放接口,你要拿数据就得拆盒子自己搞,要么给厂商交保护费。
工业数据开放交互API接口服务,核心就是把分散在各个设备、各个系统的工业数据,按照统一的行业规范封装成可被外部调用的标准接口,只要你有相应权限,不管你是自己开发报表、做质量分析模型,还是对接第三方的能耗管理系统,直接调用就行,不用每次都做定制开发。

按照ISO/IEC 19831的工业API框架规范做出来的开放接口,兼容性比自定义接口高太多。我们当时给这个工厂用标准化的开放API改造,只花了不到二十万,半个月就全部对接完了,省下的钱给车间加了两套视觉检测,香多了。
落地必须守住的几个底线
踩过的坑够凑一桌麻将了。说几个最痛的。
第一个,安全鉴权能偷懒?能要你命。去年有个合作项目,对方开发图省事,开放API直接挂在内网,没做读写权限分离,也没做IP白名单,结果车间实习生调试试跑自己写的小程序,不小心调用了参数写入接口,把三台冲压机的安全行程改了,直接撞模。修了整整七天,损失小两百万。所以一定要严格遵循GB/T 39477-2020 工业互联网平台应用接口安全要求,读接口、写接口权限完全分开,调用令牌过期自动刷新,调用频率限制,一个都不能少。别信什么内网安全不需要做这套,出事就是大事。
第二个,数据格式乱搞,对接调到你脱发。很多人做API直接拿厂商原始数据格式封装,结果出来是什么样?时间戳有的是秒精度有的是毫秒精度,压力值有的存成整型有的存成字符串,调用一次错一次,查问题查半天。规范点,统一遵循OPC UA信息模型,所有接口返回统一用JSON结构,时间戳统一精度到毫秒,每个字段的数据类型明明白白写在文档里,不要搞隐式转换,省多少事。
第三个,不做限流缓存,高峰直接宕机。冲压车间一秒钟上百个压力数据点,几条产线加起来小一千个数据点并发,如果所有人都直接调源接口,很容易把边缘网关打垮,直接断数据。我们现在做项目,一定会给开放接口加一层Redis缓存,频繁查询的静态设备信息缓存10分钟,实时运行数据缓存1秒,限流按照调用方权限分级,普通业务端每秒最多100次,控制系统最多每秒1000次,足够用还稳。

哦对了,还有个小坑,很多人做接口只做GET不做POST,传大参数的时候直接报错,别犯这种低级错误。
选型的实际权衡思路

说实话,现在市面上做工业数据开放交互API接口服务的玩家太多了,有做全栈工业互联网平台的,也有做轻量边缘网关的,怎么选?完全看你自己的场景。
如果你是大型集团工厂,已经搭了自己的工业互联网平台,那直接用平台自带的开放API服务就好,对接起来原生适配,运维还有厂商兜着,就是贵点,贵有贵的道理。
如果你是中小工厂,只有十几台到几十台设备,就是要开放数据给自己的开发团队做个质量分析小程序、稼动率报表,那完全没必要买大平台,买个带标准开放API功能的工业边缘网关就行,几千到几万块搞定,自己照着文档封装数据就行,成本降很多。
不过话说回来,不管选哪一种,一定要拿现场实际数据测三天再定稿。我之前图便宜选过一个小厂商的网关,跑了一天丢了快两千个数据点,死活找不出原因,最后整机换货才解决,耽误了快一周的工期,闹心。
还有一定要看接口文档齐不齐,有没有主流语言的调用示例,C#、Python总得有吧?不然工程师对接的时候调不通,找厂商问半天没人理,太熬人了。哪怕多花几百块,买个文档齐全的,都比瞎摸强。
工业数据开放不是什么玄乎的概念,就是把原来锁在黑盒子里的数据拿出来,让它能顺畅流转到需要用的地方。把安全、规范、性能这几个基础点抓好,别被厂商吹的天花乱坠的概念忽悠,结合自己的预算和场景选,就能落地,真的没那么复杂。