Win32环境下一种通用控制软件的实现方法

发布于:2007/4/28 9:30:16 | 519 次阅读

      摘 要:介绍了一种通用的控制系统软件的实现方法,该软件架构将复杂的控制系统所有硬件传感器经数学抽象、归类后,使用流对象统一处理,控制软件仅对流操作。所有硬件传感器后台读写用独立线程完成,线程由各自事件同步,同步事件由中断产生,中断由脉冲设备或者定时器产生,软件缓冲区与硬件缓冲区使用临界区对象同步,硬件传感器读写完成后发送用户消息给前台窗口,这样,控制软件中访问硬件的代码段同其他代码段完全独立,特别地,通讯协议等复杂的问题在此软件架构下仅以一条控制函数形式出现。无论控制对象由多少种传感器搭建,无论设备多少,监控软件的架构是一致的,复杂的控制问题就转化为对某类流设备的读写问题。
  关键词:Win32编程;传感器;事件;临界区;用户消息;流对象
Implementation of & Universal Control Software in Win32 Circumstance
CAI Wenzhai
(The 39th Institute,Electronics Science & Technology Group Corp oration of China,Xi′an,710065,China)
  AbstractIn this paper,an universal control system software method is introduced,the method abstract hardware device with steam object, cont rol software only operate the steam objectRead and write all hardware sensor d atausing each threads singly,each the event synchronize the threads, synchroni zation event is created by the interrupt,the interrupt is created by hardware impulse device or timer, critical section object synchronize the software and ha rdware buffer After read and write the data of hardware sensor,the thread send message to main windows,in the way control the code segment of operate hardware andother code segment areindependencespecially, the complex problem of ha rdwaredevice communication prototal appears in the only function form, no matt er what control object is made of what sensor type, no matter what there are how many hardware device, monitor and control software framework is consistent and debugis convenience,complicated control problem translate to some software ste am object read and write
  Keywords:Win32 programming; sensor; event;critical section; user message; steam object
1引言
  工控应用已遍及各行各业,特别是随着计算机的普遍降价、由PC机建构的控制系统也越来越多,该类控制系统的优点是开发人员可以用语言及大量的现有软件快速建构成自己的软件系统。本文主要介绍了这类应用的一种实现方法:该方法是将所有硬件I/O部分按类型分类。将他们各自的读写过程全部函数化。经数学抽象后归一化为流对象统一处理:传感器→流→(初始化函数,流读,流写,关闭)→应用软件读写线程→用户消息→主窗口。经这样的抽象后,无论控制系统多么复杂,硬件传感器是什么形式,在这种软件架构下全使用统一的软件方法处理。
2控制系统硬件结构
  设想一类控制系统是如下结构建成的,主控台完成同5个测量站的通信并指挥测量站按确定 方程运动。主控台通过与网络与中心站完成双向I/O、主控台可以单独遥控某一测量站设备单独工作。大的硬件控制如图1所示。
  主控台与测量站用RS 232通信,经Modem接连,与其他测量设备由A/D、D/A连接卡连接,与中心机通信由网络连接。
  在构建此控制系统软件时,不妨将问题扩展,假定不考虑具体的设备控制对象,不考虑具体的应用类型,考虑一种更复杂的控制系统:设想控制系统如图2所示。
  控制计算机使用P4 2.8或P4 2.4 GHz处理器,具体的控制对象设想为抽象传感器即可。
3控制系统软件构架
  
本文提供的软件构架为:对每类控制硬件设备而言,访问该类硬件无非对应如下几个函数:
  
(1) 硬件初始化函数。
  (2) 硬件读函数。
  (3) 硬件写函数。
  (4) 硬件刷新及关闭函数。
  这样,经过数学抽象后,每类硬件访问不超过这5条函数。无论控制系统由什么硬件传感器 搭建,对一类传感器而言。访问他仅需要几条语句而已。假设按类型编制了相关的I/O函数。
  该软件系统的主要思路为:任一控制对象(传感器)均可设想为流设备、线程完成流读 写,读写时序由中断或其他设备事件决定。一旦硬件设备I/O完成,用临界区锁住数据,导入软设备缓冲区。用户交互部分仅同软设备缓冲区打交道,与设备硬件无关。控制函数只负责设备缓冲区填写。这一函数仅与通讯协议有关,与硬设备无关。这样任一硬件设备同计算机通讯都可以将其视为一串流信息的交换。更简单的看法为:任一硬设备不妨直接视为一定长的十六进制字符串。这样,任一控制系统在该软件构架下是若干个十六 进制字符串。而软件主框架将其流已分成几大类(串行通讯类,网络类等)。添加或删除某些硬件对软件系统就是关闭几条条件编译项。况且对每类应用,I/O函数是4、5句,所有的同硬件打交道部分都在线程级完成,且读写线程机构完全一致。
  前台用户交互部分已完全独立于后台,后台与相关事件通知有关,与前台几乎没有其他关联,所以前台将所有缓冲填好后,只需调一句事件通知即可,这样后台将会自动等到该通知后转入自己的I/O操作。
  读线程完成一具体硬件读,读时序由读事件驱动,读线程一旦读到数据,数据先进入用户设计的临界区,锁住数据,将硬件缓冲区读到的数据放入软件缓冲区,发用户读完成消息给前台,实现软硬件隔离。
  写线程完成一具体硬件写,写时序由写事件驱动,写线程一旦要写数据,首先调用控制函数完成设备缓冲区填写,进入用户设计的临界区锁住数据,将软件缓冲区的写数据放到硬件缓冲区,发用户定制的写完成消息给前台,实现软硬件隔离。
  读完成用户处理消息为:完成数据转换,供显示用。
  写完成用户处理消息为:先告知用户状态计数器,表示写已完成,再做其他显示处理。对各硬件的访问全部分开,但读写线程结构完全相同。
  控制函数的形式也完全相同,无论是用PID算法或其他算法,均与此函数结构无关。因为该 控制函数的本质为:根据控制字,完成抽象软件缓冲区填写。与控制算法无关。因为这种算法仅在该控制函数中作为子函数调用。
  
控制函数的功能为:根据控制字完成写出缓冲区填写,并置写出长度,填写缓冲区为软设备缓冲区,控制函数对设备而言结构是完全统一的。形式为:  
  
其中k为控制方式字。例如:0为待机,1为手动,2为理论弹道,3为正弦弹道……
  控制时序由标准的时钟设备提供,例如B码或其他设备,他产生的同步脉冲作为中断源接入 系统。中断处理程序一旦检测到该中断,设置各自硬件读写事件为有信号(硬件读写事件由用户在初始化时建立为手工复位的事件)。在读写线程中一旦完成读写操作,复位这些事件。
  对应于上述复杂的硬件控制系统,该控制软件架构如图3所示。
  读设备线程:
  
(1) 判断线程是否退出,如退出则转(8),否则转(2)。
  (2) 等待读事件,永远等(该事件为手工复位)。
  对异步串行设备或网络设备而言该步可省略。
  (3) ReadFileDevice()调设备硬件读函数完成读操作。
  (4) 判断读是否成功,如不成功,则转(1),如成功转(5)。
  (5) 进入临界区,将硬件读缓冲区复制到软设备缓冲区,退出临界区。
  (6) 发用户消息到前台,复位读事件,为下读做准备。
  (7) 转(1)。
  (8) 结束。
  写设备线程:
  (1) 判断线程是否退出,如退出则转(9),否则转(2)。
  (2) 等待写事件,永远等(该事件为手工复位)。
  (3) 调控制函数完成设备缓冲区填写。
  (4) 进入临界区,将软设备写缓冲区复制到硬件写缓冲区,退出临界区。
  (5) WriteFileDeivce()调设备写函数完成写操作。
  (6) 判断写成功否,如不成功转(1),如成功转(7)。
  (7) 发用户消息到前台,复位写事件,为下写做准备。
  (8) 转(1)。
  (9) 结束。
4结语
  在这样一种软件架构下,控制系统硬件接口部分从软件角度看仅是4、5条函数,通过Window s 2000的内核同步对象(事件和临界区)将软硬件缓冲区实行了隔离及同步。通过中断置事 件达到控制时序设置。经过这一系列步骤后,整个控制系统的计算机实现软件结构清晰明了 ,调试方便。该软件系统架构与开发工具无关,作者运用这一软件架构已设计多套控制系统 ,这些控制软件目前正成功运行于我国几个基地。
参考文献
[1]曹国钧,王键.深入Windows 2000应用[M].北京:北京科海集团 出版社,2001.
[2]飞思科技产品研发中心Delphi下深入Windows编程[M].北京:电子 工业出版社,2003.
[3][美]William BoswellWindows 2000 Server 技术内幕[M].北京:清 华大学出版社,2001.
[4]陈平,褚华.软件设计师教程[M].北京:清华大学出版社,2004.
参与讨论
后参与讨论

//评论区

推荐阅读

智能网联汽车国际标准法规协调专家组(HEAG)召开工作会议

近年来智能网联汽车快速发展,新技术不断涌现,与相关产业融合度持续提升,正在推动全球汽车产业发生深刻变革。为应对此种形势,欧、美、日等汽车工业发达国家和地区都加大了智能网联汽车的国际标准法规协调的参与力度,在联合国世界车辆法规论坛(UN/WP.29)和国际标准化组织(ISO)层面,智能网联汽车相关国际标准法规协调活动正快速推进。 为更有效地支撑上述组织的国际标准法规协调活动,2017年全国汽车标准

0215jiejie | 发布于:2022-12-01 0评论 0赞

苹果推出搭载M2芯片的新款iPad Pro 799美元起售

据苹果官网,苹果推出搭载M2芯片的新款iPadPro。 11英寸wifi版起售价为799美元,wifi+蜂窝网络版起售价为999美元;12.9英寸wifi版起售价为1099美元,wifi+蜂窝网络版起售价为1299美元。

0215jiejie | 发布于:2022-10-19 0评论 0赞

新能源汽车领衔 “中国智造”加速登陆欧洲市场

全球五大车展之一巴黎车展时隔四年再度启幕。在这场被视为“全球汽车行业风向标”的盛会上,国内外汽车品牌云集,长城汽车、比亚迪等再次领衔中国汽车出海。 长城汽车欧洲区域总裁孟祥军表示:“欧洲是长城汽车最重要的海外市场之一,巴黎车展是长城汽车向欧洲市场展示GWM品牌和产品的最佳机会。长城汽车正在研究汽车行业碳排放的整个生命周期,到2025年,将推出50多款新能源产品,全力支持可再生能源使用,为全球用户

0215jiejie | 发布于:2022-10-19 0评论 0赞

严监管时代来临,电子烟“通配”大战走向何方?

针对通配烟弹厂商的一系列诉讼的结果,将对生产通配烟弹的品牌未来在电子烟行业的发展产生深远影响。 10月1日,《电子烟强制性国家标准》正式实施,中国电子烟监管全面生效。而在电子烟行业进入规范化、法治化阶段前夕,一场围绕着通配烟弹的争论在行业里发酵。 “通配”是电子烟从业者约定俗成的概念。换弹式电子烟由烟杆和烟弹组成,“通配”烟弹指的是非品牌商生产、可与品牌烟杆匹配使用的烟弹。多位业内人士表示,被

0215jiejie | 发布于:2022-10-19 0评论 0赞

Bourns 全新大功率分流电阻器

采用金属感应引脚,专用于大电流应用中进行精确测量 全新分流电阻器专为电池管理系统、大电流工业控制和电动汽车充电站 提供高可靠性、高成本效益的解决方案 美国柏恩Bourns全球知名电子组件领导制造供货商,宣布新增12款CSM2F系列功率分流电阻器,扩展其产品组合。全新系列采用铆接通孔金属传感引脚,可满足大电流应用中对电压测试点精确定位日益增长的需求。最新型Bourns?CSM2F系列分流电阻器

0215jiejie | 发布于:2022-10-18 0评论 0赞

请尊重元宇宙“这个筐”

元宇宙是个筐,啥都往里装,但区别在于有的像聚宝盆,有的像垃圾桶。国庆假期刚结束,中青宝“90后”董事长李逸伦便亲自上阵,玩起了元宇宙婚礼。靠着老板首秀和代言,中青宝顺势推出“MetaLove元囍”App,正式进军元宇宙婚礼赛道。 就产品而言,如同其他元宇宙产品,李逸伦的元宇宙婚礼“新奇与吐槽齐飞”:有人说是有趣的尝试,有人则认为像QQ炫舞结婚系统。要知道,QQ炫舞是一款推出了十余年的老游戏。

0215jiejie | 发布于:2022-10-13 0评论 0赞

边缘计算:突围商业模式痛点

截至8月末,中国5G基站总数达210.2万个,中国5G发展已经进入下半场。随着5G加速融入千行百业,互动直播、vCDN、安防监控等场景率先大规模落地,车联网、云游戏、工业互联网、智慧园区、智慧物流等场景也快速走向成熟,这些更大流量、更低时延、更高性能的场景涌现,对边缘计算的刚性需求势必爆发。 GrandViewResearch预测,即使在新型冠状病毒肺炎疫情肆虐全球的背景下,边缘计算和5G网络市

0215jiejie | 发布于:2022-10-13 0评论 0赞

商务部回应美商务部升级半导体等领域对华出口管制并调整出口管制“未经验证清单”

商务部新闻发言人10日就美商务部升级半导体等领域对华出口管制并调整出口管制“未经验证清单”应询答记者问。 有记者问:近日,美国商务部在半导体制造和先进计算等领域对华升级出口管制措施。同时,在将9家中国实体移出“未经验证清单”过程中,又将31家中国实体列入,请问中方对此有何回应? 对此,商务部新闻发言人回应称,中方注意到相关情况。首先,通过中美双方前一阶段共同努力,9家中国实体zui终

0215jiejie | 发布于:2022-10-13 0评论 0赞

TCL华星官宣与奔驰合作:推出全球首款横贯A柱的车载显示屏

今年1月,奔驰带来了VISIONEQSS概念车,其中控台采用了一块完全无缝的47.5英寸曲面显示屏,横贯整个A柱,令人印象深刻。今天,TCL华星正式官宣与奔驰达成合作,并认领了VISIONEQSS上这块全球首款横贯整个A柱曲面的车载显示屏。 根据TCL介绍,这款显示屏采用了完全无缝的超薄一体化设计,将仪表盘、中控与副驾娱乐显示融为一体,并能够与3D实时导航系统相辅相成。 同时,这块显示屏还采用

0215jiejie | 发布于:2022-10-12 0评论 0赞

半导体板块暴跌 谁最受伤

国庆假期后首日开盘,上证综指时隔5个月再次失守3000点,与此同时,半导体板块也再度走低,其中,北方华创、雅克科技等个股跌停。10月11日早盘期间,半导体板块持续下挫,北方华创、雅克科技再度跌停。截至下午收盘,北方华创、雅克科技维持跌停状态,华海清科、拓荆科技-U、盛美上海、清溢光电、海光信息的跌幅则超10%。同日,半导体板块中的119只个股中超五成呈现下跌趋势。 在半导体板块遭遇下挫的同时,北

0215jiejie | 发布于:2022-10-12 0评论 0赞