首页 > 编程语言 >C#+WPF上位机开发课程(模块化与反应式编程)

C#+WPF上位机开发课程(模块化与反应式编程)

时间:2023-09-06 17:33:55浏览次数:50  
标签:条码 上位 C# 新建 PLC 反应式 用于 WPF 采集

点击下载:C#+WPF上位机开发课程(模块化与反应式编程) 提取码: ak72

上位机是指可以直接发出操控命令的计算机,一般是PC,通常用于屏幕上显示各种信号变化(液压,水位,温度等),并将这些数据存储下来,供分析。

 下位机是直接控制设备,获取设备状况的计算机,一般是PLC(Programmable Logic Controller)/单片机(考虑一块板子上单片机与传感器的关系)。


上位机模板软件开发

1)新建一个DataGrab类用于数据的采集;

2)新建一个DataHandle类用于数据的处理以及和PLC信号的交互;

3)新建一个DataDisplay类用于曲线的显示;

4)新建一个Report类用于报表数据的存储;

5)TableDisplay类用于界面上表格的显示;

6)新建一个LogHelper类用于日志的记录;

7)新建一个ParameterSetting文件夹,里面存储参数设置的类

8)新建主界面MainForm类;


软件操作过程

第一步、设置条码长度和压力的上限和下限

第二步、输入条码,按下“回车键”,如果条码长度不对则弹出条码长度错误提示,并且无法进行下一步;

第三步、条码输入Ok后,点击“开始”按钮(模拟接收到PLC的开始采集信号)

第四步、点击“停止”按钮(模拟接收到PLC的结束采集信号)

第五步、观察界面压力曲线、表格中最大压力的显示、报表中最大压力以及条码的显示、原始数据报表中包含的采集过程中所有原始数据、Log日志。

 

标签:条码,上位,C#,新建,PLC,反应式,用于,WPF,采集
From: https://blog.51cto.com/u_16204320/7388848

相关文章

  • [SpringSecurity5.6.2源码分析三]:SpringWebMvcImportSelector
    1、SpringWebMvcImportSelector• SpringSecurity支持在SpringMVC进行参数解析的时候填充参数,支持以下的对象• 通过@AuthenticationPrincipal,获取UserDetails• 通过@CurrentSecurityContext,获取SecurityContext• 通过参数类型为CsrfToken获取CsrfToken• 究其原因是因为Spr......
  • 24V直流DC浪涌过压保护推荐26V电压TVS二极管
    直流DC电源端口浪涌过压防护一直都是很多新老电子工程师关注的方案之一。不管是电源端口浪涌防护还是信号接口静电保护,浪涌静电防护,找东沃,电路保护不迷路!东沃电子专注于研发、生产、销售静电保护二极管(ESD)、瞬态抑制二极管(TVS)、陶瓷气体放电管(GDT)、压敏电阻(MOV)、自恢复保险丝(PPTC)、......
  • TwinCAT3 - 实现Dictionary
    目录1,前言2,C#的字典3,TwinCAT3的字典定义功能块添加方法4,用起来1,前言C#有字典,TwinCAT没字典,咋办,自己写一个咯2,C#的字典C#的字典使用很简单,下面是最基本的使用Dictionary<string,object>dic=newDictionary<string,object>();dic.Add("key1",1);dic.Add("key2","ABC")......
  • LeetCode347——前K个高频元素
    给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1] 提示:1<=nums.length<=10e5k 的取值范围是 [......
  • 【Leetcode刷题记录】1、统计参与通信的服务器;2、统计二叉树中好节点的数目;3、从两个
    1、统计参与通信的服务器题目:这里有一幅服务器分布图,服务器的位置标识在 m*n 的整数矩阵网格 grid 中,1表示单元格上有服务器,0表示没有。如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。请你统计并返回能够与至少一台其他服务器进行通信的服务器的......
  • ubuntu20安装colmap
     教程https://colmap.github.io/install.html 前提r900k 3070显卡cuda11.5opencv3.4.9如果有acoda先从环境变量去掉,以免导致多重库问题 起作用source~/.bashrcgcc11 g++ 11 安装sudoapt-getinstall\git\cmake\ninja-bui......
  • Agrobacterium农杆菌属
    农杆菌属(学名:Agrobacterium),又称土壤杆菌属,是革兰氏阴性菌的一个属,常通过水平基因转移导致植物根瘤的产生,该属以向植物导入DNA的能力而闻名,因此农杆菌属也是用于改良植物的重要工具。其中模式种根瘤农杆菌(Agrobacteriumtumefaciens)是本属中最常研究的种系。1、NEWBing的回答根......
  • Vue/React对比学习
    组件传值//父组件exportdefaultfunctionTab(props:any){const[serverUrl,setServerUrl]=useState<string|undefined>('https://');console.log(props);//父组件接受子组件的值并修改constchangeMsg=(msg?:string)=>{setServerUrl......
  • C++运算符优先级
    所有(可能)运算符共分为18级。第1级运算符含义::作用域解析运算符第2级运算符含义()函数调用()值构造,即type(expr)[]数组下标->间接成员运算符.直接成员运算符const_cast专用的类型转换dynamic_cast专用的类型转换re......
  • pageoffice模板套红
    转载:模板套红模板套红注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。在Web项目中处理Word文档,经常会用到Word模板,只不过这里的“模板”概念,都是指在Web项目中预先放置的doc、docx等扩展名的、真正的Word文档,对......