首页 > 其他分享 >NModbus4的使用

NModbus4的使用

时间:2022-10-19 13:46:01浏览次数:66  
标签:coils 步骤 address NModbus4 slaveID master 使用 port

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]);
            }

        }
复制代码

标签:coils,步骤,address,NModbus4,slaveID,master,使用,port
From: https://www.cnblogs.com/funiyi816/p/16805934.html

相关文章

  • Java Lambda 表达式的各种形态和使用场景,看这篇就够了
    Lambda表达式是Java8中添加的功能。引入Lambda表达式的主要目的是为了让Java支持函数式编程。Lambda表达式是一个可以在不属于任何类的情况下创建的函数,并且可以......
  • mysql使用load data infile导入数据
    做阿里天池编程题时候,需要导入sql数据,但是sql数据很大,总共有2g多。  由于没怎么做过运维,不会搞大批量数据的导入,就把里面的sql复制粘贴出来,然后粘贴到sqlyog里面慢慢......
  • 使用Kong网关API接口配置
    一、Upstream1、创建Upstream:curl-i-XPOSTIPAddress:8001/upstreams-d'name=upstream-test'-d'slots=1000'2、创建Targets目标地址并且关联Upstream:curl-i-XPO......
  • VUE3.0 中如何使用SVG图标
    1.文件下新建SvgIcon文件夹以及子文件index.js,index.vue,svg文件夹(用于存放svg图片) 2.编写index.vue组件<template><svg:class="svgClass"aria-hidden="true">......
  • DataSet与DataLoaders使用教程
    title:DataSet与DataLoaders使用教程mathjax:truedate:2022-10-0409:13:43tags:DataSetDataLoaderDataSet与DataLoaders使用教程4、PyTorch的Dataset与Data......
  • dict字典的基本使用
    字典dict字典是一个非线性结构,是key-value组成的键值对的数据集合。字典的特点:可变的、无序的、key不重复。字典的定义【{}或者dict()】可以定义一个空字典例如:a=dict()b......
  • FFmpeg中使用loop输入流与shortest参数后,音视频流时长被改变
    问题来自于制作视频水印需求给一段视频加上一张静态图片制作的logo,在网上已经有很多例子了,只要把它放置在视频的固定位置即可,这个功能非常容易实现:ffmpeg-ivideo.mp4-il......
  • Postman使用
    1.下载下载链接:https://www.postman.com/downloads/中文文档:https://postman.org.cn/getting-started/installation-and-updates/2.使用2.1注册账号2.2在WorksSpace......
  • windows环境使用tomcat部署jenkins配置
    一、安装包下载jdk:https://www.oracle.com/java/technologies/downloads/#java8tomcat:https://tomcat.apache.org/download-80.cgijenkins.war:http://updates.jenkins-c......
  • 使用Docker 安装nexus3私服
    1、服务器环境确保安装Docker和docker-compose,通过docker-compose脚本方便理解且未来做扩充也很方便编辑docker-compose脚本version:'3'services:nexus3:imag......