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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
以MCS- -51单片机为硬件系统,基于操作系统的思想,设计了命令进程调用、控制模块数据结构、控制模块队列,选择
: M" e& `- Y2 r  y6 v先来先服务调度算法,实现了集散控制系统下位机控制模块的调度。: d" a2 `) ]4 `
1组态生成方式的选择3 V  C* r5 g! ?1 W
在集散控制系统(DCS)中,各个控制算法是以控制模块的
) U) v2 g) z% p6 M1 ~' F* T形式提供给用户,而用户可以利用系统所提供的模块,用组态软& o2 v! `+ d! k5 c6 B
件生成自己所需的控制策略,并将该控制策略下装到现场控制6 i. \. h9 |6 G4 W' L
站去运算执行。目前国际上流行的DCS中,控制算法的组态生
8 D3 ~! T' B, d5 A' @成在软件.上可以分为两种方式:一种方式是在上位机中采用模
' c) g5 E) Y, G9 A' p  U! C块宏的方式,即一个控制规律模块对应- - 个宏命令(子程序)。在& S, q7 L# E- ^9 j: l1 k
组态生成时,每用到一个控制模块,在产生的执行文件中就将该
' K# E6 w. @5 g# y0 t& _( _宏所对应的算法换入执行文件,将最终生成的执行文件下装到. ^# z( {& w# a: _
下位机。另一种方式是将各控制算法编制成各个独立的可以反
$ W" y+ J) D& q* Q7 u  F3 b: t复调用的功能模块,对应每-模块有一个数据结构,该数据结构
$ H, y, h" d: Q" h( y4 o1 e( x定义了该控制算法所需的各个参数,这些模块存储在下位机中,
2 W+ n$ E9 y, n( T9 T, G, O6 {由下位机的OS根据组态下发的命令进行调用,最终形成控制
0 P: o1 j; Y3 S+ u. N( ]: |指令输出。比较这两种方式,后一种方式具有明显的优点:; w* y, Z1 X7 u/ o3 [* g2 F
1)下位机接收的代码是经上位机组态后生成的与CPU无关.0 m5 Y5 T( J6 k8 F
的中间代码,在下位机硬件系统升级或发生变动时,上位机的软8 g( a9 c$ G* F, i" T8 x& \
件系统不受影响,易于系统扩展。
! f+ b5 e4 S6 Q0 m2)随着单片机技术的发展,存储器的容量问题已不再是制
0 ?! X; n6 I$ r: T" W: d  T; o约系统开发的主要因素。因而,前一种方式中占用存储空间少的0 Z/ [& O8 X! U) F
优点不再突出。
- [+ k3 v/ \: T本文基于后-种组态生成方式,讨论在MCS-51单片机上
4 q2 _. \( J% d! K! ?' l$ b实现控制模块调度的方法,并详细分析了该调度策略的特点。
4 P; _& G6 z# o; O5 P6 j0 Y2下位机命令进程的调用
9 ]% t; s# Z, f$ f/ s: Q( j& ]要实现下位机的监测与控制功能,至少应设置五类命令进. x4 Z4 {; H4 o8 P, m! D
程,分别为:手动读点、手动写点、停止运行、自动运行和修改参
7 i8 |# \- p: f: t数。在系统进入正常运行后,接收到这些命令进程的调用命令,, [, E3 U: V$ [3 R' S9 D7 B
根据这些任务的紧要程度不同,可以将它们划分为两类:. g4 R# h9 b8 ]! A5 z& `
1)实时性要求非常强,接收到命令后,要立即对其进行命令4 T; v+ ?. f0 E  M
解释并执行,如停止运行命令。7 R& r9 Y7 g& ^
2)实时性要求略差-点,接收到命令后,允许等待一段时
" W9 a4 h* h9 \间,再对其进行命令解释并执行,如手动读点、手动写点、自动运
4 F% _: p2 E3 w, O行和修改参数命令。
2 O" H, z8 e7 p. \0 z( i当系统进入正常运行,在控制模块运行过程中,若上位机发( s: P) u+ \1 o! `$ B' e
出新的命令,下位机进入通信中断接收程序,接收数据存放后,  U6 x0 B+ n6 P" K' f) C$ D0 h
中断返回到当前运行的控制模块程序中。这时,对实时性要求非) P; |; j; M: C* @6 W
常强的命令,如果把当前正在运行的控制模块进程的信息进行
- s: W# |4 q' ?; o存储,转要府接敢到的系统调用,对51单片机系统,由于其内
4 W4 ^# s+ U+ W$ [7 t3 H$ I8 r2 i4 M0 G! ?6 L( i
部存储器容量很少,从外部数据存储器存取数据需要占用较长
" N4 j& B+ m2 y7 _( q1 f时间,这样就不能保证命令执行的实时性。因此,将停止运行命9 s" R: x" X% ?2 k$ ]( G
令的调用放在通信中断接收程序中,接收数据存放后,对接收到
; J. q+ \/ }% D. a( ^4 g的命令进行判断,如果命令是停车命令,将立刻执行,执行结束; h6 h* D+ h' C! M' n
后再中断返回,利用硬件中断保证其任务的实时性,调用过程如
6 c8 o9 H4 {3 ~; @, p& k$ z图1所示。
& x  p. a- }3 @% G+ a, o8 f2 K' w4 t3 y7 l6 ?
附件下载:
游客,如果您要查看本帖隐藏内容请回复

) O4 R7 R' H6 ^6 w

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-21 02:54 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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