嵌入式工程师为先进的机器人、自动化机器和运动系统设计现代工业系统,需要将许多元素组合在一起来构建工业伺服驱动器。这包括实时、确定性操作;高计算架构和足够的应用程序内存;以及用于分布式控制的工业网络连接。
不幸的是,这些不同的子系统通常是从过去的旋转简单伺服电机、参加工业以太网协议编程研讨会或参加关于控制理论和算法的暑期班的经验拼凑在一起的。思考这些元素如何真正互连可以产生更高效的多通道运动控制解决方案,该解决方案可针对不同应用进行扩展。
以下是关于如何简化伺服驱动器开发、解决管理多个工业以太网协议的挑战的三个设计案例研究。这包括 Profinet、EtherCAT 和 Ethernet/IP。
传统的伺服驱动解决方案(图 1)包含不同的组件,这些组件必须在最佳情况下“实时”运行以使电机旋转。
图 1:传统驱动解决方案。
实时处理器子系统 用于伺服驱动器的现代实时嵌入式系统需要高性能架构来实现使用高载波频率的磁场定向控制算法。当它与位置环结合并与轨迹生成一起使用时,计算负载会增加,特别是如果将第二个运动轴添加到系统中。
许多当前的微控制器解决方案仅在此应用中就耗尽了处理器带宽。使用具有更多处理器带宽的微处理器 (MPU) 或微控制器 (MCU) 的想法是典型的解决方案。
这里的挑战是,随着 CPU 时钟越来越高,内存系统无法跟上,我们需要等待状态或高速缓存。高速缓存在硬实时系统中是有问题的,因为它缺乏有限执行时间所需的确定性。
一个典型的应用程序将使用比缓存中容纳的更多的程序和数据。如果缓存未命中,则必须从较慢的内存中加载代码或数据,这会导致执行时间发生变化。典型的 MPU 内核也缺少向量中断控制器,这需要软件进行更多处理以找到中断源并调度正确的中断服务程序。
如果发生多个中断,高速缓存存储器和中断控制器的影响会导致不确定的行为和无限的执行时间。
实时设计的架构,例如,具有嵌套向量中断控制器和紧密耦合存储器 (TCM),可确保高可用性操作(图 2)。向量中断控制器将通过硬件直接通过向量表调度到适当的中断处理程序,从而最大限度地减少中断延迟。
图 2:具有 TCM 和向量中断控制器的实时架构视图。
TCM 直接连接到与高速缓存相同的内存层次结构的内核。TCM 是一个简单的 SRAM,没有像缓存这样的标签,因此它体积小,实现效率高。接下来,内置双精度浮点单元 (FPU) 充当 CPU 的数学协处理器并简化数学运算。
实时处理器子系统的另一个好处是减少抖动。由于运动涉及非常高速的计算,因此在处理微米级分辨率时,位置控制的准确性至关重要。例如,如果伺服驱动器以 10 m/s 的速度运行,并且以 2 μs 的时间偏移(中断延迟加上抖动)捕获位置,则产生的位置误差将为 0.02 mm。
尽管这似乎并不重要,但及时传播此位置误差将导致生产错误和报废单元。
硬件中的工业以太网加速器工业以太网需要高效的数据包处理,以实现尽可能确定性的通信。典型的 TCP/IP 协议的问题是当 TCP 检查数据的传递并在未成功接收数据时重新传输时的固有延迟。
传统上,帧是使用特定的软件程序来处理的,以处理以太网报头和数据。这显然需要时间,并且可能被视为 CPU 的“开销”,因此会影响 CPU 吞吐量。
工业以太网协议以大约 100 Mbps 的速度运行,并且基于 UDP,因此没有丢包的空间,尤其是在运动控制系统中。许多具有 100 Mbps 和独立于媒体的接口 (MII) 的 MCU 无法处理帧有效负载而没有不确定抖动的风险,因为它没有针对高速数据包处理进行优化。
因为 CPU 需要优先考虑控制循环算法,所以可能会丢失数据包,或者更糟糕的是,非同步分布式运动系统。
如果可以在硬件中实现诸如编码/解码数据包或简单校验和等高速操作,以改善数据包处理并为其他任务卸载 CPU 带宽,则可以改善 RTOS 操作并减少校验和操作的额外开销(图 3 )。
图 3:硬件辅助帧处理。
用于实时控制的固件 固件操作需要根据它们对确定性行为的需要划分为不同的任务。
图 4:电机和运动控制应用架构。
围绕虚拟电机模块块构建的固件架构(图 4)将简化开发。它包括执行确定性周期性和非周期性任务的函数。它们在一侧与电机控制硬件接口,在另一侧与其余固件模块接口。
周期性实时任务从产生 PWM 周期的定时器的中断处理程序中调用。它确保控制函数调用的确定性时序。这包括获取当前位置、执行位置控制回路和电流控制回路——也称为磁场定向控制——为下一个 PWM 周期生成占空比,并收集数据以供将来诊断。
非周期性实时任务响应外部模拟或数字信号触发的事件。控制功能评估上下文以在电流过载或位置捕获的情况下采取行动。
虚拟电机可以识别不同的命令,提供对所有控制参数和算法的访问。主机可以定期获取信息,跟踪每个电机的状态,控制运动请求的执行。或者,主机可以配置来自不同变量的样本集合,这些变量可以在设备上缓冲并在以后进行分析。
然后可以将电机控制框架实例化为使用共享内存与虚拟电机和其他外围设备交互以与主机通信的包装器。虚拟电机还通过触发可以协调特定应用线程操作的信号量与 RTOS 集成。
实时处理器:关键要点设计您自己的伺服驱动器可能会变得复杂,因为需要适应实时控制、连接性和可针对不同应用程序或产品变体进行扩展的固件架构。
使用实时处理器内核可实现更具确定性的操作并减少抖动。能够利用硬件 IP 来加速和提高网络吞吐量,或者利用可编程模块来支持不同的编码器,可以简化分布式运动和各种协议的管理。
最后,设计能够支持不同类型应用的固件将有助于进一步简化开发过程。考虑到这些因素来进行伺服驱动器设计将有助于您启动并运行构建自己的伺服电机驱动控制器。
审核编辑:汤梓红
-
处理器
+关注
关注
68文章
19109浏览量
228856 -
伺服电机
+关注
关注
85文章
2021浏览量
57635 -
伺服驱动器
+关注
关注
22文章
474浏览量
31430
发布评论请先 登录
相关推荐
评论