数控车床调用子程序举例说明

数控车床调用子程序举例说明,第1张

法兰克的格式 M98

P、M98自程序调用P后最多限8位数,前4位为调用次数,后4位为子程序号P后小于4位表示调用一次子程序M99子程序结束例子主程序O0001

(主程序内容·)M98 PO0002子程序号(调用O0002号)子程序

(子程序内容)N30程序结束O0002

(子程序内容)M99子程序结束PS:

子程序是分开编在主程序后面的有程序号调用的时候调子程序号就可以了

1、首先可以通过使用调用子程序指令,调用已被定义好的子程序。

2、其次需要有效地降低程序的长度,提高程序的可读性和可维护性。

3、最后即可解决新代22ta数车调用子程序子程序不存在的问题。

您需要建一个调用的文档。

M98 调用子程序

M99 返回主程序

M98 P+调用次数+子程序号

例如M98 P0090016的意思为调用子程序O0016并执行9次

子程序里边和普通程序的编程方式一样

结尾是M99

西门子系统m99使用方法:子程序必须有一程序号码,且以M99作为子程序的结束指令。主过程调用子程序的指令格式如下,M98 PL,其中P为被调用的子程序号,L为重复调用的次数。

把程序中某些固定顺序和重复出现的程序单独抽出来,按一定格式编成一个程序供调用,这个程序就是常说的子程序,这样可以简化主程序的编制。

子程序可以被主程序调用,同时子程序也可以调用另一个子程序,这样可以简化程序的编制和节省CNC系统的内存空间。

主程序调用同一子程序执行加工,最多可执行999次,且子程序亦可再调用另一子程序执行加工,最多可调用4层子程序不同的系统其执行的次数及层次可能不同。

西门子系统m99在编制加工程序中时会遇到一组程序段在-个程序中多次出现或者在几个程序中都要使用它,这个典型的加工程序可以做成固定程序并单独加以命名这组程序段就称为子程序。

以西门子系统m99系统子程序指令,加工图2-11工件上的四个槽,分别编制主程序和子程序,函数在面向过程的语言中已经出现,是结构和类前身,是对具有相关性语句的归类和对某过程的抽象。

function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有\x0d\function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。 \x0d\ Sub 过程与Function 过程的区别: \x0d\ 1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 \x0d\ 2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 \x0d\ 3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。 \x0d\ 4. 调用 Sub 过程有两种方法: \x0d\ 以下两个语句都调用了名为 MyProc 的 Sub 过程。 \x0d\ Call MyProc (FirstArgument, SecondArgument) \x0d\ MyProc FirstArgument, SecondArgument \x0d\ 注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。\x0d\\x0d\区别就是:子过程没有返回值,函数过程有返回值。\x0d\子过程用于编写一些代码的集合,函数过程用于建立函数。我兴个例吧。\x0d\例如,我要做多处要做如下事件,我只要编写一个子过程,在其它事件下,我只要把子过程的名称写下就行了。\x0d\Private Sub ABC(A As Integer, B As Integer, C As Integer)\x0d\ A = 1\x0d\ B = 1\x0d\ C = 1\x0d\End Sub\x0d\ \x0d\Private Sub Command1_Click()\x0d\ABC '按扭一就调用了该子过程了,而不用再写子过程的代码。\x0d\End Sub\x0d\ \x0d\Private Sub Command2_Click()\x0d\ABC '按扭二就调用了该子过程了,而不用再写子过程的代码。\x0d\End Sub\x0d\ \x0d\Private Sub Command3_Click()\x0d\ABC '按扭三就调用了该子过程了,而不用再写子过程的代码。\x0d\End Sub\x0d\ \x0d\函数例子:\x0d\如我要多处运用C=A+B这个算法,我可以编写这个函数:\x0d\Private Function C (A As Integer, B As Integer) As Integer\x0d\C = A + B\x0d\End Function\x0d\ \x0d\Private Sub Command1_Click()\x0d\Text1Text = C(5, 3) '这里就运用了函数C来计算5+3了。\x0d\End Sub\x0d\ \x0d\Private Sub Command2_Click()\x0d\Text1Text = C(4, 2) '这里就运用了函数C来计算4+2了。\x0d\End Sub

发那科(FANUC)系统报警大全:

1 程序报警(P/S报警)

000 修改后须断电才能生效的参数,参数修改完毕后应该断电。

001 TH报警,外设输入的程序格式错误。

002 TV报警,外设输入的程序格式错误。

003 输入的数据超过了最大允许输入的值。参考编程部分的有关内容。

004 程序段的第一个字符不是地址,而是一个数字或“-”。

005 一个地址后面跟着的不是数字,而是另外一个地址或程序段结束符。

006 符号“-”使用错误(“-”出现在一个不允许有负值的地址后面,或连续出现了两个“-”)。

007 小数点“ ”使用错误。

009 一个字符出现在不能够使用该字符的位置。

010 指令了一个不能用的G代码。

011 一个切削进给没有被给出进给率。

014 程序中出现了同步进给指令(本机床没有该功能)。

015 企图使四个轴同时运动。

020 圆弧插补中,起始点和终点到圆心的距离的差大于876号参数指定的数值。

021 圆弧插补中,指令了不在圆弧插补平面内的轴的运动。

029 H指定的偏置号中的刀具补偿值太大。

030 使用刀具长度补偿或半径补偿时,H指定的刀具补偿号中的刀具补偿值太大。

033 编程了一个刀具半径补偿中不能出现的交点。

034 圆弧插补出现在刀具半径补偿的起始或取消的程序段。

037 企图在刀具半径补偿模态下使用G17、G18或G19改变平面选择。

038 由于在刀具半径补偿模态下,圆弧的起点或终点和圆心重合,因此将产生过切削的情况。

041 刀具半径补偿时将产生过切削的情况。

043 指令了一个无效的T代码。

044 固定循环模态下使用G27、G28或G30指令。

046 G30指令中P地址被赋与了一个无效的值(对于本机床只能是2)。

051 自动切角或自动圆角程序段后出现了不可能实现的运动。

052 自动切角或自动圆角程序段后的程序段不是G01指令。

053 自动切角或自动圆角程序段中,符号“,”后面的地址不是C或R。

055 自动切角或自动圆角程序段中,运动距离小于C或R的值。

060 在顺序号搜索时,指令的顺序号没有找到。

070 程序存储器满。

071 被搜索的地址没有找到,或程序搜索时,没有找到指定的程序号。

072 程序存储器中程序的数量满。

073 输入新程序时企图使用已经存在的程序号。

074 程序号不是1~9999之间的整数。

076 子程序调用指令M98中没有地址P。

077 子程序嵌套超过三重。

078 M98或M99中指令的程序号或顺序号不存在。

085 由外设输入程序时,输入的格式或波特率不正确。

086 使用读带机/穿孔机接口进行程序输入时,外设的准备信号被关断。

087 使用读带机/穿孔机接口进行程序输入时,虽然指定了读入停止, 但读过了10个字符后,输入不能停止。

090 由于距离参考点太近或速度太低而不能正常执行恢复参考点的 *** 作。

091 自动运转暂停时(有剩余移动量或执行辅助功能时)进行了手动返回参考点。

092 G27指令中,指令位置到达后发现不是参考点。

100 PWE=1,提示参数修改完毕后将PWE置零,并按RESET键。

101 在编辑或输入程序过程中,NC刷新存储器内容时电源被关断。当该报警出现时,应将PWE置1,关断电源,再次打开电源时按住DELETE 键以清除存储器中的内容。

131 PMC报警信息超过5条。

179 597号参数设置的可控轴数超出了最大值。

224 第一次返回参考点前企图执行可编程的轴运动指令。

2 伺服报警

400 伺服放大器或电机过载。

401 速度控制器准备号信号(VRDY)被关断。

404 VRDY信号没有被关断,但位置控制器准备好信号(PRDY)被关 断。正常情况下,VRDY和PRDY信号应同时存在。

405 位置控制系统错误,由于NC或伺服系统的问题使返回参考点的 *** 作失败。重新进行返回参考点的 *** 作。

410 X轴停止时,位置误差超出设定值。

411 X轴运动时,位置误差超出设定值。

413 X轴误差寄存器中的数据超出极限值,或D/A转换器接受的速度指 令超出极限值(可能是参数设置的错误)。

414 X轴数字伺服系统错误,检查720号诊断参数并参考伺服系统手册。

415 X轴指令速度超出511875检测单位/秒,检查参数CMR。

416 X轴编码器故障。

417 X轴电机参数错误,检查8120、8122、8123、8124号参数。

420 Y轴停止时,位置误差超出设定值。

421 Y轴运动时,位置误差超出设定值。

423 Y轴误差寄存器中的数据超出极限值,或D/A转换器接受的速度指 令超出极限值(可能是参数设置的错误)。

424 Y轴数字伺服系统错误,检查721号诊断参数并参考伺服系统手册。

425 Y轴指令速度超出511875检测单位/秒,检查参数CMR。

426 Y轴编码器故障。

427 Y轴电机参数错误,检查8220、8222、8223、8224号参数。

430 Z轴停止时,位置误差超出设定值。

431 Z轴运动时,位置误差超出设定值。

433 Z轴误差寄存器中的数据超出极限值,或D/A转换器接受的速度指 令超出极限值(可能是参数设置的错误)。

434 Z轴数字伺服系统错误,检查722号诊断参数并参考伺服系统手册。

435 Z轴指令速度超出511875检测单位/秒,检查参数CMR。

436 Z轴编码器故障。

437 Z轴电机参数错误,检查8320、8322、8323、8324号参数。

3 超程报警

510 X轴正向软极限超程。

511 X轴负向软极限超程。

520 Y轴正向软极限超程。

521 Y轴负向软极限超程。

530 Z轴正向软极限超程。

531 Z轴负向软极限超程。

4 过热报警及系统报警

700 NC主印刷线路板过热报警。

704 主轴过热报警。

以上就是关于数控车床调用子程序举例说明全部的内容,包括:数控车床调用子程序举例说明、新代22ta数车调用子程序子程序不存在、新代系统调用子程序报警说没有结束符号是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9794041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存