|
是杰杰之前做的
- X# B- ?' \; Q% A3 G+ ~+ k4 K5 f* c一个参赛小作品
* A4 \ o6 ~; I' z6 i# I8 S! w+ |- n$ o, K3 E2 l; m9 n/ _0 c
其实在做这个恒温控制系统项目的时候,师弟就问我,什么是上位机。。。。。可能很多师弟师妹都没一个大概的概念。
& R: F: e% O2 U6 n. l; T* \, a
0 U9 v1 e* m8 c现在,就来看下什么是上位机:! j+ S& I6 ?' u0 x
. h: i: }5 j+ C: k! Q4 T 上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。9 S7 j5 p/ s0 y7 `1 y. W0 q
# d, s5 s( ~6 [
在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,也可以理解为主机和从机的关系,但上位机和下位机是可以转换的。
; g+ O' T* { J1 n W5 U, q6 h; F$ W+ D( i
+ i F; M3 L8 I* L) g) P6 ^. Y p3 J( }1 O4 R/ K8 `, N
工作原理
% a3 `$ a; y3 Y
2 L- U0 o% K b9 a; ]; @) N* Q) E 两机如何通讯,一般取决于下位机,TCP/IP一般是支持的,但是下位机一般具有更可靠的独有通讯协议。通常上位机和下位机通讯可以采用不同通讯协议,可以有RS232的串口通讯或者采用RS485串行通讯。采用封装好的程序开发工具就可以实现下位机和上位机的通讯,当然可以自己编写驱动类的接口协议控制上位机和下位机的通讯。. T3 n. A1 A4 n4 y8 G$ `
: L t3 L0 Y& X4 e1 H5 S通常工控机,工作站,触摸屏作为上位机,通信控制PLC,单片机等作为下位机,从而控制相关设备元件和驱动装置。: F" r! L5 i, m: z7 u
5 e& u; q1 m$ h3 @+ [/ P4 w
" u; V% ]# k' o+ X. G" p4 w) |9 {
( m9 r- }$ ~) ?既然差不多知道什么是上位机与下位机,那么,我们做到小喇叭的要求:就得写个上位机,我自己也是学了下C#,用来开发上位机还是可以的,开发环境用visual studio 2015,微软的软件真的是很简单,之前看到有人问为什么微软的软件是最多人用的,答:因为那是傻瓜式操作。。。。。我不得不认同。。。
& X( {$ Q; g% S1 O" H9 B
1 s A: ^ i# F5 `* J6 Q1 ~% L; J
8 I8 S ^8 z ]; y0 l回归正题:先看看我们的上位机有什么功能:+ C$ H& {, }" w/ n
/ g5 s9 R0 S5 ^" Y# E: X
1)能够实现与下位机的正常通讯。这必须得有,不然算哪门子上位机啊。
3 C; w/ }, x& R! z0 Q9 Z
6 S+ E: a0 x' Z9 K$ @2 H2)能够控制我们的恒温系统,通过电脑控制恒温系统的温度。这种应用场景很正常,我在机房就能控制我某一个地方的温度,简单方便。3 q# l0 B% ~: i1 y4 A: J
, {: E+ c" O" E! X c
3)能够实时显示温度与波形。这种应用的场景也是非常常见,实时显示温度我们可以知道温度是否正常,而波形我们能快速看出恒温系统空间温度是否出现异常。
+ K& x4 P. s* [( S9 S" y6 j. M4 {0 }1 a& m5 ^" l! T8 u
4)数据保存功能,自动将实时的温度保存下来,加入 日期与时间,方便以后排查问题的时候用于检测某段时间的温度是否正常,这也是很使用的功能。 h; I" C' @4 }, @! F, d
o4 U' D9 f1 k- t. q9 m1 C0 [4 i
( R5 b% Q0 |' m
5 B! H" i( X. @ 说了那么多,看看我们的上位机。由于我以前用的别人的上位机都是色调比较单一的,而我,又是那种比较活泼开朗的人,觉得单一的灰色调比较死沉,我不喜欢,当然那是别人做的上位机,即使再不喜欢,要用还是要用,没办法,
" X* Z, @$ X; ]8 G: X
" ]' t& W8 Z, C4 x: d现在我自己做的就不一样了,得给他做个五颜六色出来。亮瞎眼。。。。。
6 Z$ _( U& B+ g. ^0 Q, Q4 |- C6 ? u' b9 z( w4 B
1.png* e) e! W3 W1 D, F* {
$ D2 X( Z7 n$ l
2.jpg/ y T6 N x3 j( ?0 ~; a# @
9 f/ V# d' E1 O* ~0 f0 I6 W
3.jpg
3 D& I- e5 A" d+ z8 F- ~8 u# C: ]' A& K, n$ u
当我们的温度达到目标温度的时候,下位机就会控制自己的温度,以保持温度恒定,同时在上位机显示看到温度为一条曲线,由于我设置的温度为整数,没有小数,但是我们通过下位机可以看到实时的温度,精确在0.4范围左右。% V0 k# i2 {5 P4 G/ _9 C
2 x5 l \' [9 `+ L# K* F
4.jpg
j( { ~6 L( O y# N! X, T; G w: `/ ]
当我们把上位机与下位机通讯协议切断,可以看到上位机接受不到数据(在软件右下角粉红色的窗口,没有显示接收到的数据),上位机的波形就会回到默认值(0°),就是上图的样子
+ r4 q! A) M% I& ?: W& V
% B6 Z |4 ^6 b5.jpg- V# @0 f' b( k& [- v
$ ]$ M4 R' R% W. Y6 D
6.jpg0 p1 V" t n7 Q; w
& ~# b. v1 s$ P8 S; M: }6 j6 H当我们需要后期的检测与排除故障的时候,我们可以从我们保存的温度来做简单的排查,上位机自动保存的温度数据,精确到某天某时某分某秒,简单方便。也是一个很实用的功能当没什么故障的时候,我们只需要隔一段时间吧数据清一下就OK了。
* G \( m9 g( i) j* m2 ]) E4 s% T$ `. U5 H7 d- j I8 } N. q9 w
6 _- s" s6 f7 [1 B% }: d1 [" X6 @3 E; N- ^' w& T' U
附上作品视频:http://v.youku.com/v_show/id_XMz ... amp;from=s1.8-1-1.2
9 @) J3 @" F) P7 D
2 k$ C& n$ B1 P! L$ I本次上位机介绍到此结束, z. A2 C$ C- E( a I( C8 ~3 v: T4 m
5 i: h4 ?% C! M; d6 ]) c2 p
8 Q) E; K# S# u c
) u& X9 G* Y1 Y) e- h5 e源码文件会可以关注关注获得。
. u n/ c. T5 w* k5 G8 w/ e9 }0 m$ v2 j1 M0 l: a$ W. S$ m }) @8 u
或者CSDN下载连接:9 x& A- w: S9 y! p5 n5 j
7 i3 J9 Z) h/ F! D! U, e. O
/ s- j% S- [: ^$ i" `# x
, @2 r. Y [/ X本上位机仅为杰杰个人娱乐,不做商业用途。# h: k! C O+ r% Z
! y$ Z+ C: p( l$ z3 ^# v! K! |
如需转载请说明出处。
7 ]! L; }0 h7 ~1 r/ N% J
1 a5 |! r# h0 a' `1 B# R欢迎关注“创客飞梦空间”7 y2 Z$ [( d" t. O/ G
# K% s: ^( d! y干货不间断
: W3 n5 u/ w0 `' w* d: a. Y; @- E# N' k! [ q( U
在未来的日子里* D0 w: D# R" t! q
$ t, l( t3 V4 f/ \创客飞梦空间与你们同在,放飞我们的梦想
/ V1 X* W2 B/ O8 e! I5 b
9 Y3 Z u8 {3 y. s/ v# s资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见
' \0 N4 O) D9 y& \% [! p7 e$ r' z" i8 Q- z8 A
?4 }5 B' e) I2 [& ?! N6 W2 e
; q% _8 X- o) a, i
本资源由Java自学网收集整理【www.javazx.com】 |
|