论文部分内容阅读
梯形图(Ladder Diagram)是IEC61131-3标准定义的五种标准编程语言之一,由于梯形图语法简单、结构规整以及采用图形化的编程方式,使得其深受工控领域编程人员的喜爱,现已成为工业控制领域主流的控制程序设计语言。梯形图程序以梯级为基本的组成单元,在程序运行时,处理器按照梯级排列的先后顺序依次执行梯形图程序的各个梯级,但这种顺序执行的方式阻碍了梯形图程序执行速度的提升,使得用梯形图编写的控制程序无法在一些对响应速度要求较高的场合中使用。针对这个问题,论文提出了基于FPGA可重配置硬件结构的梯形图的并行化编译方法,通过并行编译使得梯形图程序可以在FPGA上高速执行,并以此实现梯形图在高速领域的应用。论文对基于FPGA的梯形图并行化编译理论做了较为深入的研究,主要工作包括以下几个方面:(1)深入分析IEC61131-3编程标准以及梯形图语言,提出了使用顶点活动网络(AOV)对梯形图进行抽象描述的方法,并在此基础上实现梯形图子程序的分离工作。(2)论文提出了基于多输出梯级逻辑结构的梯级逆向拆分算法,该算法通过引入辅助梯级和临时变量来完成多输出梯级的高效拆分。(3)分别对JMP、CALL、FOR三种指令进行处理,将由这三种指令引发的梯级之间的控制依赖关系转换成梯级之间的数据流依赖关系,在完全保留梯级间依赖逻辑的情况下消除梯级间的控制依赖关系,为后面的并行化工作做准备。(4)论文首次提出了基于依赖变量最迟读写周期动态标记的梯形图并行化方法,以查表的方式确定梯级间的并行关系,并以此来确定各个梯级的执行周期编号,从而实现梯形图程序的并行化,其中每确定一个梯级的执行周期编号之后都会反过来在依赖变量最迟读写周期动态标记表中更新该梯级绑定变量的最迟读写周期,经过该算法处理之后就实现了梯级的并行化。(5)将并行化之后的梯形图的各个单输出梯级转换成VHDL语句,然后根据各个单输出梯级的执行周期编号将VHDL语句组合成完整VHDL程序。(6)最后是实现并行结构梯形图程序的保存和并行显示。论文的最后部分给出了一个测试用例,用来验证上述转换思想的正确性,最后的测试结果验证了上述转换方法的正确性。