首页 > 其他分享 >NModbus4练手

NModbus4练手

时间:2023-08-16 21:14:06浏览次数:46  
标签:练手 Console NModbus4 System serialPort master using WriteSingleRegister

using Modbus.Device;
using Modbus.Extensions.Enron;
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp21
{
    internal class Program
    {
        static void Main(string[] args)//添加NModbus4库后设置相关参数
        {
            //确定通讯方式
            SerialPort serialPort = new SerialPort("COM1");// 实例化并选择COM1端口
            serialPort.BaudRate = 9600;//设置波特率 
            serialPort.DataBits = 8;//数据位
            serialPort.Parity = Parity.None;//偶校验
            serialPort.StopBits = StopBits.One;//停止位 
            serialPort.Open();//打开端口
            
            //发送通讯结果
            var master = ModbusSerialMaster.CreateRtu(serialPort);
            ushort[] values = master.ReadHoldingRegisters(1, 10, 4);//从站1,地址10,数量4

            //将接收到的结果输出屏幕
                Console.WriteLine(values[0] + " " + values[1] + " " + values[2] + " " + values[3]);    
            //写入传递数据
            Console.WriteLine( "正在写入  数值到10寄存器" );
                
           
            master.WriteSingleRegister(1, 20, 12345);//将从站地址1 末位的数值666写入(中间)第20-29个寄存器
            master.WriteSingleRegister(1, 21, 12345);
            master.WriteSingleRegister(1, 22, 12456);
            master.WriteSingleRegister(1, 23, 12345);
            master.WriteSingleRegister(1, 24, 12456);
            master.WriteSingleRegister(1, 25, 12345);
            master.WriteSingleRegister(1, 26, 12456);
            master.WriteSingleRegister(1, 27, 12456);
            master.WriteSingleRegister(1, 28, 12345);
            master.WriteSingleRegister(1, 29, 12456);

            Console.WriteLine(  "写入完成");
            Console.WriteLine("读取线圈状态");
            bool[] coilValues = master.ReadCoils(1,0,2);//设置从站地址1,起止地址0,读取数2
            Console.WriteLine(coilValues[0] + " " + coilValues[1]);

            Console.WriteLine("写入一个线圈状态true到寄存器3");
            master.WriteSingleCoil(1, 3, true);//写入从站地址1,地址3,状态true
            Console.ReadKey();
 
        }

    }
}

 

标签:练手,Console,NModbus4,System,serialPort,master,using,WriteSingleRegister
From: https://www.cnblogs.com/pdaxing/p/17636192.html

相关文章

  • 简单的用Python获取一下视频弹幕,新手练手实战项目,非常简单!
    昨天看到个视频,弹幕挺有意思的,于是想着用Python给他全部扒下来。代码非常简单,接下来我们看看具体操作。需要准备这些软件Python3.8Pycharm模块使用importrequests数据请求importjieba分词importwordcloud词云importparsel数据解析importre......
  • python强化训练手册
    Python强化训练手册1.介绍Python是一种高级编程语言,适用于多种领域,包括数据分析、机器学习、网络编程等。Python强化训练手册是为那些已经掌握基本Python语法的开发者提供的进阶指南。本手册将介绍一些高级的Python编程技巧和概念,以帮助开发者更好地利用Python的强大功能。2.......
  • Python练手小项目——简易版基础SQL模板代码生成器
    1、效果图2、代码源码-ui.py:fromtkinterimport*fromtkinterimportscrolledtext,messageboxfromtkinter.ttkimportComboboximportpymysqldefinit():#创建窗口:实例化一个窗口对象window=Tk()#窗口大小window.geometry("900x550")......
  • python练手项目——给数组中的每个字段加上双引号
    前言工作中经常会遇到一种场景:复制值时,会复制出来几个甚至十几个字段。把这些字段放入SQL语句或者接口里面时,需要手动给每个字段加上引号,很浪费时间。因此我想要写一个python脚本,给字段自动加上引号。测试数据1:上海武汉广州深圳北京内蒙古呼和浩特2:张三,李四,王五,......
  • [推荐]ORACLE SQL:经典查询练手(不懂装懂,永世饭桶!)
    [推荐]ORACLESQL: 经典查询练手(不懂装懂,永世饭桶!)——通过知识共享树立个人品牌。  本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与分享......
  • 10 个最值得 Python 新人练手的有趣项目
    作者| ClaireD.Costa编译|Wendy有很多Python新手留言问:“Python入门很久了,但项目经验很少,有没有什么项目,可以让自己实践一下呢?”这是个很普遍的问题,首先你要想好做什么类别的项目,总体来说,项目分为三类:Web构建一个Web应用发布在网络上让用户访问使用。需要实现Web应用......
  • 微信小程序 案例练手 第二部分
    中国石油大学华东新生指南效果展示点击首页的gird点击外出页的gird地图页(还没做完),话说微信的破导航,偏的也太多了,根本不准啊点击首页gird跳转建新的页面(为我真的懒得分包了,外加多弄页面增加我的工作量了)那就把那堆grid跳转到同一个页面吧。不过和上次的处理不一样。......
  • [推荐]ORACLE SQL:经典查询练手第二篇(不懂装懂,永世饭桶!)
    [推荐]ORACLESQL:经典查询练手第二篇(不懂装懂,永世饭桶!)——通过知识共享树立个人品牌。  本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与......
  • [推荐]ORACLE SQL:经典查询练手第五篇(不懂装懂,永世饭桶!)
    [推荐]ORACLESQL:经典查询练手第五篇(不懂装懂,永世饭桶!) ——通过知识共享树立个人品牌。 本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与......
  • Python 练手小项目-名片管理
    需求描述需要写一段程序实现简单名片管理功能程序启动展示主界面新建名片显示全部查询名片退出系统主程序实现'''名片管理系统主程序'''importcards_toolswhileTrue:'''显示主界面'''cards_tools.show_menu()action=input('请选择操作功能:�......