easymodbus串口模式调试测试

easymodbus串口模式调试测试

复制代码
public int EasyModbusReadInputRegisters()
        {
            ModbusClient modbusClient = new ModbusClient(_spHelper.ConfigSerialPort.PortName);
            try
            {
                modbusClient.UnitIdentifier = _dcuInfo.siteId;
                modbusClient.Baudrate = _spHelper.ConfigSerialPort.BaudRate;
                modbusClient.Parity = (System.IO.Ports.Parity)_spHelper.ConfigSerialPort.Parity;
                modbusClient.StopBits = (System.IO.Ports.StopBits)_spHelper.ConfigSerialPort.StopBits;
                modbusClient.ConnectionTimeout = 500;
                modbusClient.Connect();
                int[] result = modbusClient.ReadInputRegisters(54, 1);  //PLC地址号
                modbusClient.Disconnect();
                return result[0];
            }
            catch (Exception ex)
            {
                modbusClient.Disconnect();
                return -1;
            }
            
        }

        public bool EasyWriteMultipleRegisters()
        {
            ModbusClient modbusClient = new ModbusClient(_spHelper.ConfigSerialPort.PortName);
            try
            {
                modbusClient.UnitIdentifier = _dcuInfo.siteId; //从机地址,0x01,0x02
                modbusClient.Baudrate = _spHelper.ConfigSerialPort.BaudRate;//波特率
                modbusClient.Parity = (System.IO.Ports.Parity)_spHelper.ConfigSerialPort.Parity;
                modbusClient.StopBits = (System.IO.Ports.StopBits)_spHelper.ConfigSerialPort.StopBits;
                modbusClient.ConnectionTimeout = 500;
                modbusClient.Connect();
                int[] registers = new int[] { 3250, 3110 }; //要写的值
                ushort startAddress = 54;  //PLC从某个地址开始写
                modbusClient.WriteMultipleRegisters(startAddress, registers);
                modbusClient.Disconnect();
                return true;
            }
            catch (Exception ex)
            {
                if (modbusClient.Connected)
                {
                    modbusClient.Disconnect();
                }
                return false;
            }
            
        }
复制代码

 

posted @   txwtech  阅读(825)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-07-04 Oracle VM VirtualBox 虚拟机中桥接模式一直不能用 ,需要安装 VBoxNetLwf.inf
点击右上角即可分享
微信分享提示