读取FANUC机床的倍率信息需要用到 FOCAS链接库。

根据FANUC的连接手册可以知道,进给倍率信号存在 Gn012寄存器中。在机床上更改倍率开关,发现G0012寄存器值变化,经验证G0012就是要读取的寄存器。

查阅FOCAS函数说明,使用 pmc_rdpmcrng 函数进行读取。

输入

(1)库句柄;(获取的句柄)

(2)PMC地址类型的ID code; (0)

  • 0i-D参考范围

ID code

PMC地址类型

参考范围

(PMC类型)

0

G (Signal to PMC->CNC)

0-767
1000-1767
2000-2767(Note1)
3000-3767(Note1)
4000-4767(Note1)
5000-5767(Note1)
6000-6767(Note1)
7000-7767(Note1)
8000-8767(Note1)
9000-9767(Note1)

PMC

0-767
1000-1767(Note1)

PMC/L

1

F
(Signal to CNC->PMC)

0-767
1000-1767
2000-2767(Note1)
3000-3767(Note1)
4000-4767(Note1)
5000-5767(Note1)
6000-6767(Note1)
7000-7767(Note1)
8000-8767(Note1)
9000-9767(Note1)

PMC

0-767
1000-1767(Note1)

PMC/L

2

Y
(Signal to PMC->machine)

0-127
200-327
400-527(Note2)
600-727(Note2)
1000-1127(Note2)

PMC

0-127
200-327(Note2)
1000-1127(Note2)

PMC/L

3

X
(Signal to machine->PMC)

0-127
200-327
400-527(Note2)
600-727(Note2)
1000-1127(Note2)

PMC

0-127
200-327(Note2)
1000-1127(Note2)

PMC/L

4

A
(Message)
   *Message display

0-249

PMC

0-249

PMC/L

A
(Message)
   *status display

9000-9249

PMC

9000-9249

PMC/L

5

R
(Internal relay)

0-7999

PMC

0-1499

PMC/L

6

T
(Timer)
   *Changeable timer

0-449

PMC

0-79

PMC/L

T
(Timer)
   *Variable-timer precision(Note3)

9000-9499

PMC

9000-9079

PMC/L

7

K
(Keep relay)

0-99
900-999

PMC

0-19
900-999

PMC/L

8

C
(Counter)

0-399
5000-5199

PMC

0-79
5000-5039

PMC/L

9

D
(Data table)

0-9999

PMC

0-2999

PMC/L

12

E
(Extended relay)

0-9999

PMC

0-9999

PMC/L

 

(3)数据类型;(ushort)

(4)PMC地址起始号;(12)

(5)PMC地址结束号;(13)

(6)设定数据长度。(16)

type_d数据类型是0(字节型)

长度 = 8 + N

type_d数据类型是1(字型)

:

长度= 8 + N × 2

type_d数据类型是2(长字型)

:

长度= 8 + N × 4

* N是数据写入的个数(如将一个数写进R1000到R1001,那么此时N=2)。


输出

输出类IODBPMC0、IODBPMC1、IODBPMC2三者中的一个。

类的定义如下所示,其中

type_a表示PMC地址类型的ID code;

type_d表示PMC数据类型;

datano_s表示PMC地址起始号;

datano_e表示PMC地址结束号;

经测试可以读取寄存器G0012的值,读取到的数值与实际倍率存在如下关系     255-G0012=实际倍率

可能于数据存储的高低位顺序有关,我没有再继续深入研究这个问题。

最新文章

  1. VS2012的调试插件Image Watch,opencv编程神器
  2. 如何重新安装DEDECMS织梦系统
  3. sql 通过游标 拆分xml结构
  4. HDU4542 小明系列故事——未知剩余系
  5. iOS开发中WebP格式的64位支持处理
  6. 【网络流#8】POJ 3469 Dual Core CPU 最小割【ISAP模板】 - 《挑战程序设计竞赛》例题
  7. C++头文件#include<bits/stdc++.h>
  8. MindNode for mac 思维导图
  9. 运维技巧-Nginx日志格式
  10. 15.linux基础
  11. NeuChar 平台使用及开发教程(六):成为开发者
  12. Java基础 -- 复用类(组合和继承)
  13. Silverlight多重表头实现
  14. 细说java系列之反射
  15. mysql 开发进阶篇系列 28 数据库二进制包安装(centos系统准备)
  16. jquery-ui弹框登录前端写法
  17. axios 参数为payload的解决方法
  18. oracle简单存储过程以及如何查看编译错误
  19. AC自动机练习
  20. kafka 消费者offset记录位置和方式

热门文章

  1. 远程控制服务(SSH)之Linux环境下客户端与服务端的远程连接
  2. Distinct 实现自定义去重
  3. Excel接口导出,导入数据库(.Net)
  4. 基于深度学习方法的dota2游戏数据分析与胜率预测(python3.6+keras框架实现)
  5. leetcode系列---3Sum C#code
  6. Python监控SQL Server数据库服务器磁盘使用情况
  7. Android 开发中是否应该使用枚举?
  8. ELK分布式日志+NLog在.NetCore中的应用
  9. Anaconda的安装和详细介绍(带图文)
  10. Python基础学习(一)之Python的概述与环境安装