宏程序1Word文档格式.docx

上传人:b****7 文档编号:21948211 上传时间:2023-02-01 格式:DOCX 页数:22 大小:307.78KB
下载 相关 举报
宏程序1Word文档格式.docx_第1页
第1页 / 共22页
宏程序1Word文档格式.docx_第2页
第2页 / 共22页
宏程序1Word文档格式.docx_第3页
第3页 / 共22页
宏程序1Word文档格式.docx_第4页
第4页 / 共22页
宏程序1Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

宏程序1Word文档格式.docx

《宏程序1Word文档格式.docx》由会员分享,可在线阅读,更多相关《宏程序1Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

宏程序1Word文档格式.docx

为在程序中使用变量值指定后跟变量号的地址当用表达式指定变量

时要把表达式放在括号中

例如G01X[#1+#2]F#3

被引用变量的值根据地址的最小设定单位自动地舍入

例如

当G00X#/以1/1000mm的单位执行时CNC把12.3456赋值给

变量#1实际指令值为G00X12.346;

改变引用变量的值的符号要把负号放在#的前面

例如G00X#1

当引用未定义的变量时变量及地址字都被忽略

当变量#1的值是0并且变量#2的值是空时G00X#1Y#2的执行

结果为G00X0

对双轨迹控制系统为每一轨迹都提供了单独的宏变量但是根据参

数No.6036和6037的设定某些公共变量可同时用于两个轨迹

当变量值未定义时这样的变量成为空变量变量#0总是空变量

它不能写只能读

a引用

当引用一个未定义的变量时地址本身也被忽略

当#1=&

lt;

空&

gt;

当#1=0

G90X100Y#1

G90X100

G90X100Y0

变量值的显示

b运算

除了用&

赋值以外其余情况下&

与0相同

时当#1=0时

#2=#1

#2=&

#2=0

#2=#1﹡5

#2=#1+#1

(c)条件表达式

EQ和NE中的&

不同于0

#1EQ#0

成立

不成立

#1NE#0

#1GE#0

#1GT#0

当变量值是空白时变量是空

符号********表示溢出当变量的绝对值大于99999999时或下

溢出当变量的绝对值小于0.0000001时

限制程序号顺序号和任选程序段跳转号不能使用变量

下面情况不能使用变量

/#2G00X100.0;

N#3Y200.0;

2系统变量

说明

接口信号

刀具补偿值

系统变量用于读和写NC内部数据例如刀具偏置值和当前位置数据

但是某些系统变量只能读系统变量是自动控制和通用加工程序开发

的基础

是可编程机床控制器PMC和用户宏程序之间交换的信号

表15.2(a)接口信号的系统变量

变量号功能

#1000#1015

#1032

把16位信号从PMC送到用户宏程序变量#1000

到#1015用于按位读取信号变量#1032用于一次

读取一个16位信号

#1100#1115

#1132

把16位信号从用户宏程序送到PMC变量#1100

到#1115用于按位写信号变量#1132用于一次写

一个16位信号

#1133变量#1133用于从用户宏程序一次写一个32位的

信号到PMC

注意#1133的值为从99999999到+99999999

详细情况请见连接说明书B-63503C-1

用系统变量可以读和写刀具补偿值

表15.2(b)刀具补偿存储器C的系统变量

刀具长度补偿H刀具半径补偿D补偿

号几何补偿磨损补偿几何补偿磨损补偿

1

200

400

#11001#2201

#11201#2400

#11400

#10001

#2001

#10201

#2200

#10400

#13001

#13400

#12001

#12400

当偏置组数小于等于200时也可使用#2001#2400

宏程序报警

停止和信息显示

时间信息

表15.2(c)宏程序报警的系统变量

#3000当变量#3000的值为0200时CNC停止运行

且报警

在表达式后为不超过26个字符的报警信息

CRT屏幕上显示报警号和报警信息其中报警号

为变量#3000的值加上3000

#3000=1TOOLNOTFOUND

报警屏幕上显示3001TOOLNOTFOUND刀具未找到

程序执行停止并显示信息

报警号功能

#3006在宏程序中指令#3006=1MESSAGE

时程序执行前面程序段并停止

当最多到26个字符的信息由控制输入

和控制输出括住在同一程序段中编程

时信息被显示在外部操作信息屏幕

时间信息可以读和写

表15.2(d)时间信息的系统变量

#3001该变量为一个计时器以1毫秒为计时单位

当电源接通时该变量值复位为0当达到

2147483648毫秒时该计时器的值返回到0

#3002该变量为一个计时器当循环起动灯亮时以

一小时为单位计时该计时器即使在电源断

电时也保存该值当达到9544.371767小时

该计时器的值返回到0

#3011该变量用于读取当前的曰期年/月/曰年/

月/曰信息转换成十进制数例如1994年9

月8曰表示为19940928

#3012该变量用于读取当前的时间时/分/秒时/

分/秒信息转换成十进制数例如下午3点

34分56秒表示为153456

自动运行控制可以改变自动运行的控制状态

表15.2(e)自动运行控制的系统变量#3003

#3003单程序段辅助功能的完成

0有效等待

1无效等待

2有效不等待

3无效不等待

当电源接通时该变量的值为0

当单程序段停止无效时,即使单程序段开关设为ON也不执行单程序段停止,

当不指定等待辅助功能MS和T功能完成时,在辅助功能完成之前,

程序执行到下列程序段而且分配完成信号DEN不输出

表15.2(f)自动运行控制的系统变量#3004

#3004进给暂停进给速度倍率准确停止

0有效有效有效

1无效有效有效

2有效无效有效

3无效无效有效

4有效有效无效

5无效有效无效

6有效无效无效

7无效无效无效

当进给暂停无效时

1当进给暂停按钮被按下时,机床在单段停止方式停止,但是当

用变量#3003使单程序段方式无效时单程序段停止不执行。

2当进给暂停按钮压下又松开时,进给暂停灯亮,但是机床不停

止程序继续执行,并且机床停在进给暂停有效的第一个程序段,

当进给速度倍率无效时总是100%的倍率而不管机床操作面板上

的进给速度倍率开关的设置。

第7章宏程序

7.2变量

7.2.1变量及变量的引用

我们知道,在普通程序中的指令是地址后跟数值组成的,如G01,X100等等。

在宏程序中,地址后除了直接可以跟数值外,还可使用各种变量,变量的值可以通过程序改变或通过MDI操作面板输入。

在执行宏程序时,变量随着设定值的变化而变化。

变量的使用是宏程序的最主要特征,它可以使宏程序具有柔性和通用性。

宏程序中使用多种类型的变量,可以通过号码的不同进行识别。

1.变量的表示

变量是用符号#后面加上变量号码表示的,即:

#i(i=0,1,2,3…)

例如#8,#110,#20

变量号也可以用一个表达式来指定,这时表达式必须用括弧括起来。

#[#1+#12-12]

2.变量的引用

跟在地址后面的数字可以被变量替换。

假设程序中出现有〈地址〉#1或〈地址〉-#1时,就意味着把变量值或它的负值作为地址的指令值。

F#100——当#10=20时,F20被指令。

X-#20——当#20=100时,X-100被指令。

G#130——当#130=2时,G02被指令。

当一个变量值未被定义时,这个变量被当作空变量。

变量#0始终被当作空变量,它不被赋任何值。

 

7.2.2变量的类型

变量的类型和其功能如表7—1所示。

表7—1变量的类型及其功能

变量号

变量类型

功能

#0

空(Null)

该变量的值总为空

#1-#3

局部变量(LocalVariables)

局部变量是只能在一个用户宏程序中用来表示等变量,当机床断电后,局部变量的值被清除,当宏程序被调用时,可对局部变量赋值。

#100-#149

#150-#531

公共变量(CommonVariables)

公共变量在各宏程序中是可以公用的。

#100-#149在关掉电源后,变量值全部被清除,而#500-#509即使在关掉电源后,变量值仍被保存。

作为可选择的公共变量,#150-#199和#532-#999也是允许的。

#1000-

系统变量(SystemVariables)

系统变量是固定用途的变量,它的值决定系统的状态,用于表示接口的输入/输出、刀具补偿、各轴当前位置等,有些系统变量只能被读取。

系统变量的常见类型见表7—2所示。

表7—2系统变量

类型

用途

#1000—#1133

接口信号

可以在可编程控制器(PMC)和用户宏程序之间交换的信号

#2001—#2400

刀具补偿量

可以用来读和写刀具补偿量

#3000

报警

当#3000变量被赋值0-99时,NC停止并产生报警

#3001,#3002,#3011,#3012

时间信息

能够用来读和写时间信息

#3003,#3004

自动操作控制

能改变自动操作控制状态

#3005

设置变量

该变量可作读和写的操作,把二进制转换成十进制表示,可控制镜像开/关,公制输入/英制输入,绝对值编程/增量值编程。

#4001—#4002

模态信息

用来读取指定的直到当前程序有效的模态指令。

(C、B、D、F、H、M、S、T代码等)

#5001—#5104

位置信息

能够读取位置信息(包括各轴程序段终点位置、各轴当前位置、刀具偏置值)

一变量

普通加工程序直接用数值指定G代码和移动距离;

例如,GO1和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100

变量的表示

计算机允许使用变量名,用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

变量的类型

变量根据变量号可以分成四种类型

空变量

该变量总是空,没有值能赋给该变量.

#1-#33

局部变量

局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,

#100-#199

#500-#999

公共变量

公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.

#1000

系统变量

系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.

变量值的范围

局部变量和公共变量可以有0值或下面范围中的值:

-1047到-10-29或-10-2到-1047

如果计算结果超出有效范围,则发出P/S报警NO.111.

小数点的省略

当在程序中定义变量值时,小数点可以省略。

例:

当定义#1=123;

变量#1的实际值是123.000。

变量的引用

为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

G01X[#1+#2]F#3;

被引用变量的值根据地址的最小设定单位自动地舍入。

当G00X#/;

以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.

改变引用变量的值的符号,要把负号(-)放在#的前面。

G00X-#1

当引用未定义的变量时,变量及地址都被忽略。

当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0。

双轨迹(双轨迹控制)的公共变量

对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数N0.6036和6037的设定,某些公共变量可同时用于两个轨迹。

未定义的变量

当变量值未定义时,这样的变量成为空变量。

变量#0总是空变量。

它不能写,只能读。

引用

当引用一个未定义的变量时,地址本身也被忽略。

当#1=<

空>

当#1=0

(b)运算

除了用<

赋值以外,其余情况下<

与0相同。

当#1=0时

#2=#1

#2=<

#2=0

#2=#*5

#2=#1+#1

(c)条件表达式

EQ和NE中的<

不同于0。

#1EQ#0成立

#1EQ#0不成立

#1NE#0成立

#1NE#0不成立

#1GE#0成立

#1GE#0不成立

#1GT#0不成立

限制

程序号,顺序号和任选程序段跳转号不能使用变量。

下面情况不能使用变量:

0#1;

二算术和逻辑运算

下面表中列出的运算可以在变量中执行。

运算符右边的表达式可包含常量和或由函数或运算符组成的变量。

表达式中的变量#j和#k可以用常数赋值。

左边的变量也可以用表达式赋值。

角度单位

函数SIN,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。

如90°

30’表示为90.5度。

ARCSIN#i=ASIN[#j]

(1)取值范围如下:

当参数(NO.6004#0)NAT位设为0时,270°

~90°

当参数(NO.6004#0)NAT位设为1时,-90°

(2)当#j超出-1到1的范围时,发出P/S报警NO.111.

(3)常数可替代变量#j

ARCCOS#i=ACOS[#j]取值范围从180°

~0°

当#j超出-1到1的范围时,发出P/S报警NO.111.常数可替代变量#j

三程序举例

铣椭圆:

轨迹:

椭圆程序代码如下:

N10G54G90G0S1500M03

N12X0Y0Z20.

N14G0Z1

N16G1Z-5.F150.

N18G41D1

N20#1=0

N22#2=34

N24#3=24

N26#4=#2*COS[#1]

N28#5=#3*SIN[#1]

N30#10=#4*COS[45]-#5*SIN[45]

N32#11=#4*SIN[45]+#5*COS[45]

N34G1X#10Y#11

N36#1=#1+1

N38IF[#1LT370]GOTO26

N40G40G1X0Y0

N42G0Z100

N44M30

铣矩形槽:

铣矩形槽代码如下:

#102=0.

N3#100=0.

#101=0.

#103=200.

#104=400.

G91G28Z0.

G0G90G54X0.Y0.

G43H1Z20.

M3S2000.

N4G0X#100Y#101

G01Z#102F200.

#102=#102-2.

IF[#102EQ-50.]GOTO1

GOTO2

N2

N4X#104F500.

Y#103

X#100

Y#101

#100=#100+10.

#101=#101+10.

#103=#103-10.

#104=#104-10.

IF[#100EQ100.]GOTO3

GOTO4

N3

N1

M5

M9

G28Y0.

M30

铣倾斜3度的面:

铣倾斜3度的面的代码如下:

O0001

#[#1+1*2]=1

G65P9012L1A0B0.1C4I100J3K0

宏程序O9012代码如下:

G54G90G00X[#3]Y0Z100

S500M3

G01Z0F300

WHILE[#1LE10]DO1

#7=#1/TAN[#5]+#3

G1Z-#1X#7

#8=#6/2-ROUND[#6/2]

IF[#8EQ0]GOTO10

G1Y0

GOTO20

N10Y#4

N20#1=#1+#2

#6=#6+1

END1

G0

Z100

铣半球:

铣半球代码如下:

G90G0G54X-10.Y0M3S4500

G43Z50.H1M8

#1=0.5

WHILE[#1LE50.]DO1

#2=50.-#1

#3=SQRT[2500.-[#2*#2]]

G1Z-#1F20

X-#3F500

G2I#3

#1=#1+0.5

G0Z50.M5

铣喇叭:

铣喇叭代码如下:

M03S500

M06T01

#1=0

G0Z15

X150Y0

N11

#2=30*SIN[#1]

#3=30+30*[1-COS[#1]]

G01Z-#2F40

G41X#3D01

G03I-#3

G40G01X150Y0

#1=#1+1

IF[#1LE90]GOTO11

G0Z30

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1