找回密码
 注册
关于网站域名变更的通知
查看: 501|回复: 2
打印 上一主题 下一主题

[毕业设计] 基于单片机的集散控制系统下位机控制模块的调度设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-14 10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
以MCS- -51单片机为硬件系统,基于操作系统的思想,设计了命令进程调用、控制模块数据结构、控制模块队列,选择& d9 P, i  t( r! {* E& e
先来先服务调度算法,实现了集散控制系统下位机控制模块的调度。
3 R0 T0 ^: h3 `6 \2 z1组态生成方式的选择
( T' N+ l9 `2 N在集散控制系统(DCS)中,各个控制算法是以控制模块的
% n/ c# P. J2 R9 I) G  h) \形式提供给用户,而用户可以利用系统所提供的模块,用组态软7 D- O+ f# ?! [3 k
件生成自己所需的控制策略,并将该控制策略下装到现场控制
& _: y6 h% s) [6 Q' X) |站去运算执行。目前国际上流行的DCS中,控制算法的组态生! j; f; o/ ~5 i' `; E
成在软件.上可以分为两种方式:一种方式是在上位机中采用模" b) Q$ ~4 u8 f. o% C1 q
块宏的方式,即一个控制规律模块对应- - 个宏命令(子程序)。在
. D+ Y- o+ @9 Q- L$ f% k0 \; A组态生成时,每用到一个控制模块,在产生的执行文件中就将该
# k, H& l0 A8 r9 R4 j( L宏所对应的算法换入执行文件,将最终生成的执行文件下装到
+ t' s; K( n& v8 q0 v$ z下位机。另一种方式是将各控制算法编制成各个独立的可以反8 x6 i9 p: f) C
复调用的功能模块,对应每-模块有一个数据结构,该数据结构3 z1 [2 l1 r, |1 D$ H3 G
定义了该控制算法所需的各个参数,这些模块存储在下位机中,' l2 l0 |4 D9 \6 w, v. e
由下位机的OS根据组态下发的命令进行调用,最终形成控制9 N2 K% w3 O2 y! F% C+ w- Y. J
指令输出。比较这两种方式,后一种方式具有明显的优点:1 d& n) z2 C$ r
1)下位机接收的代码是经上位机组态后生成的与CPU无关.
# i: P& M' m+ ]/ c的中间代码,在下位机硬件系统升级或发生变动时,上位机的软
0 \6 z. q+ _7 @$ T; K件系统不受影响,易于系统扩展。  E; J: i/ z1 x) \. V8 r# `! o
2)随着单片机技术的发展,存储器的容量问题已不再是制
, g* s) s  ]7 o; Z  |5 b约系统开发的主要因素。因而,前一种方式中占用存储空间少的. O' N/ s3 e. g2 s# c: ~
优点不再突出。# q6 i0 I! `3 d" `& S' R9 D
本文基于后-种组态生成方式,讨论在MCS-51单片机上
: X! x! k$ `/ L# d5 r3 E实现控制模块调度的方法,并详细分析了该调度策略的特点。; j8 R& J! \1 O; x2 o; V$ N# q
2下位机命令进程的调用
& r- ~$ V* r( ~要实现下位机的监测与控制功能,至少应设置五类命令进
. b. e' {8 w! @2 ^" h6 H程,分别为:手动读点、手动写点、停止运行、自动运行和修改参
$ K% n) m2 Q" o2 F2 X- M数。在系统进入正常运行后,接收到这些命令进程的调用命令,
7 U1 }$ Y" g0 |# o根据这些任务的紧要程度不同,可以将它们划分为两类:" O% ]& W& h7 S7 c2 r2 g0 J6 r
1)实时性要求非常强,接收到命令后,要立即对其进行命令. _3 t8 j% z2 z. G9 I8 a& V! f
解释并执行,如停止运行命令。. f6 {! D  y7 t5 P6 k
2)实时性要求略差-点,接收到命令后,允许等待一段时
, ?0 [& t5 G5 P# G. f8 J$ j3 g间,再对其进行命令解释并执行,如手动读点、手动写点、自动运  ^9 y) i/ \  S5 y  w: V
行和修改参数命令。
" k; X& @8 M6 L% J. Z当系统进入正常运行,在控制模块运行过程中,若上位机发
( f7 O2 T; s( ~9 Z/ P出新的命令,下位机进入通信中断接收程序,接收数据存放后,) l4 |$ ~# v. |$ }* y- A
中断返回到当前运行的控制模块程序中。这时,对实时性要求非2 p  G0 o8 V6 j0 ^3 i8 M
常强的命令,如果把当前正在运行的控制模块进程的信息进行
, Y4 T' A1 u' k# J7 P存储,转要府接敢到的系统调用,对51单片机系统,由于其内! `& I2 l" B$ X3 X

% W3 z# |2 [8 j$ d& H部存储器容量很少,从外部数据存储器存取数据需要占用较长
' i0 a! V5 A$ R- z$ m+ l8 ~7 G$ J! t时间,这样就不能保证命令执行的实时性。因此,将停止运行命
4 b: @. _8 l" [' E令的调用放在通信中断接收程序中,接收数据存放后,对接收到5 ~' |. [- {: v
的命令进行判断,如果命令是停车命令,将立刻执行,执行结束
  X4 E! q, H7 W- [2 [' ~1 S后再中断返回,利用硬件中断保证其任务的实时性,调用过程如
4 f* J: c  w2 Y. K! l7 U; H图1所示。
5 \6 n. c( R" g/ i7 L! q- c7 f2 Y+ T6 k* K  b
附件下载:
游客,如果您要查看本帖隐藏内容请回复
! H/ e& H* d) T- K0 s

该用户从未签到

2#
发表于 2020-1-15 11:28 | 只看该作者
MCS- -51单片机可以模块化设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 09:59 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表