读取FANUC进给倍率
读取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 |
PMC |
0-767 |
PMC/L |
||
1 |
F |
0-767 |
PMC |
0-767 |
PMC/L |
||
2 |
Y |
0-127 |
PMC |
0-127 |
PMC/L |
||
3 |
X |
0-127 |
PMC |
0-127 |
PMC/L |
||
4 |
A |
0-249 |
PMC |
0-249 |
PMC/L |
||
A |
9000-9249 |
PMC |
|
9000-9249 |
PMC/L |
||
5 |
R |
0-7999 |
PMC |
0-1499 |
PMC/L |
||
6 |
T |
0-449 |
PMC |
0-79 |
PMC/L |
||
T |
9000-9499 |
PMC |
|
9000-9079 |
PMC/L |
||
7 |
K |
0-99 |
PMC |
0-19 |
PMC/L |
||
8 |
C |
0-399 |
PMC |
0-79 |
PMC/L |
||
9 |
D |
0-9999 |
PMC |
0-2999 |
PMC/L |
||
12 |
E |
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=实际倍率。
可能于数据存储的高低位顺序有关,我没有再继续深入研究这个问题。