微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM和CAN总线的嵌入式PLC设计

基于ARM和CAN总线的嵌入式PLC设计

时间:04-10 来源:互联网 点击:

0 前言

可编程逻辑控制器(PLC),一种数字运算操作的电子系统,专为在工业环境应用而设计。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟输入/输出控制各种类型的机械或生产过程,是工业控制的核心部分。随着工业技术的发展以及规模的不断扩大,传统的PLC面临着IO点数增多、通讯功能需要增强等诸多方面的挑战,已无法满足个性化、差异化的需求。

现有的设计主要有工控机、单片机板等。工控机在互连、表达、算法等方面优势明显,但其实时性、稳定性难以满足连续控制的苛刻要求,通常用于监控。单片机系统在成本控制上更加灵活,可是没有操作系统使其只能应用于低端场合。具有嵌入式操作系统的PLC将能结合两者的优点,成为PLC领域的主要研究方向。本文介绍以嵌入式芯片STM32和CAN总线相结合的方式进行嵌入式PLC设计,并采用μC/OS-II实时操作系统,利用其开放性、模块化和可扩展性的系统结构特性来达到高实时要求的PLC控制,在保证实时性的同时,实现多点位、复杂功能的PLC系统控制目标。

1 系统总体设计

系统总体设计框图如图1所示。本设计采用ST公司生产STM32F103RCT6作为系统的主处理器。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,它集成了两个CAN控制器,并为每个CAN控制器分配了256字节的SRAM,每个CAN控制器有3个发送邮箱和两个接收FIFO。它主要负责采集、处理开关量和模拟量输入,控制开关量输出,同时通过CAN总线完成与上位机的通信。

开关量的输入,为了减少外部开关对系统的干扰,首先在输入端用光电耦合器隔离,再由IO口分别读取12路通道的输入,读取的开关量可以存储在ARM的存储器内。ARM对开关量数据进行处理,一方面通过CAN总线将数据传输到上位机;另一方面将开关状态由LED实时显示输入开关量状态。对于13路的开关量输出,ARM通过CAN总线得到上位机传来的开关量输出数据,并且将数据进行处理,一方面通过控制继电器的锁存器将数据锁存,完成对继电器的开关控制;另一方面将开关状态由LED实时显示输出开关量状态。模拟量的采样则通过信号放大调理电路及相应的控制电路,然后对其进行A/D转换,转换后的数字量读入PLC系统的输入映像缓冲区,从而完成对模拟量的采集。

2 系统硬件设计

2.1 开关量输入输出模块

开关量输入电路的功能是接收工业现场各种开关量信号的输入,并将其转换成符合CPU要求的标准逻辑电平。为提高控制器的抗干扰能力,在开关量输入信号和处理器STM32之间使用光电耦器件TLP521隔离,当开关量输入信号受到干扰时,只要其共模电压低于光耦的最大隔离电压,就不会对处理器正常工作造成任何影响。

开关量输入电路如图2所示。其中X1为输入端,P1为微控制器端口,LED0为输入点的状态指示灯,TLP521为光电耦合器,它实现现场与PLC的CPU电气隔离,提高抗干扰性。

开关量输出电路是嵌入式PLC与外部连接的输出通道,PLC通过它向外部现场执行部件输出相应的控制信号。开关量输出通常有晶体管输出和继电器输出两种形式。本设计中,开关量输出电路采用了13路继电器输出,器件选用松乐SRD-24VDC-SL-C,继电器输出电路可用于直流负载,也可用于交流负载,它特别适合于对动作时间和工作频率要求不高的场合。其电路图如图3所示。D1为稳压二极管1N4148,因为直流继电器的线圈在断开时会产生反向电动势,这时需要在继电器两极并接一个1N4148来进行快速放电。

2.2 模拟量输入模块

模拟量输入电路的主要功能是把现场测量到的模拟量信号转变成PLC可以处理的数字量信号。A/D转换器是模拟量输入电路的主要器件,STM32微控制器内部含有8路10位A/D转换器,配合信号调理电路以及相应的控制电路,可以完成模拟量的采样和转换。转换后的数字量由CPU读入PLC系统的输入映像缓冲区,从而完成对模拟量的采集。

本设计中,模拟量输入电路有8路4~20mA电流输入。4~20mA直流信号制是国际电工委员会(IEC)制定的过程控制系统用模拟信号标准。在工业现场,如果采集的信号经调理后是电压信号并且进行长线传输,会产生以下问题:第一,由于传输的信号是电压信号,传输线会很容易受到噪声的干扰;第二,传输线的分布电阻会产生电压降。为了解决上述问题和避开相关噪声的影响,工业现场大量采用电流来传输信号。

2.3 CAN总线接口电路

CAN总线是一种支持分布式实时控制的串行通信网络,采用对通信数据进行编码的方式,使得CAN总线上的节点数量理论上几乎不受限

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top