三菱(MITSUBISHI)CNC数据采集

news/2024/11/7 21:13:47/

一,概述

前面介绍过,三菱CNC数据采集一般有两种方法:

(1)通过官方A2 API(也叫EZSocket)进行数据采集,需要安装A2驱动包(仅适用于windows系统)

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

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

PS:建议直接用纯协议方式。比如产品使用ARM Cortex-M,可以做到非常高的性价比,也可以方便集成到软件平台里,欢迎交流扣扣17082750。

二,A2 API方式

1,安装驱动包,可从下面地址下载:

三菱CNC_三菱数控系统_数据采集_驱动_A2驱动,附c#demo源码-C#文档类资源-CSDN下载

2,安装完成后在默认路径下会产生通讯库,可以直接用最新版本的,复制到程序运行目录下,直接引用就可以了。

3,撸代码

if (lSystemType == (int)sysType.EZNC_SYS_MELDASC6C64 || lSystemType == (int)sysType.EZNC_SYS_MELDAS700M  || lSystemType == (int)sysType.EZNC_SYS_MELDAS700L  || lSystemType == (int)sysType.EZNC_SYS_MELDAS800M  || lSystemType == (int)sysType.EZNC_SYS_MELDAS800L)
{if (lSystemType == (int)sysType.EZNC_SYS_MELDASC6C64){lResult = EZNcCom.SetTCPIPProtocol(strHostName, 64758);}else{lResult = EZNcCom.SetTCPIPProtocol(strHostName, 684);}ErrorCheck("SetTCPIPProtocol");if (lResult == 0){lResultOpen = EZNcCom.Open2(5, lMachine, lTimeOut, "EZNC_LOCALHOST");//EZNC_LOCALHOST//lResultOpen = EZNcCom.Open(lSystemType, lMachine, lTimeOut, strHostName);//EZNC_LOCALHOSTlResult = lResultOpen;ErrorCheck("Open");}
}
else
{lResultOpen = EZNcCom.Open2(lSystemType, lMachine, lTimeOut, strHostName);ErrorCheck("Open");
}

4,EZSocket可以直接实现的有下述功能:
(1)通信功能
(2)NC系统功能(如系统版本、报警等读取)
(3)位置功能(各种坐标读取等)
(4)命令值(G代码模态值、刀补编号、M/S/T/B功能指令模态等读取)
(5)程序(程序编号、段编号、当前段读取)
(6)时间(系统时间、自动运行时间等读取)
(7)轴监视(伺服轴、主轴、辅助轴等各种状态读取)
(8)运行状态(在原点位置等状态读取)
(9)文件(PC文件和NC文件读写)
(10)共变量(共变量读取)
(11)局变量(局变量、子程序嵌套层数读取)
(12)刀具(刀补数据、刀具寿命管理数据、工件坐标系等读取)
(13)ATC(刀库功能读写)
(14) 参数(所有NC内参数读写)
(15)操作(部分NC操作管理)
(16)PLC接口(PLC接口读写)
(17) 其它NC特殊功能读写

三,纯协议方式

直接建立TCP连接,能够采集的数据也是非常丰富的

bool CMITSUBISHI_PROTOCOLDlg::LinkFirstMachine(int cn)
{// 连接服务器if(!m_bInit[cn])           //如果没有连接服务器{	  //以下从文件中得到服务器的IP地址m_clientsocket.Create();GetDlgItemText(IDC_IPADDRESS_NC,IPstring[cn]);//控制器原IP地址	 if(m_clientsocket.Connect(IPstring[cn],683)){           m_clientsocket.Init(this);		  Message_bar.Format("已经连接%d",cn);GetDlgItem(IDC_STATIC_MESS)->SetWindowText(Message_bar); m_bInit[cn]=true;}else{m_clientsocket.Close();Message_bar.Format("无法连接%d",cn);GetDlgItem(IDC_STATIC_MESS)->SetWindowText(Message_bar); m_bInit[cn]=false;}}				return m_bInit[cn];
}
switch(ID.v)
{//时间case ID_POWER: mit.T_PowerON=l_value; break;   //开机时间case ID_AUTO:  mit.T_AutoRun=l_value;   break;  //自动运转case ID_START :mit.T_AutoStart=l_value;  break; //自动启动时间 STLcase ID_PROCESS:mit.T_Process=l_value;  break;  			       	 //伺服case ID_SERVO_NAME1 :     mit.name1=m_strValue;     break;      case ID_SERVO_NAME2 :     mit.name2=m_strValue;     break;   case ID_SERVO_NAME3 :     mit.name3=m_strValue;     break; //Xcase ID_POS_CURRENT_X:    mit.m_strCurr1=d_value; break;case ID_POS_WORK_X:       mit.m_strWork1=d_value; break;case ID_POS_MACHINE_X:    mit.m_strM1=d_value;    break;case ID_POS_DIS_X:        mit.m_strDis1=d_value;  break;case ID_SERVO_GAINX:      mit.gain_x=d_value;            break;case ID_SERVO_IX:         mit.current_x=i_value;break;            //负荷电流case ID_SERVO_LOADX:      mit.load_x=l_value;break;               //Ycase ID_POS_CURRENT_Y:    mit.m_strCurr2=d_value; break;case ID_POS_WORK_Y:       mit.m_strWork2=d_value; break;case ID_POS_MACHINE_Y:    mit.m_strM2=d_value;    break;case ID_POS_DIS_Y:        mit.m_strDis2=d_value;  break;case ID_SERVO_GAINY:      mit.gain_y=d_value;        break;case ID_SERVO_IY:         mit.current_y=i_value;break;case ID_SERVO_LOADY:      mit.load_y=l_value;break;  //Zcase ID_POS_CURRENT_Z:    mit.m_strCurr3=d_value; break;case ID_POS_WORK_Z:       mit.m_strWork3=d_value; break;case ID_POS_MACHINE_Z:    mit.m_strM3=d_value;    break;case ID_POS_DIS_Z:        mit.m_strDis3=d_value;  break;case ID_SERVO_GAINZ:      mit.gain_z=d_value;        break;case ID_SERVO_IZ:         mit.current_z=i_value;        break;case ID_SERVO_LOADZ:      mit.load_z=l_value;        break;  case ID_SPENDLE_GAIN :    mit.gain=d_value;   break;    //主轴增益     数据类型是6 DOUBLEcase ID_SPENDLE_TEMP :    mit.tmep=i_value;      break;   //温度          2        intcase ID_SPENDLE_LOAD :   mit.load=l_value;      break;   //负载          数据类型是3 LONGcase ID_SPENDLE_I:        mit.current=i_value;    break;   //电流    %    2        intcase ID_SPENDLE_SPEED:    mit.speed=d_value;    break;     //速度    6case ID_RDY_HLD:        GetDlgItem(IDC_RDY_STATE)->SetWindowText(m_strValue);  break;case ID_PROC_MODE:        GetDlgItem(IDC_RDY_MODE)->SetWindowText(m_strValue);  break;case ID_SERVO_NUM:       GetDlgItem(IDC_AXIZ_NUM)->SetWindowText(m_strValue); break; //BYTE//主轴数量case ID1039N:         GetDlgItem(IDC_SPENDLE_NUM)->SetWindowText(m_strValue);  break;	 //间隙补偿case ID4007_1:     mit.enc_comp1=d_value;  break; //doublecase ID4007_2:     mit.enc_comp2=d_value;  break; //doublecase ID4007_3:     mit.enc_comp3=d_value;  break; //double//G00反向间隙case ID2011X: mit.backlashx_g0=l_value;  break; //LONGcase ID2011Y: mit.backlashy_g0=l_value;  break; //LONGcase ID2011Z: mit.backlashz_g0=l_value;  break; //LONG//G01反向间隙case ID2012X:   mit.backlashx_g1=l_value;  break; //LONGcase ID2012Y:   mit.backlashy_g1=l_value;  break; //LONGcase ID2012Z:   mit.backlashz_g1=l_value;  break; //LONG......
}

四,机台配置IP

1.点击右上角维护
2.左下角切换找到以太网参数或基本公用PRM
3.找到参数1926


 


http://www.ppmy.cn/news/873360.html

相关文章

CNC(数控机床)

CNC(数控机床)是 计算机数字控制机床(Computer numerial control)的简称,是一种装有程序控制系统的自动化机床。该控制系统能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,从而使机床动作并加工零件。 相关链接&#xff1a…

机床生产监控系统,助力机床管理智能化

工业母机千亿元市场,行业现状大而不强 机床被称为工业母机,即生产机器的机器。机床在汽车、电子、航空航天等诸多制造业下游运用广泛,其中数控机床具备高精密、高速度、智能化等多重优势,承担着工业现代化的重要使命。反观中国机…

数控车加工工艺

数控车削加工工艺分析 一、数控加工内容的选择: 由轮廓曲线构成的回转表面;具有微小尺寸要求的结构表面;同一表面采用多种设计要求的结构;表面有严格几何关系要求的表面 。 二、零件结构的工艺性分析 1.零件结构工艺性分析的主要…

CNC技术

英文原文 CNC TECHNOLOGY Numerical control (NC) is a form of programmable automation in which the processing equipment is controlled by means of numbers, letters, and other symbols. The numbers, letters, and symbols are coded in an appropriate format to d…

数控cnc加工中心

cnc加工中心是一种先进的加工设备,以其高精度、高可靠性、高效率和加工复杂曲面工件的能力而被广泛使用。 但是,如果模型选择不当,将无法发挥应有的效益,会造成资金大量积压,产生风险。 广义选择主要包括机型选择、数…

什么是CNC?什么是加工中心?很多同行都分不清楚!

什么是CNC?什么是加工中心?很多同行都分不清楚! CNC全称“Computer numerical control”,翻译过来就是:电脑数值控制。俗称“数控”。由计算机数字控制自动化机床。也就是说只要是由电脑数值控制的自动化机床都可以称…

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

一,概述 前面介绍过,发那科CNC数据采集一般有两种方法: (1)通过FOCAS 1/2 开发包进行二次开发采集数据(仅适用于windows系统) (2)通过纯TCP协议方法。该方法不局限于C…

国产CNC数控机床现状

数控机床就是在数字控制下,能在尺寸精度和几何精度两方面完成金属毛坯零件加工成所需要形状的工作母机的总称。数控机床通常由控制系统、伺服系统、检测系统、机械传动系统及其他辅助系统组成。 一、国产数控机床与国际先进水平差距逐渐缩小 数控机床是当代机械制造…