使用可编程片上系统设计高效的可编程逻辑控制器
可编程逻辑控制器(PLC)是一种基于微控制器的通用的电子器件,它是用来控制机器操作或过程的。PLC和传统的微控制器系统不同,它不是由器件厂商编程的,而是由机器设备制造商或最终用户编程的。PLC的应用包括:
•自动测试设备
•上料与下料设备
•机器控制
•家庭自动化
•电梯系统
•工厂自动化
根据处理输入和输出的数目。PLC可以分为下列几种主要类别:
• 极小型PLC:少于32输入/输出(I / O)功能的可编程逻辑控制器。
• 微型PLC:超过32输入/输出(I / O)点,但是不超过128输入/输出(I / O)功能的可编程逻辑控制器。
• 小型PLC:超过128输入/输出(I / O)点,但是不超过256输入/输出(I / O)功能的可编程逻辑控制器。它不包括任何根据基本系统所做得I / O改进。
• 中型和大型PLC:控制数目比较大(> 256),使用非常快速的输入/输出(I / O)扫描频率的可编程逻辑控制器。
根据ARC咨询集团最近的一项调查显示,在2007年,可编程逻辑控制器(PLC)的市场达到了近90亿美元,预计到2012年将超过120亿美元。
PLC编程
PLC使用梯形图来编程,提供前端定制软件,使最终用户可以编程。这些用户通常不是程序员,他们没有任何C或Verilog / VHDL的编程知识。
梯形逻辑编程看起来像机电继电器控制电路的配线图一样。我们举一个例子,一个楼梯的照明使用了两个控制开关。如果任何一个开关按下,楼梯的灯都要打开,如果任何一个开关又按了一次,那么就应该关闭。图1中显示了使用了两种开关和一盏灯的布线图控制实现 (开关1装在楼梯底部,开关2安装在楼梯上层)。
图1中开关1和开关2处于关的位置。如果开关1按下,那么上面的电路闭合将会开灯。如果开关2按下,将打开上面的电路并闭合下面的电路。然而,开关1已经打开下面的电路了,所以灯泡不会发光。再按下开关1,将会闭合下面的电路,灯泡就会发光。
图1:使用两个开关的楼梯灯控制布线图
图2所示为使用PLC进行相同控制实施方案和梯形逻辑。硬件开关接触用--||--(通常为断开)和--|/|--(通常为闭合)符号代替。
图2:可编程逻辑控制器(PLC)实现楼梯灯控制梯形逻辑图
图3显示了如何使用集成了PLC功能的PLD、 FPGA或片上系统(SoC)里的逻辑门实现相同的控制(非,与,或)。值得注意的是,图3中所有的门电路都可以用或非门代替。
图3使用“门”电路实现楼梯灯控制逻辑图
PLC工作原理
市场上大多数PLC是基于微处理器电路的。这些PLC读出所有的输入状态(即开关),然后执行用户写进去的梯形逻辑程序来确定最后的输出(例如,灯泡)。图4显示了创建一个传统的基于PLC的控制系统的各种部件。
PLC输入使用绝缘体进行孤立和水平传输,并连接到单片机端口。PLC输出连接到缓冲器和继电器,连接到相同的输出元素,如下图所示。
Figure 4: Conventional PLC Block diagram
图4:传统的PLC控制框图
The flow chart in Figure 5 shows how the PLC operates.
图5给出了PLC 的工作流程图。
图5:传统的PLC程序执行流程
传统PLC的局限
传统的PLC中程序顺序执行大约需要10 ms或更多时间来完成。以这样的速度,它们适用于输入信号频率低于100赫兹的控制应用。扫描时间也受程序长度的限制。举例来说,如果你想读一个速度传感器输入来测量大约每分钟1200转的速度(1200/60 = 200赫兹的信号频率),一个基于微控制器的 PLC使用该输入不能正确测量速度。这种系统可能需要解码器或计算IC自定义一个输入模块,方可读出高频信号,并把它们转化成一个数字值并传输给单片机;或者,可以考虑用一个10千赫频率的PWM来控制电磁阀流量。由于上述的限制,可编程逻辑控制器(PLC)不能直接输出,需要一个定制的输出模块和PWM发生器。加入这样的高速计数器模块和PWM发生器模块,那么可编程逻辑控制器(PLC)成本将增加2 ~ 3成。
有数字可编程逻辑的(例如FPGA或CPLD)可以解决频率问题。然而, FPGA缺乏内置模拟器件能力。例如,如果你需要用模拟温度传感器测量温度,你就不能直接连到FPGA接口。此外,FPGA对于这种应用来说太贵了。
为了满足PLC低成本的需求,开发人员需要一个这样的设备,它可以处理高速数字输入,高频输出,而且也能直接处理模拟信号。今天,有许多片上系统芯片(SoC),他们结合了完整的可编程逻辑的单片机和可配置的模拟模块来实现这一具成本效益的方式。
例如,这些SoC可以实现基于HDL的正交解码器的功能,使用两个90度相移
- 基于PLC的火力发电厂现地控制单元的研究(09-20)
- 基于AT89C55单片机的PLC研究(01-19)
- 基于嵌入式PC控制器的步进电机群控系统设计(11-25)
- μC/OS-II下通用驱动框架的设计与实现(07-23)
- 微控制器省电管理方法(05-04)
- 基于DSP和Cygnal单片机的移动数据处理传输系统 (07-06)