zoukankan      html  css  js  c++  java
  • 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]);
                }
    
            }
  • 相关阅读:
    nyoj 21三个水杯(BFS + 栈)
    hdu 4493 Tutor
    树的判断(poj nyoj hduoj)
    nyoj 228 士兵杀敌(五)
    poj 3468 A Simple Problem with Integers(线段树)
    hdu 2565 放大的X
    nyoj 528 找球号(三)(哈希)
    nyoj 138 找球号(二)(哈希)
    算法之搜索篇
    每日命令:(11)nl
  • 原文地址:https://www.cnblogs.com/noigel/p/10671982.html
Copyright © 2011-2022 走看看