IEC61499 的定位
已经许久没有写关于IEC61499 方面的文章了,其实笔者并没有懈怠,而是不断地在思考许多该项技术以外的事情。IEC61499 标准到目前为止仍然是一个叫好不叫座的标准。它已经出现了许多年,而且不断地修订版本。国外学者也持续地研究这些技术的实现和应用,但是在工业界实际应用的非常少。这就是这个标准目前尴尬的地方。
以前,许多人将这个问题归结为传统自动控制厂商为了其商业利益而推广不力。但是施耐德公司收购了nexControl ,并且将IEC61499 技术融入了他们的EAE 中,推出了对应的PLC 产品,并且冠以开放自动化系统的头衔,也不能说不卖力,从目前看仍然是处于革命尚未成功的阶段。笔者这几年也加入了一些关于开放自动的讨论群,自动控制领域的专家们并不看好IEC61499,而对OPC UA ,AML 等建模语言更感兴趣。到底为什么IEC61499 会这样不温不火?这是笔者一直思考的问题。
我觉得IEC61499 标准推广缓慢的一个主要原因是初期应用定位模糊。尝试将IEC16499 替代PLC 的IEC61131 是难以成功的。无论是自动控制产业的厂商,还是用户,他们都认为PLC的使用和编程方式已经足够的好了,不需要大换血。并且会排斥采纳IEC61499 这样未经证实的新方案。工业控制现场技术至关重要,没多少机会来尝试新技术。
相比之下,自动控制行业更希望添加PLC 的功能,或者在原本以PLC为主的现场控制系统中增加高层控制系统。以满足工业4.0,数字化工厂的需求。因此,人们更愿意接收OPC UA, AML 这些技术,首先,这些技术是建立在PLC 之上的建模方法和协议。主要目的是为设备构建数字模型和通信协议,促进不同厂商的设备的互联互通。这里的设备更多地指机器,例如CNC 机床,注塑机,泵等等,底层的PLC没有改变。
IEC61499 功能块编程技术并不是针对设备建模而建立的。,尽管许多人声称IEC61499 是一种建模语言,能够实现设备级的建模。它本质上是一种面向底层现场设备编程的技术,只不过它更适合分布式控制系统。系统设计,分布式部署是IEC61499 的特点。某种意义上讲,IEC61499 与IEC61131 是底层现场控制设备编程技术相互竞争的两种技术。理论上IEC61499 能够替代IEC61131,但是在市场和用户接受方面却是处于劣势。
笔者认为,尝试IEC61499应用于现有的工业控制现场设备,与IEC61131-3技术竞争,甚至希望替代IEC61131,认为IEC61499 是下一代现场设备编程方式是徒劳的。大概率不会成功。
如果认为IEC61499 是一项值得推广的技术的话,那么在发展的早期要采取剑走偏锋的策略。笔者认为,应该选择一个IEC61131-3尚未进入的新领域中取得成功,然后再逐步渗透到传统领域。NI 的图形编程语言与控制领域的技术完全不同,但是它却在多功能仪器,数据采集和处理等领域获得了成功,目前Labview 与控制设备的边界越来越模糊,想必在不远的将来,labview 将会进入高端控制器市场。事实上,现在已经有许多控制项目(比如机器人控制)中使用labview 的软硬件产品。
最近,笔者一直在研究IEC61499 在软件定义仪器,高速数据采集,AI 设备,快速原型设计和仿真,实验室设备监控等领域推广的可能性。这些项目都需要智能化,可编程,分布式控制,软件可重用等需求。IEC61499 可能是一个非常合适的工具。而且比IEC61131这种基于周期性的执行模式更好。
事实上,所有智能化设备构建的系统中都需要可编程与重定义,IEC61499 更能够发挥其优势。一旦在这些领域中取得成功之后,便能够进一步向传统自动控制项目中渗透。也许不是去替代IEC61131-3目前已有的一亩三分地,而是以全新的方式与传统共存。
下一节,我们讨论一个领域-软件定义仪器。在后续的文章中,我们将讨论IEC61499 在机器人控制,AI机器视觉,甚至智能安防,智慧楼宇等新型行业的应用。
软件定义测量系统
测量是科学研究和生产制造的关键手段,为了精确地测量,人们发明了各种测量仪器。当我们进入任何一个实验室,映入眼帘的是各种各样的测量仪器。在高等研究中心的测量仪器是十分昂贵的。在现代制造业,质量控制,在线检测,产品检验中装备了大量的测试设备,占据的制造业投资巨大的比例。
多年以来,传统测试仪器结构简单,功能单一,主要依靠手工测试,工作效率较低。它们被称为厂商定义的(vender defined),而不是用户定义的(user defined)。仪器主要由硬件构成,其所有功能都在出厂前以硬件的形式固化下来,用户很难对其功能做出改变,且仪器难以升级换代,开发研制周期长,经费投入大。一旦不符合应用的需求,用户只能购买新的仪器设备。
另一方面,测量已经从单元的测试点转向构建完整的测量系统。构建这样的测试系统,已经不再是单一仪器的堆叠,还需要联网,同步和可编程。
测量仪器数字化的发展趋势,仪器的核心部件被功能强大的数字处理器取代,不同仪器的区别主要在于IO接口和显示外设。这就为软件定义仪器带来了无限的可能。软件定义仪器可以通过局部可配置,编程,以及强大的网络在测试和测量方面提供了前所未有的灵活性
。
高端测量仪器都是传统仪器厂商控制了市场,价格非常昂贵。生产线上的各种测量仪器占据了生产线很高比例的成本。而软件定义仪器为创新企业进入测量领域提供了发展的机遇。
美国NI是一家最成功软件定义测量仪器的公司。他们通过labview 图形编程语言和FPGA 技术。实现了使用图形设计语言实现FPGA 底层逻辑,测量工程师不需要HDL 语言就能够设计基于FPGA 技术的高速数据采集,数字滤波和数字处理算法。构建各种测量设备,同样的硬件平台,通过软件的重定义可以实现多种测量仪器。
软件定义模块化仪器的优点
- 增加测试系统的灵活性
- 高性能架构
- 低测试系统的投资
- 提高测试系统的寿命
软件定义仪器使用越长时间,其价值越大,能够添加更多的测量功能。你购买的时候也许只有8个仪器功能,用了几年后也许变成了12 个仪表功能。这将彻底改变测试测量系统,实验室设备和教学设备的状况。让众多的高端仪器得到普及。
软件定义仪器的硬件平台
不同仪器的差别-
- 数据采集模块
- 数据处理,分析算法
- 校正
- 仪器的配置
不同仪器的相同点
- 数学信号处理器
- 网络接口
- 信号显示屏
- 结果存储器
- 操作界面
- 测试报告
现代数字智能仪器普遍具有性能强大的数字信号处理的能力。它们可能是以传统DSP 实现的,更多是基于FPGA 实现。它们实现各种数字滤波,FFT变换等算法。不同的仪器可能配置不同的AD/DA 数据采集接口。由于信号的频率很高,所以CPU与IO模块之间的传输要求很高的带宽。传统基于PC机的测试仪器采用了PXI,面向仪器系统的PCI扩展总线。而Xilinx Zynq 为代表的异构SOC 芯片,将ARM CPU 硬核,FPGA ,NEON,AI 引擎集成在一个芯片上,CPU与FPGA 之间有大量的连线,增加了CPU与FPGA 的数据传输带宽。它们非常适合构建智能仪表平台。
我们正在开发的modular-2PRO 是基于xilinx zynq 7020 的智能仪器平台,它支持4 个高速IO模块。实现各种仪器信号IO。
软件定义仪器的编程方法
软件定义仪器的关键是如何配置和编程。类似labview 的图形编程语言被认为是没有编程经验的工程师最喜欢的方式,但是对应复杂的测试系统而言,使用图形语言的效率不高。一个简单的算法需要许多的图形来表达,没有程序设计语言简单与直接。因此,所谓简单都是相对而言的。熟悉了就感觉简单。对应程序员而言,计算机高级程序设计语言的表现能力是最强的。而且python 这样的语言就是为没有多少计算机程序设计背景的工程师准备的。
如果测试系统是一个分布式系统,labview 图形设计语言更是有点力不从心。IEC61499 是面向分布式控制,测量和监督系统的功能块标准。IEC61499 功能块与labview vi,有几分相似之处。但是它却又是原生地支持分布式系统。
使用IEC61499 能够实现:
- 高速IO 模块建模:构建IEC61499 功能块
- 功能块硬件加速:使用FPGA 实现硬件功能块,提高IEC61499 网络的执行效率,
- 将IEC61499 的复合功能块转换成FPGA 的IP核。
结束语
几乎任何智能设备和系统都需要具有可编程能力,作为一种基于功能块的分布式系统的编程方式,IEC61499 能够发挥其独特的优势, 去传统领域与IEC61131比拼,,目前并不是好的时机。