|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
以MCS- -51单片机为硬件系统,基于操作系统的思想,设计了命令进程调用、控制模块数据结构、控制模块队列,选择4 X: V- T5 B; e; T
先来先服务调度算法,实现了集散控制系统下位机控制模块的调度。9 j4 u% N7 H" h; q; b) k. {7 X
1组态生成方式的选择
6 Q3 i" M/ R- \7 w0 |% B在集散控制系统(DCS)中,各个控制算法是以控制模块的3 O G1 t5 [3 k
形式提供给用户,而用户可以利用系统所提供的模块,用组态软6 B: O7 w2 \# _- I4 G. g$ a5 R
件生成自己所需的控制策略,并将该控制策略下装到现场控制: r, y" m1 x4 \8 k
站去运算执行。目前国际上流行的DCS中,控制算法的组态生
b# e ~; a# C成在软件.上可以分为两种方式:一种方式是在上位机中采用模
8 j& D0 a+ q& b" ]! _- ]块宏的方式,即一个控制规律模块对应- - 个宏命令(子程序)。在
# _# ^: H( [% O* S组态生成时,每用到一个控制模块,在产生的执行文件中就将该
* r: e5 n n) I7 d& ^6 c: g宏所对应的算法换入执行文件,将最终生成的执行文件下装到
" B$ q; \4 m4 a) c: ~6 N下位机。另一种方式是将各控制算法编制成各个独立的可以反
% F" V. N2 M' L& k1 l复调用的功能模块,对应每-模块有一个数据结构,该数据结构
8 Y# ^. p% B; i" d7 Z8 k定义了该控制算法所需的各个参数,这些模块存储在下位机中,
' e( n: A6 \2 `由下位机的OS根据组态下发的命令进行调用,最终形成控制6 e$ q6 n, j" m
指令输出。比较这两种方式,后一种方式具有明显的优点:% `+ g0 G0 u: @% c
1)下位机接收的代码是经上位机组态后生成的与CPU无关.' {* T m# t1 ]3 }
的中间代码,在下位机硬件系统升级或发生变动时,上位机的软. h- |7 l( ], M2 K) g, z8 S3 C
件系统不受影响,易于系统扩展。8 V4 [) m( \4 \0 S1 m
2)随着单片机技术的发展,存储器的容量问题已不再是制& }* G5 z, o7 k- L$ F
约系统开发的主要因素。因而,前一种方式中占用存储空间少的
% S9 k8 W; h) {优点不再突出。6 M4 j; y% r) t) c, V5 E: w. V0 ?
本文基于后-种组态生成方式,讨论在MCS-51单片机上
8 f1 I8 B' C' z- b v实现控制模块调度的方法,并详细分析了该调度策略的特点。
) ]0 k; ^# @5 k9 R) S* L2下位机命令进程的调用
8 D2 }1 Z% P! V3 ^2 c要实现下位机的监测与控制功能,至少应设置五类命令进4 b: v9 j0 t. K. q
程,分别为:手动读点、手动写点、停止运行、自动运行和修改参
. v- K8 y0 a0 O4 J8 }数。在系统进入正常运行后,接收到这些命令进程的调用命令,
! x, Q* z( z" T. A: c根据这些任务的紧要程度不同,可以将它们划分为两类:
$ m# |) t. l$ K5 S) o. u6 q1)实时性要求非常强,接收到命令后,要立即对其进行命令5 e: i$ g' p. S! Z1 r- Z
解释并执行,如停止运行命令。
$ e9 U. f/ L: l8 h9 w: Y+ G2)实时性要求略差-点,接收到命令后,允许等待一段时
) }: [. E# N1 X# i5 _间,再对其进行命令解释并执行,如手动读点、手动写点、自动运
6 J- L. V/ B$ H; D @6 B% m- }; Q行和修改参数命令。$ B! x3 S8 ^7 y, a7 D& }, u
当系统进入正常运行,在控制模块运行过程中,若上位机发- B/ A6 h3 D, M
出新的命令,下位机进入通信中断接收程序,接收数据存放后,5 n7 |2 u0 p( R3 Z5 l# v
中断返回到当前运行的控制模块程序中。这时,对实时性要求非
/ U* {5 R. f4 D, ?3 w- g; x6 {2 f9 _常强的命令,如果把当前正在运行的控制模块进程的信息进行# @0 L5 \# [ B2 S
存储,转要府接敢到的系统调用,对51单片机系统,由于其内5 `2 E [0 R" n' _
7 m9 q) o; z0 \/ `1 h$ n7 R部存储器容量很少,从外部数据存储器存取数据需要占用较长
" A' i* c) s2 D$ w. H! o3 C: o时间,这样就不能保证命令执行的实时性。因此,将停止运行命" M; I2 D5 N' x3 l3 F- h
令的调用放在通信中断接收程序中,接收数据存放后,对接收到
- M0 w8 {: `: g的命令进行判断,如果命令是停车命令,将立刻执行,执行结束
V& z) X+ p' }后再中断返回,利用硬件中断保证其任务的实时性,调用过程如
# A/ i- `/ B+ W+ k5 m. G图1所示。. o( O# L2 J4 ~2 d
3 U5 M: @: x" y+ m0 P/ M0 ?$ {
附件下载: 1 y9 O7 K8 Z' K! h( t
|
|