上位机开发介绍

1、 上位机介绍

 上位机是指可以直接发出操控命令的计算机,一般是PC,通常用于屏幕上显示各种信号变化(液压,水位,温度等),并将这些数据存储下来,供分析。
 下位机是直接控制设备,获取设备状况的计算机,一般是PLC(Programmable Logic Controller)/单片机(考虑一块板子上单片机与传感器的关系)。
 

2、 与下位机交互

 上位机发出的命令首先传给下位机,下位机再根据命令解释成相应时序信号直接控制相应设备。下位机不时通过读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。
 

3、应用实例

 下面举个上下位机应用的实例场景。我们现在有个房间,我们需要实时监测这个房间的环境状态,主要是监测房间的温度、湿度,让它们维持在一定的值左右,过高过低都不行。
 
 传统情况下,我们会在房间里装上温湿度计,然后派个工作人员,定期的去查看房间内温湿度计的值,针对过高过低的情况,采取一些措施。那么这种情况,有些不足,一是需要人定时去看,很麻烦,二是实时性非常差,很有可能环境的状态已经异常了,这个时候工作人员不在场,导致不能及时地采取措施调整环境而引发意外。
 
 若我们使用一套自动化的环境监测设备,那么我们可以在房间中,装上电子远传式的温湿度计(下位机),将温湿度计的状态实时远传到监测系统(上位机)。工作人员只需要坐在电脑前,查看远传而来房间状态,若出现异常,可以通过上位机控制室内处理异常的设备(如温度过高,远程开空调),就可以不到现场便能处理异常。甚至如果设备系统更加自动化,上位机本身便可以根据通过下位机发来的数据是否正常,而做出一些操作,都不需要人来操作。
 
 当然,实际环境可能会有所差异,举这个土味的例子只是为了形象地介绍上、下位机。
 

4、两者关系

 看到这边你会发现上位机的存在实际上是依赖下位机的(需要硬件支撑)。如果没有下位机,上位机就没有数据来源,没有任何作用。而没有上位机,对下位机来说没有太大影响,下位机可以在自身的程序中添加一定自动化的功能,很多时候不需要上位机也行。
 
 但实际上大多数情况上下位机是相辅相成的,一个合理有效的上位机可以节省大量人力物力。甚至很多情况下,如恶劣的环境、复杂的环境监测、精密的设备控制,上位机是必不可少的。
 
 总的来讲,上位机对下位机的操作大类上只有两种,读&写。改变下位机状态,操控下位机,都是写操作。获取设备数据便是读操作。两者的基本关联非常简单。因此,或许你会认为上位机是技术含量较低的程序。其实不然,凭我个人理解,下位机的代码逻辑通常较单一,但是下位机种类非常多变,每种设备上的外设都不大一样。而上位机,通常运行的环境是比较单一的,但是要与多种下位机通信,还会涉及到UI,存储,复杂点的还有数据分析,庞大的上位机程序代码逻辑还是挺复杂的,涉及的技术也广。一个优秀的上位机复用性非常强,对相近设备的操控,仅仅需要修改协议即可。
 

5、开发工具

 上位机开发通常使用c++(Qt、mfc)、c#(.net)、vb。其中就目前的情况来看,Qt和.net应该是目前应用相对比较广的。vb和mfc都是比较老旧的工具,做的界面也比较有年代感。其中,新版本的Qt还支持用Python来编写,制作的上位机程序也是不错的。其他,一些组态软件是专门做上位机软件的,像组态王、力控,相当于是二次开发,门槛较低一些,操作也比较简单,但是拓展性差。

你可能感兴趣的:(上位机)