赞
踩
许多人都将通用系统上实现的PLC 称为软件PLC,而将PLC 设备称为硬件PLC,其实这是一种误解,大多数PLC 的程序都是通过软件来运行的。
许多PLC是采用通用MCU 实现,PLC 内部运行时是通过软件实现的。应用程序执行的方法有两种,一种是将IEC61131-3的梯形图,ST,IL转换成为一种中间语言,由PLC 运行时解释执行,另一种方法是将IEC61131-3 的应用直接通过编译器翻译成为PLC 内部MCU 的二进制执行代码,下载到PLC 内部存储器中直接执行。无论是哪一种方式,它们都是软件为主实现的。不同厂商的PLC 会采用不同的方式来提高运行时的执行效率,比如采取更高速率的MCU,RTOS和高速内部总线。
与之类似的,基于IEC61499 功能块的PAC 与PLC 也十分类似。运行时也是由软件实现的。
为了提高PLC 的运行效率,提高PLC 的实时性和确定性,现代PLC 中使用了FPGA 芯片。使用FPGA能够实现PLC中功能块的硬件加速。能够在控制周期中实现更加复杂的算法,比如数字滤波,FFT等。更进一步地,还能实现AI,图像识别需要算力的算法。
但是,这仍然是一种软硬件混合的实现方式。FPGA只是加速了功能块的执行算法,功能块与功能块之间的调度,数据传递是依靠软件来完成的。所以说,它并不是“纯”硬件PLC 方法。
软硬件混合模式具有一定的局限性,比如,一个PID 环,如果数据采集,信号处理,PID 算法和执行输出将会由多个功能块实现。即使功能块由FPGA 实现,功能块之间的数据交换和基于事件的调度,仍然由运行时程序完成,这样一来,运行时软件与FPGA 之间的数据交换将会影响执行速度。
如何能够实现“纯”硬件执行PLC 的梯形图或者IEC61499 的功能块应用?这将会使事情变得复杂
纯硬件实现显然不够灵活,而且增加了开发的难度。笔者认为,有一种折中的解决方案,就是将事件敏感的PLC 周期执行环路放置在复合功能块中,将这些实时复合功能块转换为HDL 语言,将HDL 转换成为FPGA的bitstream。
该方案的结构如下:
PLC 复合功能块转换成为FPGA 内部逻辑,在全局时钟额驱动下实现周期化执行,并且通过接口与PLC CFB 交换信息。PLC-CFB也能够对硬件PLC 逻辑做参数设置。
与软件runtime 类似。要建立“纯”硬件PLC ,基于HDL 的功能块库同样非常重要,我们要建立基本逻辑功能块和面向行业应用的功能块库。所谓PLC 梯形图转换成为FPGA 逻辑,其实是编写一个Top 模块。
本文讨论了基于FPGA 的IEC61131-3、IEC61499 功能块应用的“纯”硬件实现。提出了功能块FPGA化和PLC 功能块化的两种方案。供参考。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。