主要使用的軟件是 HslCommunication 關於這個軟件的本身,詳細可以參考下面的地址:
github地址:https://github.com/dathlin/HslCommunication
官網:http://www.hslcommunication.cn
加群咨詢學習信息:http://www.hslcommunication.cn/Cooperation
在Visual Studio 中的NuGet管理器中可以下載安裝,也可以直接在NuGet控制台輸入下面的指令安裝:
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 的
所以我們實例化之前,先引用命名空間
using HslCommunication.CNC.Fanuc; using HslCommunication;
然后實例化
private FanucSeries0i fanuc = new FanucSeries0i( "192.168.0.109", 8193 );
然后連接操作
OperateResult connect = await fanuc.ConnectServerAsync( ); if(connect.IsSuccess) { MessageBox.Show( StringResources.Language.ConnectServerSuccess ); } else { MessageBox.Show( "failed:" + connect.Message ); }
然后就可以愉快的讀寫數據了。我們來看下讀取程序列表:
OperateResult<int[]> read = fanuc.ReadProgramList( ); if (read.IsSuccess) { textBox8.Text = read.Content.ToJsonString( ); } else { MessageBox.Show( "Read Failed:" + read.ToMessageShowString( ) ); }
看一下效果
我們再看下讀取坐標數據
OperateResult<SysAllCoors> read = fanuc.ReadSysAllCoors( ); if (read.IsSuccess) { textBox8.Text = read.Content.ToJsonString( ); } else { MessageBox.Show( "Read Failed:" + read.ToMessageShowString( ) ); }
看一下實際的數據
我們再來看一下報警信息
OperateResult<SysAlarm[]> read = fanuc.ReadSystemAlarm( ); if (read.IsSuccess) { textBox8.Text = read.Content.ToJsonString( ); } else { MessageBox.Show( "Read Failed:" + read.ToMessageShowString( ) ); }
實際的效果。
我們最后再來看一個比較重要的功能,程序的讀寫操作,這樣就可以進行遠程修改機床加工程序操作。
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