如何用C#设计上位机(小白篇)

[复制链接]
查看13633 | 回复0 | 2024-12-24 14:31:23 | 显示全部楼层 |阅读模式
上位机,简单地说就是电脑上的一个小软件,用来实现远程控制。远程控制是自动化控制的第一步。一般来说,一个上位机的开发包括几个模块:

    界面及功能设计

    设备指令编写

    通信模块设计

一. 界面功能设计:
C#是一款方便设计界面的语言,微软确实牛批!
以下是visual studio开发窗体的界面,界面设计中有几个常用的工具分别为:




    buttun(按钮)

    textBox(文本框)

    checkBox(勾选开关)

    comboBox(复选框)

    label(标签)

    Timer(时钟)

以上常用工具均可在窗体编辑界面中编辑默认属性,基本属性如命名,颜色等。
常用用法介绍如下:

    buttun:一般只需编辑Text属性(如下图为“连接”),命名后直接双击按钮,跳到程序编辑界面,编辑该按钮想要实现的功能。例如:下图为“连接”按钮的程序代码,实现连接和断开的功能。





    textBox:一般有两种用途:

    (1)作为用户输入的参数,可双击该文本框,跳到程序编辑界面,编辑该文本框的文本变化时所要实现的功能。例如:下图为“标签”文本框的程序代码,当“标签”文本框的文本被改变时,将该文本框的文本发送给示波器。





    (2)作为输出显示的参数,程序控制该文本框的内容,显示给用户看。例如下图“测量数据”文本框,每隔1S读取示波器的测量值,显示出来。



    checkBox:一般用于开关。例如下图,开关某个通道,其属性为checkBox.checked,开为true,关为false。双击该开关,编辑开关状态变化时,实现发送开关指令给示波器。





    comboBox:一般用于多个档位选择工具,在属性中需要编辑“集合”,如下图,测量类型的选择。双击该复选框,编辑选择项变化时,实现发送测量类型指令给示波器。








5.  Label:一般用于显示一些提示文本,所以不需要做编程。



6.Timer:时钟工具可以实现每隔一段时间自动执行某些操作,需要设计Interval属性(时间间隔),以及Enable属性(打开)。例如:实现每秒读取示波器测量值并显示的功能。





二. 设备指令编写

这个部分主要参考仪器的指令集进行编写各种控制命令,相对来说比较简单。如下图为示波器的通道打开和关闭指令:



三. 通信模块设计

本例中选择VISA软件协议中的USB接口通信,VISA是NI公司推出的仪器通信软件协议,本例中引用了VISA的库,在发送和接收命令过程中将变得十分简单,如下图分别为发送和接收指令:(NI也牛批!)







最后,介绍一点相对来说比较高级的应用——快捷键。当窗体处于最小化时,如果需要使用快捷键,需要引用Windows的热键注册功能,具体实现如下代码:







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则