C#WPF数字大屏项目实战12--动态获取设备数据

news2024/10/7 6:39:34

1、如何获取设备实时数据

现在大屏上的数据都是静态的数据或后台构造的来源数据,在实际项目中现场数据应该来自现场的实时数据,这些数据有些是来自现场设备的动态数据,有些是来自其他系统推送的,有些需要主动查询其他业务,所以数据是来自不同区域,场景,设备,系统,并且这些数据还不直接满足大屏需要,中间需要将数据进行过滤,整合,标准等之类的操作。那么这里我们来尝试使用模拟环境来对接实时数据。

1、介绍ModbusSlave

ModbusSlave是个什么东西?很多人会问,这里先普及下,这个软件就相当于一个硬件设备,比如一个湿度传感器,一个智能设备等,或是一个PLC什么的,都可以。

Modbus Slave: Modbus从设备仿真器,可以仿真32个从设备/地址域。每个接口都提供了对EXCEL报表的OLE自动化支持。主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。可以32个窗口中模拟多达32个Modbus子设备。 

Modbus协议规定了4个存储区 分别是0 1 3 4区 其中1区和4区是可读可写,1区和3区是只读。

ModbusSlave软件主要用于仿真Modbus从站或Modbus服务器,也就是提供我们需要的实时数据

ModbusSlave软件主要用于仿真Modbus从站或Modbus服务器,也就是提供我们需要的实时数据

ModbusSlave软件主要用于仿真Modbus从站或Modbus服务器,也就是提供我们需要的实时数据

2、安装ModbusSlave

首先从网上下载一个ModbusSlave.exe软件,我这里使用的是中文版的,方便操作演示

 软件运行后需要注册授权,直接填入txt文件中的内容即可

3、配置modbusslave服务器

点击确定

4、模拟设备数据

我们的大屏中需要很多数据,这里创建几个数据

2、安装modbus通信库

modbus通信库又是个什么东东了?它是一个通信协议的软件库,用于跟设备进行modbus通信,以实现采集获取设备数据,这里以安装nmodbus4这个具体的库为例,nmodbus4是众多modbus通信库中的一种,也可以自己封装modbus通信库,但那需要高水平的能力。

1、引入Nmodbus4通信库

 

 2、引入System.IO.Ports

3、添加视图模型代码

代码的含义就是创建tcp客户端,然后利用tcp客户端创建modbus从站对象,通过从站对象读取保持寄存器的数据,这些需要有modbus通信知识的基础。

 为了看到实时效果,需要将modbussalve的数据设置为自动增加,以便及时展示

 4、运行效果

 

 走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,动动你的金手指,财务自由 

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

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

相关文章

Chroium 源码目录结构分析(2)

通过脚本,梳理统计chromium源码子目录的大小和功能情况: src根目录 import osdef get_total_directory_size(path, ignore_dirs):total_size 0for root, dirs, files in os.walk(path):dirs[:] [d for d in dirs if d not in ignore_dirs]for file i…

解析Pinterest公司的系统架构设计

最近我偶然发现了一个优秀的 YouTube 视频,“Pinterest 是如何在只有 6 名工程师的情况下扩展到 1100 万用户”(https://www.youtube.com/watch?sicoeqLRKu5i1nnpbI&vQRlP6BI1PFA&featureyoutu.be)以及以下参考文章,“Pinterest 的扩展之路 ——…

Qt 布局管理

布局基础 1)Qt 布局管理系统使用的类的继承关系如下图: QLayout 和 QLayoutItem 这两个类是抽象类,当设计自定义的布局管理器时才会使用到,通常使用的是由 Qt 实现的 QLayout 的几个子类。 2)Qt 使用布局管理器的步骤如下: 首先创建一个布局管理器类的对象。然后使用该…

linux基础-数据库建库建表

数据库建库建表 数据库内部:1、通过SQL解析器解析2、存储引擎 systemctl stop firewalld 关闭防火墙 1)启动数据库mysql #启动systemctl start mariadb #检查进程ps -ef|grep mysql|grep -v mysql #检查端口netstat -lnt #登录测试(后…

node.js漏洞——

一.什么是node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常…

49.线程池的关闭方法

shutdown方法 1.线程池状态变为shutdown 2.不会接收新任务 3.已提交的任务会执行完 4.此方法不会阻塞调用线程执行 ExecutorService executorService = Executors.newFixedThreadPool(2);executorService.submit(() -> {log.debug("task1 running");try {TimeUnit…

云原生架构案例分析_3.某快递公司核心业务系统云原生改造

名称解释: 阿里云ACK:阿里云容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)集成Kubernetes网络、阿里云VPC、阿里云SLB,提供稳定高性能的容器网络。本文介绍ACK集群网络及阿里云网络底层基础设施的重要…

Spring Boot中整合Jasypt 使用自定义注解+AOP实现敏感字段的加解密

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

Bidirectional Copy-Paste for Semi-Supervised Medical Image Segmentation

文章目录 1. 问题背景2. 本文方法2.1. 模型图2.2. 损失函数 2. 模型的训练流程图3. 实验 1. 问题背景 (1)在半监督医学图像分割任务中,标签数据和无标签数据之间存在经验失配问题。 (2)如果采用分隔的方式或者采用不一…

【区块链】truffle测试

配置区块链网络 启动Ganache软件 使用VScode打开项目的wordspace 配置对外访问的RPC接口为7545,配置项目的truffle-config.js实现与新建Workspace的连接。 创建项目 创建一个新的目录 mkdir MetaCoin cd MetaCoin下载metacoin盒子 truffle unbox metacoincontra…

面试(五)

目录 1. 知道大顶端小顶端吗,代码怎么区分大顶端小顶端 2. 计算机中栈地址与内存地址增长方向相反吗? 3. %p和%d输出指针地址 4. 为什么定义第二个变量时候,地址反而减了 5. 12,32,64位中数据的占字节&#xff1f…

告别维修响应慢、费用纠纷,物业报修系统为客服人员减压增效

大家都知道物业报修系统是物业服务企业的得力助手,不仅帮助物业服务企业提升了业主满意度,还增强了物业和业主之间的粘度。但是,我们却忽略了物业报修系统对于物业客服人员带来了哪些工作上的便捷? 作为物业客服人员的你&#xff…

14 个必须了解的微服务设计原则

想象一下,一个机场有各种各样的业务,每个部门都是一个精心设计的微服务,专门用于预订、值机和行李处理等特定操作。机场架构必须遵循这个精心设计的架构的基本设计原则,反映微服务的原则。 例如,航空公司独立运营&…

搜索与图论:宽度优先搜索

搜索与图论&#xff1a;宽度优先搜索 题目描述参考代码 题目描述 输入样例 5 5 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0输出样例 8参考代码 #include <iostream> #include <algorithm> #include <cstring> using namespace std;const int N …

chatglm-6b部署加微调

这里不建议大家使用自己的电脑&#xff0c;这边推荐使用UCloud优刻得-首家公有云科创板上市公司 我们进去以后会有一个新人优惠&#xff0c;然后有一个7天30元的购买&#xff0c;购买之后可以去选择镜像&#xff0c;然后在镜像处理的这个位置&#xff0c;可以选择镜像&#xf…

浙江零排参加全国水科技大会暨技术装备成果展览会(成都)并作主论坛演讲

2024年5月13日-15日中华环保联合会、福州大学、上海大学等联合举办的2024年全国水科技大会暨技术装备成果展览会在成都顺利举办。浙江零排城乡规划发展有限公司司受邀参加&#xff0c;首日有幸听取徐祖信院士、任洪强院士、汪华林院士等嘉宾的主旨报告。主旨报告后&#xff0c;…

麒麟操作系统rpm ivh安装rpm包卡死问题分析

夜间变更开发反应&#xff0c;rpm -ivh 安装包命令夯死&#xff0c;无执行结果&#xff0c;也无报错 排查 &#xff1a; 1、top 查看无进程占用较高进程存在&#xff0c;整体运行平稳 2、df -h 查看磁盘并未占满 3、其他服务器复现该命令正常执行 4、ps -ef|grep rpm 查看安装…

江苏省汽车及零部件产业协作配套对接会在苏州举行

5月28日&#xff0c;江苏省汽车及零部件产业协作配套对接会暨“百场万企”大中小企业融通对接活动在苏州举办。本次活动以“深化整零协作&#xff0c;促进大中小企业融通发展”为主题&#xff0c;由江苏省工业和信息化厅、中国中检所属中国汽车工程研究院股份有限公司&#xff…

跑图像生成模型GAN时,遇到OSError: cannot open resource 报错解决办法

报错信息如下&#xff1a; Traceback (most recent call last): File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py", line 276, in <module> count train(dataloader, image_encoder, text_encoder, File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py…

安卓SystemServer进程详解

目录 一、概述二、源码分析2.1 SystemServer fork流程分析2.1.1 [ZygoteInit.java] main()2.1.2 [ZygoteInit.java] forkSystemServer()2.1.3 [Zygote.java] forkSystemServer()2.1.4 [com_android_internal_os_Zygote.cpp]2.1.5 [com_android_internal_os_Zygote.cpp] ForkCom…