391.FANUC宏程序编程
运算符
运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等号
|
运算符 |
含义 |
|
EQ |
等于(=) |
|
NE |
不等于 |
|
GT |
大于 |
|
GE |
大于或等于 |
|
LT |
小于 |
|
LE |
小于或等于 |
示例程序 下面的程序计算数值1~10的总和
O9500;#1=0;………………………………….存储和的变量初值
#2=1;………………………………….被加数变量的初值
N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2
#1=#1+#2;…………………………….计算和
#2=#2+#1;…………………………….下一个被加数
GOTO 1;………………………………转移到N1
N2 M30;................................................程序结束
算术和逻辑运算
|
功能 |
格式 |
备注 |
|
定义 |
#i=#j: |
|
|
加法 |
#i=#j+#k |
|
|
减法 |
#i=#j-#k |
|
|
乘法 |
#i=#j*#k |
|
|
除法 |
#i=#j/#k |
|
|
正弦 |
#i=SIN[#j]: |
角度以度指定090度30分表示为90.5度 |
|
反正弦 |
#i=ASIN[#j]: |
|
|
余弦 |
#i=COS[#j]: |
|
|
反余弦 |
#i=ACOS[#j]: |
|
|
正切 |
#i=TAN[#j]: |
|
|
反正切 |
#i=ATAN[#j]: |
|
|
平方根 |
#i=SQRT[#j]: |
|
|
绝对值 |
#i=ABS[#j]: |
|
|
舍入 |
#i=ROUND[#j]: |
|
|
上取整 |
#i=FIX[#j]: |
|
|
下取整 |
#i=FUP[#j]: |
|
|
自然数对数 |
#i=LN[#j]: |
|
|
指数函数 |
#i=EXP[#j]: |
|
|
或 |
#i=#jOR#k: |
逻辑运算一位一位地按二进制数执行 |
|
异或 |
#i=#jXOR#k: |
|
|
与 |
#i=#jAND#k: |
|
|
从BCD转为BIN |
#i=BCD#j; |
用于与PMC的信号交换 |
|
从BIN转为BCD |
#i=BCD#j; |
角度单位:
SIN、ASIN、COS、ACOS、TAN和ATAN的角度单位是度
ARCSIN#i=ASIN[#j]:
●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,270~90度;当参数(N0.6004¥0)NAT位设为1时,-90~90度。
● 当#j超过-1到1的范围时,发出P/S报警N0.111。
● 常数可替代变量#j。
ARCCOS#i=ACOS[#j];
● 取值范围从180~0度。
● 当#j超过-1到1的范围时,发出P/S报警N0.111。
● 常数可替代变量#j。
ARCTAN#i=ATAN[#j];
● 指定两边的长度,并用斜杠(/)分开
● 取值范围如下:当参数(N0.6004¥0)NAT位设为0时,0~360度[例如:当指定#i=ATAN[-1]/[-1];时,#1=225度]。当参数(N0.6004¥0)NAT位设为1时,-180~180度[例如:当指定#i=ATAN[-1]/[-1];时,#1=-135度]
● 常数可替代变量#j。
自然对数#i=LN[#j];
● 注意,相对误差可能大于10-8。
● 当反对数(#j)为0或小于0时,发出报警N0.111。
● 常数可替代变量#j。
指数函数#i=EXP[#j]:
● 注意,相对误差可能大于10-8
● 当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111
● 常数可替代变量#j。
上取整下取整:
CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;小于为下取整。例如:
假设#1=1.2,#2=-1.2。当执行#3=FUP[#1]时,2.0赋给#3;当执行#3=FIX[#1]时1.0赋给#3;当执行#3=FUP[#2]时,-2.0赋给#3;当执行#3=FIX[#2]时,-1.0赋给#3。
宏程序语句:包含算术或逻辑运算(=)的程序;包含控制语句(例如,用GOTO,DO,END)的程序;包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;除宏程序以外任何程序段都为NC语句。
与NC语句的不同:
即使置于单段程序运行方式,机床也不停止。但是,当参数N0.6000#5SBM设定位、为1时,在单段程序方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为移动程序段处理
与宏程序语句相同性质的NC语句:
含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。
无限循环;
当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。
宏程序调用和子程序调用之间的差别:点击关注更多内容
宏程序调用(G65)不同于子程序调用(G98),如下所述:
● 用G65,可以指定自变量(数据传送到宏程序)。M98没有该功能。
● 当M98程序段包含另一个NC指令(例如。G01.X100.0M98PP)时,在指令执行之后调用子程序。相反,G65无条件的调用子程序。
● M98程序段包含另一个NC指令(例如,G01X100.0M98PP)时在单程序方式中,机床停止。相反,G65机床不停止。
● 用G65,改变局部变量的级别。用M98,不改变局部变量的级别。
G65P-L -(自变量指定);P:要调用的程序;L:重复次数;自变量:数据传递到宏程序
391.FANUC宏程序编程的更多相关文章
- 使用Sharepoint定时运行Excel中宏程序
需求:因为Excel中数据量很大,其中包含了几个宏程序从其他数据源读取数据,运行一次宏需要比较长的时间,为了不影响使用,要求每天半夜运行一次Excel中的宏(无参数),Excel存放在共盘上. 解决方 ...
- MySQL 数据库应用程序编程
普通用户使用客户端应用程序(Client Application)和服务器程序(Server Application)通信以取得服务, 而服务器程序通常要和数据库服务器通信以取得数据存取服务, 这时就 ...
- API(Application Programming Interface,应用程序编程接口)
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码 ...
- SAS学习笔记37 宏程序中parmbuff选项
该选项用于指定宏可以接受可变参数列表,而且参数值保存在SYSPBUFF宏变量中.parmbuff的参数价值,其实就是每次执行宏程序时,可以指定不同数量的参数值,这些宏参数被保存在&syspbu ...
- 【ABAP系列】SAP ABAP 高级业务应用程序编程(ABAP)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 高级业务应用程 ...
- Flask 教程 第二十三章:应用程序编程接口(API)
本文翻译自The Flask Mega-Tutorial Part XXIII: Application Programming Interfaces (APIs) 我为此应用程序构建的所有功能都只适 ...
- 01:MFC应用程序编程
一 MFC的发展 VC 1.0->VC 5.0->VC 6.0->VC2008 SP1)->VS2010 二 MFC基础 1 MFC 微软基础类库 采用类的方式,将Win32 ...
- Linux 应用程序编程基础
一个计算机应用程序在内存中可以分成两个部分:存放代码的代码段和存放数据的数据段.代码段存放用户编写的代码;数据段存放栈和堆. 相关内存管理函数 #include <stdlib.h> vo ...
- Yarn应用程序编程实例
Yarn自带的Application示例程序:DistributedShell 和 UnManaged AM1 DistributedShell ,故名思意,是一个分布式运行shell命令的应用程序, ...
随机推荐
- Akka(2):Actor生命周期管理 - 监控和监视
在开始讨论Akka中对Actor的生命周期管理前,我们先探讨一下所谓的Actor编程模式.对比起我们习惯的行令式(imperative)编程模式,Actor编程模式更接近现实中的应用场景和功能测试模式 ...
- Codeforces Round #102 (Div. 2) 题解
A. 解一个方程. 还是厚颜无耻地暴力吧~ #include <iostream> using namespace std; int r1, r2, c1, c2, d1, d2; boo ...
- Creating beautiful charts in chinese with ggplot2
Before we start My chinese skills are poor and biased. I did learn during my internship and I contin ...
- mongodb 创建LBS位置索引
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver< ...
- Unity应用架构设计(11)——一个网络层的构建
对于客户端应用程序,免不了和远程服务打交道.设计一个良好的『服务层』能帮我们规范和分离业务代码,提高生产效率.服务层最核心的模块一定是怎样发送请求,虽然Mono提供了很多C#网络请求类,诸如WebCl ...
- 线程-join();
一.join()方法,官方描述 waits for this thread to die 等待当前线程死亡: 源码: //无参,默认调用join(0) public final void join ...
- EntityFramework Core映射关系详解
前言 Hello,开始回归开始每周更新一到两篇博客,本节我们回归下EF Core基础,来讲述EF Core中到底是如何映射的,废话少说,我们开始. One-Many Relationship(一对多关 ...
- 正确地缩写 document.querySelector
北京的夕阳,伴随淡淡的霾殇.从写字楼望去,光线是那么昏黄.没有孤雁,也没有霞光,遥想当年,还是 jQuery 独霸一方.那时的我们,写程序都习惯了使用 $,至少在对美元符号的喜爱上,与 PHP 达成了 ...
- XWindow启动流程
X Window系统架构 一.基本概念: 1.X Client:X客户端,运行在远端主机上 X Client最重要的工作就是处理来自 X Server 的动作,将该动作处理成为绘图数据, 再将这些绘图 ...
- Hibernate入门(三)
一 Hibernate生成器类 Hibernate中,标签id中的generator标签用于生成持久化类对象的唯一标识.所有的生成器类都实现了org.hibernate.id.IdentifierGe ...