C# 智慧大棚nmodbus4

news2024/9/21 18:34:48

窗体 :图表(chart):

下载第三方:

nmodbus4:可以实现串口直连,需要创建串口对象设置串口参数配置Serialport

如果需要把串口数据表通过tcp进行网口传递 需要创建tcpclient对象

ModbusSerialMaster master;
// 温度的数据源
// Collection 集合
DataPointCollection wenDuValues;
// 温度数据源
DataPointCollection shiDuValues;
// 氧气数据源
DataPointCollection yangQiValues;
public Form1()
{
    InitializeComponent();
    // 创建TCPClient对象
    TcpClient tcp = new TcpClient();
    tcp.Connect("192.168.107.5",8014); // 连接服务器


    // CreateRtu 创建rtu通信对象,
    // 方法有三个重载函数
    // 1 CreateRtu(tcpclient) 用的网口通信 HY-E504串口服务器
    // 2 CreateRtu(serialport) 用的串口直连 485转换器
    // 以后使用master进行读取指定地址数据即可
    master = ModbusSerialMaster.CreateRtu(tcp); //

    // 初始化数据源
    wenDuValues = chart1.Series[0].Points;
    shiDuValues = chart1.Series[1].Points; // 把图表湿度point默认值赋值给变量
    yangQiValues = chart1.Series[2].Points;

}

double 温度;
double 湿度;
double 氧气;
private void timer1_Tick(object sender, EventArgs e)
{
    // 获取温度 湿度 氧气数据
    string time = DateTime.Now.ToString("HH:mm:ss");
    // 判断复选框是否选中
    if (checkBox1.Checked) // 选中温度
    {
        // 取出温度数据
        // ReadHoldingRegisters 读取寄存器的数据
        // 参数1 设备地址 一般都是1
        // 参数2 寄存器地址 温度寄存器地址0003
        // 参数3  读取寄存器个数,读取一个温度数据个数就为1
        ushort[] values = master.ReadHoldingRegisters(1, 0x03, 1);// values 就是数据
        float value = values[0] / 10F;// values[0]就是温度数据
        // 图标添加xy轴;x轴是时间 y轴是温度值
        wenDuValues.AddXY(time, value);
        温度 = value; // 记录最后一个值
    }
    else // 未选中温度的时候
    {
        int index = wenDuValues.AddXY(time, 温度); // 返回值是集合末尾的索引值
        // 把当前点设置为透明
        DataPoint dp = wenDuValues[index];
        dp.Color = Color.Transparent; // 设置透明颜色

        //wenDuValues[温度];
    }

    // 处理湿度的
    if (checkBox2.Checked) // 选中湿度
    {
        // 读取湿度数据
        ushort[] data = master.ReadHoldingRegisters(1, 0x02, 1);
        float s = data[0] * 0.1F;
        shiDuValues.AddXY(time, s);// 添加xy轴
        湿度 = s;
    }
    else
    {
        // 未选择湿度
        int index = shiDuValues.AddXY(time, 湿度);
        DataPoint p = shiDuValues[index];
        p.Color = Color.Transparent;
    }

    // 处理湿氧气
    if (checkBox2.Checked) // 选中湿度
    {
        // 读取湿度数据
        ushort[] data = master.ReadHoldingRegisters(1, 0x0B, 1);
        float s = data[0] * 0.1F;
        yangQiValues.AddXY(time, s);// 添加xy轴
        氧气 = s;
    }
    else
    {
        // 未选择湿度
        int index = yangQiValues.AddXY(time, 氧气);
        DataPoint p = yangQiValues[index];
        p.Color = Color.Transparent;
    }

}

// 开始定时器 停止定时器
private void button2_Click(object sender, EventArgs e)
{
    if (timer1.Enabled) // 如果等于true 定时器可用
    {
        timer1.Stop(); // 关闭定时器
    }
    else // 默认情况定时器不可用
    {
        timer1.Start();// 开启定时器
    }
}

// 设置事件间隔
private void button1_Click(object sender, EventArgs e)
{
    timer1.Interval = int.Parse(textBox1.Text);
}
}
}

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

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

相关文章

秋招突击——7/17——复习{二分查找——搜索插入位置、搜索二维矩阵,}——新作{链表——反转链表和回文链表,子串——和为K的子数组}

文章目录 引言新作二分模板二分查找——搜索插入位置复习实现 搜索二维矩阵复习实现 新作反转链表个人实现参考实现 回文链表个人实现参考实现 和为K的子数组个人实现参考实现 总结 引言 今天算法得是速通的,严格把控好时间,后面要准备去面试提前批了&a…

Camera Raw:首选项

Camera Raw 首选项 Preferences提供了丰富的配置选项,通过合理设置,可以显著提升图像处理的效率和效果。根据个人需求调整这些选项,有助于创建理想的工作环境和输出质量。 ◆ ◆ ◆ 打开 Camera Raw 首选项 方法一:在 Adobe Bri…

nginx 编译安装与配置

一、安装 官网下载合适的版本,建议选择稳定版本。 官网地址:https://nginx.org wget https://nginx.org/download/nginx-1.26.1.tar.gz -C /opt/ 解压后,进入源码目录 cd /opt/nginx-1.26.1tar -zxvf nginx-1.20.1.tar.gz cd nginx-1.26.1源…

react基础样式控制

行内样式 <div style{{width:500px, height:300px,background:#ccc,margin:200px auto}}>文本</div> class类名 注意&#xff1a;在react中使用class类名必须使用className 在外部src下新建index.css文件写入你的样式 .fontcolor{color:red } 在用到的页面引入…

睿考网:2024注册会计师考试考试在即,如何备考?

2024年注册会计师考试即将开始&#xff0c;准考证打印时间安排在8月5日至20日&#xff0c;每天上午8点至晚上8点&#xff0c;考生要确保在规定时间内完成准考证的打印。 注册会计师考试包含六个科目&#xff0c;每个科目都有其独特的特点和难度。考生需要根据各科目的特性采用…

vue3使用弹幕插件

1.安装插件 $ npm install vue3-danmaku --save 2.用法 <template><vue-danmaku v-model:danmus"danmus" loop style"height:100px; width:300px;"></vue-danmaku> </template><script setup> import vueDanmaku from vu…

Docker构建LNMP环境并运行Wordpress平台

1.准备Nginx 上传文件 Dockerfile FROM centos:7 as firstADD nginx-1.24.0.tar.gz /opt/ COPY CentOS-Base.repo /etc/yum.repos.d/RUN yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make && \useradd -M -s /sbin/nologin nginx && \cd /o…

数据分析01——系统认识数据分析

1.数据分析的全貌 1.1观测 1.1.1 观察 &#xff08;1&#xff09;采集数据 a.采集数据&#xff1a;解析系统日志 当你在看视频的时候———就会产生日志———解析日志———得到数据 b.采集数据&#xff1a;埋点获取新数据&#xff08;自定义记录新的信息&#xff09; 日志…

redis之resp界面连接

解压资源 连接成功

目标检测入门:4.目标检测中的一阶段模型和两阶段模型

在前面几章里&#xff0c;都只做了目标检测中的目标定位任务&#xff0c;并未做目标分类任务。目标检测作为计算机视觉领域的核心人物之一&#xff0c;旨在从图像中识别出所有感兴趣的目标&#xff0c;并确定它们的类别和位置。现在目标检测以一阶段模型和两阶段模型为代表的。…

【spring boot】初学者项目快速练手

一小时带你从0到1实现一个SpringBoot项目开发_哔哩哔哩_bilibili 一、基础知识 1.注解 二、简介 三、项目结构 四、代码结构 1.生成Spring Boot项目的主程序 &#xff08;1&#xff09;在官网下载 Spring Initializr 快速生成一个初始的项目代码&#xff0c;会生成一个de…

Java二十三种设计模式-抽象工厂模式(3/23)

抽象工厂模式&#xff1a;复杂系统的灵活构建者 引言 在软件开发中&#xff0c;抽象工厂模式是一种提供接口以创建相关或依赖对象族的创建型设计模式。这种模式允许客户端使用一个共同的接口来创建不同的产品族&#xff0c;而无需指定具体类。 基础知识&#xff0c;java设计模…

SSE(Server Sent Event)实战(3)- Spring Web Flux 实现

上篇博客 SSE&#xff08;Server Sent Event&#xff09;实战&#xff08;2&#xff09;- Spring MVC 实现&#xff0c;我们用 Spring MVC 实现了简单的消息推送&#xff0c;并且留下了两个问题&#xff0c;这篇博客&#xff0c;我们用 Spring Web Flux 实现&#xff0c;并且看…

MySQL条件查询(DQL)

在此之前先给大家看一下我的表里面的数据&#xff0c;以方便接下来的讲解 还需要大家先熟悉这里面的条件 1.语法 SELECT 字段列表 FROM 表名 WHERE 条件列表 例如 1.查询年龄等于20的员工 select * from emp where age 20; 2.查询年龄小于等于20的员工信息 select * fr…

PPOCRLabel安装及使用

一、环境准备 1、 使用anaconda创建一个Python3.7.x的环境 # 在命令行输入以下命令&#xff0c;创建名为paddle_env的环境 conda create --name paddle_env python3.7 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/输入以下命令可以查看我们所创建的所…

【作业】 贪心算法1

Tips:三题尚未完成。 #include <iostream> #include <algorithm> using namespace std; int a[110]; int main(){int n,r,sum0;cin>>n>>r;for(int i0;i<n;i){cin>>a[i];}sort(a0,an);for(int i0;i<n;i){if(i>r){a[i]a[i-r]a[i];}suma[…

借助Aspose.Note笔记工具,在Java 中更改 OneNote 中的样式

Microsoft OneNote是一款功能强大的笔记工具。学习如何使用 Java 更改样式&#xff0c;将您的 OneNote 体验提升到一个新的水平&#xff01;在本指南中&#xff0c;我们将向您展示如何使用 Java 更改 OneNote 文档中的样式以增强可读性。本指南将为您提供分步说明&#xff0c;以…

k8s集群 安装配置 Prometheus+grafana

k8s集群 安装配置 Prometheusgrafana k8s环境如下&#xff1a;机器规划&#xff1a; node-exporter组件安装和配置安装node-exporter通过node-exporter采集数据显示192.168.40.180主机cpu的使用情况显示192.168.40.180主机负载使用情况 Prometheus server安装和配置创建sa账号&…

【算法/天梯赛训练】天梯赛模拟题集

L1-009 N个数求和 #include <iostream> #include <algorithm>using namespace std;typedef long long ll; const int N 105;typedef struct node {ll x, y; }node; node a[N];ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a; }int main() {int n;cin >>…

三伏天,艾灸这2处,既能祛寒湿、还能补阳气,效果是平时的好几倍~

这周开始&#xff0c;我们就进入了最炎热的三伏天&#xff01;今年的三伏整整40天&#xff0c;高温闷热&#xff0c;汗流浃背&#xff0c;想想都崩溃~ 最热最难熬的这段时间&#xff0c;也是天赐的良机&#xff01;此时阳气达到一年中的鼎盛&#xff0c;人体阳气也最为充沛&…