相较于Fortran语言,C++语言的一大优势是含有丰富的外部库,可以满足各种计算需求,能大大提高开发子程序的效率。第1章已经简单介绍了使用外部库的好处,并通过一个简单的例子说明了使用外部库可以提高代码的可读性。本节以数值计算库armadillo为例来介绍如何在C++语言中调用外部库。如果没有进行这一步骤,则在运行中会弹出报错消息框并退出,而且弹出的是BLAS库的消息框。不过,在armadillo库中使用一维数组对矩阵进行初始化时是列优先的。......
2023-11-03
1.子程序
加工程序分为主程序和子程序两种。主程序是零件加工程序的主体部分,它是一个完整的零件加工程序,不同的加工零件都有唯一的主程序。为了简化编程,可将程序中的重复动作编写成独立的程序,这些程序可通过主程序指令进行调用,故称为子程序。
子程序的组成与结构和主程序无本质区别,但在使用上具有以下特点:
1)子程序可被任何主程序或其他子程序调用,且可多次循环执行。
2)主程序所调用的子程序,也可再调用其他子程序,这一功能称为“子程序嵌套”。
3)子程序执行结束后,可自动返回到调用的程序中。
4)子程序一般只能实现重复加工动作,故通常不能作为独立的加工程序使用。
2.子程序调用
在FS-0iD中,子程序号也由O后缀数字组成,但其结束标记使用M99,以便实现自动返回功能。子程序调用可通过辅助机能M98代码进行,在M98指令中,子程序号由地址P规定。
FS-0iD的子程序调用可以使用以下两种格式:
格式1:M98 P□□□□;
其作用是调用子程序O□□□□一次。如“N15 M98 P0100;”为调用子程序O0100、并执行一次,子程序号的前0可省略,即上述指令也可以写成“N15 M98 P100;”。指令“M98P□□□□;”的动作如下。
格式2:M98 P××××□□□□;
其作用是调用子程序O□□□□多次,地址P后缀的数字前四位××××代表调用次数,后四位□□□□代表子程序号,调用次数的前0可以省略,但子程序号□□□□的前0不能省略。如“N15 M98 P30100;”为调用子程序O0100三次,而“N15 M98 P3100;”则表示调用子程序O3100一次。指令“N15 M98 P30100;”的动作如下:
在FS-0iD上,还可通过特定的M代码、T代码直接调用子程序,这种子程序多用于自动换刀、工作台交换等特殊动作,使用时应参照机床使用说明书进行。
3.M99的使用
子程序返回指令M99可使子程序在执行完成后,自动返回到主程序的调用段,但也可根据需要选择如下特殊编程方式。
1)返回到指定程序段:如子程序使用“M99 P□□□□;”结束,则在子程序执行完成后,将返回到主程序的N□□□□程序段,其动作如下:
上述程序中,子程序O0100一旦执行完成,将直接返回到主程序的N100段,程序段N50~N100将被跳过。
2)主程序使用M99结束:主程序结束也可使用M99指令,如果在程序的最后用M99代替M30或M02,主程序将进入无限循环;如在程序中间使用M99 P□□□□指令,主程序将在程序段N□□□□到M99段之间无限循环。两种情况的程序执行过程如下:
为避免程序陷入无限循环,主程序上的M99指令一般可结合跳过程序段“/”使用,在上述程序中,当程序段跳过功能无效时,主程序将在N50~N200间循环;当程序段跳过功能生效时,主程序正常结束。
有关FANUC-0iD编程与操作的文章
相较于Fortran语言,C++语言的一大优势是含有丰富的外部库,可以满足各种计算需求,能大大提高开发子程序的效率。第1章已经简单介绍了使用外部库的好处,并通过一个简单的例子说明了使用外部库可以提高代码的可读性。本节以数值计算库armadillo为例来介绍如何在C++语言中调用外部库。如果没有进行这一步骤,则在运行中会弹出报错消息框并退出,而且弹出的是BLAS库的消息框。不过,在armadillo库中使用一维数组对矩阵进行初始化时是列优先的。......
2023-11-03
ATPCS规定了一些子程序间调用的基本规则,这些规则包括子程序调用过程中寄存器的使用规则,数据栈的使用规则,参数的传递规则。下面详细介绍子程序间调用的基本规则。寄存器SP在进入子程序时的值和退出子程序时的值必须相等。......
2023-11-19
子程序调用与返回指令共有4条。调用指令与无条件转移的区别在于,调用指令通过自动方式的堆栈操作对断点进行了保护,待子程序返回时可以调用子程序指令的下一条指令处。2.返回指令返回指令共有两条:子程序执行完后,程序应返回到原调用指令的下一指令处继续执行。返回指令有两条,即子程序返回指令RET和中断服务子程序返回指令RETI。......
2023-11-17
智能功能模块软元件的表示方法见表9-2。图9-6所示为当X0接通时从智能功能模块的缓冲存储器地址19中读出数据至数据寄存器D10中的程序。初始设定画面设定的信息在PLC启动时被写入智能功能模块,因此不再需要编写初始设定数据的顺序控制程序。......
2023-06-16
命令的最高位是标志位,其状态固定为1,命令格式如图8-32所示。图8-328255工作方式命令格式图对工作方式命令有如下两点说明:1)A口有3种工作方式,而B口只有两种工作方式。其中D7为该命令的标志,其状态固定为0。图8-338255的位置位/复位命令格式图3.初始化程序8255初始化的内容就是向控制字寄存器写入命令。例如,若对8255各口作如下设置:A口方式0输入,B口方式1输出,C口高位部分为输出、低位部分为输入。......
2023-11-17
下面以图8-95所示的多管标注结果为例,介绍调用多管标注命令的方法。01 按Ctrl+O组合键,打开配套光盘提供的“第8章/8.5.7多管标注.dwg”素材文件,结果如图8-96所示。在执行命令的过程中,当命令行提示“进行管径标注[标高标注/管径、标高同时标注]<管径标注>”时;输入F,可以标注所选管线的管径和标高,如图8-105所示。......
2023-08-22
在编程时,应首先确定工件坐标系,工件坐标系的原点也称为工件原点。图4-6 数控车床坐标系图4-7 工件坐标系2.对刀问题在数控车床上加工时,工件坐标系确定好后,还需确定刀尖点在工件坐标系中的位置,即对刀问题。图4-8 数控车床的对刀3.数控车削常用的各种指令不同的数控车床,其编程功能指令基本相同,但也有个别功能指令的定义有所不同,这里以FANUC系统为例介绍数控车床的基本编程功能指令。......
2023-06-26
1.起点的输入选择了创建新程序软功能键〖NEW〗后,LCD将自动显示轮廓选择页面,其中第一页为起点编程页面,在此页面,可用对话方式输入如下轮廓起点数据。......
2023-06-25
相关推荐