首页 > 其它 > 正文
记录FANUC数控系统数据采集二次开发.html

目录

目的:采集数控系统的数据,并作记录或展示。

一、找到FOCAS1/2开发包,需从厂家处购买,也可在百度上搜索。该开发包提供C++和C#语言接口。


可在百度自行搜索

二、在机床面板上设置通信相关参数,电脑端设置相关通信参数;
1、机床面板设置如下面几张图

切换内嵌和PCMCIA需要断电重启。

再设置电脑IP地址为192.168.3.40,40可改为其它值,不会设置可参考https://zhuanlan.zhihu.com/p/666828133

2、测试通信是否正常

在电脑系统命令行中测试一下通信是否正常,电脑需要先安装telnet(可以在百度搜索https://baijiahao.baidu.com/s?id=1713848541788840210&wfr=spider&for=pc),安装好后在命令行输入telnet 192.168.3.39 8193,按回车键

如果通信成功则会出现下图样式

如果不成功则会出现下图样式

通讯不成功需要检查一下网线是否连接好,或者将机床断电重启一下,或者检查数控机床以太网相关参数,这个需要查询FANUC厂家提供的参数参考手册。以太网相关参数编号如下:

301 #1 = 1
901 =0
904 =0
970 =0
971 =0
973 =0
974 =0
975 =0
976 =0
8706 =0
11506 =0
11532 =0
11533 =0
14880 =0
14882 =0
14885 =0
24309 =0

三、通过VS或其它编程软件进行编程和进行测试

编程以VS2022软件读写宏变量为例展示

1、新建C++控制台应用程序,命名为FanucDemo

在项目-属性中将SDK关闭,如下图

2、准备工作

需要先将FOCAS1/2开发包中的Fwlib64.h Fwlib64.lib Fwlib64.dll fwlibe64.dll文件放入项目对应文件夹下

Fwlib64.h、Fwlib64.lib与main.cpp在一个文件夹下

Fwlib64.dll、fwlibe64.dll放入项目的FanucDemo\x64\Debug\文件夹下

3、实现代码
#include "Fwlib64.h"
#include "iostream"
using namespace std;
#pragma comment(lib,"./Fwlib64.lib")
//读宏变量
short rdmacro(unsigned short h, short number)
{
    ODBM macro;
    char strbuf[12];
    short ret;
    ret = cnc_rdmacro(h, number, 10, &macro);
    if (!ret) {
        sprintf(&strbuf[0], "  %09ld", abs(macro.mcr_val));
        strncpy(&strbuf[1], &strbuf[2], 10 - macro.dec_val);
        strbuf[10 - macro.dec_val] = '.';
        if (macro.dec_val <= 0) strbuf[strlen(strbuf) - 1] = '\0';
        if (macro.mcr_val < 0) strbuf[0] = '-';
        printf("%s\n", strbuf);
    }
    else
        printf("**********\n");
    return (ret);
}
//写宏变量
short wrmacro(unsigned short h, short number, long value, short dec)
{
    short ret;
    ret = cnc_wrmacro(h, number, 10, value, dec);
    return (ret);
}
int main(int argc, char* argv[]) {
    unsigned short h;
    short ret;
    ODBST buf;
    ret = cnc_allclibhndl3("192.168.3.39", 8193, 10, &h);
    if (!ret) {
        cnc_statinfo(h, &buf);
        short iNumber = 100;
        rdmacro(h, iNumber);
        wrmacro(h,iNumber,iNumber*437,3);
        rdmacro(h, iNumber);
        cnc_freelibhndl(h);
        printf("OK!(%d)\n", ret);
    }
    else {
        printf("ERROR!(%d)\n", ret);
    }
    return 0;
}

先将系统宏变更100设置为258.14如下图

再运行项目,会弹出如下

同时观察系统宏变量100是否已经自动改变成45.1如下图

猜你喜欢
picture loss