数控 程序 宏程序 逻辑运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数控 程序 宏程序 逻辑运算相关的知识,希望对你有一定的参考价值。

有谁能给一段逻辑运算的宏程序 在稍微解释下 西门子发那科系统的都可以 我主要是不知道这个逻辑运算究竟怎么个用法 没用过 也没看到过

宏指令G65可以实现丰富的宏功能,包括算术运算、逻辑运算等处理功能。
  一般形式: G65 Hm P#i Q#j R#k
式中:

m--宏程序功能,数值范围01~99;
#i--运算结果存放处的变量名;
#j--被操作的第一个变量,也可以是一个常数;
#k--被操作的第二个变量,也可以是一个常数。

例如,当程序功能为加法运算时:
程序 P#100 Q#101 R#102...... 含义为#100=#101+#102
程序 P#100 Q-#101 R#102...... 含义为#100=-#101+#102
程序 P#100 Q#101 R15...... 含义为#100=#101+15

1、宏功能指令
(1)算术运算指令(表4.4)

表4.4 算术运算指令
G码 H码 功 能 定 义
G65 H01 定义,替换 # i=# j
G65 H02 加 # i=# j+# k
G65 H03 减 # i=# j-# k
G65 H04 乘 # i=# j × # k
G65 H05 除 # i=# j/# k
G65 H21 平方根 # i=√# j
G65 H22 绝对值 # i=|# j|
G65 H23 求余 # i=# j-trunc﹙# j/# k﹚· # k
Trunc;丢弃小于1的分数部分
G65 H24 BCD码→二进制码 # i=BIN﹙# j﹚
G65 H25 二进制码→BCD码 # i=BCD﹙# j﹚
G65 H26 复合乘/除 # i=﹙# i × # j﹚÷# k
G65 H27 复合平方根1 # i=√# j2+# k2
G65 H28 复合平方根2 # i=√# j2-# k2

1)变量的定义和替换 #i=#j
编程格式 G65 H01 P#i Q#j
例 G65 H01 P#101 Q1005; (#101=1005)
G65 H01 P#101 Q-#112;(#101=-#112)
2)加法 #i=#j+#k
编程格式 G65 H02 P#i Q#j R#k
例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103)
3)减法 #i=#j-#k
编程格式 G65 H03 P#i Q#j R#k
例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103)
4)乘法 #i=#j×#k
编程格式 G65 H04 P#i Q#j R#k
例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103)
5)除法 #i=#j / #k
编程格式 G65 H05 P#i Q#j R#k
例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103)
6)平方根 #i=
编程格式 G65 H21 P#i Q#j
例 G65 H21 P#101 Q#102;(#101= )
7)绝对值 #i=│#j│
编程格式 G65 H22 P#i Q#j
例 G65 H22 P#101 Q#102;(#101=│#102│)
8)复合平方根1 #i=
编程格式 G65 H27 P#i Q#j R#k
例 G65 H27 P#101 Q#102 R#103;(#101=
9)复合平方根2 #i=
编程格式 G65 H28 P#i Q#j R#k
例 G65 H28 P#101 Q#102 R#103(#101=

(2)逻辑运算指令(表4.5)
表4.5 逻辑运算指令
G码 H码 功 能 定 义
G65 H11 逻辑“或” # i=# j · OR · # k
G65 H12 逻辑“与” # i=# j · AND · # k
G65 H13 异或 # i=# j · XOR · # k

1)逻辑或 #i=#j OR #k
编程格式 G65 H11 P#i Q#j R#k
例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103)
2)逻辑与 #i=#j AND #k
编程格式 G65 H12 P#i Q#j R#k
例 G65 H12 P#101 Q#102 R#103;(#101=#102 AND #103)

(3)三角函数指令(表4.6)
表4.6 三角函数指令
G码 H码 功 能 定 义
G65 H31 正弦 # i=# j · SIN ﹙# k﹚
G65 H32 余弦 # i=# j · COS ﹙# k﹚
G65 H33 正切 # i=# j · TAN﹙# k﹚
G65 H34 反正切 # i=ATAN﹙# j/# k﹚

1)正弦函数 #i=#j×SIN(#k)
编程格式 G65 H31 P#i Q#j R#k (单位:度)
例 G65 H31 P#101 Q#102 R#103;(#101=#102×SIN(#103))
2)余弦函数 #i=#j×COS(#k)
编程格式G65 H32 P#i Q#j R#k (单位:度)
例 G65 H32 P#101 Q#102 R#103;(#101=#102×COS(#103))
3)正切函数 #i=#j×TAN#k
编程格式G65 H33 P#i Q#j R#k (单位:度)
例 G65 H33 P#101 Q#102 R#103;(#101=#102×TAN(#103))
4)反正切 #i=ATAN(#j/#k)
编程格式G65 H34 P#i Q#j R#k (单位:度,0o≤ #j ≤360o)
例 G65 H34 P#101 Q#102 R#103;(#101=ATAN(#102/#103))

(4)控制类指令(表4.7)
表4.7 控制类指令
G码 H码 功 能 定 义
G65 H80 无条件转移 GO TO n
G65 H81 条件转移1 IF # j=# k,GOTOn
G65 H82 条件转移2 IF # j≠# k,GOTOn
G65 H83 条件转移3 IF # j># k,GOTOn
G65 H84 条件转移4 IF # j<# k,GOTOn
G65 H85 条件转移5 IF # j≥# k,GOTOn
G65 H86 条件转移6 IF # j≤# k,GOTOn
G65 H99 产生PS报警 PS报警号500+n出现

1)无条件转移
编程格式G65 H80 Pn (n为程序段号)
例G65 H80 P120;(转移到N120)
2)条件转移1 #j EQ #k(=)
编程格式G65 H81 Pn Q#j R#k (n为程序段号)
例 G65 H81 P1000 Q#101 R#102
当#101=#102,转移到N1000程序段;若#101≠ #102,执行下一程序段。
3)条件转移2 #j NE #k(≠)
编程格式G65 H82 Pn Q#j R#k (n为程序段号)
例 G65 H82 P1000 Q#101 R#102
当#101≠ #102,转移到N1000程序段;若#101=#102,执行下一程序段。
4)条件转移3 #j GT #k (> )
编程格式G65 H83 Pn Q#j R#k (n为程序段号)
例 G65 H83 P1000 Q#101 R#102
当#101 > #102,转移到N1000程序段;若#101 ≤#102,执行下一程序段。
5)条件转移4 #j LT #k(<)
编程格式 G65 H84 Pn Q#j R#k (n为程序段号)
例 G65 H84 P1000 Q#101 R#102
当#101 < #102,转移到N1000;若#101≥ #102,执行下一程序段。
6)条件转移5 #j GE #k(≥)
编程格式 G65 H85 Pn Q#j R#k (n为程序段号)
例 G65 H85 P1000 Q#101 R#102
当#101≥ #102,转移到N1000;若#101<#102,执行下一程序段。
7)条件转移6 #j LE #k(≤)
编程格式 G65 H86 Pn Q#j Q#k (n为程序段号)
例 G65 H86 P1000 Q#101 R#102
当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。
2、使用注意
  为保证宏程序的正常运行,在使用用户宏程序的过程中,应注意以下几点;
(1)由G65规定的H码不影响偏移量的任何选择;
(2)如果用于各算术运算的Q或R未被指定,则作为0处理;
(3)在分支转移目标地址中,如果序号为正值,则检索过程是先向大程序号查找,如果序号为负值,则检索过程是先向小程序号查找。
(4)转移目标序号可以是变量。[em24][em27][em24]鐧惧害鍦板浘

本数据来源于百度地图,最终结果以百度地图最新数据为准。

参考技术A 你那表达式是不是可以改改,If{#18NE#17
GOTO
100,第二个IF语句的表达式改成{#17EQ#18},我不晓得你是做哪个偏数程序,最好都说明白点儿。
参考技术B 逻辑运算?宏程序是套公式自动计算!

卷筒宏程序编程实例,思路清晰,值得学习

(文章底部可以评论,欢迎对文章进行点评和知识补充)

数控编程教学

订单 | 技术 | 干货 | 编程

关注可加入机械行业群


法纳克,广数,大森系统宏程序.刀具选球头刀R4.

M3S500

T0101

M8

#11=10       (螺距)

#2=-35       (Z起点)

#8=-85       (Z终点)

#4=0.1715    (Z轴每刀步距)

#5=0.1        (X轴每刀吃刀深度)

#7=4           刀具半径

#12=#11/2      螺纹入刀出刀距离

#6=[9-2*SQRT[#7*#7-[#7-#5]*[#7-#5]]]/2     Z轴剩余切削宽度

G0X100                           

Z[#2+#12+#4]

 

N01 G0 Z[#2+#12+#4]

X2

G1X0.2 F0.2

G32 X-[2*#5] Z[#2+#4] F#11 Q0

G32 Z[#8+#4] F#11

G32 X0.2 Z[#8+#4-#12] F#11

G0X100

Z[#2+#12-#4]

X2

G1X0.2 F0.2

G32 X-[2*#5] Z[#2-#4] F#11 Q0

G32 Z[#8-#4]  F#11

G32 X0.2 Z[#8-#4-#12] F#11

G0X100

#4=#4+0.1715

IF [#4 LE #6] GOTO01   条件跳转

G0X100

#4=0.1715

#5=#5+0.1

#6=[9-2*SQRT[#7*#7-[#7-#5]*[#7-#5]]]/2

IF [#5 LE 4.5] GOTO01

 

G0X100         倒角

X2

Z[#2+#12+1.85]

G1X0.2 F0.2

G32 X-1.17*2 Z[#2+1.85] F#11 Q0

G32 Z[#8+1.85] F#11

G32 X0.2 Z[#8+1.85-#12] F#11

 

G0X100              倒角

X2

Z[#2+#12-1.85]

G1X0.2 F0.2

G32 X-[1.17*2] Z[#2-1.85] F#11 Q0

G32 Z[#8-1.85] F#11

G32 X0.2 Z[#8-1.85-#12] F#11

M30

以上是关于数控 程序 宏程序 逻辑运算的主要内容,如果未能解决你的问题,请参考以下文章

C03 程序逻辑

程序员的数学——逻辑基础01

使用JAVA理解程序逻辑

14 C#编程中的逻辑运算

程序中的算术运算和逻辑运算表达式

使用Java语言深入理解程序逻辑——表达式和运算符