没有合适的资源?快使用搜索试试~ 我知道了~
首页基于VC++线程的动态数据曲线的绘制方法
资源详情
资源评论
资源推荐

·178·
计算机应用研究
2004年
基于VC++线程的动态数据曲线的绘制方法木
寇光杰,武玉强
(曲阜师范大学自动化研究所,山东曲阜273165)
摘要:利用Vc++中静态文本框控件资源,采用线程方法实现了一工控系统界面中对各种动态实时曲线的绘
制,其实用性非常好。
关键词:VC++;线程;动态数据曲线;工控系统
中图法分类号:TP311
文献标识码:A
文章编号:1001—3695(2004)05—0178·03
A
Method
of
Plotting
Dvnamic
Data
Cunre Based
on
the
Thread
of
VC++
K0u
Guang—jie,WU
Yu—qiang
(仇砌‘肥矿14“£omⅡ西n,Q咖舶mmz踟i卯雎盼,Q地m鼬nn如ng
273165,吼批)
Abstract:
7rhis
paper
proposed
a
nlethod
of
plot“ng
dynamic
data
cuIVe
in
industrial
connDl
system’s
GUI.
The
implementa·
tion
of this
method based
on
thread
and
static
text
conlponents
in
VC++.It
has
great
practicability
in
usual
programming.
Key
words:
VC++;
Thread;
Dynamic
Data
Curve;
Industrial
Contml
System
1
引言
在各种1j业生产测控系统中,需要实现对各种被控对象实
时状态数据的采集及控制数据的输出。为了便于用户操作,系
统往往采用Gul方式,并且在界面上将当前的实时数据采用
动态曲线的方式直观地显示出来。显示实时动态数据曲线的
方式具体实现时有很多种,本文利用Vc++对话框资源中的静
态文本框(Static
Text)控件¨1
2j以及线程的编程技术详细叙述
了绘制动态曲线的方法。利用该方法得到的动态数据曲线,系
统界面上非常形象直观,数据曲线及纵向格线均可在一定时间
间隔后动态自右向左移动,动喊效果很好。
本文首先给H{了一个具体的T.业测控系统的体系结构图,
该结构图描述了这一测控系统的基本功能模块及它们相互之
间的包含调用关系,然后给出实现该_丁-控系统界面中动态实时
数据曲线的详细绘制步骤。要实现数据曲线以动态移动的形
式反映当前实时数据,可以利用背景色重绘的方法来实现,即
在每次绘当前时刻数据曲线前利用背景色画刷重绘显示数据
曲线的矩形区域(擦掉上一时刻曲线);或者利用背景颜色嘲
笔重绘上一时刻数据曲线。这样就产生了动画效果。前一种
方法虽然简单,但是曲线移动起来后屏幕容易产生闪烁,视觉
效果不好;后一种方法则无此问题,动画效果很好。本文在绘
制动态曲线时就是利用的第二种方法。
文中用来存放动态曲线信息的数据结构是一个一维数组
(当需要在同一窗口中绘制多路数据曲线时,可将其扩充为二
维数组)。因为利用数组来存放相应数据可以方便地通过
P01yline()函数来绘制数据曲线。
收稿日期:2003—01.25
基金项目:山东省中青年科学家奖励基金资助项目(0lBs32);
曲阜师范大学硕士科研启动经费资助项目
2
工控系统体系结构图
该工控系统将采集现场实时数据及输出控制数据的动态曲
线、报警窗口、历史数据的查询等用户需要经常查询的信息作为子
窗口,集成到系统主界面上。这样就大大方便了用户对各种数据
的查询和比较,并且为了方便用户了解各种数据的具体值,我们可
以对每一个子窗口都对应设嚣一个放大窗口。系统的主要功能模
块及相互间的调用包含关系用结构图的形式表示如图l所示,其
中对各个模块的传递参数信息(略)‘31。
工控系统
采集数据I
I数据处理l
l外部查询
型圉凰圉圉尉㈢圜圜圉茛匡
剧目国曰国圜剧目国闺圉圉
因为该工控系统一旦运行起来后,就要并发地执行多个任
务。故我们采用线程的编程技术实现整个系统的主模块。当
然,对于界面中对实时数据进行绘制动态曲线的子窗口也分别
对应各自的工作线程。而工作线程的回调函数是全局的,故在
获得静态文本框绘图子窗口的绘图环境时有点麻烦。具体操
作步骤如下:
(1)利用MFC创建一个单文档应用工程Pmject,在step6
万方数据

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论3