手把手教你写上位机软件(c#、winform)

文章目录


在这里插入图片描述

一、需求分析

在自动化行业中的上位机软件类型一般分为以下几种:
1、组装设备的上位机软件
该类型的软件一般有以下功能:
1)和PLC通信;
2)和相机通信,界面显示图片以及通过图像算法获取算法计算结果;
3)各种参数开放到界面可设置;
4)数据的保存,将数据以csv、txt等格式进行保存;
5)日志用于问题分析
2、测试设备的上位机软件
该类型的软件一般有以下功能:
1)和PLC通信;
2)和各种仪器通信,比如距离传感器、流量传感器、压力传感器等,通信方式为串口通信、USB通信、Tcp通信,曲线显示数据;
3)各种参数开放到界面可设置;
4)数据的保存,将数据以csv、txt等格式进行保存;
3、运动控制软件
1)直接通过运动控制卡来控制电机,所以不需要和PLC通信,常见控制卡为固高、研华、雷赛、凌华、翠欧等;
2)和相机通信,界面显示图片以及通过图像算法获取算法计算结果;
3)和各种仪器通信,比如距离传感器、流量传感器等,通信方式为串口通信、USB通信、Tcp通信、曲线显示数据;
4)各种参数开放到界面可设置;
5)数据的保存,将数据以csv、txt等格式进行保存;

本文这里以测试设备软件为例子介绍上位机软件开发的过程:
软件要求:
1)需要使用手动扫码枪扫码,条码需要和最后的测试压力值绑定并存储到报表;
1)该测试设备需要测试某个压力传感器在某个时间段内的压力的最大值,开始测试信号和结束信号由PLC给上位机(由于没有PLC,这里的开始信号和结束信号通过界面的开始和结束按钮来代替);
2)需要使用曲线显示这段时间的压力(由于没有压力传感器,这里使用随机数来产生压力值);
3)使用报表存储原始数据,以及最大压力以及条码;
4)界面需要显示测试状态,不测试时为“等待状态”,测试过程中为“测试中”,测试结束为“测试完成”,并且如果测试收到测试开始信号一分钟后没有收到结束信号的话,测试状态需要变成报警,并且软件要停止测试以防止内存中数据过多引起软件崩溃。

二、软件开发

1)新建一个DataGrab类用于数据的采集;
2)新建一个DataHandle类用于数据的处理以及和PLC信号的交互;
3)新建一个DataDisplay类用于曲线的显示;
4)新建一个Report类用于报表数据的存储;
5)TableDisplay类用于界面上表格的显示;
6)新建一个LogHelper类用于日志的记录;
7)新建一个ParameterSetting文件夹,里面存储参数设置的类
8)新建主界面MainForm类;
工程界面如下:
在这里插入图片描述
部分代码展示:
在这里插入图片描述

三、软件操作过程

第一步、设置条码长度和压力的上限和下限
第二步、输入条码,按下“回车键”,如果条码长度不对则弹出条码长度错误提示,并且无法进行下一步;
第三步、条码输入Ok后,点击“开始”按钮(模拟接收到PLC的开始采集信号)
第四步、点击“停止”按钮(模拟接收到PLC的结束采集信号)
第五步、观察界面压力曲线、表格中最大压力的显示、报表中最大压力以及条码的显示、原始数据报表中包含的采集过程中所有原始数据、Log日志。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、总结

根据本人多年的上位机软件开发经验,总结了上位机软件工程师从入门到进阶的技术学习路线如下:
并且本人针对这些技能,总结了多个系统教程,详细介绍往下看。
在这里插入图片描述

该软件包含了自动化行业测试设备上位机软件的绝大部分功能如下:
1)键盘按键事件处理用于条码扫描;
2)曲线的显示;
3)报表的存储;
4)跨线程更新UI;
5)表格的使用(datagridview控件);
6)Log日志的使用;
7)参数的设置与保存(序列化保存参数);
8)状态机的使用(利用委托实现不同状态之间的切换);
9)Task的使用。
掌握了以上技术,在工作中应付常规的自动化行业的测试软件都可以。
上位机软件开发必不可少的技能是界面开发与通信开发,针对上位机领域使用到各种技术,本人经过多年积累(博主硕士六年+行业经验,目前担任高级软件工程师职位),打造了一系列适合小白以及有经验的工程师的教程,带您从入门到精通上位机软件开发,目前有五个系统教程,《winform控件从入门到精通》《C#串口通信从入门到精通》《C# Modbus通信从入门到精通》《 C#Socket通信从入门到精通 》《C# MES通信从入门到精通》这些教程受到了大家的一致好评,订阅量也是持续攀升,总订阅量达到了1000+,也持续霸榜CSDN热销榜,足以可见其受欢迎程度,我想这是因为我的专栏都是项目实战经验总结而成,能够帮助大家实实在在的解决问题,详细介绍如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、针对界面开发

上位机中使用最多的又是winform,本人打造了适合小白以及有经验的工程师的《winform控件从入门到精通》教程 ,带您系统学习winform界面开发技术,目前已有超过300人订阅,前400位订阅者限时29.9元(一顿好点的外卖),300位以后价格调整到99.9元,目前专栏开通一个月就上了CSDN专栏热销榜,详情见我的博客专栏《winform控件从入门到精通》,更多控件的访问链接如下:
点击链接即可转到该控件的详细介绍:
订阅《winform控件从入门到精通》专栏的vip成员还可享受以下增值服务:
1)进入VIP群和众多学员一起交流学习winform,c#,找工作等
2)博主会上传一些免费的学习资料帮助大家学习,比如本篇博文说的上位机源码、《c#图解教程》、《c#本质论》的电子书籍等
3)如果遇到学习困难还可在群里@博主来帮助你。

4)qq群号:832556891
注意:只有订阅了博客专栏的学员才能进入群,加群时留下自己的博客名称即可。
在这里插入图片描述

1、Winform从入门到精通(27)——Label(详细版本)

2、Winform从入门到精通(2)——Button(史上最全)

3、Winform从入门到精通(3)——Form(史上最全)

4、Winform从入门到精通(4)——Textbox(史上最全)

5、Winform从入门到精通(5)——checkBox(史上最全)

6、Winform从入门到精通(6)——radioButton(史上最全)

7、Winform从入门到精通(7)——ComboBox(史上最全)

8、Winform从入门到精通(8)——richTextBox(史上最全)

9、Winform从入门到精通(9)——ListBox(史上最全)

10、Winform从入门到精通(10)——CheckedListBox(史上最全)

11、Winform从入门到精通(11)——numericUpDown(史上最全)

12、Winform从入门到精通(12)——LinkLabel(史上最全)

13、Winform从入门到精通(13)——DateTimePicker(史上最全)

14、Winform从入门到精通(14)——NotifyIcon(史上最全)

15、Winform从入门到精通(15)——contextMenuStrip(史上最全)

16、Winform从入门到精通(16)——Timer(史上最全)

17、Winform从入门到精通(17)——PictureBox(史上最全)

18、Winform从入门到精通(18)——Chart(史上最全)

19、Winform从入门到精通(19)——DataGridView(史上最全)

20、Winform从入门到精通(20)——TableLayoutPanel(史上最全

21、Winform从入门到精通(21)——ProgressBar(史上最全)

22、Winform从入门到精通(22)——Panel(史上最全)

23、Winform从入门到精通(23)——FlowLayoutPanel(史上最全)

24、 Winform从入门到精通(24)——GroupBox(史上最全)

25、Winform从入门到精通(25)——SplitContainer(史上最全)

26、Winform从入门到精通(26)——TabControl(史上最全)

27、Winform从入门到精通(28)——ToolTip(史上最全)

28、Winform从入门到精通(29)——MaskedTextBox(史上最全)

29、Winform从入门到精通(30)——MonthCalendar(史上最全)

30、Winform从入门到精通(31)——TreeView(史上最全)

31、Winform从入门到精通(32)——MenuStrip(史上最全)

32、Winform从入门到精通(33)——OpenFileDialog(史上最全)

33、Winform从入门到精通(34)——SaveFileDialog(史上最全)

34、Winform从入门到精通(35)——FontDialog(史上最全)

35、Winform从入门到精通(36)——ColorDialog(史上最全)

36、Winform从入门到精通(37)——FolderBrowserDialog(史上最全)

37、Winform从入门到精通(38)——StatusStrip(史上最全)

38、Winform从入门到精通(39)——ToolStrip(史上最全)

39、Winform从入门到精通(40)——HelpProvider(史上最全)

41、Winform从入门到精通(42)——ToolStripContainer(史上最全)

42、Winform从入门到精通(43)——BackgroundWorker(史上最全)

六、针对串口通信开发

在这里插入图片描述

串口通信在上位机开发中是使用最多的通信,掌握串口通信程序的开发是一项必不可少的技能,作者在自动化领域耕耘多年,做过的串口通信的项目大大小小也有几百个,公司项目+兼职项目,可以说只要是串口通信的项目,没有我做不了的,毕竟让我徒手撸一个市面上你见到的串口助手对我而言也不在话下,古人云读万卷书不如行万里路,行万里路不如名师指路,所以入门最快的方法一定是找个前辈模仿他,年轻的时候一定要投资自己!买书、买课程学习都是你提升自己最快的方法,成为高手别无他法,努力学习+模仿高手,他日一定有所成就!一本书、一个课程几十块钱,但是在未来为你赚到的钱一定是这些成本的几十倍、几百倍、上千倍,甚至更多!如果你是一个普通人,没有强大的背景,一定要持续学习,持续学习是普通人逆袭唯一的方法!如果想精通串口编程,c#基础的语法知识必不可少,其次是各种协议比如LRC、CRC、BCC、Modbus 以及自定义的协议,由于串口通信使用的特别多,尤其是工业自动化领域和仪器的通信,我先写个简单的串口通信的调试工具软件SComTool给大伙尝尝鲜,当然能写一个串口助手真的不算什么,我问你以下几个问题,你是否都能答上来,才算是一个高手,不然怎么轻松拿三十万+年薪。
问题1:位运算是什么?有哪几种?
问题2:LRC、CRC、BCC、汉明校验、累加和校验、 Modbus RTU、Modbus ASCII是啥?
问题3、明明数据发送到了串口,用串口工具为啥接收到的数据乱码,丢帧?
问题4、如何实现数据发送和数据接收同时进行?
问题5、每隔10毫秒接收一组数据,并且要在界面显示,并且要存储到本地文件,怎么实现?
问题6、一个软件要同时和5个串口实现数据收发怎么实现?
问题7、二进制、8进制、十进制、十六进制的转换怎么实现的?
问题8、字符编码是什么?ASCII是啥?UTF8是啥?
问题9、负数在计算机中怎么存储的?
问题10、浮点数在计算机中怎么存储的?
如果我问的上面10个问题你不能全部掌握的话,我建议你还是来我的专栏系统学习一下吧!当然这些知识我都会在我呕心沥血打造的《C#串口通信从入门到精通》中进行详细介绍,目前专栏开通后立即成为csdn热销榜
,目前已有将近两百人订阅,专栏目录如下:
在这里插入图片描述

1、C#串口通信从入门到精通(1)——硬件接线

2、C#串口通信从入门到精通(2)——串口相关参数介绍

3、C#串口通信从入门到精通(3)——虚拟串口工具的使用

4、C#串口通信从入门到精通(4)——串口调试助手的使用

5、C#串口通信从入门到精通(5)——打开、关闭串口

6、C#串口通信从入门到精通(6)——串口发送数据(字符串、16进制、图片等文件)

7、C#串口通信从入门到精通(7)——数据转换工具类的使用教程

8、C#串口通信从入门到精通(8)——串口接收数据(字符串、16进制、图片等文件)

9、C#串口通信从入门到精通(9)——二进制、八进制、十进制、十六进制(HEX)、字节、位之间的关系

10、C#串口通信从入门到精通(10)——什么是ASCII、UTF8、Unicode

11、C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

12、C#串口通信从入门到精通(12)——串口接收的数据以曲线显示

13、C#串口通信从入门到精通(13)——多个串口发送数据

14、C#串口通信从入门到精通(14)——多个串口接收数据

15、C#串口通信从入门到精通(15)——流量控制(XON/XOFF协议实现)

16、C#串口通信从入门到精通(16)——累加和校验(CheckSum)原理与C#代码实现

17、C#串口通信从入门到精通(17)——纵向冗余校验(LRC)原理与C#代码实现

18、C#串口通信从入门到精通(18)——异或校验(BCC)原理与C#代码实现

19、C#串口通信从入门到精通(19)——模2除法的原理与计算过程

20、C#串口通信从入门到精通(20)——位运算原理

21、C#串口通信从入门到精通(21)——一个串口多线程发送数据

22、C#串口通信从入门到精通(22)——一个串口多线程接收数据

23、C#串口通信从入门到精通(23)——奇偶校验

24、C#串口通信从入门到精通(24)——循环冗余校验(CRC)原理与C#代码实现

25、C#串口通信从入门到精通(25)——整数/小数(浮点数)和字节数组互相转换

26、C#串口通信从入门到精通(26)——多个串口多个线程发送数据和接收数据

27、C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

订阅《C#串口通信从入门到精通》专栏的vip成员还可享受以下增值服务:
1)进入VIP群和众多学员一起交流学习串口通信、找工作等
2)博主会上传一些免费的学习资料帮助大家学习,比如《c#图解教程》、《c#本质论》的电子书籍、SComTool1.1串口助手的源码等
3)如果遇到学习困难还可在群里@博主来帮助你。

4)qq群号:651251930
注意:只有订阅了博客专栏的学员才能进入群,加群时留下自己的博客名称即可。

七、针对Modbus通信开发

在这里插入图片描述

Modbus通信是一种使用非常广泛的通信协议,Modbus一般有三种,分别为ModbusRTU、ModbusASCII、ModbusTCP,其中ModbusRTU、ModbusASCII是应用于串行链路上的协议,通俗一点就是说它是走串口的,ModbusTCP通俗点说就是它是走网口的,作者在自动化领域耕耘多年,做过的Modbus项目无数,靠Modbus通信的兼职也赚过数万,毕竟让我徒手撸一个ModbusSlave这种Modbus调试工具对我而言也不在话下,比如上图你看到的Modbus调试助手就是我写的。古人云读万卷书不如行万里路,行万里路不如名师指路,所以入门最快的方法一定是找个前辈模仿他,年轻的时候一定要投资自己!买书、买课程学习都是你提升自己最快的方法,成为高手别无他法,努力学习+模仿高手,他日一定有所成就!一本书、一个课程几十块钱,但是在未来为你赚到的钱一定是这些成本的几十倍、几百倍、上千倍,甚至更多!如果你是一个普通人,没有强大的背景,一定要持续学习,持续学习是普通人逆袭唯一的方法!如果想精通Modbus编程,c#基础的语法知识必不可少,订阅我的专栏《C# Modbus通信从入门到精通》就送《C#本质论》、《C#图解教程》电子书。总之,只要跟我学了Modbus通信,一定能打变Modbus无敌手,如果我问你以下几个问题,你都能答上来,才算是一个高手,不然怎么轻松拿三十万+年薪,当然这些知识我都会在我的专栏《C# Modbus通信从入门到精通》中进行详细介绍。
问题1:Modbus总共有几种?
问题2:Modbus RTU是走串口还是网口?
问题3、Modbus RTU需要校验吗?
问题4、Modbus TCP需要校验吗?
问题5、Modbus支持哪些功能码?每一种功能码的具体含义是啥?
问题6、怎么解决ModbusRTU通信中多线程通信问题?
问题7、怎么解决ModbusTCP通信中掉线重连问题?
如果我问的上面几问题你不能全部掌握的话,我建议你还是来我的专栏《C# Modbus通信从入门到精通》系统学习一下吧!
本专栏将会详细对这三种协议如何在C#程序开发上的应用进行详细讲解,包含协议原理、报文格式、C#源码实现,专栏一推出就上了csdn成为热销榜,详细目录如下:

在这里插入图片描述

C# Modbus通信从入门到精通》专栏文章目录如下:
点击下面的文章链接即可转到该文章:

1、C# Modbus通信从入门到精通(1)——虚拟串口调试工具的使用

2、C# Modbus通信从入门到精通(2)——Modbus RTU协议原理

3、C# Modbus通信从入门到精通(3)——Modbus RTU(0x01功能码与C#代码实现)

4、C# Modbus通信从入门到精通(4)——Modbus RTU(0x02功能码与C#代码实现)

5、C# Modbus通信从入门到精通(5)——Modbus RTU(0x03功能码与C#代码实现)

6、C# Modbus通信从入门到精通(6)——Modbus RTU(0x04功能码与C#代码实现)

7、C# Modbus通信从入门到精通(7)——Modbus RTU(0x05功能码与C#代码实现)

8、C# Modbus通信从入门到精通(8)——Modbus RTU(0x06功能码与C#代码实现)

9、C# Modbus通信从入门到精通(9)——Modbus RTU(0x0F功能码与C#代码实现)

10、C# Modbus通信从入门到精通(10)——Modbus RTU(0x10功能码与C#代码实现)

11、C# Modbus通信从入门到精通(11)——调试软件Modbus Slave和Modbus Poll的使用

12、C# Modbus通信从入门到精通(12)——Modbus ASCII协议原理

13、C# Modbus通信从入门到精通(13)——Modbus ASCII(0x01功能码与C#代码实现)

14、C# Modbus通信从入门到精通(14)——Modbus ASCII(0x02功能码与C#代码实现)

15、C# Modbus通信从入门到精通(15)——Modbus ASCII(0x03功能码与C#代码实现)

16、C# Modbus通信从入门到精通(16)——Modbus ASCII(0x04功能码与C#代码实现)

17、C# Modbus通信从入门到精通(17)——Modbus ASCII(0x05功能码与C#代码实现)

18、C# Modbus通信从入门到精通(18)——Modbus ASCII(0x06功能码与C#代码实现)

19、C# Modbus通信从入门到精通(19)——Modbus ASCII(0x0F功能码与C#代码实现)

20、C# Modbus通信从入门到精通(20)——Modbus ASCII(0x10功能码与C#代码实现)

21、C# Modbus通信从入门到精通(21)——Modbus TCP协议原理

22、C# Modbus通信从入门到精通(22)——Modbus TCP(0x01功能码与C#代码实现)

23、C# Modbus通信从入门到精通(23)——Modbus TCP(0x02功能码与C#代码实现)

24、C# Modbus通信从入门到精通(24)——Modbus TCP(0x03功能码与C#代码实现)

25、C# Modbus通信从入门到精通(25)——Modbus TCP(0x04功能码与C#代码实现)

26、C# Modbus通信从入门到精通(26)——Modbus TCP(0x05功能码与C#代码实现)

27、C# Modbus通信从入门到精通(27)——Modbus TCP(0x06功能码与C#代码实现)

28、C# Modbus通信从入门到精通(28)——Modbus TCP(0x0F功能码与C#代码实现)

29、C# Modbus通信从入门到精通(29)——Modbus TCP(0x10功能码与C#代码实现)

八、针对Socket通信开发

在这里插入图片描述

Socket通信(包含Tcp/Udp通信)在工业领域用途非常广泛,作者在自动化领域耕耘多年,做过的Tcp/Udp通信的项目大大小小也有几百个,公司项目+兼职项目,可以说只要是Tcp/Udp的项目,没有我做不了的,毕竟让我徒手撸一个市面上你见到的Tcp/Udp调试助手对我而言也不在话下,比如上图你看到的TCP/UDP1.0调试助手就是我写的。古人云读万卷书不如行万里路,行万里路不如名师指路,所以入门最快的方法一定是找个前辈模仿他,年轻的时候一定要投资自己!买书、买课程学习都是你提升自己最快的方法,成为高手别无他法,努力学习+模仿高手,他日一定有所成就!一本书、一个课程几十块钱,但是在未来为你赚到的钱一定是这些成本的几十倍、几百倍、上千倍,甚至更多!如果你是一个普通人,没有强大的背景,一定要持续学习,持续学习是普通人逆袭唯一的方法!如果想精通TCP/UDP编程,C#基础的语法知识必不可少,订阅我的专栏《 C#Socket通信从入门到精通 》就送《C#本质论》、《C#图解教程》电子书。其次是Tcp客户端编程、Tcp服务器编程、Udp客户端编程、Udp服务器编程、Udp广播编程、Udp多播编程,这些知识我都会在我开设的专栏《 C#Socket通信从入门到精通 》中进行详细讲解,总之,只要跟我学了Tcp/Udp通信,一定能打变Tcp/Udp无敌手,由于Tcp/Udp使用的特别多,尤其是工业自动化领域和仪器的通信,比如和仪器、PLC、机械手的通信、文件的传输等,我先写个Tcp/Udp通信的调试工具软件给大伙尝尝鲜,帮助大家更好的理解Tcp/Udp,当然能写一个Tcp/Udp通信助手真的不算什么,在实际项目中,还有更复杂的功能,比如文件的传输等,当然这些知识我都会在我的专栏《 C#Socket通信从入门到精通 》中进行详细介绍,只有系统掌握了各种Tcp/Udp通信的知识以及应用,才算是一个高手,不然怎么轻松拿30万+年薪。
说了那么多,大家肯定好奇,我花了钱学你这个专栏我到底能获得什么?总结下:
1、掌握TCP客户端编程;
2、掌握TCP服务器编程;
3、掌握UDP客户端编程;
4、掌握UDP服务器编程;
5、掌握UDP组播编程;
6、掌握任意数量的客户端、服务器编程;
7、掌握文件传输;
8、掌握项目实战编程方法

学完本专栏,以后遇到的任何关于TCP、UDP编程的问题都不是问题!什么ModbusTCP、与PLC的通信、与各种仪器的通信都是手到擒来!雷军曾说你会发生你生命中遇到的问题百分之九十的问题别人都遇到过,你需要做的就是找个人问一下,我就是那个你需要问的人。

《 C#Socket通信从入门到精通 》专栏文章目录
点击下面的文章链接即可转到该文章:

1、C# Socket通信从入门到精通(1)——单个同步TCP客户端C#代码实现

2、C# Socket通信从入门到精通(2)——多个同步TCP客户端C#代码实现

3、C# Socket通信从入门到精通(3)——单个异步TCP客户端C#代码实现

4、C# Socket通信从入门到精通(4)——多个异步TCP客户端C#代码实现

5、C# Socket通信从入门到精通(5)——单个同步TCP服务器监听一个客户端C#代码实现

6、C# Socket通信从入门到精通(6)——单个同步TCP服务器监听多个客户端C#代码实现

7、C# Socket通信从入门到精通(7)——单个异步TCP服务器监听单个客户端C#代码实现

8、C# Socket通信从入门到精通(8)——单个异步TCP服务器监听多个客户端C#代码实现

9、C# Socket通信从入门到精通(9)——如何设置本机Ip地址

10、C# Socket通信从入门到精通(10)——如何检测两台电脑之间的网络是否通畅

11、C# Socket通信从入门到精通(11)——单个同步UDP客户端C#代码实现

12、C# Socket通信从入门到精通(12)——多个同步UDP客户端C#代码实现

13、C# Socket通信从入门到精通(13)——单个异步UDP客户端C#代码实现

14、C# Socket通信从入门到精通(14)——多个异步UDP客户端C#代码实现

15、C# Socket通信从入门到精通(15)——单个同步UDP服务器监听一个客户端C#代码实现

16、C# Socket通信从入门到精通(16)——单个同步UDP服务器监听多个客户端C#代码实现

17、C# Socket通信从入门到精通(17)——单个异步UDP服务器监听一个客户端C#代码实现

18、C# Socket通信从入门到精通(18)——单个异步UDP服务器监听多个客户端C#代码实现

19、C# Socket通信从入门到精通(19)——UDP广播C#代码实现

20、C# Socket通信从入门到精通(20)——UDP组播(多播)C#代码实现

21、C# Socket通信从入门到精通(21)——TCP发送文件与接收文件 C#代码实现

九、文章访问链接

《winform控件从入门到精通》访问链接如下:

1、Winform从入门到精通(1)——(如何年入30万+)

2、Winform从入门到精通(2)——Button(史上最全)

3、Winform从入门到精通(3)——Form(史上最全)

4、Winform从入门到精通(4)——Textbox(史上最全)

5、Winform从入门到精通(5)——checkBox(史上最全)

6、Winform从入门到精通(6)——radioButton(史上最全)

7、Winform从入门到精通(7)——ComboBox(史上最全)

8、Winform从入门到精通(8)——richTextBox(史上最全)

9、Winform从入门到精通(9)——ListBox(史上最全)

10、Winform从入门到精通(10)——CheckedListBox(史上最全)

11、Winform从入门到精通(11)——numericUpDown(史上最全)

12、Winform从入门到精通(12)——LinkLabel(史上最全)

13、Winform从入门到精通(13)——DateTimePicker(史上最全)

14、Winform从入门到精通(14)——NotifyIcon(史上最全)

15、Winform从入门到精通(15)——contextMenuStrip(史上最全)

16、Winform从入门到精通(16)——Timer(史上最全)

17、Winform从入门到精通(17)——PictureBox(史上最全)

18、Winform从入门到精通(18)——Chart(史上最全)

19、Winform从入门到精通(19)——DataGridView(史上最全)

20、Winform从入门到精通(20)——TableLayoutPanel(史上最全

21、Winform从入门到精通(21)——ProgressBar(史上最全)

22、Winform从入门到精通(22)——Panel(史上最全)

23、Winform从入门到精通(23)——FlowLayoutPanel(史上最全)

24、 Winform从入门到精通(24)——GroupBox(史上最全)

25、Winform从入门到精通(25)——SplitContainer(史上最全)

26、Winform从入门到精通(26)——TabControl(史上最全)

27、Winform从入门到精通(27)——Label(史上最全)

28、Winform从入门到精通(28)——ToolTip(史上最全)

29、Winform从入门到精通(29)——MaskedTextBox(史上最全)

30、Winform从入门到精通(30)——MonthCalendar(史上最全)

31、Winform从入门到精通(31)——TreeView(史上最全)

32、Winform从入门到精通(32)——MenuStrip(史上最全)

33、Winform从入门到精通(33)——OpenFileDialog(史上最全)

34、Winform从入门到精通(34)——SaveFileDialog(史上最全)

35、Winform从入门到精通(35)——FontDialog(史上最全)

36、Winform从入门到精通(36)——ColorDialog(史上最全)

37、Winform从入门到精通(37)——FolderBrowserDialog(史上最全)

37、Winform从入门到精通(38)——StatusStrip(史上最全)

38、Winform从入门到精通(39)——ToolStrip(史上最全)

39、Winform从入门到精通(40)——HelpProvider(史上最全)

41、Winform从入门到精通(42)——ToolStripContainer(史上最全)

42、Winform从入门到精通(43)——BackgroundWorker(史上最全)

《C#串口通信从入门到精通》访问链接如下:

1、C#串口通信从入门到精通(1)——硬件接线

2、C#串口通信从入门到精通(2)——串口相关参数介绍

3、C#串口通信从入门到精通(3)——虚拟串口工具的使用

4、C#串口通信从入门到精通(4)——串口调试助手的使用

5、C#串口通信从入门到精通(5)——打开、关闭串口

6、C#串口通信从入门到精通(6)——串口发送数据(字符串、16进制、图片等文件)

7、C#串口通信从入门到精通(7)——数据转换工具类的使用教程

8、C#串口通信从入门到精通(8)——串口接收数据(字符串、16进制、图片等文件)

9、C#串口通信从入门到精通(9)——二进制、八进制、十进制、十六进制(HEX)、字节、位之间的关系

10、C#串口通信从入门到精通(10)——什么是ASCII、UTF8、Unicode

11、C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

12、C#串口通信从入门到精通(12)——串口接收的数据以曲线显示

13、C#串口通信从入门到精通(13)——多个串口发送数据

14、C#串口通信从入门到精通(14)——多个串口接收数据

15、C#串口通信从入门到精通(15)——流量控制(XON/XOFF协议实现)

16、C#串口通信从入门到精通(16)——累加和校验(CheckSum)原理与C#代码实现

17、C#串口通信从入门到精通(17)——纵向冗余校验(LRC)原理与C#代码实现

18、C#串口通信从入门到精通(18)——异或校验(BCC)原理与C#代码实现

19、C#串口通信从入门到精通(19)——模2除法的原理与计算过程

20、C#串口通信从入门到精通(20)——位运算原理

21、C#串口通信从入门到精通(21)——多线程发送数据

22、C#串口通信从入门到精通(22)——多线程接收数据

23、C#串口通信从入门到精通(23)——奇偶校验

24、C#串口通信从入门到精通(24)——循环冗余校验(CRC)原理与C#代码实现

25、C#串口通信从入门到精通(25)——整数/小数(浮点数)和字节数组互相转换

27、C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

《C# Modbus通信从入门到精通》访问链接如下:

1、C# Modbus通信从入门到精通(1)——虚拟串口调试工具的使用

2、C# Modbus通信从入门到精通(2)——Modbus RTU协议原理

3、C# Modbus通信从入门到精通(3)——Modbus RTU(0x01功能码与C#代码实现)

4、C# Modbus通信从入门到精通(4)——Modbus RTU(0x02功能码与C#代码实现)

5、C# Modbus通信从入门到精通(5)——Modbus RTU(0x03功能码与C#代码实现)

6、C# Modbus通信从入门到精通(6)——Modbus RTU(0x04功能码与C#代码实现)

7、C# Modbus通信从入门到精通(7)——Modbus RTU(0x05功能码与C#代码实现)

8、C# Modbus通信从入门到精通(8)——Modbus RTU(0x06功能码与C#代码实现)

9、C# Modbus通信从入门到精通(9)——Modbus RTU(0x0F功能码与C#代码实现)

10、C# Modbus通信从入门到精通(10)——Modbus RTU(0x10功能码与C#代码实现)

11、C# Modbus通信从入门到精通(11)——调试软件Modbus Slave和Modbus Poll的使用

12、C# Modbus通信从入门到精通(12)——Modbus ASCII协议原理

13、C# Modbus通信从入门到精通(13)——Modbus ASCII(0x01功能码与C#代码实现)

14、C# Modbus通信从入门到精通(14)——Modbus ASCII(0x02功能码与C#代码实现)

15、C# Modbus通信从入门到精通(15)——Modbus ASCII(0x03功能码与C#代码实现)

16、C# Modbus通信从入门到精通(16)——Modbus ASCII(0x04功能码与C#代码实现)

17、C# Modbus通信从入门到精通(17)——Modbus ASCII(0x05功能码与C#代码实现)

18、C# Modbus通信从入门到精通(18)——Modbus ASCII(0x06功能码与C#代码实现)

19、C# Modbus通信从入门到精通(19)——Modbus ASCII(0x0F功能码与C#代码实现)

20、C# Modbus通信从入门到精通(20)——Modbus ASCII(0x10功能码与C#代码实现)

21、C# Modbus通信从入门到精通(21)——Modbus TCP协议原理

22、C# Modbus通信从入门到精通(22)——Modbus TCP(0x01功能码与C#代码实现)

23、C# Modbus通信从入门到精通(23)——Modbus TCP(0x02功能码与C#代码实现)

24、C# Modbus通信从入门到精通(24)——Modbus TCP(0x03功能码与C#代码实现)

25、C# Modbus通信从入门到精通(25)——Modbus TCP(0x04功能码与C#代码实现)

26、C# Modbus通信从入门到精通(26)——Modbus TCP(0x05功能码与C#代码实现)

27、C# Modbus通信从入门到精通(27)——Modbus TCP(0x06功能码与C#代码实现)

28、C# Modbus通信从入门到精通(28)——Modbus TCP(0x0F功能码与C#代码实现)

29、C# Modbus通信从入门到精通(29)——Modbus TCP(0x10功能码与C#代码实现)

  • 93
    点赞
  • 624
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
C# Winform上位机是一种基于Windows桌面应用程序的上位机开发方式,可以通过串口通信等方式与下位机进行数据交互。以下是一个简单的C# Winform上位机的例子: 1.在Visual Studio中创建一个Windows Forms应用程序项目。 2.在窗体上添加一个ComboBox控件和一个Button控件。 3.在代码中引用System.IO.Ports命名空间,使用SerialPort类实现串口通信。 4.在Button的Click事件中编代码,获取可用串口列表并在ComboBox中显示。 5.在ComboBox的SelectedIndexChanged事件中编代码,获取选中的串口名称并打开串口。 6.在串口接收事件中编代码,处理下位机发送的数据。 以下是一个简单的C# Winform上位机的代码示例: ```csharp using System; using System.IO.Ports; using System.Windows.Forms; namespace WinformSerialPort { public partial class Form1 : Form { private SerialPort serialPort; public Form1() { InitializeComponent(); serialPort = new SerialPort(); serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); } private void Form1_Load(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames(); if (ports.Length != 0) { comboBox1.Items.AddRange(ports); comboBox1.SelectedIndex = 0; } else { MessageBox.Show("请插入串口设备!!"); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (serialPort.IsOpen) { serialPort.Close(); } serialPort.PortName = comboBox1.SelectedItem.ToString(); serialPort.BaudRate = Convert.ToInt32(comboBox2.SelectedItem.ToString()); serialPort.Open(); } private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { string data = serialPort.ReadExisting(); // 处理接收到的数据 } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c#上位机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值