让代码更简单

FANUC发那科CNC数据采集教程连接CNC

重要:本文最后更新于2019-07-16 08:26:19,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

发那科系统的cnc可以通过官方的支持库接口获取cnc数据,第一步就是要连接上需要采集的cnc。这里就需要fanuc的api了,如果没有下载采集接口文件的,请先下载。FANUC发那科cnc系统api开发说明文档及例子源码,然后打开你的visual studio跟我一起学习吧!

引入Fwlib动态链接库

这里使用常规的方法引入会失败,因为这些动态链接库并不是规范的文件,微软给我们提供了加载不规范动态链接库的方法,这里不多讲了,方法不用我们写,已经写好了的。

进入到接口文件的Fwlib文件夹下,将里面的所有dll文件全部复制到你的项目的debug目录下。

然后通过VS中右键你的解决方案,选择添加现有项,添加该目录下的Dot NET sample文件夹下的fwlib32.cs文件。

FANUC发那科CNC数据采集教程一连接CNC

FANUC发那科CNC数据采集教程一连接CNC

到此,你的项目中已经成功引入了发那科系统的接口文件,我们可以使用相应接口采集cnc数据了!

连接CNC

在窗口中,拖入标签、输入框、按钮控件,输入框分别对应ip、端口、超时时间,然后双击按钮进入代码编辑器,键入以下代码:

复制
 int ret = Focas1.cnc_allclibhndl3(textBox1.Text, Convert.ToUInt16(textBox2.Text), Convert.ToInt32(textBox3.Text), out data.h);
           
 if (ret == Focas1.EW_OK)
 {
     MessageBox.Show("连接成功!");
 }
  else
 {
     MessageBox.Show(ret + "");
 }

data.h是指我新建的一个类中的静态变量,用来存储连接成功后的句柄,这个句柄是我们操作cnc的重要凭证!

如果返回错误码,请对照下面的表,检查你的问题。

复制
        EW_PROTOCOL =     (-17),           /* protocol error */
        EW_SOCKET   =     (-16),           /* Windows socket error */
        EW_NODLL    =     (-15),           /* DLL not exist error */
        EW_BUS      =     (-11),           /* bus error */
        EW_SYSTEM2  =     (-10),           /* system error */
        EW_HSSB     =     (-9) ,           /* hssb communication error */
        EW_HANDLE   =     (-8) ,           /* Windows library handle error */
        EW_VERSION  =     (-7) ,           /* CNC/PMC version missmatch */
        EW_UNEXP    =     (-6) ,           /* abnormal error */
        EW_SYSTEM   =     (-5) ,           /* system error */
        EW_PARITY   =     (-4) ,           /* shared RAM parity error */
        EW_MMCSYS   =     (-3) ,           /* emm386 or mmcsys install error */
        EW_RESET    =     (-2) ,           /* reset or stop occured error */
        EW_BUSY     =     (-1) ,           /* busy error */
        EW_OK       =     0    ,           /* no problem */
        EW_FUNC     =     1    ,           /* command prepare error */
        EW_NOPMC    =     1    ,           /* pmc not exist */
        EW_LENGTH   =     2    ,           /* data block length error */
        EW_NUMBER   =     3    ,           /* data number error */
        EW_RANGE    =     3    ,           /* address range error */
        EW_ATTRIB   =     4    ,           /* data attribute error */
        EW_TYPE     =     4    ,           /* data type error */
        EW_DATA     =     5    ,           /* data error */
        EW_NOOPT    =     6    ,           /* no option error */
        EW_PROT     =     7    ,           /* write protect error */
        EW_OVRFLOW  =     8    ,           /* memory overflow error */
        EW_PARAM    =     9    ,           /* cnc parameter not correct error */
        EW_BUFFER   =     10   ,           /* buffer error */
        EW_PATH     =     11   ,           /* path error */
        EW_MODE     =     12   ,           /* cnc mode error */
        EW_REJECT   =     13   ,           /* execution rejected error */
        EW_DTSRVR   =     14   ,           /* data server error */
        EW_ALARM    =     15   ,           /* alarm has been occurred */
        EW_STOP     =     16   ,           /* CNC is not running */
        EW_PASSWD   =     17   ,           /* protection data error */
    /*
        Result codes of DNC operation
    */
        DNC_NORMAL  =  (-1)    ,           /* normal completed */
        DNC_CANCEL  =  (-32768),           /* DNC operation was canceled by CNC */
        DNC_OPENERR =  (-514)  ,           /* file open error */
        DNC_NOFILE  =  (-516)  ,           /* file not found */
        DNC_READERR =  (-517)              /* read error */

成功了吗?感受到成功的喜悦了吗?关注代码狗博客,学习更多cnc采集教程。

感觉很棒!可以赞赏支持我哟~

6 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐