可编程控制器的实时处理器的研究
2016-11-14曾舒婷夏庆锋
曾舒婷 夏庆锋
摘要:可编程控制器广泛应用于工业行业的各个领域,需要其具有可靠性高、实时性强的特征。本文从提高PLC实时性及可靠性数据处理的角度,设计了一款适合PLC特性的专用处理器体系结构。
关键词:PLC ;处理器;实时性;可靠性
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)24-0241-03
Abstract: PLC is a new industrial automatic control device, which is based on microprocessor as the core, and combines the automation technology and communication technology. The PLC is widely used in various fields of industry, and it has the characteristics of high reliability and rapidity. In this paper, from the Angle of improve real-time performance and reliability of PLC data processing, designed a dedicated processor architecture which is suitable for PLC characteristics.
Key words:PLC; CPU ; real-time; dependable
1 引言
当前工作控制领域对实时性和稳定性要求越来越高,国内现有自主研发的可编程控制器(PLC)微处理器,大多数采用通用处理器或者通用处理器和布尔处理器相结合的体系结构,难以满足需求[1,2]。通用处理器主要面向字节、字的处理,而可编程控制器指令以比特位操作为主[1,2]。这就迫切需求推出适合于可编程控制器特性的专用处理器。
本文基于提高可编程控制器实时性及可靠性数据处理性能的角度,提出一款实时可靠的可编程控制器专用处理器,该处理器拥有符合可编程控制器特征的专用指令集,采用位处理器实现硬件加速。采用多处理器并行执行同一程序,或当主处理器故障时,其他处理器的执行保证可编程控制器的可靠性。并集成PLC数值运算器和PID运算器,主要用于PLC数值处理中函数运算领域和模拟量控制、过程控制领域,如对温度、压力、流量、液位的控制。
2 系统设计
该可编程控制器的处理器体系结构,采用32位的RISC体系结构,包括一条高速总线和一条低速总线[4]。在高速总线上扩展的主设备有ARM处理器(ARM9)、PLC专用处理器、以及用于仲裁主从设备访问优先级的AHB仲裁器;在高速总线上扩展的从设备有256KB的FLASH、256KB存储大小的SRAM、用于存储输入输出设备数据的256KB存储大小的I/O SRAM以及用于网络通信的Ethernet MAC 10/100;在低速总线上扩展的外设有AD、DA转换器、256个计数器、256个计时器及通用输入输出口和用于外设中断服务的中断控制器。可编程控制器的实时处理器体系结构,如图1所示。
该PLC专用处理器体系结构按照功能可划分为通用处理器、PLC专用指令集处理器。
1)PLC专用指令集处理器,采用符合PLC指令特征的指令集,主要包括位处理器、PLC数值运算器和PID运算器。
2)位处理器,主要处理PLC中的位逻辑指令,应用于PLC的开关量逻辑控制领域;
3)PLC数值运算器用于处理函数运算,如绝对值函数、平方根函数、三角函数、反三角函数及指令函数、对数函数等运算,其数值运算基于CORDIC算法;
4)PID运算器,主要用于可编程控制器模拟量控制、过程控制领域。
3 实时性设计
该可编程控制器处理器的实时性的设计,主要包括符合PLC指令特征的指令集、位处理器及PID运算器并行运算设计。
通过PLC指令表语言的分析,得出PLC指令使用频率[3],如表1所示。
通过对开关量PLC程序分析,如抢答器、电机正反转控制、喷泉控制、交通灯控制、山地缆车控制等控制程序中布尔指令、功能块指令、存取指令及控制指令使用频率的分析[3],得出布尔指令及存取指令所占比较较大。如表2所示。
从表1和表2分析得出,要提高该PLC专用处理器对开关量程序的执行速度,则需要对布尔指令执行加速,并提高PLC数据的存取速度。
依据对PLC指令分析,设计了一款实时PLC专用处理器,主要模块包括:位处理器设计及模拟PID运算器设计。
3.1 位处理器设计
位逻辑运算指令与可跳转位逻辑运算指令结果使用,在位处理器中执行。
当执行到可跳转位逻辑运算指令ANDCRIBIT指令时,位处理器判断累加器中的值是否为0,若为0,则跳转到可跳转位逻辑运算指令CR。ANDCRBIT指令与CR指令间的指令不执行,从而节约PLC指令执行时间。
当执行到可跳转位逻辑运算指令ORCRBIT时,位处理器判断累加器中的值是否为1,若为1,则跳转到可跳转位逻辑运算指令PUSHOR。ORCRBIT指令与PUSHOR指令间的指令不执行。
以上为加速PLC中处理开关量程序的实时性设计。
3.2 模拟PID运算器设计
对于模拟量控制及过程量控制领域,设计了并行执行的PID运算器[5],其设计思想如下:
4 可靠性设计
PLC处理器的可靠性设计,可采用多处理器并行执行程序的方式;或增加多个位处理器、PLC数值运算器及PID运算器,提高处理的并行度。这两种方式提高并行度,不仅可以提高运行速度,而且可以确保程序执行的正确性。
1)采用多个处理器,并行执行相同或不同的PLC程序。
若是执行简单的PLC程序时,分别分配在多个处理器并行执行,不仅可以通过多处理器结果进行比较一致,保证输出的准确性。
若执行复杂的PLC程序时,在四个处理器冗余的情况下,可将该程序分别分配在2个处理器中执行,不仅可以增加执行速度,还可以比较输出结果,并判断输出的准确性。
若某处理器发生故障时,其他处理器在执行相同程序,还可以保证PLC程序继续执行下去。
2)增加多个运算单元,提高处理并行度。
在PLC专用处理器中,增加多个运算单元。当程序同一类型指令分别发射到同一功能的不同运算单元中,可以提高执行指令的吞吐量,如图3所示,如指令取指后,通过乱序发射,同时两条三角函数运算指令,则可分别发射到PLC数值运算器A和PLC数值运算器B,即提高执行指令的吞吐量;同理PID运算器A和PID去运算器B可分别执行不同PID运算。
5 结束语
本文从实时性与可靠性角度,设计了一款符合可编程控制器特征的处理器。该可编程控制器的处理器可应用于开关量控制、模拟量控制及过程控制领域。
在实时性方面,设计了符合PLC指令特征的专用指令集,并通过位处理器加速运行该PLC专用指令集,提高了PLC开关量控制程序的执行速度。通过分析PID运算公式,增加流水线设计,加速了PID运算,提高了PLC模拟量及过程控制程序执行速度。
在可靠性方面,通过多处理器并行执行,保证PLC在出现故障时,还能够正常执行。或通过增加功能相同的运算器的运算单元,并行执行功能相同指令也可加快PLC指令执行速度。
参考文献:
[1] 李润光,冉峰,徐美华.基于RISC构架的PLC微处理器设计[J].电子技术,2005(07):58-62.
[2] 康书峰.RISC架构PLC微处理器的研究和设计[D].上海大学,2005.
[3] Gab SeonRho, Kyeonog-hoon Koo,Naehyuc Chang, Jaehyun Park, Yeong-gi Kim and Wook Hyun Kwon.Implementation of a RISC microprocessor for programmable logic controllers[J].Microprocessors and Microsystems,1995,19(19):599-608.
[4] ShuTingZeng1,ZhiJiaYang,YanLv3 ,A high performance architecture design of PLC dedicated processor [C]. International Conference on Advanced Computer Theory & Engineering,2010.
[5] 杨文超,张荣标,张春艳.基于FPGA实现PID控制器的研究[J].微计算机信息,2005(22):135-137.