CN110376959B - 一种基于fpga平台的软plc组态软件生成系统 - Google Patents
一种基于fpga平台的软plc组态软件生成系统 Download PDFInfo
- Publication number
- CN110376959B CN110376959B CN201910676563.5A CN201910676563A CN110376959B CN 110376959 B CN110376959 B CN 110376959B CN 201910676563 A CN201910676563 A CN 201910676563A CN 110376959 B CN110376959 B CN 110376959B
- Authority
- CN
- China
- Prior art keywords
- graphic
- fpga
- code
- compiling
- plc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000006243 chemical reaction Methods 0.000 claims abstract description 27
- 238000013461 design Methods 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000010586 diagram Methods 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 34
- 238000011161 development Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 5
- 241000283726 Bison Species 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000004088 simulation Methods 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 3
- 230000008520 organization Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 230000008571 general function Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 239000000203 mixture Substances 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 3
- 230000014509 gene expression Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003137 locomotive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1103—Special, intelligent I-O processor, also plc can only access via processor
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供了一种基于FPGA平台的软PLC组态软件生成系统,属于嵌入式计算机领域,包括图形编辑模块,图形转换模块和编译模块三部分。图形编辑模块负责绘制并编辑符合IEC61131‑3标准的PLC图形程序。图形转换模块负责将PLC图形化程序导出为XML数据文件并统一转换成结构化文本。编译模块负责将结构化文本生成C代码中间语言并依据所述中间语言调用FPGA设计工具(HLS或OpenCL)生成FPGA能够识别的硬件描述语言,最后下载到FPGA运行。本发明的有益效果在于其可取代地铁中的传统中间电路元件输出驱动信号,大大提高整车控制的实时性,增加地铁运行过程的安全性和稳定性。
Description
技术领域
本发明属于嵌入式计算机领域,涉及一种基于FPGA平台的软PLC组态软件生成系统。
背景技术
随着城市轨道交通快速发展,它的运行质量也越来越受到人们的关注。继电器在地铁列车控制上发挥着重要作用,每列车上的继电器数目可多达数百个。数量巨大的继电器承载了列车的信号传递与多种逻辑控制,如:列车激活、司机室占有、车门状态监视与控制、受电弓监视与控制以及牵引制动回路控制等。若出现继电器的故障问题,将直接影响列车的运营情况。而继电器的寿命,一般在使用2~3年后就逐渐开始失效。为了提高列车控制电路的整体可靠性、保障运输任务的完成、降低生产成本和维护成本,实施继电器取代,具有十分重要的现实意义。一般机车上的逻辑控制都是由继电器来完成的,动作滞后。使用PLC“软接线”控制代替继电器“硬接线”控制,控制更加灵活。因此,实施继电器取代也间接促进了PLC的升级换代。
可编程逻辑控制器PLC作为工业自动化生产的核心设备,它的性能和质量体现一个国家高端制造业的水平,经过几十年的高速发展,传统硬PLC已经成为一项应用广泛的成熟技术。但是,由于世界上不同厂家生产的PLC产品彼此之间互不兼容,没有统一的标准,常常出现更换某厂家的PLC产品就得更换配套硬件设备和培训新的编程人员的问题,给企业带来不必要的经济负担。
为了统一软件编程标准,国际电工委员会(IEC)颁布了IEC61131-3标准,为各PLC厂家编程的标准化铺平了道路。所述IEC61131-3标准的编程语言主要分为两类:图形化编程语言和文本化编程语言。其中图形化编程语言包括:梯形图(LD),功能块图(FBD),顺序功能图(SFC),文本化编程语言包括:指令表(IL)和结构化文本(ST)。所述标准中的结构化文本由序列化的语句组成,语句由表达式和关键字组成,具有强大的逻辑表达能力。而指令表过于低级,难以表达复杂的控制逻辑。所以,为了满足轨道交通系统复杂的控制逻辑,将结构化文本作为图形化语言转换后的文本化语言。
近年来,随着嵌入式技术、FPGA技术的发展成熟,为克服传统硬PLC的缺点和开发新型软PLC提供了新的设计思路。目前已有一些相关的专利出现,如中国发明专利申请号为201810325526.5的专利公开了一种基于XML技术的软PLC组态系统,该系统将梯形图转化为目标代码后下载到运行系统,然后运行系统按指令顺序扫描执行实现逻辑控制,有效提高了软PLC执行效率,但是执行方式仍为串行,效率无法同在FPGA平台执行比拟。
本发明基于FPGA平台开发,实现了程序从串行到并行执行的转换,执行效率大幅提升。当前,各FPGA厂家开发的高层次设计工具,基于高级语言C/C++、SystemC,直接编译生成硬件描述语言,本发明专利后向编译过程借助设计工具实现了通过直接导入源文件生成硬件描述语言的功能。相比于传统硬PLC,FPGA-PLC能够通过纯硬件实现复杂的逻辑处理,大大提高了处理速度,更好的实现自动化控制;FPGA平台提供了足够多的IO资源,用户可以自定义IO模块来实现大规模项目的研发;FPGA平台的处理是纯硬件的实现过程,因此不存在死循环、程序跑飞等软件层面经常出现的问题,保证了控制系统的稳定性。如中国发明专利申请号为201610064750.4的专利公开了一种在FPGA平台实现PLC控制的装置,该装置将梯形图程序通过控制依赖和数据依赖分析转换为逻辑表达式,再将逻辑表达式由ST2FP解析器转换成Verilog HDL程序,不仅能正确实现PLC的输入输出逻辑,而且可以实现并行化执行,从根本上改变了传统PLC只能顺序扫描的执行方式。该方法虽然实现了程序由串行到并行的执行方式,但是当梯形图数量巨大、逻辑复杂时转换效率比较低,本专利则基于IEC61131-3标准使用FPGA高层次设计工具直接导入源文件生成硬件描述语言,设计思路借用成熟软件,操作简单且图形化语言转换效率高效。
发明内容
结合轨道交通逻辑控制越来越复杂以及响应越来越及时的新特点,为了满足控制系统的发展需要,本发明提供了一种基于FPGA平台的软PLC组态软件开发方法,利用FPGA并行化执行的优势,来完成控制系统内部复杂的逻辑计算,从而大幅提高系统处理速度。
本发明的技术方案:
一种基于FPGA平台的软PLC组态软件生成系统,整体结构如图1所示,包括图形编辑模块、图形转换模块以及编译模块。
图形编辑模块负责绘制并编辑符合IEC61131-3标准的PLC图形程序。此模块根据所述标准,将PLC图形程序的基本组成组件进行抽象和封装,建立用于生成图形程序的图形组件库。同时,编辑界面支持对图形组件的添加、删除以及属性修改等状态信息。根据不同图形程序再从图形组件库拖拽相应的图形组件至编辑界面中,根据具体逻辑功能需求对图形组件进行属性修改和参数配置,使用连接元素将设置好的图形组件建立连接,生成梯形图、功能块图以及顺序流程图,完成图形化程序的编辑。
图形转换模块负责将PLC图形化程序导出为XML数据文件并统一转换成结构化文本。图形转换模块首先根据梯形图、功能块图以及顺序流程图所反映的图形信息进行记录,然后将图形化程序所反应的逻辑关系提取出来,形成XML数据文件,该数据文件反映了用户所编辑的控制逻辑。最后,遍历XML数据文件节点连接关系以及属性信息提取PLC的编程逻辑,同时转换为对应的结构化文本。
编译模块负责将结构化文本生成C代码中间语言并依据所述中间语言调用FPGA设计工具(HLS或OpenCL)生成FPGA能够识别的硬件描述语言,最后下载到FPGA运行。编译模块分为前向编译和后向编译两个过程。前向编译在保证PLC逻辑控制语义不变的情况下,将结构化文本编译成线性组织的C代码中间语言。由PLC图形化程序编译生成的C代码中间语言继承了PLC顺序扫描的特性,有并行化优化的空间。因此,后向编译则直接调用不同FPGA厂家推出的加速数字系统设计开发的FPGA设计工具,通过导入源文件把C代码中间语言直接编译成硬件描述语言,然后下载到FPGA执行。
本发明的有益效果在于将复杂的逻辑控制通过FPGA操作硬件执行来实现,极大地提高了系统的实时性;将IEC61131-3标准规定的图形化语言一步一步编译成硬件描述语言运行在FPGA平台,打破了传统硬PLC可移植性差的缺点;后向编译过程将C语言直接转化为硬件描述语言,程序员无需熟知FPGA原理便可以进行编程,极大的提高了工作效率。
附图说明
图1是本发明的总体结构图。
图2是本发明的图形编辑模块结构图。
图3是本发明的图形转换模块结构图。
图4是本发明的前向编译模块流程图。
图5是本发明的后向编译模块流程图。
具体实施方式
以下结合发明内容和说明书附图详细说明本发明的具体实施方式。
本发明包括三个模块,分别是图形编辑模块、图形转换模块以及编译模块。图形编辑模块用于绘制并编辑符合IEC61131-3标准的PLC图形程序。图形转换模块用于将PLC图形程序导出为XML数据文件并统一转换成结构化文本。编译模块用于将结构化文本生成C代码中间语言并依据所述中间语言调用FPGA设计工具(HLS或OpenCL)生成FPGA能够识别的硬件描述语言,最后下载到FPGA运行。
(1)图形编辑模块
图形编辑模块用于绘制并编辑符合IEC61131-3标准的PLC图形程序。图形编辑模块结构图如图2所示。图形编辑模块可以根据创建的项目类型加载对应的图形组件库,可分为负责构建图形组件库的开发环境和实现对图形组件维护的编辑界面。开发环境实现图形组件库的建立,梯形图组件库有母线、连接元素、触点和线圈等图形组件;功能块图组件库有功能块、连接元素、输入变量和输出变量等图形组件,其中根据用户具体功能需求对功能块图形组件划分成标准功能类型、类型转换、数学式和位操作等子单元集组件库;顺序流程图组件库有步、动作和转换等图形组件,步是一种逻辑块,用方框表示,动作是控制任务的独立部分,每一步可以进一步划分为一些动作,转换是从一个任务到另一个任务的条件。梯形图组件库中的连接元素用于连接梯形图组件库中的其他图形组件,功能块图组件库中的连接元素用于连接功能块图中的其他图形组件,顺序流程图中可根据转换条件对控制系统的功能流程顺序进行分配。
此外,编辑界面实现对图形组件的维护。在编辑界面中从相应的图形组件库中拖拽图形组件,进行鼠标操作和设置相应的参数,对图形的尺寸、位置等可视属性进行限定以实现图形组件的实例化,同时编辑图形组件的整个过程是可视化的,图形属性的修改会以图形变化的形式直接反映在编辑界面上,可以实时更新图形组件的选中、添加、删除、属性修改等状态信息,从而实现图形编辑模块开发。
(2)图形转换模块
图形转换模块用于将PLC图形化程序导出为XML数据文件并统一转换成结构化文本。图形转换模块首先根据梯形图、功能块图以及顺序流程图所反映的图形信息进行记录,然后将图形化程序所反应的逻辑关系提取出来,形成XML数据文件,该数据文件反映了用户所编辑的控制逻辑。最后,遍历XML数据文件节点连接关系以及属性信息提取PLC的编程逻辑,同时转换为对应的结构化文本。
以梯形图转换为例,图形转换模块结构图如图3所示。分析梯形图节点的拓扑关系,可以归纳为功能块连接。功能块的类型可以反映块上节点连接的类型,而且其本身可以作为一个节点与其他节点进行连接,在内容上包括串联块、并联块和一般功能块。
梯形图网络的拓扑关系可以表示为:
<网络><块>……</块><点/>……<点/></网络>
其中,并联块有子节点,其拓扑关系表示为:<块><点/>……<点/></块>
可通过设置块的属性说明子节点的串并联关系,如<块类型="并联">,默认情况下节点是串联关系。另外,设置每个“点”的属性,常开触点I0_0属性信息:<点编号="K000"坐标X="1"坐标Y="1"类型号="001"/>
设置“坐标X”和“坐标Y”两个属性记录梯形图的绘图位置信息。这样,该点的属性不但记录了触点的类型以及连接关系,还记录了图形信息。因此,基于上述标准,结构图中的梯形图生成的XML数据文件可描述如下:
生成XML数据文件后,由XML数据的根节点出发,搜索到编号为“OB1”的功能块,该编号是默认的主循环逻辑编号;搜索“OB1”的子节点中名称“网络”的节点,开始进行结构化文本的转换;遍历“网络”节点的所有子节点,节点和它前边的节点的连接关系由它们的父节点所确定,由此生成结构化文本代码为Y0:=(X0OR X2)AND X1。
其他两种PLC图形化语言,功能块图以及顺序功能图,都可以由XML结构转化为结构化文本代码,具体过程同梯形图转换。
(3)编译模块
编译模块用于将结构化文本生成C代码中间语言并依据所述中间语言调用FPGA设计工具(HLS或OpenCL)生成FPGA能够识别的硬件描述语言,最后下载到FPGA运行。
编译模块分为前向编译和后向编译两个过程。前向编译在保证PLC逻辑控制语义不变的情况下,将结构化文本编译成线性组织的C代码中间语言。前向编译过程如图4所示,首先根据结构化文本字符流生成相应的词法分析描述文件,调用辅助软件flex生成词法分析器C源码,接着利用C编译器编译成词法分析器,判断词法分析是否正确。若不正确,修改词法错误返回重新调用辅助软件flex;若正确,使用正则匹配将源程序的字符序列与词法分析器相匹配,若多个字符串匹配到同一个模式,还要保存相应字符串的属性值,生成词法单元流,以供语法分析使用。继续调用语法分析器bison,语法分析器的生成过程同词法分析器。判断语法分析是否正确。若不正确,修改语法及语义等错误后,返回重新调用语法分析器bison;若正确,则构造语法树,先建立语法树节点的动作,如赋值语句、IF选择语句以及WHILE循环语句等,然后再对匹配的词法规则进行自子节点向根节点的构造,最后生成整棵语法树。最后,C代码生成器遍历语法树构造常量段、全局变量段以及设置初始值,生成与源码语义相同的C代码中间语言,从而完成整个前向编译过程。
后向编译则根据不同厂家的FPGA,调用对应的设计工具把C代码中间语言翻译成硬件描述语言,添加到传统的HDL工程中,下载到FPGA执行。由PLC图形化语言编译成的中间代码C语言继承了PLC顺序扫描执行的特性,不同于常规的C语言,可以直接调用设计工具作并行化优化。目前市场上两大FPGA生产商Xilinx和Altera,都对高级语言的FPGA实现进行了研究,纷纷推出了高效的FPGA设计工具。Xilinx公司推出的加速数字系统设计开发工具Vivado HLS,它能够将C/C++、SystemC语言直接转换成硬件描述语言。Altera公司主推的OpenCL,OpenCL编译器将高级描述语言转换为流水线操作,它支持使用C/C++来进行编程,采用并行线程将数据传送至FPGA,调用FPGA内核执行,然后传回得到的数据。后向编译过程图5所示,首先准备好前向编译生成的C源码,然后判断是否是Xilinx厂家的FPGA,若是Xilinx厂家的FPGA,将C源文件用HLS设计工具打开,之后添加TestBench进行C仿真,添加约束条件后综合解决方案与C/RTL协同仿真,最后将软件自动产生的代码,以IP的形式,重新放到原有的HDL工程中编译为FPGA编程文件使用;若不是,继续判断是否是Altera厂家的FPGA,若是Altera厂家的FPGA,将C源文件用OpenCL软件打开,设计工具会优先考虑用户指令中控制逻辑的提取,确定操作发生在哪几个时钟周期以及判断是否可以并行执行,然后将C语言源码转换成伪机器代码,可以用FPGA逻辑(乘、加、递增等)来实现。同时考虑元件的延时来确定每个操作所使用的硬件单元,利用代码生成器将伪机器代码映射为HDL逻辑代码(Verilog或VHDL),最后调用FPGA内核执行;若也不是Altera厂家的FPGA,则调用FPGA厂家对应的设计工具,生成逻辑代码,添加到HDL工程中,下载到FPGA执行,从而完成后向编译过程。这样的设计思路不仅解决了软件方法所带给系统延时长和数据带宽窄的缺点,而且避免了FPGA硬件电路设计周期长的不足,实现了设计的功能和硬件分离,不需要关心低层次具体细节,具有很强的灵活性。
Claims (1)
1.一种基于FPGA平台的软PLC组态软件生成系统,其特征在于:包括图形编辑模块、图形转换模块以及编译模块;
图形编辑模块负责绘制并编辑符合IEC61131-3标准的PLC图形程序;此模块根据所述标准,将PLC图形程序的基本组成组件进行抽象和封装,建立用于生成图形程序的图形组件库;同时,编辑界面支持对图形组件的添加、删除以及属性修改;根据不同图形程序再从图形组件库拖拽相应的图形组件至编辑界面中,根据具体逻辑功能需求对图形组件进行属性修改和参数配置,对图形的尺寸和位置这些可视属性进行限定以实现图形组件的实例化,同时编辑图形组件的整个过程是可视化的,图形属性的修改会以图形变化的形式直接反映在编辑界面上,实时更新图形组件的选中、添加、删除和属性修改状态信息,使用连接元素将设置好的图形组件建立连接,生成梯形图、功能块图以及顺序流程图,完成图形化程序的编辑;所述图形编辑模块分为负责构建图形组件库的开发环境和实现对图形组件维护的编辑界面;开发环境实现图形组件库的建立,梯形图组件库有母线、连接元素、触点和线圈图形组件;功能块图组件库有功能块、连接元素、输入变量和输出变量图形组件,其中根据用户具体功能需求对功能块图形组件划分成标准功能类型、类型转换、数学式和位操作子单元集组件库;顺序流程图组件库有步、动作和转换图形组件,步是一种逻辑块,用方框表示,动作是控制任务的独立部分,每一步能够进一步划分为一些动作,转换是从一个任务到另一个任务的条件;梯形图组件库中的连接元素用于连接梯形图组件库中的其他图形组件,功能块图组件库中的连接元素用于连接功能块图中的其他图形组件,顺序流程图中能够根据转换条件对控制系统的功能流程顺序进行分配;
图形转换模块负责将PLC图形化程序导出为XML数据文件并统一转换成结构化文本;图形转换模块首先根据梯形图、功能块图以及顺序流程图所反映的图形信息进行记录,然后将图形化程序所反应的逻辑关系提取出来,形成XML数据文件,该数据文件反映了用户所编辑的控制逻辑;最后,遍历XML数据文件节点连接关系以及属性信息提取PLC的编程逻辑,同时转换为对应的结构化文本;当梯形图转换时,分析梯形图节点的拓扑关系,归纳为功能块连接;功能块的类型能够反映块上节点连接的类型,而且其本身可以作为一个节点与其他节点进行连接,在内容上包括串联块、并联块和一般功能块;
梯形图网络的拓扑关系表示为:
<网络><块>……</块><点/>……<点/></网络>;
其中,并联块有子节点,其拓扑关系表示为:<块><点/>……<点/></块>;
通过设置块的属性说明子节点的串并联关系,默认情况下节点是串联关系;另外,设置每个“点”的属性,常开触点I0_0属性信息:<点编号="K000"坐标X="1"坐标Y="1"类型号="001"/>;
设置“坐标X”和“坐标Y”两个属性记录梯形图的绘图位置信息;这样,该点的属性不但记录了触点的类型以及连接关系,还记录了图形信息;
生成XML数据文件后,由XML数据的根节点出发,搜索到编号为“OB1”的功能块,该编号是默认的主循环逻辑编号;搜索“OB1”的子节点中名称“网络”的节点,开始进行结构化文本的转换;遍历“网络”节点的所有子节点,节点和它前边的节点的连接关系由它们的父节点所确定,由此生成结构化文本代码为Y0:=(X0ORX2)ANDX1;
其他两种PLC图形化语言,功能块图以及顺序功能图,都由XML结构转化为结构化文本代码,具体过程同梯形图转换;
编译模块负责将结构化文本生成C代码中间语言并依据所述中间语言调用FPGA设计工具生成FPGA能够识别的硬件描述语言,最后下载到FPGA运行;编译模块分为前向编译和后向编译两个过程;前向编译在保证PLC逻辑控制语义不变的情况下,将结构化文本编译成线性组织的C代码中间语言;由PLC图形化程序编译生成的C代码中间语言继承了PLC顺序扫描的特性,有并行化优化的空间;后向编译则直接调用不同FPGA厂家推出的加速数字系统设计开发的FPGA设计工具,通过导入源文件把C代码中间语言直接编译成硬件描述语言,然后下载到FPGA执行;前向编译过程首先根据结构化文本字符流生成相应的词法分析描述文件,调用辅助软件flex生成词法分析器C源码,接着利用C编译器编译成词法分析器,判断词法分析是否正确;若不正确,修改词法错误返回重新调用辅助软件flex;若正确,使用正则匹配将源程序的字符序列与词法分析器相匹配,若多个字符串匹配到同一个模式,还要保存相应字符串的属性值,生成词法单元流,以供语法分析使用;继续调用语法分析器bison,语法分析器的生成过程同词法分析器;判断语法分析是否正确;若不正确,修改语法及语义错误后,返回重新调用语法分析器bison;若正确,则构造语法树,先建立语法树节点的动作,赋值语句、IF选择语句以及WHILE循环语句,然后再对匹配的词法规则进行自子节点向根节点的构造,最后生成整棵语法树;最后,C代码生成器遍历语法树构造常量段、全局变量段以及设置初始值,生成与源码语义相同的C代码中间语言,从而完成整个前向编译过程;
后向编译过程首先准备好前向编译生成的C源码,然后判断是否是Xilinx厂家的FPGA,若是Xilinx厂家的FPGA,将C源文件用HLS设计工具打开,之后添加TestBench进行C仿真,添加约束条件后综合解决方案与C/RTL协同仿真,最后将软件自动产生的代码,以IP的形式,重新放到原有的HDL工程中编译为FPGA编程文件使用;若不是,继续判断是否是Altera厂家的FPGA,若是Altera厂家的FPGA,将C源文件用OpenCL软件打开,设计工具会优先考虑用户指令中控制逻辑的提取,确定操作发生在哪几个时钟周期以及判断是否可以并行执行,若是,则进行并行化优化,若否,则不进行并行化优化,然后将C语言源码转换成伪机器代码,利用FPGA逻辑来实现;同时考虑元件的延时来确定每个操作所使用的硬件单元,利用代码生成器将伪机器代码映射为HDL逻辑代码,最后调用FPGA内核执行;若也不是Altera厂家的FPGA,则调用FPGA厂家对应的设计工具,生成逻辑代码,添加到HDL工程中,下载到FPGA执行,从而完成后向编译过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910676563.5A CN110376959B (zh) | 2019-07-25 | 2019-07-25 | 一种基于fpga平台的软plc组态软件生成系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910676563.5A CN110376959B (zh) | 2019-07-25 | 2019-07-25 | 一种基于fpga平台的软plc组态软件生成系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110376959A CN110376959A (zh) | 2019-10-25 |
CN110376959B true CN110376959B (zh) | 2022-07-08 |
Family
ID=68255849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910676563.5A Active CN110376959B (zh) | 2019-07-25 | 2019-07-25 | 一种基于fpga平台的软plc组态软件生成系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110376959B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026381A (zh) * | 2019-12-16 | 2020-04-17 | 深圳市思天极创教育科技有限公司 | 基于软件编程平台的硬件效果的模拟方法及装置 |
CN111026387B (zh) * | 2019-12-23 | 2023-01-24 | 北京东土科技股份有限公司 | 工业服务器的vplc配置方法、装置及可读存储介质 |
CN111782199B (zh) * | 2019-12-27 | 2024-04-16 | 江苏恩达通用设备有限公司 | 一种基于xml技术的plc图形化编辑器的开发方法 |
CN112288860A (zh) * | 2020-11-02 | 2021-01-29 | 四川长虹电器股份有限公司 | 三维组态图设计系统及方法 |
CN112416355A (zh) * | 2020-11-12 | 2021-02-26 | 珠海格力电器股份有限公司 | Plc组态软件的端口转换方法及系统 |
CN112540766B (zh) * | 2020-12-24 | 2024-10-18 | 山东高云半导体科技有限公司 | 现场可编程门阵列编码方法、装置和系统 |
KR102509859B1 (ko) * | 2021-04-21 | 2023-03-24 | 주식회사 유디엠텍 | Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법 |
CN113535156B (zh) * | 2021-08-04 | 2023-08-22 | 中国计量大学 | 一种物流运输控制系统的图形化编程方法及平台 |
CN113703428B (zh) * | 2021-09-02 | 2022-12-27 | 成都运达科技股份有限公司 | 一种基于逻辑梯形图的列车功能故障诊断方法及装置 |
CN114460898B (zh) * | 2022-01-26 | 2024-05-17 | 无锡信捷电气股份有限公司 | 基于CodeSys的外部扩展模块组件设计方法及系统 |
CN114741073B (zh) * | 2022-04-27 | 2023-10-17 | 傲拓科技股份有限公司 | 一种plc组态系统及顺序控制图形生成方法 |
CN115185508B (zh) * | 2022-05-20 | 2024-06-11 | 中核武汉核电运行技术股份有限公司 | 一种基于图元的算法组态工具和方法 |
CN115658079B (zh) * | 2022-10-24 | 2023-10-13 | 上海繁易信息科技股份有限公司 | 一种功能块图转换为结构化文本的方法及相关设备 |
CN115857910B (zh) * | 2023-03-01 | 2023-06-06 | 杭州义益钛迪信息技术有限公司 | 一种边缘计算采集器的编程方法、装置、服务器及介质 |
CN117724686B (zh) * | 2023-12-01 | 2024-10-08 | 无锡众星微系统技术有限公司 | 一种基于xml的设计验证代码可视化生成方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533263A (zh) * | 2009-02-17 | 2009-09-16 | 固高科技(深圳)有限公司 | 一种计算机可编程自动控制系统及其控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194446B1 (en) * | 2003-09-25 | 2007-03-20 | Rockwell Automation Technologies, Inc. | Location-based execution of software/HMI |
-
2019
- 2019-07-25 CN CN201910676563.5A patent/CN110376959B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533263A (zh) * | 2009-02-17 | 2009-09-16 | 固高科技(深圳)有限公司 | 一种计算机可编程自动控制系统及其控制方法 |
Non-Patent Citations (3)
Title |
---|
"基于.NET 的 PLC 程序与 XML 文件的转换;马远佳等;《中国仪器仪表》;20080331(第03期);第54-57页 * |
基于PC的软PLC一上位机系统设计与实现;许世法;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20070915(第03期);第C042-165页 * |
软PLC梯形图编程系统的研究与实现;苏淑芝;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130115(第01期);第I140-353页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110376959A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110376959B (zh) | 一种基于fpga平台的软plc组态软件生成系统 | |
CN101739484B (zh) | 一种基于知识组件的工程设计方法 | |
CN105677446A (zh) | 分布式仿真平台的可视化建模方法 | |
CN111736821B (zh) | 可视化建模分析方法、系统、计算机设备和可读存储介质 | |
CN109542450B (zh) | 智能变电站过程层智能组件实现方法及装置 | |
CN110221815B (zh) | 一种基于本体的控制软件模型的自动生成方法 | |
CN110928783A (zh) | 基于RobotFramework自动化测试数据化改造的平台 | |
CN103198009A (zh) | 一种通用测试方法、系统及相应装置 | |
CN106325860B (zh) | 一种航天嵌入式软件接口数据的自动化维护方法 | |
CN110222318A (zh) | 基于xml的数据生成工具开发方法 | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN111813814A (zh) | 一种支持多种机器学习框架的通用模型管理方法和装置 | |
CN110209389A (zh) | 一种基于xml的数据生成工具开发系统 | |
CN110109658A (zh) | 一种基于形式化模型的ros代码生成器及代码生成方法 | |
CN109032056A (zh) | 可编程逻辑控制器编程语言转换方法 | |
CN113655996B (zh) | 一种基于需求模型的企业级系统生成方法 | |
CN105335161B (zh) | 一种从tasm时间抽象状态机到扩展nta自动机的转换方法 | |
CN111552459B (zh) | 业务编排流程化管理系统及方法 | |
CN117131813A (zh) | Fpga平台桥接hls技术和硬件构造的芯片设计方法 | |
CN111159032A (zh) | 一种信号驱动的通用自动测试开发系统及系统建立方法 | |
CN115469860A (zh) | 基于指令集的需求到软件领域模型的自动生成方法及系统 | |
CN115758789A (zh) | 一种复杂实时嵌入式系统的软件架构设计与架构传递方法 | |
CN112612465B (zh) | 一种面向领域本体复用的信息系统及开发方法 | |
CN107291435B (zh) | 一种不确定性环境下混成aadl模型量化分析方法 | |
Chen et al. | A Conversion Framework of the Continuous Modeling Languages Based on ANTLR4 [J] |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |