-Begin-
前言
最近有運動控制的學員問到這樣的問題,能不能通過Modbus協議,實現運動控制卡的數據讀取。
經過測試,切實可行。這里采用的是正運動的ECI1408板卡,其他品牌板卡可能不支持,具體咨詢供應商。
MOdbus協議
正運動控制器支持兩個存儲區,分別是0區和4區。
- 0區從地址10000開始與輸入 IN 口對應。
- 0區從地址20000開始與輸出 OUT 口對應。
- 4區從地址10000開始對應軸 DPOS 區間。
- 4區從地址11000開始對應軸 MPOS 區間。
- 4區從地址12000開始對應軸 VP_SPEED 區間。
- 4區從地址13000開始對應模擬量DA輸出區間。
- 4區從地址14000開始對應模擬量AD輸入區間。
- 對于其他參數,可以采用自定義存儲區0-7999來使用。
代碼測試
這里以讀取XYZ三軸的位置來進行測試。
- 建立連接
//Modbus通信對象
private ModbusTcp modbusTcp = new ModbusTcp();
//取消線程源
private CancellationTokenSource cts;
private void btn_Connect_Click(object sender, EventArgs e)
{
if (modbusTcp.Connect(this.txt_IPAddress.Text, Convert.ToInt32(this.txt_Port.Text)))
{
//如果連接成功,開線程讀取
cts = new CancellationTokenSource();
Task.Run(() =>
{
GetMotionData();
}, cts.Token);
}
else
{
MessageBox.Show("運動控制卡連接失敗", "建立連接");
}
}
- 斷開連接
private void btn_DisConn_Click(object sender, EventArgs e)
{
cts?.Cancel();
modbusTcp.DisConnect();
}
- 多線程讀取解析
private void GetMotionData()
{
while (!cts.IsCancellationRequested)
{
byte[] res = modbusTcp.ReadKeepReg(1, 10000, 6);
this.Invoke(new Action(() =>
{
if (res != null && res.Length == 12)
{
float[] values = FloatLib.GetFloatArrayFromByteArray(res, DataFormat.CDAB);
this.lbl_XAxis.Text = values[0].ToString();
this.lbl_YAxis.Text = values[1].ToString();
this.lbl_ZAxis.Text = values[2].ToString();
}
}));
}
}
- 測試結果如下:
上位機軟件實時數據顯示:
測試軟件結果顯示:
整體總結
本案例主要是測試了基于Modbus協議來讀取運動控制卡的相關參數,這種情況主要用于第三方軟件需要運動控制系統的相關數據。同時,如果后續的運動控制項目,需要提供數據給其他軟件,可以將運動控制卡作為一個現成免費的ModbusTCP服務器,不僅可以傳遞運動控制參數,其他參數都可以實現傳遞。
-END-
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
控制卡
+關注
關注
2文章
60瀏覽量
13186 -
ModBus協議
+關注
關注
3文章
181瀏覽量
33992 -
數據讀取
+關注
關注
0文章
9瀏覽量
6591
發布評論請先 登錄
相關推薦
【正運動】高速高精,超高實時性的PCIe EtherCAT實時運動控制卡 | PCIE464
充分利用PC的高效數據處理和開放性特性,以及控制卡高速PWM、多維位置比較輸出PSO等功能,實現出色的多軸同步控制和高速點位以及復雜的軌跡運動控制等功能,確保了
發表于 01-24 09:48
LabVIEW與運動控制卡相結合控制使用,求各路大神幫助?。?!
各位大神們,有沒有好的書籍或者學習資料推薦給我,是關于LabVIEW如何配合運動控制卡或者是運動控制卡的用法!??!
發表于 05-23 08:37
EtherCAT運動控制卡之ECI2820如何使用
軸直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸、機械手指令等;采用優化的網絡通訊協議可以實現實時的運動控制?! CI2828系列運動
發表于 09-01 06:24
正運動ECI系列運動控制卡產品優勢
,同時縮小工控機體積;
5、ECI運動控制卡內部可寫部分代碼,實時性要求特別高的場合也適用;
6、對于環境不好的場合,時間長了工控機容易進灰塵,ECI運動
發表于 06-13 09:44
評論