赞
踩
①必备组件:
首先Fanuc有开源的库,我们通过调用库进行和fanuc数控系统进行通讯,分别是Fwlib32.dll以及fwlib1.dll
Fwlib32.dll是负责和fanuc的通讯组件,用来进行对客户端发送的数据转义加密进行和数控系统数据通讯。
fwlib32.dll是核心的函数操作库,封装了各类数据读取函数。
将到上述两个dll,大家应该就明白了,客户端(开发者)和fwlib32.dll进行函数操作调用,fwlib32.dll再将数据通过Fwlib32.dll库进行和数控系统进行TCP的通讯,数控系统响应数据返回给Fwlib21.dll,Fwlib21.dll再将数据返回给fwlib32.dll,进行数据解析,最终反馈给客户端(开发者)
以下进行实战操作
博主用的VS2015
①文件新建windows窗体程序,如下
②新建完成后,窗体布局如图所示:
③布局完成后将Fwlib32.dll以及fwlib1.dll直接复制到项目中
复制成功后进行右击dll属性,将复制到输出目录改为始终复制,这样我们不管在重新生成项目文件或者清理后生成项目文件,dll都会在Debug文件下,这个时候Debug下面的可执行程序才可以调用到DLL
④那么除了这些,我们要用到一个函数库,这是c语言编译出来的接口,可供c#调用,因为此文件已经帮c#做了一系列的c语言调用要extern以及DllImport以及C语言和C#语言的类型转换。开发者不必过多考虑接口类型。
我们也将此文件直接复制到项目文件夹中。
⑤我们看下函数库的一个枚举:focas_ret
所有的数据请求,函数库都会返回一个请求结果(成功or失败)以及ref或者out出来的响应数据(如主轴信息、转速信息、加工信息等。)
请求结果为0代表请求成功,即以下的EW_OK,说明响应数据返回并且正确,负责全部为请求失败,详细问题看英文注释,如
EW_SOCKET = (-16), /* Windows socket error */代表了tcp Socket套接字错误,说明网络问题。
EW_NODLL = (-15), /* DLL not exist error */代表DLL未找到,查看是否引用或者程序同级目录有没有我上述降到的两个dll库。各类原因我不一一解释,可以查阅翻译软件对英文进行翻译
demo如下
加我qq、验证入群
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。