Fanuc(发那科)机床读取主轴倍率和进给倍率

2024-01-26 23:20

本文主要是介绍Fanuc(发那科)机床读取主轴倍率和进给倍率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、倍率是什么

二、如何控制倍率

三、倍率的数据存在哪

四、代码实现

说明 


一、倍率是什么

以主轴倍率为例

主轴倍率可以通过以下公式计算:

主轴倍率 =主轴实际转速/主轴指令转速

:主轴指令转速是指我们NC程序文件中S Code,即指令转速

二、如何控制倍率

    一般通过机床外置的旋钮,来控制倍率。

三、倍率的数据存在哪

           Focas本身并不提供直接读取倍率的方法,故需要从其他地方来找倍率数据存放的地方。由于倍率是外置旋钮控制的,外围元器件的数据存放在PLC(Fanuc叫PMC)的地方,所以从PMC地址点位表中获取。

注:

1、主轴倍率的地址是G030,进给速度的倍率是G012。

2、加了*号的表示此数据需要取反,由于G地址是16位,故需要用65535减去获取的值。

四、代码实现

读取PMC

 public int? ReadPMC(string address){if (!IsConnected) return null;string addressKindStr = address.Substring(0, 1);short addressKindInt = 0;int addressNo = int.Parse(address.Substring(1, 4).TrimStart('0') == "" ? "0" : address.Substring(1, 4).TrimStart('0'));if(!Enum.TryParse<PMCAddressType>(addressKindStr,out PMCAddressType pMCAddressType)){//PMC地址类型转换不成功,这抛出异常throw new NCException(EQName,ClassName, "ReadPMC", $"ReadPMC fail,AddressType Convert fail,address:{address}");}addressKindInt = (short)pMCAddressType;short b = 1;ushort start = Convert.ToUInt16(addressNo);ushort end = Convert.ToUInt16(addressNo + 1);ushort f = 10;//8+2Focas1.IODBPMC1 iodbpmc0 = new Focas1.IODBPMC1();short ret = Focas1.pmc_rdpmcrng(_flibhndl, addressKindInt, b, start, end, f, iodbpmc0);//这边可能有点问题if (ret== Focas1.EW_OK){if(iodbpmc0.idata != null&& iodbpmc0.idata.Count()>0){return iodbpmc0.idata[0];}else{throw new NCException(EQName, ClassName, "ReadPMC", $"ReadPMC fail,Get PMCData is null,address:{address}");}}else{//如果有ret==-16 需要断开连接重新  从而获取Handle if (ret == -16){DisConnect();//直接断开连接,从而获得重连的机会}throw new FanucException(EQName, ClassName, "ReadPMC", ret, $"pmc_rdpmcrng  fail,address:{address}");}}

 主轴倍率:ReadPMC("G0030");

 进给倍率:65535 - ReadPMC("G0012");

注:

Focas的CS文件中的类IODBPMC1中的idata数据类型需要改成ushort[]

    [StructLayout(LayoutKind.Explicit)]public class IODBPMC1{[FieldOffset(0)]public short type_a;    /* PMC address type */[FieldOffset(2)]public short type_d;    /* PMC data type */[FieldOffset(4)]public short datano_s;  /* start PMC address */[FieldOffset(6)]public short datano_e;  /* end PMC address */[FieldOffset(8),MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]public ushort[] idata;//数据类型从short[]改成ushort[]} /* In case that the number of data is 5 */

说明 

本人专注机床的数据采集和程序传输,致力于机械加工行业的数字化系统开发

以下是自己开发的所支持的机床数据采集源代码类库(部分),

这篇关于Fanuc(发那科)机床读取主轴倍率和进给倍率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/648362

相关文章

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述 一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。 二、问题分析 argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在

下载/保存/读取 文件,并转成流输出

最近对文件的操作又熟悉了下;现在记载下来:学习在于 坚持!!!不以细小而不为。 实现的是:文件的下载、文件的保存到SD卡、文件的读取输出String 类型、最后是文件转换成流输出;一整套够用了; 重点: 1:   操作网络要记得开线程; 2:更新网络获取的数据 切记用Handler机制; 3:注意代码的可读性(这里面只是保存到SD卡,在项目中切记要对SD卡的有无做判断,然后再获取路径!)

ROS1 + Realsense d455 固件安装+读取rostopic数据

目录 安装固件(一定要匹配)ROS1 wrapper 安装方法Realsense SDK 安装方法Realsense Firmware 安装方法 修改roslaunch配置文件,打开双目图像和IMU数据其他坑点参考链接 安装固件(一定要匹配) 如果你是使用ROS1获取realsense数据的话,一定要注意,SDK, Firmware的版本不是越新越好!!,这是因为intel已经不

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。 实现过程概述: 模块与功能: re 模块:用于从 OCR 识别出的文本中提取所需的信息。 日期模块:计算年龄。 pandas:处理和操作表格数据。 PaddleOCR:百度的

java读取resource/通过文件名获取文件类型

java读取resource java读取resource目录下文件的方法: 借助Guava库的Resource类 Resources.getResource("test.txt") 通过文件名获取文件类型 mongodb java

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(4)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)-CSDN博客  这节就是真正的存储数据了   理清一下思路: 1.存储路径并检查 //2进制文件类存储private static string Data_Binary_Pa

Linux下读取默认MAC地址

一、适用范围 这里主要介绍读取网卡MAC地址的方法,适用于EasyARM-i.MX287A开发套件,其应用原理及配套示例也适用于下表1.1所列出的产品型号。 二、原理介绍 MAC(Media Access Control,介质访问控制)是用来定义网络设备的位置。用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给

win7上R读取excel过程

win7上R读取excel过程 按照书上操作,出现 Error in odbcConnectExcel("c:/r-workspace/contacts.xls") :    odbcConnectExcel is only usable with 32-bit Windows 测试使用剪贴板(先将数据复制,则存在剪贴板了)的读取excel的方法,是可

python读取pdf内容写入到Excel表格中

要从每个 PDF 文件中提取全文内容,并将这些内容粘贴到一个新的或现有的表格中,你可以使用 Python 的库来完成这一任务。以下是一个简化的步骤和示例代码,展示如何实现这个过程。 步骤概述 读取文件夹中的所有 PDF 文件。提取每个 PDF 文件的全文内容。创建一个新的 Excel 表格或使用现有的表格。将提取的内容粘贴到表格中,每个 PDF 的内容放在一个垂直单元格中。保存表格文件。 所