一种在fpga平台实现plc控制装置的制造方法

文档序号:10462773阅读:399来源:国知局
一种在fpga平台实现plc控制装置的制造方法
【技术领域】
[0001] 本发明属于微处理器控制技术领域,具体是一种在FPGA平台实现化C控制装置。
【背景技术】
[0002] 可编程逻辑控制器化〔(Programmable Logic Con化oiler)已被广泛应用于制造 系统多年,传统硬化C经过几十年的发展,已经成为一项成熟技术,它W其高速度、高性能、 高可靠性在工业控制领域得到了广泛的应用。但是,传统硬化C有很大的缺点:生产厂商之 间的产品相互不兼容,缺少明确一致的标准,难W构建开放的硬件体系结构;各厂商产品的 编程方法差别很大,技术专有性较强,工作人员必须经过较长时间的专业培训才能掌握某 一种产品的编程方法;传统化C的生产被几家厂商所垄断,导致化C价格昂贵。为了改善传统 硬化C的缺点软PLC诞生了,软PLC是基于IPC或EPC的开放结构的控制系统。它具有硬化C的 功能、开放的体系结构、遵循国际工业标准和事实上的工业标准(如IEC61131 -3标准和IEC 61491标准)、能充分利用PC机的资源、更强的数据处理能力、友好的人机界面等特点。软化C 利用软件技术可将标准的工业PC转换成全功能的化C过程控制器。软化C可综合计算机和 PLC的开关量控制、模拟量控制、数学运算、数值处理、通信网络等功能,通过一个多任务控 制内核,可提供强大的指令集、准确的扫描周期、可靠的操作和连接各种I/O系统及网络的 开放式结构。软化C提供与硬化C同样的功能,同时具备了PC环境的各种优点,软化C相对传 统化C具有很多优势。但是,软化C有一个致命的缺点:软化C是一种用软件模拟实现传统硬 件化C控制功能的控制装置,运导致软化C的实时性大不如传统硬化C,在很多高速工业控制 领域,软化C无法满足实时性要求。

【发明内容】

[0003] 针对现有技术的缺点,本发明提供一种在FPGA平台实现化C控制装置,利用FPGA可 W并行执行程序的特性,使得FPGA-PLC可W串行和并行混合执行化C程序W大幅提高化C的 实时性。
[0004] 实现本发明目的的技术方案是:
[0005] -种在FPGA平台实现化C控制的方法,包括如下步骤:
[0006] 1)生成化C梯形图;
[0007] 2)生成IEC61131-3标准的结构化文本文件;
[000引3)确定化C每行结构化文本中的逻辑依赖关系;
[0009]分析步骤2得到的结构化文本文件,得到化C逻辑间的依赖关系;
[0010] 4)建立FPGA进程的并发扫描模型;
[0011]由步骤3产生的依赖关系得到FPGA进程的并发扫描模型;
[001。5)实现结构化文本到FPGA转换;
[0013] 根据步骤4的并发扫描模型实现结构化文本到FPGA转换;
[0014] 6)综合生成FPGA固件;
[0015] 使用FPGA工具集将步骤5)中联合用FPGA模块实现的IEC61131-3基本功能模块库 进行
[0016] 综合生成FPGA固件。
[0017] 步骤3)中依赖关系的定义:如果B(逻辑算术表达式)的输入参数包含A(逻辑算术 表达式)的输出参数,那么B依赖于A,即A的输出会影响B的输出。扫描结构化文本文件中所 有逻辑算术表达式语句就可得到逻辑算术表达式间的依赖关系,即PLC逻辑间的依赖关系: [001 引 Yl=Xl OR X2 (1)
[0019] Y2 = Y1 AND X3 (2)
[0020] Y3=X2 OR Y2 OR X4 (3)
[0021] 式中:(1)(2)(3)是抽象出来的3行结构化文本逻辑算术表达式,(1)(2)(3)的'=' 左边Y1、Y2、Y3表示的是输出变量,'='右边乂1^2、¥1^3心2、¥2心4表示的是输入变量,(? 逻辑或运算符、AND是逻辑与运算符;
[0022] 每次提取结构化文本文件中的一行逻辑算术表达式的输入和输出变量,每提取一 行逻辑算术表达式的输入和输出变量,就给新的输入和输出变量分配一个初始值为1的计 数器,通过该计数器的数值大小,来确定结构化文本中的不同逻辑算术表达式之间的依赖 关系,第一次提取式(1)的输入变量是:X1、X2,输出变量是:Y1。因为每行逻辑算术表达式的 输入变量只用一次,而输出变量每次都要用,所W将Yl放到关键词集合(关键词集合就是逻 辑算术表达式的输出变量的集合,后面统一称作关键词)中保存起来,刚开始关键词集合为 空,
[00剖初始化:
[0024] Yl-Count = I,
[0025] Xl-Count = I,
[00%] X2_Count = l,
[0027]运=个关键词计数器值,就可W计算当前行逻辑算术表达式ID(逻辑算术表达式 的编号值)的值,下面给出下面ID的计算公式:
[002引 ID = Yx_Count=MAX{Xl_Count,. . . ,Xn_Count} (4)
[0029] 式中,ID:当前行逻辑算术表达式的编号值;Yx_Count:中的X代表巧Ijn的一个数 字;Xl_Count,. . .,Xn_Count:代表输入关键词计数器的值;MAX{Xl_Count,. . .,Xn_Count}: 中的MX表示取出所有的关键词计数值的最大值;
[0030] 用公式(4)计算:
[0031 ] ID = Yx_Count=MAX{Xl_Count,X2_Count} =MAX{ 1,1} = 1,所W第一行逻辑算术 表达式的ID=I,此时可W保存式(1)的ID = I,第二次提取式(2)关键词时,根据前面依赖的 定义,比较的是式(2)的输入关键词是否包含式(1)的输出关键词,由于式(1)的输出关键词 都放到了关键词集合中,所W只需要提取式(2)的输入关键词和关键词集合中保存的关键 词比较,看式(2)的输入关键词是否包含有关键词集合中的关键词,如果有则表示有依赖关 系,现在关键词集合已经有一个关键词Yl,式(2)的输入关键词包含关键词集合中的Yl,所 W有依赖关系,此时需要用Yl_Count+l的值来代替Yl_Count的值来计算的_ID,运样能保证 当前行逻辑算术表达式计算出来的ID值比它所依赖的的ID值至少大1,从而保证按照依赖 的顺序执行;
[0032] 下面用公式(4)来计算式(2)的ID值,提取式(2)的关键词¥2、¥1心3,因为¥1已经存 在于关键词集合中,说明有依赖关系,所W用Yl_Count+l来代替YLCount的值来计算当前 行的 ID 值,ID = Y2_Count=MAX{Yl_Count+l,X3_Count} = {2,l} = 2,此时可 W 保存式(2)的 ID = 2,同理按照式(2)的计算过程可W计算出式(3)的ID = 3,用ID值就可W直接通过ID数 值确定每一行逻辑算术表达式的依赖关系:(1)ID=1、(2)ID = 2、(3)ID = 3说明逻辑算术表 达式执行顺序是(1)^(2)^(3)按顺序执行的,执行顺序是按照ID值从小到大的顺序来执 行。
[0033] 步骤4)中,每一行逻辑算术表达式会映射到到一个单独的FPGA进程。每一个进程 开始处都是一个关于当前进程组号的判断,只有在当前进程组号等于某个常数时该进程才 开始有效工作,该常数被视为一个ProcessJD,决定了一个FPGA进程何时被执行,本设计称 之为进程组序号值。ProcessJD和ID在数值上是相等的,只要ID确定了,ProcessJD就确定 了。Process_ID值相同的被视为同一进程组,同一进程组内的进程并行工作,也就是说 ProcessJD值相同的会被同时并行执行;
[0034] 为了保证能够正确合理的按照顺序并发执行进程,使用一个单独的进程来实现上 述进程组管理功能。此进程主要对当前进程组号不停的循环递增:程当FPGA复位时cur_ pro_no(当前进程组号)值为0,否则每当上一个进程组结束时cur_pro_no就自增,直至到达 max_pro_no(最大进程组号)后回到0并重新循环,FPGA-PLC的一个完整扫描周期等于所有 进程组都被执行的时间,通过运种进程组号顺序循环递增的方式来实现化C的顺序并发扫 描执行程序的功能。进程组号递增到的值和其中Process_ID(数值上和ID值相等)值相等 时,对应的进程就会被执行。如果有多行进程的ProcessJD值和进程组递增到的值相同,那 么运几行ProcessJD值相同的进程就被并行执行。
[0035] 步骤5)中,结构化文本使用布尔逻辑表达式和模块逻辑表达式运两种表达式,因 此转化工作也按运两种情况进行;
[0036] 布尔逻辑表达式情况下只需把结构化文本中的布尔逻辑运算表达式符直接替换 为Verilog语言的逻辑运算符即可,下表就是逻辑运算符替换表, 「00371
[0038] 结构化文本中的模块逻辑表达式被转化为IEC61131-3基础库中某模块的一个实 例,并通过线网传递所需的参数,例如结构化文本中计数器模块TONO (IN: = NOT (X1) AND (mOOR xO) ,PT: =T#2000000ns)转换Verilog语言就是TON T0N0(sys_clk,sys_rstn,T0N0_ IN0_WIRE,T0N0_0UT0_WIRE);其中TONO是TON模块的一个实例;
[0039] 此根据步骤4的并发扫描模型和步骤5结构化文本到Verilog HDL规则,实现结构 化文本到FPGA的转换;
[0040] 步骤6)中使用FPGA工具集将步骤5)中联合用FPGA模块实现的IEC61131-3基本功 能模块库进行综合生成FPGA固件;
[0041 ] 一种在FPGA平台实现化C控制装置,包括输出部分、忍片部分、输入部分、端口部分 和串口部分;
[0042]忍片部分与输出部分、输入部分、端口部分和串口部分分别连接。
[0043] 输出部分、包括输出端口、继电器隔离电路、输出光禪合隔离电路,输出端口、继电 器隔离电路、输出光禪合隔离电路顺序连接,输入光禪合隔离电路还与忍片部分的FPGA忍 片相连接;
[0044] 忍片部分、包括FPGA忍片;
[0045] 输入部分、包括输入端口,输入光禪合隔离电路,输入端口与输入光禪合隔离电路 相连接,输入光禪合隔离电路还与忍片部分的FPGA忍片相连接;
[0046] 端口部分、包括调试端口;
[0047] 串口部分、包括通信串口;
[004引有益效果:
[0049] 本发明提供了 一种在FPGA平台实现化C控制的方法及装置,将IEC-61131-3标准应 用在了FPGA-PLC上,克服了传统化C的封闭性和兼容性差等缺点,有利于打破高端化C厂家 垄断局面;还利用FPGA并行执行的特性,使得FPGA-PLC能并行执行化C进程,大幅提升了化C 的实时性,FPGA的处理是纯硬件的实现过程,使得FPGA-PLC系统具有很高的稳定性。
【附图说明】
[0050] 图1本装置结构框图
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1