机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4891|回复: 14
打印 上一主题 下一主题

宏程序个人理解.

[复制链接]
跳转到指定楼层
#
发表于 2013-12-13 21:29:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 乡村非主流 于 2013-12-13 21:34 编辑
5 h7 m% d4 H' u0 y" x, a5 C1 G1 [# r/ q# Y
   经常会看到有人发与宏程序有关的帖子.不是难度太高就是讲得不怎么靠谱.今天讲讲我自己对宏程序的理解... F+ Q3 P$ S5 T* s& C
   宏程序一般分为A类和B类.A类宏调用比较麻烦.B类宏用起来比较方便.类似于C语言.现在的机床基本上都支持B类宏.$ C# M9 ?3 F+ p. V$ ~) u9 J
   本人只操作过广数和Fanuc系统.她们宏程序应用基本都是一样的.现在以Fanuc为例说说.本帖目的只在于沟通与探讨..
/ o- ?& y# w% vFanuc系统的变量由符号#和变量序号组成.如:#I(I=1,2,3,...,例如#5, #500, #100等).将跟随在地址符后的数值用变量来代替的过程称为引用变量.例如:G01 X#100 Y-#101 F#102;.当 #100=100.  #101=50.  #102=80时.上式即代表为:G01 X100. Y-50.  F80;./ X3 k. ]5 y9 t  f- R
   变量的种类.变量分为局部变量.公共变量.系统变量.局部变量(#1-#33)是在宏程序中局部使用的变量.当1号宏程序调用2号宏程序且都有变量#1时,由于变量#1服务于不同的局部.所以1号程序中的#1与2号程序中的#1不是同一个变量.因此可以赋予不同的值.互不影响.公共变量(#100-#149,#500-#549)贯穿于整个程序过程.当宏程序1调用宏程序2时.且都有#100变量时.由于#100是公共变量.所以1中的#100与2中的#100都是同一个变量.系统变量是指有固定用途的变量.她的值决定系统的状态.包括刀具偏置变量.接口输入.输出信号变量.及位置信号变量等等..(系统变量这块还搞不懂.有的是生产厂家定的.希望有人能够指点指点).宏程序通常使用局部变量和公共变量.#500以上的变量断电后不丢失.6 a0 b7 Z1 i% Z8 S! k
  B类宏赋值:直接赋值例如:#100=100.0
: U7 h" A9 g% u2 y3 B1 X                                                #100=30.+20.3 h7 l: X9 y: H2 x- ]
                    常用混合计算例如:#1=#2+#3*SIN[#4]
1 G5 ]4 y/ h& `$ w5 s0 @5 r( y                                           运算次序为:1;函数SIN[#4]+ w% o6 w) z, }% {+ E2 c
                                                               2;乘和除运算#3*SIN[#4]" n  V$ w9 A$ a, C
                                                                3:加减运算#2+#3*SIN[#4]   $ H' @, m, I5 Z: ^/ T0 f. e
                                        也可以通过括号改变运算顺序例如:#1=SIN[ [ [ #2 = #3 ] * 4 + #5 ]  / #6 ]
  ^/ z" S2 a2 Z0 g" N4 ?1 r! H转移指令GOTO的应用;3 F3 n7 ~* ~( `6 q: k7 q2 T
例如:GOTO1001 H. f$ z  V# o6 c. t' _; i
无条件转移到N100程序段.用的较多.可以省去了跳段符号.不过很多人习惯用跳段开关.我比较喜欢这个方便. " T/ O' _9 u1 u$ m+ x7 q2 l
条件转移例如:IF [ #1 GT #100 ] GOTO 100  
4 @$ A/ W) N5 d( S* k! ^当#1大于#100时转移到N100程序段.至于什么大于小于这些自己看书去.打字累的慌.      
& z' c! j2 I5 @. F" X5 `/ c( [还有个循环指令WHILE[条件式]DOm(m=1.2.3.....)
+ r) @2 L& Z+ |0 z                                            ......2 S6 n8 d4 }) Q1 j; y1 B; l
                                            ENDm;这个比较少用.大概格式就这样了. S/ p  b- q+ \# v2 a# `
其实在实际加工中宏程序用的比较少.也许是现在很多人不会用的原因.) f% L3 M2 Z  x- ^0 t
我现在举个简单的例子:比如我们加工棒料是有时从直径150车到100时.如果用G90比较费时间.当然电脑编程全部用的是G01.走刀.速度比循环车要快.但是程序繁琐.那我们就用宏程序来编个吧.比如我们每刀切削2MM.退刀1MM.
3 ~% E6 }4 C9 v6 JO520 ;' h3 l3 j" o( l% r8 _6 ~5 A
#501=151 ; 赋值, n1 x* v* m, G
#502=100 ;赋值
7 ~1 L% R) }- ]M44 ;- y- x1 r9 V7 Z( Q" d5 ~8 e
T0303 M8 ;, J% i1 p% X3 c0 z$ a
M3 S450 ;
% G% o5 k$ ^; V; T9 r9 y3 C$ i1 B3 l$ NG0 Z5 ;
8 `7 f% ~8 `* Y. ~, H: B! `5 p) JN1 #501= #501-1. ;X定位点- ^: ]2 N, B6 a- C
X#501 ;
( @7 E% q) q7 E! }  {: Y8 t" U#501= #501-1. ;X切削点% t3 {" L, [- A, b* M& t
G90 X#501 Z-50. F0.2 ;! L, e  V+ t7 b( u
IF [ #501 GE #502 ] GOTO 1当#501大于或等于100时转移到N1.这样可以使她循环到我们需要的尺寸.这里我没有经过仔细的计算是不是刚好到100.这个可以自己计算给值.懒得算了.
3 S& P8 y7 I4 o' u5 iG0X200. M9 ;! z0 Y5 f0 N; U" G1 F) u3 B- T
Z300. M5  ;0 M6 U' o, |5 ?) r: O  {
M30 ;
3 h7 q/ A; f6 X, w%这个程序走刀基本与G01编程类似了.退刀还可以给小点.自己改吧% x% n0 _% f0 V+ A; @
小弟不才.以前是种地的.这里搞什么开发区.田被征用了.只有改行了.求指点.求指教.
: d7 ]5 m. ?8 c! e/ q我还编了个螺纹左右借刀加工的宏程序.看了下资料.了解了下思路.自己整了个.今天没时间了.明天发.个人觉得只要把这个程序看得懂.其他什么椭圆加工神马的都大同小异了.
" J8 x8 V5 W( w" q/ h" ?. z+ h0 q, ?+ B8 n- O2 ^* V
回复

使用道具 举报

14#
发表于 2014-1-29 19:08:34 | 只看该作者
宏程序可以用来采集机床的数据吗,别的方式可不可以
回复 支持 反对

使用道具 举报

13#
发表于 2014-1-27 09:55:58 | 只看该作者
无聊的宏
回复 支持 反对

使用道具 举报

12#
发表于 2014-1-15 21:52:27 来自手机 | 只看该作者
楼主的是用G90啊!自己会返回循环起点的没看明?
回复 支持 反对

使用道具 举报

11#
发表于 2014-1-15 20:19:16 | 只看该作者
楼主复制的帖子就别拿出来了
回复 支持 反对

使用道具 举报

10#
发表于 2014-1-8 16:16:04 | 只看该作者
对日本人的系统我很陌生,但也看过点,个人觉得编程没有西门子的自由。这大概受东西方文化不同的影响吧,当然这是我的个人感觉,事实不见得如此,望达人评解
回复 支持 反对

使用道具 举报

9#
发表于 2013-12-26 10:50:18 | 只看该作者
即使搞懂了这些,还不够啊,宏程序水很深,解决问题时就知道了

点评

多实践.没事时自己试着做嘛.  发表于 2013-12-27 19:57
回复 支持 反对

使用道具 举报

8#
发表于 2013-12-15 17:50:03 | 只看该作者
好像都是很牛的样子啊
回复 支持 反对

使用道具 举报

7#
发表于 2013-12-15 17:27:15 | 只看该作者
你看人家城主的程序,每车完一刀循环时都有一行“G00 X#500 Z5.;”回刀的动作,你的程序根本就没有,还叫我去看g90是什么意思,真无语了!

点评

这.......还是一句话多看书..  发表于 2013-12-16 20:40
楼主你不是吧?G90只是绝对值编程,怎么可能会退刀到起刀点呢?  发表于 2013-12-15 21:26
呃....G90会自动退到起刀点.比如Z5.X90.起点.加工完一刀后她会自动回到Z5.X90...  发表于 2013-12-15 17:31
回复 支持 反对

使用道具 举报

6#
发表于 2013-12-15 12:42:42 | 只看该作者
回复 支持 反对

使用道具 举报

5#
发表于 2013-12-14 23:29:56 | 只看该作者
真心没看懂啊,请教楼主' s1 x5 K& x5 r6 i( n$ n8 ?* _/ h5 g
8 v4 x% I5 S2 \1 a' s# s
O520 ;
) h3 E4 |# g6 b: R( ?- F- e5 N#501=151 ; 赋值
& \+ R! U) t% B& O#502=100 ;赋值
' @: X0 @4 Y9 ?8 k) s; @" @' \M44 ;
! n1 F3 J  v! T% V& [! W+ gT0303 M8 ;# [9 i" e1 W9 Q( Q" W5 t2 {9 T
M3 S450 ;  l5 B6 d1 T; b% L: v! L
G0 Z5 ;7 ^3 a9 O: [2 f; }8 I$ r
N1 #501= #501-1. ;X定位点% M3 h* b5 K" P4 c: ]) i* y
X#501 ;; I/ K# U, b  }" ?4 ^7 D
#501= #501-1. ;X切削点
" b/ ]; M8 q  ~0 ?. h  kG90 X#501 Z-50. F0.2 ;
+ D( I3 D( l6 V; RIF [ #501 GE #502 ] GOTO 1当#501大于或等于100时转移到N1.这样可以使她循环到我们需要的尺寸.这里我没有经过仔细的计算是不是刚好到100.这个可以自己计算给值.懒得算了." Z7 t6 [, T0 z* Z3 q
G0X200. M9 ;$ v/ h6 }) s! F4 n7 J
Z300. M5  ;
' H! _) z: `: A, ?2 L; nM30 ;
( P2 X; Z5 x" t2 u( Y
$ W3 G) D& c/ x( w( m# Y, ^/ G你的这段程序里z运动只有一个z5一个z-50和最后一个z300,而且在循环段里只有一个z-50,这个z没回0啊。
' l0 E4 y2 O9 B8 l7 @4 ^另外循环段里:- @7 C& T: ]( J% U
N1 #501= #501-1. ;X定位点    第一次循环#501的值是150
- t+ y" b7 b9 [. t0 {X#501 ;                                 第一次循环x走到150
5 l  ?' Q" J  A; D#501= #501-1. ;X切削点
) v& j! P; N* b$ C) }7 v4 w  ]G90 X#501 Z-50. F0.2 ;          第一次循环 这个x的值是149,那不是走成锥度了吗

点评

这个G90是单一形固定循环.Z5就是起刀点.你把G90这个指令搞懂了就好理解了.看看书吧.  发表于 2013-12-15 14:43
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-18 11:47 , Processed in 0.061809 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表