首页 > 编程语言 >使用C# WinForm读取MODBUS 数据

使用C# WinForm读取MODBUS 数据

时间:2024-09-28 19:20:33浏览次数:3  
标签:modbusClient C# Text System MODBUS button1 using null WinForm

前言

因工作原因本人最近使用MODBUS tcp进行数据读取,所以使用WINFORM简单写了一个读取工具。

一、界面搭建

创建winform界面,按照如下搭建界面

二、添加modbus库

等待安装完成,项目内出现名称

三、添加代码

双击打开按钮,进入代码界面

using EasyModbus;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MODBUS
{
    public partial class Form1 : Form
    {
        ModbusClient modbusClient;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if(button1.Text == "打开")
            {
                modbusClient = new ModbusClient();
                modbusClient.IPAddress = textBox1.Text;
                modbusClient.Port = 502;
                modbusClient.Connect();
                button1.Text = "关闭";
            }
            else
            {
                if(modbusClient == null)
                {
                    return;
                }
                modbusClient.Disconnect();
                button1.Text = "打开";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if(modbusClient != null)
            {
                //需要添加null防护
                int[] ints = modbusClient.ReadHoldingRegisters(Convert.ToInt32(textBox2.Text), 1);
                textBox3.Text = ints[0].ToString();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //需要添加null防护
            modbusClient.WriteSingleRegister(Convert.ToInt32(textBox5.Text), Convert.ToInt32(textBox4.Text));
        }
    }
}

注意在读取和写入时需要判断文本是否有输入,modbus是否打开等安全判断;

尾声

        1.如有疑问或错误,可以在评论中提出;

        2.更新不易,点赞关注继续,加油。

        3.如有侵权,请告知。

标签:modbusClient,C#,Text,System,MODBUS,button1,using,null,WinForm
From: https://blog.csdn.net/qq_35355765/article/details/142619838

相关文章

  • WINCCV7.5SP2VBA编程8-通过事件执行脚本
    这一篇在新浪博客发表过,审核周期有点长,为了避免丢失,这里再记录一遍。有三种途径执行Wincc画面设计器的VBA脚本:事件、用户自定义菜单和工具栏、VBA编辑器。前面的学习是通过VBA编辑器执行的VBA程序,现在通过事件来练习VBA程序执行。还是在前面WINCC项目程序来做练习。打开项目编......
  • 机器视觉工程师一直做调试,维护岗位,想转岗软件方面C#从零开始,快则三年不到,慢则一辈子不
    其实不是每一家做视觉检测,或者是做设备必须要机器视觉工程师开发,其实公司对标准软件更感兴趣,主要非常高的性价比,省时省钱省人。所以这里有个问题,就是公司平台的重要性,首先他对开发是刚需,还有就是它的非标项目多,可以让你上手练习,机器视觉开发对公司不是那么重要这类型公司,调......
  • oracle11g启动过程中加载配置文件
    oracle指定配置文件启动,要是不指定配置文件启动的话默认找的参数文件顺序如下:在oracle11g中oracle启动过程中默认会加载相应的配置文件来启动oracle服务。检查参数文件有两个,一个是spfile<ORACLE_SID>.ora文件,另一个是inti<ORACLE_SID>.ora文件。oracle软件服务安装完成后,s......
  • 量化金融数据:股票、期货、期权、外汇、外盘期货、美股、港股、数字货币分钟、tick高频
    银河数据:yinhedata.comA股:沪深京行情数据及接口,包含Level2、十档、五档、tick、分钟、日、财务数据、宏观数据等。美股:美股行情历史数据分钟、日、周、月、财务报表、宏观数据,含复权和不复权数据等。国内期货:国内所有期货交易所的行情数据,Level2、0.5s高频数据、分钟、日、......
  • [USACO22DEC] Making Friends P 题解
    T2[USACO22DEC]MakingFriendsP考虑删除一个点,会有如下的点相连接:题目要求如果两两个点建立联系,只会建立一次。所以,神奇地,我们取出当前待删的点所连接的最小的点,将它和剩下的点连接。手摸一下会发现这样就巧妙地给每个改建的边都建了一次。所以用一个set启发式合并就做完......
  • JavaScript 条件循环语句
    ‌条件循环语句‌是编程中的一种控制结构,它允许程序根据特定条件重复执行一段代码,直到满足某个条件为止。这种结构通常包括条件语句和循环语句,它们共同作用,使得程序能够根据预设的条件来决定是否继续执行循环体中的代码。for循环:适用场景:当知道循环次数时(循环次数已知)。特......
  • C语言自定义类型:联合体
    目录前言一、联合体1.1联合体类型的声明1.2联合体的特点1.3相同成员的结构体和联合体对比1.4联合体大小的计算1.5联合体的⼀个练习总结前言前面我讲到C语言中的自定义结构——结构体,其实C语言中的自定义结构不只有结构体,还有枚举和联合体,我们今天就来学习一下......
  • Electron慢,QT贵,有没有第三选择?试试Tauri
    桌面程序开发页面也面临着前端技术栈的选择,Electron、QT和Tauri算是各有千秋,Electron在处理大量文件时候,非常耗费资源,QT倒是没有这方面问题,但是收费忒贵了,Tauri作为后起之秀,有无弯道超车的机会呢?一、electron、qd和tauri的由来和基本信息1.Electron:-由来:Electron最初......
  • 如何快速免费搭建自己的Docker私有镜像源来解决Docker无法拉取镜像的问题(搭建私有镜像
    文章目录......
  • CSS——边框线条动画效果
    CSS——边框线条动画效果上次我们实现了边框的线条缩放效果,今天我们来用三种方式完成边框的线条旋转动态效果。方法一:使用伪元素这是最普遍、最常用的方法,我们需要为边框所在的元素添加伪元素,然后旋转这个伪元素即可。本节将讲解以下视频的实现过程。伪元素边框旋转......