[发明专利]执行程序的方法、验证程序结果的方法、装置及系统无效
申请号: | 200910086337.8 | 申请日: | 2009-05-31 |
公开(公告)号: | CN101571810A | 公开(公告)日: | 2009-11-04 |
发明(设计)人: | 徐华;温赟;杨甲东;万伟 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/50 |
代理公司: | 北京三高永信知识产权代理有限责任公司 | 代理人: | 何文彬 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 程序 方法 验证 结果 装置 系统 | ||
技术领域
本发明涉及计算机领域,特别涉及执行程序的方法、验证程序结果的方法、装置及系统。
背景技术
PLC(Programmable Logic Controller,可编程逻辑控制器)采用一种循环扫描的执行方式。该方式分为三个阶段:输入采样、用户程序执行和投入运行。完成上述三个阶段称为一个扫描周期。其中,运行于PLC上的程序都是依照循环扫描的执行方式串行执行。
由于PLC硬件对于扫描周期的时长都有一定限制,在执行相对复杂的控制功能时,采用串行执行程序的方法,无法在单个扫描周期中执行完整个程序,程序员必须将原本完整的程序分成多段,通过单独执行每段程序来完成该控制功能,或是在相互通信的多个PLC上分别编写程序,通过每个PLC执行自身的程序,协同完成该控制功能。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有的串行执行程序的方法,在执行相对复杂的控制功能时,必须将完整的程序分成多段或分别编写在多个PLC上,极大地影响了程序员开发程序的效率,并给调试和部署程序带来不便。
发明内容
为了使提高开发程序的效率,方便调试和部署程序,本发明实施例提供了执行程序的方法、验证执行结果的方法、装置及系统。所述技术方案如下:
一种执行程序的方法,所述方法包括:
顺序扫描源程序的文本文件中的指令;
读取所述指令的名称、所述指令的操作数、所述指令所属的定界符以及所属的程序块;
计算所述定界符的执行时间;
获取所述操作数的存储空间和读写属性;
将所述指令的名称、所述指令的操作数、所述指令所属的定界符以及所属的程序块、所述定界符的执行时间、所述操作数的存储空间和读写属性作为指令信息;
建立串行队列;
从所述指令信息的程序块的主程序块为入口,顺序扫描所述指令信息中的定界符包括的指令;
将所述定界符作为节点加入到所述串行队列,其中,将所述定界符的执行时间作为所述节点的权重;
判断所述指令是否为调用CALL指令,如果所述指令为CALL指令,则跳入所述CALL指令调用的程序块,扫描所述程序块中的定界符包括的指令;
将所述串行队列中的节点存入并行时序图中;
在所述串行队列中,设置指针1指向队头节点,设置指针2指向所述指针1指向的节点的下一个节点;
根据操作数的存储空间和读写属性,判断所述指针1指向的节点与所述指针2指向的节点是否存在数据依赖关系,如果存在,在所述并行时序图中,在所述指针1指向的节点与所述指针2指向的节点之间加入有向边,方向为所述指针1指向的节点指向所述指针2指向的节点,在所述串行队列中,重新设置所述指针2指向下一个节点;
如果不存在,在所述串行队列中,重新设置所述指针2指向下一个节点;
根据所述并行时序图,并行执行所述源程序;
其中,所述源程序由一个或多个程序块组成,所述程序块由一个或多个定界符组成,所述定界符由一条或多条指令组成。
一种执行程序的装置,所述装置包括获取模块、建立模块、构造模块和执行模块:
所述获取模块包括第一扫描单元、读取单元、计算单元和第一获取单元;
所述第一扫描单元,用于顺序扫描源程序的文本文件中的指令;
所述读取单元,用于读取所述指令的名称、所述指令的操作数、所述指令所属的定界符以及所属的程序块;
所述计算单元,用于计算所述定界符的执行时间;
所述第一获取单元,用于获取所述操作数的存储空间和读写属性;
将所述指令的名称、所述指令的操作数、所述指令所属的定界符以及所属的程序块、所述定界符的执行时间、所述操作数的存储空间和读写属性作为指令信息;
所述建立模块包括建立单元、第二扫描单元、添加单元和判断单元;
所述建立单元,用于建立串行队列;
所述第二扫描单元,用于从所述指令信息的程序块的主程序块为入口,顺序扫描所述指令信息中的定界符包括的指令;
所述添加单元,用于将所述定界符作为节点加入到所述串行队列,其中,将所述定界符的执行时间作为所述节点的权重;
所述判断单元,用于判断所述指令是否为调用CALL指令,如果所述指令为CALL指令,则跳入所述CALL指令调用的程序块,扫描所述程序块中的定界符包括的指令;
所述构造模块包括存储单元、第一设置单元和第一判断单元;
所述存储单元,用于将所述串行队列中的节点存入并行时序图中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910086337.8/2.html,转载请声明来源钻瓜专利网。