文章

超越IEC61131-3——国产多语言工业编程软件WasomCodeX

2024-11-04控制工程中文版

87阅
       当下,国产PLC领域呈现出千帆竞渡的繁荣景象,已然迈过从“0到1”突破阶段,阔步进入追求核心技术创新与差异化竞争的全新旅程。
       而WasomCodeX作为一款具备全面核心技术创新的国产多语言工业编程软件,正以其独特优势和卓越性能,在这股浪潮中脱颖而出。
01 IEC61131-3的重要地位与时代局限性
       IEC61131-3标准为工业逻辑控制编程奠定了坚实基础,众多工业控制系统借此得以长期稳定工作,有效减少了因编程问题引发的生产中断和故障。在易用性方面,它使工程师能够相对轻松地掌握编程技能,迅速上手进行工业控制程序开发。
       然而,时代不断进步,随着工业4.0和智能制造的飞速发展,对PLC的编程能力、智能化水平以及与其他工业系统的融合能力提出了更高要求。传统的IEC61131-3标准逐渐暴露出局限性。比如与计算机编程融合方面存在不足,难以满足现代工业对强大计算能力和复杂算法应用的需求,无法将在IT行业已成熟应用的图像识别、数据分析、智能决策等功能应用到工业领域。
       究其原因,IEC61131-3标准的核心特性是静态数据管理,即所有数据布局在开发阶段就已确定,程序语法保证用户代码不会导致非法的地址访问错误,这在工业控制场景中至关重要。然而,这种动态数据能力的缺失也使得其在应对现代信息系统所需的数据处理和分析时举步维艰。
       目前,一些厂商通过引入C/C++编程,或扩展ST语法如添加指针访问来应对上述问题,但目前的方案普遍存在以下几个主要问题:
       引入巨大安全风险。由于用户程序可通过指针访问任意地址,导致用户程序有能力读取或篡改PLC厂家底层数据,在有意或无意间造成严重安全问题。
       程序开发复杂且低效。一些主流厂家要求开发者使用单独的IDE如Visual Studio来开发和调试C/C++,与 IEC61131-3开发形成割裂的开发体验。
      限制了程序热更新和PLC冗余等关键性功能。引入动态数据管理后,控制程序无法支持这些重要功能。
      不能支持其他计算机语言生态,如Rust、Go等。
02 基于WebAssembly的创新编程模式
       WasomCodeX的首席架构师魏东博士,毕业于清华大学,曾在西门子(美国)研究院从事工业自动化领域研究工作长达15年。魏东博士深刻认识到,传统IEC61131-3需要注入新的活力,借助全新的WebAssembly(一种虚拟指令集体系架构)编程语言技术与边缘智能技术,在现代工业时代重新焕发生机。
       2019年离开西门子公司后,他精心设计了全新的工业编程软件WasomCodeX。WasomCodeX肩负着创造契合时代发展需求核心技术的使命,与PLC、机器人及系统厂商展开深度合作,助力客户打造具有独特竞争优势的产品。
WasomCodeX软件界面
       WasomCodeX涵盖了大量的技术创新与卓越的工程实践,具有以下四大特点:
       01 融合多语言的编程能力
       WasomCodeX不仅支持IEC61131-3标准编程语言,还开创性地实现了与多种现代计算机语言的深度融合。WasomCodeX工业编程软件在一个IDE中支持IEC61131-3与 C/C++/Rust/Go/Python等多种编程语言混合开发、混合编译和混合源码调试的能力。这种多语言融合的能力为工程师提供了丰富的编程工具和方法选择,极大地拓展了PLC的编程边界。
       这种极具创新性的编译模式,成为了WasomCodeX支持诸多先进功能的技术基础,这些先进功能包括多语言混合源码调试、确保C/C++编程的内存安全保障、为C/C++、Rust、Go 编程提供热更新与冗余支持,以及实现应用和库的跨平台能力。
WasomCodeX软件平台架构图
       在处理复杂算法和数据处理任务时,工程师可以灵活选用 C++或Rust等高效语言开发PLC编程库,充分发挥其强大的计算能力和优化性能。例如,在工业大数据分析场景中,利用C++编写的数据处理算法功能块能够快速处理海量传感器数据,提取有价值信息,为生产决策提供准确依据。而在与底层硬件交互和实现实时控制逻辑时,IEC61131-3语言则能发挥其稳定性和可靠性优势。 通过多语言的协同工作,工程师可以在一个项目中自由切换不同语言编写的模块,进行无缝集成和调试,大大提高编程效率和项目开发速度。或者多个工程师分别使用自己擅长的语言开发功能块,然后由熟悉IEC61131-3编程的工程师来调用这些功能块。
       02 高性能编译器
        WasomCodeX所提供的高度优化的多语言编译器,是由拥有长达20年经验的编译器领域资深专家倾心打造而成。该编译器不仅能够同时对IEC61131-3、C/C++、Rust等多种语言进行编译,而且还采用了两级编译以及运行中的自动优化等领先技术,能够支持几乎所有 CPU指令架构的深度编译优化,进而生成在业界处于领先地位的、具有卓越程序执行性能的目标机器指令。
       其高性能优势在处理复杂工业任务时表现得淋漓尽致。与传统编程方式相比,WasomCodeX能够更快速地处理大量数据和复杂逻辑运算,显著提升了PLC的响应速度和控制精度。在高速自动化生产线上,如汽车制造中的焊接、装配环节,WasomCodeX确保了每个操作的精准执行,有效提高了生产效率和产品质量。
       03 从底层解决C/C++编程的安全问题
       在安全方面,WebAssembly的内存隔离机制为WasomCodeX提供了强大保障。即便用户逻辑包含C/C++这样的随机地址访问能力,内存隔离机制也能防止用户程序访问到隔离区之外的内存,有效防止恶意软件攻击和数据泄露,为工业控制环境提供安全保障。
       04 多语言编程的高可用机制
       IEC61131-3的静态内存使用模式,能够方便地支持热更新和冗余机制。而目前工业界鲜有对C/C++等计算机语言开发的应用支持热更新和冗余的方案,其根本原因在于动态内存的使用。基于WebAssembly的线性内存能力,WasomCodeX的热更新和冗余功能不仅支持 IEC61131-3编程,而且在工业界率先对C/C++、Rust、Go编程提供高可用支持。
03 开放IDE与AI助手提升编程效率
       WasomCodeX的IDE基于Visual Studio Code开源框架深度订制开发,不仅可以使能用户获取丰富的插件市场,也可以帮助客户进行IDE的快速扩展开发,比如为客户专有的人工智能编程设计个性化的IDE使用界面。
WasomCodeX IDE界面
       01 强大语言实时解析系统
       WasomCodeX IDE不仅是一个精美的编辑界面,其背后是一个时刻活动的提供用户实时交互处理的引擎。WasomCodeX提供了自研的语法解析器,并为每一种语言提供了语言服务器。当用户从IDE输入一个字符,或者创建一项配置,WasomCodeX的解析器将实时完成分析,通过对应的语言服务器,提供代码提示、代码补全、错误提示等开发效率帮助。
       02 支持IT连续集成开发的设施与开发效率
       WasomCodeX拥有良好的项目管理和团队协作功能,帮助改善传统的作坊开发模式。它摒弃了传统IDE的单一的二进制项目文件的模式,改成了多个文本文件的项目组成结构,在此之上进一步支持现代IT高效开发所依赖的连续集成开发流程与相关的基础设施,包括Git版本管理、代码评审、项目离线编译、代码合并的自动化测试等。
       使用WasomCodeX,多人可同时协作开发一个项目,通过版本控制系统实现代码的管理和共享,确保团队成员之间的工作协同顺畅。例如,在大型工业项目中,不同的工程师可以负责不同的功能模块,通过WasomCodeX的团队协作功能,实现代码的合并和集成,提高项目的开发效率和质量。通过独特的项目离线编译能力,可以在代码合并前由IT系统完成自动编译和测试,甚至在git系统如GitHub中配置使用自动测试结果作为合并代码的前提条件。
 
拥抱IT连续集成开发模式
       03 配备先进的智能编程辅助工具
       WasomCodeX IDE是一款集成了Copilot生成式人工智能技术的创新工具,为用户提供了一站式的自动化解决方案。AI编程助手不仅能够大幅度缩短复杂的自动化代码生成时间,有效减少了工程团队的劳动强度,确保了复杂工程设计的精准度,显著提升了整个开发周期的效率和产品质量。例如,当工程师输入部分代码时,WasomCodeX可以自动提示相关的变量、函数和指令,帮助工程师快速完成代码编写。
       04 多语言混合源码调试
       WasomCodeX的集成开发环境(IDE)呈现出直观且易用的调试界面与工具。在一个项目涵盖多种语言(如ST、C、C++、Rust等)的情况下,工程师能够在任意程序中便捷地设置断点、进行单步执行程序操作以及查看变量值等,从而迅速定位并解决程序中存在的问题。与此同时,WasomCodeX支持实时监视功能,能够在可编程逻辑控制器(PLC)运行期间对程序实施动态观察与调试,及时发觉并修复运行时出现的各类问题,极大地提升了系统的稳定性与可靠性。
       04 原生边缘控制设计,支持虚拟化和AI框架
       在边缘智能成为工业发展关键趋势的大背景下,WasomCodeX在其原生设计当中充分融入了现代边缘计算与智能控制技术。它具备将计算和存储能力推进至工业网络边缘的能力,实现数据的就地处理与实时决策,从而减少数据传输延迟,提升系统的响应速度与可靠性。
       1 虚拟化与多实例
       WasomCodeX支持在一个边缘平台上创建多个PLC实例,能够充分利用不断增长的算力,使一个边缘平台承担起多个传统PLC单机的功能。WasomCodeX系统为此设计了一套完备的方案以达成这一目标:
       其一,运用容器(Docker)与微容器(Wasm)对PLC多实例进行管理与编排。
       其二,满足多实例间总线的隔离与复用需求。
       其三,保障CPU资源的分配与实时性。 其四,确保内存资源的分配与保障。
       2 工业互联
       WasomCodeX在设备侧提供了工业物联网解决方案,开源插件涵盖数十种工业协议支持。用户可下载SDK,以实现自身所需的其他工业协议插件和数据处理逻辑。
       3 人工智能控制
       WasomCodeX内核提供了多种AI框架支持,并以功能块的形式进行编程封装,在底层提供模型加载与升级的能力。在工业现场,具备边缘智能的PLC能够实时采集设备运行数据,利用内置的智能算法进行分析与判断,及时发现设备潜在的故障隐患,并采取相应措施进行预防和修复。例如,在风力发电场中,由WasomCodeX编程的PLC可以实时监测风机的运行状态,包括转速、温度、振动等参数,通过边缘计算进行数据分析,预测可能出现的故障,并提前通知维护人员进行检修,有效避免了因设备故障导致的停机损失。
05 高度可定制化:做客户成功的隐形伙伴
       WasomCodeX以客户需求为导向,提供高度可定制化的服务。它能够根据不同客户的特定需求,进行个性化的功能定制和优化,成为客户成功背后的隐形伙伴。无论是在特定行业的特殊应用场景,还是客户对软件功能的独特要求,WasomCodeX都能通过定制化服务满足客户需求,助力客户在激烈的市场竞争中脱颖而出。
       WasomCodeX目前已经推出了多个迭代的版本,软件已经十分成熟,已经应用到国内众多的工业龙头企业的产品之中,感兴趣的读者可以通过邮件或者公众号获取应用案例。
责任编辑:杨培
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并以尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
读者评论 (0)
请您登录/注册后再评论