CN107632819B - 一种基于符号表的可编程逻辑调试的方法和*** - Google Patents

一种基于符号表的可编程逻辑调试的方法和*** Download PDF

Info

Publication number
CN107632819B
CN107632819B CN201610557370.4A CN201610557370A CN107632819B CN 107632819 B CN107632819 B CN 107632819B CN 201610557370 A CN201610557370 A CN 201610557370A CN 107632819 B CN107632819 B CN 107632819B
Authority
CN
China
Prior art keywords
symbol table
programmable logic
symbol
logic
module
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
Application number
CN201610557370.4A
Other languages
English (en)
Other versions
CN107632819A (zh
Inventor
程立
周磊
陈宏君
熊慕文
李少卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NR Electric Co Ltd
NR Engineering Co Ltd
Original Assignee
NR Electric Co Ltd
NR Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NR Electric Co Ltd, NR Engineering Co Ltd filed Critical NR Electric Co Ltd
Priority to CN201610557370.4A priority Critical patent/CN107632819B/zh
Publication of CN107632819A publication Critical patent/CN107632819A/zh
Application granted granted Critical
Publication of CN107632819B publication Critical patent/CN107632819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于符号表的可编程逻辑调试方法,包括如下内容:工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;处理器扫描输入信息,将所述输入信息表达的逻辑模块,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;客户端依据符号表查询相应***变量,从而获取***运行状态信息。本发明还公开了一种对应所述基于符号表的可编程逻辑调试方法的***。此种方法采用符号表编码规则,确保变量唯一生成,便于***运行态信息的采集和分析。

Description

一种基于符号表的可编程逻辑调试的方法和***
技术领域
本发明属于嵌入式装置领域,涉及一种基于符号表的可编程逻辑调试的方法和***。
背景技术
近年来,嵌入式装置的大规模应用,对可编程逻辑提出了更为广泛、更为灵活的要求。传统的嵌入式装置可编程逻辑存在以下两个问题:1、调试时,只能察看最终的逻辑结果;2、或者有的***可察看中间运行状态,但各个运行态信息都是预先静态生成而无法动态生成。为解决此问题,有必要根据嵌入式装置的特点,结合工程实际,提出可编程逻辑调试的新技术和新方法。
发明内容
针对现有技术存在的缺陷和不足,本发明旨在提出一种基于符号表的可编程逻辑调试的方法和***,可有效提升嵌入式***中运行态信息的采集和分析功能。
为达到上述目的,本发明的解决方案如下:
本发明提供了一种基于符号表的可编程逻辑调试的方法和***,包括步骤:
工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;处理器扫描输入信息,将所述输入信息表达的逻辑,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;客户端依据符号表查询相应***变量,从而获取***运行状态信息。此种方法采用符号表编码规则,确保变量唯一生成,便于***运行态信息的采集和分析。
上述方案中,所述逻辑模块除了定义基本的逻辑要素如四则运算、逻辑运算、条件、跳转、循环等,还包括了具体的功能块,如开关分/合、档位升/降/停、软压板投/退、定值修改等模块。此功能块作为应用函数库供***调用。
上述方案中,所述工具以图形化方式搭建逻辑模块之前还包括:所述工具按照逻辑功能要求,配置四则运算、逻辑运算、条件语句、跳转语句、循环语句、函数功能块等基本逻辑要素,生成独立页面以采用逻辑图方式搭建逻辑模块。
上述方案中,所述处理器扫描输入信息之前还包括:所述处理器从共享内存中读取逻辑配置文件,并加载至***内存。
上述方案中,将所述配置文件,按照逻辑符号优先级,基于栈式结构,依据符号匹配原则,从外向内,逐级分解符号,将逻辑整体符号块分解为若干小逻辑块,建立符号表名称,确保唯一性。
上述方案中,所述客户端可向***服务器发起查询,***服务侧根据客户端请求的符号表信息,采用相应查询算法,获取查询数据并回送结果。
本发明实施例还提供了一种基于符号表的可编程逻辑调试的***,包括图形工具、共享内存、***内存、处理器、***总线,客户端、服务器端。其中,所述处理器与所述共享内存、所述***内存、所述***总线相连接,所述客户端与服务器端相连接。
所述处理器,用于从所述共享内存中读取配置文件并加载至所述***内存;所述处理器扫描配置信息,将所述配置信息表达的逻辑,生成相应的数据结构。
本发明的有益效果是:通过基于符号表的可编程逻辑调试的方法和***,提升了嵌入式***运行态信息的获取与分析的手段,解决了传统可编程逻辑调试中面临的两个问题:1)只能查看最终逻辑结果,无法查看中间运行状态信息;2)或者各个运行态信息都是预先静态生成而无法动态生成。
附图说明
图1为该专利所采用的基于符号表的可编程逻辑调试的方法和***示意图。
具体实施方式
本发明提供一种基于符号表的可编程逻辑调试的方法和***,具体步骤包括:
工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;处理器扫描输入信息,将所述输入信息表达的逻辑,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;客户端依据符号表查询相应***变量,从而获取***运行状态信息。此种方法采用符号表编码规则,确保变量唯一生成,便于***运行态信息的采集和分析。
其中,逻辑模块除了定义基本的运算符号,如四则运算(+、-、*、/),逻辑运算(&&、||、!、^等)、条件语句(if/else)、跳转语句(goto)、循环语句(do while)外,还包括了具体的功能块,如开关分/合(cbOpen、cbClose)、档位升/降/停(tapeUp、tapeDown、tapStop)等库文件,作为应用函数库供***调用。
其中,工具以图形化方式搭建任务模块之前,工具按照逻辑功能要求,配置四则运算、逻辑运算、条件语句、跳转语句、循环语句、函数功能块等基本要素,生成独立页面提供逻辑图方式搭建逻辑模块。
其中,在处理器进行扫描之前,该方法还可以包括步骤:所述处理器从共享内存中读取任务配置文件,并加载至***内存,解析任务配置文件,经过语法扫描,生成符号表等数据结构。
建立符号表可以为:将所述配置文件,按照逻辑符号优先级,基于栈式结构,依据符号匹配规则,自外向内,逐级分解符号,将逻辑整体符号块分解为若干小逻辑块,建立符号名称,确保唯一性。
下面以一个具体的基于符号表的可编程逻辑调试的方法和***来说明本发明的具体实现方法。数据流见图1,具体的实施方法包括:
1、语法扫描:
(1)采用图形化方式搭建逻辑图,图符包括四则运算、逻辑运算、条件语句、跳转语句、循环语句、函数功能块等,生成逻辑功能描述的配置文件;
(2)操作***侧将配置文件加载到共享内存中,处理器侧从共享内存中读取配置信息,校验文件CRC,若校验不一致则装置启动失败;
(3)依次建立概要表项、输入表项、输出表项、公式表项;
2、符号表:
(1)扫描公式表项时,基于栈式结构,依次扫描表达式,根据符号匹配原则,从外向内逐级伸展,生成唯一符号表名称out_i_j_cj,其中i为公式编号,j为堆栈深度,cj为堆栈深度为j的计数。举例来说,表达式Y1=((X1+X2)×(X3-X4)),首先扫描到Y1生成i=1,跳过“=”号扫描到“(”压栈为j=1,c1=1,遇到第二个“(”再压栈j=2,c2=1,扫描直到遇到匹配符号“)”,此时栈深度j=2,栈深度计数c2=1,在栈中弹出2层的“(”生成X1+X2的符号表out_1_2_1,弹出栈后j=1,c1=1,c2=1;继续扫描到下一个“(”压入栈,栈深度为j=2,碰到下一个匹配符号“)”,此时栈深度计数增加为c2=2,生成X3-X4的符号表为out_1_2_2,弹出栈后j=1,c1=1,c2=2;最后碰到“)”,与第一次的“(”匹配,此时栈的深度j=1,栈深度计数c1=1,生成((X1+X2)×(X3-X4))符号表out_1_1_1,最后弹栈后栈为空,过程结束。因此在Y1=((X1+X2)×(X3-X4))表达式中生成了三个符号表,分别为out_1_1_1、out_1_2_1、out_1_2_2,分别对应((X1+X2)×(X3-X4))、(X1+X2)、(X3-X4)三个计算结果。该编码采用表达式序号、栈式深度、栈式深度计数三个编码元素,可以确保编码方式唯一,从而生成符号表具有唯一性。
(2)生成符号表后,向***服务发起注册,生成符号表对应的数据结构,对应数据结构不局限于哈希表、二叉树等。
3、***服务:
(1)提供符号表注册服务,生成相应数据结构,该数据结构不局限于哈希表、二叉树等,提供查询接口。
(2)按照客户端-服务器模型,提供***服务,响应客户端发起的符号表查询请求。
4、客户端:
(1)根据符号表规则生成相应符号,向服务器端发起数据请求;
(2)根据请求数据,采用图形化方式进行展示;
本发明还提供一种基于符号表的可编程逻辑调试的方法和***,该***包括图形工具、共享内存、***内存、处理器、***总线,客户端、服务器端。其中,所述处理器与所述共享内存、所述***内存、所述***总线相连接,所述客户端与服务器端相连接。
本发明还提供一种基于符号表的可编程逻辑调试的方法和***,工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;处理器扫描输入信息,将所述输入信息表达的逻辑,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;客户端依据符号表查询相应***变量,从而获取***运行状态信息。此种方法采用符号表编码规则,确保变量唯一生成,便于***运行态信息的采集和分析。
本发明中的处理器可以是DSP、单片机、CPU等类型的处理器。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (9)

1.一种基于符号表的可编程逻辑调试的方法,其特征在于,所述方法包括步骤:工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;处理器扫描输入信息,根据所述输入信息表达的逻辑模块,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,采用表达式序号、栈式深度、栈式深度计数三个编码元素,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;客户端依据符号表查询相应***变量,从而获取***运行状态信息。
2.根据权利要求1所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述逻辑模块包括四则运算模块、逻辑运算模块、条件模块、跳转模块、循环模块。
3.根据权利要求1或2所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述逻辑模块还包括具体的功能模块,功能块作为应用函数库供***调用,功能模块包括开关分/合模块、档位升/降/停模块、软压板投/退模块、定值修改模块。
4.根据权利要求1所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述工具以图形化方式搭建逻辑模块之前,还包括如下步骤:所述工具按照可编程逻辑要求,配置逻辑要素,生成独立页面的功能模块。
5.根据权利要求4所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述逻辑要素包括四则运算、逻辑运算、条件语句、跳转语句、循环语句、函数功能块。
6.根据权利要求1所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述处理器扫描输入信息之前,还包括如下步骤:所述处理器从共享内存中读取任务配置信息,并加载至***内存,解析任务配置文件,经过语法扫描,生成符号表。
7.根据权利要求6所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述解析任务配置文件具体为,基于栈式结构解析配置信息,依据符号匹配原则,生成唯一编码的符号名称,确保符号表名称具有唯一性。
8.根据权利要求1所述的基于符号表的可编程逻辑调试的方法,其特征在于,所述客户端向***服务器发起查询,***服务根据客户端请求的符号表信息,回送相应的查询结果。
9.一种基于符号表的可编程逻辑调试的***,其特征在于,所述***包括图形工具、共享内存、***内存、处理器、***总线,客户端和服务器端;
其中,所述处理器与所述共享内存、所述***内存、所述***总线相连接,所述客户端与所述服务器端相连接;
所述图形工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;所述处理器扫描输入信息,将所述输入信息表达的逻辑,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,采用表达式序号、栈式深度、栈式深度计数三个编码元素,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;所述客户端依据符号表查询相应***变量,从而获取***运行状态信息。
CN201610557370.4A 2016-07-14 2016-07-14 一种基于符号表的可编程逻辑调试的方法和*** Active CN107632819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610557370.4A CN107632819B (zh) 2016-07-14 2016-07-14 一种基于符号表的可编程逻辑调试的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610557370.4A CN107632819B (zh) 2016-07-14 2016-07-14 一种基于符号表的可编程逻辑调试的方法和***

Publications (2)

Publication Number Publication Date
CN107632819A CN107632819A (zh) 2018-01-26
CN107632819B true CN107632819B (zh) 2021-02-09

Family

ID=61112102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610557370.4A Active CN107632819B (zh) 2016-07-14 2016-07-14 一种基于符号表的可编程逻辑调试的方法和***

Country Status (1)

Country Link
CN (1) CN107632819B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459101B (zh) * 2020-03-05 2021-04-27 明珞汽车装备(上海)有限公司 仿真逻辑块的创建数据的处理方法、***和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218294A (zh) * 2013-04-16 2013-07-24 华为技术有限公司 一种嵌入式***的调试方法、调试转换装置和***
CN103942078A (zh) * 2014-04-30 2014-07-23 华为技术有限公司 一种加载驱动程序的方法及嵌入式设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100511177C (zh) * 2006-11-06 2009-07-08 中兴通讯股份有限公司 一种嵌入式***的符号定位方法
GB2471546A (en) * 2007-12-13 2011-01-05 Labtronics Technology Pty Ltd Application specific virtual real-time operating system compiler
CN101340314A (zh) * 2008-08-11 2009-01-07 中兴通讯股份有限公司 一种嵌入式***的实时调试定位方法及其装置
CN104731651B (zh) * 2013-12-20 2018-08-17 南京南瑞继保电气有限公司 电力自动化任务调度及触发机制的方法、***和处理器
CN105630581A (zh) * 2014-11-07 2016-06-01 南京南瑞继保电气有限公司 一种任务处理方法、设备及计算机存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218294A (zh) * 2013-04-16 2013-07-24 华为技术有限公司 一种嵌入式***的调试方法、调试转换装置和***
CN103942078A (zh) * 2014-04-30 2014-07-23 华为技术有限公司 一种加载驱动程序的方法及嵌入式设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
可编程保护测控功能通用性设计与实现;余群兵 等;《计算机***应用》;20160215;第25卷(第2期);第7-9页 *
嵌入式装置图形化编程工具软件设计与应用;王国栋 等;《工业控制计算机》;20150525;第28卷(第5期);第87-92页 *

Also Published As

Publication number Publication date
CN107632819A (zh) 2018-01-26

Similar Documents

Publication Publication Date Title
KR102674648B1 (ko) 문서 분석 방법, 장치, 기기 및 저장 매체
EP3912074B1 (en) Generating a synchronous digital circuit from a source code construct defining a function call
CN109902274A (zh) 一种将json字符串转化为thrift二进制流的方法及***
CN111367693B (zh) 基于消息队列调度插件任务的方法、***、设备及介质
CN104182234A (zh) 一种业务处理方法和业务***
WO2023011274A1 (zh) 一种通讯协议转换方法、设备、***及网关设备
WO2020092135A1 (en) Extracting web api endpoint data from source code
CN104765641A (zh) 一种作业调度方法及***
CN107483412B (zh) 一种HTML5 web worker迁移方法及***
CN111984561A (zh) 一种bmc的ipmi命令处理方法、***、设备以及介质
CN114089956A (zh) 一种基于需求模型的微服务拆分方法
CN107632819B (zh) 一种基于符号表的可编程逻辑调试的方法和***
KR20060089862A (ko) 프리 컴파일링 장치
CN116578404B (zh) 线程管理方法、装置、存储介质及电子设备
WO2014209292A1 (en) Modifying an analytic flow
EP4415323A1 (en) Application traffic comprehensive management method, apparatus, and electronic device
CN106550026B (zh) 一种网络通信装置及方法
CN112347126A (zh) 大数据处理方法、装置、设备及介质
EP4102361A2 (en) Method and apparatus for managing functions of a query engine
CN112579312A (zh) 参数映射方法及装置、存储介质、接口调用平台、服务***
CN103914304A (zh) 一种基于sap平台的不同结构类型参数转换方法
JP2011070644A (ja) ネットワークリソースのマッシュアップ方法および装置
CN104778406A (zh) 一种基于文件指纹对恶意代码统一命名的方法及其***
CN103488527A (zh) 一种php api调用方法、相关设备及***
CN114035795A (zh) 核函数预编译方法、装置、计算机设备和存储介质

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