Skip to main contentSkip to page footer

 |  所有文章 新闻

美名软件成功移植Engine X,助力国产自控

在工业自动化领域,石化、发电站等场景中的设备通讯难题,长期以来困扰着工控人。

 

备品牌繁杂、通讯协议各异,宛如一场混乱的大杂烩,让运维人员疲于应对。传统运维不仅工具携带不便,采购软件授权成本更是高得离谱。如今,苏州美名软件带来了破局之法 —— 成功将工业自动化关键中间件 Engine X 移植到国产 Linux 系统

 

一、跟您唠个嗑:工厂里的“七国语言”难题

做过工控的朋友都知道,石化、发电站这种地方,不仅设备牌子杂,而且还采用了不同的协议,比如德国的PROFINET/PROFIBUS、美国的HART、基金会现场总线FF等等 就像一群老外讲着不同方言,各说各的。以前维护设备得带一堆工具,例如调HART的用A软件,搞PROFINET的用B盒子,手忙脚乱不说,光买授权就肉疼。

FCG (Field Comm Group) 基金会有一套FDI(Field Device Integration)开发包,它使自动化供应商更容易开发和集成智能设备,因为供应商只需为每个智能设备创建一个统一的软件包,即可与所有主系统和工具(包括基于 FDT 的主机)配合使用。这不仅降低了总体开发成本,同时保留并扩展了现有功能。FDI 工具适用于 FOUNDATION 现场总线、HART、PROFIBUS、PROFINET、OPC UA、以太网 IP 和 Modbus 协议。

其中Engine X —— FDI EDD Engine X (以下简称Engine X)是主机厂商核心开发中间件。上位应用程序可以通过标准化设备模型解析,实现“一个平台管理所有设备”。说白了,这神器号称能“一键翻译”所有设备语言(EDDL)!但问题来了,官方只支持Windows,而咱们国产化的大趋势是要用龙芯、鲲鹏芯片+国产Linux啊,咋整?启动移植术,这块硬骨头,美名软件来啃!

 

二、移植路上遇到多个“拦路虎”

1. 第一个暴击:Windows API的“方言”

Engine X原本满心都是Windows专属术语,比如MFC组件、Win32线程池。在Linux眼里,这就像让北京大爷突然改说粤语。我们不得不一边查POSIX规范(相当于“普通话词典”),一边把代码里的“得嘞”改成“知道喇”。

2. 路径“精分症”:反斜杠与正斜杠的南北战争

Windows程序写路径像练书法,反斜杠(\)挥洒自如,到了Linux直接变“乱码”,因为Linux只认正斜杠(/)。移植文件管理器时,全是“找不到文件”,最后发现有的代码里混用了两种斜杠。更令人头秃的是,Linux权限管理像安检员,没chmod授权连自家文件都摸不到,原来文件也有“社恐”属性?

3. 最头疼的“大家来找茬”

Engine X有20多个子项目,互相依赖像蜘蛛网。一开始连编译顺序都分辨不清,动不动就“undefined reference”(找不到对象),这比相亲还让人崩溃啊。

 

二、移植路上遇到多个“拦路虎”

1. 给代码“分家”

直接把整个工程拆成三块:

- 核心引擎(谁都不能动)

- 协议翻译层(HART/FF/PROFINET专属)

- 系统适配层(Windows/Linux切换像换鞋套)


用CMake管理后,终于不用天天当“人肉构建机”了。

2. 切香肠

因为项目繁多,依赖错综复杂。而在Windows里没有这些问题,Visual Studio默默承受了所有。在移植中,为了降低难度,先用Eclipse C++来移植,专注于移植一块块逻辑,像切香肠一样。成功移植后,我们再用VS Code + WSL来转成CMake项目。这样既降低了难度又建立了移植的自信。

 

我们的收获
 

移植Engine X就像教老外唱京剧,不仅要尊重原有范式,还要融入本地特色。回头看这一年,我们掉的头发都值了。至少下次去电厂,大家不用再背着一书包调试器了对吧?(运维组新规:所有移植工程师必须配备防脱发洗发水 + 心理辅导师)。

Engine X的Linux移植不仅是技术平台迁移,更是国产工业软件的全栈信创构建的助力。未来苏州美名软件将持续优化EngineX组件生态,加速从“可用”到“好用”的跨越。