数控子程序使用具体介绍:
1、在主程序中,调用子程序的指令是一个程序段,其格式随具体的数控系统而定,FANUC系统子程序调用格式为M98P--L--式中M98--子程序调用字;p--子程序列号;L--子程序调用次数。可以看出,子程序由程序调用字、子程序号和调用次数组成
2、子程序的返回:子程序返回主程序用指令M99,它表示子程序运行结束,请返回到主程序。
3、子程序的嵌套:子程序调用下一级子程序称为嵌套。上一级子程序与下一级于程序的关系,与主程序与第一层子程序的关系相同。子程序可以嵌套多少层由具体的数控系统决定。
编写子程序的步骤如下:
1、先在头脑中想清楚子程序的功能,并理清子程序的前置条件、后置条件。2、给子程序起一个好的名字。这是一个好子程序的标志。3、写测试用例。4、编写并优化伪代码。书写伪代码时不应该出现具体语言的方法元素;编写伪代码时,也站在一个比较高的层次,比较详细的书写。5、将伪代码转化成具体语言的语句。
6、子程序书写完后,首先也是最重要的就是先在自己的脑海中执行子程序,检查子程序的所有可能执行路径、端点和所有异常条件。通常这一过程可以发现绝大部分的错误。7、编译子程序。在编译的过程中将编译器的警告级别调到最高,并注意编译器产生的每个警告信息。8、在调试器逐行执行子程序9、执行单元测试。在这个过程中也用到第3步所写的测试用例。10、修改测试发现的问题,如果发现问题很多,则不修改子程序,而是直接重写子程序。11、检查子程序是否符合软件过程的一些基本思想。比如耦合度、变量的命名、语句的布局、注释等。
你的子程序放的位置不对,修改如下:
DATAS SEGMENT
str1 db 'again$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
main proc far
START:
MOV AX,DATAS
MOV DS,AX
call crlf
call crlf
call crlf
MOV AH,4CH
INT 21H
main endp
;====================
crlf proc near
mov ah,9
mov dx,offset str1
int 21h
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
ret
crlf endp
;==================
CODES ENDS
END START
STEP7-Micro/Win在程序编辑器窗口中为每个POU提供单独的页面。主程序总是第1页,后面是子程序或中断程序。由于每个程序在编辑器窗口中是分开的,所以编译时会在程序末尾自动添加无条件结束指令或无条件返回指令,用户程序只能使用条件结束指令和条件返回指令。
通常,具有特定功能和多种用途的程序段被视为子程序。子程序可以多次调用、嵌套(最多8层)或递归调用(自己调用)。有两种指令:子程序调用和子程序返回。子程序返回分为条件返回和无条件返回。子程序调用指令用于主程序或其他调用子程序的程序,子程序的无条件返回指令在子程序的最后一个网段。梯形图指令系统可以自动生成子程序的无条件返回指令,无需用户输入。
子程序的调用是有条件的,不调用时子程序中的指令不会被执行,因此使用子程序可以减少扫描时间,使整个程序功能清晰,易于检查和维护,减少存储空间。为了移植子程序,应避免使用全局符号和变量,如V存储区的绝对地址。
以上就是关于达风系统子程序调用全部的内容,包括:达风系统子程序调用、子程序怎么编程、汇编子程序的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)