读取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=实际倍率

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

读取FANUC进给倍率的更多相关文章

  1. hdu4038贪心(最快上升倍率,好题)

    题意:       给你n个数,然后有两种操作 1.给其中的一个数+1,2.在序列里面增加一个1,然后给你一个m,表示进行了m次操作,最后问你操作之后所有数乘积最大是多少? 思路:      徒弟给我 ...

  2. Mitsubishi (三菱) Fanuc(发那科),CNC,网口数据采集,NC程序下发(其它品牌CNC,哈斯 马扎克 兄弟等,正在开发中)

    1.话不多说,先看效果 三菱CNC Fanuc CNC 2.能采集的数据有如下: 产量,状态,轴负载,坐标,主轴转速,三个倍率(主轴倍率 进给倍率 快速倍率),进给速度,当前加工程序名/程序号,当前程 ...

  3. Unity读取 JSon配置文件

    一.记录 只是记录,现在在项目中删除掉了.先保留下来,以飨来着!!当然有包括自己. 二.读取配置的代码 简单粗暴 [ExecuteInEditMode] public class Config : M ...

  4. CNC Fanuc 设备数据采集

    为了这个Fanuc(发那科)数控机床数据的采集也花费了不少精力,先是去供应商那里了解,基本都是代理商,没有技术支持. 在网上也有关于Fanuc的以太网Ethernet连接文档,那里面有说明,大概是开发 ...

  5. Java利用内存映射文件实现按行读取文件

    我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好 ...

  6. PCB 机器学习(ML.NET)初体验实现PCB加投率预测

    使用ML.NET建立PCB加投率模型对单一蚀刻工序进行加投率预测, 此实例为最简单预测,要想实现全流程加投率预测挑战难度还是挺大的,可以查看另一种关于大数据在PCB行业应用---加投率计算基本原理:P ...

  7. Android MediaPlayer 音频倍速播放,调整播放速度

    本文链接: Android MediaPlayer 倍速播放,调整播放速度 现在市面上的很多音视频App都有倍速播放的功能,例如把播放速度调整为0.5.1.5.2倍等等. 从Android API 2 ...

  8. 西门子 S7-1500 PLC,使用手轮控制伺服电机

    西门子 S7-1500 PLC,使用手轮控制伺服电机 本文描述了一种,1500PLC使用叠加定位的方法,实现手轮操作的方法. 手轮操作需要的功能 数控机床等设备上的电子手轮,起源于机械手轮.机械手轮是 ...

  9. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

随机推荐

  1. 用深度优先搜索(DFS)解决多数图论问题

    前言 本文大概是作者对图论大部分内容的分析和总结吧,\(\text{OI}\)和语文能力有限,且部分说明和推导可能有错误和不足,希望能指出. 创作本文是为了提供彼此学习交流的机会,也算是作者在忙碌的中 ...

  2. 百万年薪python之路 -- 并发编程之 多线程 三

    1. 阻塞,非阻塞,同步,异步 进程运行的三个状态: 运行,就绪,阻塞. 从执行的角度: ​ 阻塞: 进程运行时,遇到IO了,进程挂起,CPU被切走. ​ 非阻塞: 进程没有遇到IO 当进程遇到IO, ...

  3. The usage of Markdown---杂谈:缩进/换行/分割线/注释/文字颜色

    目录 1. 序言 2. 缩进 3. 换行 4. 分割线 5. 注释 6. 改变文字大小和颜色 更新时间:2019.09.14 1. 序言   今天一口气更新了接近10篇博客(虽然只是将我之前基本码好的 ...

  4. 微信公众号 访问403问题,样式错乱,js失效

    我服了,还是那个微信公众号小项目. 这个项目用的是ssm+velocity 问题的是,有时候页面加载会乱,js,css都加载不出来. 这个问题也是很久了,前几天开会,那个甲方医院很不开心,说是要找下家 ...

  5. Java多线程编程(四)Lock的使用

    一.使用ReentrantLock类 在Java多线程中,可以使用synchronized关键字来实现线程之间的同步互斥,但ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大, ...

  6. django-模板之自动转义autoescape(八)

    index.html {{QQ}} views.py def index(request): context={ 'QQ':'<a href="http://www.qq.com&qu ...

  7. SpringBoot整合elasticsearch(三)

    Docker安装elasticsearch 启动注意2点,1是内存,2是线程数(此处进行简单安装,后面会详细补充es文档) [root@topcheer ~]# docker images REPOS ...

  8. WinDag基础1

    建立调试会话 用户层调试会话的建立 直接创建进程并调试 附加到已经打开的进程 侵入式附加:接管正在运行的进程,可以进行调试 非侵入式附加:只能读取进程信息,不能接收目标进程的调试事件 通常情况下一个程 ...

  9. 框架搭建与EF常用基类实现

    前两篇简单谈了一些.Net Core的优势以及机构设计的一些思路,这一篇开始,我们将从零开始搭建架构,底层我们将采用EF来访问数据库,所以这篇我们将贴一下EF常用操作的基类. 简单介绍下一些类库将要实 ...

  10. linux 编译引用动态库时,报GLIBC_2,14 not found的处理方法

    这种错误一般是其引用的libc.so,其中含有版本较高的函数导致. 查看及解决办法: objdump -p ./libdmapi.so 显示: version References: ... requ ...