程序改进

2024-10-16

程序改进(共9篇)

程序改进 篇1

0 引言

回答集程序设计ASP(Answer Set Programming)[1,2]是基于回答集语义的逻辑程序设计,它作为一种描述性的程序设计范例,目前已经成为知识表示和推理的一个有力工具。

现实世界中,人们对某领域的认知往往是不完整或不准确的,可能随着该领域的发展而过时,因此需要不断获取新的知识来调整自己的认知。然而,新获取的知识可能与原有的知识发生冲突,这时需要修正原有的知识,使其与新的知识相互协调,实现知识库的更新[3,4]。回答集程序设计作为一种描述性的问题解决框架,具有丰富的表达能力和较强的推理能力,是对知识库进行表示和推理的一种较好形式,因此知识库的更新可以通过回答集程序的更新来实现。

回答集程序的更新,即是将新的程序加入到已有的程序中,并消除程序之间可能存在的冲突,以得到一致的结果。近年来,关于逻辑程序更新方面的研究比较活跃,有许多学者对逻辑程序的更新方法进行了研究,2005年Y.Zhang[5]等学者提出了一个逻辑程序更新的框架,2010年J.P.Delgrande[6]提出了修正回答集程序的一种程序级别的方法,用于解决知识库的更新问题。

J.P.Delgrande所提出的程序级别修正方法的基本思想是,当程序Q更新P时,首先确定Q的一个“三值回答集”[6],它由正文字和负文字组成。正文字组成了一个常规回答集,而负文字组成了缺省非文字的一个最小集合。在更新过程中,Q的三值回答集中的文字,连同Q中的其他规则,被传递到程序P。

对于一个程序P,它的一个三值回答是X=(X+,X-)的形式,其中X+是P的一个常规回答集,X-是推导出回答集X+所必需的缺省非文字的最小集合。在更新过程中,三值回答集X将会对应一个规则集:

其中,⊥表示空。当程序P对其他程序进行更新时,将把Pgm(X)∪P传递给被更新程序,以对被更新程序产生影响。

通过上述J.P.Delgrande的程序修正方法可以实现回答集程序的更新,然而,该方法的更新结果存在对原程序的过度修正问题。

例如,对于如下的回答集程序:

当P2更新P1时,如果使用该方法,可以得到P2的三值回答集是({a},{b}),它表示P2的回答集是{a},而{b}是推导出该回答集所需的带有not的文字的最小集合,即表示该回答集依赖于b为假的假设。因此,需要在P2更新P1时要求b为假,从而得到最终的更新结果是c←not d,a←not b,即删除了事实规则b←。然而在客观理解中,如果没有出现对已成立事实的直接否定,它应该被保留在最后的更新结果中,因此这里出现了对原程序的过度修正,即删除了不需要删除的规则。

因此,为了获得更好的更新效果,本文提出了一种新的方法来实现回答集程序的更新。该方法在更新过程中不会产生对原程序的过度修正问题,可以得到较好的更新结果,从而实现更好的对动态知识库进行表示和推理。

1 回答集程序的更新

1.1 相关概念

本文所提出的回答集程序更新方法是基于扩展的逻辑程序[2]进行更新。

扩展的逻辑程序定义为如下规则的集合:

其中,n≥m≥0,每个Li(0≤i≤n)是一个文字(原子或者原子的非)。我们用head(r)表示规则r的头部,body(r)表示r的体部,并且定义

假设回答集程序P1表示原有的知识,程序P2表示新得到的知识,回答集程序的更新,即是将新的回答集程序加入到原有的程序中,并消除程序之间可能存在的不一致,最后得到一致的更新结果。

本文在更新过程中所讨论的不一致是指,程序的回答集中存在互补的文字,即L和形式的文字同时出现在程序的回答集中。

1.2 更新方法

假设P1和P2是扩展的逻辑程序,其中P2表示新获取的知识,P1表示原有的知识,本文的更新方法研究怎样用P2更新P1,使得更新的结果保持一致。

当程序P2更新P1时,由于P2表示新获取的知识,新知识的优先级高于原有的知识,因此P2的优先级高于P1,在处理不一致时,应该优先考虑P2中的规则。为了引入优先级,我们对于文字L引入一个相应的文字new-L,规定new-L的优先级高于L。然而,仅仅通过new-L引入优先级是不够的,仍会出现对原程序的过度修正问题。因此,我们引入惯性规则的定义:对于P1中每个规则的头部文字L,定义规则new-L←L,notnew-L,称它为惯性规则。

为了表示程序的更新过程,我们定义如下“变形程序”的概念。

定义1假设P1和P2是扩展的逻辑程序,当P2更新P1时,为了表示更新过程,定义“变形程序”Trans(P1,P2),它由如下三种规则组成:

(1)r,如果r∈P1;

(2)new-L0←new-L1,…,new-Lm,not new-Lm+1,…,not new-Ln,如果L0←L1,…,Lm,not Lm+1,…,not Ln∈P2。其中,将该形式的规则集合记为P'2,它是P2的一个变形。

(3)惯性规则new-L←L,notnew-L,如果L∈head(r)且r∈P1。

如上可以看出,Trans(P1,P2)由P1中的规则、P'2中的规则以及惯性规则组成。

为了对变形程序进行变换,我们定义规则废除的概念:

定义2假设П是一个扩展的逻辑程序,r是任意的一条规则,那么规则r被П废除,当且仅当对于П的一个回答集X,存在文字L∈X,并且L∈body-(r)。

我们考虑如何对Trans(P1,P2)做变换。当P2更新P1时,如果P2中存在体部含有not L的规则r,那么P'2中相应规则r'的体部含有not new-L,即r'依赖于not new-L的成立,然而如果已知文字L在P1中成立,那么由于not new-L具有高优先级,会使得L在更新结果中被删除,这就造成了对原程序的过度修正,为了解决该问题,我们可以利用惯性规则废除该规则r',消除该规则对L的影响,从而防止对原程序产生过度修正。

下面定义“中间程序”和“推论集”的概念,实现对变形程序的变换。

定义3当P2更新P1时,对于变形程序Trans(P1,P2)中属于P'2的某些规则r,如果r被Trans(P1,P2)-{r}所废除,那么从Trans(P1,P2)中删除该规则r。经过该变换后的规则集合记为M(P1,P2),称它为关于P2更新P1的“中间程序”,它的回答集记为C(P1,P2),称为关于P2更新P1的“推论集”。

例如,考虑如下的两个程序:

当P2更新P1时,相应的变形程序Trans(P1,P2)为:

对于P'2中的规则r:new-B←not new-B,相应于Trans(P1,P2)-{r}的回答集是{B,C,A,new-A,new-B,new-C},由于new-B属于该回答集,且new-B属于body-(r)。因此由定义2,规则r被Trans(P1,P2)-{r}所废除。从而得到关于P2更新P1的中间程序M(P1,P2)为:

它的回答集即为推论集C(P1,P2):{A,new-A,B,new-B,C,new-C}。

由定义3可知,“推论集”C(P1,P2)是中间程序的回答集,它包含L和new-L形式的文字,其中L形式的文字代表P1的推论,而new-L形式的文字具有较高优先级,代表P2更新P1后的推论。如果L和new-L同时出现在推论集中,则表示L在P1中成立,而L在最终的更新结果中成立,这表明P1中存在与P2不一致的规则,且该规则的头部为L。因此,通过比较推论集中的L和new-L形式的文字,可以对P1做变换,消除其中与P2不一致的规则。

因此我们对P1做变换,从而得到更新结果的定义:

定义4当P2更新P1时,如果推论集C(P1,P2)中同时包含L和new-L,而且P1中存在头部为L的规则r,那么从P1中删除该规则,经过该变换后的P1记为P'1,它消除了与P2不一致的规则。P2更新P1的结果程序即为P'1∪P2,记为P1*P2。

上述更新方法给出了如何实现程序P2对P1的一次更新,记为P1*P2。更一般的,该更新方法可以扩展到多次更新的情况,我们用P1*P2*P3*…*Pn来表示一个更新序列,其更新结果可以通过((P1*P2)*P3)*…*Pn得出。

2 应用

在本节中,我们用一个实例来说明本文所提出的回答集程序更新方法在知识库更新中的应用。

如下的回答集程序描述了一个学校图书馆的图书借阅权限,它控制了普通访客和学生对图书的借阅:

权限知识库中的原始权限信息表示为P1:

如果现在加入了一些新的信息,表示为P2:

此时需要对权限知识库进行更新,这可以通过程序P2更新P1来实现,下面我们使用本文的更新方法。

首先,由定义1得到相应的变形程序Trans(P1,P2)为:

然后对Trans(P1,P2)进行变换:

可以得出,规则r:new-student(Ann)←not new-student(Ann)被Trans(P1,P2)-{r}所废除。因此将r从Trans(P1,P2)中删除,可以得到中间程序M(P1,P2)。

求M(P1,P2)的回答集,可以得到关于P2更新P1的推论集,其中同时包含new-borrow(Jake)和borrow(Jake),因此存在不一致,由定义4,需要从P1中删除规则borrow(Jake)←guest(Jake)以得到P'1。

最后得到P2更新P1的结果程序为:

然而,在本例中如果使用J.P.Delgrande的更新方法,将会使得规则student(Ann)←被删除,此时出现了对原程序的过度修正,与客观不符。由此看出,本文的更新方法消除了过度修正的问题,可以得到较好的更新结果。

3 结语

在实际应用中,知识库中的信息可能发生动态改变,需要及时进行知识更新。通过回答集程序的更新可以实现知识库的更新,并确保更新结果的一致性。

本文提出了一种新的方法来更新回答集程序,以解决J.P.Delgrande的方法中存在的对原程序过度修正的问题。本文的方法通过new标记引入优先级,通过利用惯性规则消除了过度修正,实现了回答集程序的更新,因此,该方法可以获得较好的更新效果,有利于表达动态知识库的更新问题。

需要说明的一点是,由于现存的回答集推理机(Smodels,DLV等)功能的局限性,所以本文暂未探讨如何利用回答集推理机来实现本文的更新过程,更新方法目前仍存在于算法层面,我们会在后续研究如何将该方法融入回答集推理机的求解步骤中,以实现更新过程。此外,在以后的研究中,我们还将考虑把不确定性因素如概率[7,8,9]加入到回答集程序的更新问题中,研究不确定性信息的更新问题,以更好地实现知识的表示和推理。

摘要:回答集程序设计是一种描述性的程序设计范例,目前已经成为知识表示和推理的一个有力工具。在实际应用中,知识库中的信息可能发生动态改变,因此需要及时对知识进行更新。通过回答集程序的更新可以实现知识库的更新,并确保更新结果的一致性。J.P.Delgrande的程序修正方法可以实现回答集程序的更新,然而该方法中存在对原程序过度修正的问题。针对该问题,提出一种新的方法来更新回答集程序,该方法通过引入优先级和惯性规则的机制,实现了回答集程序的更新。实验结果表明,该方法克服了过度修正的问题,效果良好。最后,以一个实例说明了该方法的应用。

关键词:回答集程序,知识库,更新,过度修正,优先级,惯性规则

参考文献

[1]Gelfond M,Lifschitz V.The stable model semantics for logic programming[C]//Kowalski R,Bowen K.Logic Programming:Proc.5th International Conference and Symposium,1988:1070-1080.

[2]Gelfond M,Lifschitz V.Classical Negation in Logic Programs and Disjunctive Databases[J].New Generation Computing,1991,9(3):365-385.

[3]Alferes J J,Leite J A,Pereira L M,et al.Dynamic updates of non-monotonic knowledge bases[J].Logic Programming,2000,45(1-3):43-70.

[4]Sefránek J.Updates of argumentation frameworks[C]//Proceedings of the 14th International Workshop on Non-Monotonic Reasoning,2012:1-9.

[5]Zhang Y,Foo N.A unified framework for representing logic program updates[C]//Proceedings of the Twentieth National Conference on Artificial Intelligence(AAAI 2005),AAAI Press/The MIT Press,2005:707-713.

[6]James P Delgrande.A Program-Level Approach to Revising Logic Programs under the Answer Set Semantics[J].Theory and Practice of Logic Programming,2010,10(4-6):565-580.

[7]Saad E,Pontelli E.Hybrid probabilistic logic programs with non-monotonic negation[C]//Logic Programming,21st International Conference,2005:204-220.

[8]Saad E,Pontelli E.A new approach to hybrid probabilistic logic programs[J].Annals of Mathematics and Artificial Intelligence Journal,2006,48(3-4):187-243.

[9]王洁,鞠实儿.概率逻辑程序[J].计算机科学,2003,30(7):1-3.

程序改进 篇2

对已发生的不合格或不期望发生的情况应采取纠正措施,以实现持续改进。2 范围

适用于本公司对已发生不合格所采取改进措施的控制。3 职责

3.1 工程部是本程序的归口部门,负责改进措施的跟踪与验证。

3.2 各部门负责做好本部门改进措施,配合工程部实施全公司性改进措施的实施。4 工作程序

4.1 工程部根据情况定期对产品不合格报告和顾客的意见(包括顾客抱怨)等与产品有关的不合格内容进行分析,对影响重大或反复出现的不合格,填写“整改通知单”,通知责任部门。

4.2 责任部门接到整改通知单通知单后,制定改进措施实施计划,内容包括:消除不合格原因的具体办法、步骤、负责人和完成期限等,改进措施计划报主管副总经理批准。

4.3 责任部门负责实施改进措施并记录实施过程及结果。

4.4 工程部负责对改进措施的实施效果进行验证。对于确实有效果的改进作永久性更改,对效果不理想的应重新制定措施直到满意为止。并负责将改进措施的有关信息提交管理评审。

4.5 内审、管理评审中发现的不合格,由综合部负责组织跟踪验证。4.6 采取改进措施,应权衡利益、风险与成本。5 记录

水阻柜控制程序的完善与改进 篇3

1 水阻柜工作原理

主电动机开关柜合闸后, 水阻柜也得电, 水箱内的动极板自上而下开始运行, 在设定的时间 (启动时间) 内串接在主电动机转子回路内的电阻值逐渐下降, 当动极板碰到下限接近开关时, 转子短接真空接触器吸合, 转子短接, 主电动机启动完成。

2 故障现象

跳停故障发生时, 有两种表现: (1) 主电动机启动时, 水阻柜备妥信号消失, 动极板开始下行的同时, 短接真空接触器动作, 短接了电动机转子, 造成电动机直接启动, 因启动电流过大, 速断保护跳停; (2) 主电动机开始启动时, 水阻柜备妥信号消失, 动极板开始向下运行, 正常工作时动极板运行时间应为35s, 但此时却在20s左右吸合了真空接触器, 水阻柜没有完成软启动过程, 造成电动机启动电流过大, 速断保护跳停。

3 原因分析

通过对水阻柜故障和正常时的运行状态分析看出, 造成电动机速断保护跳停的原因均为动极板未能按设计流程正常运行, 且产生了虚假的信号吸合了真空接触器, 强制启动高压电动机, 造成电动机启动电流过高, 从而速断保护动作。故障时, 一种表现为电动机直接硬启动, 水阻柜根本没有起到作用;另一种表现为动极板运行时间未到, 水电阻阻值还没有降到最小, 就短接了真空断路器。

为此, 我们对水阻柜及其控制系统进行了认真检查和分析。从多台水阻柜PLC中下载的程序分析中发现, PLC程序设计过于简单, 没有设计防跳保护功能是造成以上故障的主要原因。

如图1所示, 程序中短接真空接触器需要的条件为手自动转换开关I0.6打在自动位置且下限接近开关I0.1断开就可以驱动真空接触器。在实际生产中I0.1就是极板运行的下限位置接近开关, 取常闭点, 即极板运行到最底部碰到下限接近开关时使I0.1由常闭变常开, 就可以短接真空接触器, 完成一次软启动任务。但因触点老化或启动时高压电产生干扰等情况下, 常会导致I0.1出现闪烁, 此时无论动极板处于任何位置都会直接短接真空接触器, 如果动极板正处于水箱较上部分, 就会出现因动静极板之间阻值较大, 电动机由软启动变成直接启动, 从而引发速断, 对电动机造成大电流冲击。查明原因后, 除更换新的接近开关外, 我们对程序进行了修改, 见图2。

在短接真空接触器之前增加了一个先决条件T50, 即当启动命令I0.5闭合后触发接通延时定时器T50, 30s后T50闭合了才允许在下限接近开关I0.1断开时吸合真空接触器。在水阻柜启动后的30s内不允许短接真空接触器。30s的设定时间可根据动极板的运行位置进行调整, 一般只要稍小于动极板正常运行时间即可。这样就可以避免真空接触器在任意时间吸合而造成速断跳停。

4 改进效果

纠正、预防和改进措施控制程序 篇4

以纠正措施和预防措施的实施等方式实现持续改进,改善产品的特性和提高质量环境职业健康安全管理体系的有效性,以增强顾客满意的机会。2 适用范围

适用于本公司纠正和预防措施实施的控制。3 相关文件

《不合格品控制程序》

《文件和记录控制程序》

《管理评审控制程序》

《数据分析控制程序》

《监视和测量控制程序》 4 职责

4.1 公司综合管理办公室是本程序的编制、修改并实施归口管理的部门。当发现存在或潜中不合格(质量、环境、职业健康安全等问题)时,发出相应的《纠正措施实施报告》或《预防措施实施报告》,并跟踪验证。

4.2 各部门和工程队均是本程序的配合及实施单位,负责实施相应的纠正措施和预防措施。5 工和程序

5.1 持续改进的基本途径和方式

为寻求进一步改进的机会,既要开展日常渐进的改进活动,也可通过突破性的项目实现改进。

5.1.1 通过质量环境职业健康安全方针的建立与实现,营造一个激励改进的氛围和环境。

5.1.2 建立质量环境职业健康安全目标以明确改进的方向。

5.1.3 通过数据分析、内部审核,不断寻示改进的机会,并做出适当的改活动安排。

5.1.4 实施纠正措施和预防措施以及其他适用的措施实现改进。5.1.5 在管理评审中评价改进效果,确定新的改进目标和改进的决定。5.2 纠正措施 5.2.1 纠正措施含义

纠正措施是指“为消除已发现的不合格或其他不期望情况的原因所有取的措施”。也就针对现时已经发生的不合格产生的原因,采取消除这个或这些原因的措施,使不合格不会复发生。应注意纠正措施和纠正的区别。5.2.2 实施纠正措施的步骤

(1)识别和评审不合格,包括质量环境职业健康安全管理体系动作方面和施工质量方面的不合格,特别应当注意顾客(业主)和交付工程的使用者的抱怨,包括对顾客投拆、申拆和意见的收集和识别;

(2)通过调查分析,确定不合格原因;

(3)评价确保不合格不再发生的纠正措施的需求;

(4)确定并实施这些纠正措施;(1)跟踪并记录纠正措施的结果;

(2)评价纠正措施的有效性。对于富有成效的改进措施做出永久性更改; 对于效果不明确的,有必要采取进一步的分析和改进。5.2.3 纠正措施实施要求

(1)要善于发现不合格,不断寻找差距,抓住改进机会,提高施工管理水平。要特别注意来自顾客的投拆、申诉、意见和建议,对于内审和管理评审发现的不合格及施工中发生的系统性、严重性不合格,均是纠正和改进的内容。

(2)对于来自顾客或本公司内部提供的不合格事实,填写在《纠正措施实施报告》的“不合格事实”一栏内,用简单、明确的文字进行描述,并经提供人和责任人签名确认。

(3)确定不合格原因。将产生不合格事实的准确原因写入《纠正措施实施报告》的相应栏内;如果有主观原因以外的其他(例如相关部门的工作不到位等)方面原因,也应将其原因写清楚。

(4)针对原因制定并实施消除原因的具体措施;如果有其他原因,则相关部门应同时制定相应的纠正措施并实施,写入《纠正措施实施报告》的相应栏内。

应权衡风险、利益和成本,以确定适宜的纠正措施。

(5)跟踪纠正措施的实施结果,并对其有效性进行评价和验证。对于建筑施工产品质量方面的纠正措施,由工程质量部负责跟踪验证;属于质量环境职业健康安全管理体系运行方面的改进措施,由公司综合管理办公室负责跟踪验证。

(6)如果经过验证确已消除了不合格原因并纠正了不合格,则应修改相应文件,以便作永久性更改,以防止不合格重复发生,执行《文件和记录控制程序》中的有关规定。若纠正措施效果不佳或无效果,则要进一步分析原因和改进。跟踪和验证记录应填写在《纠正措施实施报告》的相应栏内。5.3 预防措施

5.3.1 预防措施的含义

程序改进 篇5

秦皇岛港煤四期扩容工程的15号变电所PLC需要和3台取料机、2台装船机、2台堆料机以及中控进行通信,多数信息通过PLC程序中的MSG指令完成。经过6年多运行,系统原有设计暴露出一些问题,当通信网络不良时,MSG通信环路有时出现>20s的死环状态(通信停止),此时MSG环路上各条MSG语句均会停止传输,导致变电所与上述煤炭运输设备的通信中断。尽管通信故障时间较短(大约二十几秒),但依然会给设备正常使用及安全运行带来隐患。如地面皮带故障停机时若通信异常,则取料机将无法接收到地面皮带已经停止的信号而继续取料作业,导致发生堵斗事故。为此修改变电所MSG通信程序,防止MSG通信死环发生,确保设备安全、正常使用。

2. 程序改进步骤

(1)通过分析变电所MSG通信程序(图1),得到MSG的通信环路(图2)。

(2)针对实际工作过程中一些疑似和通信有关的故障,添加程序(图3),跟踪MSG通信情况,发现故障规律。通过分析图3程序捕捉到的故障规律,表明15号变电所MSG通信环路有时确实出现死环故障,故障原因可能与通信网络信号及传输量有关。MSG通信死环故障出现时,环路上所有通信全部终止,需要23s后由语句11中的标签“Q_IOT14[243].TT”复位故障,恢复MSG通信环路的正常通信,但是这二十几秒通信故障时间会给设备运行带来很大隐患。

(3)在通信环路增加1个3s的触发脉冲,这样即使出现通信死环,也可在3s内复位故障,确保各项通信正常进行。 (1) 在PLC中添加程序(图4),实现1个脉冲/3s的功能。 (2) 将3s的脉冲触发信号“Q_IOT14[263].DN”串入11语句(图1虚线框)。

合成气压缩机PLC程序改进 篇6

在PLC的工作过程中, 当跳车故障信号较多时, 发现系统不能对跳车信号进行优先级分辨, 无法准确判断故障信号的来源。为此, 该公司技术人员决定对PLC的程序进行改进, 以保证分析跳车故障的准确性。

1 停车联锁

该装置的合成氨压缩机组的PLC共设有停车联锁15个, 其中的4个没有单独的指示灯, 其余的跳车信号都设有单独的跳车灯。15个跳车信号报警时, CA-4504系统公共跳车指示灯同时报警。4个没有指示灯的停车联锁是现场操作间急停按钮 (Trip) 、现场急停按钮 (Stop) 、主汽门关闭 (ZS-4551) 和中心控制室停车按钮 (HS-4551) 。联锁跳车程序如图1所示, 其中T021为W505开车保护节点。系统正常开车时03909、03000和03609常闭节点闭合、03715常开节点闭合、03002常闭节点闭合、15100常开节点闭合、03308、03009、15205和03303常闭节点闭合, 15000线圈带电, 干气密封的4个节点闭合, 15001线圈带电, 15000常开节点闭合、15001常开节点闭合, 15002线圈带电, 15002常开节点闭合。03900常开节点在开车前点动闭合后15003线圈带电, 并通过15003常开节点形成自保回路, 15003另一常开节点闭合后为主跳车继电器CR21和CR22供电, 以保证主跳车电磁阀正常打开, 系统正常运行。任何一个节点断开后15003都失电, 导致主跳车电磁阀失电系统跳车。

为了保证压缩机能够正常停车, 程序还设计了如图2所示的505外部循环跳车程序, 03912常开节点是W505超斜率开关, 03907常开节点是外部转速表500转反馈开关, 正常运行时03912常开节点断开、03907常开节点闭合、总跳车15003常开节点闭合、T22常闭节点闭合、总跳车15003常闭节点断开、T022时间继电器掉电、T22常闭节点闭合、04105常开节点闭合, 系统正常运行。当有跳车信号发生时, 总跳车15003线圈失电, 15003常闭节点闭合, T022时间继电器带电延时3s后, T22常闭节点断开, 04105线圈失电, 04105常开节点断开控制外部继电器CR41动作送给W505一个跳车信号, 启动W505跳车程序。因此, 无论是W505本身跳车, 还是外部的跳车信号, 都会给W505一个外部跳车信号使W505再次跳车。当有跳车信号发生时, 光字牌至少会显示W505跳车和CA-4504系统跳车, 当跳车信号由Trip、HS-4551、Stop、ZS-4551发出时, 光字牌只会显示W505跳车和CA-4504系统跳车, 无法判断跳车信号源。

2 程序改进

由于光字牌已经没有冗余点来增加未显示的信号点, 并且即使增加了光字牌, 在发生跳车后至少会有3个光字牌同时亮, 也较难判断信号来源。

仔细观察研究后发现, C200H的输出I/O卡有一个卡件处于备用状态, 故利用该卡件编制了一个捕捉程序, 通过该程序可以确定第一跳车信号源, 并锁死程序, 只有系统正常运行后才能进行复位, 杜绝了意外复位导致捕获程序丢失的情况, 并且不影响正常开车。笔者编制的部分程序如下:

改进后的PLC梯形逻辑如图3所示, 假如03000常开点闭合信号通过04702~04715的常闭节点送到04701线圈, 04701线圈带电, 04701常开触点闭合, 通过03003常闭节点构成自锁回路保持04701带电。这时如果有其他跳车信号进入, 由于其余14个回路皆由04701常闭节点 (这时已断开) 控制, 因而其线圈无法带电。必须要等到复位时, 系统开车后, 按下03003复位按钮, 使03003线圈带电, 其常闭节点03003断开, 由此断开04701自保回路使其失电, 系统回到正常捕捉状态。表1为15个指示灯对应的I/O节点和中文标识, 通过它可以快速确定第一跳车信号源。

3 结束语

笔者对黑龙江黑化集团 (股份) 有限公司尿素厂1830尿素装置的合成氨2BCH509型压缩机组的OMRON C200H PLC的跳车逻辑进行了分析, 找出了存在的问题, 并且在不增加或更换硬件的情况下, 只改进了部分PLC内部程序, 利用冗余输出模块的指示灯表示跳车优先级, 解决了跳车故障较多时无法分辨跳车信号优先级、不能准确判断故障信号源的问题。目前, 程序运行良好, 这种改进措施既解决了问题又为企业节约了资金。

摘要:针对某合成气压缩机组的OMRN C200H PLC逻辑控制在使用中跳车故障信号较多时, 不能对跳车信号进行优先级分辨, 无法准确判断故障信号来源的问题, 对PLC的程序进行改进后, 系统能够优先选出第一跳车信号, 保证了分析跳车故障的准确性。

程序改进 篇7

关键词:经口气管插管,口腔护理,操作程序

临床上机械通气病人通常采用经口或经鼻方式行气管插管, 由于前者操作简单、创伤小、并发症少, 目前临床上在抢救急危重症病人时, 经常采用经口腔气管插管。经口腔气管插管的病人口腔内留置有管腔较大的气管导管和辅助固定的牙垫, 固定导管与牙垫的胶布又阻碍了进入口腔内的通道。给这样的病人做口腔护理如按常规程序操作很难完成, 达不到护理的预期目标, 极易导致口腔并发症的发生。我们在护理实践中逐渐摸索, 对口腔护理操作程序进行了改进, 应用于临床收到良好的效果, 现将此方法介绍如下。

1备品

治疗碗2个, 分别盛装无菌纱布球、生理盐水、漱口液、牙垫、石蜡油及棉签、压舌板、10mL注射器 (去针头) 、吸引器及连接管、吸痰管、胶布、毛巾、听诊器、手电。

2操作方法

2.1做好病人的心理护理, 对神志清醒的病人应说明目的以取得合作。昏迷病人注意约束合理、确实。

2.2检查气管导管套囊是否完好, 确认气道封闭良好后, 进行充分吸痰。

2.3两人同时操作, 操作者与助手分别站于病人两侧, 毛巾围于颈部胸前, 先将固定气管导管的胶布取下, 取出牙垫, 助手以左手固定气管导管, 确认导管刻度, 操作者以吸引器吸净口腔内存留的分泌物之后将吸引器管备于病人口边。

2.4操作者先用生理盐水纱布球擦试口唇两颊并以压舌板暴露牙齿, 擦拭牙齿各面, 特别注意齿缝内滞留的残渣, 助手以右手拿注射器抽取生理盐水10mL, 注入病人口腔进行冲洗, 操作者及时吸出, 如此反复, 直至吸出的冲洗液澄清。

2.5用手电检查口腔粘膜情况, 如有溃疡、出血等改变, 可适当选取不同药物进行涂抹, 口唇涂油保护。

2.6将新牙垫置入口腔, 以胶布重新固定气管导管, 听诊肺呼吸音与操作前比较。

2.7撤去毛巾并清理用物。

3 讨论

3.1经口气管插管机械通气病人多数维持在镇静状态, 各种反射减弱, 如气管导管对气道封闭不全, 口腔护理液有可能流入气管而病人无呛咳或呛咳不明显, 易造成误吸。因此, 操作前一定对气管导管的套囊情况反复检查, 确认无漏气, 气道封闭良好, 方可操作。

3.2经口气管插管的病人口腔活动模式改变, 不能闭口、咀嚼和语言交流, 口腔粘膜干燥, 而且多数伴有水电解质平衡失调, 口腔内p H值改变, 这些条件均可导致感染机会增多[1], 因此可在做口腔护理前用PH试纸测试口腔中唾液的p H值, 从而根据情况选取不同酸碱度的口腔护理液, 以求将口腔内的pH值维持在正常范围内。

3.3对于口腔护理溶液的选择除根据口腔内酸碱度以外, 对已有不同程度不同细菌感染的病人应视感染情况来选择口腔护理溶液, 口腔内有出血或出现口臭时, 可选用1%~3%的过氧化氢溶液或0.1%~0.2%甲硝唑溶液, 对于长时间应用抗生素而导致口腔霉菌感染的病人, 可选用1%~4%的碳酸氢钠溶液, 对于经培养证实口腔有绿脓杆菌感染的病人, 则应选择0.1%的醋酸溶液, 此外, 2%~3%硼酸溶液和0.02%呋喃西林溶液则有抑菌和广谱抗菌的作用[2]。

3.4气管插管的位置至关重要, 正确的位置可以保证有效的机械通气。正常成人气管导管应插入20cm~26cm, 即从唇到气管中段的距离, 位置过浅导管容易脱出, 位置过深则进入一侧支气管 (尤其是右侧支气管) 造成单侧肺通气或直对隆突, 气流刺激发生呛咳等反应[3]。因此, 操作前应记录导管位置刻度, 操作后将气管导管调整至原刻度位置, 同时要观察胸廓起伏运动, 并听诊肺部呼吸音与操作前比较。

3.5口腔护理操作过程中必须密切观察患者的呼吸、心率、血压、血氧饱和度的变化, 若有变化应及时查明原因, 及时处理。操作程序要连贯、流畅、节省时间、以求减少对病人的刺激, 对于躁动的病人, 按医嘱给予镇静剂, 以防导管脱出等意外发生, 并备好气管插管用物。

总之, 对经口气管插管病人通过上述方法进行口腔护理, 患者的口腔清洁度明显改善, 起到了预防口腔感染及通过口腔下行感染的目的。

参考文献

[1]沈佩章.昏迷病人口腔酸碱度与口腔护理[J].中华护理杂志, 1998, 33 (9) :5502.

[2]刘美玲.临床护理指南[M].武汉:武汉出版社.

程序改进 篇8

关键词:S7300 PLC,设备,程序,故障,改进

1问题的提出

淮安市第二污水处理厂自控系统两台西门子S7300 PLC站 (每台PLC站由主框架及若干远程IO机架组成) 和中控室上位机通过光钎构成10 Mbs/100 Mbs环形以太网, 全厂所有工艺设备、在线仪表等就近接入两个PLC站。

2015年3月中旬, 中控室操作人员发现, 两个站所控制的多台设备无论是在远程手动控制还是远程自动状态, 均出现无故停机现象, 有时几分钟停1次, 有时几小时停1次, 无规律。维护人员现场检查和PLC有关的接线、更换有关模块, 甚至更换CPU后, 问题依旧。PLC程序未曾修改, PLC上LED指示灯显示也始终正常。

笔者首先将STEP7和PLC在线, 对硬件进行在线诊断, 确认PLC所有硬件正常, PLC CPU故障诊断缓冲区也无运行异常信息记录。据此初步判断, 故障原因应该是逻辑输入异常引起逻辑输出异常动作, 如某台设备正常运行时某个逻辑输入条件必须为1或0, 若变为0或1则停机。实际运行中这个输入可能因某种原因在0和1之间异常跳动, 跳动时间极短, 依靠肉眼及万用表无法测量捕捉。为此, 笔者编制1个捕捉逻辑输入异常跳动的程序并下载至PLC, 监控疑似故障点, 最后找到了异常跳动的点位。同时根据西门子输入模块线路图、现场PLC接线图, 用万用表在现场进行了测试, 也找到了这些异常跳动的原因。改进PLC输入部分接线, 改进后, 设备至今再未出现异常停机现象。尽管每台设备运行规律不同, 梯形图程序也不完全一样, 但是程序中有相似部分。下面以该厂1#反冲洗鼓风机为例, 针对该厂所有设备梯形图中共有相似部分, 介绍故障处理过程及改进措施。本例中虽涉及的是西门子S7300PLC, 但这种减小输入模块引线电缆电磁感应电压干扰的方法也适用于其他品牌PLC。

2故障处理实例

2.1 1#反冲洗鼓风机远程手/自动控制部分梯形图 (图1)

该厂所有设备梯形图均有手/自动控制部分, 并且手/自动控制部分梯形图逻辑相同, 不同的设备只是传给逻辑快FC10的实际输入/输出参数不一样。图1中S_permit和S_fault为输入型形式参数, S_hand、S_auto和S_workmode为输入输出型形式参数, S_cmd为输出型形式参数;I0.0、I0.1、DB11DBX0.0、DB11.DBX0.1、DB11.DBX0.2和Q0.0为上述形式参数对应的实际参数。I0.0来自1#反冲洗鼓风机控制柜中现场远程转换开关, I0.1来自控制柜中故障检测器;DB11.DBX0.0与上位机组态软件相连, 上位机可以通过该位远程手动停止启动设备;DB11.DBX0.1为远程自动运行命令。针对不同设备运行规律要求, 还有不同的逻辑程序计算得到不同设备远程自动状态运行命令, 因与本文关系不大, 故未列出。DB11DBX0.2与上位机组态软件相连, 为设备远程手/自动运行选择;Q0.0连接输出继电器, 该继电器常开触点控制设备运行。实际上, FC10是所有设备共有部分, 全厂每一台设备控制都要调用FC10, 只不过不同的设备在上述形式参数处输入不同的实际参数。

当将该反冲洗鼓风机现场/远程开关转换到远程 (I0.0为1) , 该风机无故障 (I0.1为0) 。在上位机组态画面中选定该设备为远程手动运行 (DB11.DBX0.2为0) , 从上位机启动风机 (DB11.DBX0.0为1) , 从图1可以看出, Q0.0为1, 风机启动运行。在监控程序过程中发现, 确实存在Q0.0无故断开现象。怀疑可能是I0.0或I0.1瞬间跳动引起Q0.0断开。从图1中FC10内部梯形图可以看出, I0.0瞬间变为0或I0.1瞬间变为1, 会复位上位机远程手动命令DB11.DBX0.0及远程自动运行命令DB11.DBX0.1, 从而引起设备停机, 可能这一瞬间跳动时间很短, 在程序监控画面来不及反映。

2.2输入异常跳动捕捉程序

在PLC OB1中编制1个小程序 (图2) 并下载到PLC中。若I0.0始终为1, I0.1始终为0, 则这段捕捉程序运行后计数器C0和C1的累计值会始终为0。图2中16#0000和16#0014是这段瞬间跳动捕捉程序在一段时间内运行后得出的结果, 从而可初步得出I0.0不存在异常跳动现象, I0.1异常瞬间跳动。结合图1可以看出, I0.1瞬间跳动变为1就复位了远程手动启动命令、远程自动启动命令, 导致无输出。

2.3故障处理

I0.1是设备控制柜中送给PLC的设备故障信号, 反复检查设备故障检测器, 确认无问题, 但是风机异常停机现象依然存在。西门子S7300 PLC数字量输入模块电路及与现场信号连接电路见图3, 其中, M点为输入模块信号电路公共点, 该点悬浮, E点为控制系统集成时厂家做的接地点, 24 V电源为外接输入通道驱动直流电源, A为1#反冲洗鼓风机现场控制柜中现场/远程转换开关, B为控制柜中风机故障信号, 在无故障远程启动时A闭合、B断开。A、B到PLC站距离大约150 m, 由多芯控制电缆相连。

从PLC端子拆下接往I0.1端口的电缆, 然后运行图2的开关量瞬间跳动捕捉程序, 在相当长一段时间后, 计数器C1再也没有记录到跳动信号。从PLC柜中端子拆下I0.1后, 由于B点正常情况是打开的, 这根缆线两端就处于悬浮状态。使用万用表测量其对地电压, 发现有100多伏对地电压, 最终确认, 由于E点接地, 这个忽强忽弱的电磁感应电压和S7300输入模块输入通道电阻、发光二极管构成回路, 造成数字量输入模块输入发光二极管瞬间导通。断开A点, 将I0.0从PLC端子处断开, 这根缆线两端悬浮后用万用表也测到了几十伏对地感应电压。而且发现, 任意一根连接设备现场到PLC数字量输入端子的缆线, 只要两端悬浮, 都能测到对地从几十伏到100多大小不等的感应电压。

按照上述方法逐一检查几台异常停机设备, 确认均是由设备故障回路到PLC数字量端口连线电磁感应电压引起。当初项目自控集成时, 要求所有现场设备故障信号逻辑0为正常, 1为设备故障。结合图3可以看出, 设备正常无故障时B打开, 从B到I0.1端子的电缆线一端即悬浮, 就可能有电磁感应电压影响。

掀开电缆沟盖板后, 发现电缆沟中动力电缆与信号电缆有数千根, 虽然在大多数地方信号电缆与动力电缆分层排放, 但是在个别地方信号与动力电缆靠的比较近甚至有纠缠到一起现象, 信号电缆的电磁环境相当差, 现场也无法能使信号电缆再远离一点动力电缆。

为此, 改进PLC接线柜接线 (图4) , 在PLC接线柜电缆线进入每一个输入通道的端子上用电容接地, 一旦触点A或者B断开, 电缆线一端悬浮产生感应电压, 则通过电容C泄放掉了。电容可以选用0.1~0.47μF、DC 24 V, 本例选用电容值0.1μF。

程序改进 篇9

随着计算机行业的迅猛发展,从90年代开始,各大院校广泛地招收计算机专业的学生,各类短期计算机培训班也不断涌现。计算机行业的学生由以前用人单位的宠儿变为现在的人员过剩。这一点可以明显地从毕业生在应聘时的待遇以及招聘单位提供的薪资上看出。本科独立学院的学生位于一个较为尴尬的处境,即上有博士、研究生、下有大专院校、高职生以及培训班毕业生的夹缝中。那么我们计算机专业毕业生就业的出路在那里呢?

我国现在缺少大量的软件蓝领,也就是编写模块代码的人员。据了解,现在诸如IBM这样的大型企业,其程序员大多为印度人,现在,印度已成为仅次于美国的第二大软件出口大国,软件出口额占全球市场份额的20%。其实中国在人才储备上也并不逊于印度,这一工种完全可以由我国本土的计算机专业毕业生担任;而因为研究生更倾向于划分模块等系统分析工作,而仅经过短期培训的学生又很少能够熟练地编写代码,对于软件企业来说,在程序员岗位的用人选择上无需选择学历过高的研究性人员,但同时又希望招聘熟练工,以最快的速度适应软件生产并创造效益。因此,软件蓝领岗位成为我们独立学院计算机专业毕业生与其他学生竞争的一条出路。

2 VB课程教学现状与实际软件行业岗位要求之间存在的差距

对于大学本科的程序设计教学来说,通常会使用C语言、C++、VB等作为教学的主体,近几年来,学生有将VB作为二级考试首选的趋势,这主要是因为相较于C语言,VB较容易上手,同时目前还属于主流的编程语言之一。而且由于其面向对象以及可视化的特性,学生能够直观地看到自己编程的结果,帮助其确认其程序的正确性。一般的教材通常都重视对编程语言的理论说明,包括其语法及数据结构的解释和示例,教师所选用的示例也通常是诸如简单求和等的小程序,这样的讲解的确能够让学生快速了解控件或语法的应用方法,但是也存在一定的误区,即在学生毕业后,他们会发现所学知识与其在软件公司中需要参与的项目间有很大的差距,学的用不上,用上的又没学,从而无法达到在软件行业承担项目工作的要求。就笔者以当年在计算机专业学习并进入软件公司的经验来看,很多学生有可能由于没有打好扎实的基础而导致在工作后需要花费几倍的时间来恶补并且研究项目程序,以完成项目经理分配的任务。作为教师,当然希望学生能够在学习阶段就做好一切准备,从而能够顺利地进入软件行业。因此认为可以在程序设计的教学环节进行一些改进。

在传统的本科VB教学中,教师比较重视对编程语言根本性的传授,期望学生能够从VB的核心理论开始学习,而恰恰忽视了实践性活动的开展。这就造成了学生在学完了一门编程语言课程后却并不具备利用这种语言来解决实际问题的能力。教学和实际的工作实践是脱节的,从而会让学生感觉编程语言的学习枯燥无味,无法激发其学习兴趣,直接影响最终的教学效果。

作为应用软件,VB对于解决实际问题有用吗?调查反馈如下:

选择答案B、C、D的人数占了近80%。这说明大部分的学生完全不会或无法熟练运用VB解决实际问题,或者根本没有尝试过。笔者曾在招聘会现场看到某学生在应聘软件公司的职位时与招聘人员的对话,招聘人员问该学生单独编写应用程序的经验,该学生信心满满地回答“我曾经用XX语言编写程序,大概有上百行代码”,该招聘人员轻蔑地笑笑,“上百行代码在我们看来根本谈不上程序,只能算是小练习而已。”该学生十分尴尬,其信心无疑在某种程度上受到了打击。这种现状的造成与平时缺少实例教学,教学与生产实际脱节有直接的关联。其实不仅学生,某些教师本身也从未参与过软件行业的真正工作,他们所获得的知识也仅仅来自于课堂,顶多是自己在读研过程中所进行的项目编程体验,从而他们在教学中采用的也还是属于以理论为主的方式,这样培养出来的学生还会延续以前高分低能的路线,对就业极为不利。

3 解决对策

教学法1:实例教学法

该法从娱乐性入手,抓住学生的眼球,培养学生自主钻研编程的兴趣,提高学习效果。

歌德曾说“哪里没有兴趣,哪里就没有记忆”,这句话对于形容我们的程序设计教学来说恰如其分。很多学生对于程序设计课程的理解仅仅是“学编程”,至于究竟是学什么,如何学以及有什么作用完全不了解,从而在学习过程中提不起兴趣,也没有自主钻研的动力,这对于这门需要花费大量时间研究和深入的学科来说是背道而驰的。独立学院中的部分学生计算机基础较差,学生使用电脑多数都仅限于玩游戏和上网,因此在首次接触程序设计时会无法理解,进而会有人反映看编程书籍宛如天书,越到后面(尤其是数组等章节)越听不懂,上机操作也无法完成任务,从而产生畏惧心理,形成恶性循环,最终想要放弃编程,这一情况带有一定的普遍性。

因此,作为教师,首先要让学生意识到他们选择的这一专业的特点是什么。这一专业与其他行业的区别之处最主要在于需要高智力投入,不可避免地需要从业人员花费大量的时间(包括在正常工作8小时以外的时间)钻研。但如果没有兴趣和动力,则不可能自发地在课外或下班后学习,因而培养兴趣是重中之重。如何有效地做到这一点呢?大家都有这样的体会,在讲授理论知识时,学生听课时间一长就会散漫,最后就会无法坚持而分心,而此时教师如果说一些小笑话则会引起学生的注意,结果造成某些学生在课程结束后,对于知识点都没有记住,但对于老师所说的笑话却历历在目。这是因为在他们看来这些笑话有意思,他就会有意愿去听并且在谈论时进一步记忆和深入。那么我们就可以在程序设计的教学中采用一些能够让学生觉得有意思的方式,比如用幽默的情节来引出编程语法的知识点,还可以找一些小游戏,比如俄罗斯方块、扫雷等,甚至是一些较大型的枪战题材比如Reity的《精英战警2》或RPG类型的3D游戏(如图1)等给学生试玩,并告知学生这些游戏都是采用VB编写的,并可以介绍VB的面向对象的思想在游戏开发中的运用,从而让学生了解到学习这门课决不是为了应付考试,而是真的可以做一些有意思的事情,而且还可以用来赚取利润。了解了编程语言的实用性,学生就会逐渐产生自主学习的欲望,而这是传统教学无法给予的。

教学法2:实用教学法

该法基于学生现状,从生活简单实例入手,树立学生学习VB课程的信心。

由于很多学生基础较差,不可能要求他们编写出上万行的代码或者复杂的算法,学生普遍对编程产生恐惧就是由于缺乏成功的体验,没有自信心。实际上,人们的兴趣源于成就感或快感。快感即来自于上述的娱乐性,而成就感则来自于某些超过常人的举动,比如学生爱玩网络游戏的原因之一就在于能够在虚拟世界中获得较高的地位,打出别人没有的宝物,这就是其追求成就感的体现。

那么我们就可以在其学习过程中,通过分派一些小型的项目,比如记事本程序、商品销售系统、股票软件的公式编写等在生活中有实用性的项目,让学生发现“原来我也可以做到”,从而逐步树立起自信心。这样的小型编程任务应步骤简单、算法明显、应用知识点有一定使用价值,但必须要设计一些算法且需要一定的工作量才可实现,并且能够解决实际问题,这样当学生完成后能够获得成就感。同时,还可以给出一些较为复杂的问题,而让学生一时无法解决,然后教师再给予指导完成项目,让学生了解到钻研的重要性及其知识的不足,从而愿意通过利用书籍或网络来获得更多的知识。

教学法3:项目教学法

该法按照软件行业的生产模式,逐步深入,完成最终产品,与软件工作密切相关。

计算机专业的学生在毕业后所面临的是进入软件公司参与实际项目的开发,所以在VB教学过程中,以一个项目为主线进行逐步深入教学是较好的方法。当然这需要教师自身具备一定的软件行业从业经验,可以选择其曾经参与过的或者较为流行的某种项目,在适当简化之后将该命题交给学生,让学生从无到有建立起软件的框架,并逐步进行完善。例如:很多学生都喜欢聊天,因此可以选用设计一个“简易的QQ登录框“作为实例,让学生模拟腾讯的QQ聊天软件编写登录界面,这样做可以让学生快速了解所需完成项目的基本功能和对界面需求的直观印象。

在提出命题后,即对该项目进行需求分析和可行性研究,让学生了解到在真正的软件开发中,需要大量的前期工作以提高效率并避免在后期编程中产生不必要的错误。让学生对该项目如何才能够满足用户的需求,可补充哪些功能或应做何种更正提出各自的观点,促进学生的创造性和主观能动性。

接着进行总体设计和详细设计,在教师的指导下,令学生将整个项目细分为若干子窗体,明确各个窗体的作用并安排布局;而在详细设计中,则根据每个子窗体所需的知识点选择典型的简单实例进行教学,从各知识点的单一使用到最终综合应用逐步深入,比如某个窗体的界面设计、控件及属性设置、各控件功能及事件处理机制,并完成代码的编写。

比如:对于窗体,如何在登录界面的标题栏左端放置一个小小的QQ图标?如何能够按照用户选择改变窗体背景颜色?如何加载图片?如何禁用窗体右上角的“最大化”按钮?通过这些问题使学生加深对Icon、Backcolor、Picture、Maxbutton等属性的理解。而对于QQ密码框,我们在登录QQ的过程中需要输入密码验证,而通常不会显示所输入的密码字符,如何实现这一效果?以此问题强调在编写软件(尤其是网络应用)时对安全性的考虑,让学生理解Passwordchar属性的实际用途。

在代码编写过程中:1)一开始可以给出部分代码,让学生理解每条语句的含义;2)让学生进行改写并观察效果;3)鼓励学生提出自己的意见并尝试。对于普遍存在的共性问题,教师可以统一示范和解决,并鼓励学生通过各种渠道去收集资料和解决问题。

比如:QQ的号码框中能否输入文字?为何设计为仅能输入数字?如何实现这一要求?在讲解时,可以引入软件编写过程中对于用户在输入错误时的处理方式,同时可以强调“测试”对于软件开发的重要性。可运行软件并输入错误,让学生查看所出现的错误提示,并加以讨论。可给出参考代码:

在项目开展过程中,应让学生了解在实际软件行业中所使用的规范和模式,介绍一些作为软件从业人员应该掌握的经验之谈。比如如何命名控件,以及变量和函数的命名方法等,很多学生喜欢使用中文甚至汉语拼音来命名,还有很多较差的习惯。就此情况,应在教学初期就提醒学生尽可能使用规范的英文命名方式,为代码添加适当的注释,增加可维护性;并适当使用空格和缩进,使代码布局更加清晰便于阅读。

在各窗体完成后令各小组分别进行模块测试和联调,让学生意识到VB程序错误的类型(编译错误、运行错误和逻辑错误)、原因以及所带来的影响,比如产生“变量未定义”的原因是控件的属性名称与代码中引用的名称不相符,可修改属性中的Name属性,也可修改程序中的代码;以及应该如何调试,比如如何设置断点、使用逐句调试、以及如何在中断状态下查看变量值等,调试过程实际上也是一个对所编写的软件相关知识进一步巩固的过程。

在经过调试后,让学生提交一份他们自认为可以作为产品的软件,上机运行并答辩,将答辩成绩作为期末成绩的一部分。在答辩过程中着重于学生详细说明开发和调试过程中所遇到的问题和解决方法,强化其使用VB程序解决实际问题的能力,改变毕业生高分低能的状况。

教学法4:分层次教学法

学生的水平各有不同,教学中应根据学生的个体差异,做到有的放矢。比如有些同学喜欢编程,而有些则对此非常头疼甚至厌烦,因此顺应不同学生的学习需要,发挥其实践能力和创新精神在教学过程中需要兼顾。

笔者采用的方法是在实践教学中,给学生分派的上机编程任务中既包含所有人均必须完成的基础题目,同时又包含一些附加题,这些附加题基本以历年计算机二级VB的考题为主,并辅以一些需要额外知识的小项目,比如图形化的游戏的编写,这样一方面可以兼顾到普通学生,帮助学生顺利通过二级考试,同时也可以充分发挥优秀学生的潜力,使他们得到提高和锻炼。

4教学效果调查

如表1所示,在试行了一段时间后,笔者对学生又再次进行了一次有关教学效果的调查。

根据反馈能够看出,学生明显对于改进后的教学方法更加适应至少他们对自己所学专业的就业方向有了明确的目标,从而会为这个目标而自觉地学习,并在与他人的讨论过程中更快地进步,而且由于了解了软件行业的运作模式,从而在毕业后能够比其他人更快地适应岗位的要求,改进过的教学方法获得了较积极的结果。

5 总结

在VB的教学过程中,教师需要结合实际情况和教学要求,以学生为主体选择适当的教学方法,并且不断加以改进以取得更佳的教学效果,抓住学生感兴趣的主题,合理组织项目实践教学,以当前软件行业模式为依据,介绍最新的软件开发技术并指出与所学知识点之间的关联,从而使学生消除对程序设计的恐惧感,并能够自主学习和探索,从而对其就业提供了一个良好的前景。

参考文献

[1]王琦.VB教学中的问题与对策[J].电脑学习,2008,6(3):56.

[2]孙力红.互动教学,激发学生潜能[J].计算机教育,2006(12).

上一篇:重庆信息产业集群下一篇:循环型企业