百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

宏程序基础_宏程序用法

yund56 2025-02-25 01:22 15 浏览

1.1 概述

(1)宏程序的分类

首先我们来讲一下宏程序的分类,A类和B类。首先在数控车系统比较老的时候,我们系统里面有A类宏,A类宏格式为G65格式,现在已经基本淘汰。随着科技发达,系统的升级优化,现在的数控系统大多支持B类宏程序,总体而言,现在B类宏是一个主流发展趋势,所以接下来我们的实例讲解都以B类宏程序为例。

(2)宏程序的概念

简单来理解宏程序是什么?可以这样理解,宏程序就是利用数学公式,函数等计算方式,配合数控系统中的G代码编制出的一种程序,主要加工一些像椭圆,曲线,各类大螺距螺纹和刀具路线相识的一些零件。随着科技发达,像椭圆,抛物线,等线性零件,用软件或则系统自代G代码可以完成加工,而大螺距异型螺纹这类零件,软件还没达到成熟,所以我们学会宏程序在加工中可以起到一个非常大的作用。可以弥补多年来数控车对大螺距螺纹的编程难的一个提高。

(3)宏程序的特征

1.赋值

在宏程序中我们通常用法最多的就是变量,比如:

#1=1 它就是一个变量。我们把这一过程,称为赋值。也就是说,我们把等号后面的数值1,赋值给#1。而现在#1的值就等于1,也可以理解为#1就是一个代号,用来代替数值1。

2.变量和应用

比如:#1=2(把数值2赋值给#1)

#2=1(把数值1赋值给#2)

#2=#1(程序从上往下执行,思考一下现在#2的值等于多少?)

解: 当程序执行第一步的时候#1的值等于2,当执行第二步的时候#2的值等于1,当执行第三步的时候这里要注意了,刚才讲过赋值过程,是等号后面的值赋值给等号前面,所以当#1在第一步赋值以后,#1已经等于2了,所以在执行第三步的时候#2的值应该等于2,不在是第二步的1了。从这里我们可以看出,当程序中有相同的变量#的时候,后面的#号代替前面的#号。

比如:#1=2

#1=3

最后结果#1的值因该是等于3的。所以说后面的代替前面的。

(4)变量的取值范围

1.局部变量(#1-#33)

什么叫局部变量,局部变量就是在局部或则可以理解为在单个程序中有效。断电以后系统自动清零。

2.公共变量(#100-#199,#500-#999)

公共变量和局部变量的区别在于,局部变量是在局部,或则单个程序中有效,而公共变量是指如果一个程序同时拥有主程序和子程序的情况下,在主程序中如果已经赋值,在子程序中可以不用从新赋值,可以共用。而#100-#199和#500-#999的区别在于,前者断电清零,而后者不会清零会一直保存在系统内部。比如:

#500=TAN[15]

#500一旦赋值就将保存在系统内部,下次可以直接调用#500使用。

3.系统变量(#1000-#17200)

系统变量是用于我们机床系统储存一些刀补数据参数等等的东西,我们可以不用管它,不会用的,慎用)

总结:一般情况下我们写程序用#1-#33,当有子程序的时候我们用#100-#199.

(5)宏程序中常用的计算

1.加法运算

例如:#1=2

#1=#1+3 那么#1的值等于2+3=5

2.减法运算

例如:#1=3

#1=#1-1 那么经过计算我们的#1的值等于3-1=2

3.乘法运算

程序中用*号来代替乘法

例如:#1=5

#2=#1*2 那么计算出来#2的值等于5*2=10

4.除法运算

程序中用 / 号来代替除法运算

例如:#1=10

#1=#1/2 那么经过计算#1的值等于10/2=5

(6)常用三角函数运算

1.TAN(正切)

例如#1=2*TAN[20] 中括号里面是角度

2.SIN(正玄)

例如#1=3*SIN[3] 同上

3.COS(余玄)

例如#1=COS[15]

4.ASIN、ACOS、ATAN(反三角)

5.SQRT(数学中的开平方的意思,和数学中根号一样)

例如#1=SQRT[9] 那么计算出来#1的值等于3

(7)宏程序的常用符号和含义

GT(大于)

GE(大于或等于)

LT(小于)

LE(小于或等于)

EQ(等于)

NE(不等于)

ABS(绝对值)

AND(与)

OR(或者)

(8)常用的语法和应用

1.无条件转移 GOTOn(n表示数值)

例如:GOTO01 此程序段的意思是当程序中执行到这一程序段的时候无条件跳转到程序段中N1的地方,执行N1后面的程序段。

M3S500G99

T101M08

GOTO10(当程序执行到这里的时候,直接跳转到N10那个程序段执行M30,跳过了G0那一步,所以这叫做无条件跳转,和我们一般程序中跳段功能一样)

G0X100.Z100.

N10M30

2.有条件跳转 IF[条件表达式]GOTOn

例如:IF[#1GT15]GOTO10 从这段程序当中,我们这样理解,如果中括号里面的条件满足,那么就执行后面的GOTO跳转语句,如果中括号里面条件不满足,那么不执行后面的GOTO跳转,执行后面一个程序段。

我们简单来写一个程序:

M3S500G99

T101M08

N10#1=30(把数值30赋值给#1)

IF[#1LT50]GOTO10(首先判断中括号是不是满足条件,如果满足执行跳转,不满足执行下一步)

M30

从这个程序中我们可以发现当#1=30的时候,我们执行条件判断,我们来判断一下,#1现在等于30,那么重括号里面就可以理解为30小于50,现在条件满足。所以他会执行后面GOTO跳转语句,跳转到N10地方继续执行)

3.强制赋值语句 IF[条件表达式]THEN(执行语句)

例如:IF[#1GT20]THEN#1=20 (我们这样来理解这个语句,如果#1大于20,那么#1等于20,也就是说和上面一样,中括号里面条件满足的话,执行后面THEN语句,如果不满足,不执行后面then语句。)

写一段简单程序:

#1=3(把数值3赋值给#1)

#1=#1-5(把#1-5计算出来的值从新赋值给#1,也就是3-5=-2,现在#1=-2)

IF[#1LT0]THEN#1=0(强制赋值,如果#1小于0,那么强制让#等于0)

M30

我们来分析一下上面程序段,当我们#1执行完减法运算以后#1的值已经等于-2,那么我们在执行强制赋值语句的时候我们来判断一下中括号里面条件是不是满足,-2小于0,条件满足,所以执行后面THEN语句,如果不满足的时候不执行THEN语句)

4.条件判断语句 WHILE[表达式]DOn(n为数值,取值范围1-99)

ENDn(n与开头n的数值对应)

例如:WHILE[#12GT50]DO1

END1

下面写一个程序段:

#1=60

WHILE[#1GT50]DO1

G0X#1

G1Z-20.F0.2

G0U1.Z1.

END1

M30

这个程序当条件判断语句里面中括号里面条件满足的时候执行DO1和END1中间的程序段,如果条件不满足,执行END1后面的程序段M30。

以上介绍的语法格式用法,以FANUC oi系列,广数,三菱系统为例。西门子,宝源,新代等系统以说明书为准!!

相关推荐

豆包编程能力升级:支持HTML代码实时预览、交互

IT之家3月19日消息,IT之家从豆包官方获悉,豆包宣布AI编程功能迎来三项升级,包括HTML预览、Python运行、生成完整项目。据介绍,目前豆包支持HTML代码实时预览和交互...

1898款游戏!80、90回忆杀,重温旧梦,快速搭建中文DOS游戏服务

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:羊刀仙大家好,我是羊刀仙。本期来介绍一个特别情怀向的游戏项目:chinese-dos-games。这套包含1898款经典中文DOS游戏的合集...

利用 SVG 文件内的 HTML 代码进行网络钓鱼攻击

随着时间的推移,网络钓鱼攻击的技术越来越精妙,旨在欺骗用户并规避安全措施。攻击者会使用欺骗性的URL重定向策略,例如将恶意网站地址附加到看似安全的链接后,在PDF中嵌入链接,以及发送HTML...

aardio + AI 大模型自动编写 Python 代码、网页前端代码的经验与技巧

在AI时代,老式的编程习惯完全被颠覆。原来可能要一大堆插件或工具辛苦堆出来的程序,现在只要把AI调教好了就行。aardio支持调用十几种编程语言,这很适合发挥AI大模型的优势。对于AI...

用AI制作游戏就是如此简单!

很多人不知道如何利用AI提高效率,不知道AI能帮我们做什么,其实可以让我们实现很多自己根本不懂的领域取得直观体验,比如利用DS或者豆包,输入“我想做一个简单的单机俄罗斯方块游戏”,AI会给出phtho...

不会写代码?教你用DeepSeek 三步做出小游戏

如今,借助人工智能技术,哪怕你完全看不懂代码,也能通过DeepSeek制作出属于自己的网页版大鱼吃小鱼游戏。接下来,就为大家详细介绍制作过程。第一步、向DeepSeek描述需求为何要做网页版的...

《暗黑1》被移植成网页游戏 可在浏览器上玩了

《暗黑1》,这款1996年发售的“鼠标杀手”砍杀游戏,现在可以在浏览器上玩了。国外专注暴雪游戏的Rivsoft分享了一个《暗黑1》的共享版本,该版本只包含地下城的头2个地区和三个角色职业中的一个。不...

网页代码过滤 轻松获取专辑目录

通过过滤网页代码,可以将网页上显示不全的长文件名列表完整地提取出来。我有一个含有75个视频文件的《中医诊断学》课件,文件名是以01.RMVB、02.RMVB……75.RMVB这种格式命名的。我希望能找...

IDEA 2021首个大版本发布,Java开发者感动哭了(附新亮点演示)

工欲善其事,必先利其器!就在不久之前,Java领域的开发神器IntelliJIDEA终于迎来2021年的一个重要的大版本更新:IntelliJIDEA2021.1。现如今大量的Java开发者深度...

View Source:在 iOS 上轻松查看网页源代码

在移动互联网时代,移动端的应用和web体验都尤为重要,在PC上有很多web前端工具可以选择,而在移动端貌似就少之又少了,在NEXT出现的ViewSource能帮你在iOS上查看...

当我们《寻找房祖名》,我们能找到什么?

游戏葡萄原创专稿,未经允许请勿转载柯震东,因为在九把刀电影《那些年我们追过的女孩》中饰演男主角柯景腾而走红的台湾影星,在昨天被爆出了和著名演员成龙之子房祖名吸毒被抓的丑闻,一时间相关讨论席卷社交网络。...

多用途游戏娱乐新闻网站HTML5模板

Retnews是一个响应式的HTML新闻,博客,杂志网站模板,可以使用这套前端模板简约很多设计的工作。模板有许多特性适合流行的主题商业、时尚,游戏,娱乐,生活方式、体育、科技、政治、旅行、天气、视频等...

简约好看的个人引导页HTML源码下载

源码介绍一款非常简约好看的个人引导页HTML源码,非常适合个人主页以及个人导航使用,纯HTML不需要数据库,上传服务器即可使用!...

教你如何在微信公共平台上插入小游戏(图文教程)

很多玩微信公共平台的朋友都想在公共平台上面插入几个小游戏,用来跟用户之间互动,这里花生来分享一下如何在微信公共平台上插入游戏,以及如何制作html5微信小游戏。首先是找游戏,总共有三个方法,本人比较倾...

html5重力感应剖析附源码

下面是测试html5重力感应的demohttp://bbs.qietu.com/html/zhongli/http://www.qietu.com/html/f2/qqqianbao/demo2是切图...