C# 開發ModBus Tcp的伺服器程式 實現ModBus Tcp資料總換

來源:互聯網
上載者:User

標籤:env   void   管理   sda   hub   cps   執行個體化   href   控制台   

前言

 本文將使用一個Nuget公開的組件技術來實現一個ModBus TCP的伺服器端資料引擎,方便的實現接收來自各種裝置的資料。

 

在visual studio 中的Nuget管理器中可以下載安裝,也可以直接在Nuget控制台輸入下面的指令安裝:

Install-Package HslCommunication

Nuget安裝教程  http://www.cnblogs.com/dathlin/p/7705014.html

支援人員QQ群:592132877  (組件的版本更新細節也將第一時間在群裡發布)

 

Reference

 

ModBus組件所有的功能類都在 HslCommunication.ModBus命名空間,所以再使用之前先添加

using HslCommunication.Enthernet;
How to Use

 

        private bool m_IsModBusStart { get; set; } = false; // 服務是否啟動        private ModBusTcpServer tcpServer; // 伺服器引擎對象        private void userButton1_Click(object sender, EventArgs e)        {            if (!m_IsModBusStart)            {                m_IsModBusStart = true;                tcpServer = new ModBusTcpServer(); // 執行個體化伺服器接收對象                tcpServer.LogNet = new HslCommunication.LogNet.LogNetSingle(Application.StartupPath + @"\Logs\log.txt"); // 設定記錄檔                tcpServer.OnDataReceived += TcpServer_OnDataReceived; // 關聯資料接收方法                tcpServer.ServerStart(51234); // 綁定連接埠                timer.Start(); // 啟動服務            }        }        private void TcpServer_OnDataReceived(byte[] object1)        {            // 顯示出來接收到了什麼資料            BeginInvoke(new Action<byte[]>(ShowModbusData), object1);        }        private void ShowModbusData(byte[] modbus)        {            textBox1.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" +                HslCommunication.BasicFramework.SoftBasic.ByteToHexString(modbus) + Environment.NewLine);        }            

 

 

特別說明:

伺服器只負責接受Modbus TCP協議的資料,無論用戶端發了讀寫指令,都會觸發接收事件,並返回一串成功的資料。

所以在伺服器端,接收用戶端的讀取是無效的,返回資料空。

最關鍵的地方在於接收來自各個裝置的寫入功能,這樣你就可以開發一個資料總站,來負責搜集資料資訊。

 

 

如下視窗就是測試例子,西門子1215C的PLC向伺服器進行發送讀寫資料,伺服器端的接收資料顯示。

注意:

資料串的第7個位元組為Modbus的站號資訊,如下介面是FF,也即255,可以以此來區分不同的裝置發來的資料資訊,所以此處一個伺服器執行個體掛的最大用戶端數為256台裝置,前兩個位元組為訊息的頭序列,如果裝置可以固定訊息頭,用這個來標識裝置的話,就可以區分65536台裝置。

 

參考連結:

如果你對MODBUS TCP不熟悉,那麼請參照如下地址,我就是參照該地址的部落格開發的代碼:

http://blog.csdn.net/thebestleo/article/details/52269999

C# 開發ModBus Tcp的伺服器程式 實現ModBus Tcp資料總換

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.