一、高端装备工业发展的需求与挑战
1.快速响应市场需求
今天的市场唯快不破。市场需求、消费行为的快速变化,个性化诉求的快速提升,都对企业提出了严峻的挑战。工业嵌入式技术是各类高端装备及其全生命周期所需要的技术开发和支撑手段面临巨大快速响应市场的挑战。
2.产品功能日益复杂
当今各类机电类产品日益复杂。机和电、软件和硬件相互耦合。产品跨越众多种学科领域。既要实现既定的功能,还需要考虑产品的可靠、安全、联网、应用维护等多个维度。
3.实时性和确定性挑战
所谓实时性是指设备能够在规定的时间范围内完成规定的任务的能力。确定性是指重复完成相同的任务,每次重复的时间、位置、精度等偏差控制在可接受范围内。不同的应用场景对实时性和确定性要求不尽相同。如离散制造业生产线上负责上下料的机械手,可能需要跟规定的生产节拍同步。任务执行时间周期抖动控制在数毫秒到数十毫秒内。而诸如数控机床,为了确保轮廓的准确,多个轴之间的时间同步精度可能需要控制到微秒级。在功能和软件日益复杂条件下,实时性和确定性的保障面临挑战。
4.智能化程度日益提升
智能化的目标是试图通过机器本身而不是人,自主处理和应对设备在应用、维护等产品生命周期中出现的各种状况和问题,尽可能简化人的操作和干预。设备的智能化从用户的角度来看,就是更少的人工参与,更便捷的操控和维护。对于产品智能化程度的增加必然是复杂性的上升。反过来又可能导致可靠性和安全性下降。
5.软件可靠性和安全性要求日益提升
可靠性和安全性往往成为工业嵌入式系统开发的第一考量。在产品功能日益复杂,产品要求的交付周期日益缩短,产品成本控制要求日益严苛的背景下,如何保障产品的开发质量,成为工业嵌入式开发者不得不面临的重大挑战。除了嵌入式硬件设计外,软件设计的可靠性日益重要。没有良好的工具作为保障,仅仅靠软件工程流程仍然显得力不从心。
6.物联网与信息安全的挑战
在网络日益普及的当下,人和人之间,设备与设备之间,人与设备之间越来越依赖通信网络实现连接和信息交互。物联网的发展既是产业发展的必然,同时蕴含着重大的商机。一方面通过物联网可以形成更大范围的协同,但广泛的设备联网可能导致网络和信息安全风险的加深。
7.软件日益成为最难以驾驭的存在
根据相关的统计,当今机电装备嵌入式软件在产品研发过程所占的投入已经占到设备研发总投入的40%以上。而软件代码量与产品复杂程度呈指数关系。显然工业嵌入式软件已经成为装备的重要组成。产品的功能往往通过软件最终定义和集成。软件开发维护链条长,不直观,软件也日益成为产品响应市场、提升可靠性、安全性、易用性的最大障碍。
二、基于计算机高级语言的开发方式特点与挑战
基于计算机高级语言的编程平台常用的如Keil、VSCode等。这类编程平台通常采取了插件的方式,允许用户集成第三方的计算机语言编辑器、语言引擎、编译工具链、调试工具、测试工具等。并且允许用户通过插件的方式添加所需要的工具包。开发过程既支持交叉编译方式也支持本机编译运行方式。既支持带操作系统的开发也支持不带操作系统的纯裸机开发方式。
在计算机高级语言的开发方式中,常用的开发语言包括C/C++,也有一部分汇编语言。无操作系统的软件开发方式常见于基于MCU的嵌入式开发。其特点是,处理器不复杂,功能需求简单的开发模式。常用的开发平台如Keil,这种模式,要求客户熟悉硬件的结构,需要用户手动编程分配任务,手动处理中断和事件;手动进行运行现场的保护等。十分的麻烦,而且软件可靠性不高,故障定位困难。
对于复杂的处理器或者复杂的应用软件,无操作系统的裸机模式已经难以适应,往往需要操作系统和板级支持包的支持,以方便用户的应用开发。实时操作系统五花八门,如Linux、VxWorks、QNX等。用户基于特定操作系统提供的API和板级支持包BSP展开嵌入式应用的开发。任务的调度、外设的操作均通过调用操作系统和驱动相应的API函数实现。
1. 直达计算平台底层不受卡脖子问题困扰
基于计算机高级语言的开发模式,特别是在开源操作系统加持下,可以直接操作计算平台和操作系统底层。开发方式自由,基本不受各种卡脖子问题困扰。
2. 面向工业开发抽象程度不高
这类开发方式对具体的嵌入式平台硬件和软件依赖很深。用户既要熟悉嵌入式硬件实时操作系统、BSP等计算平台底层,还必须熟悉工业业务本身。这导致面向工业应用的软件封装程度不高,底层依赖关系复杂。导致用户在开发复杂应用软件时,开发过程费时费力,对开发过程各类问题排查和定位困难重重。
3. 代码重用性差
这类开发方式对平台依赖深,应用和底层解耦性差,在一个产品上开发的代码很难在下一个项目上继续重用,软件的重用性差。如果涉及到跨平台的重用更是困难重重。
4. 多方协同性差
当代高端机电装备产品往往是多学科多领域的技术集成。因此产品的开发同样需要多学科多领域的不同人士共同进行。这就出现了协同开发的需求。而这种严重依赖平台的嵌入式开发模式,非常不方便用户的协同开发。为了做好协同工作,需要花费大量的精力与时间用于团队和协同管理。
三、基于工业软件的开发方式与特点与挑战
现代高端机电装备功能日益复杂、多学科交叉耦合、产品对实时性、可靠性、安全性和重用性都有较高的要求。在这种条件下,基于计算机高级语言的嵌入式产品开发模式就显得力不从心。主要是因为这种方式计算机系统和用户的业务之间没有实现解耦。用户很难对自身所关心的业务进行高层次的抽象建模、做需求分析和形式化验证。在这种大背景下,全球又出现了大量通用或者专用的工业软件。这些工业软件工具有协助用户做业务建模的、做需求分析的、有做仿真验证的、协助用户做代码测试的、还有做装备远程运维的。在汽车、航空航天、电力、船舶等高端装备行业,整个装备全生命周期需要大量的软件工具的支撑。例如汽车电子系统开发中,很多企业前期会应用Matlab/Simulink做算法的技术验证。在半实物仿真阶段,会利用Matlab/Simulink和Labview构成半实物仿真系统进行快速原型验证和硬件在环测试。在实现阶段,也有利用Matlab/Simulink提供自动代码生成的能力,将模型转化为C代码,并利用第三方的工具做进一步的优化。在实现阶段,将Matlab/Simulink模型代码嵌入到系统程序中。在这类基于高端仿真平台的嵌入式系统开发中,用户可以充分享受到图形化和文本编程带来的巨大便利。充分享受丰富的知识库以及工具链对业务模型开发的支持;
在工业自动化领域,PLC和DCS扮演了重要的角色,是另外一种基于工业软件的工业嵌入式开发模式。其中PLC在工厂自动化领域(FA)应用更为广泛。DCS系统在流程自动化领域(PA)应用广泛。现代的PLC和DCS往往都遵循了IEC61131-3的技术标准体系。用户在PLC或者DCS提供的编程环境下对目标控制系统进行编程。编程环境提供了图形和文本等多种编程语言。同时,编程平台对PLC底层计算平台做了充分封装,用户只能通过编程平台访问到目标运行平台有限的资源。如IO端子、实时任务触发和调度、任务优先级设置等。但用户几乎不必关注计算平台的硬件和RTOS层面的细节。编程的整个过程用户只需要关注业务细节。先进的PLC或者DCS编程平台,甚至能够为用户提供代码测试的工具,运行仿真的环境,软件需求输入分析、代码运行框架、代码远程调试运维等工具链的强大支持。形成了面向工业自动化领域的嵌入式软件全生命周期的工程化。由此可见,基于工业软件的嵌入式开发具备如下共同点:
1. 编程平台与运行平台解耦
在基于工业软件平台的嵌入式软件开发方式,最大的特点是软件抽象程度高,编程与运行平台解耦,用户不需要关心太多计算平台底层细节,可以集中精力解决问题本身。
2. 都带有行业知识模型库
工业软件开发平台往往都带有丰富的工业知识库。例如Matlab/Simulink就带有大量行业知识库,对于领域的开发者来说开发和验证工作十分方便。而PLC或DCS系统的编程平台往往也带有大量基础的库和针对垂直行业的细分库,方便用户开发。
3. 均带有多种编程语言(图形+文本)方便工业知识的组态
工业软件开发平台通常采用图形+文本语言的混合编程模式,用于工业知识的组态。图形化的方式加入,对工业开发者来说更加的直观。而文本方式,在对象描述性方面更胜一筹。
与直接采用计算机C/C++等高级语言进行工业OT侧数字化开发项目,基于工业软件平台的嵌入式开发有着重大的比较优势:
1)软件更可靠性
2)维护性更好
3)上手更容易
4)软硬件解耦开发者不用太多关注计算机底层
5)工业模块复用度高
6)知识库丰富且方便使用
4. 各类软件之间技术标准不统一
在一个完整的工业嵌入式开发流程中,往往会同时用到各类软件工程化的工具链。前述的一些工业软件由于最初起家时所关注的应用场景不同,技术团队不同,导致今天形成了强路径依赖,相互之间技术标准不统一,给应用开发者带来巨大的麻烦。
例如Matlab/Simulink擅长做复杂系统的仿真,知识库丰富。PLC和DCS等对于目标系统实时运行支撑十分到位的软件平台,但其知识库集中在工业自动化领域,难以直接跨界到仪器仪表和半实物仿真领域。
5. 底层不透明
众多的商业工业软件底层都做了深度封装,并不完全透明。而基于计算机高级语言的开发方式,由于其灵活性并且可以直接访问计算机底层资源,并且不受工业软件带来的卡脖子问题,尽管在可靠性、封装性、协同性远比工业软件开发模式存在比较大的比较劣势,然而依然成为众多开发者的首选。
6. 成本高昂
如果按照软件工程的要求,将各类工业软件按功能全部配备齐全,此外还需要培训相应的人才和相互之间的协同。对用户来说将是一笔巨大的投资。在资金和人才双重的投资的考验下,很多企业选择放弃,没法做到普及。
四、为工业市场提供创新的嵌入式开发平台的必要性
综上所述,在新的工业数字化时代,国内工业界迫切需要既开放灵活,又具备工业软件特征的工业嵌入式开发平台。用统一的架构,覆盖半实物仿真、工业控制、工业物联网、仪器仪表等行业领域。建立自己的技术标准和产业生态体系。利用专业的团队搭建良好的技术框架,利用好的商业模式,快速聚集社会智力资源,形成强大的知识库。这是破解技术垄断和卡脖子,推动国家工业数字化发展,形成在工业底座层面的全面支撑的必由之路。
|