本文主要是介绍Fanuc(发那科)机床读取加工件数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、加工件数是什么
机床上的加工件数用来记录NC程序被执行了多少次,系统默认NC程序执行到M02、M30代码的时候,加工计数就会加1。当然也可以自定义工件计数的M Code,详情请参考FANUC 系统自带的工件计数功能该如何使用
二、加工件数有什么用
加工件数的作用是用来记录机床加工了多少个零件。但加工件数是累计值,只要不手动清零会一直增加,除非达到设定值报警。有的没有数据采集系统的企业会每天开班的时候员工会手动将工件计数清零,然后等下班的时候来记录此设备生产了多少个零件。
三、加工件数=零件产量?
等于也不等于,或者说有的情况下机床上的加工件数等于零件的实际产量,有的情况下则不然。
1.等于的情况
当一个零件在此机床上加工只需要一个NC程序就可以完成所有工序的加工,且毛坯到成品是1出1。
2.不等于的情况
当一个零件在此机床上加工需要多个NC程序才可以完成所有工序的加工,或者毛坯到成品是1出多的关系。
四、工件计数数据存在哪
Focas本身并不提供直接读取工件计数的方法,故需要从其他地方来找工件计数数据存放的地方。工件计数可以从参数6711中读取。
五、代码实现
读取参数的方法
/// <summary>/// 读取参数的方法/// </summary>/// <param name="number">参数号</param>/// <returns></returns>public int? ReadPara(short number){Focas1.IODBPSD_1 psd_1 = new Focas1.IODBPSD_1();if (!IsConnected) return null;short ret = 0;ret = Focas1.cnc_rdparam(_flibhndl, number, Focas1.ALL_AXES, 4 + 4 * Focas1.MAX_AXIS, psd_1);if (ret == Focas1.EW_OK){//应该是idatareturn psd_1.ldata;}else{//如果有ret==-16 需要断开连接重新 从而获取Handle if (ret == -16){DisConnect();//直接断开连接,从而获得重连的机会}throw new FanucException(EQName, ClassName, "ReadPara", ret, "cnc_rdparam fail");}}
说明
本人专注机床的数据采集和程序传输,致力于机械加工行业的数字化系统开发
以下是自己开发的所支持的机床数据采集源代码类库(部分),
这篇关于Fanuc(发那科)机床读取加工件数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!