C# FANUC 读写fanuc机床 fanuc 0i系列 上传下载程序 可以运行在.net core跨平台,一套程序支持linux
主要使用的软件是 HslCommunication 关于这个软件的本身,详细可以参考下面的地址:
github地址:https://github.com/dathlin/HslCommunication
官网:http://www.hslcommunication.cn
加群咨询学习信息:http://www.hslcommunication.cn/Cooperation
在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装:
1 | Install-Package HslCommunication |
如果需要教程:Nuget安装教程:http://www.cnblogs.com/dathlin/p/7705014.html
组件的api地址:http://api.hslcommunication.cn
在开始之前,我们先来看看HslCommunication能干什么?
这是目前版本的demo信息,将来支持更多的功能。
我们来测试下,我这边使用了虚拟的机床,型号如下:
具体可以参考demo的源代码,每个按钮怎么操作,调用了什么代码都是有的,此处挑几个功能说明下、
https://github.com/dathlin/HslCommunication
如果访问慢的话,可以去gitee下载
https://gitee.com/Richard_Hu/HslCommunication
好了,我们进入正题,机床的端口都是默认 8193 的
所以我们实例化之前,先引用命名空间
1 2 | using HslCommunication.CNC.Fanuc; using HslCommunication; |
然后实例化
1 | private FanucSeries0i fanuc = new FanucSeries0i( "192.168.0.109" , 8193 ); |
然后连接操作
1 2 3 4 5 6 7 8 9 10 | OperateResult connect = await fanuc.ConnectServerAsync( ); if (connect.IsSuccess) { MessageBox.Show( StringResources.Language.ConnectServerSuccess ); } else { MessageBox.Show( "failed:" + connect.Message ); } |
然后就可以愉快的读写数据了。我们来看下读取程序列表:
1 2 3 4 5 6 7 8 9 | OperateResult< int []> read = fanuc.ReadProgramList( ); if (read.IsSuccess) { textBox8.Text = read.Content.ToJsonString( ); } else { MessageBox.Show( "Read Failed:" + read.ToMessageShowString( ) ); } |
看一下效果
我们再看下读取坐标数据
1 2 3 4 5 6 7 8 9 | OperateResult<SysAllCoors> read = fanuc.ReadSysAllCoors( ); if (read.IsSuccess) { textBox8.Text = read.Content.ToJsonString( ); } else { MessageBox.Show( "Read Failed:" + read.ToMessageShowString( ) ); } |
看一下实际的数据
我们再来看一下报警信息
1 2 3 4 5 6 7 8 9 | OperateResult<SysAlarm[]> read = fanuc.ReadSystemAlarm( ); if (read.IsSuccess) { textBox8.Text = read.Content.ToJsonString( ); } else { MessageBox.Show( "Read Failed:" + read.ToMessageShowString( ) ); } |
实际的效果。
我们最后再来看一个比较重要的功能,程序的读写操作,这样就可以进行远程修改机床加工程序操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | if (! ushort .TryParse( textBox9.Text, out ushort programNum )) { MessageBox.Show( "主程序号输入错误!" ); return ; } button28.Enabled = false ; OperateResult< string > read = await fanuc.ReadProgramAsync( programNum ); button28.Enabled = true ; if (read.IsSuccess) { textBox8.Text = "程序内容:" + Environment.NewLine + read.Content; } else { MessageBox.Show( "读取失败!" + read.ToMessageShowString( ) ); } |
只要传入程序号即可。
文本是有0x0a的换行符的,但是在winform的编辑框里不显示,只需要拷贝到其他文本框,就可以自动换行操作的。
写入也是一样的源代码。
如果使用过程中还有什么问题,可以联系我 QQ200962190
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2018-07-14 如何制作dll库的API文档,自动生成微软风格的chm文件 Sandcastle Help File Builder 使用方法