为了这个Fanuc(发那科)数控机床数据的采集也花费了不少精力,先是去供应商那里了解,基本都是代理商,没有技术支持。

在网上也有关于Fanuc的以太网Ethernet连接文档,那里面有说明,大概是开发需要SDK(focas2),知道这点就是进步很大,就在淘宝上买了SDK,但是打开才发现里面的接口众多,光看这接口文档就花了不少时间,终于找到了关于网络通信的两个重要接口,打开连接

public static extern short cnc_allclibhndl3([In, MarshalAs(UnmanagedType.AsAny)] Object ip, ushort port, int timeout, out ushort FlibHndl);

关闭连接 public static extern short cnc_resetconnect(ushort FlibHndl); 这一步很重要,但是后面的就难了。

最基本的,我想知道Fanuc当前已完成的工件数,要想取工件计数就不知道调用哪个接口了,大海捞针。几乎我把所有和read相关的接口都试了一遍,和当前机台面板上的工件计数比较都不对。这深层次的计数问题,找代理商根本没用,他们要不是电话不通,就是“我也不了解”、“我不懂开发”。

最后发现,发那科的C#开发包只用到了 Fwlib32.dll 和 fwlibe1.dll 是关于以太网通信的。

调用的接口 public static extern short cnc_rdmacro(ushort FlibHndl, short a, short b, [Out, MarshalAs(UnmanagedType.LPStruct)] ODBM c); 也就是读取Fanuc里面的宏变量的值。

具体代码C#:

         private bool ConnectFanuc(string ip, ref ushort handler, ushort port = )
{
try
{
short result = Focas1.cnc_allclibhndl3(ip, port, , out handler);
return result == ;
}
catch (Exception err)
{
_logger.Error(ip, err);
return false;
}
} private void CloseFanuc(ushort handler)
{
try
{
short result = Focas1.cnc_resetconnect(handler);
if (result != )
{
_logger.Error("Fanuc关闭连接异常");
}
}
catch (Exception err)
{
_logger.Error("Fanuc关闭连接", err);
}
} private int GetFanucData(ushort handler)
{
try
{
Focas1.ODBM result = new Focas1.ODBM();
short r = Focas1.cnc_rdmacro(handler, 0xF3D, 0xA, result);
var qty = result.mcr_val.ToString().Substring(, result.mcr_val.ToString().Length - result.dec_val);
return Convert.ToInt32(qty);
}
catch (Exception err)
{
_logger.Error(err);
return -;
}
}

CNC Fanuc 设备数据采集的更多相关文章

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

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

  2. Tcp方式采集CNC兄弟设备数据

    先说下为了采集CNC兄弟设备的数据可谓是一波三折. 因为首次接触brother设备(CNC)是直接在设备上设置IP.用户名.密码,然后直连PC,用Ftp可以查看和下载CNC brother设备里的数据 ...

  3. 国外物联网平台(8):Telit

    国外物联网平台(8) ——Telit 马智 定位 We Bring IoT to Life Telit提供世界上最全面的高性能物联网模块.连接服务和软件. 产品体系 模块 Telit提供丰富专业的物联 ...

  4. 远程监控显示brother数控机床数据

    最近几个月公司太忙了,到现在已经连续出差两个多月了. 这个项目这要做mes系统,涉及到产品在机床的加工过程监控,然后led看板显示产品进度. 这里的主角是日本的brother数控机床,服务器按照一定频 ...

  5. Socket开发框架之框架设计及分析

    虽然在APP应用.Web应用.Winform应用等大趋势下,越来越多的企业趋向于这些应用系统开发,但是Socket的应用在某些场合是很必要的,如一些停车场终端设备的接入,农业或者水利.压力监测方面的设 ...

  6. labview 中的一些简写全称

    MAX:Measurement & Automation Explorer 测量自动化管理器 :可用于配置DAQ通道名称,VISA资源名称和IVI逻辑名称. DAQ: Device Data ...

  7. MES是什么,MOM是什么?

    MES简介 MES(Manufacturing Execution System)制造执行系统,用于制造业车间级的信息化管理系统.单说MES系统这个概念比较广泛,大致分为以下几个方面:计划调度.生产. ...

  8. mysql存储引擎和索引

    正确的创建合适的索引,是提升数据库查询性能的基础. 第一章 mysql之索引 索引的定义:索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构. 我们为什么要使用索引: a.极大的减少存储引 ...

  9. Mysql基本架构及查询流程

    mysql体系结构简单概述: Connectors:接入方,支持协议很多 Management Serveices & Utilities:系统管理和控制工具例如:备份恢复,mysql复制集群 ...

随机推荐

  1. 虚机centos和本机Windows之间文件的拷贝无法用xftp时用FileZilla也行

    步骤如下: 1.如果Centos没有安装ssh,则需要先安装: 2.查看虚拟机中IP地址,命令如下: ifconfig 3.在windows中安装ftp软件 FileZilla启动软件如图: 6  这 ...

  2. Frame动画实战

    Android动画分为Tween动画和Frame动画,Tween动画主要包括图片的放大缩小.旋转.透明度变化.移动等等操作:Frame动画则简单得多了,就是把一张张的图片连续播放产生动画效果. 本节主 ...

  3. console对象

    今天无意中看到console.info()的时候不自觉的楞了一下,对于console.info()确实不是十分的了解,平时就是用console.log(),既然不太明白就去网上看了一下关于consol ...

  4. 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供) 【转】

    国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data ...

  5. JAVA Web day01--- Android小白的第一天学习笔记

    HTML 1.HTML的概述 1.1.HTML简介 l HTML(Hyper Text Markup Language):超文本标记语言. >标记就是标签 >HTML不是一种编程语言,而是 ...

  6. 深入了解C#中的静态变量和静态构造函数

    深入的剖析C#中静态变量和静态构造函数: 在日常的程序开发过程经常会使用到静态变量,众所周知,静态变量时常驻内存的变量,它的生命周期是从初始化开始一直到Application结束.但是,我们经常会忽略 ...

  7. js 文本框只能输入数字

    <input type="text" value="" style="ime-mode:Disabled"  onkeyup=&quo ...

  8. Python 基礎 - 淺copy補充說明

    在 import copy 這個模塊裡 基於第一個列表來做淺copy,實際上第二個列表裡的元素,是第一個列表的 引用. 接下來介紹 淺copy有三種方式可以使用 #!/usr/bin/env pyth ...

  9. 支持向量机 (SVM)分类器原理分析与基本应用

    前言 支持向量机,也即SVM,号称分类算法,甚至机器学习界老大哥.其理论优美,发展相对完善,是非常受到推崇的算法. 本文将讲解的SVM基于一种最流行的实现 - 序列最小优化,也即SMO. 另外还将讲解 ...

  10. Linux记录从此开始

    Linux记录从此开始~ 希望自己多写代码同时多记录~