|
是杰杰之前做的
* i. K/ t6 x! ]1 C一个参赛小作品
1 t7 R* [- Q8 b! k1 h6 }7 F. v" \9 S2 t4 b2 h& W
其实在做这个恒温控制系统项目的时候,师弟就问我,什么是上位机。。。。。可能很多师弟师妹都没一个大概的概念。+ R; X6 q5 x7 t$ L/ V- ^
, b Y) e( M# Y3 _现在,就来看下什么是上位机:
/ q* U% `0 U! J
) I7 B! l7 |! _" t _ 上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。! |( n2 j; R& n/ t+ g4 h' h3 S$ j2 b
: n/ Q( ~' M6 q& I2 Y( f% ~2 Y- _在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,也可以理解为主机和从机的关系,但上位机和下位机是可以转换的。
+ k; v( j$ w+ A2 Y0 x0 s) ]6 u! s( d
* I) A5 w$ \, V9 M
6 e7 c2 }9 O- R" Z' i! O; x8 X+ Y7 \: E! F
工作原理
0 [8 [! D' G8 H. |% m. ?$ c& ^
% T% [2 N! Y8 d" ?' w6 B 两机如何通讯,一般取决于下位机,TCP/IP一般是支持的,但是下位机一般具有更可靠的独有通讯协议。通常上位机和下位机通讯可以采用不同通讯协议,可以有RS232的串口通讯或者采用RS485串行通讯。采用封装好的程序开发工具就可以实现下位机和上位机的通讯,当然可以自己编写驱动类的接口协议控制上位机和下位机的通讯。. o/ K) _5 ^2 j8 g+ e+ D
- {" _) a* T5 Z( X$ _1 ~; X6 E' C% F/ ]
通常工控机,工作站,触摸屏作为上位机,通信控制PLC,单片机等作为下位机,从而控制相关设备元件和驱动装置。
) x8 N! ?, K) r! ^ k1 w! I7 Y7 e
I8 J1 p' Y) Q& G7 f J0 n8 Z1 `& u+ c3 `% C" S
3 J6 l$ {- R; Q, ~
既然差不多知道什么是上位机与下位机,那么,我们做到小喇叭的要求:就得写个上位机,我自己也是学了下C#,用来开发上位机还是可以的,开发环境用visual studio 2015,微软的软件真的是很简单,之前看到有人问为什么微软的软件是最多人用的,答:因为那是傻瓜式操作。。。。。我不得不认同。。。
|3 G( Y, M/ y) k, C
5 Y# @8 Q& G3 y3 |9 F( m- n1 ?% {
$ z2 Q! q: k" z; D. W2 _
7 P. P: {; a' W: B3 S' z回归正题:先看看我们的上位机有什么功能:
9 X2 Y3 A- G4 j0 K, \: T6 Z; C7 R
" a( m2 V$ e b+ w$ L& c( V1)能够实现与下位机的正常通讯。这必须得有,不然算哪门子上位机啊。
7 m/ z( k. V& v. k5 ]5 a
2 T/ U2 e: d, n% X- y [2)能够控制我们的恒温系统,通过电脑控制恒温系统的温度。这种应用场景很正常,我在机房就能控制我某一个地方的温度,简单方便。
3 k; L4 \) z0 a9 N: y8 ^/ X& @- R6 C. d; s: G, v8 j% v& D2 X
3)能够实时显示温度与波形。这种应用的场景也是非常常见,实时显示温度我们可以知道温度是否正常,而波形我们能快速看出恒温系统空间温度是否出现异常。9 H9 e9 _9 M# ]8 c# G
5 t6 ]& ?5 ]3 [8 ]( L4)数据保存功能,自动将实时的温度保存下来,加入 日期与时间,方便以后排查问题的时候用于检测某段时间的温度是否正常,这也是很使用的功能。; J& {3 l* M7 v/ ~+ H
% d/ e( T( f' n7 h# u
# I( \) d! l; T6 n& Z0 R* o
3 {1 l2 f: l5 h 说了那么多,看看我们的上位机。由于我以前用的别人的上位机都是色调比较单一的,而我,又是那种比较活泼开朗的人,觉得单一的灰色调比较死沉,我不喜欢,当然那是别人做的上位机,即使再不喜欢,要用还是要用,没办法,
. V$ R% S) s. E. l2 Z g3 u% s/ r2 D- L4 W$ O
现在我自己做的就不一样了,得给他做个五颜六色出来。亮瞎眼。。。。。) k& h2 B- n2 N7 C
' \, y! j$ V9 W$ I
1.png4 G. z8 s9 e! e: V0 C
3 V1 a! P% w; ?4 j0 n& }
2.jpg
* E: Q1 g7 Y- o% _; \) q& a9 |0 L
3.jpg2 R2 f2 ^$ Q9 A. A: M5 c0 W
0 O) a8 @# [- c6 o( D4 s" D当我们的温度达到目标温度的时候,下位机就会控制自己的温度,以保持温度恒定,同时在上位机显示看到温度为一条曲线,由于我设置的温度为整数,没有小数,但是我们通过下位机可以看到实时的温度,精确在0.4范围左右。
0 `$ l7 s: y. M7 \6 D+ p
) U& k5 X2 p" l3 _4 c$ U4.jpg! q, I1 Y' v& b( y
6 g6 A+ n$ f" v* p% T+ o/ N7 U5 D
当我们把上位机与下位机通讯协议切断,可以看到上位机接受不到数据(在软件右下角粉红色的窗口,没有显示接收到的数据),上位机的波形就会回到默认值(0°),就是上图的样子) `8 t$ }/ p E
- |4 @( f4 y, n. Q d6 E; \+ j1 y: S% ~8 L
5.jpg
$ u/ s. o3 X- H) H$ I F$ M+ i$ [! f* l8 [! O
6.jpg
# \9 _9 k6 t+ U, e. j: ~( w9 a! q3 [
当我们需要后期的检测与排除故障的时候,我们可以从我们保存的温度来做简单的排查,上位机自动保存的温度数据,精确到某天某时某分某秒,简单方便。也是一个很实用的功能当没什么故障的时候,我们只需要隔一段时间吧数据清一下就OK了。- `4 h4 }$ p4 @9 c$ z" _6 ~
9 w- S# H% l4 I l% x$ @2 q! x* f! H: {$ m* {- F; v
5 Y L- L" j8 T: ]2 ~7 I- m
附上作品视频:http://v.youku.com/v_show/id_XMz ... amp;from=s1.8-1-1.2. S9 E$ ^/ N: o5 l# c) Z3 j
7 _4 j) y( f( d本次上位机介绍到此结束 @- \$ z# L0 n2 C: E' F
& Y8 C0 A8 ?( Y( ~2 O2 c# w4 ]; \& z# G" T+ f- u1 m) y6 \! n
' j0 F$ p# w+ [3 V- Z5 l! g
源码文件会可以关注关注获得。) @, B& W7 v+ a8 Q; L. N: y& b
& F* x; n9 E1 g, A8 \或者CSDN下载连接:
, E& h+ d- l, v }9 A( v6 m; j3 \* A9 T, g4 Z/ D
/ |3 r& o6 t- u
! }6 j6 Z8 B1 f, R8 U8 R
本上位机仅为杰杰个人娱乐,不做商业用途。
4 i- P) `" M6 k# K' k) a. T+ ~. |
如需转载请说明出处。" }: ]0 X- j6 H, g) H& c
4 o2 `" P; R" k9 C" ]* ]欢迎关注“创客飞梦空间”
: [ y3 ]5 ^; r6 f* o
! B# T: Q2 S7 N; _/ W+ d) L干货不间断
( ^% Q9 m9 }! H: P& J
& j' v( F$ f- y! h; H; [6 ~! I在未来的日子里
4 A( n% Z3 z+ E1 k+ V. d( a
; D. c, R5 Z2 g创客飞梦空间与你们同在,放飞我们的梦想: Q$ p% `1 M+ W8 @& e, [( h0 N/ m" Y
- d2 g7 u) \. \资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见
6 C) K# f+ n% m1 \+ A5 h
; r1 e+ n4 I5 m+ e& S2 N$ q0 f h, K4 B- `% H9 J9 v9 H2 q
( w' I; B4 @" o2 q" {( W/ N
本资源由Java自学网收集整理【www.javazx.com】 |
|