《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 使用可编程片上系统设计高效的可编程逻辑控制器
使用可编程片上系统设计高效的可编程逻辑控制器
摘要: 可编程逻辑控制器(PLC)是一种基于微控制器的通用的电子器件,它是用来控制机器操作或过程的。PLC和传统的微控制器系统不同,它不是由器件厂商编程的,而是由机器设备制造商或最终用户编程的。
关键词: CPLD PLC 片上系统
Abstract:
Key words :

可编程逻辑控制器(PLC)是一种基于微控制器的通用的电子器件,它是用来控制机器操作或过程的。PLC和传统的微控制器系统不同,它不是由器件厂商编程的,而是由机器设备制造商或最终用户编程的。PLC的应用包括:

•自动测试设备
•上料与下料设备
•机器控制
•家庭自动化
•电梯系统
•工厂自动化

根据处理输入和输出的数目。PLC可以分为下列几种主要类别:
• 极小型PLC:少于32输电子产品世界http://www.eepw.com.cn/article/121874.htm入/输出(I / O)功能的可编程逻辑控制器。
• 微型PLC:超过32输入/输出(I / O)点,但是不超过128输入/输出(I / O)功能的可编程逻辑控制器。
• 小型PLC:超过128输入/输出(I / O)点,但是不超过256输入/输出(I / O)功能的可编程逻辑控制器。它不包括任何根据基电子产品世界http://www.eepw.com.cn/article/121874.htm本系统所做得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度相移传感器信号,通过高速读出速度/位置传感器信号来检测电机的旋转速度和方向。同样的,PWM波形发生器可以使用片上可编程数字资源实现。通常机器控制操作所需的任何定时器和计数器模块也可以用同样的方式实现。这些器件(正交解码器、PWM发生器、定时器、计数器等等)可以通过一个编程器一次编码成可以利用的可配置库元件。这种方法使没有HDL经验的终端用户也可以给PLC编程,使用这些器件不需要底层HDL/ C编程,并且不必学习器件的底层结构。除此之外,其他控制功能也能够使用与、或、非门实现,这些是SoC的标准部件。

系统举例

图6显示了适合PLC的SoC组件,包括CPU,可配置的模拟模块(比较器、放大器、 DAC、ADC),以及可编程数字模块(基于PLD)。这些组件集成到了一颗器件,开发人员可以建立一个单芯片低成本的可编程逻辑控制器(PLC),从而可以克服标准PLC中的速度限制,同时能够为最终用户提供简单易用的编程方式。

图6:SoC实现可编程逻辑控制器(PLC)应用,如赛普拉斯的PSoC,它结合了微控制器与可编程数字和模拟模块。

基于PLD的通用数字模块(UDB)可用于实现门逻辑,而可配置的模拟部件(如ADC,DAC,放大器,比较器)可以处理模拟信号。集成的CAN控制模块可以用于连接网络上的多个PLC,支持更多的输入和输出。内嵌的USB控制器可以用作PLC的编程和调试接口。

使用可编程SoC结构(如赛普拉斯的PSoC),任何内部模拟或数字信号都可以路由到任何GPIO(通用输入/输出)管脚。这种灵活性使可编程逻辑控制器(PLC)用户可以使用单个PLC设计实现各类机器控制功能。例如产品生产线机器" A "(10个数字输入,2模拟输入,7个数字输出,1个模拟输出)和机器“B”(12数字输入和8数字输出)。12数字输入和8数字输出的PLC可以通过固件配置,控制其中的任何机器。这是数模混合信号可编程器件用作PLC应用的最大好处。

图7:基于PSoC的可编程逻辑控制器(PLC)框图(综合了继电器板和编程器)

例如,如果一个PID速度控制回路需要使用正交调制编码器为速度反馈建立一个直流电机控制,就可能使用相同的基于SoC的可编程逻辑控制器(PLC)子系统。这些基于PLD的通用数字模块(UDB)使用预构建组件可以设置为正交调制解码器,来高速读出速度信号(> 100千赫),其他的UDB可以配置为PWM发生器,生成一个需要的脉冲宽度调制信号(例如,32千赫)来控制场效应管H桥,从而控制直流电机的速度和方向。把这些融合在一起,可以使用一个单独的器件设计,那么需要给PLC编程的最终用户就可以简单拖放这些组件,分别给他们配置参数,就可以开始使用PLC控制电机了。

网络化的可编程逻辑控制器(PLC)

为了控制有许多输入和输出的机器,就需要把许多PLC组合为一个单个的大型PLC。这可以通过CAN总线实现PLC模块之间的接口,从而支持更多的输入和输出(见图8)。

图8:基于PSoC的模块化的和可扩展的可编程逻辑控制器(PLC)网络

这种架构允许开发人员构建一个网路可编程逻辑控制器(PLC),能够控制有很多输入与输出的更大系统。此外,许多工业控制应用使用触摸屏作为机器控制面板。综合触摸屏和可配置的人机界面(HMI)能力可以进一步巩固成本优势(消除了分立和昂贵的定制触摸屏HMI面板的成本问题)。

简单易用的编程方式

开发人员还可以利用半导体厂商为最终用户PLC编程设计的开发工具,而不需要建立客户化梯形逻辑编程。例如,赛普拉斯的“PSoC Creator”编程软件允许用户对基于PSoC 的PLC进行直观的编程,在原理级(schematic-level)视窗中可以使用与、或、非门部件。结果是,用户不需要C或VHDL/ Verilog编程知识就可以给可编程逻辑控制器(PLC)编程来实现它的全部功能。图9所示为使用PSoC Creator实现的楼梯开关逻辑。门级实现可以代替梯形实现,允许用户充分利用所有的系统特色。

图9:使用PSoC Creator的楼梯开关实现方式

 

此内容为AET网站原创,未经授权禁止转载。