[C#] TCP IP 與柵欄機溝通指令傳送方式

  • 1912
  • 0
  • C#
  • 2020-04-29

如標題

這是一個傳送...16進位資料到  邏輯機器的指令範本...通常邏輯機器要驅動或者讀資料都會有

固定碼+命令碼.....

類似0101 << 固定碼 (由廠商定義....) 

指令碼1231 << 指令碼

所以要傳送....  01011231   這樣子機器才會有動作...


////////////指令傳送的sample////////////

   TcpClient tcp = new TcpClient();
            bool IsCoo = tcp.Connect(sIP01, 6666);  //連線  (IP , port)
            tcp.Wait(500);  //等0.5秒
            byte[] bytes = HexToByte("00300101");   // 16進位 TO BYTE 範本
   tcp.Send(bytes, 0, bytes.Length);  //傳送
            tcp.Wait(500);  //等0.5秒
            tcp.Stop();   //斷線
            tcp.Dispose();  //釋放資源



        private byte[] HexToByte( string hexString)
        {
            //運算後的位元組長度:16進位數字字串長/2
            byte[] byteOUT = new byte[hexString.Length / 2];
            for (int i = 0; i < hexString.Length; i = i + 2)
            {
                //每2位16進位數字轉換為一個10進位整數
                byteOUT[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
            }
            return byteOUT;
        }

 

參考這網址

https://github.com/int2e/HPSocket.Net

https://www.nuget.org/packages/HPSocket.Net/5.7.1.5

Nuget也可以安裝

可分為tcp client 跟 server  ,主要是用在機器傳送命令控制, 關鍵字就是  PCL   mobus  TCP/IP  指令,  16進位2進位  ASCII 相關指令碼

 

 

 

以上文章僅用紀錄資料使用.....