计算机控制论文范文

时间:2022-10-28 17:03:34

引言:寻求写作上的突破?我们特意为您精选了12篇计算机控制论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。

计算机控制论文

篇1

锅炉微机控制系统,一般由以下几部分组成,即由锅炉本体、一次仪表、微机、手自动切换操作、执行机构及阀、滑差电机等部分组成,一次仪表将锅炉的温度、压力、流量、氧量、转速等量转换成电压、电流等送入微机,手自动切换操作部分,手动时由操作人员手动控制,用操作器控制滑差电机及阀等,自动时对微机发出控制信号经执行部分进行自动操作。微机对整个锅炉的运行进行监测、报警、控制以保证锅炉正常、可靠地运行,除此以外为保证锅炉运行的安全,在进行微机系统设计时,对锅炉水位、锅炉汽包压力等重要参数应设置常规仪表及报警装置,以保证水位和汽包压力有双重甚至三重报警装置,这是必不可少的,以免锅炉发生重大事故。

控制系统:

锅炉是一个较为复杂的调节对象,它不仅调节量多,而且各种量之间相互联系,相互影响,相互制约,锅炉内部的能量转换机理比较复杂,所以要对锅炉建立一个较为理想的数学模型比较困难。为此,把锅炉系统作了简化处理,化分为三个相对独立的调节系统。当然在某些系统中还可以细分出其它系统如一次风量控制回路,但是其主要是以下三个部分:

炉膛负压为主调量的特殊燃烧自动调节系统

锅炉燃烧过程有三个任务:给煤控制,给风控制,炉膛负压控制。保持煤气与空气比例使空气过剩系数在1.08左右、燃烧过程的经济性、维持炉膛负压,所以锅炉燃烧过程的自动调节是一个复杂的问题。对于3×6.5t/h锅炉来说燃烧放散高炉煤气,要求是最大限度地利用放散的高炉煤气,故可按锅炉的最大出力运行,对蒸汽压力不做严格要求;燃烧的经济性也不做较高的要求。这样锅炉燃烧过程的自动调节简化为炉膛负压为主参数的定煤气流量调节。

炉膛负压Pf的大小受引风量、鼓风量与煤气量(压力)三者的影响。炉膛负压太小,炉膛向外喷火和外泄漏高炉煤气,危及设备与运行人员的安全。负压太大,炉膛漏风量增加,排烟损失增加,引风机电耗增加。根据多年的人工手动调节摸索,6.5t/h锅炉的Pf=100Pa来进行设计。调节方法是初始状态先由人工调节空气与煤气比例,达到理想的燃烧状态,在引风机全开时达到炉膛负压100Pa,投入自动后,只调节煤气蝶阀,使压力波动下的高炉煤气流量趋于初始状态的煤气流量,来保持燃烧中高炉煤气与空气比例达到最佳状态。

锅炉水位调节单元

汽包水位是影响锅炉安全运行的重要参数,水位过高,会破坏汽水分离装置的正常工作,严重时会导致蒸汽带水增多,增加在管壁上的结垢和影响蒸汽质量。水位过低,则会破坏水循环,引起水冷壁管的破裂,严重时会造成干锅,损坏汽包。所以其值过高过低都可能造成重大事故。它的被调量是汽包水位,而调节量则是给水流量,通过对给水流量的调节,使汽包内部的物料达到动态平衡,变化在允许范围之内,由于锅炉汽包水位对蒸气流量和给水流量变化的响应呈积极特性。但是在负荷(蒸气流量)急剧增加时,表现却为"逆响应特性",即所谓的"虚假水位",造成这一原因是由于负荷增加时,导致汽包压力下降,使汽包内水的沸点温度下降,水的沸腾突然加剧,形成大量汽泡,而使水位抬高。汽包水位控制系统,实质上是维持锅炉进出水量平衡的系统。它是以水位作为水量平衡与否的控制指标,通过调整进水量的多少来达到进出平衡,将汽包水位维持在汽水分离界面最大的汽包中位线附近,以提高锅炉的蒸发效率,保证生产安全。由于锅炉水位系统是一个设有自平衡能力的被控对象,运行中存在虚假水位现象,实际应用中可根据情况采用水位单冲量、水位蒸汽量双重量和水位、蒸汽量、给水量三冲量的控制系统。

除氧器压力和水位调节:除氧器部分均采用单冲量控制方案,单回路的PID调节。

监控管理系统:

以上控制系统一般由PLC或其它硬件系统完成控制,而在上位计算机中要完成以下功能:

实时准确检测锅炉的运行参数:为全面掌握整个系统的运行工况,监控系统将实时监测并采集锅炉有关的工艺参数、电气参数、以及设备的运行状态等。系统具有丰富的图形库,通过组态可将锅炉的设备图形连同相关的运行参数显示在画面上;除此之外,还能将参数以列表或分组等形式显示出来。

综合分析及时发出控制指令:监控系统根据监测到的锅炉运行数据,按照设定好的控制策略,发出控制指令,调节锅炉系统设备的运行,从而保证锅炉高效、可靠运行。

篇2

会计电算化是以计算机为主的当代电子和信息技术应用于会计工作的简称,是用电子计算机代替人工实现记账、算账、查账以及对会计信息的统计、分析、判断乃至提供预测、决策等过程。发展会计电算化有利于促进会计工作规范化,提高工作质量与工作效率,更好地发挥会计职能作用。但是企业在建立了电算化会计系统后,企业会计核算和会计管理环境发生了很大变化,一些非法操作可能不留痕迹,难以发现,稍不注意就会给单位和国家造成重大损失,如果会计电算化管理系统遭到破坏,将会严重影响单位的正常业务活动。因此,对会计电算化的内部防范和控制制度的建设显得尤为重要。

一、电算化会计信息系统对内部控制的影响

会计电算化使传统的会计系统、组织机构、会计核算及内部控制制度发生了很大的变化,其中对内部控制制度的影响尤为明显。

1.电算化会计信息系统的控制内容及形式与手工会计系统存在差异。在传统的手工系统下,控制的内容主要针对经济事项本身的交易,对于一项经济业务的每个环节都要经过某些具有相应权限人员的审核和签章,控制的方式主要是通过人员的职务相分离,职权不相容的内部牵制制度来实现的。而在电算化系统下,业务处理全部以电算化系统为主,出现了计算机的安全及维护、系统管理及操作员的制度职责、计算机病毒防治等新内容。另外,电算化功能的高度集中导致了职责的集中,业务人员可利用特殊的授权文件或口令,获得某种权利或运行特定程序进行业务处理,由此引起失控而造成损失。

2.内部控制的对象发生了变化。在电算化系统下,由于会计信息的核算及处理的主体发生了变化,控制的对象也发生了变化。控制对象原来为会计处理程序及会计工作的相容性等,会计资料由不同的责任人分别记录在凭证账簿上以备查验,是以对人的控制为主;而在电算化系统下,会计数据一般集中由计算机数据处理部门进行处理,而财务人员往往只负责原始数据的收集、审核和编码,并对计算机输出的各种会计报表进行分析。这样,内控对象转变为对人与计算机二者为主。

3.控制的实现方式发生了变化。手工会计系统的内部控制以人工控制实现。电算化会计系统的内部控制则具有人工控制与程序控制相结合的特点。电算化系统许多应用程序中包含了内部控制功能,这些程序化的内部控制的有效性取决于应用程序。如程序发生差错,由于人们对程序的依赖性以及程序运行的重复性,增加了差错反复发生的可能性,使得失效控制长期不被发现,从而使系统在特定方面发生错误或违规行为的可能性加大。

4.电算化会计信息系统缺乏交易处理痕迹。手工会计系统中严格的凭证制度,在电算化会计系统中逐渐减少或消失,凭证所起到的控制功能弱化,使部分交易几乎没有“痕迹”,给控制带来一定的难度。

5.电算化会计信息系统中会计信息存储电磁化。电算化系统下,原先会计业务处理过程的凭证、汇总表、分类表等书面档案资料被计算机自动生成的会计信息以电磁信号的形式存储在磁性介质中(如光盘、硬盘等),是肉眼不可见的,很容易被删除或篡改而不会留下痕迹;另外,电磁介质易受损坏,加大了会计信息丢失或毁坏的危险。

6.网络的迅猛发展及其在财务中的进一步应用带来了许多新问题。网络技术无疑是目前IT发展的方向,电算化会计信息系统也不可避免受到其深远的影响,特别是Internet在财务软件中的应用对电算化会计信息系统的影响将是革命性的。目前财务软件的网络功能主要包括:远程报账、远程报表、远程审计、网上支付、网上催账、网上报税、网上采购、网上销售、网上银行等,实现这些功能就必须有相应的控制,从而形成电算化会计信息系统内部控制的新问题。

二、会计电算化内部控制中存在的问题

在目前的许多企业中,虽然会计电算化系统已投入使用,但其相应的内部控制还存在着一些不完善之处,主要表现在:

1.电算化系统下的会计及电算化岗位的职能权限问题。操作权限控制是一种基本的内控手段,在电算化环境下,会计业务处理大部分由计算机操作,人为控制减少,削弱了会计审核功能。有些单位的各岗位操作权限制度没有真正落实到位,有的操作员可以以不同的身份进入系统操作,使分工控制名存实亡。

2.会计人员因主观原因或技术因素造成非法操作或操作失误。这是会计电算化内部控制中的主要任务,因其系统的程序、数据、文件等很容易被仿造、复制和修改,而不会留任何痕迹,所以某些人员为了达到个人目的,利用职务之便或不按操作规程进行非法操作,如通过冒名顶替、盗取密码等手段来非法改动、销毁会计资料,给单位造成严重损失。同时,由于单位的业务人员素质不高、操作制度不规范等原因,也会造成很大风险,因会计电算化的核算是高效自动的,只要一个环节出现错误,就会引发其他环节一系列的错误。3.会计软件的安全性及保密性问题。现有的软件系统在设计、开发阶段普遍存在重功能轻安全的现象,以至软件投入运行后存在着安全隐患,如数据库呈开放状态、易于打开等。电脑的系统数据和会计信息资料有面临被不留痕迹的浏览、修改的风险,而现在许多单位缺乏操作的记录功能,出现问题后不便于追究责任。

4.会计资料的备份和保管不及时、不规范,导致财务数据丢失。在会计电算化法规中明确规定,单位应坚持每天双重备份,并分人分处保管。但在实际工作中,有的单位并没有真正落实,也没有及时打印并按规定保管凭证和账簿,致使电脑一旦出现故障或磁性介质损坏时,部分会计资料就会丢失,造成无法挽回的后果。

5.缺乏专业的系统维护人员。目前,许多会计人员对会计业务熟悉,但对计算机知识缺乏;而系统的维护人员对计算机知识熟悉,但对会计业务不够了解,使得在系统运行中的故障不能及时分析、排除。

三、完善会计电算化内部控制的几点建议

1.建立全面规范的会计基础管理工作。管理基础主要指有一套比较全面、规范的管理制度和方法,以及较完整的规范化的数据。会计基础工作主要指会计制度是否健全,核算规程是否规范,基础数据是否准确、完整等,这是搞好电算化工作的重要保证。没有很好的基础工作,电算化会计信息系统无法处理无规律、不规范的会计数据,电算化工作的开展将遇到重重困难。

2.加强组织和人员职能控制。由于电算化会计功能的相对集中,必须制定相应的组织和管理控制制度,明确职责分工,加强组织控制。

所谓组织控制就是将系统中不相容的职责进行分离,通过相互稽核、相互监督和相互制约的机制来减少错误和舞弊的可能,保证会计信息真实、可靠。企业实行电算化后,应对原有的组织机构进行调整,以适应计算机系统要求。会计工作岗位可分为基本会计岗位和电算化会计岗位。基本会计岗位与原手工系统基本保持不变。电算化岗位一般可分为系统管理、系统操作、凭证审核、系统维护等,这些岗位也可以由基本会计岗位的会计人员来兼任,但必须对职权不相容的岗位进行明确分工,不得兼任,同时各岗位人员要保持相对稳定。如专职系统操作员不能接触系统设计文件,不能兼任会计及审核工作;系统维护员不得担任系统操作和会计工作等。

3.加强系统程序操作控制和系统文件安全管理控制。为了保证系统会计数据不被随意操作,要加强系统操作和安全管理控制。从内容上来看,一般包括以下几项:设置操作权限、制定上机守则,禁止非操作人员操作;制定内部操作规程,严禁违规操作,如预防原始凭证和记账凭证等会计数据未经审核而输入计算机的措施,预防已输入计算机的原始凭证和记账凭证等未经核对而登记机内账簿的措施;数据存储和处理相隔离;建立必要的上机操作记录制度,形成上机日志;健全并严格执行防范病毒管理制度等。另外,系统文件由专人负责保管,使用和修改必须经过有关领导审批,与系统无关人员不得接触系统文件,从源头上控制会计数据信息的作。在系统开发阶段,要设置对系统操作痕迹留有记录的功能,特别是对已入账的凭证,系统只能提供留有痕迹的更改功能,对已结账的凭证与账簿以及机内账簿生成的报表数据,系统不能提供更改功能等。

4.做好电算化会计档案的管理工作。企业应根据电算化会计档案的特点,做好会计资料的收集、保存和调用等方面的工作。财务部门对于已输出的磁性介质上的会计资料应及时加贴外部标签,指定专人妥善保管、存档,并定期检查、复制,对会计档案的调用要有完善的资料借用和归还手续。另外,企业使用的会计软件也应具有强制备份的功能和一旦系统崩溃等及时恢复到最近状态的功能。

篇3

2软件系统构成

目前,医疗机构业务网软件系统主要有HIS、PACS、LIS、电子病历系统等,实现了病人从挂号、缴费到出院的全程计算机管理,机构各级领导可通过计算机调阅授权范围内的数据。互联网除了提供HTTP、FTP等传统业务外,开通机构中心内电子期刊系统也很有必要,医护人员可以到中心内电子阅览室查阅电子期刊,也可在开通互联网业务的病区计算机上查阅资料,使得医护人员继续教育手段进一步多样化。为了最大限度发挥计算机网络的功能,同时保证网络安全平稳运行,需要使用各种网络管理软件及辅助工具。在机构的网络管理软件中,主要包括网络拓扑管理、网上行为管理、流量管理、桌面管理、防病毒软件等。在这些软件的安装布置中,有些是保证网络安全平稳运行所必需的,例如防病毒软件等,有些是根据实际工作需要添加的,例如,在实际工作中,根据统计,我们发现日常工作的多数问题是工作站用户由于操作不当而引起,同时由于各用户节点遍及全院各建筑物,因此为了能够及时处理这些可以通过远程协助解决的问题,采用了远程桌面管理软件。通过这些工具,实现了准确、及时地处理问题。需要注意的是,对于疾控机构计算机网络系统而言,在采用一套新的软件时是需要十分慎重的。在安装布置一套新软件之前,需要先详细地了解该软件的工作原理、工作性能、健壮性、兼容性等特性。然后在特定范围内进行试用,针对出现的网络异常情况(如网速下降、部分掉线等)进行认真分析,确定是否是新软件引起、是否对网络安全平稳运行构成威胁及如何处理。软件安装布置完成后,系统管理员要定时收集网络性能参数,对异常及时处理防患于未然。如在ARP攻击、熊猫烧香等病毒爆发前,网络中均会出现比较明显的异常。

3网络管理

3.1安全管理对于网络的安全管理主要由以下几部分构成:权限管理、防病毒管理、设备管理等。安全管理的基本任务就是对网络的日常巡查和性能监视,如每天察看流量日志、安全日志等并进行认真分析确定有无异常情况,对网络应用软件进行及时升级更新。一个核心是制定一套完善可行的管理制度,保证每项工作都有人员具体负责,保证每一次操作都是规范和允许的。坚持对管理人员、操作人员集中培训,从而大大降低人为因素引入的安全问题。

3.2服务管理在计算机网络系统建立完成后,系统管理员应该根据实际运行情况和用户行为模式制定服务策略。例如,对于互联网网络带宽的分配,正常办公时间行政部门对带宽需求大,那么分配上就要适当倾斜,而在非办公时间,带宽就要对电子阅览室适当倾斜,因为此时有更多的人员去电子阅览室下载资料、观看视频教学等。同时为了保证网络正常使用,要对P2P应用、网络电视等进行限制。

3.3应急管理计算机网络系统作为医院信息化的基础工程,从投入使用的第一天起,就应该建立完善的应急管理机制,包括各项制度及措施。应急管理的内容不仅包括出现硬件损坏、线路故障的硬件应急措施,还应该包括异常数据流、频繁掉线等软件问题。尤其是软件问题,需要管理员借助专业的工具进行长时间的观察和分析才能找到问题所在,因此更需要事先制定详细的应急处理措施,才能保证业务系统正常运行,特别是承载信息系统的容灾和备份业务的计算网络。

篇4

监视、控制计算机的使用

基于WindowsNT/2000的应用系统中,一些关键的人机交互工作站,常需要了解并记录所有操作人员操作计算机的情况。如:在工业控制领域,一些使用计算机对设备进行监视和控制的工作站,需要非常高的可靠性和安全性。在这些工作站上通常要求只能运行系统所要求的应用程序,不能运行与系统无关的程序,同时要求对计算机操作人员的所有原始输入进行记录,以便出现事故(如操作故障、程序异常退出)的时候,用来分析是人为原因,还是系统原因造成的。基于以上需求,我们必须解决两个问题,一个是如何记录操作人员的输入,另一个是如何控制操作人员的输入。在DOS、Windows3.1、Windows95/98中都可以编写响应键盘和鼠标输入的中断处理程序,截取来自键盘和鼠标的输入,记录、分析后依情况分别处理。但是在WindowsNT和Windows2000中,这样的解决方法将不再行得通,这是因为WindowsNT/2000操作系统为了提高系统的可靠性,不再允许应用程序直接对系统设备的底层进行操作。这样,用户的应用程序将不能够对计算机的端口地址进行读写操作,所以在WindowsNT/2000操作系统中对计算机端口的读写是无效的。另外一种方法能够非常完美地解决这个问题,就是可以编写操作系统的设备驱动程序来解决,但是要编写系统的设备驱动程序,必须对WindowsNT/2000的系统底层以及整个系统架构有比较深入的了解。而且设备驱动程序的编写、调试都比较困难,同时这方面的资料也比较少。所以本文没有采取这种方法,而是采用微软公布的标准Win32函数和钩子技术来解决这个问题,比较方便而且快捷。在WindowsNT/2000操作系统中,称各种输入为事件(Event),所有的键盘、鼠标输入事件以及其他事件都是通过消息传递处理机制来得到响应的。控制、监视计算机实际上是控制、监视事件消息流。Windows操作系统为这种应用提供钩子(Hook)技术。这种技术的要点就是在操作系统的消息传递处理机制上外挂一个我们定义的函数,可以使用这个函数来监视、控制系统的事件消息流。本文采用的就是这种方法,这种方法要求将所有的程序代码放入系统可以加载的动态链接库中。下面我们以键盘输入的监视和控制为例详细叙述这种方法。其总体思路如下:首先,定义自己的钩子函数。其次,安装自定义的钩子函数,此后钩子函数在后台开始工作。一旦系统发现击键动作或者鼠标动作,系统将马上调用该自定义的钩子函数,并将事件消息传入,供程序分析判断。它可以监视所有的击键和鼠标动作,与DOS时代的中断调用有非常相似的地方。最后,卸载自定义的钩子函数。钩子函数的定义微软的钩子技术的原理就是应用程序可以在系统的消息处理机制上外挂一个子程序,在消息尚未到达目的地之前,用该子程序来截获此消息,以进行监视和控制。我们这里使用的是WH_KEYBOARD_LL类型的钩子函数,这种类型的钩子函数可以截获所有的键盘事件,即敲击键盘上的任何一个键,我们自定义的钩子函数都可以知道。该类型钩子函数要求安装自定义的钩子函数必须是以下原型:LRESULTCALLBACKLowLevelKeyboard-Proc(intnCode,WPARAMwParam,LPARAMlParam);其中各参数的含义如下:intnCode:用来决定钩子函数如何处理事件消息的代码,参数的取值为HC_ACTION时,参数wParam、lParam包含了所需的键盘消息事件信息。WPARAMwParam:键盘消息事件的类型ID。该参数有四种可能的消息类型取值:WM_KEY-DOWN,WM_KEYUP,WM_SYSKEYDOWN,WM_SYSKEYUP.LPARAMlParam:指向一个类型为KBDLLHOOKSTRUCT的结构指针。该结构容纳了底层键盘输入事件的详细信息,它的定义如下:typedefstructtagKBDLLHOOKSTRUCT{DWORDvkCode;//一个范围从1到254的虚拟键码DWORDscanCode;//键盘的硬件扫描码DWORDflags;//一系列的标志位//0比特位指示该键是不是扩展键(如:功能键,或数字小键盘上的键),1表示是,0表示否//1~3比特位保留//4比特位用来区分该事件是否来自Win32函数keybd_event()调用,1表示是,0表示否//5比特位为状态描述码,如果ALT键按下,该位是1,否则是0。//6比特位保留。//7比特位是变换状态位,键被按下为0,键被释放为1。DWORDtime;//该消息事件的时间标记。DWORDdwExtraInfo;//该消息的其他扩展信息。}KBDLLHOOKSTRUCT,FAR*LPKBDLLHOOKSTRUCT,*PKBDLLHOOKSTRUCT;实际的钩子函数的框架如下:LRESULTCALLBACKMyLowLevelKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){BOOLbSkipThisEvent=FALSE;HWNDhwndForeground;HWNDhwndFocus;DWORDdwCurrentThreadId;DWORDdwWindowThreadId;if(nCode==HC_ACTION){PKBDLLHOOKSTRUCTp=(PKBDLLHOOKSTRUCT)lParam;//系统传递来的键盘输入事件信息指针switch(wParam){caseWM_SYSKEYUP:caseWM_KEYUP://ifkeyup/*这段代码用来获得当前拥有输入焦点的窗口的窗口句柄,以便获得该窗口的相关信息*//*获得前端窗口(即用户当前正在工作的窗口)的句柄,创建该窗口的线程通常拥有比其他线程稍微高一些的优先级。*/hwndForegroud=::GetForegroundWindow();dwCurrentThreadId=::GetCurrentThreadId();//当前线程的Id//获得产生前端窗口hwndForeground的线程Id值,用来惟一表示一个线程dwWindowThreadId=::GetWindowThread-ProcessId(hwndForegroud,NULL);/*下面这一行代码非常重要,它的作用是使当前线程(dwCurrentThreadId)的输入处理机制依附到创建前端窗口的线程(dwWindowThreadId)的输入机制上,否则你将得不到当前拥有键盘输入焦点的窗口句柄。这是因为在WindowsNT/2000操作系统通常创建不同的线程来处理相互独立的输入过程,每一个输入过程都拥有自己的输入状态(焦点、键盘状态、队列状态等),通过AttachThreadInput调用,操作系统将允许调用线程获得或者设置其他线程生成窗口的输入状态信息。只有执行该系统调用,才能够得到当前拥有键盘输入焦点的窗口的窗口句柄,否则GetFocus()系统调用将返回NULL。在这一点上WindowsNT/2000与Windows9X操作系统有很大不同,这也正是WindowsNT/2000比Windows95/98操作系统可靠性、安全性更好的一个原因*/AttachThreadInput(dwCurrentThreadId,dwWindowThreadId,TRUE);////获得拥有键盘输入焦点的窗口的窗口句柄hwndFocus=::GetFocus();if(hwndFocus||hwndForeground){charwnm[256];wnm[0]=0;//变量定义后,使用之前一定要初始化。//获得该窗口的窗口标题,就是在窗口标题栏上显示的内容::GetWindowText(hwndForeground,wnm,255);charclsnm[266];clsnm[0]=0;//获得该窗口的类名字::GetClassName(hwndFocus,clsnm,255);//获得该窗口的风格LONGstyle=::GetWindowLong(hwfocus,GWL_STYLE);/*如果你只对部分窗口感兴趣的话,可以通过下面的形式进行过滤,从而只处理你所感兴趣的某些窗口的输入事件*/if((stricmp(clsnm,“edit”)==0)||(0x0020&style)||strstr(wnm,“MyTestWnd”)){//你可以在此记录供以后分析使用的相关信息LLKEY_OutputToLog(hwfore,hwfocus,wnm,clsnm,p);}}caseWM_KEYDOWN:caseWM_SYSKEYDOWN:if(p->vkCode==VK_LWIN)

*该行代码用来将键盘上的左Win系统键(就是带有微软旗帜图案的那个键,注意是左边的那个)屏蔽掉,如果在代码执行后,用户敲击键盘上的左Win系统键,将不会弹出Windows的开始菜单。你可以根据你的需要屏蔽任何你所要屏蔽的键,从而达到控制计算机使用的目的。*/bSkipThisEvent=TRUE;break;}endofswitch}//endofifif(bSkipThisEvent)//如果是需要屏蔽的键,一定要返回1给操作系统,切记。return1;elsereturnCallNextHookEx(NULL,nCode,wParam,lParam);/*调用钩子函数链,以便使其他应用程序能够正常工作*/}这里需要注意的是,如果nCode小于零,钩子函数必须返回CallNextHookEx函数调用的返回值。如果nCode>=0,建议仍然返回CallNextHookEx函数调用的返回值,否则其他安装了WH_KEYBOARD_LL钩子函数的应用程序将收不到系统发送的钩子通知,从而使其他应用程序功能发生异常。不过我们也可以利用系统的这一个特点,来屏蔽一些功能键,禁止某些系统特性,实现控制计算机使用的想法。安装钩子函数接下来的工作就是将我们定义好的钩子函数安装到系统中。用来安装用户自定义钩子函数的Win32函数是SetWindowsHookEx,该函数的原型如下:HHOOKSetWindowsHookEx(intidHook,//将要安装的钩子函数的钩子类型HOOKPROClpfn,//我们自定义的钩子函数的函数地址HINSTANCEhMod,//应用程序的实例句柄,即容纳了钩子函数的动态链接库的句柄。如果钩子函数所在地址空间在当前进程的地址空间,hMod应该为NULL.DWORDdwThreadId//钩子起作用的线程Id,如果该值为零,则对系统中所有线程都起作用);其中idHook指定了安装的钩子函数的类型,不同类型的钩子函数可完成不同应用功能,而且不同版本的Windows操作系统支持的钩子函数的种类也不尽相同,在本文我们主要介绍的是WindowsNT/2000操作系统中目前公开支持的最底层的两种钩子类型:WH_KEYBOARD_LL和WH_MOUSE_LL。这两种类型的钩子函数在WindowsNTServicesPack3及其以后的版本,包括Windows2000Professional中得到很好的支持。这两种类型的钩子函数可以分别监视底层的键盘和鼠标输入事件,在系统将事件分发到相应的接收目的地之前将它截获,交给用户自定义的钩子函数来处理。下面以键盘钩子为例详细说明,鼠标钩子与此类似,不再赘谈。在这里,我们的安装函数和我们定义的钩子函数放在同一个动态链接库中。其中g_hWin32NT_DllHandle是我们定义的全局变量,类型是Handle,在系统调用动态链接库的入口函数时,将hModule的值赋给g_hWin32NT_DllHandle。//下面是动态链接库的入口函数DllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){g_hWin32NT_DllHandle=hModule;/*保存该值,以后在安装自定义钩子函数的时候要使用该值*/returnTRUE;}//下面的函数用来安装我们自定义的钩子函数HHOOKg_hhkLowLevelKybd;//以后在卸载自定义钩子函数时,要用到该值voidStartMyHook(void){g_hhkLowLevelKybd=SetWindowsHookEx(WH_KEYBOARD_LL,::MyLowLevelKeyboardProc,(HINSTANCE)g_hWin32NT_DllHandle,0);}/*g_hWin32NT_DllHandle是动态链接库的句柄,我们定义的钩子函数放在该动态链接库中。该句柄是在操作系统加载动态链接库时,由操作系统调用DllMain()传入的*/如果安装成功,系统调用将返回一个钩子函数的句柄;如果失败,将返回NULL。将来在卸载我们自定义的钩子函数时要使用该句柄。所以必须将返回值保存到一个全局变量中。安装成功后,该函数返回。从现在开始,键盘的任何击键动作都将被我们定义的钩子函数捕捉到,包括各种系统功能键。操作系统在后台将自动异步地调用我们自定义的钩子函数进行处理,并且不会影响任何当前正在进行的各种工作,也不会对系统有任何不良影响。卸载钩子函数当我们的应用程序退出时,或者不再需要钩子函数的处理时,必须卸载我们自定义的钩子函数。//下面的Win32函数用来卸载我们自定义的钩子函数UnhookWindowsHookEx(g_hhkLowLevelKybd);至此,我们已经比较完整地介绍了底层键盘钩子技术的应用方法,对于鼠标输入事件的控制与监视的方法,与此完全类似,读者可依照本文完成自己的功能。并且在你的应用程序中,可以根据需要,多次安装、卸载钩子函数。不过有一点读者要注意,就是在程序调试时,一定不要同时将这两种类型的钩子函数都进行设置,因为一旦程序处理上有错误,操作系统将不能获得任何操作消息,计算机只有重新启动。读者可以将本文介绍的方法应用到许多场合,比如在运行某些关键的任务时,为避免人机交互的干扰,可以锁定键盘和鼠标的输入。待任务完成时,再恢复正常的键盘和鼠标的输入。另外,屏蔽某些不想让用户使用的功能键等等。

篇5

2、FlexRay总线时间调度

根据样例飞行控制计算机的内部总线FlexRay通信协议可知,内部总线通信时间为5ms,每个时隙为50μs,FlexRay总线最大帧长为127字[7]。本设计中1553B帧长度最大为54个字节,频率最高为100Hz,故使用上述FlexRay总线通信协议能够符合1553B总线通信要求。本设计中,1553B传感器数据的频率为50Hz和100Hz,而FlexRay总线通信频率为200Hz,内部总线通信速率高于外部传感器速率。故1553B板卡在内部总线通信过程中,当有传感器数据更新时,FlexRay总线传输最新的数据;而当没有数据更新时,FlexRay总线传输当前的传感器数据。为保证数据的完整性及减少占用总线时隙数量,本设计共使用总线三个时隙,每个时隙具体传输内容如表4所示,时隙2、7、15传输内容分别为惯导传感器无线电高度传感器和大气数据机的数据,数据帧大小分别为54字节、32字节、12字节。

3、1553B通信单元软件设计

3.1驱动软件的IP核封装与实现

在嵌入式FPGAEDK设计中,为了简化用户开发难度,Xilinx公司提供了一个封装了的接口,即IPIF(IPinterface,IP接口)作为介于PLB总线与用户逻辑模块之间的接口缓冲[8]。IPIF将PLB总线操作封装起来,而留给用户一个逻辑接口。本文软件设计采用模块化设计思想。其设计步骤如下:首先,将每个硬件模块对应编写一个驱动软件程序;其次,将相应驱动软件封装成通用IP核;最后,将IP核挂载到PowerPC内部总线PLB上。模块之间的通信主要通过PLB总线和OPB总线实现,系统中各模块通过这两种总线连接至PowerPC内核上,而PowerPC通过内部总线读写机制实现对各个模块的读写与控制。如图4所示为1553B通信单元的硬件平台总体架构图,主要由PowerPC内核、1553BIP核、FlexRay总线对应GPIOIP核集合、串口IP核、BRAM模块IP核及相应的中断控制IP核组成。

3.21553B总线接口驱动软件设计

如图5所示为1553B总线接口IP核结构图,整个驱动分为三个模块:总线读写模块,初始化模块和数据缓存模块。系统上电,该IP核激活,进行总线初始化操作,发送初始化完成信号并查询PLB读写信号,等待PowerPC405的读写操作。当读控制信号使能时,PowerPC405读取数据缓冲区中的数据;当写控制信号使能时,总线读写模块将数据缓冲区中的数据发送至总线上。

3.31553B通信算法设计

1553B通信单元的调度主要由外部1553B总线的数据接收,内部FlexRay总线的数据通信组成。本设计采用模块化设计,将系统功能划分为顶层应用和底层数据通信。底层数据通信主要包括外部数据流通信及内部数据流通信,外部数据流通信主要由1553BIP核实现,内部总线也由FlexRay驱动程序实现数据通信;而内核PowerPC主要实现顶层应用,即数据调度及总线故障切换功能的实现。如图6所示为节点通信程序流程图,系统上电后,首先对FlexRay总线及1553B总线节点进行相应的初始化,进而查询1553B对应FIFO满输出引脚,当接收到数据时,节点读取FIFO内容,并写入相应的总线发送缓冲区中。进而查询MFR4310的中断引脚信号,当发送中断有效时,执行发送中断子程序,将接收到1553B总线数据通过1553B总线发送出去;当接收中断有效时,执行接收中断子程序,通信节点接收CPU发送来的控制信号。系统完成数据调度后,进而进行总线故障检测。由于1553B总线的基本周期为10ms,故本设计中总线检测周期为10ms。当定时器的10ms定时时间到,总线进行一次总线检测。当接收到总线切换指令,通信单元进行总线切换,并更新总线状态;进而判断是否接受到传感器的1553B总线应答信号,如果有,将总线故障计数清零,倘若没有,将故障计数加1,当故障计数大于6,进行总线切换,并更新总线状态。

4、总线网络通信测试与结果分析

(1)FlexRay总线测试结果将FlexRay通信周期设置为5ms,静态时隙长度为50μs,将CPU板卡与1553B板卡进行通信实验,从总线上读出输出波形。FlexRay总线通信时,在总线上截取的波形如图7所示,从图中可以看出通信周期为5ms,与预设值一致。如图8所示为一个周期时隙输出波形,时隙2、7、15传输传感器数据。由图8可知,时隙2与时隙7相差250μs,时隙7与时隙15相差350μs,与预设值一致。FlexRay总线通信6小时,进而进行连续总线数据传输测试,经过6个小时的总线测试结果如表5所示,通信过程中,丢帧、错帧计数均为0,表明1553B通信单元FlexRay总线设计正确,可以满足飞行控制计算机通信的基本要求。(2)1553B总线测试结果由前面可知,1553B数据通信周期为10ms,即100Hz。如图9~12分别为1553B通信单元与CPU单元模拟大气数据机传感器数据帧发送数据8字节,进行通信2小时、4小时、6小时、10小时的通信仿真图。其通信帧数分别为719999,1439998,2160023,3599991。期间在2小时~4小时,4小时~6小时,6小时~10小时通信期间,丢帧数分别为1,1,0,合计丢帧率约为5.56×10-7,符合飞行控制计算机通信要求。(3)测试结论以上实验结果表明,1553B通信单元的各个模块通信正常,与飞行控制计算机CPU板卡通信正常,能够符合飞行控制计算机的通信要求。

篇6

1基于马歇尔试验模型的计算机网络安全控制设计

1.1计算机物联网络安全控制总体架构

马歇尔试验主要是确定沥青混合料最佳油石比的试验,目的是进行沥青路面施工质量检验。马歇尔试验模型便是测试某一方案设计的可行性方法。计算机物联网络安全控制方法是指保护计算机网络方法中储存、传输和处理的信息免于未经授权的泄露、修改以及由于各种原因造成的信息无法使用,维护计算机物联网络正常运行的方法,即通常所说的信息的保密性、完整性、真实性和可用性[1]。基于马歇尔试验模型的计算机物联网络安全控制方法主要由三部分组成:计算机主机访问控制、入侵检测、安全审计与监控。其中计算机主机访问控制主要是限定主体是否有权访问计算机物联网络,确保网络资源在合法用户范围内使用。入侵检测主要是检测计算机物联网络中存在的违犯网络安全控制的行为和被攻击的迹象。安全审计与监控是对计算机物联网络进行实时有效的审计与监控,及时评估计算机物联网络的安全性,提高计算机物联网络运行的可靠性、数据资源的可利用性[2]。

1.2计算机主机访问控制

计算机主机访问控制是保证网络安全的第一关卡,是限定主体是否以及能否有权访问计算机物联网络,对计算机物联网络允许执行什么样的操作,进而有效防止破坏计算机物联网络安全运行的行为,确保计算机物联网络中的信息在合法用户范围内的使用。未授权的访问包括非法用户进行计算机物联网络方法,合法用户对网络方法资源的非法使用以及没有授权的情况下使用、泄露、篡改、销毁信息等[3]。计算机主机访问控制规定了访问主体对网络客体访问的权限,而且可以通过身份及身份权限识别,对提出的网络资源访问请求加以控制。

1.3入侵检测

入侵检测主要是从计算机物联网络内部和各种网络资源中主动收集信息,从采集到的信息中分析潜存的网络入侵或者网络安全攻击,是一种主动的计算机物联网络安全防护技术[4]。当入侵检测技术发现入侵后,能够及时采取相应的措施,例如切断网络连接、阻断、追踪、反击以及报警等。与此同时,还能够记录网络安全受攻击的过程,为计算机物联网络安全的恢复和追击入侵来源提供有效的数据信息。入侵检测的具体实现首先是收集包括计算机物联网络系统、数据以及用户活动的状态和行为在内的相关信息。然后通过模型匹配、统计分析以及完整性分析对收集到的数据进行检测。当检测到某种不匹配的模型时,便会发出警告并传输到网络控制台。接着分析过滤掉的信息,从中分析判断出潜存的攻击。最后根据入侵检测的情况随时调整或者终止网络运行,以便实现计算机物联网络的安全隔离[5]。

1.4安全审计与监控

计算机物联网络安全审计是记录和追踪网络方法状态的变化,例如用户的活动、对网络资源使用情况的监控、记录对网络资源使用以及处理的过程。安全审计能够监控和捕捉各种网络安全事件,实现对安全事件的识别、定位以及做出相应地反应。监控则是对计算机物联网络的运行状态和用户行为进行实时监视,对出现的破坏网络安全的违规行为或者非法行为采取必要的控制措施[6]。通过安全审计与监控,计算机物联网络相关的管理人员能及时发现被监控计算机物联网络可能的网络资源泄露问题,以及一些正在破坏网络安全的特殊行为,自动采取控制措施阻止这些行为的发生。

2实验结果与分析

上述采用提出的基于马歇尔试验模型的计算机物联网络安全控制方法有效保证了对计算机物物联网络的安全运行,充分地证明了基于马歇尔试验模型的计算机物联网络安全控制方法的可行性,但是其有效性还有待进一步研究。因此,采用对比实验对提出的计算机物联网络安全控制方法的有效性进行实验。

2.1实验数据准备

实验数据的准备主要包括计算机物联网络运行环境,模拟提出的计算机物联网络安全控制方法对计算机安全运行的保障。根据模拟不同复杂的实验环境,分析传统的计算机物联网络安全控制方法与机遇马歇尔试验模型的计算机物联网络安全控制方法的有效性。模拟计算机物联网络运行环境的指令具体如下:Calc:Interfacevlancliconfgsqlsereverifaccess-groupvlan_aclininterfacevlancompmgmentifaccess-groupvlan_aclininterfacevlanlusrmgr.mscipaccess-groupvlan_aclinExitLogoff

2.2实验数据分析

以上述执行指令模拟计算机物联网络运行环境,对提出的计算机物联网络安全控制方法进行实验。对传统的计算机物联网络安全控制方法与传统的安全控制方法在测试后的效果进行对比,实验数据如下:从上表中可以看出,提出的计算机物联网络安全控制系统在测试后其效果还是比较明显的,由于病毒攻击造成的网络崩溃相比传统的安全控制方法次数大大降低,其对网络安全性和稳定性的改善还是显而易见的。

3结束语

提出的计算机物联网络安全控制方法减少了网络因遭受攻击而造成的网络崩溃的次数,极大地提高了计算机物联网络的运行。但是其仍然存在较大的上升空间,因此,需要对其进行进一步的研究与分析。

参考文献:

[1]马世登,罗先录,包文夏.物联网计算机网络安全与控制研究[J].无线互联科技,2017(9):24-25.

[2]王士鑫.物联网计算机网络安全与远程控制技术初探[J].电子技术与软件工程,2018,134(12):9-12.

篇7

二、计算机在供热系统自动化控制中的作用

在目前的供热企业中,计算机的主要用途还仅限于打字、报表等比较初级工作,供热企业的信息化水平与实现供热企业生产过程的自动化、管理方式的网络化、决策支持的智能化等的要求还不适应,迫切要求在生产的关键环节提升自动化控制水平。而计算机自动控制由于具备如下功能,其作用是非常明显的。一是在数据采集及传输方面,能够实时采集公司所有换热站(包括水一水站、汽一水站)的全部技术数据,包括压力、温度、流量、热量、水电消耗及水泵状态等各种基础数据,通过无线或有线方式将各个子站的数据传输到中央调度室,可以在调度室了解到各个换热站的各项运行参数。由此,改变了以往手工操作下调度员很对运行工况“情况不明,心中无数”、致使调节处于盲目状态的情况。例如,我们采用间连热网全网平衡软件,通过OPC方式从组态软件中获得相关数据,这些数据包括:室外温度,热源的供水流量、供水温度、回水温度等。此软件动态的通过室外温度的时间序列法进行热网所需负荷预测、热源的供回水温差的需求、热源的供水流量的需求等。二是在冷热控制方面,能够均匀调节流量,消除冷热不均。换热站自动控制各个换热站可以根据室外气温的变化通过调节一级管网电动阀门的开度来及时控制二级管网的供回水温度,通过调度给定的控制曲线,各个换热站可以独立运行,保证运行参数始终在给定的范围内运行。同时调度在中央调度室可以根据需要随时干预子站的运行,调度可以遥控子站的电动阀门,调整运行参数。三是在故障预测方面,能够及时诊断故障确保安全运行。

计算机自动控制系统通过对供热系统运行参数的分析,即可对热源、热力网和热用户中发生泄漏、堵塞等故障进行及时诊断,发现问题及时处理,同时指出故障位置,以便及时检修,保证系统安全运行。四是在能源考核管理方面,能够实现量化管理。由于计算机自控系统可以建立各种信息数据库,能够对运行过程的各种信息数据进行分析,对各个换热站的水、电、热进行各种统计、比较及计算,调度及公司领导可以随时了解整个管网能源消耗情况手掌握热同的经济技术状态,计量能力的提高,为量化管理的实现提供了物质基础。例如,采用间连热网全网平衡软件,可以对二次网的供回平均温度进行排序,使用户更好的了解热网的运行情况。如果热网存在支线的情况,排序可以应用于每条支线。同时,软件可以排出全网的最高的和最低的二十个热力站。这些都为加强能源考核管理提供了科学依据。

三、计算机在供热系统自动化控制中的运用

供热系统计算机自动控制是必然的发展趋势。目前,根据供热情况的区别,使用的有如下几种计算机自动控制系统:(1)直接数字控制系统(简称DDC);(2)监督控制系统(简称SCC);(3)分级控制系统;(4)集散控制系统(简称DCS)。我们认为,综合考虑多种因素,采用集散控制系统(即DCS)更为安全经济。DCS是计算机技术、数字通讯技术和现代控制技术结合的产物,是信息时代的控制技术。通常DCS系统的体系结构分为三层:现场控制级、集中操作监视级、综合信息管理级。DCS是面向整体面向系统的控制技术,目标是整个系统的最优化控制,包括现场实时控制的最优化和综合信息管理的最优化,其优点在于人机界面好,便于操作管理;系统高度安全可靠,能达到最优化管理;利用充分的数据信息,科学节能运行。推广运用集散控制系统,要注意把握以下几个关键问题。一是要完善中心DCS软硬件系统以发挥出最大效力。二是完善DCS控制系统上位数据处理,发挥控制室的中央控制功能。三是完善DCS控制系统对各换热站的分布式控制。四是完善人工智能控制,用人工的知识经验与自控系统相互配合共同搞好锅炉控制。

四、计算机在供热系统自动化控制中的运用实证

篇8

二、加强企业内部会计控制

内部会计控制是企业内部控制的重要组成部分。所谓内部会计控制,是指企业建立的控制程序,用于保护会计数据的准确性和可靠性,并保护资产。在信息环境下,企业的内部会计控制应重点做好以下几方面工作:

1.建立健全企业内部审计机制

内部审计作为企业内部控制体系的一个重要方面,它在履行审计职能,监督经济活动,加强经济管理,提高经济效益等方面发挥着重要作用。尤其在计算机信息环境下,各种违法犯罪行为比较隐蔽,加大内部审计力度显得尤为重要。通过开展内部审计,可以及时查明各种损失及贪污腐化行为,有效“制止铺张浪费、贪污盗窃、检查财产增减结存、审查账薄、进行盘点,发现问题,堵塞漏洞,从而保障财产安全完整”。因此,内部审计机构同样是信息环境下内部控制制度的一项基本措施。由于计算机违法犯罪具有快速、隐蔽的特点,一味的事后审计往往难以起到内部控制的作用。因此,在信息环境下有效的内部审计应该做到事前、事中、事后审计相结合,这样可以及时发现管理过程中各个环节可能出现的问题,以便及时采取控制措施,改善企业经营管理,提高经济效益。

2.加强会计资料内部审计

会计资料内部审计是内部控制的一个组成部分,又是内部控制的一种特殊形式。对会计资料的监督、审查,不仅是内部控制的有效手段,也是保证会计资料真实、完整的重要措施。根据内部控制的基本原理和我国会计工作实际情况,新《会计法》明确要求对会计资料应定期进行内部审计,以使内部审计机构或内部审计人员对会计资料的审计工作制度化和程序化。

3.强化实时监控

一个有效的内部控制需要采取预防性的、检查性的和纠正性的控制。为了防止各种企业内部的各种舞弊行为,应积极提倡采用实时审计技术。这种审计技术可以实时探测信息系统中发生的大额、异常的交易或者在某个重要环节,对系统处理的业务进行实时跟踪,并把跟踪过程和特殊事件记录在审计日志中,系统将收集的数据实时处理并及时反馈,达到强化事前预防和事中控制的目的,保证企业各项经营活动都在严格的内部控制程序下进行。

三、加强对计算机系统的安全控制

加强对电算化系统的安全控制,可以有效地防止和减少因自然灾害、工作疏忽以及蓄意破坏和计算机犯罪造成的损失和危害。企业要加强操作权限与操作规程控制、信息安全与数据处理流程控制,明确规定系统管理人员、维护人员不得兼任出纳、会计工作,任何人不得利用工具软件直接对数据库进行操作。严格按会计信息系统的设计要求配置人员,加强输入、处理、输出的控制,保证数据的准确性。程序设计人员还应对数据库采用加密技术进行处理。健全数据输入、修改、审核的内部控制制度,保障系统设计的处理流程不走样变型。对存取权限进行控制,应设置多级安全保密措施,系统密匙的源代码和目的代码应置于严格保密之下,通过用户密码口令的检查,来识别操作者的权限,同时还要预防用户利用合法查询查到该用户不应了解的数据。操作权限(密级)的分配,应由财务负责人统一专管,以达到相互控制的目的,明确各自的责任。目前,企业内联网大都在互联网环境下工作,已不再是独立、封闭的系统,因此,为保证企业包括数据在内的资产的安全性,还需要进行企业外部控制,如设置外部访问区域、建立防火墙、远程处理控制、邮件系统控制、网上信息查询控制、电子商务控制等等。

四、重视人力资源管理

内部控制制度设计得再完善,若没有称职的人员来执行,也不能发挥作用。因此,在信息化环境下,企业加强内部控制的一个重要方面就是加强对人力资源的管理。一方面,企业充分利用多种有效方法开展对职工的思想政治教育工作,增强企业员工防止自身犯罪的能力。二是完善职工培训制度。计算机信息化环境下,对有关人员的知识、技能有了新的要求,因此,企业应该通过各种培训班、进修班来保证员工尤其是与信息技术相关的人员的业务素质。三是建立良好的绩效评价机制、激励机制以及约束机制,使拥有知识的人获得合理的报酬,实现知识创造财富,留住了解重要信息资源的人才,防止人才流失以及相应的信息资源损失。

综上所述,信息化改变了企业数据存取、保存、传递的方式和生产经营模式,提高了业务运转与管理的效率、业务流程的自动化,以及信息的价值化。在这样的环境下企业的内部控制重点要发生相应的变化。在当前,企业内部控制的工作重点应包括完善内部控制制度、建立健全企业内部审计机制、加强内部会计控制、加强对计算机系统的安全控制、重视人力资源管理等,尤其是电算化部门是当前企业内部控制的重点。当然,在信息化环境下,企业的内部控制还其有他许多工作要做,需要企业根据自身的实际状况采取全方位的内部控制措施。只有这样,企业内部控制制度才能真正发挥其应有的作用。

参考文献:

[1]王卫星李晓仙:内部控制与审计[J].当代财经,2002(10):77~79

[2]苏运发袁小勇王海洪:计算机审计[M].北京:首都经济贸易大学出版社,2005:55~56

[3]张金城:计算机信息系统控制与审计[M].北京大学出版社,2002:88~91

[4]蒋燕辉:现代内部审计学[M].北京:中国财政经济出版社,2001:24

[5]刘汝焯等:计算机审计技术和方法[M].清华大学出版社,2004:66~75

[6]陈少华:内部会计控制与会计职业道德教育[M].厦门大学出版社,2005

篇9

在WindowsNT/2000操作系统中,称各种输入为事件(Event),所有的键盘、鼠标输入事件以及其他事件都是通过消息传递处理机制来得到响应的。控制、监视计算机实际上是控制、监视事件消息流。Windows操作系统为这种应用提供钩子(Hook)技术。这种技术的要点就是在操作系统的消息传递处理机制上外挂一个我们定义的函数,可以使用这个函数来监视、控制系统的事件消息流。本文采用的就是这种方法,这种方法要求将所有的程序代码放入系统可以加载的动态链接库中。下面我们以键盘输入的监视和控制为例详细叙述这种方法。其总体思路如下:

首先,定义自己的钩子函数。

其次,安装自定义的钩子函数,此后钩子函数在后台开始工作。一旦系统发现击键动作或者鼠标动作,系统将马上调用该自定义的钩子函数,并将事件消息传入,供程序分析判断。它可以监视所有的击键和鼠标动作,与DOS时代的中断调用有非常相似的地方。

最后,卸载自定义的钩子函数。

钩子函数的定义

微软的钩子技术的原理就是应用程序可以在系统的消息处理机制上外挂一个子程序,在消息尚未到达目的地之前,用该子程序来截获此消息,以进行监视和控制。我们这里使用的是WH_KEYBOARD_LL类型的钩子函数,这种类型的钩子函数可以截获所有的键盘事件,即敲击键盘上的任何一个键,我们自定义的钩子函数都可以知道。该类型钩子函数要求安装自定义的钩子函数必须是以下原型:

LRESULTCALLBACKLowLevelKeyboard-

Proc(

intnCode,

WPARAMwParam,

LPARAMlParam

);

其中各参数的含义如下:

intnCode:用来决定钩子函数如何处理事件消息的代码,参数的取值为HC_ACTION时,参数wParam、lParam包含了所需的键盘消息事件信息。

WPARAMwParam:键盘消息事件的类型ID。该参数有四种可能的消息类型取值:WM_KEY-

DOWN,WM_KEYUP,WM_SYSKEYDOWN,WM_SYSKEYUP.

LPARAMlParam:指向一个类型为KBDLLHOOKSTRUCT的结构指针。该结构容纳了底层键盘输入事件的详细信息,它的定义如下:

typedefstructtagKBDLLHOOKSTRUCT{

DWORDvkCode;

//一个范围从1到254的虚拟键码

DWORDscanCode;

//键盘的硬件扫描码

DWORDflags;

//一系列的标志位

//0比特位指示该键是不是扩展键(如:功能键,或数字小键盘上的键),1表示是,0表示否

//1~3比特位保留

//4比特位用来区分该事件是否来自Win32函数keybd_event()调用,1表示是,0表示否

//5比特位为状态描述码,如果ALT键按下,该位是1,否则是0。

//6比特位保留。

//7比特位是变换状态位,键被按下为0,键被释放为1。

DWORDtime;

//该消息事件的时间标记。

DWORDdwExtraInfo;

//该消息的其他扩展信息。

}KBDLLHOOKSTRUCT,FAR*LPKBDLLHOOK

STRUCT,*PKBDLLHOOKSTRUCT;

实际的钩子函数的框架如下:

LRESULTCALLBACKMyLowLevelKeyboard

Proc(intnCode,WPARAMwParam,LPARAMlParam)

{

BOOLbSkipThisEvent=FALSE;

HWNDhwndForeground;

HWNDhwndFocus;

DWORDdwCurrentThreadId;

DWORDdwWindowThreadId;

if(nCode==HC_ACTION){

PKBDLLHOOKSTRUCTp=(PKBDLLHOOKSTRUCT)lParam;

//系统传递来的键盘输入事件信息指针

switch(wParam){

caseWM_SYSKEYUP:

caseWM_KEYUP://ifkeyup

/*这段代码用来获得当前拥有输入焦点的窗口的窗口句柄,以便获得该窗口的相关信息*/

/*获得前端窗口(即用户当前正在工作的窗口)的句柄,创建该窗口的线程通常拥有比其他线程稍微高一些的优先级。*/

hwndForegroud=::GetForegroundWindow();dwCurrentThreadId=::GetCurrentThreadId();//当前线程的Id

//获得产生前端窗口hwndForeground的线程Id值,用来惟一表示一个线程

dwWindowThreadId=::GetWindowThread-

ProcessId(hwndForegroud,NULL);

/*下面这一行代码非常重要,它的作用是使当前线程(dwCurrentThreadId)的输入处理机制依附到创建前端窗口的线程(dwWindowThreadId)的输入机制上,否则你将得不到当前拥有键盘输入焦点的窗口句柄。这是因为在WindowsNT/2000操作系统通常创建不同的线程来处理相互独立的输入过程,每一个输入过程都拥有自己的输入状态(焦点、键盘状态、队列状态等),通过AttachThreadInput调用,操作系统将允许调用线程获得或者设置其他线程生成窗口的输入状态信息。只有执行该系统调用,才能够得到当前拥有键盘输入焦点的窗口的窗口句柄,否则GetFocus()系统调用将返回NULL。在这一点上WindowsNT/2000与Windows9X操作系统有很大不同,这也正是WindowsNT/2000比Windows95/98操作系统可靠性、安全性更好的一个原因*/

AttachThreadInput(dwCurrentThreadId,dwWindowThreadId,TRUE);//

//获得拥有键盘输入焦点的窗口的窗口句柄

hwndFocus=::GetFocus();

if(hwndFocus||hwndForeground)

{

charwnm[256];

wnm[0]=0;

//变量定义后,使用之前一定要初始化。

//获得该窗口的窗口标题,就是在窗口标题栏上显示的内容

::GetWindowText(hwndForeground,wnm,255);

charclsnm[266];

clsnm[0]=0;

//获得该窗口的类名字

::GetClassName(hwndFocus,clsnm,255);

//获得该窗口的风格

LONGstyle=::GetWindowLong(hwfocus,GWL_STYLE);

/*如果你只对部分窗口感兴趣的话,可以通过下面的形式进行过滤,从而只处理你所感兴趣的某些窗口的输入事件*/

if((stricmp(clsnm,“edit”)==0)

||(0x0020&style)

||strstr(wnm,“MyTestWnd”))

{//你可以在此记录供以后分析使用的相关信息

LLKEY_OutputToLog(hwfore,hwfocus,wnm,clsnm,p);

}

}

caseWM_KEYDOWN:

caseWM_SYSKEYDOWN:

if(p->vkCode==VK_LWIN)

/*该行代码用来将键盘上的左Win系统键(就是带有微软旗帜图案的那个键,注意是左边的那个)屏蔽掉,如果在代码执行后,用户敲击键盘上的左Win系统键,将不会弹出Windows的开始菜单。你可以根据你的需要屏蔽任何你所要屏蔽的键,从而达到控制计算机使用的目的。*/

bSkipThisEvent=TRUE;

break;

}endofswitch

}//endofif

if(bSkipThisEvent)//如果是需要屏蔽的键,一定要返回1给操作系统,切记。

return1;

else

returnCallNextHookEx(NULL,nCode,wParam,lParam);

/*调用钩子函数链,以便使其他应用程序能够正常工作*/

}

这里需要注意的是,如果nCode小于零,钩子函数必须返回CallNextHookEx函数调用的返回值。如果nCode>=0,建议仍然返回CallNextHookEx函数调用的返回值,否则其他安装了WH_KEYBOARD_LL钩子函数的应用程序将收不到系统发送的钩子通知,从而使其他应用程序功能发生异常。不过我们也可以利用系统的这一个特点,来屏蔽一些功能键,禁止某些系统特性,实现控制计算机使用的想法。

安装钩子函数

接下来的工作就是将我们定义好的钩子函数安装到系统中。用来安装用户自定义钩子函数的Win32函数是SetWindowsHookEx,该函数的原型如下:

HHOOKSetWindowsHookEx(

intidHook,

//将要安装的钩子函数的钩子类型

HOOKPROClpfn,

//我们自定义的钩子函数的函数地址

HINSTANCEhMod,

//应用程序的实例句柄,即容纳了钩子函数的动态链接库的句柄。如果钩子函数所在地址空间在当前进程的地址空间,hMod应该为NULL.

DWORDdwThreadId

//钩子起作用的线程Id,如果该值为零,则对系统中所有线程都起作用

);

其中idHook指定了安装的钩子函数的类型,不同类型的钩子函数可完成不同应用功能,而且不同版本的Windows操作系统支持的钩子函数的种类也不尽相同,在本文我们主要介绍的是WindowsNT/2000操作系统中目前公开支持的最底层的两种钩子类型:WH_KEYBOARD_LL和WH_MOUSE_LL。这两种类型的钩子函数在WindowsNTServicesPack3及其以后的版本,包括Windows2000Professional中得到很好的支持。这两种类型的钩子函数可以分别监视底层的键盘和鼠标输入事件,在系统将事件分发到相应的接收目的地之前将它截获,交给用户自定义的钩子函数来处理。下面以键盘钩子为例详细说明,鼠标钩子与此类似,不再赘谈。

在这里,我们的安装函数和我们定义的钩子函数放在同一个动态链接库中。其中g_hWin32NT_

DllHandle是我们定义的全局变量,类型是Handle,在系统调用动态链接库的入口函数时,将hModule的值赋给g_hWin32NT_DllHandle。

//下面是动态链接库的入口函数

DllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved)

{

g_hWin32NT_DllHandle=hModule;

/*保存该值,以后在安装自定义钩子函数的时候要使用该值*/

returnTRUE;

}

//下面的函数用来安装我们自定义的钩子函数

HHOOKg_hhkLowLevelKybd;

//以后在卸载自定义钩子函数时,要用到该值

voidStartMyHook(void)

{

g_hhkLowLevelKybd=SetWindowsHook

Ex(WH_KEYBOARD_LL,

::MyLowLevelKeyboardProc,(HINSTANCE)g_hWin32NT_DllHandle,0);

}

/*g_hWin32NT_DllHandle是动态链接库的句柄,我们定义的钩子函数放在该动态链接库中。该句柄是在操作系统加载动态链接库时,由操作系统调用DllMain()传入的*/

如果安装成功,系统调用将返回一个钩子函数的句柄;如果失败,将返回NULL。将来在卸载我们自定义的钩子函数时要使用该句柄。所以必须将返回值保存到一个全局变量中。安装成功后,该函数返回。从现在开始,键盘的任何击键动作都将被我们定义的钩子函数捕捉到,包括各种系统功能键。操作系统在后台将自动异步地调用我们自定义的钩子函数进行处理,并且不会影响任何当前正在进行的各种工作,也不会对系统有任何不良影响。

卸载钩子函数

当我们的应用程序退出时,或者不再需要钩子函数的处理时,必须卸载我们自定义的钩子函数。

//下面的Win32函数用来卸载我们自定义的钩子函数

篇10

1在设计计算机通信与控制系统时要注意以下事项

(1)在对计算机通信与控制系统设计和配置时,要注意到系统的结构要紧凑,布局要合理,信号传输要简单直接。

在计算机通讯与控制系统的器件安装布局上,要充分注意到分散参数的影响和采用必要的屏蔽措施:对大功率器件散热的处理方法;消除由跳线、跨接线、独立器件平行安装产生的离散电容、离散电感的影响,合理利用辅助电源和去耦电路。

(2)计算机通信与控制系统本身要有很高的稳定性。

计算机通信与控制系统的稳定性,一方面取决于系统本身各级电路工作点的选择和各级间的耦合效果。特别是在小信号电路和功率推动级电路的级间耦合方面,更要重视匹配关系。另一方面取决于系统防止外界影响的能力,除系统本身要具有一定的防止外界电磁影响的能力外,还应采取防止外界电磁影响的措施。

(3)算机通信与控制系统防止外界电磁影响的措施,应在方案论证与设计时就给予充分考虑。

例如数字信号的采集传输,是采用脉冲调制器还是采用交流调制器,信号在放大时采用几级放大器,推动司服系统工作时采取何种功放,反馈信号的技术处理及接入环节,电路级间隔离的方法,器件安装时连接和接地要牢固可靠,避免接触不良造成影响,机房环境选择和布局避免强电磁场的影响等。

2排除电源电压波动给计算机通信与控制系统带来的影响

计算机通信与控制系统的核心就是计算机,计算机往往与强电系统共用一个电源。在强电系统中,大型设备的起、停等都将引起电源负载的急剧变化,也都将会对计算机通信与控制系统产生很大的影响;电源线或其它电子器件引线过长,在输变电过程中将会产生感应电动势。防止电源对计算机通信与控制系统的影响应采取如下措施:

(1)提高对计算机通信与控制系统供电电源的质量。

供电电源的功率因数低,对计算机通信与控制系统将产生很大的影响,为保证计算机通信与控制系统稳定可靠的工作,供电系统的功率因数不能低于0.9。

(2)采用独立的电源给计算机通信与控制系统供电。

应对计算机通信与控制系统的主要设备配备独立的供电电源。要求独立供电电源电压要稳定,无大的波动;系统负载不能过大,感性负载和容性负载要尽可能的少。

(3)对用电环境恶劣场所采取稳压方法。

对计算机等重要设备采用UPS电源。在稳压过程中要采用在线式调压器,不要使用变压器方式用继电器接头来控制的稳压器。

3防止由于外界因素对供电电源产生的传导影响

由于外界因素对电源产生的传导影响要采取以下措施。

3.1采用磁环方法

(1)用磁环防止传导电流的原理。

磁环是抑制电磁感应电流的元件,其抑制电磁感应电流的原理是:当电源线穿过磁环时,磁环可等效为一个串接在电回路中的可变电阻,其阻抗是角频率的函数。

即:Z二f/(ω)

从上式可以看出:随着角频率的增加其阻抗值再增大。

假设Zs是电源阻抗,ZL是负载阻抗,ZC是磁环的阻抗,其抑制效果为:DB=20Lg[(Zs+ZL+ZC/(ZS+ZL)]

从上述公式中可以看出,磁环抑制高频感生电流作用取决于两个因素:一是磁环的阻抗;另一个是电源阻抗和负载的大小。

(2)用磁环抑制传导电流的原则。

磁环的选用必须遵循两个原则:一是选用阻抗值较大的磁环:另一个是设法降低电源阻抗和负载阻抗的阻值。

3.2采用金属外壳电源滤波器消除高频感生电流,特别是在高频段具有良好的滤波作用电源滤波器的选取原则

对于民用产品,应在100KHZ一30MHZ这一频率范围内考虑滤波器的滤波性能。军用电源滤波器的选取依据GJBl51/152CE03,在GJBl51/152CE03中规定了传导高频电流的频率范围为15KHZ-50MHZ。

4抑制直流电源电磁辐射的方法

4.1利用跟随电压抑制器件抑制脉冲电压

跟随电压抑制器中的介质能够吸收高达数千伏安的脉冲功率,它的主要作用是,在反向应用条件下,当承受一个高能量的大脉冲时,其阻抗立即降至很低,允许大电流通过,同时把电压箝位在预定的电压值上。利用跟随电压抑制器的这一特性,脉冲电压被吸收,使计算机通信与控制系统也减少了脉冲电压带来的负面影响。

4.2使用无感电容器抑制高频感生电流

俗称“隔直通交”是电容器的基本特性,通常在每一个集成电路芯片的电源和地之间连接一个无感电容,将感生电流短路到地,用来消除感生电流带来的影响,使各集成电路芯片之间互不影响。

4.3利用陶瓷滤波器抑制由电磁辐射带来的影响

陶瓷滤波器是由陶瓷电容器和磁珠组成的T型滤波器,在一些比较重要集成电路的电源和地之间连接一个陶瓷滤波器,会很好起到抑制电磁辐射的作用。

5防止信号在传输线上受到电磁幅射的方法

(1)在计算机通信与控制系统中使用磁珠抑制电磁射。

磁珠主要适用于电源阻抗和负载阻抗都比较小的系统,主要用于抑制1MHZ以上的感生电流所产生的电磁幅射。选择磁珠也应注意信号的频率,也就是所选的磁珠不能影响信号的传输,磁珠的大小应与电流相适宜,以避免磁珠饱和。

(2)在计算机通信与控制系统中使用双芯互绞屏蔽电缆做为信号传输线,屏蔽外界的电磁辐射。

(3)在计算机通信与控制系统中采用光电隔离技术,减少前后级之间的互相影响。

(4)在计算机通信与控制系统中要使信号线远离动力线;电源线与信号线分开走线。输入信号与输出信号线分开走线;模拟信号线与数字信号线分开走线。

6防止司服系统中执行机构动作回馈的方法

6.1RC组成熄烬电路的方法

用电容器和电阻器串联起来接入继电器的接点上,电容器C把触点断开的电弧电压到达最大值的时间推迟到触点完全断开,用来抑制触点间放电。电阻R用来抑制触点闭合时的短路电流。

对于直流继电器,可选取:

R=Vdc/IL

C=IL*K

式中,Vdc:直流继电器工作电压。

I:感性负载工作电流。

K二0.5-lЧF/A

对于交流继电器,可选取:

R>0.5*UrmS

C二0.002-0.005(Pc/10)ЧF

式中,Urms:为交流继电器额定电压有效值。

篇11

在当前会计电算化影响下,会计人员不仅可以直接完成原始数据的收集、审核、编码、输入等操作,亦可通过计算机软件实现经济业务的记录和加工、会计报表的生成和查询等。传统的会计核算程序里,我们均是通过不同业务的衔接来连接不同岗位会计人员,以此在彼此之间形成一整套连贯的会计工作流程和完整的会计工作体系,这种模式下,各环节的会计工作都可以相互监督、相互控制,差错率会得到很好的控制。而且直观性很强,因为相关的会计文字、数据及关系都是以纸质文档的形式保存下来的,任何差错的查找和文字、数据的涂改都可以成为监督的措施;而相比之下,会计电算化操作中许多传统直观的痕迹、线索都已荡然无存,每个会计人员都是依靠特有的账号在计算机上来行使自己的工作权限,废弃或修改后的会计数据都难以再找寻,极易出现差错。除此之外,在电算化模式下还容易给会计人员造假提供空间,原因就在于大部分电算化软件都具备自动对账的功能,一定程度上给会计复核、审查工作带来了难度。

1.2会计电算化系统存在技术风险

会计电算化下,计算机作为财务系统数据的执行主体,一旦其出现输入操作方法不正确或者硬件运行故障,就会导致明细账目、总账账目甚至财务报表等一连串的数据差错,导致错误的输出数据。特别是在计算机的财务系统软件出现问题的时候,将会严重影响正常的会计工作的运行。除此之外,会计数据的安全性很容易受到威胁,因为数据库保存的格式是公开的,只要行为人懂得一些数据库操作知识,就能轻易登陆会计的帐套系统,对其中的数据进行恶意篡改,给企业的财务安全带来了隐患。

2强化会计电算化条件下的内部控制的对策

传统的会计内部控制制度已经不能适应新时期的发展要求,会计电算化环境下的会计工作对内部控制提出了更高的要求。因此,这就要求我们建立一套行之有效的会计电算化内控制度,保证各项会计工作的安全稳定进行,从而在根本上确保会计信息的真实性和准确性。

2.1优化健全企业组织结构,明确会计人员岗位权限及职能分工

为了防范和杜绝利用会计电算化软件系统的漏洞来破坏公司财务数据的现象,最有效的方法就是做到每个会计岗位分工都有明确的职责权限划分,并按照与之相对应的分配权限进行业务操作,形成一套设置合理、分工明确的制度规范来认真执行。其中,计算机软件权限管理有两个方面:用户名和密码管理、与岗位分工相匹配的权限管理,前者决定哪些用户可以登陆及使用系统进行操作,后者则决定用户具有哪些数据操作权限。在分工时,应做到岗位间权责统一、互相制约、互相监督,通过岗位分工审核及时发现和制止违法行为,从而防止出现内部作弊及犯罪。在当今企业财务管理过程中,很多公司都会根据内部审计需要和单位工作要求,设置出纳会计、结算会计、审计会计、主管会计等不同工作岗位,层层把关,严防财务舞弊行为。

2.2完善会计电算化系统的组织和控制工作

在会计电算化系统下,若要保证会计数据的完整性和逻辑性,就要求企业的数据库管理系统足够完善。因为在电算化模式下,相关会计数据的存储和处理都是依靠计算机进行的,企业计算机软件的数据库组织和控制功能的强弱就决定了对会计数据的输入、输出、调取和修改等操作的高低。比如发生经济业务事项后,会计电算化软件面对即将输入的会计数据将会有相应的控制程序来鉴别,监督其是否有不合理、不规范的经济业务事项产生,从而给予会计操作人员以提醒,使其及时更正输入的数据。当输入应收账款经济业务时,需要录入其所对应的原始凭证的编号等数据,若因一些人为原因带来的会计数据的不完整,则会产生一些相应的提示信息。与输入信息相对应,企业若想要确保会计数据的查询、打印、备份及网络传输等的准确性、方便性等,则须控制输出数据与输入数据是否相一致的核对,有时还需保证内容和格式的一致。

篇12

2项目安全风险控制

2.1决策阶段的风险控制

决策阶段风险事故还没有发生,因此要制定安全有效的措施控制潜在风险,主要包括以下几个方面:

2.1.1风险规避

对工程项目而言风险规避主要是通过变更项目的一些计划,消除原有计划中存在的风险因素或那些能产生风险的条件,从而达到保护项目正常进行避免遭到风险因素影响。在丙烯酸工程项目决策阶段通常是通过直接消除导致事故的风险因素和设置一定的保护应急措施来规避事件发生后的可能损失。

2.1.2风险减轻与转移

风险减轻是通过在风险事故发生前采取一定的有效措施减小风险事故发生概率的大小或者在风险事故发生之后通过一定的保护应急措施减小事故的损害程度,把风险事件发生的概率和事故后果减小到可接受的范围。

2.1.3分散控制措施

在丙烯酸及酯工程项目决策阶段,风险分散主要是通过增加承担风险的单位来减轻总体风险的措施。

2.2施工准备阶段的风险控制

项目施工准备阶段的风险主要包括建厂选址风险和工程设计方案以及合同拟定等方面风险。因此可以从以下几个方面进行风险控制:

2.2.1对丙烯酸及酯项目的技术、设备、工程方案严格审查,防止出现缺陷而导致工程变更或是施工索赔,使得投资增加以及工程造价难以掌控;

2.2.2明确招标范围,避免导致承包商投标报价不准等引发的合同争议;认真审查该项目工程清单编制避免出现遗项、错项而引起承包商索赔或者提高报价;

2.2.3认真拟定合同,明确合同款项权责利,以防止出现合同纠纷,或者过多地将风险转移至承包商,造成承包商履行合同不力。

2.3施工阶段的风险控制

风险管理的目的并不是完全的消除风险,只能够从项目实施过程中制定一些风险应对方案尽量减小风险的损失。在丙烯酸及酯工程项目施工阶段风险控制要结合施工安全控制、质量控制、工程技术控制。

2.3.1施工安全控制。在施工过程中,施工安全直接影响着施工的进度和成本,所以安全控制显得极为重要,主要包括对施工人员的教育培训、保证现场安全防护措施的完整性、确保劳保用品的正确使用等。

2.3.2质量控制。工程项目施工过程中的质量控制就是通过作业技术和活动来达到质量要求。为了有效的进行质量控制、监控和检查,对工程项目的一些要求要转换为定性和定量的指标。

2.3.3工程建设技术和进度控制

通过对以往的类似的工程项目研究来看,工程进度和建设是项目重点控制的风险因素。因此为了保证工程项目顺利的完成就要加大对工程建设技术和进度的控制。

2.4竣工验收阶段的风险控制

丙烯酸及酯工程项目的验收竣工是投资由建设转入生产、使用和运营的标志,是全面考核和检查建设工作是否符合设计要求和工程质量的重要环节。这一阶段的准确风险评价和采取的防控措施直接影响后期工作的顺利进行。通常采用以下方法进行控制:

2.4.1工程竣工验收管理。由于工程项目建设过程中一些整改措施落实不到位,整改计划执行不利等造成的项目本身存在的缺陷,从而导致项目不能达到竣工验收条件而引起的风险,因此应该加强合同的执行情况的预验收,并及时进行整改完善,来减小工程竣工验收的风险。

友情链接