|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
以MCS- -51单片机为硬件系统,基于操作系统的思想,设计了命令进程调用、控制模块数据结构、控制模块队列,选择) [, V( u6 K3 h1 t- N5 z% w
先来先服务调度算法,实现了集散控制系统下位机控制模块的调度。
) {" g9 I' W% L1组态生成方式的选择% [. a6 g/ v/ D
在集散控制系统(DCS)中,各个控制算法是以控制模块的- O$ l" E3 D- H& r
形式提供给用户,而用户可以利用系统所提供的模块,用组态软3 E4 x. F! u9 s% ?
件生成自己所需的控制策略,并将该控制策略下装到现场控制
7 ]6 c7 |4 W, r站去运算执行。目前国际上流行的DCS中,控制算法的组态生( j9 C/ h, L- l X- {! B! X* V
成在软件.上可以分为两种方式:一种方式是在上位机中采用模
& l" u6 r+ Z1 t4 h. a* T块宏的方式,即一个控制规律模块对应- - 个宏命令(子程序)。在
1 G% R: u2 Y& J6 i组态生成时,每用到一个控制模块,在产生的执行文件中就将该* d6 ?6 m+ |& O. F; K7 P
宏所对应的算法换入执行文件,将最终生成的执行文件下装到
: W, ^- Y; Q' Y: p% e# E4 _3 w7 d下位机。另一种方式是将各控制算法编制成各个独立的可以反. z3 ~' k0 Q. U* F
复调用的功能模块,对应每-模块有一个数据结构,该数据结构% u5 p; E+ [" b# L6 h; l
定义了该控制算法所需的各个参数,这些模块存储在下位机中,
0 d0 X1 ^ H6 i由下位机的OS根据组态下发的命令进行调用,最终形成控制
% Z( C' C: w: g# f指令输出。比较这两种方式,后一种方式具有明显的优点:1 ~) p E! I0 d2 {
1)下位机接收的代码是经上位机组态后生成的与CPU无关.
_3 Z, F& i7 U3 v8 \的中间代码,在下位机硬件系统升级或发生变动时,上位机的软
9 B$ N0 X! o" J2 ^: |件系统不受影响,易于系统扩展。
* W$ M# }3 }$ L( K. z2)随着单片机技术的发展,存储器的容量问题已不再是制: k s; m, a. @2 g1 C4 V' G# [: G
约系统开发的主要因素。因而,前一种方式中占用存储空间少的 C6 h4 H! l% }
优点不再突出。" \: p+ d4 S" R# p0 t
本文基于后-种组态生成方式,讨论在MCS-51单片机上+ a( J3 B! l; S$ x7 ~
实现控制模块调度的方法,并详细分析了该调度策略的特点。
# b6 F4 Z6 Y% _6 z: R2下位机命令进程的调用
" A6 [8 p* X4 J# y4 {% [% g6 g要实现下位机的监测与控制功能,至少应设置五类命令进" m% v1 B8 ^1 I2 R
程,分别为:手动读点、手动写点、停止运行、自动运行和修改参0 T- {8 r7 q9 a( f! A
数。在系统进入正常运行后,接收到这些命令进程的调用命令,
s; Y8 y& \, v+ Z根据这些任务的紧要程度不同,可以将它们划分为两类:; W6 P: n2 I8 c C. x$ r" |
1)实时性要求非常强,接收到命令后,要立即对其进行命令
) \5 b' h# L9 p6 @1 T2 [+ F4 b解释并执行,如停止运行命令。
, K' s6 s0 T/ I! r& z5 Y2)实时性要求略差-点,接收到命令后,允许等待一段时
3 p8 |" q; t: h间,再对其进行命令解释并执行,如手动读点、手动写点、自动运1 m9 q& O- H" v5 r1 Q5 L7 \1 W
行和修改参数命令。
% j9 I$ I, L+ d. l% }! O _当系统进入正常运行,在控制模块运行过程中,若上位机发" [8 y: j; u8 X$ |/ g' e
出新的命令,下位机进入通信中断接收程序,接收数据存放后,
" z( ^- O* b0 R! [6 E: H中断返回到当前运行的控制模块程序中。这时,对实时性要求非
) E; ~! x2 z# C! N$ m0 J; j常强的命令,如果把当前正在运行的控制模块进程的信息进行
' f2 }( r) o9 O4 U8 a S) Y1 z存储,转要府接敢到的系统调用,对51单片机系统,由于其内. {/ N! K" s! O) c
! R, D$ _( B( _0 Y8 c部存储器容量很少,从外部数据存储器存取数据需要占用较长
! \1 u7 P5 K3 o3 s; m时间,这样就不能保证命令执行的实时性。因此,将停止运行命
1 Y9 m8 P9 C" F令的调用放在通信中断接收程序中,接收数据存放后,对接收到 H0 V. D7 z7 v0 v
的命令进行判断,如果命令是停车命令,将立刻执行,执行结束
- J. R* w, N* l- D( J i后再中断返回,利用硬件中断保证其任务的实时性,调用过程如
' y: u9 V! W1 z) t& S+ l图1所示。$ ?1 k% K' u* f
" a$ ~+ d% C2 l( r" R, ? s& }6 T1 G" D
附件下载: 1 r1 I/ K* J/ j9 C# V8 w# J
|
|