FPGA中PLC程序的硬件映射策略外文翻译资料

 2022-08-15 03:08

Hardware Mapping Strategies of PLC Programs in FPGAs

Adam Milik*, Edward Hrynkiewicz**

Institute of Electronics, Silesian University of Technology of Gliwice, Poland (e-mail: *adam.milik@ polsl.pl; **edward.hrynkiewicz@polsl.pl).

Abstract: The automatic implementation of fast operating PLCs with massive parallel hardware processing is expected by wide range of designers not familiar with details of computation algorithms design in hardware. The paper presents an approach to implement the fixed point arithmetic computations of control programs with ability of computation resource sharing. The method is based on developed intermediate graph representation for PLC programming languages. The graph representation of a PLC program allows to reveal and to implement parallel computations. Presented methods are dedicated for FPGA architectures and enables utilization of pipelined processing. It is based on multiple stages scheduling shown in detail. Presented methods are intended to improve the efficiency of computation resource utilization of the direct mapping method. The paper is concluded with experiments results that compare achieved performance and resource requirements.

copy; 2018, IFAC (International Federation of Automatic Control) Hosting by Elsevier Ltd. All rights reserved.

Keywords: PLC, LD, IL, SFC, FPGA, scheduling, mapping, resource sharing, pipelining

  1. INTRODUCTION

Many control systems must respond almost instantly in order to meet control requirements. Tight time dependencies can be found in many applications like motor control or motion control (e.g. CNC machines) (Rutkowski et.al. 2012, Rudnicki et.al. 2016). The control system designer concentrates on describing an algorithm with use of programming languages. In order to avoid multiplicity of programming languages and ambiguity in processing they are covered by the standard since 1992. Nowadays it is known under the IEC61131-3 name (Cenelec 2013, John and Tiegelkamp 2010). It covers all aspects devoted to programming languages starting from grammar to its evaluation rules. The standard continuously evolves since its first version. It is expected that automatic tools enable implementation of the program in a controller that will meet given requirements. The classic PLCs are based on single threaded sequential processing (Chmiel and Hrynkiewicz 2008, Michel 1992, Hanssen 2015). A user program is executed as a part of the processing loop that constitutes a system operation. The scan time factor describes performance of a controller. A control program is compiled into instruction sequence executed by PLC CPU. It offers a flexible way of implementing a control programs on expense of sequential evaluation of instructions. Continuously growing complexity of tasks results with increased number of instructions that must be executed causing of an extension of the scan time.

    1. The performance improvements overview

There are made many efforts to improve the performance of PLCs. The serial single–threaded processing is a main limitation of a performance (Chmiel and Hrynkiewicz 2008).

Analysis of standard control programs shows dominance of bit operations (71%) over word operations (29%) (Davidson et.al. 1992). This analysis inspired creating a bit-word dual core architecture of a CPU. There was shown a possibility of parallel instructions processing in standard programs (Chmiel and Hrynkiewicz 2010). The CPU operation is governed by high performance bit unit that dispatches word instructions to opposite CPU. The word CPU operates as a coprocessor that is requested for instruction processing. Data exchange is achieved by a handshake protocol that synchronizes operations of CPUs. Proper instructions interleaving enables achieving maximal utilization and parallel operation of both unit resulting with increased performance. This idea can be further improved by introducing hardware support for standard blocks like timer or counters (Chmiel et.al. 2016). Interesting example of multi PLC implementation was shown in (Hashemi Farzaneh et.al. 2013). The computation performance has been improved by manual distributing computations to multiple PLCs linked by network. This research shows the possibilities of parallel processing but also necessity of creating automatic tools for multithreaded control program implementations (Becker et.al. 2015). The parallel processing of control programs requires developing methods of its respective mapping. The FPGAs offers parallel processing of a hardware and programmability of a microprocessor. This inspired for developing a dedicated architecture for direct Ladder Diagram (LD) programs mapping (Welch and Carletta, 2000). This implementation utilize parallel evaluation of logic expression inside a rung. Similar sequential implementation including fixed point arithmetic operations with general purpose FPGAs has been proposed by (Ichikawa et.al. 2011). There should be noted a mixed implementation that utilize FPGA based Boolean accelerator and microprocessor based data flow coordination along with word processing is shown in (Bergman et.al. 2013). There was shown a method of translating control

2405-8963 copy; 2018, IFAC (International Federation of Automatic Control) Hosting by Elsevier Ltd. All rights reserved. Peer review under responsibility of International Federation of Automatic Control.

10.1016/j.ifacol.2018.07.142

LD IL

SFC

Multiple languages program input

      1. B.

Generation

I1 Q2 Q3 I2 Q1

Q1

I1

<p

剩余内容已隐藏,支付完成后下载完整资料</p


FPGA中PLC程序的硬件映射策略

摘 要

不熟悉硬件中计算算法设计细节的广泛设计人员都希望通过大规模并行硬件处理自动动实现快速运行的PLC。提出了一种具有计算资源共享能力的控制程序定点算法的实现方法。该方法基于针对PLC编程语言开发的中间图表示。PLC程序的图形表示允许显示并实现并行计算。提出的方法专用于FPGA体系结构,并可以利用流水线处理。它基于详细显示的多阶段调度。提出的方法旨在提高直接映射方法的计算资源利用效率。本文的结论是通过实验结果比较了所达到的性能和资源需求。

关键字:PLC,LD,IL,SFC,FPGA,调度,映射,资源共享,流水线

1.介绍

为了满足控制要求,许多控制系统必须几乎立即做出响应。在许多应用中,例如电机控制或运动控制(例如CNC机器),都可以发现时间紧迫性(Rutkowski等人,2012;Rudnicki等人,2016)。控制系统设计人员专注于使用编程语言描述算法。为了避免多种编程语言和处理过程中的歧义,自1992年以来,该标准已将其涵盖在内。如今,它已以IEC61131-3的名称广为人知(Cenelec 2013,John和Tiegelkamp 2010)。它涵盖了从语法到评估规则的所有致力于编程语言的方面。该标准自其第一版以来 就不断发展。期望自动工具能够在满足给定要求的控制器中执行程序。经典的PLC基于单线程顺序处理(Chmiel 和Hrynkiewicz 2008,Michel 1992,Hanssen 2015)。用户程序作为构成系统操作的处理循环的一部分执行。扫描时间因素描述了控制器的性能。控制程序被编译为由PLC CPU执行的指令序列。它提供了一种灵活的方式来执行控制程序,而无需对指令进行顺序评估。任务的复杂性不断提高,导致必须执行的指令数量增加,导致扫描时间延长。

1.1性能改进概述

为了提高PLC的性能,已经做了很多努力。串行单线程处理是性能的主要限制(Chmiel和Hrynkiewicz 2008)。对标准控制程序的分析表明,位操作(71%)优于字操作(29%)(Davidson等,1992)。该分析激发了创建CPU的位字双核体系结构的灵感。在标准程序中显示了并行指令处理的可能性( Chmiel和Hrynkiewicz 2010)。CPU操作由高性能位单元控制,该高性能位单元将字指令发送到相对的CPU。字CPU作为协处理器运行,需要进行指令处理。数据交换是通过同步CPU的握手协议来实现的。正确的指令交织可以实现两个单元的最大利用率和并行操作,从而提高性能。通过为计时器或计数器等标准模块引入硬件支持,可以进一步改善这一想法(Chmiel等人,2016)。在(Hashemi Farzaneh等人,2013)中展示了多PLC实现的有趣示例。通过手动将计算分配给通过 网络链接的多个PLC,提高了计算性能。这项研究表明了 并行处理的可能性,但也有必要为多线程控制程序的实 现创建自动工具(Becker等人,2015)。控制程序的并行处理需要开发其各自映射的方法。FPGA提供硬件的并 行处理和微处理器的可编程性。这启发了开发用于直接 梯形图(LD)程序映射的专用架构(Welch和Carletta, 2000年)。此实现利用了梯级内部逻辑表达式的并行评估。(Ichikawa et al。2011)提出了类似的顺序实现,包括使用通用FPGA进行定点算术运算。应该注意的是(Bergman et al.2013)中展示了一种混合的实现方式,该实现利用基于FPGA的布尔加速器和基于微处理器的数 据流协调以及文字处理。显示了一种翻译控制的方法用C语言编写的程序,后来成为对硬件进行高级综合的主题(Economacos等人,2015年,藤枝等人。2017).将LD限制为(Du et al。2009)展示了将开关和线圈转换成硬件结构的方法。该算法的灵感来自于恢复( Falcione 和Krough,1993)提出的运算。提出的算法引入了冗余的 计算周期,并取决于开关的分布。(Mocha and Kania,2012)大大改进了这种方法。(Milik and Hrynkiewicz,2014)提出了多种PLC语言的一般分析和中间表示。作者建议将由逻辑和算术指令以及功能块组成的控制程序转 换为非循环数据和控制流程图表示。图形表示法揭示了 程序内部的数据依赖性。框图(图1)显示了硬件控制器的完整综合过程。本文扩展了(Milik,2016)中提出的具有资源共享能力的早期映射策略。本文概述如下。下一节快速概述了将PLC程序转换为中间图形式的过程。它回顾了所有必要的概念。第三部分和 第四部分介绍了映射策略。显示了直接映射策略和带有资源共享的映射。本文以基准测试和结果讨论作为结尾。

2.控制程序表示

逐条指令或在图形语言的情况下逐个符号地对控制程序 进行评估。获得中间表示的主要目标是恢复从输入描述中提取的计算依赖性。这个想法可以在梯形图中显示。 每个梯级描述一个在处理时计算结果的函数。梯级的每 个组成部分均在专用时间内进行处理。图中的数据流从 左到右是单向的。当前处理的组件有助于计算结果。最后,构成网络的梯级集描述为:

其中:I是与输入关联的一组变量,q1... qr是与梯形图的各个梯级关联的一组变量。

第一个方程评估完整的Q变量集。为了记录第i梯级的并行形式的顺序处理,将对q1hellip;qi-1的引用替换为f1hellip;fi-1。计算有效地由有向无环图表示,该图通常在编译器(Hopcroft和Ullman,2007)和高级综合(Gajski等人, 1994)中使用。开发了一种增强的数据流图(EDFG), 它可以表示逻辑,算术和条件运算。它基于普通有向图G=V,E的扩展。每个节点vi V与操作类型属性关联。有向边用三元组e =vs,vd,EA描述,其中vs是前一个节点,vd是后继节点,EA是一元运算的属性集或扩展的结 果源(例如,执行或模数)。表示不变操作的节点vi利用 边缘ED的有序集合与各个操作参数关联。vi是ED中所有边 的直接后继。(图2)显示了用EDFG表示控制程序的示例。情况A描绘了由开关线圈和计时器组成的梯形图(LD)。案例B中显示了该程序的图形表示。从LD,SFC和IL中创建该程序的系统方式显示在( Milik and Hrynkiewicz 2014,Milik 2016)中。图形表示提取了计算依赖性, 揭示了可以并行处理的操作。基于图形的表示可以优化程序并检测常见的编程错误。

3.直接硬件映射

直接硬件映射过程称为DirMAP,专用于获取响应时间最短的控制器。EDFG记录不受时间限制的计算流程。映射过程执行逻辑资源分配并确定运营计划。计算控制器根据制定的时间表进 行综合。它负责控制计算系统内部的数据流并分别与受 控对象进行交互。假设最初为映射设置了无限的计算资 源。表示可变算术运算的图形节点将适应硬件映射(Milik,2016年)。在该图(图4)中示出了由节点表 示的操作到各个硬件组件的映射。在情况A和B中,显示 了变量访问和分配。变量存储在寄存器中,以确保同时 采样输入和更新输出。内部变量(标记)不使用直接连接到来实现 输入寄存器(情况A)值分配寄存器。表示逻辑运算的节点被映射到逻辑表达式。案例C显示以图形方式将其作为逻辑门。EDFG节点能够表示AND和OR逻辑运算,而NOT则不能通过有向边属性表示。在实现中,它显示为门的反相输入。EDFG体系结构使创建能够广泛用于And Invert Graph ( AIG ) 的逻辑综合图结构(Mishchenko,2005年)。表示算术运算的节点被映射到各个算术库块。算术运算通过分割电路组合路径,利用注册输出来缩短传播延迟。复数运算块(乘法和除法)实现输入寄存器可以在一个周期内捕获数据。案例D显示了减法运算的实现。此示例显示了利用归因边的EDFG对算术运算的灵活表示。表示加法的节点从库映射到相应的加法器模块,而反转属性在加法器的输入之一上实现反相器。

3.1.进度建设

组件分配的结果包括在处理流程中包括其计算特征的每个映射结构一个节点由计算结果所需的多个时钟周期来描述。令pc(v)表示确定计算节点v表示的操作结果所需的时钟周期数的函数。调度过程将节点cc(v)表示的计算周期分 配给节点v。MapDIR过程旨在创建响应时间最短的控制器。在组件映射之后,将尽快执行计划过程。EDFG是一个无 环图。它的初始节点代表变量访问。初始节点的cc(v)=1。然后,对于每个终端节点(将值分配给变量),分别计算cc(v)值。令vp表示v的前一个节点。cc(v)周期的确定如下:

该过程实现cc(v)的递归计算。如果对于给定的节点vp,尚未确定周期cc(vp),而不是针对vp执行了过程。概述的计算cc(v)的方法从表示值分配的节点到表示值访问的节点追溯(沿边缘的相反方向)EDFG。将cc(v)周期分配给所有节点后,对终端节点进行cc(v)调整。设vt表示终端节点。为所有终端节点cc(vt)分配了最大循环数:

终端节点周期调整使结果传输与最后一个周期与EDFG中特定路径的计算时间无关。硬件映射和操作调度的结果如图4所示。示意图显示了由图2 中所示的梯形图给出的示例程序的实现。控制器需要4个时钟周期才能完成计算,包括输入读取结果以及将结果写入输出。通过控制器结构的数据流由周期控制器控制。它实现了一个特定的环形计数器,用于激活计算模块。 映射到IL的示例性程序包括18个指令。硬件实现的控制 器能够在每个时钟周期执行4.5条指令。Xilinx Spartan6 FPGA系列的最大时钟频率为330.9MHz。控制器的平均性能为每秒1.49∙109 条指令,或平均指令执行时间为671ps。控制器的扫描时间为12.1ns。可以看到,实现多个独立的块(例如复制所考虑的示例)可以使硬件控制器的扫描时间保持不变。基于微处理器的控制器实现的扫描时间与指令数量成正比。

4.映射与资源共享

使用MapDIR策略获得的非凡性能是通过为操作分配唯一的硬件单元(程序指令)来实现的。在逻辑运算的情况下,这种方法是合理的。在复杂的算术运算(例如乘法或除法)的情况下,仅使用模块结果会导致计算周期中的硬件利用率较低。为了减少实施所需的硬件要求并提高其利用率,已经开发了资源共享策略。为ASIC开发的资源共享策略(Gajski等,1994)不适合与FPGA一起使用。资源共享的主要限制是复用成本,而FPGA中的复用成本大大超过了创建简单资源(例如加法器)的成本。已经开发了一种专门用于算术单元共享的策略,称为MapSHR。FPGA器件的多路复用成本要求开发一种仅共享复杂度高于加法器单元的组件的策略。它最初将共享限 制为乘法器和除法器。来自复杂计算单元的时间分布结果可以合并利用其结果的单元。开发的方法从列表调度 方法继承属性以获取有限的资源,并使用贪婪的方法获取无限资源初始分配的资源。它还介绍了资源合并步骤。

4.1安排资源共享

在描述MapSHR策略之前,必须先进行初步假设。描述的算术模块以时钟周期(pc)表示的结果计算时间。资源共享鼓励在处理过程中重用流水线计算单元时加以利用。 较高的实施成本可通过多次使用和性能提高来补偿。为了描述流水线计算资源需要一个附加参数,该参数描述准备进行下一次计算的周期数,称为rc(恢复周期)。因此,每个计算资源由一对参数pc和rc描述。多步骤硬件映射策略需要一 种用于表示构造的硬件结构的方法。为此目的,开发了基于图形的结构称为HWMAP。HWAMP基于给定的有向图HWMAP = OV,OE 其中OV是一组操作节点,而OE是一组有向边链接节点。它用于创建从EDFG派生的电路结构, 但专注于电路实现并支持硬件转换。每个运算节点OE与计算单元CU相关联。特定的cu可以与一个或多个oe节点关联(资源共享)。cu与组件模型库集中的组件模型链接。给定类型的cu的数量受到限制。每个操作节点oe与三个变量链接:“ cc”,“ cd”,“ ce”。cc变量在MapDIR策略之后继承,表示操作周期开始。cd变量确定计算结束周期,并在运算结果可用于处理时表示周期标识符。ce变量表示可以获取计算值的最后一个周期。

以计算图5所示乘积的代数和为例说明了MapSHR策略。情况A显示了输入EDFG。假定对乘数的数量设置为1的限制。考虑使用 pc,rc =5,1的流水线乘法器。有4个表示乘法的节点,可以立即进行计算。节点按从m1到m4的顺 序分配给乘法器。图5的情况B示出了硬件结构的流程图。在代表硬件组件的节点旁边放置有填充有周期的表。组件的名称是在分配给它的操作之后继承的(由相应的EDFG节点表示)。乘法器被分配给计算操作m1– m4,其名称为m1234。相同的命名约定用于加法器和寄存器。只要 m1操作的参数可用,乘法操作就会开始(有关读取变量节点的映射,请参见图3.A)。这样可以填充cc和cd循环。 一旦乘法器准备好进行下一个操作,就会调度m2节点。使 用了流水线乘法器,该乘法器能够接受下一个操作以在下一个时钟周期(rc = 1)中进行处理。m2运算从cc(m2)= 2开始。分配m 导致m 运算的结果可在一个内获得周期cd = ce =6。循环cd = ce = 6。为了开始计算加法运算a1, m1和m2的结果都必须是可用的。有必要创建一个临时变量来保存m1操作的结果,直到m2结果到达。从EDFG派生的HWMAP提供了处理映射和调度的适当表示。为了保留乘法结果,r1寄存器是通过制动连接m1和a1的有向边缘来创建的。这里放置一个节点,表示与寄存器模块相关联的数据存储。寄存器r1将计算结果保存到a。

4.2组件合并

MapSHR旨在最小化信号多路复用。它仅共享复杂的硬件模块,而较低复杂性的模块则不受限制地分配。共享模 块按时间分配计算结果。结果多路复用可实现连续简单 操作计算单元的共享和共享。仅当简单组件(寄存器和 加法器)具有相同类型并且其输入连接到相同源并且其 结果用于独占计算周期时,才

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[414134],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。