软件运动控制带来的效能与弹性

撰文:克里斯廷‧洛瓦斯基
运动控制与马达协会
发布时间:2017 年 11 月 30 日

在现代制造业,每个人都想要更高的产量、更快的速度、更多的弹性及更好的效能。虽然很多应用程序可以有效配合常见的可编程逻辑控制器(PLC)或运动控制器,但业界仍存在着这些解决方案无法满足的特殊需求,这使得软件运动控制成为新的焦点。当要为专业应用程序寻找配套措施时,软件运动控制就成为高效能应用程序的必备方案。

多年来,控制领域始终是 PLC 的天下。PLC 擅长计数、计时、管理输入输出(I/O),以及处理其他机器控制事项。最初,PLC 只能控制少轴数的运动,无法做太复杂或高度同步的动作,然而许多要求很高的应用程序需要专门的运动控制器。近几年来,PLC 与运动控制器的界线变得模糊,如今专业 PLC 已能处理高度同步的运动,有些运动控制器也能处理几十个 I/O 点,不再需要个别的机器控制器做这些事。

专门的运动控制器与运动控制 PLC 是针对专业领域特制化,可以用很高的效率完成特定工作,但这些特殊功能也限制了它们的弹性。客制化不是不可能,但耗时费力。再者,这些控制器和 PLC 的带宽也有限,因为它们常使用搭配特定应用的集成电路(ASIC)或数字讯号处理(DSP),产品更新周期通常很慢。软件运动控制则提供了其他的可能性,它有通用型处理器优异的运算效能做后盾,可以提供高效能、高度客制化和够多的弹性。

「比起传统解决方案,软件运动控制更经济实惠、效能更好。」ACS Motion Control(公司位于明尼苏达州布鲁明顿)总经理杰森‧戈格斯表示。「计算机可以利用英特尔设计生产的处理器,他们的处理器比运动控制公司设计的处理器更强大也更有效率。」

在软件运动控制领域,产品功能性取决于程序设计。一般而言,软件运动控制使用运动算法,这些算法是以某些版本的运动脚本语言写成,通常是 C/C++ 或 Visual Basic,这是软件运动控制能在任何数字运算平台上运作的原因。控制命令会透过软件建立和传送,而非透过硬件,因此,它可以解决复杂的运动问题;若用传统途径解决这些问题,将会相当耗时费力。

考虑系统需要依据输入的变量更新运动轨迹,I/O 需要快速切换,得到结果后,控制器会决定接下来怎么做,同时依据运动控制轨迹更新下一个目标位置。「之前要执行这类项目非常困难,因为要先在 PLC 上完成逻辑,决定下一步怎么做,再送出触发条件,还得确保 PLC 和运动系统之间的控制回路或通讯没有太多延迟。」国家仪器(National Instruments,公司位于德州奥斯汀)运动控制研发组经理奈特‧荷姆斯说道。当运动控制器的制式功能无法处理输入讯号的类型或时序时,问题就出现了。「你得使用特定技术或取巧的方法,让 PLC 和运动控制器上的组件能正常同步运作。」他补充说明。「用软件运动控制就简单多了,因为这些工作都可以在控制器上的同一套应用程序里客制化和执行。」

智能驱动器与联机能力

有几个关键技术的发展促成了软件运动控制的成熟,第一项是数字总线接口。数字网络以单一数字总线取代了点对点模拟接线,这种总线能让大量的组件高速沟通,常见的协议包括 EtherCAT、Ethernet/IP 与 PROFINET。

智能驱动器是第二个条件,正是它们的崛起掀起了软件运动控制的潮流。传统系统中,运动控制器会将模拟讯号传送至驱动器,驱动器再去关闭扭矩回路,运动控制器则负责关闭控制机制和速度控制回路。这种架构需要把每个轴从马达连到驱动器,驱动器再连到控制器。如果需要用大机器和相当多的轴数,这样的连接方式会大幅增加成本、复杂度和失败的机率,智能驱动器为此提供了解决方法。

智能驱动器纳入了微处理器和内建内存,大幅提升了功能性。它可以关闭扭矩、位置和速度回路,也能够提供保护机制,有些智能驱动器甚至还具备可供用户自行配置的数字 I/O,能与系统内其他装置沟通。

智能驱动器和联机能力开启了分布式控制架构的大门。不像以往的驱动器只能藏身在机箱内的控制器旁,智能驱动器可以放在马达旁的机器上,以串接方式加入主从式架构,处理更复杂的多轴运动。驱动器和马达之间的点对点接线现在可以用一条以太网络线取代。这对电源和 I/O 缆线有很大的帮助,因为这两种线的价格可能非常昂贵。虽然智能驱动器比传统驱动器要贵,但不会贵太多,而且配线成本可以因此降低,支出可以由此平衡。

英特蒙(IntervalZero,公司位于麻萨诸塞州沃瑟姆)客服工程协理杰瑞‧莱兹,提到了软件运动控制兴起的另一项因素:处理器速度。「现在计算机越来越快,」他道。「两个分数相乘不比两个整数相乘来得慢,这颠覆了过去的情况,软件现在可以做以往做不到的事。」

多面向的软件运动控制

不同的实行方案经过改良后,可以满足不同的需求,或许最简单的方式是让 PLC 执行一套软件运动控制算法。这种做法似乎不符合计算机控制的趋势,但 PLC 说穿了是一种强固型数字计算器,很多 PLC 都使用 x86 处理器。就像一般计算机一样,PLC 能执行软件运动算法,只是速度不够快,运算能力有限而已。在这些领域,计算机的延展性就比较大了。

尽管计算机运动控制已不再是陌生的词汇,许多包括荷姆斯在内的业界专家仍不乐见这种结果,因为这种方法与个人计算机和 Windows 脱不了关系。对软件运动控制应用程序而言,Windows 不是操作系统的好选择。执行软件运动控制的平台必须具备可靠精准的效能,要达到这样的条件需要实时操作系统(RTOS),硬件也必须够坚固、效能够高。虽然一般计算机的价格足够吸引人,工业控制还是需要强固的机器,才能在严苛的环境下运作顺畅。

「你不能随便找台 Windows 计算机,写个程序发布下去,然后期待系统会稳定执行标准自动化作业或协调运动。」荷姆斯道。「那些工作需要控制或驱动器通讯之类的组件,而且需要在某些时候很精准的执行。」

软件运动控制常见的做法是用多核心处理器,将其中一个核心分配给 Windows,再安装 RTOS,让一个核心负责运动控制,另一个核心执行 Windows,Windows 核心可以控管人机接口(HMI)之类的工作(图一),RTOS 和 Windows 可以透过 TCP/IP 和共享内存沟通。即使 Windows 核心出问题,也不会影响运动控制的运作。

图一:为确保实时运作,PC 控制器会使用双核心处理器。一个核心给 Windows,负责人机接口(HMI)之类的非实时工作;另一个核心给实时操作系统(RTOS),负责运动控制。(图片由英特蒙提供)

这种软件控制器可以配合传统 PLC 控制机器。另一种方式是,用第二台计算机或另一个核心来执行软件 PLC。现在,不管是哪个层面的控制都可以用软件执行。

使用计算机来执行软件运动控制的情境很多。除了上述的例子,x86 主板可以装在产品上,经过配置后,能够执行软件运动算法。机箱结构和外壳因使用状况而有所不同,但效能是一样的。反过来说,一台计算机可以使用数字讯号处理(DSP)或图形处理单元(GPU)等不同的加速器来执行软件运动控制,即使这样做会回到受限于硬件和功能的阶段。至于那些要求很高的应用程序,现场可程序逻辑门阵列(FPGA)提供了可编程的内嵌式运算解决方案(图二)。

图二:现场可程序逻辑门阵列(FPGA)控制器提供了可用程序调整的高速运作方案。(图片由国家仪器提供)

在 PC 系统上,优质的安全措施是必要的。在可视化工厂兴起的同时,设备需要连到因特网。所有连网的组件都有一定的风险,但 PC 特别容易受到恶意软件攻击。RTOS 核心也许安全,但 Windows 核心怎么办?如果这两者要沟通,而且是频繁沟通,必定得采取某些措施来确保两者能安全通讯。

软件运动控制实务

软件运动控制可以透过多个应用程序完成工作,但只有在能处理复杂需求、极小容忍度和高度同步化运动的应用程序上,才会显出它的优势。这些应用程序很适合用来处理一些精密工作,如半导体制程检测所用的 XYZ 定位平台。

这样的技术可以用于大型硬件的精密测试,如飞机零件的压力测试。这个应用需要为超大型零件定位、套用精确的力道并同时收集资料。国家仪器运动产品经理克里斯‧强森表示:「我们能密切同步化这些信息,做出多数 PLC 厂商无法做到的模拟功能,来进行高精准的测量。」

软件运动控制非常适合用于轴数庞大的系统。为特定轴数设计的专业运动控制器也许只能储存特定存取数量的设定资料,也有可能因内存不足、处理器效能不够而无法支持更多的轴数。软件运动控制结合智能驱动器、工业以太网络及软件运动算法,能以最低成本扩展到高轴数需要的环境。

这种架构支持复杂的控制系统。莱兹举例,一条输送带上的电子零件组装线会经过 20 站,每站都需要在特定时间内加入零件。基本上,有 20 轴需要和单一主轴同步。「如果你要用硬件做这件事,就只能把编码器从所谓的主轴上取出,再将线路接到要同动的副轴板子上。」莱兹道。「你会烦死。」如果是使用 EtherCAT 软件运动控制系统,数据会透过全双工总线,以一周期 500 微秒或更快的速度循序通过这 21 轴。「现在,软件已经知道这 21 轴的确切位置。假设因为连动的关系,第五轴需要知道第 17 轴在哪里,它只要问软件它在哪里就行了。第五轴可以决定接下来要做什么,这是很大的差别。」

要同步大量轴数,也可以用另一种方法,就是建立所谓的幻影轴。幻影轴是一种虚拟轴,以固定速度转动。系统内其他轴都会以电子变速的方式配合幻影轴。「你只要告诉幻影轴何时开始和结束,机器就会顺畅地同步运动。」莱兹说道。「你不会想用 DSP 控制器做这件事,因为你会浪费一整个轴,但用软件就没差,因为幻影轴免费。」

最后一个例子是,我们要迎向业界的研发趋势:将多台机器或模块合并在单一控制器上。想象一下,有一套半导体设备负责生产完成的电路板,这些电路板会送到另一条有垂直堆积器的输送带上,堆积器可以接受贮存盒。如果用传统技术,每台机器或模块会有自己的控制机构,这些机构全都要整合以达成同步运动。软件运动控制可以做的事,不仅仅是让两台机器同步运作而已,它可以让控制机构合而为一。

主机器有一台计算机执行软件运动算法,同时透过以太网络线与智能驱动器沟通。只要堆积器有安装智能驱动器,就可以很容易地将它与主机器整合。透过以太网络线,两套设备可以快速连在一起,接下来将独立的软件运动程序加载主机器的计算机,就能开始操控堆积器。「这样就完成了。就某种层面来说,它们算两台机器,因为有两套软件在运作,但软件是在同一台计算机上,两支程序也都和同一个软件运动链接库沟通。」莱兹说道。「如果要用另一台机器,只要把马达和放大器装上去就行了,不用再装计算机、DSP、屏幕,你可以省下一大笔钱。」

软件运动控制适合你吗?

就像工程界常说的,世上没有完美的解决方案。如果需要的控制回路速率,比驱动器和控制器之间的实时数字总线上可达到的通讯回路速率更快,那么软件运动控制就不适用。在这种情形下,应用程序需要的是客制化解决方案。从另一个层面来说,一个常见的应用程序可能已经具备了低成本标准解决方案,而专为机器人和数值控制工具机(CNC)订做的应用程控器,则是用来简化程序设计,使设备更易于使用。这不是因为软件运动控制无法做到同样的事情,而是因为它做同样的事不会更有效率或使成本更低,除非应用程序需要的功能无法透过标准机器人或 CNC 控制器完成。就后者来说,软件运动控制也许就是理想的选择。

「如果硬件不适合,或需要用供货商不支持的方式扩充,软件运动控制就变得很吸引人,因为你可以客制化或扩充功能,不需要从头开始。」荷姆斯道。「软件运动控制提供了一个中间地带,让你可以从这里切入,它可以帮你处理好很多机器、控制回路和接口的基础架构,但让应用程序端保持开放,你可以在既有的基础架构上进行各种测试,来找出你需要的功能。」

随着科技进步,本篇报导的每个受访者都预言了这个领域的成长。「商业需求量越来越大,公司需要某种变革。要让这种变革出现最好的方法,或许也是唯一的办法,就是透过软件运动控制或软件工具。」荷姆斯补充道。「我们看到很多用软件运动控制的人都想在流程或应用程序上有所创新,他们通常不是无法使用现成的解决方案来改良他们现有的流程,就是想把自家开发的应用程序卖给别人,来提高产品价值。」

「我想软件运动控制会继续从硬件那里抢食更多市场大饼。」戈格斯道。「任何想做运动控制的公司,都应该把软件运动控制的可行性纳入考虑,因为在很多情况下,你能以较低的成本获得更高的效能。」

Translated from: motioncontrolonline.org