NModbus4的使用


步驟1:打開串口

SerialPort port = new SerialPort("COM7")
port.BaudRate = 9600;
port.BaudRate = 9600;
port.DataBits = 8;
port.Parity = Parity.Odd;
port.StopBits = StopBits.One;
port.Open();    

                

步驟二:創建ModbusSerialMaster,設置超時參數

var master = ModbusSerialMaster.CreateRtu(port);
master.Transport.ReadTimeout = 2000;
//其中transport還有重試次數和重試間隔時間,默認是3和250
//master.Transport.Retries + "  " + master.Transport.WaitToRetryMilliseconds;

步驟三:設置協議參數,開始讀寫

 byte slaveID = 3;
ushort address = 1;
bool[] coils = new bool[8];

coils = master.ReadCoils(slaveID, address, 1);

以上面方式讀線圈,超時就會拋出異常。

可選步驟四:以async await方式讀寫

比如點擊按鈕之后,調用AcquireStatus 方法

        private async void AcquireStatus(ModbusSerialMaster master)
        {
            byte slaveID = 3;

            ushort address = 1;
            bool[] coils=null;
            master.Transport.ReadTimeout = 2000;
            try {coils=await master.ReadCoilsAsync(slaveID, address, 1); }
            catch (Exception ex)
            {
                MessageBox.Show("your value " + "無返回值");
            }
            
            if (coils != null)
            {
                this.checkBox1.Checked = coils[0];
                MessageBox.Show("your value " + coils[0]);
            }

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM