CN107632819B - 一种基于符号表的可编程逻辑调试的方法和*** - Google Patents
一种基于符号表的可编程逻辑调试的方法和*** Download PDFInfo
- 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
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.一种基于符号表的可编程逻辑调试的***,其特征在于,所述***包括图形工具、共享内存、***内存、处理器、***总线,客户端和服务器端;
其中,所述处理器与所述共享内存、所述***内存、所述***总线相连接,所述客户端与所述服务器端相连接;
所述图形工具获取并分析图形化方式搭建的逻辑页面,生成可编程逻辑配置信息;所述处理器扫描输入信息,将所述输入信息表达的逻辑,生成相应的数据结构;所述数据结构基于栈式结构,依据符号匹配规则,自外向内,采用表达式序号、栈式深度、栈式深度计数三个编码元素,逐级生成符号表;所述符号表向***注册变量,生成相应信号实体;所述客户端依据符号表查询相应***变量,从而获取***运行状态信息。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459101B (zh) * | 2020-03-05 | 2021-04-27 | 明珞汽车装备(上海)有限公司 | 仿真逻辑块的创建数据的处理方法、***和存储介质 |
Citations (2)
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)
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 | 南京南瑞继保电气有限公司 | 一种任务处理方法、设备及计算机存储介质 |
-
2016
- 2016-07-14 CN CN201610557370.4A patent/CN107632819B/zh active Active
Patent Citations (2)
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)
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 |