栾 朋,黄志钢,宋春雷
(沈阳理工大学信息科学与工程学院,辽宁沈阳110159)
传统的PLC具有编程简单,通用性强,可靠性高等特点,在工业控制领域占据了举足轻重的地位。由于目前控制内容的复杂化和多样化,传统PLC已不能满足差异化,个性化的要求。现阶段,市面上已经出现了由各种单片机实现的控制器,如基于C51的控制器和基于AVR的控制器[1-2]。虽然在一定程度上,它们实现了控制器的差异化和个性化,但是由于单片机本身资源的局限性,使其存在模块集成度低、运算速度慢、实时性差等缺点。本文在基于单片机实现PLC的基础上以嵌入式微处理器STM32F103RB为核心设计了通用小型的可编程控制器。采用模块化设计,论述了各模块的具体实现并给出了相关原理图。输出模块使用74HC595芯片扩展I/O口,采用OLED显示器实现PLC输入输出状态的监测[3]。
采用32位嵌入式ARM-Cortex M3作为可编程控制器的CPU,以该微处理器为核心,扩展本系统的Flash存储器;通过74HC595串入并出芯片扩展数字量输出I/O口;模拟量输出采用PWM方式;系统通过微处理器的两路SPI总线接口实现与扩展Flash存储器、网络模块的通信[4]。另外,该系统设计了OLED显示模块,可以对输入输出I/O口进行监测。系统总体结构如图1所示。该设计重点进行输入输出模块,电源模块,通信模块和显示模块的设计。
图1 系统的总体结构
STM32F103RBT6芯片采用高性能的ARMv7 Cortex-M3版本内核,工作频率最高可达72MHz。采用3级流水线和哈佛结构,具有独立的指令和数据以及外设总线,使得代码执行速度高达1.25MIPS/MHz。它内置128K字节的 Flash和20K字节的SRAM,同时具备丰富的增强I/O端口和外设。该芯片工作于-40~+85℃的温度范围,供电电压为2.0~3.6V,同时具备低功耗的特点。使得STM32F103微控制器适合于工业控制、汽车电子和手持设备等多种应用领域。
输入输出模块是此次设计过程的重中之重,对象过程参数通过输入I/O口传递给控制器,控制器产生的控制信息经过输出I/O口传递给执行机构,从而形成系统的开环或闭环控制,实现PLC控制器的控制功能。
1.2.1 数字量输入输出模块
数字量逻辑控制是PLC的最基本的功能。数字量输入模块的每一个输入点可接收一个来自用户设备的离散信号(ON/OFF)。通过输入接口电路把现场开关信号变成CPU能接收的标准电信号。数字量输出模块的每一个输出点能控制一个用户的离散型(ON/OFF)负载。通过输出电路把CPU运算处理的结果转换成驱动现场执行机构的各种大功率的开关信号[5]。对于数字量输入输出如果不采用隔离,容易受到电磁信号的干扰,因此本设计采用光电隔离器件TLP181,使上位机与现场实现电气隔离,从而保证系统工作的稳定性。数字量及电平输入电路如图2所示。数字量输入为8通道,图中IVCC0端接12V电压。同时,系统扩展了按键设计,可以用来对数字量输入强制为“1”或“0”。
图2 数字量及电平输入电路
输出模块采用74HC595串入并出芯片扩展8路I/O口,此外许多外部设备在开关过程中也会产生很强的电磁干扰,所以数字量输出单元电路应该考虑隔离和放大问题。数字量输出单元等效电路如图3所示。其中,NPN输出每路最大负荷为2A/40VDC。
图3 数字量输出等效电路
1.2.2 模拟量输入输出模块
STM32F103RB微控制器内部自带12位的AD转换器,可以扩展12路0~5V或0~24V AD输入,时钟由微控制器系统的时钟分频所得。本设计采用6路0~5V模拟量输入,其中AD0~AD5为模拟量输入正端,负端接 GND。其中AD4,AD5支持DB18B20或 DH11传感器信号。由于考虑到成本和精简问题,该设计没有外扩数模转换器,而是采用占空比可调的PWM来实现12位分辨率的模拟量输出。模拟量输出单元电路如图4所示。
图4 模拟量输出单元电路
一般数字电路越复杂,数据率越高,累积的电流跳变越强烈,高频分量越丰富。而普通印刷电路的分布电感较大,使地线不能完全吸收逻辑电平跳变产生的电流高频分量,所以会产生电压的毛刺,而这种毛刺进入地线后不能靠旁路电容吸收,而且会通过共同的地线或穿过变压器,干扰模拟电路和AD转换器,其幅度高达几百毫伏,足以使AD工作异常。因此在本设计中模拟量输出端采用6N137高速脉冲输出将模拟电路和数字电路彻底隔开。
在本设计中电源转换采用KIS-3R33S电源模块,内部主要由MP2307DN单片同步降压稳压器构成,如图5所示。该器件集成可调MOSFET,能够提供3A的持续负载电流,超过了广泛的输入电压4.75~23V,MP2307DN电流模式控制提供快速瞬态响应和逐周期电流限制。
由于本设计中ARM芯片及其他扩展芯片采用3.3V供电,所以电源模块KIS-3R33S将外部提供的12V电压转换成3.3V提供给ARM微控制器和其他扩展芯片。电源转换模块如图6所示。
图5 MP2307单元电路图
图6 电源转换电路原理图
通信模块的设计包括两个部分:网络通信和串行通信。通过两个通信模块的设计实现ARM微控制器与上位机、其他控制器之间的通信。使其达到更好的控制效果。
1.4.1 网络通信
网络通信采用以太网控制器ENC28J60芯片,该芯片通过SPI总线接口与ARM微控制器进行通信,最高速率可达10Mb/s。其工作电压为3.14~3.45V,由电源转换模块提供,正常工作时的时钟频率为25MHz。利用以太网控制器实现MCU与上位机的通信,从而可以监测控制器的运行状况。网络通信模块如图7所示。其中TPIN-、TPIN+、TPOUT-和TPOUT+四个端口与以太网变压器相连,实现电压的转化,达到通信的要求。两个专用的引脚连接LEDA和LEDB,进行网络活动状态指示。
1.4.2 串行通信
为了方便系统之间的信息交换,本设计提供了串行通信功能,可以通过串行通信接口连接显示终端,编程器或上位机。ARM Cortex-M3微控制器STM32F103RB具有两个通用异步收发器接口。它们的结构及寄存器符合16C550工业标准,因此,可以使用UART与RS232接口的设备进行基本通信。设计中,选用+3.3V电源供电的电平转换电路MAX3485进行电平转换[4]。RS485支持MODBUS协议,采用差分信号负逻辑,+2~+6V表示“1”,-6~ -2V 表示“0”。RS485有两线制和四线制两种接线,四线制是全双工通讯方式,两线制是半双工通讯方式。本设计采用两线制半双工通信方式,可以外部扩展多个模块。
图7 ENC28J60网络通信电路原理图
图8 RS485串通信电路原理图
OLED显示技术与传统的LCD显示方式不同,无需背光灯,具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光。而且OLED显示屏可以做得更轻薄,可视角度更大,并且能够节省电能。考虑精简问题,本设计采用1.04寸OLED显示屏监视PLC控制器的各种工作状态。OLED电路引脚接线如图9所示。另外,在8路数字量输出端口分别设有8个LED指示灯,如果有I/O口工作,响应的LED灯被点亮。
图9 OLED电路引脚接线图
在可编程控制器中,一些编程软件的数据内容需要掉电保存,而STM32F103RB芯片内部存储器仅为128K,因此系统通过 SPI总线接口扩展MINI SD接口,可以读取SD卡中的数据,用来保存这些掉电需要保存数据的编程软件。
首先,在装上芯片之前先用万用表测量各芯片供电以及接地引脚的电压是否正常,测量结果如表1所示。由于芯片的正常工作电压为3.3V,所以根据测量结果各芯片可以正常工作。
表1 芯片测量电压值 V
其次,调节失调电压,其值如表2所示。使输入信号为零,调节调零电位计的电阻,当调节到各芯片的输出电压为零时,也就达到了调节失调电压的目的。表2结果显示各芯片输出接近零值。
表2 各芯片失调电压输出值 V
最后,让整个电路工作,直接通过Tektronix示波器观察输出信号波形,图像可以直接在电脑上获取。图10为2路PWM输出波形,占空比均为50%,输出电压分别为+5V和+12V。
图10 PWM输出波形
其硬件PCB板及PWM输出控制电机转动实验如图11所示。
图11 PLC控制电机实验实物图
经过原理图和PCB图的设计,电路焊接和硬件电路调试,最终完成多功能控制器的硬件设计并可以正常工作。实现控制器的所有功能。该控制器可以用于开关量的逻辑控制和模拟量的闭环控制,并且通过软件编程可实现PID控制。
[1]姜琳.基于单片机的PLC设计与实现[D].南京:东南大学,2008.
[2]俞国亮.一种用 Atmel89c2051仿真 PLC控制方法[J].微计算机信息,2005,21(26):130-132.
[3]张嵩,术守喜,丁广乾.基于ARM 的嵌入式PLC的设计[J].自动化与仪器仪表,2008(3):9-10,23.
[4]黎娜,蔡启仲.基于ARM7与FPGA组成的可编程控制器[J].微计算机信息,2008,24(4-1):44-46.
[5]吴中俊,黄永红.可编程序控制器原理及应用[M].北京:机械工业出版社,2008.
[6]唐明军,唐慧强,黄金燕.基于ARM 的可编程控制器的硬件设计[J].仪表技术与传感器,2006,40(5):40-41,44.