一种取出机Sequence数据的新型执行方法与流程

文档序号:18738593发布日期:2019-09-21 01:30阅读:164来源:国知局
本发明涉及生产线设备控制系统,具体涉及一种取出机Sequence数据的新型执行方法。
背景技术
::现用于生产线的取出机,其动作程序由梯形图编辑生成汇编指令后下载到CPU中,然后CPU执行汇编指令来实现动作执行,此种操作方法CPU执行汇编语言动作较慢,从而导致取出机的扫描周期与速度也较慢。技术实现要素:本发明针对现有技术中存在的技术问题,提供一种取出机Sequence数据的新型执行方法,通过将原本梯形图的编辑程序,变成以Sequence数据地址为基础的Table编译程序,通过编译程序先将动作程序转化为CPU的汇编指令,然后在将汇编指令转化成CPU对应的机器码,最后将实现动作程序的机器码下载到CPU中,CPU执行机器码来实现动作执行,CPU执行机器码比执行汇编指令快很多,从而提高取出机的扫描周期和速度。本发明解决上述技术问题的技术方案如下:一种取出机Sequence数据的新型执行方法,包括以下步骤:S1.对Sequence数据进行定义,并设定其在RAM/SDRAM中的地址,打开table文件,将Sequence数据编辑进table文件;S2.设定CPU中寄存器存储Sequence的起始地址,设定CPU中寄存器存储.tbl文件的起始地址,并执行table文件中的命令,生成汇编指令过程.tas文件;S3.逐行判断汇编指令的类型,将汇编指令转化为对应的机器码并生成机器码.tbl文件,将.tbl文件文件下载到FROM中;S4.系统程序执行,将FROM中table数据拷贝到RAM/SDRAM中,Sequence数据开始循环执行,直至结束。优选地,步骤S1包括,S101.对Sequence命令的类型、格式、长度进行定义;S102.以地址寻址的方式设定RAM/SDRAM中sequence数据的起始地址,根据sequence命令定义,将sequence全部数据一一对应为RAM/SDRAM的地址;S103.打开table文件,确定table文件后缀为.TAB,将已定义的sequence数据以文本文件的方式编辑进Table文件。优选地,步骤S2中,执行table文件中的命令,若命令为输入命令,则进行以下步骤,S201.得到输入命令的操作数opr,以寻址的方式得到输入命令的操作数opr在RAM/SDRAM中的地址;S202.得到输入命令的类型type,判断类型type并执行对应分支指令,将输入命令的汇编指令写入汇编指令.tas文件。优选地,步骤S2中,执行table文件中的命令,若命令为算数运算命令,则进行以下步骤,S203.得到算数运算命令的操作数opr,把操作数opr通过十六进制转化为指令操作的立即数;S204.得到算数运算命令的类型type,根据类型type写入逻辑与指令和T位置位,将算数运算命令的汇编指令写入到目标.tas文件中。优选地,步骤S2中,执行table文件中的命令,若命令为输出命令,则进行以下步骤,S205.得到输出命令的操作数opr,以寻址的方式得到输出命令的操作数opr在RAM/SDRAM中的地址;S206.得到输出命令的类型type,判断类型type并执行对应分支指令,将输出命令的汇编指令写入到目标.tas文件中。优选地,所述步骤S3中,逐行判断汇编指令的类型,将汇编指令转化为机器码并生成机器码.tbl文件,包括,判断汇编指令为位移指令,根据汇编指令内容,写入位移指令在CPU中的机器码;判断汇编指令为算数指令,根据汇编指令内容,写入算数指令在CPU中的机器码;判断汇编指令为逻辑指令,根据汇编指令内容,写入逻辑指令在CPU中的机器码;判断汇编指令为分支指令,根据汇编指令内容,写入分支指令在CPU中的机器码;判断汇编指令为结束指令,生成CPU机器码.tbl文件。本发明的有益效果是:本发明提出的取出机Sequence数据的新型执行方法,通过将原本梯形图的编辑程序,变成以Sequence数据地址为基础的Table编译程序,通过编译程序先将动作程序转化为CPU的汇编指令,然后在将汇编指令转化成CPU对应的机器码,最后将实现动作程序的机器码下载到CPU中,CPU执行机器码来实现动作执行,CPU执行机器码比执行汇编指令快很多,从而提高取出机的扫描周期和速度。附图说明图1为本发明步骤S1流程图;图2为本发明步骤S2流程图;图3为本发明步骤S3~步骤S4流程图;图4为本发明步骤S201~步骤S202流程图;图5为本发明步骤S203~步骤S204流程图;图6为本发明步骤S205~步骤S206流程图。具体实施方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。参见图1~图3所示,本发明的一种取出机Sequence数据的新型执行方法,包括以下多个步骤:(其中步骤A~步骤H相当于
发明内容中的步骤S1,步骤I~步骤R相当于
发明内容中的步骤S2,步骤S~步骤AA相当于
发明内容中的步骤S3,步骤AB~步骤AD相当于
发明内容中的步骤S4)步骤A:对取出机使用的Sequence全部数据进行类型、格式、长度的定义(如图1中框101、102、103);步骤B:通过以地址寻址的方式,先设定Sequence数据对应在CPU基板上的RAM/SDRAM(同步动态随机存取内存)中的起始地址0xA000(如图1中框104);步骤C:根据步骤A中对Sequence全部数据的定义,可以将Sequence全部数据都一一对应在RAM/SDRAM的地址中,为后面的汇编和机器码编译做准备,并且保证不会有重复和覆盖的情况出现(如图1中框105)。步骤D:打开/输入需要编辑的Table文件给Table编辑器(如图1中框106),如果打开的文件是.tab文件,则直接进入步骤F中,如果不是.tab文件,则进入步骤E中(如图1中框107)。步骤E:当打开/输入的文件不是.tab文件,Table编辑器会自动新建一个10行的空白.tab文件(如图1中框108)。步骤F:当打开/输入的文件时.tab文件,Table编辑器会识别.tab文件中的内容,并进行显示,此时,可以使用步骤A中已经完成定义的sequence数据,并且以sequence的名称(英文)、阿拉伯数字、英文符号的组合,对.tab文件进行增加、删除、修改等编辑操作(如图1中框109)。步骤G:完成.tab文件的编辑(如图1中框110)。步骤H:开始对已经编辑完成的.tab文件进行文法检查,检查输入的全部内容的名称、数字、符号以及组合的语法和语义的正确性(如图1中框111),如果检查后发现有错误,则返回到步骤F中,重新对.tab文件中输入的内容进行修改和确认,以保证其正确性。如果检查后没有错误,则进入到步骤I中。步骤I:将.tab文件中编辑的内容转化为汇编指令,启动转化程序,开始准备转化(如图2中框112)。步骤J:把CPU中16个通用寄存器以堆栈入栈方式,通用寄存器R0存储为sequence数据在RAM/SDRAM中运行时的起始地址0xA000,然后把R0寄存器内容先入栈(如图2中框113)。步骤K:通用寄存器R1存储为.tbl文件的起始地址0xB0000,在R0寄存器内容入栈后再入栈R1寄存器内容(如图2中框114)。步骤L:处理.tab文件中的全部命令和参数,通过对命令类型的判断,来执行对应命令的处理流程(如图2中框115)。步骤M:sequence数据命令类型为输入命令时,则进入FLOWA流程执行(如图1中框116-1)。命令类型不是输入命令时,则进入步骤N中算数运算命令的判断(如图2中框116)。FLOWA流程步骤相当于
发明内容中步骤S201~步骤S202,参考图4,包括以下步骤:步骤M1:命令已经判定为输入命令时,才能进入FLOWA流程中执行,并得到输入命令的操作数opr(如图4中框201)。步骤M2:同样以寻址的方式,在得到输入命令的操作数opr后,并把opr作为输入命令中数据的偏移地址,可以计算出sequence数据在SDRAM对应的地址0xA005(如图4中框202)。步骤M3:得到输入命令的类型type值(如图4中框203)。步骤M4:判断输入命令的类型type值是否为1,如果为1时,则进入步骤M5中,如果不为1时,则进入步骤M5-1中(如图4中框205-1)。步骤M5:给下一个分支指令的flag置位为1(如图4中框205)。步骤M5-1:给下一个分支指令的flag置位为0(如图4中框205-1)。步骤M6:根据以上各步骤的结果,把输入命令的汇编指令写入到目标.tas文件中(如图4中框206)。步骤N:命令类型是算数运算命令时,则进入FLOWB流程执行。(如图1中框117-1),命令类型不是算数运算命令时,则进入步骤O中输出命令的判断(如图2中框117)。FLOWB流程步骤相当于
发明内容中步骤S203~步骤S204,参考图5,包括以下步骤:步骤N1:命令已经判定为算数运算命令时,才能进入FLOWB流程中执行,并得到算数运算名的操作数opr(如图5中框301)。步骤N2:在得到算数运算命令的操作数opr后,并把opr作为算数运算命令中的立即数,并通过十六进制的转化,变成指令可以操作的立即数A(如图5中框302)。步骤N3:得到输入命令的类型type值(如图5中框303)。步骤N4:根据得到输入命令的类型,写入逻辑与指令和T位置位为1(如图5中框304)。步骤N5:根据以上各步骤的结果,把算数运算命令的汇编指令写入到目标.tas文件中(如图5中框305)。步骤O:命令类型是输出命令时,则进入FLOWC流程执行。(如图2中框118-1),命令类型不是输出命令时,则进入步骤P中其他命令的处理(如图2中框118)。FLOWC流程步骤相当于
发明内容中步骤S205~步骤S206,参考图6,包括以下步骤:步骤O1:命令已经判定为输出命令时,才能进入FLOWC流程中执行,并得到输出命令的操作数opr(如图6中框401)。步骤O2:同样以寻址的方式,在得到输出命令的操作数opr后,并把opr作为输出命令中数据的偏移地址,可以计算出sequence数据在SDRAM对应的地址0xA005(如图6中框402)。步骤O3:得到输出命令的类型type值(如图6中框403)。步骤O4:判断输出命令的类型type值是否为1(如图6中框404),如果为1时,则进入步骤O5中,如果不为1时,则进入步骤O5-1中(如图6中框405-1)。步骤O5:给下一个分支指令的flag置位为1(如图6中框405)。步骤O5-1:给下一个分支指令的flag置位为0(如图6中框405-1)。步骤O6:根据以上各步骤的结果,把输出命令的汇编指令写入到目标.tas文件中(如图6中框406)。步骤P:如果命令类型不是上述步骤M、N、O中的命令类型,则按照其他命令默认的处理方式进行处理,实施例中只以几种重要的命令,如输入命令、算数运算命令、输出命令为例来说明流程,其他的命令是指一些不重要的命令,使用默认的处理方式来进行(如图2中框119)。步骤Q:循环判断并处理.tab文件中全部命令,直到出现结束命令0x38,如果命令类型判断是结束命令时,则进入步骤R中,如果命令类型不是结束命令时,则返回到命令判断的起始点开始执行步骤M、N、O的执行(如图2中框120)。步骤R:处理完结束命令后,把.tab文件转化为汇编指令目标文件.tas文件,并用于步骤S开始的把汇编指令转化为CPU可以识别的底层机器码的各步骤中(如图2中框121)。步骤S:使用生成好的.tas文件开始进行机器码的解析,解析前先要进行一些准备工作,把.tas文件中的汇编指令去除一部分不需要转化的内容以及优化指令中的跳转命令使用的距离的计算(如图3中框122)。步骤T:.tas文件中是以一行行的汇编指令进行排列的,在解析时,更方便的可以通过一行的汇编指令读取来进行机器码的转化(如图3中框123)。步骤U:读取一行汇编指令后,判断汇编指令的类型,是否为位移指令,如果是位移指令,则根据指令及指令的参数,并结合CPU资料中提供的不同指令的数据和格式,写入这一行汇编指令的机器码到.tbl文件中(如图3中框124-1)。如果不是位移指令,则进入步骤V中(如图3中框124)。步骤V:读取一行汇编指令后,判断汇编指令的类型,是否为算术指令,如果是算术指令,则根据指令及指令的参数,并结合CPU资料中提供的不同指令的数据和格式,写入这一行汇编指令的机器码到.tbl文件中(如图3中框125-1)。如果不是算术指令,则进入步骤W中(如图3中框125)。步骤W:读取一行汇编指令后,判断汇编指令的类型,是否为逻辑指令,如果是逻辑指令,则根据指令及指令的参数,并结合CPU资料中提供的不同指令的数据和格式,写入这一行汇编指令的机器码到.tbl文件中(如图3中框126-1)。如果不是逻辑指令,则进入步骤X中(如图3中框126)。步骤X:读取一行汇编指令后,判断汇编指令的类型,是否为分支指令,如果是分支指令,则根据指令及指令的参数,并结合CPU资料中提供的不同指令的数据和格式,写入这一行汇编指令的机器码到.tbl文件中(如图3中框127-1)。如果不是分支指令,则进入步骤Y中(如图3中框127)。步骤Y:读取到的汇编指令类型是否是结束指令,如果是结束指令,则进入步骤Z中,如果不是结束指令,则继续读取下一行汇编指令进行机器码的转化(如图3中框128)。步骤Z:循环转化汇编指令直到结束指令出现,把不同汇编指令转化后的机器码写入到.tbl文件后,生成CPU可以识别的机器码文件.tbl文件。(如图3中框129)步骤AA:把生成好的.tbl文件下载到基板上的FROM(快闪存储器)中,并作为文件的备份,防止拷贝到RAM/SDRAM中的数据丢失后,没有源数据可以使用(如图3中框130)。步骤AB:系统程序执行时,先将FROM中的上述各步骤中编辑编译后的sequence数据拷贝到RAM/SDRAM中,并作为下一步步骤AC执行的准备(如图3中框131)。步骤AC:系统程序操作指针*p,指向最先入堆栈的R0寄存器存储的sequence起始地址0xA000(如图3中框132)。步骤AD:CPU按照拷贝到RAM/SDRAM中的sequence数据的机器码开始执行,至此sequence数据可以循环开始执行(如图3中框133),直到结束循环执行。本发明提出的取出机Sequence数据的新型执行方法,通过将原本梯形图的编辑程序,变成以Sequence数据地址为基础的Table编译程序,通过编译程序先将动作程序转化为CPU的汇编指令,然后在将汇编指令转化成CPU对应的机器码,最后将实现动作程序的机器码下载到CPU中,CPU执行机器码来实现动作执行,CPU执行机器码比执行汇编指令快很多,从而提高取出机的扫描周期和速度。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1