发那科系统的cnc可以通过官方的支持库接口获取cnc数据,第一步就是要连接上需要采集的cnc。这里就需要fanuc的api了,如果没有下载采集接口文件的,请先下载。FANUC发那科cnc系统api开发说明文档及例子源码,然后打开你的visual studio跟我一起学习吧!
引入Fwlib动态链接库
这里使用常规的方法引入会失败,因为这些动态链接库并不是规范的文件,微软给我们提供了加载不规范动态链接库的方法,这里不多讲了,方法不用我们写,已经写好了的。
进入到接口文件的Fwlib文件夹下,将里面的所有dll文件全部复制到你的项目的debug目录下。
然后通过VS中右键你的解决方案,选择添加现有项,添加该目录下的Dot NET sample文件夹下的fwlib32.cs文件。
到此,你的项目中已经成功引入了发那科系统的接口文件,我们可以使用相应接口采集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采集教程。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/242446.html