当前位置: 首页 > article >正文

c#如何读取Modbus中Slave和Poll的值

虚拟串口

在这里插入图片描述

Modbus Slave

右击设置slave定义

在这里插入图片描述
在这里插入图片描述

设置好地址后,设置连接。点击Connection–选择Connect

在这里插入图片描述
在这里插入图片描述

Modbus Poll

右击选择设置定义

在这里插入图片描述

设置的内容要和slave一致

在这里插入图片描述

设置连接,点击Connection—选择Connect

在这里插入图片描述
在这里插入图片描述

Poll和Slave连接之后,可以获取slave的值。我们在使用c#读取信息时,读取的是Poll的端口号,此处是"COM3"。但是在读取的时候,一定要将slave打开,Poll关闭。Poll不关闭的话会引起"对端口“COM3”的访问被拒绝。"。这样可以通过Poll的串口读取slave设置的值。

public static void ModbusSerialRtuMasterReadRegisters()
{
    using(SerialPort port = new SerialPort("COM3"))
    {
        port.BaudRate = 9600;//比特率
        port.DataBits = 8;//数据位 
        port.Parity = Parity.None;//校验位
        port.StopBits = StopBits.One;//停止位
        port.Open();

        // create modbus master  创建一个master   里面有一个串行的ModbusSerialMaster,直接调用
        IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port);
        //IModbusSerialMaster master1 = ModbusSerialMaster.CreateAscii(port);

        byte slaveId = 1;//slave地址
        ushort startAddress = 1;//起始地址
        ushort registerNUM = 10;

        //同步
       ushort[] data =  master.ReadHoldingRegisters(slaveId, startAddress, registerNUM);

        if (data != null && data.Length > 0)
        {
            for (int i = 0; i < data.Length; i++)
            {
                Console.WriteLine($"Register {startAddress + i}: {data[i]}");
            }
        }
        else
        {
            Console.WriteLine("No data received.");
        }
        //异步线程读取数据
        //master.ReadHoldingRegisters

    }

}

代码不全,只是想分析一下自己怎么才读取到信息的。如果有错误,请在评论区指出。


http://www.kler.cn/news/303512.html

相关文章:

  • vue之 package.json和package-lock.json
  • 【机器学习】线性动态系统的基本概念以及卡尔曼滤波器的概念和应用方式
  • c#引用同一命名空间下的其他类
  • 提权——Linux
  • Sequential的使用和搭建实战
  • js 深入理解生成器
  • 实时分析都靠它→揭秘YashanDB列式存储引擎的技术实现
  • 力扣第560题 和为k的子数组
  • 解锁编程潜力,从掌握GitHub开始
  • 突发!OpenAI发布最强模型o1:博士物理92.8分,IOI金牌水平
  • 高职人工智能训练师边缘计算实训室解决方案
  • 产品规划文档
  • PHP一键寄送尽在掌中快递寄件小程序
  • 设计模式篇--抽象工厂模式
  • Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 Vue3)
  • 为 WebSocket 配置 Nginx 反向代理来支持 Uvicorn 的最佳实践
  • 动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习
  • 苍穹外卖随记(一)
  • YOLOV8实现小目标检测
  • Qt自动打开文件夹并高亮文件
  • CI/CD持续集成和持续部署以及相关软件的使用
  • Docker日志管理之Filebeat+ELK日志管理
  • (不用互三)解密AI创作:提升Prompt提示词的提问技巧
  • VS Code 中提升编程效率的功能及使用方法
  • 大模型-模型架构-详细配置
  • 雷电9模拟器安装magisk和lsposed
  • 负载均衡:从理论到实践 ---day04
  • http连接与ssh连接的区别
  • 华为HCIA、HCIP和HCIE认证考试明细
  • 实现一个点缓慢到达另一个点