发那科 / 法兰克(Fanuc)CNC数据采集

一,概述

前面介绍过,发那科CNC数据采集一般有两种方法:

(1)通过Focas开发包进行二次开发,Focas开发包支持win32、win64、linux32、linux64、arm linux 32

(2)通过TCP协议方法。该方法不局限于CPU架构(x86、ARM、MIPS等等),不局限操作系统(Windows、Linux、FreeRTOS、RT-Thread、μC/OS、裸机等等均可),不局限编程语言(Java、Python、C/C++、C#、Go等等均可)。

下面对两种方法都进行相应介绍。

PS:使用TCP协议方式。非常适合于ARM Linux 64位程序,以及单片机(STM32、GD32、ESP32等);也可以很方便集成到软件平台里。


二,FOCAS 1/2 开发包方式

1,使用SDK的Demo源码可以从下面地址下载

发那科CNCSDKDemo源码,Focas1_2SDKDemosourcecode,,C#-C#文档类资源-CSDN下载

主要的库是Fwlib32.dll以及fwlib1.dll。

(1)Fwlib32.dll是负责和fanuc通讯的组件,用来对客户端发送的数据进行转义加密再和数控系统通讯。

(2)fwlib32.dll是核心的函数操作库,封装了各类数据读取函数。

        所以,采集程序是对fwlib32.dll进行函数调用,fwlib32.dll再将数据通过Fwlib32.dll库和数控系统进TCP通讯,数控系统响应数据返回给Fwlib21.dll,Fwlib21.dll再将数据返回给fwlib32.dll进行解析,最终反馈采集程序。
 

2,撸代码

namespace FANUC
{
    public partial class control_axis : Form
    {
        public control_axis()
        {
            InitializeComponent();
        }
        Fanuc.ODBPOS fos = new Focas1.ODBPOS();
        private void duqu_position_rel_info()//读取相对的位置信息
        {
            short num = Fanuc.MAX_AXIS;
            short type = -1; ;
            short ret = Fanuc.cnc_rdposition(Fanuc.h, type, ref num, fos);
            if (ret == 0)
            {
                listBox1.Items.Add(fos.p1.rel.name.ToString() + ":  " + fos.p1.rel.data * Math.Pow(10, -fos.p1.rel.dec));
                listBox1.Items.Add(fos.p2.rel.name.ToString() + ":  " + fos.p2.rel.data * Math.Pow(10, -fos.p2.rel.dec));
                listBox1.Items.A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千源万码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值