数控编程if的用法?关于宏程序

桃子 2024-11-15 16:27:28
最佳回答
大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出z坐标并且每次加10um那么宏就会自动算出x坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为a类宏和b类宏.a类宏是以g65 hxx p#xx q#xx r#xx的格式输入的,而b类宏程序则是 以直接的公式和语言输入的和c语言很相似在0i系统中应用比较广.由于现在b类宏程序的大量使 用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克otd系统中由于它的mdi键盘上没有公式符号,连最简单的等于号都没有,为此如果应用b类宏程序的话就只能在计算机上编好再通过rsn-32接口传输的数控系统中,可是如果我们没有pc机和rsn-32电缆的话怎么办呢,那么只有通过a类宏程序来进行宏程序编制了,下面我介绍一下a类宏的引用; a类宏是用g65 hxx p#xx q#xx r#xx或g65 hxx p#xx qxx rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1mm~~~~~.#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般otd系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下h代码,大家可以看到a类宏的标准格式中#xx和xx都是数值,而g65表示使用a类宏,那么这个h就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了h代码a类宏程序你基本就可以应用了,好,现在说一下h代码的各个含义: 以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行, 基本指令: h01赋值;格式:g65h01p#101q#102:把#102内的数值赋予到#101中 g65h01p#101q#10:把10赋予到#101中 h02加指令;格式g65 h02 p#101 q#102 r#103,把#102的数值加上#103的数值赋予#101 g65 h02 p#101 q#102 r10 g65 h02 p#101 q10 r#103 g65 h02 p#101 q10 r20 上面4个都是加指令的格式都是把q后面的数值或变量号内的数值加上r后面的数 值或变量号内的数值然后等于到p后面的变量号中. h03减指令;格式g65 h03 p#101 q#102 r#103,把#102的数值减去#103的数值赋予#101 g65 h03 p#101 q#102 r10 g65 h03 p#101 q10 r#103 g65 h03 p#101 q20 r10 上面4个都是减指令的格式都是把q后面的数值或变量号内的数值减去r后面的数 值或变量号内的数值然后等于到p后面的变量号中. h04乘指令;格式g65 h04 p#101 q#102 r#103,把#102的数值乘上#103的数值赋予#101 g65 h04 p#101 q#102 r10 g65 h04 p#101 q10 r#103 g65 h04 p#101 q20 r10 上面4个都是乘指令的格式都是把q后面的数值或变量号内的数值乘上r后面的数 值或变量号内的数值然后等于到p后面的变量号中. h05除指令;格式g65 h05p#101 q#102 r#103,把#102的数值除以#103的数值赋予#101 g65 h05 p#101 q#102 r10 g65 h05 p#101 q10 r#103 g65 h05 p#101 q20 r10 上面4个都是除指令格式都是把q后面的数值或变量号内的数值除以r后面的数 值或变量号内的数值然后等于到p后面的变量号中.(余数不存,除数如果为0的话会出现112报警) 三角函数指令: h31 sin正玄函数指令:格式g65 h31 p#101 q#102 r#103;含义q后面的#102是三角形的斜边r后面的#103内存的是角度.结果是#101=#102*sin#103,也就是说可以直接用这个求出三角形的另 一条边长.和以前的指令一样q和r后面也可以直接写数值. h32 cos余玄函数指令:格式g65 h32 #101 q#102 r#103;含义q后面的#102是三角形的斜边 r后面的#103内存的是角度.结果是#101=#102*cos#103,也就是说可以直接用这个求出三角形的 另一条边长.和以前的指令一样q和r后面也可以直接写数值. h33和h34本来应该是tan 和atan的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么? 开平方根指令: h21;格式g65 h21 p#101 q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的. 无条件转移指令: h80;格式:g65 h80 p10 ;直接跳到第10程序段 有条件转移指令: h81 h82 h83 h84 h85 h86 ,分别是等于就转的h81;不等于就转的h82;小于就转的h83;大于就转的h84;小于等于就转的h85;大于等于就转的h86; 格式:g65 h8x p10 q#101 r#102;将#101内的数值和#102内的数值相比较,按上面的h8x的码带入h8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段. 用 户 宏 程 序 能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。 l 所存入的这一系列指令——用户宏程序 l 调用宏程序的指令————宏指令 l 特点:使用变量 一. 变量的表示和使用 (一) 变量表示 #i(i=1,2,3,…)或#[<式子>] 例:#5,#109,#501,#[#1+#2-12] (二) 变量的使用 1. 地址字后面指定变量号或公式 格式: <地址字>#i <地址字>-#i <地址字>[<式子>] 例:f#103,设#103=15 则为f15 z-#110,设#110=250 则为z-250 x[#24+#18*cos[#1]] 2. 变量号可用变量代替 例:#[#30],设#30=3 则为#3 3. 变量不能使用地址o,n,i 例:下述方法下允许 o#1; i#2 6.00×100.0; n#3 z200.0; 4. 变量号所对应的变量,对每个地址来说,都有具体数值范围 例:#30=1100时,则m#30是不允许的 5. #0为空变量,没有定义变量值的变量也是空变量 6. 变量值定义: 程序定义时可省略小数点,例:#123=149 mdi键盘输一. 变量的种类 1. 局部变量#1~#33 一个在宏程序中局部使用的变量 例: a宏程序 b宏程序 … … #10=20 x#10 不表示x20 … … 断电后清空,调用宏程序时代入变量值 2. 公共变量#100~#149,#500~#531 各用户宏程序内公用的变量 例:上例中#10改用#100时,b宏程序中的 x#100表示x20 #100~#149 断电后清空 #500~#531保持型变量(断电后不丢失) 3. 系统变量 固定用途的变量,其值取决于系统的状态 例:#2001值为1号刀补x轴补偿值 #5221值为x轴g54工件原点偏置值 入时必须输入小数点,小数点省略时单位为μm 一. 运算指令 运算式的右边可以是常数、变量、函数、式子 式中#j,#k也可为常量 式子右边为变量号、运算式 1. 定义 #i=#j 2. 算术运算 #i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k 3. 逻辑运算 #i=#jok#k #i=#jxok#k #i=#jand#k 4. 函数 #i=sin[#j] 正弦 #i=cos[#j] 余弦 #i=tan[#j] 正切 #i=atan[#j] 反正切 #i=sqrt[#j] 平方根 #i=abs[#j] 绝对值 #i=round[#j] 四舍五入化整 #i=fix[#j] 下取整 #i=fup[#j] 上取整 #i=bin[#j] bcd→bin(二进制) #i=bcn[#j] bin→bcd 1. 说明 1) 角度单位为度 例:90度30分为90.5度 2) atan函数后的两个边长要用“1”隔开 例:#1=atan[1]/[-1]时,#1为了35.0 3) round用于语句中的地址,按各地址的最小设定单位进行四舍五入 例:设#1=1.2345,#2=2.3456,设定单位1μm g91 x-#1;x-1.235 x-#2 f300;x-2.346 x[#1+#2];x3.580 未返回原处,应改为 x[round[#1]+round[#2]]; 4) 取整后的绝对值比原值大为上取整,反之为下取整 例:设#1=1.2,#2=-1.2时 若#3=fup[#1]时,则#3=2.0 若#3=fix[#1]时,则#3=1.0 若#3=fup[#2]时,则#3=-2.0 若#3=fix[#2]时,则#3=-1.0 5) 指令函数时,可只写开头2个字母 例:round→ro fix→fi 6) 优先级 函数→乘除(*,1,and)→加减(+,-,or,xor) 例:#1=#2+#3*sin[#4]; 7) 括号为中括号,最多5重,园括号用于注释语句 例:#1=sin[[[#2+#3]*#4+#5]*#6];(3重) 一. 转移与循环指令 1.无条件的转移 格式: goto 1; goto #10; 2.条件转移 格式: if[<条件式>] goto n 条件式: #j eq#k 表示= #j ne#k 表示≠ #j gt#k 表示> #j lt#k 表示< #j ge#k 表示≥ #j le#k 表示≤ 例: if[#1 gt 10] goto 100; … n100 g00 691 x10; 例:求1到10之和 o9500; #1=0 #2=1 n1 if [#2 gt10] goto 2 #1=#1+#2; #2=#2+1; goto 1 n2 m301.循环 格式:while[<条件式>]do m;(m=1,2,3) … … … endm 说明:1.条件满足时,执行dom到endm,则从dom的程序段 不满足时,执行dom到endm的程序段 2.省略while语句只有dom…endm,则从dom到endm之间形成死循环 3.嵌套 4.eq ne时,空和“0”不同 其他条件下,空和“0”相同 例:求1到10之和 o0001; #1=0; #2=1; while [#2le10] do1; #1=#1+#2; #2=#2+#1; end1; m30; 20210311
汇率兑换计算器

类似问答
  • 用c++编写atm程序
    • 2024-11-15 21:31:51
    • 提问者: 未知
    #include <iostream>using namespace std;///////////////////////////////用户类//////////////////////////////////////class user{private: int money; string username; string password;public: ...
  • 马扎克数控车床编程方法??
    • 2024-11-15 13:47:20
    • 提问者: 未知
    数控车床编程具体方法参考手册决定。参考以下资料:⑴一般数据(common data) 位于程序的第一部份,有下面的固定格式。 pno mat od-max in-min length rpm fin-x fin-z work face * mat——workpiece material 工件材料 有五个选项 cbn stl 普通碳钢 al...
  • 数控车床加工螺纹的编写程序是怎样?
    • 2024-11-15 11:21:38
    • 提问者: 未知
    数控车床加工螺纹编程:指令格式:g32 x(u)____ z(w)____ f____指令中的x(u)、z(w)为螺纹终点坐标,f为螺纹导程。使用g32指令前需确定的参数如图a所示,各参数意义如下:l:螺纹导程,当加工锥螺纹时,取x方向和z方向中螺纹导程较大者;α:锥螺纹锥角,如果α为零,则为直螺纹;δ1、δ2:为切入量与切除量。一般δ1=2-5mm、δ2=(1/4-1/2)δ1。螺纹加工实例:螺...
  • 数控车床程序是?是什么?
    • 2024-11-15 23:00:59
    • 提问者: 未知
    数控系统的配置和功能选择系统数控系统的配置和功能选择系统是数控机床的重要组成部分,配置什麽样的数控系统及选择哪些数控功能,都是机床生产厂家和最终用户所关注的问题。数控系统的配置伺服...
  • 数控车床程序中的r是代表什么
    • 2024-11-15 07:09:42
    • 提问者: 未知
    半径
  • r roll regression 程序编写?
    • 2024-11-15 16:17:38
    • 提问者: 未知
    现有一个一元回归模型,是股票市场上的日数据,需要按照周度来进行滚动回归。即,每周向前滚动一次,用本周前12周的日数据进行回归。我尝试使用rollapply in zoo package。但是始终编不出程序来。例子倒是看懂了,有哪个大牛帮忙解答下, 本问题英文版挪步: the r programming of roll regression #急切等待答案中~~~
  • matlab非线性数据拟合程序编写
    • 2024-11-15 10:17:32
    • 提问者: 未知
    function fxnihe2() format long clc clear close all x=[1970 1971 1972 1973 1974 1975 1976 1977 1978. 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988. 1989 1990 1991 1992 1993 1994 1995 1996. 1997 199...
  • qt编写程序,编译该程序出现未定义变量
    • 2024-11-15 00:46:43
    • 提问者: 未知
    命名空间不对,或者定义冲突
  • 数控冲床送料机程序
    • 2024-11-15 07:54:14
    • 提问者: 未知
    冲床除应用于机械器件的塑性成型外,还作为许多专用设备的本体和母机用于筛网、垫网、防护罩等的冲剪加工。冲床是属于点位控制机床,在中间行程中不进行加工。由于一般加工产品单一,模具不经常进行更换,所以在传统的冲床控制中一般采用继电器控制,送料一般采用手工送料,此种方式存在效率低、速度慢、精度不能保证、安全存在隐患等方面的一系列问题。我国的乡镇企业和中小型民营企业,由于受资金管理等方面的限制,简易式冲压设...
  • 成本控制的基本程序和方法
    • 2024-11-15 19:56:40
    • 提问者: 未知
    成本控制的基本程序和方法 成本控制的基本工作程序如下: 1、制订成本标准。 成本标准是成本控制的准绳,成本标准首先包括成本计划中规定的各项指标。但成本计划中的一些指标都比较综合,还不能满足具体控制的要求,这就必须规定一系列具体的标准。确定这些标准的方法,大致有三种: (1)计划指标分解法。即将大指标分解为小指标。分解时,可以按部门、单位分解,也可以按不同产品和各种产品的工艺阶段或零部件进行分解,若...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。