C# Nmodbus,EasyModbusTCP读写操作

Nmodbus读写

两个Button控件分别为 读取和写入 分别使用控件的点击方法

①引用第三方《NModbus4》2.1.0版本

全局

public SerialPort port = new SerialPort("COM2", 9600, Parity.None, 8, (StopBits)1);
ModbusSerialMaster master;

public Form1()

port.Open();
master = ModbusSerialMaster.CreateAscii(port);

采用的nmdbus4实现ascii协议

使用寄存器写数据

打开寄存器Connection

读取

给寄存器指定位置添加数据

读取保存寄存器数据,返回类型ushort[] 列表

参数1.设备地址  2.起始地址  3.数量

ushort[] data = master.ReadHoldingRegisters(1, 0x004, 3);

显示

MessageBox.Show(data[0] + "-" + data[1] + "-" + data[2]);

写入:

注:在寄存器里F8可以更改设备地址

写入单个寄存器

参数1.地址 2.写入位置 3.写入数据

master.WriteSingleRegister(1, 7, 9600);

写入多个

参数 1.设备地址 2.起始地址 3.写入数据

master.WriteMultipleRegisters(1,0x000,new ushort[] {10,20,30,40,50,60,70,80,90,100});

更改后观看寄存器是否变化

EasyModbusTCP实现TCP协议的第三方

button 读取  写入 点击事件

添加第三方《EasyModbusTCP》5.6.0版本

注:三种报文

RTU报文: 01 03 00 00 00 01 084 0A

ASCII;  :010300000001FB

TCP:   00 02 00 00 00 06 01 03 00 00 00 01

寄存器添加

给寄存器指定位置添加数据

全局变量:ModbusClient client;方法

client = new ModbusClient();
client.IPAddress = "127.0.0.1";
client.Port = 502;

client.Connect();

连接寄存器

读取

参数1.寄存器起始地址2.寄存器个数

int[] data = client.ReadHoldingRegisters(1,2);

MessageBox.Show(data[0] + "-" + data[1]);

提示框显示

  写入

1.写入多个

参数1.起始地址 2.写入数据

client.WriteMultipleRegisters(3, new int[] { 200, 300 });

2.写入单个

 client.WriteSingleRegister(7, 900);

写入后观看寄存器是否变化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

audit审计超详细介绍,常见审计规则示例,与syslog、secure对比

Audit(审计)介绍 Audit(审计)在Linux系统中,特别是CentOS中,是一个用于监控和记录系统上各种操作的技术手段。Audit的主要功能是为系统管理员提供一个跟踪系统上与安全相关信息的方法。根据预配置的规则&a…

UWA Gears正式上线,助力移动平台性能优化

亲爱的开发者朋友们, 我们非常激动地向大家宣布,UWA最新的无SDK性能分析工具 - UWA Gears,现已正式发布!无论您使用的是哪种开发引擎,这款工具都能轻松应对,为您的项目保驾护航。更令人心动的是&#xff0c…

后台管理系统登录安全和权限要求

一、前言 几乎所有的系统都有后台管理系统,后台登录需要账号和密码,后台管理员权限需要有控制。所有管理员的操作都应该有操作日志。 二、存在的问题 现在很多系统只需要账号和密码就能登录,有的还是简单账号和简单密码,就是弱口…

虚拟机之ip配置,ssh连接到虚拟机

右边是我的虚拟机,左边是我使用vscode来连接(终端也可以。然后注意vscode配置后点一下刷新,不会自动刷新的QA)(吐槽一下,虚拟机都不能复制内容呢,确实仿真,centos仿真就是因为没有图…

二手车小程序

本文来自:FastAdmin二手车小程序 - 源码1688 一款基于ThinkPHPFastAdmin开发的原生微信小程序二手车管理系统。 前端小程序码: 后台演示地址: https://facars.site100.cn/OHNYSKzuba.php/carswxsys/sysinit?refaddtabs

解决springboot的跨域冲突

前言 赶时间的可以直接加入地下的配置文件,就可解决问题。上面从概念讲起。 概念 在Web开发中,浏览器出于安全考虑,默认不允许从一个源加载页面的同时通过XMLHttpRequest发起对不同源的请求。例如,一个运行在http://example.co…

视觉巡线小车——STM32+OpenMV(四)

目录 前言 一、整体控制思路 二、代码实现 1.主函数 2.定时器回调函数 总结 前言 通过以上三篇文章已将基本条件实现,本文将结合以上内容,进行综合控制,实现小车的视觉巡线功能。 系列文章请查看:视觉巡线小车——STM32OpenMV系列…

【轨物方案】电表红外抄表物联网装置

对于光伏运维工程师来说,电表抄表是一件并不陌生的工作,不过很多并网电表的RS485通讯接口一般都被占用了,并且电表的外壳也被铅封起来。在这种情况下电站通常采用人工抄表的方式采集电量数据,这种方式费时费力,对电站运…

京东科技集团将在香港发行与港元1:1挂钩的加密货币稳定币

据京东科技集团旗下公司京东币链科技(香港)官网信息,京东稳定币是一种基于公链并与港元(HKD) 1:1挂钩的稳定币,将在公共区块链上发行,其储备由高度流动且可信的资产组成,这些资产安全存放于持牌金融机构的独立账户中,通…

【OpenCV C++20 学习笔记】扫描图片数据

扫描图片数据 应用情景图像数据扫描的难点颜色空间缩减(color space reduction)查询表 扫描算法计算查询表统计运算时长连续内存3种扫描方法C风格的扫描方法迭代器方法坐标方法LUT方法 算法效率对比结论 应用情景 图像数据扫描的难点 在上一篇文章《基…

OAK-FFC 分体式相机使用入门介绍

概述 OAK FFC 主控板和多种可选配镜头模组非常适合灵活的搭建您的3D人工智能产品原型。由于镜头是分体式的,因此你可以根据需要测量的距离,自定义深度相机安装基线,并根据你的项目要求(分辨率、快门类型、FPS、光学元件&#xff…

微前端--qiankun(3)

微前端–qiankun(3) 微前端的运行原理 监听路由变化匹配子应用加载子应用渲染子应用 监听路由变化 window.onhashchange 和window.addEventListener(popstate,() > {})等等,下篇文章我写个 匹配子应用 const currentApp apps.find(app > window.locati…

FPGA教程|零基础到实战的全方位指导

在数字化时代,FPGA(现场可编程门阵列)作为一种灵活的硬件编程平台,正逐渐成为电子工程师和计算机科学家必备的技能之一。无论你是电子专业的学生,还是职场中的工程师,掌握FPGA开发技术,都将为你…

前端与HTML

前端与HTML 什么是前端? 解决GUI人机交互问题跨终端(PC/移动浏览器)(客户端小程序)(VR/AR等)Web技术栈 前端工程师:利用web技术栈解决多端图形界面用户交互的工程师 前端技术栈 …

CDGA|数据治理:安全如何贯穿数据供给、流通、使用全过程

随着信息技术的飞速发展,数据已经成为企业运营、社会管理和经济发展的核心要素。然而,数据在带来巨大价值的同时,也伴随着诸多安全风险。因此,数据治理的重要性日益凸显,它不仅仅是对数据的简单管理,更是确…

Lua 类管理器

Lua 类管理器 -- ***** Class Manager 类管理*****‘local ClassManager {}local this ClassManagerfunction ClassManager.Class(className, ...)print(ClassManager::Class)--print(className)-- 构建类local cls {__className className}--print(cls)-- 父类集合local …

rv1126物体检测 rkmedia、opencv……

整体码流流向: 因此代码也分为这几部分: VI:采集视频 配置视频采集信息 模型推理线程:获取VI码流、载入模型、进行模型推理、保存推理结果 画框线程:获取VI码流、获取推理结果、显示推理结果、输出码流到VENC VENC…

LeetCode-day25-2844. 生成特殊数字的最少操作

LeetCode-day25-2844. 生成特殊数字的最少操作 题目描述示例示例1:示例2:示例3: 思路代码 题目描述 给你一个下标从 0 开始的字符串 num ,表示一个非负整数。 在一次操作中,您可以选择 num 的任意一位数字并将其删除…

如何使用C#快速创建定时任务

原文链接:https://www.cnblogs.com/zhaotianff/p/17511040.html 使用Windows的计划任务功能可以创建定时任务。 使用schtasks.exe可以对计划任务进行管理,而不需要编写额外代码 这里掌握schtasks /CREATE 的几个核心参数就可以快速创建计划任务 /SC …

vue3响应式转换常用API

响应式常用API ref 相关:toRef、toRefs、unRef只读代理:readonly判断相关:isRef、isReactive、isProxy、isReadonly3.3新增API:toValue ref相关 toRef:基于响应式对象的某一个属性,将其转换为 ref 值 i…