您现在所在的是:

西门子SIEMENS

回帖:0个,阅读:1019 [上一页] [1] [下一页]
* 帖子主题:

CL800语言@指令详解

1027
lranbing
文章数:16
年度积分:50
历史总积分:1027
注册时间:2006/8/7
发站内信
发表于:2011/3/22 19:38:04
#0楼

CL800语言@指令详解
在880(数控龙门铣)/840C(MCMQ250镗床)中使用过的@指令:
说明:
以下部分是按照840C编程手册上的目录顺序编号,本资料中所涉及到的指令为在880(数控龙门铣)/840C(MCMQ250镗床)中所有主程序和子程序中使用而操作人员可能用到的全部指令。
参见:
SINUMERIK 840C   Software Version 2, 3, 4, 5 and 6
Programming Guide  07.97 Edition
14. Programming of Cycles
下面章节为手册中部分@代码:
2.1目标代码
三个数字@代码是目标代码,具有下列结构:
@ 1   2   3      三个数字@代码
最后数字@用于定义特殊功能
中间数字用于划分主组别为子组别
第一位数字用于分类主组别
2.1.1.主组别
下列功能赋予@代码的八个组别:
@0…程序结构一般指令
@1…程序分支
@2…数据传输,一般
@3…数据传输,系统内存传输给R参数
@4…数据传输,R参数传输给系统内存
@5…文件处理,一般(在准备中)
@6…算术和逻辑功能
@7…NC功能特定
@f  工件程序处理
2.1.2目标代码后操作数
为了其功能@码后需加附加信息。下列字母定义这些操作参数:
K…常数
R…R参数(寄存器)
P…指示字
常数K定义的值在程序里被固定,不能修改,(值是直接规定)
指示字涉及包含被应用功能参数地址的参数
举例:带操作数@代码
a) @201  R13  P37
指示字,具有源寄存器地址
目标寄存器(参数)
“数据传输,一般”功能@代码
解释:把源寄存器中内容(即在P37寄存器包含地址)寄存到目标寄存器R13中去
b) @201  P16  P37
指示字,具有源寄存器地址
指示字,具有目标寄存器地址
“数据传输,一般”功能@代码
解释:把源寄存器中的内容(即在寄存器R37包含地址)寄存到目标寄存器,该地址能在寄存器R16中被提供。
2.1.3符号
@代码要求严密符号,在下面几页各种指令表格中,一系列符号,在每个括号里,跟随在三个数字@代码之后,符号含义是:
<CONST>  数值直接规定(常数K)
<R-Par>  间接规定数值(R参数)
<Var>    间接规定数值(R参数或指示字)
<Value>  混合规定数值(常数,R参数或指示字)
2.2程序结构一般指令
主组别0组成如下:
@ 0 X Y  三个数字@代码
0—存储几个R参数
1—存储一个参数区域
2—取回几个R参数
3—取回一个参数区域
4—存储R参数
0—主组别0
主组别0/子组别:存贮R参数
@040<常数><R参数1>…<R参数n>
用<常数>规定属于此功能的其后R参数号,R参数内容被存储传输到R300堆栈寄存器开始。
@041<R参数1><R参数2>
从<R参数1 >到<R参数2>中R参数内容被存贮传输到堆栈R300寄存器开头。
@042<常数><R参数n>…<R参数1>
此指令从堆栈寄存器中取出存贮值,并把它们存贮到规定的R参数中去,R参数必须以@040反过来顺序给定。
@043<R参数1><R参数2>
在@041中存贮的值被送回到R参数中去。
当在带R参数子程序工作时,该参数亦可在最高层应用。这些指令在主组别0/子组别4被使用。
为了存贮数值和把数值0赋予规定R参数,一个进栈指令(@040或@041)必须写在子程序开始。
在子程序结束用出栈指令(@042或@043)重新建立原始状态。
举例在程序中指令格式:
L100                     调用子程序
@041  R61  R69  LF       从R61~R69的R参数内容传输到堆栈寄存器中并指定值为“0”
@043  R61  R69  LF     被存贮值送回到R61-R69中去
M17                     子程序结束
2.3程序分支
主组别1组成如下:
@ 1 X Y  三个数字@代码
0—无比较操作者
1--=等于
2--<>不等于
3->大于
4-->=大于或等于
5--<小于
6--<=小于或等于
0—无条件跳越
1—条件分支
2—IF语句
3—当型指令
4—重复循环
5—FOR TO 循环
6—FOR DOWN TO 循环
主组别1
在编程@100跳越功能程序段中必须遵循下列几点:
•在同一程序中辅助功能不能执行
•在跳越指令前的参数计算和配置被执行,其后跳越指令不能执行。
在“执行来自外部源”功能,在工件程序中只可以向前跳越
主组别1/子组别0:绝对跳越
@100<常数>或@100<R参数>
用常数或R参数(指示字不允许)定义跳越目标和跳越方向,正的段号表明跳越程序段向着程序结束方向,如果段号是负的,被寻找程序段朝程序段开始方向。如果符号表错方向,即使包含在程序中控制器找不到,报警3012“程序段不存在”。
例:
@100  K375    朝程序结束方向无条件跳到N375句
@100  K-150    朝开始方向无条件跳到N150句
主组别1/子组别1:情况转移
@111<变量><数值1><常数1>
<数值2><常数2>
…      …
<数值n><常数n>
@100  K…
<变量>依次与<数值>比较,如果比较已满足,程序分支到<常数>代表的段号
如果比较不满足,程序处理继续向下进行。
情况分支例子:
N475 @111  R11  K1  K480       R11=1
K2  K485       R11=2
K3  K490       R11=3
@100  K900
N480…
@100  K495
N485…
@100 K495
N490…
N495…
跳到N900程序结束
例子解释:
上面数字说明在循环程序中情况分支的应用—转换坐标轴,取决于无论是编程者定义占轴还中用R11参数为1,2,3定义加工平台,程序分支到N480(R11=1),N485(R11=2),N490(R11=3)。
如果R11不包含此三个值,无疑出现参数化出错,程序分支到N900程序结束。
主组别1/子组别2:如果. …则…否则分支
如果. …则…否则分支状态
如果条件已满足,则执行包含下一个程序段指令,否则分支到由最后常数所指定的程序段。
关于段号前后的符号为搜索方向。
@121<变量><数值><常数>
如果<变量>定义的数等于<数值>,则程序继续执行下一个程序段,否则跳到<常数>规定的程序段。
例:@121  R13  R27  K375  如果R13=R27程序继续,否则附条件跳到朝程序结束方向N375。
@122<变量><数值><常数>
如果<变量>定义的数值不等于<数值>定义的值,则程序继续运行到下一个程序段,否则跳越到<常数>规定的程序段。
@123<变量><数值><常数>
如果<变量>定义的数值大于<数值>定义的值,则程序继续运行至下一个程序段,否则跳越到<常数>规定的程序段。
例:@123  R13  R27  K-150  如果R13>R27,程序继续,否则附条例跳越至程序段N150句。
@124<变量><数值><常数>
如<变量>定义的数值大于或等于<数值>定义的值,则程序继续运行到下一个程序段,否则跳越到<常数>规定的程序段。
@125<变量><数值><常数>
如<变量>定义的数值小于<数值>定义的值,则程序继续运行至下一个程序段,否则跳越到<常数>规定的程序段。
举例:“如果…则…否则”分支执行程序
@126 <变量><数值><常数>
如<变量>定义值小于或等于<数值>定义值,则程序继续运行至下一个程序段,否则跳越到<常数>规定的程序段。
前页举例说明:
前页举例叙述的循环程序的章节说明使用“如果…则…否则”分支如何实话程序分支。
如在N225程序段中寄存器R58内容小于或等于寄存器R77的内容,则执行下一行给定的指令。
寄存器R88装着7和寄存器R95装着12.45。然后,如果R58大于R77,则程序分支到N230程序段,在N230程序段前一行中,即是无条件跳到N250程序段。
在N225程序段中使用“如果…则…否则”分支,其意义是或是执行N225程序段或是执行N230-N250程序段。
下半部例子中,不用无条件跳越以便在N475程序中指令往下或跳越,为此用@124能跳越程序部分。
主组别1/子组别3:当型循环
@13X <变量><数值><常数>
当型循环是一个重复指令,具有在循环开始重复条件扫描,比较操作数以“如果…则…否则”分支表示那些指令,只要比较满足,下一个程序段被处理。
在程序段末编入@100<常数>,回复扫描,如果比较不满足,程序跳越到<常数>规定的程序段:这程序段通常固定在无条件跳越程序段之后。
例  N300 @131  R13  375       R13=R27循环条件满足,提供循环继续

@100  K-300
N375…
N300 @133  R13  R27  K375     R13>R27循环条件满足,提供循环继续

@100  K-300
N375
主组别1/子组别4:重复循环
@14Y<变量><数值><常数>
重复循环是一个重复指令,具有在循环结束重复条件扫描,比较操作数“如果…则…否则”分支表示那些指令。只要条件不满足,回跳到<常数>定义程序段。如果条件满足,退出循环程序继续。
例:
N400

@141  R13  R27  K-400   重复下列指令直到条件 R13=R27满足
N400
@143  R13  R27  K-400  重复下列指令直到条件R13>R27满足
主组别1/子组别5:FOR  TO 循环
@151<变量><数值><常数>
FOR TO循环是一种以<变量>定义R参数内容的每计一次数作增量的计数循环,在循环开始扫描“等于”,只要不等于循环被处理,否则跳越到<常数>定义的程序段,循环末的<变量>必须是增量@620和无条件跳到循环开始。
例:
R5=1  R51=5  R52=10          为R5,R51,R52赋值
@201  R50   R51              把数据从R51传输到R50
N500  @151  R50  R52  K505   FOR TO 循环开始

@620  R50
@100  K-500
N505
主组别1/子组别6:FOR DOWN TO循环
@161<变量><数值><常数>
FOR DOWN TO循环是一种以<变量>定义R参数内容每计一次数作递减的计数循环。在循环开始扫描“等于”,只要不等于,循环被处理,否则跳到<常数>定义的程序段。循环末的<变量>必须是递减的@621和无投机倒把跳到循环开始。
例:
R5=10  R51=5  R52=1          为R5,R51,R52赋值
@201 R50 R51                 把数据从R51传输到R50
N600  @161  R50  R52  K605   FOR DOWN TO循环开始

@621  R50
@100   K-600  
N605
2.4数据传输:系统内存值送入R参数
主组别3组成如下:
@ 3 X Y   三个数字@代码
特殊功能
0-机床数据
1-设定数据
2-刀具偏置
3-零点偏置
4-编程设定点值
5-实际值
6-程序数据
7-程序数据
3-主组别3
在主组别3中所有的@指令第一个符号为<变量>变量可以直接定义或借助于指示字R参数定义,该参数里被装入地址化系统单元的内容。
主组别3/子组别0:把机床数据传输到R参数中
@300 <变量><数值1>
以<数值1>定义的NC机床数据地址
地址范围:0-4999
例:@300  R50  K2240   第一软件限位开关值给予R50,这是第一轴的正方向限位值。
@301<变量><数值1>
以<数值1>定义的NC机床数据位地址
地址范围:5000-6999
@302<变量><数值1><数值2>
以<数值1>定义的NC机床数据位的字节地址,地址范围:5000-6999, <数值2>给出位地址(0~7)。
@303<变量><数值1><数值2>
循环机床数据值被读入<变量>定义R参数中
<数值1>通道号,0,自身通道
<数值2>字地址
@304<变量><数值1><数值2>
循环机床数据字节被读入<变量>定义R参数中
<数值1>通道号,0:自身通道
<数值2>字节地址
@305<变量><数值1><数值2><数值3>
循环机床数据位被读入<变量>参数中
<数值1>通道号,0:自身通道
<数值2>字节地址
<数值3>位地址
@306<变量><数值1>
<数值1>定义PLC机床数据地址
地址范围:0-5999
@307<变量><数值1>
<数值1>定义PLC机床数据字节地址
地址范围:6000-8999
@308<变量><数值1><数值2>
<数值1>定义PLC机床数据字节地址
地址范围:6000-8999,<数值2>定义位地址(0-7)
主组别3/子组别1:把设定数据传输到R参数中去
@310<变量><数值1>
<数值1>定义设定数据地址
地址范围:0-4999
@311<变量><数值1>
<数值1>定义设定数据字节地址
地址范围:5000-9999
@312<变量><数值1><数值2>
<数值1>定义设定数据位字节地址
地址范围:5000-9999,位地址(0-70在<数值2>中
@313<变量><数值1><数值2>
循环设定数据被读入<变量>参数中
<数值1>通道号,0:自身通道
<数值2>字地址
@314<变量><数值1><数值2>
循环设定数据位被读入<变量>参数中
<数值1>通道号,0:自身通道
<数值2>字节地址
@315<变量><数值1><数值2><数值3>
循环设定数据位被读入<变量>参数中
<数值1>通道号,0:自身通道
<数值2>字节地址
<数值3>位地址
主组别3/子组别2:把刀偏传输给R参数中去
@320<变量><数值1><数值2><数值3>
用些指令种种偏置值能被从刀具偏置存贮器中读入<变量>参里。
<数值1>~<数值3>规定如下:
<数值1> TO范围    范围1-8
<数值2>刀偏号D   范围1-204/409
<数值3>刀偏存贮器号   范围0-9/15
例:@320  R67  K1  K14  K2   把TO范围1中刀偏号D14的P2偏置值读入R67中去
主组别3/子组别3:把零偏传输入R参数中去
@330<变量><数值1><数值2><数值3>
<数值1>~<数值3>规定如下:
<数值1>设定零偏组别 (G54=1~G57=4)
<数值2>坐标轴号
<数值3>粗或精值(0或1)
例:@330  R81  K1  K2  K0  第二坐标轴G54粗值读入参数R81中
@331<变量><数值1><数值2>
<数值1>编程附加零偏组别(G58=1,G59=2)
<数值2>坐标轴号
@332<变量><数值2>
在<数值2>里定义从PLC输入外部零偏坐标轴号
@333<变量><数值2>
在<数值2>里定义DRF偏置坐标轴号
@336<变量><数值2>
在<数值2>里定义附加偏置的坐标轴号,其包括:
•被选择可设定零偏
•可编程附加零偏
•外部零偏
•被选择刀偏
预置和DRF偏置不包括在内
@337<变量><数值1><数值2><数值3>
<数值1>~<数值3>规定如下:
<数值1>通道号,(0,自身通道)
<数值2>可设定组别坐标旋转(G54=1~G57=4)
<数值3>角度数(目前为1)
设定坐标旋转的旋转角度被读入<变量>参数中去
@338<变量><数值1><数值2><数值3>
可编程坐标旋转之旋转角度被读入<变量>参数中
<数值1>通道号(0=自身通道)
<数值2>可编程组别附加坐标旋转(G58=1,G59=2)
<数值3>角度数(目前为1)
主组别3/子组别4:把编程设定值读入R参数中
@345<变量><数值1><数值2>
用此指令,以G96编程切削速度被传输给R参数,<数值1>为通道号,(0=自身通道)<数值2>被赋值为0。
主组别3/子组别6:把实际值读入R参数
@360<变量><数值2>
以<数值2>定义的坐标轴的工件有关现行值被传输到R参数中去。
例:@360  R54  K2   读出涉及工件零点Y轴集团现行值输入寄存器R54中去
@361<变量><数值2>
以<数值2>定义坐标轴,且涉及机床现行值被传输到R参数中去。
对于旋转轴,结果被存贮于从R参数<变量>(Rn)向前两个参数中,取决于一个NC机床数据位。
存入下列参数:
Rn=在一转之内的定位。
Rn+1=转数
@362<变量><数值2>
涉及机床实际值的定义在<数值2>中的那个轴将被传输到R参数中去。
对于旋转轴,结果被存贮在从R参数<变量>(Rn)向前两个参数,取决于一个NC机床数据位。
Rn=在一转之内的定位
Rn+1=转数
取决于NC机床数据位,读入的坐标
轴定位作为半径或直径值。
@363<变量><数值2>
以<数值2>定义主轴,且为其现行位置传输到R参数中。
@364<变量><数值2>
以<数值2>定义主轴实际旋转速度值传输到R参数中。
@367<变量><数值1>
R参数是以<变量>定义且它来自用G16选择平台坐标轴号,螺纹导程号存贮在第5个R参数中,必须以<数值1>定义通道号(0=自身通道)
如刀补偏程在G16XYZ负方向上,用@367值128被附加在Z轴上,为了识别负号
@36a<变量><数值1>
用此指令,被选择的刀偏D号被传输到R参数中去,通道号被规定在<数值1>中(0=自身通道)
说明:@代码中a代表十六进制“A”
@36b<变量><数值1><数值3>
正在处理的工件程序段G功能从主存贮器中读入<变量>参数,<数值1>定义于通道号,如0定义则读入本通道。<数值3>定义当前G功能所从属内部G功能组别,详见第13章内部G功能划分一表
例子:@36b  R50  K0  K0  本通道内第一组别G功能GO被读入R50中。
在@36a和@36b之前,必须编程@714独立程序段,为了能从另一通道读入值。
主组别3/子组 7:把程序数据读入R参数
@371<变量><数值1><数值3>
用此指令,特殊位被读出而为了各种生效信号的获得相关通道位:位0=段搜索生效,位1=试选转速率生效,位2=模拟生效
通道号必须输入<数值1>中,(0自身通道),<数值3>包括位号。
不相关通道位:位0=测量输入1生效,位1=测量输入2生效
99必须被输入于<数值1:<数值3>包含位号
例:@371 R81 K0 K1  在自身通道中“试运行速率”特殊位的状态被读入参数R81
@372<变量>
当前通道号读入<变量>参数中
主组别3/子组别8:把PLC位信号读入R参数
@380<变量><数值1><数值2><数值3>
把PLC中一个输入位状态读入由<变量>定义的参数中,<数值1>定义PLC号,<数值2>定义字节地址,<数值2>定义字节地址,<数值3>定义位地址。
例:@380  R50  K1  K2  K0  把№1 PLC中№2字节中,0位输入状态读入R50中。
@381<变量><数值1><数值2><数值3>
把PLC中一个输出状态读入由<变量>定义的参数中,<数值1>定义PLC号,<数值2>定义字地址,<数值3>定义位地址。
@382<变量><数值1><数值2><数值3>
把PLC中一个标志位状态读入由<变量>定义的参数中,<数值1>定义PLC号,<数值2>定义字节地址,<数值3>定义位地址。
@383<变量><数值1><数值2><数值3><数值4>
  一个PLC数据字位的状态读入<变量>定义参数中,<数值1>定义PLC号,<数值2>定义DB或DX号,<数值3>定义数据字号,<数值4>定义位地址。
例:@383  R51  K1  K2   K4  K2 把定义PLC数据字位状态读入R51
主组别3/子组别9,把PLC字节信号读入R参数
@390<变量><数值1><数值2>
PLC中一个输入字节被读入定义在<变量>参数中,<数值1>定义PLC号,<数值2>定义字节地址。
例:@390  R52  K1  K2  把PLC输入字节状态读入R52。
@391<变量><数值1><数值2>
PLC中一个输出字节状态被读入定义在<变量>参数中,<数值1>定义PLC号,<数值2>定义字节地址。
@392<变量><数值1><数值2>
PLC一个外围字节状态读入<变量>参数中,<数值1>定义PLC号,<数值2>定义字节地址。
@393<变量><数值1><数值2>
PLC一个标志字节状态读入<变量>参数中,<数值1>定义PLC号,<数字2>定义字节地址。
@394<变量><数值1><数值2><数值3>
PLC数据字(左)状态读入<变量>参数中,PLC号被定义在<数值1>中,<数值2>定义DB或DX号,<数值3>定义数据字号。
例:@394  R53  K1  K2  K4  定义PLC输入字节状态读入R53
@395<变量><数值1><数值2><数值3>
PLC数据字(右)状态读入<变量>参数中,PLC号被定义在<数值1>中,<数值2>定义DB或DX号,<数值3>定义数据字号。
主组别3/子组别a:把PLC的信号字读入R参数
@3a0<变量><数值1><数值2><数值3>
PLC中一个输入字状态被读入<变量>参数中,<数值1>定义PLC号,<数值2>定义字地址,<数值3>标志范围规定怎样读入PLC信号字状态。
<数值3>标识范围定义:
<数值3>定点<数值3> BCD(二进制)
0不带小数点数值100不带小数点数值
1带小数点数值101带小数点数值
2小数点后1位102小数点后1位
3小数点后2位103小数点后2位
4小数点后3位104小数点后3位
5小数点后4位105小数点后4位
6小数点后5位106小数点后5位
7小数点后6位107小数点后6位
8小数点后7位108小数点后7位
9小数点后8位109小数点后8位
例:@3a0  R50  K1  K3  K100  PLC定义输入字状态以BCD格式读入R50中
@3a1<变量><数值1><数值2><数值3>
PLC中一个输出字状态读入<变量>参数中,<数值1>定义PLC号,<数值2>定义字地址,<数值3>标志范围规定怎样读入PLC信号字状态。
@3a2<变量><数值1><数值2><数值3>
PLC中一个外围字的状态被读入<变量>参数中,<数值1>定义PLC号<数值2>定义字地址,<数值3>标志范围规定怎样读入PLC信号字状态。
<数值3>定义:见@3a0
如用@3a2寻址一个PLC中不存在的外围 字,PLC处于停止状态,必须再起动之。
@3a3<变量><数值1><数值2><数值3>
PLC中一个标志字状态被读入<变量>参数中,<数值1>定义PLC号,<数值2>定义字地址,<数值3>标识范围规定怎样读入PLC信号字状态。
<数值3>定义,见@3a0
@3a4<变量><数值1><数值2>
PLC中计时器状态被读入<变量>参数中,被读入值为小数点后两位,单位为秒,<数值1>定义PLC号,<数值2>定义计时器地址。
例:@3a4  R80  K1  K2  定义PLC计时器状态读入R80
@3a5<变量><数值1><数值2>
PLC中计数状态被读入<变量>参数中。<数值1>定义PLC号,<数值2>定义计数器地址。
例:@3a5  R81  K1  K2  定义PLC计数器状态读入R81
主组别3/子组别b:把PLC信号数据字读入R参数中。
@3b0<变量><数值1><数值2><数值3><数值4><数值5>
PLC中一个数据字或双字定点数值被读入<变量>参数中,<数值1>定义PLC号,<数值2>定义DB或DX号,<数值3>定义数据字号,<数值4>定义
<数值5>标识范围定义:
<数值5>数据字或串行双字<数值5>并列双字
0不带小数点数值10不带小数点数值
1带小数点数值11带小数点数值
2小数点后1位12小数点后1位
3小数点后2位13小数点后2位
4小数点后3位14小数点后3位
5小数点后4位15小数点后4位
6小数点后5位16小数点后5位
7小数点后6位17小数点后6位
8小数点后7位18小数点后7位
9小数点后8位19小数点后8位
例:@3b0  Rb0=(1,3,2,2,10)  定义双字定点值被读入Rb0
@3b1<变量><数值1><数值2><数值3><数值4><数值5>
把PLC中定义数据字的二进制判值读入<变量>定义的参数中,<数值1>定义PLC号,<数值2>定义DB或DX号,<数值3>定义数据字数,<数值4。定义数据字号和<数值5>定义标识范围。
取决于定义数据字号<数值4>,读入操作既是串行或是并行。
<数值4>BCD(二进制)
1一个数据字读入,<数值5>无意义
2双数据字以并行读入,<数值5>无意义
3三数据字以串行读入,<数值5>规定如何读入二进制值
<数值5>标识范围定义:
<数值5> BCD二进制判
100不带小数点值
101带小数点值
102小数点后1位
103小数点后2位
104小数点后3位
105小数点后4位
106小数点后5位
107小数点后6位
108小数点后7位
109小数点后8位
例:@3b1  R51  K1  K2  K10  K100  把定义双字的二进制数读入R51。
@3b2<变量><数值1><数值2><数值3>
定义PLC中数据字浮点值被读入<变量>定义参数中。两个数据总是逐次被读入,<数值1>定义PLC号,<数值2>定义DB或DX号和<数值3>定义数据字号。
@3b2  R70  K71  K72  K70  把定义双字的浮点读入R70
主组别3/子组别C:把报警读入R参数
@3C0<变量>
用此指令,控制器导致NC报警被读入<变量>中。
例:@3c0  R50  出现NC报警装从R50向前。
主组别3/子组别d:把报警指示读入R参数
@3d0<变量>
用此指令和,输入NC报警号读入<变量>中
例:@3d0  R51    出现NC报警号读入R51中
2.5  数据传输:把R参数内容送入系统中
主组别4组成如下:
@ 4 X  Y  三个数字@代表@代码:
特殊功能
0-机床数据
1-设定数据
2-刀具偏置
3-零点偏置
4-程序设定值
e:系统单元
主组别
在此组别中所有@指令有<数值>作为最后符号,它定义被传输的值。该值可直接用常数或间接借助于R参数或指示字。
注释:使用子组别0,1,2和3前必须编程@714
主组别4/子组别0:把R参数内容送入机床数据
@400<数值1><数值>
<数值1>定义NC机床数据地址,地址范围:0-999
例:@400  K2241  R90   把R90中内容送入第二坐标轴正向第一软件限位机床数据中
@401<数值1><数值>
<数值1>定义NC机床数据的字节地址,地址范围:5000-6999
@402<数值1><数值2><数值>
<数值1>定义NC机床数据位的字节地址同,地址范围:5000-6999,<数值2>给出位地址(0-7)
@403<数值1><数值2><数值>
<数值2>定义循环机床数据地址
<数值1>通道号,0=自身通道,<数值2>字地址
@404<数值1><数值2><数值>
<数值1>通道号,0=自身通道;<数值2>字节地址。
@405<数值1><数值2><数值3><数值>
<数值3>定义循环机床数据位地址
<数值1>通道号,0=自身通道;<数值2>字节地址
<数值3>位地址。
@406<数值1><数值>
<数值1>定义PLC机床数据字节地址,地址范围:0-5999
@407<数值1><数值>
<数值1>定义PLC机床数据字节地址;地址范围:6000-8999
@408<数值1><数值>
<数值1>定义PLC机床数据字节位地址:地址范围:6000-8999,位地址范围(0-7)由<数值2>给出。
主组别4/子组别1:把R参数内容送入设定数据
@410<数值1><数值>
<数值1>定义设定数据地址。
例:@410  R80   第二坐标轴的最大加工区域限位送入R80中去
@411<数值1><数值>
<数值1>定义设定数据字节的地址,地址范围:5000-9999
@412<数值1><数值2><数值>
<数值1>定义设定数据位字节地址:
地址范围:5000-9999,<数值2>给出位地址(0-7)
@413<数值1><数值2><数值>
<数值2>定义循环设定数据地址
<数值1>定义通道号,0自身通道;<数值2>字地址
@414<数值1><数值2><数值>
<数值2>定义循环设定数据字节地址
<数值1>通道号,0:自身通道,<数值2>字节地址
@415<数值1><数值2><数值3><数值>
<数值3>定义循环设定数据位字节地址;
<数值1>通道号,0:自身通道
<数值2>字节地址
<数值3>位地址
主组别4/子组别2:把R参数中值写入刀偏中
@420<数值1><数值2><数值3><数值>
数值被输入到刀偏存贮器里,存贮器中原来值被重写,符号<数值1>~<数值3>必须如下分配:
<数值1>TO范围,范围:1-16
<数值2>刀偏号(D号),范围1-204/409
<数值3>P参数号,范围0-9/15
例:@420  K1  K2  K3  R80   在TO1区域里,把R80中值送入D2偏置存贮器中P3参数中去。
@423<数值1><数值2><数值3><数值>
数值被加到包含在刀偏存贮器中的值上。
符号<数值1>~<符号3>规定如下:
<数值1>TO区域,范围:1-16
<数值2>刀偏号D,范围:1-204/409
<数值3>P参数号,范围:0-9/16
主组别4/子组别3:把R参数中值写入零点偏置
@430<数值1><数值2><数值3><数值>
把数值送入零点偏置存贮器中,原存在内被重写
符号<数值1>设定零偏组别(G54=1~G57=5)
<数值2>坐标轴号
<数值3>粗或精值(0或1)
例:@430  K1  K2  K0  K500   第二坐标轴G54零偏粗值为500
@431<数值1><数值2><数值3><数值>
数值被加到包含在零偏存贮器中的值上。
符号<数值1>~<数值3>规定如下:
<数值1>设定零偏组别(G54=1和G57=4
<数值2>坐标轴号
<数值3>粗/精转换(当前,必须输入0)
@432<数值1><数值2><数值>
<数值1>编程零偏组别(G58=1和G59=2)
<数值2>坐标轴号
在一程序段不允有横移运动指令。
@434<数值2><数值>
<数值2>定义DRF偏置坐标轴号
@435<数值2><数值>
<数值2>定义预置偏置坐标轴号
@434和@435大部分用于复位DRF和预置偏置
@434和@435指令直至M02/M030或NC停止才无效。
@437<数值1><数值2><数值3><数值>
写设定坐标旋转
符号<数值1>经~<数值3>规定如下:
<数值1>通道号(0=自身通道)
<数值2>设定坐标旋转组别(G54=1~G57=4)
<数值3>角度值(当前=0)
@438<数值1><数值2><数值3><数值>
写设定附加坐标旋转(G54~G57)
<数值1>通道号
<数值2>1~4组别(G54~G57)
<数值3>角度值(当前=1)
@439<数值1><数值2><数值3><数值>
写可编程坐标旋转
<数值1>通道号(0=自身通道)
<数值2>可编程坐标旋转组别(G58=1~G59=2)
<数值3>角度值(当前=1)
@43a<数值1><数值2><数值3><数值>
写可编程附加坐标旋转
<数值1>通道号(0=自身通道)
<数值2>可编程附加坐标旋转组别(G58=1  G59=2)
<数值3>角度值(当前=1)
主组别4/子组别4:把R参数值写入编程设定点:
@440<数值3><数值>
此指令使以任意坐标轴名编程坐标轴为可能。<数值3>规定为被移动坐标轴号,<数值>为逼近的位置移动轨迹。
@442<数值3><数值>
此指令允许编程主轴速度
@44b<数值>
此指令使以机床数据定义的地址以任意角度编程,<数值>规定为半径值。
@447<数值>
此指令使以机床数据定义的地址以任意角度编程,<数值>规定为角度值。
@448<数值3><数值>
此指令允许任意参数用于圆弧和螺纹编程。
主组别4/子组别8:把R参数中值写入PLC信号位中。
@482<数值1><数值2><数值3><数值>
借助于参数,指示字或常数输入PLC标志位状态。<数值1>定义PLC号,<数值2>定义字节地址,<数值3>定义位地址。
例:@482  K1  K2  K0  K0  0输入PLC标志位状态。
@483<数值1><数值2><数值3><数值4><数值>
借助于参数,指示字或常数输入PLC数据字位状态。
<数值1>定义PLC号,<数值2>定义DB或DX号,<数值3>定义数据字号,<数值4>定义位地址。
例:R60=1  R62=2  R63=4
@483  R60  R62  R63  K2  K1   PLC数据字位状态为1
主组别4/子组别9:把R参数中值写入PLC信号字节中
@493<数值1><数值2><数值>
借助于参数,指示字或常数输入PLC标志字节状态。<数值1>定义PLC号,<数值2>定义字节地址。
例:@493  K1  K1  K01100111   用常数装入PLC标志字节状态。
@494<数值1><数值2><数值3><数值>
借助于参数,指示字或常数输入PLC数据字(左)状态,<数值1>定义PLC号,<数值2>定义DB或DX号,<数值3>定义数据字号。
例:R53=10010110
@493  K1  K2  K4  R53    R53之内容装入数据字(左)状态。
@495<数值1><数值2><数值3><数值>
借助于参数,指示字或常数输入PLC数据字(右)状态。
<数值1>定义PLC号,<数值2>定义DB或DX号,<数值3>定义数据字号。
主组别4/子组别a:把R参数中值写入PLC信号字中
@4a0<数值1><数值2><数值3><数值>
借助于参数,指示字或常数,把标志字状态装入PLC中
<数值1>P定义PLC号,<数值2>定义字地址,标识范围<数值3>规定如何把标志字状态装PLC。
<数值3>
<数值3>定点<数值3> BCD(二进制)
0不带小数点数值100不带小数点数值
1带小数点数值101带小数点数值
2小数点后1位102小数点后1位
3小数点后2位103小数点后2位
4小数点后3位104小数点后3位
5小数点后4位105小数点后4位
6小数点后5位106小数点后5位
7小数点后6位107小数点后6位
8小数点后7位108小数点后7位
9小数点后8位109小数点后8位
例:@4a3  K1  K3  K100  K2219  借助于常数把PLC标志字状态二进制判数格式装入。
主组别4/子组别b:把R参数中值写入PLC信号数据字。
@4b0<数值1><数值2><数值3><数值4><数值5><数值>
借助于参数指示字或常数把数据字或双字的定点值装入PLC中。
<数值1>定义PLC号,<数值2>定义DB中DX号,<数值3>定义数据字?,<数值4>定义数据字?,<数值5>规定如何装入数据字或双字定点值。
<数值5>定义如下:
<数值5>数据字串行双字<数值5>并行双字
0不带小数点数值10不带小数点数值
1带小数点数值11带小数点数值
2小数点后1位12小数点后1位
3小数点后2位13小数点后2位
4小数点后3位14小数点后3位
5小数点后4位15小数点后4位
6小数点后5位16小数点后5位
7小数点后6位17小数点后6位
8小数点后7位18小数点后7位
9小数点后8位19小数点后8位
例:@4b0  K1  K3  K2  K10  K24500
@4b1<数值1><数值2><数值3><数值4><数值5><数值>
2.6数学功能
主组别6组成如下:
@ 6 X  Y   三个数字@代码
特殊功能
0-算术运算赋值
1-算术功能
2-算术过程
3-三角函数功能
4-对数功能
5-逻辑功能
6-逻辑过程
7-布尔运算比较
主组别6
主组别6/子组别0:算术运算赋值
在此子组别中,不须要@,执行等号右边几个符号的链计算。
<变量>=<数值1>+<数值2>  加法
<变量>=<数值1>-<数值2>  减法
<变量>=<数值1>*<数值2>  乘法
<变量>=<数值1>/<数值2>  除法
主组别6/子组别1:算术功能
@610 <变量><数值>
定义在<数值>中不带符号的数值总和被存入<变量>中
例  R12=34
@610  R76  R12    ;R76=34
@613<变量><数值>
<数值>定义的值的平方根存入<变量>中。
例:@613  R13  K64   常数64开平方,根8存入R13中。
@614<变量><数值1><数值2><数值3>
<数值1><数值2>中定义值的平方和,开根号,并存入<变量>中。
例:R25=15  R26=20
@614  R77  R25  R26     R25平方为225,R26平方为400,其和开根为25,并存入R77中。
主组别6/子组别2:算术过程
@620<变量>
<变量>定义的R参数内容是增量。
例:  R70=1       R70参数内容是增量,新的内容为2
@620  R70
@621<变量>
<变量>定义的R参数内容是递减量
例:R70=1   R70参数内容是递减量,新的内容是0
@622<变量>
给用R参数或指示字定义的值取整。结果仍保持在R参数或指示字中。
例R60=2.9
@622  R60     给R60内容取整,新的内容为2
主组别6/子组别3:三角函数功能
@630<变量><数值>
<数值>定义角度正弦值存入<变量>中。
例:R27=30
@630  R15  R27      R27内容正弦值0.5存入R15中
@631<变量><数值>
<数值>定义角度余弦值存入<变量>中。
@632<变量><数值>
<数值>定义角度正切值存入<变量>中。
@634  <变量><数值>
<数值>定义角度反正弦值存入<变量>中。
例:R35=0.70710678   R35中内容反正弦,45存入R17中
@634  R17  R35
@637<变量><数值1><数值2>
<数值1><数值2>定义值是矢量,结果是一个在<数值2>和合成矢量间构成的一个角度。
作为操作数<数值1>和<数值2>只允许一个常数,其他必须为<变量>(R参数或指示字)
例:R35=20  R36=-30
@637  R17  R35  R36    R35和R36参数中内容构成矢量角度,结果146.30993存入R17中
主组别6/子组别4:对数功能
@640<变量><数值>
<数值>定义的数值的自然对数存入<变量>中
例:@640  R80  K10   常数10的自然对数,结果2.3025846存入R80中
@641<变量><数值>
<数值>定义的数值的指数ex存入<变量>中
例:@641  R80  K2.5   常数进行指数ex运算,结果12.182496存入R80中
主组别6/子组别5:逻辑功能
@650<变量><变量1><数值>
<变量1><数值>中位模式是“或”门逻辑,其结果存入<变量>中
例:R50=00101100   R51=10110011
@650  R52  R50  R51           R50和R51是或门逻辑,结果存入R52,其内容为10111111
@651<变量><变量1><数值>
<变量1><数值>中位模式是“异或”门逻辑,其结果存入<变量>
@652<变量><变量1><数值>
<变量1><数值>中位模式是“与”门逻辑,其结果存入<变量>中
@653<变量><变量1><数值>
<变量1>和<数值>中位模式是“与非”逻辑,其结果是非门,并存入<变量>中
@654<变量><变量1><数值>
<数值>中位模式是“非”门逻辑,结果存入<变量>中
例: R50=00101100    
@654  R52  R50              模式变量R50中的内容是非门,结果存入R52中,R52=11010011
@655<变量><变量1><数值>
<变量1>和<数值>中位的逻辑是“或”门,其结果存入<变量>中
@656<变量><变量1><数值>
<变量1>和<数值>中位“异或”门逻辑,其结果存入<变量>中
@657<变量><变量1><数值>
<变量1>和<数值>中位是“与”门逻辑,其结果存入<变量>中
例  R50=1   R51=0
@657  R52  R50  R51    在布尔代数变量R50和R51上执行逻辑与操作,结果存入R52,其内容是0
@658<变量><变量1><数值>
<变量1>和<数值>中位与门逻辑,其结果是非门,并存入<变量>中
例:R50=1  R51=0
@658  R52  R50  R51   在布尔代数变量R50上执行逻辑与操作,结果是非门并存入R52中,R52为1
@659<变量><数值>
<数值>定义位(0~7);<变量>定义位模式中位置“1”
例:R70=00000000
@661  R70  K2   在模式变量中第2位设定,R70=00000100
2.7 NC功能特定
@706
使用指令@706,指定一个参照机床零点的位置,并从指定轴接近的这个位置。这个命令只在指定的块中生效。
同轴能通过NC指定一样,轴也能同时运动。轴要接近的位置通过DIN代码或者通过命令@440编程。
指令@706取消所有的零点偏移,也包括PRESET 和DRF偏移。为接近一个固定的机床零点,也必须取消刀具偏置。
如果机床数据5007.1为“1”,G53指令激活,效果同@706一样。如果机床数据没有置位“1”,PRESET 和DRF偏移不必用G53抑制。
例如:
@706 X1000 Z500      被编程的运动路径在X,Z方向上接近机床零点。
@713 <Var >
使用这个指令,在当前的输格式中,相应1 mm的安全间隙/距离数值装入<变量>( G70 = 0.03937 , G71 = 1)定义的R参数中。在这个R参数中,如果用半径编程,数值为“1”,如果用直径编程,数值为“2”。<变量>允许的参数范围是R0~R98 , R900~R998。
@714
使用这个指令,“STOP-DEC”——停止译码,块准备停止直到缓冲器为空。
当程序被执行的时候,多个程序块提前编码并装入NC的缓冲器。其结果使得程序执行加快,但是与一些NC指令(读实际值,测量值,数据传输NC-PLC)一起使用的时候可能导致错误。通过停止译码指令,提前对已经执了@714指令并且该指令已经停止以后写入的NC块译码,使缓冲器被清空,通知下一个NC块可用。每次在读实际值之前和每个尺寸之后,STOP-DEC指令必须编程在自己的通道中。而且该指令必须总是编程在单独的NC块中。
例如:  
M94            零件号从PLC传输到R60参数中。
@714          停止解码,以便当前的零件号能在下一个NC块中被计算。
@123 R60 K100 K5      
@720 <Var> <Value>
该指令用于测量循环中。
用测量功能,当来自探头的输入信号输入的时候,能确定运动轴的实际值。这个实际值直接来自于控制测量系统。
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=134749&Name=lranbing
悄悄的来,做自己的事.

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006