科学网

 找回密码
  注册

tag 标签: 调试

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

关于软件开发的几点看法
热度 1 dulizhi95 2011-2-18 21:29
关于软件开发的几点看法 就计算机科学专业而言,从学生到老师,从最底层的开发人员到最高层的研究大师,最终的目标还是要开发出软件产品来,故从教学到研究,一切都需围绕这个轴心转。在此,本人以个人经验及思索,谈几点看法,欢迎同行专家指正。 曾经在一个课堂上要求学生提问,强调涉及到思路的给我提,涉及到背概念和方法的自己去查,不要问我。当时正值熊猫烧香病毒爆发,有学生要求我向他们详细讲解熊猫烧香病毒,当然,带点刁难之意。记得我的回答要点如下: 1 ,开发者只是一个中专生,说该病毒有多深不可测,需要多高的水平和实力肯定谈不上; 2 ,他在该类型病毒这一点上肯定深入进去了,且具有复杂思路的构思能力,并有某种程度的创造力,智商肯定不低; 3 ,我对病毒没有研究,但你们若能提供该病毒的源代码,我相信自己能很快读通,然后随意修改,并能写出杀毒软件。 我举此例是想说明,复杂思路的构思能力,读懂和模仿别人的能力,以及沿某点深入下去的能力,对软件开发人员而言至关重要。 这里以个人愚见列举软件开发最难突破的三个方面,也就是说,作为学习者,针对这三个方面去努力培训自己的能力,肯定是正确的方向。 1, 综合调试大软件的能力。对一个大而复杂的软件,由多个小组开发出各个模块,每个小组都认为自己做得很好,不会有问题,集成调试时却问题百出,这时极少有人能掌控整个大软件,能把它调试顺畅。 2, bug 问题。有些 bug 非常难解决。 3, 性能问题。主要是速度、内存消耗和容量问题。一些有高手开发的成熟软件,往往在这些方面做得相当优美。但用户可能依然对性能不满意,要求显著改进。此时你能不能由发散思维想到别人通常想不到的方法,显著改善性能。 大家知道,软件开发往往是谁都会做,一个刚毕业的很普通的学生,到了软件公司后,大体也能搞软件开发,但要做好上述三点,恐非易事。
2545 次阅读|1 个评论
[转载]A/A/O工艺调试运行体会
anan 2010-11-30 14:52
摘要: 根据实际工程调试遇到的问题,从理论和实践上对A/A/O工艺调试及运行模式作了探讨,结合各污水厂水质、水量特点和不同的处理设施,对A/A/O工艺运行中各工艺控制参数进行了系统分析和有效控制,并就调试过程遇到的问题谈几点体会,为新建和将建污水厂的运行 管 理人员提供参考。 关键词: A/A/O工艺,调试运行,溶解氧,污泥龄 A/A/O工艺是由厌氧池/缺氧池/好氧池/沉淀池系统所构成,是在A/O除磷工艺基础上,在厌氧反应器之后增设一个缺氧反应器,并使好氧反应器中的混合液回流至缺氧反应器,使之反硝化脱 氮 。污水首先进入厌氧反应器,兼性发酵细菌将 废水 中的可生物降解大分子有机物转化为小分子发酵产物,如VFA;混合液进入缺氧反应器后,反硝化细菌就利用好氧反应器中经混合液回流而带来的硝酸盐和 废水 中可生物降解有机物进行反硝化,达到同时去除有机碳与脱 氮 之目的。随着 废水 进入好氧反应器,聚磷菌除了吸收、利用 废水 中残余的可生物降解有机物外,主要是分解体内贮积的PHB,放出能量以摄取环境中的溶解性磷,并以聚磷的形式在体内贮存起来,实现自身的生长繁殖,并通过剩余污泥排放,将磷去除。 A/A/O工艺由于具有同时除磷脱 氮 功能,近年来被广泛应用于新建城市污水处理厂中。根据笔者对几个新建城市污水厂调式过程遇到的问题,谈几点感受和体会。 1调试运行前的检查 调试前对构筑物、设备等进行认真检查是非常重要和必要的,在所有调试的污水厂中发现以下问题较普遍: (1)构筑物、 管 道内的建筑垃圾未清理干净,造成水 泵 和曝气系统的堵塞,影响排泥。 (2)预留孔洞、 管 道伸缩缝、电缆穿孔处密封不好,通水后存在漏水现象,影响调试工作。 (3)出水堰和墙体接缝处渗漏严重,甚至导致堰口不出水,无法达到设计要求。 (4)搅拌器或推进器安置角度不正确或位置不合理,导致能量浪费和局部流速不足,造成局部污泥沉积。 因此,为了解决上述问题,在污水厂通水调试前,必须进行细致的检查,确保各构筑物、 管 道线路和机电设备能够按设计要求运行。 2调试过程各因素合理控制 由于各城市的气候与城市污水水质、水量的不同,需要充分利用工艺特点并结合运行环境对各运行参数进行有效调控。 2.1气候及水温 由于各城市地理环境不同,其气候、气温也不一样。对于南方城市,四季温差较小,年平均水温约20℃,夏季最高水温约29℃,冬季最低月平均水温15℃。一般来说,水温15℃对于微生物处理效率影响不大,一年四季都可以进行调试。在北方地区,冬季气温均低于8℃,水温低于15℃。如西北某污水处理厂调试是在1112月进行的,当时气温8℃以下,水温12℃,虽然可以进行培菌工作,但水质处理效率降低,培菌工作时间延长。因此,在北方最好避免冬季进行污水调试。 2.2入流水质及水量 对于一些环境基础设施薄弱,清污不分的城市,普遍存在污水增长迅速,而污水截留率及集中处理率低,污水处理能力不足的现象。对于一些 工业 城市,如调试中的南方某污水厂,水质成分复杂,难降解,有毒物质含量高,且水质波动大,从而影响活性污泥系统的正常运行,如污泥膨胀、污泥中毒等。因此,对于新投产的污水厂,要使工艺运行稳定,必须收集完整的基础资料,尤其是城市现状水质资料。另外要求工艺调试人员善于把握进水水量、水质特点,观测在线pH变化,每天进行微生物镜检,以便及时进行工艺调整,如采取增大污泥龄、减少排泥量、加大回流比、提高溶解氧等措施。 2.3自控方面的运用 在自控方面,污水厂采用微机控制 管 理系统分散检测和控制,集中显示和 管 理,各种设备均可根据污水水质、流量等参数自动调节运转台数或运行时间。但在一些污水厂的自控方面投资较大,实际运用意义却不大。因此,污水厂的软件应达到以下几点要求: (1)软件做到功能全面,画面简洁,易读、操作方便,易于掌握。 (2)软件必须可靠、实用,易于修改,且要考虑到现场可能出现的各种特殊情况,如电动闸阀和水 泵 的联动开机;在局部位置设置自动控制系统,如由进水 泵 房的水位来控制水 泵 的运转等。 (3)软件实现实时数据采集、实时和历史趋势显示、显示报警 管 理、用户综合报表等功能。一般包括:污水处理工艺流程图、仪表显示图、空气总流量实时趋势图、污水总流量实时趋势图和历史趋势图,故障报警的实时查询及记录,报表系统可打印班组报表、月报、年报等。 因此,有一套好的自控软件,不仅在调试阶段大大减少调试人员的工作强度,改善污水厂的内部 管 理,满足工艺要求,而且可使整个污水处理系统在较经济状态下运行。 2.4构筑物及设备的特性 一般来说构筑物和设备已经选定,不可能变动,但充分利用构筑物及设备的特性进行工艺调整也是缩短调试时间的要素。 (1)实现最优化的动力组合。如根据进水 泵 的型号流量不一致的问题,可依据进水量进行水 泵 开启台数的组合;对于搅拌器和具有推进作用的曝气装置可以进行合理组合,保证充氧和搅拌的适宜。 (2)利用氧化沟可调堰板进行间歇式的进水、曝气、静沉、滗水等培菌操作和调整氧化沟的流态和溶解氧的分布。利用超越阀及各阀门的切换进行活性污泥在系统内的转移调整控制。 (3)实现合理的排泥。根据集液池液位计、泥位计等仪表进行剩余 泵 的开启。根据脱水机的特性进行排泥控制,保证进入脱水机的污泥性能符合脱水设备污泥工艺要求。 2.5人员培训 由于污水厂刚进入启动运行,操作人员缺乏对污水处理过程的了解,不能对系统进行及时调整,将延长调试时间。因此,要求操作人员对本厂的工艺流程及各构筑物和设备的作用有初步了解;其次,对设备操作及易出现故障的设备进行及时排除故障的培训,保证设备正常运行;对化验人员进行活性污泥培养驯化效果的培训。由于化验人员对取样时间、位置和分析操作不熟练等原因,造成了化验项目不全面,结果不连续,准确率低等问题,这也会影响调试的进程。 3调试过程的工艺参数控制 3.1溶解氧 在活性污泥培养初期,微生物未增长,需氧量少,因此将供气量调小,甚至可以通过空气排水阀放掉部分空气,防止曝气池上出现过多的泡沫。如果泡沫量过大,影响调试运行,可采用间歇曝气,一般停曝气时间控制在4~8h之间,同时观察曝气池内污泥的颜色和气味,正常的污泥颜色为黄褐色,泥腥味,当发生供氧不足或厌氧,泥色变为黑色,并有污泥上浮的现象,此时必须进行曝气。 3.2活性污泥的生物相 在生活污水中,存在着大量微生物,当曝气池内的钟虫、累枝虫增多,并且出现楯纤虫、固着型纤毛虫等多种原生动物(一般1周可出现以上情况),表明活性污泥基本成熟。随着活性污泥增长,大约2~3周后可发现一些轮虫、线虫等后生动物,表明活性污泥完全成熟。 3.3污泥增长量计算 污泥的增长需要一个过程,污泥的增长量的计算可粗略的按进水BOD5的40%(包括内源呼吸及氧化消耗的量),再加上截留进水SS总污染量即是在生物系统内活性污泥的总量。这些污泥分布在厌氧池、A/O池以及二沉池的污泥内。当曝气池内的活性污泥量达到1000~1500mg/L浓度、沉降比为10%左右时,污泥培养过程基本完成。 3.4回流比 在试运行初期,回流比可控制到100%~200%,以便保证二沉池内的污泥及时回流。当微生物增长到一定阶段时,调整回流比在100%以下。SVI在50~100mL/g时,可使外回流比降至50%~60%。另外以沉降曲线为依据,在保证二沉池内不出现硝化和释磷的前提下进行回流比控制。 4A/O脱 氮 最优的运行 管 理 4.1对溶解氧的控制要求 对于A/A/O工艺,厌氧池、好氧段的溶解氧是保证聚磷菌对磷的充分释放与吸收的重要条件;控制缺氧段、好氧段的溶解氧值是影响硝化与反硝化是否彻底脱 氮 的一个重要因素。 (1)一般好氧段溶解氧控制在1.5~2.5mg/L之间。如果好氧区溶解氧下降,说明曝气不足。 (2)缺氧段溶解氧控制在0.5mg/L以下,如果溶解氧较高,说明内回流比值过大。 (3)厌氧池中的溶解氧控制在0.2mg/L以下。当出现溶解氧过高,检查外回流比配置是否合理或者搅拌强度是否过大导致将空气中的氧复原至水中。 4.2F/M(BOD负荷)控制 在污水厂调试初期,由于活性污泥数量不足,BOD5负荷大于0.3kgBOD5/(kgMLVSSd),BOD5去除率低,脱 氮 效果不足30%,当BOD5负荷逐渐接近0.3kgBOD5/(kgMLVSSd),BOD5去除率可达90%,硝化效率明显提高,脱 氮 效果可达到70%。当系统污泥负荷继续降低到0.15kgBOD5/(kgMLVSSd)时,脱 氮 效率变化不大,这是由于有机物和 氮 的比值一定的缘故。当BOD5负荷小于0.1kgBOD5/(kgMLVSSd)时,BOD5去除率及脱 氮 效率反而降低。这是由于进水有机物少,微生物处于饥饿衰老状态,活性污泥絮体解体,絮凝性变差,沉降性能恶化,导致出水混浊。因此,在实际运行中保持适中的污泥负荷是有必要的。 一般A/A/O工艺BOD5负荷变化控制在0.10~0.30kgBOD5/(kgMLVSSd)范围,属低负荷运行工艺。在此范围内,BOD5去除率可达90%,脱 氮 效率70%以上。 4.3污泥龄的控制 对于A/A/O工艺,污泥龄的控制是脱 氮 除磷运行的重要参数。当进水量及水质恒定时,需要合理控制剩余污泥的排放量,调节MLSS的浓度。通常在冬季运行时控制MLSS在3500mg/L左右,污泥负荷为0.1kgBOD5/(kgMLVSSd)左右,SRT控制在12d左右;在夏季运行时控制MLSS在2000mg/L左右的低浓度运行,污泥负荷为0.18kgBOD5/(kgMLVSSd)左右,SRT控制在8d以下运行效果较好。 5建议 A/A/O工艺具有较好的耐冲击负荷能力,出水水质较稳定,可以进行脱 氮 除磷,但硝化菌、反硝化菌和聚磷菌在有机负荷、泥龄以及碳源需求上存在着矛盾和竞争,很难在同一系统中长期获得 氮 、磷的高效去除;同时A/A/O工艺存在着碳源不足和回流混合液中硝酸盐进入厌氧区干扰除磷的问题。因此,要获得同时脱 氮 除磷的良好效果,运行时需精心调配,如在桂林某污水处理厂运行中出水能达到保持在TP1mg/L,TN15mg/L,BOD510mg/L,SS20mg/L,CODCr30mg/L,NH3-N10mg/L,NO3-N3mg/L的较佳稳定效果。另外在A/A/O工艺中应避免选用重力式污泥浓缩池,同时应加强污泥脱水工作,使剩余污泥及时脱水,防止上清液及脱水机的滤液中的磷重新回流到进水 泵 前的集水池内,导致磷在处理系统内循环。
个人分类: 环境保护|2900 次阅读|0 个评论
VC学习经验总结-------我的VC之路
dulizhi95 2010-10-31 09:36
VC 学习经验总结 ------- 我的 VC 之路 在美学计算机的中国学生,大都拿了个 Master 就去找工作,我也是如此。倒是面试过几家大公司,可人家与我口语一对话,就基本上准备否了(其实按我的情况,应很适合去包含复杂计算的大公司做算法设计,只是口语不行推销不了自己那也没办法)。后来去一小公司面试,不料碰到一在美同校比我早毕业的女同学,我曾对人称之为整个本地区中国女孩里的第一位。她马上告诉我,她先生在这里负责 VC 组,她先生是我在国内的校友,比我晚几届,但早到美国,他们肯定帮我的忙,录用应该问题不大。老板也是这样说, Chinese 之间好沟通,若录用以后就在他手下做。几天后有电话来通知我去上班。 我当时的情况是,复杂思路的构思能力很强大,用 C 编写调试很复杂的程序也很溜,但 VC 的确一窍不通。在我那位校友老弟(我称他为师傅)手下做 VC ,主要是几个软件的维护,每个软件约十万条语句大小。后来读通了那几个程序后,我发现老外的面向对象程序写得真漂亮、精炼!而我自己的面向对象程序往往按面向过程来写。刚开始,师傅几乎是一步一步教我学 VC 的,很快要我加一些小功能,告诉我在什么地方加代码,在什么地方取数据,将数据传给谁等。当然我进展飞快是自然的。但,半年之内,我一直离不开师傅,关键是出了较麻烦的 Bug 搞不动。最后多次到这样的地步:我说肯定不是我的问题,是系统的问题,我的程序不可能有问题,但师傅帮我一调,结果还是我的问题! 在师傅手下做一直很轻松愉快,也很自由,我是一有问题就跑到他办公室去找他,由于互相理解对方都极快,随后往往又谈笑一番,以至于旁边办公室的老美看到这两个老中这么快乐,都投来羡慕的目光。不过,也有过一次与师傅大吵的经历。那天他不知怎么心情不好,很粗暴地训斥我。尽管师傅有恩于我,且是我的顶头上级,但杜某从来受不得气,当即以粗暴和高声与他对干,他那位美丽出众的太太就在旁边办公室,同学近一年她当然很了解我:她先生 VC 厉害,但吵架绝不是我的对手。她赶忙跑过来,也不作声,只是微笑着望着我们俩,两个大男人立马熄了火。这是唯一一次受师傅训斥,他当然也明白,这样进展快的徒弟是不应挨训的。 总之,在这个小公司,我达到了能将 VC 掌控自如的地步,以及:别人写的 VC 程序,十万条语句以上,我不要任何文档及注释行,任何介绍,硬读源代码,就能将软件结构,数据结构,数据库,算法思路,全部读通并推出来,而且时间很快,然后大动干戈,想怎么改就怎么改。在此,向师傅夫妇表示永远的怀念并致祝福! 后来在国内一公司,有一软件,十万条语句大小,市场很火(加硬件后),我去后要我:解决 Bug 问题;加功能;改进性能。原开发组已有几人跳槽,没有文档,非结构化维护,但集成汇总的那位还在公司,在另一部门。我们的部门经理告诉我:先请那位汇总的来跟我详细讲一遍,再给我三个月的时间熟悉软件,再开始正式改。我当时根本不知道软件啥样,只是心想,什么不得了的软件我需要花三个月才能读懂。故当即脱口而出,讲解没有必要,只要他将运行环境给我装好,我硬读源代码就可以了,我最多三个星期就足够了(后只用了一个星期)。我举此例是想说明,读懂别人程序的能力是多么的重要,亦是自我培训的目标。 这里不可能详细谈 VC ,只给几点经验小结: 1, 首先,思路是核心的核心,有了思路能力一切都好办,否则概念背的再多也没用。 2, VC 几个主要类之间的关系,各个类之间复杂的数据传递,是基础,经常碰到一些高年级的学生 C++ 的这些都有困难。前面说的那个国内公司,一个刚毕业的研究生,叫他在程序中加一简单的小功能,他不知在哪里动手,长时间就是加不进。关键是不知在正确的地方取数据,并传递数据。 3, 学会读懂别人的程序是重中之重,有了这个能力就有了一切,关键是先集中精力读懂一两个较好的范例。 4, VC 的底层系统代码是可见的,能读懂它,并使他为你所用,是提高 VC 功力的重要一步。 5, 功力不强时,遇到大而复杂的程序,关键是 Bug 难处理,这时候,有一个好的师傅是非常必要的。
个人分类: 未分类|5238 次阅读|4 个评论
使用GDB和DDD调试POSTGRESQL
热度 1 hillpig 2010-3-28 22:23
决定今后在科博上写postgresql的文章,cu上以后主要写一些lfs的东西。好听点就是不把鸡蛋们放到一个篮子里,我发现为了一个目的,我们总能找到理由来发扬该目的的长处。 以前一直用Eclipse CDT调试postgresql,有时候断点不准,很faint,心想是不是GDB和DDD断点就准了呢。所以决定鼓捣鼓捣GDB和DDD。关于如何搭建CDT的调试环境,请参考: 我写过一篇如何在Ubuntu里搭建hack环境:postgresql8.4+postgis1.5+eclipse CDT3.6 调试环境搭建, http://blog.chinaunix.net/u2/81513/showart_2168880.html http://wiki.postgresql.org/wiki/Working_with_Eclipse 先说说GDB和DDD的区别: 官方: http://www.gnu.org/software/ddd/ 上讲,GNU DDD is a graphical front-end for command-line debuggers such as GDB , DBX , WDB, Ladebug , JDB, XDB, the Perl debugger ,.. So,不用俺解释了。 下文都是在Ubuntu中调试,先说好,没耍赖的。 所以咱就先从如何用GDB调试PostgreSQL开始谈起: 首先,我们得定义一下,我们知道Postmaster启动作为后端damon进程,等待前端如PSQL的请求,然后Fork()一个Postgres进程来处理该请求,所以我们在服务器上就有Postmaster和处理该请求的Postgres (一个请求一个该进程)了,那么我们该调试哪个呢?是Postmaster还是Postgre呢?所以有如下定义(转载于 http://www-inst.eecs.berkeley.edu/~cs186/fa04/usingddd.pdf ): There are two ways to debug postgres (a) in the interactive mode and (b) in the bare backend mode. The interactive mode is where you start up the postmaster process (with pg ctl), use psql to connect to it, which spawns off a separate postgres process that is dedicated to serving requests from the psql client. This is the mode that the scripts in the Hw1/exec directory use, and the mode you used in Hw0. In the second mode, you don’t create a separate postmaster process and don’t use psql at all. Instead, you start up postgres from the command line and directly interact with it. While the latter is a very user-unfriendly way of using postgres it has the advantage that it is very easy to use a debugger (like ddd) with it. 原文讲的很清楚了,为了再清楚一点,我稍作解释,调试分成两类,一类是 interactive mode 二类是bare backend mode。第一类是先启动Postmaster,再启动Postgres,然后调试Postgres。第二类是只启动Postgres,直接调试Postgres。 我发现第一类比较符合CDT的情况,而且上面所引的文章中主要讲了第二类,所以第二类我们就不管了。所以结论是我们调试第一类的Postgres,而如果你对Postmaster的调试也感兴趣,其实更简单了,拔高一筹理论上讲岂不是和第二类一样了。 1.在Ubuntu中先添加postgres账号,以后全部用该账号登陆:关于如何添加postgres账号,请参考: http://blog.chinaunix.net/u2/81513/showart.php?id=2168880 第3条.然后: sudo mkdir /usr/local/pgsql sudo chown postgres /usr/local/pgsql 2.在Ubuntu中先下载必要的依赖文件,并安装: 先安装:libreadline6-dev sudo apt-get install libreadline6-dev 然后安装zlib tar zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3/ make sudo make install 3.下载PostgreSQL源码,例如放在~/develop目录下面: tar zxvf postgresql-8.4.3.tar.gz cd postgresql-snapshot/ ./configure --enable-depend --enable-cassert --enable-debug /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -- 初始化系统数据库 然后创建自己的数据库(mydb是数据库名) /usr/local/pgsql/bin/createdb mydb 然后启动postmaster /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data 4.新开一个Terminal,开启前端psql连mydb psql mydb select pg_backend_pid(); 是不是出现: pg_backend_pid ---------------- 2184 把该进程id记下来。 5.启动GDB调试进程progres 2184(记得GDB在UBUNTU里是系统自带的,所以不用再安装了) gdb progres 2184; O(∩_∩)O哈哈哈~,至此是不是GDB界面出来了: GNU gdb (GDB) 7.0-ubuntu Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as i486-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... progres: No such file or directory. Attaching to process 2184 ptrace: Operation not permitted. /home/postgres/2184: No such file or directory. (gdb) 关于如何使用GDB,我就不介绍了,看官方文档: http://www.gnu.org/software/gdb/documentation/ 接下来写一下如何用DDD调试postgresql。 前4步和GDB的调试类似。 第5步,安装DDD sudo apt-get install ddd 第6步,启动DDD调试 ddd postgres 2184; 至此,DDD图形化的界面是不是出来了,上张图,庆祝一下: 第7步,在第4步的psql窗口里敲入sql命令: create table weather(tmp_lo int); 看看在DDD窗口中有什么变化,你按一下F6看看有什么效果,是不是和ECLIPSE的F6一样,F5也一样滴...接下来如何设置断点,如何跟踪,就参考官方文档吧: http://www.gnu.org/manual/ddd/html_mono/ddd.html 在文章最后给出我的结论: 我不推荐用GDB和DDD调试PostgreSQL,推荐用ECLIPSE CDT调试。原因就是ECLIPSE的调试结果和前二者一样,但是更容易看文件结构呀。 加我私人微信,交流技术。
个人分类: postgresql|12948 次阅读|0 个评论
Eclipse中单步调试Java程序
guodanhuai 2009-8-25 16:51
快捷键(F8)直接执行程序。 快捷键(F5)单步执行程序,遇到方法时进入。 快捷键(F6)单步执行程序,遇到方法时跳过。 快捷键(F7)单步执行程序,从当前方法跳出。
个人分类: Technology|13581 次阅读|0 个评论
Firefox WEB开发利器
guodanhuai 2009-8-11 17:39
有道是:工欲善其事,必先利其器 。 最近找到一款相当好用的基于Firefox的web开发调试工具,将在随后的文章中进行介绍!
个人分类: Web Development|3377 次阅读|0 个评论
LEED 2009 对Commissioning(调试)部分的影响
jiaziGreen 2009-7-10 16:18
首先LEED 2009最主要的变化是将总分提高到了100,并考虑了因地制宜的因素。分数变化最大的两个类别是能耗部分(EA: Energy and Atmosphere)和水耗(Water Efficiency)部分,分别从17分和5分上升到了35分和10分. 能耗部分Commissioning(调试)与LEED V2.2一样,占据一个必要条件(Prerequisite)和一个得分点EAc3,不同的是EAc3得分点从原先的1分上升到了2分。LEED认证将Commissioning(调试)维持在必要条件的范畴(即,没有按照LEED要求进行调试的建筑,不管采用了多少绿色技术和设计,都无法获得LEED认证)以及提高Enhanced Commissioning(升级调试)的分数,都显示了USGBC (U.S Green Building Council)对建筑设备调试的进一步重视。 调试的目的主要在于保证系统耗能系统运作、控制的质量,使建筑的主要耗能系统在运行时不会因为安装、施工和平衡上的差池出现问题,并使建筑设备的能耗控制在最优化的水平。建筑调试是保证建筑设备运行良好的重要环节,但长期以来,并未引起国内业界的重视。随着LEED认证在国内的流行,以及节能概念不断被强调,相信调试亦会受到应有的重视。 机遇与挑战总是并存的,节能概念的强调,节能技术和产品的开发和面世,给调试带来了新的挑战。尤其在内地市场,传统型建筑设备的调试在广度和深度上都和发达地区存在差距,如何面对新设备新系统带来的调试挑战,给调试单位带来了新的难题。
个人分类: 建筑调试|4753 次阅读|0 个评论
智能电源板调试与编程日记(11)
chrujun 2009-7-8 00:20
2009-07-06 星期一 晴: 上午电源板上所缺乏的器件,光隔、参考电源、反相器、缓冲器、三级管等器件终于到货了。花一个上午焊接好了两块电源板的剩余器件。通电后编程软件可以自动烧录程序,但复位后重新开机却没有任何反应。电源无法控制,电池电压也无法测量。吃中饭的时候也一直考虑这个问题是什么原因导致。想到一个可能的原因是编程软件编程后对编程控制信号DTR和RTS没有恢复,导致单片机始终处于复位状态。吃饭回来后将串口连接线拔掉后重新对电源板加电,发现电源可以控制,单片机的串口也在输出电源板状态信息。把串口线一连上电源板马上就不工作了。只好把电源板上连接DTR和RTS信号的三极管卸下,改用手工控制编程状态。之后测试电源板与采集板的隔离串行通信功能,测试结果正常。再对第二块电源板进行调试,也调试成功。到了晚上7点,两块电源板的调试任务完成。 通过这十余天的工作,电源板的功能全部调试完成。尽管碰到了各种问题,但碰到问题只要仔细分析、并仔细阅读各种器件的数据手册,辅之以万用表、示波器和调试程序,问题得到了较快解决。
个人分类: 地球物理及仪器|3521 次阅读|0 个评论
智能电源板调试与编程日记(10)
chrujun 2009-7-6 23:54
2009-07-03 星期五 晴: 今天的目标是实现上位机通过串口对电源板各个电源进行控制。首先定义两者之间的控制协议,在单片机上定义一个字符数组接收上位机传来的控制命令。由于单片机平时处于待机状态,整个命令行的接收在中断函数里实现。通过定义两个位变量,实现了通过识别命令行起始字符和换行字符接收命令行功能。中断函数收到一个完整命令行后,通过对位变量置位通知主程序。主程序知道一个完整命令行收到后对命令进行处理。提取电源板控制信息。程序编好后测试发现串口没有输出了,中断能够正常响应,电源板也能够控制。通过多种手段,发现printf函数在开串口中断后死在发送第一个字符位置了。printf函数实际上是调用putchar函数实现串口输出。把KEIL C中putchar源程序找来,进行修改。同时在串口中断函数里对发送中断不处理,也就是不让TI=0。在putchar函数采用最简单的发送代码,把通信软握手有关的代码全删了。以查询方式输出字符。程序多次修改后终于实现了预期的功能。
个人分类: 地球物理及仪器|3276 次阅读|0 个评论
智能电源板调试与编程日记(9)
chrujun 2009-7-5 21:30
2009-07-02 星期四 晴: 通过查阅资料,觉得单片机的定时器0可以用上。将TIMER 0 设置成16位定时器模式,经计算大概33ms产生一次中断。在中断服务程序中再设计一个软件计数器,每计数到30对一个位变量置位,再重新计数。在主程序中检测该位变量的状态,如发现该位变量被中断服务程序置位时采集电池电压,向串口输出电源板状态信息,并将该位变量复位。其它时候则不输出电源板信息。主程序每循环一次就进入待机状态,只有中断发生后才继续运行。这样就保证了单片机系统以比较低的平均功耗运行。刚开始用状态寄存器PSW的FO作为状态变量,但不知为什么在主程序中检测不到F0的变化。估计是PSW的值在退出中断服务程序后被恢复了。定义一个全局位变量后,问题得到解决。实现了每秒钟输出一次电源板电池电压等状态信息。
个人分类: 地球物理及仪器|3272 次阅读|0 个评论
智能电源板调试与编程日记(8)
chrujun 2009-7-5 21:26
2009-07-01 星期三 晴:为了进一步降低功耗,将15K二极管限流电阻进一步替换成47K电阻。换上后发光强度还可以。PMOS控制电路中的10K电阻也替换成47K电阻。替换后电源板的最大空载功耗下降到了934mA。相比没有改进前的最大空载功耗下降了21%。厂家给出的参数表明,每个DC/DC模块在12V输入电压下的空载功耗的典型值为240mW。由于单片机系统的功耗为310mW,由此可以算出DC/DC模块消耗的功耗为624mW。比厂家给出的典型值240*3=720mW要低。这说明主供电系统的其它部分消耗的功率很小了。 下一步需要降低单片机系统在工作状态下的功耗。解决问题的思路是让单片机每秒钟采集一次电池电压,并发送到上位机。其余时间让单片机进入可以响应中断的待机状态。
个人分类: 地球物理及仪器|3031 次阅读|0 个评论
智能电源板调试与编程日记(7)
chrujun 2009-7-3 23:04
2009-06-30 星期二 晴:今天主要是降低电源板在空载状态下的功耗。通过单片机内部的ADC测量电池电压,用万用表200mA档测量供电电流,得出了电源板在不同工作状态下的功耗。单片机及其外围电路工作,其它电源关断情况下的功耗为381mW; 其它电源空载的功耗为1195mW. 将模拟电源、传感器电源和ARM板电源依次打开后的功耗依次为657mW, 1111mW和1195mW。这说明模拟电源和传感器电源在空载下功耗比较大。其原因在于模拟电源和传感器电源全是正负电压输出,DC-DC隔离电源模块损失的功率比较大。为了降低电源板的待机和空载功耗,首先想办法增大各状态指示灯LED的限流电阻。将1KW电阻替换成6.8KW电阻; 4.7KW电阻替换成15KW电阻。替换后待机状态、打开模拟电源、再打开传感器电源、再打开ARM板电源4种状态下的功耗分别为310mW, 578mW, 969mW和1013mW。更换限流电阻后电源板的空载功耗下降了182mW。相当于下降了15%。为了进一步降低电源板的功耗,将单片机的初始状态设置成待机状态,在这种状态下不测量电池电压,不通过串口向外发生电池电压信息,只有用户按下开机开关后单片机才工作,修改程序后发现在这种状态下电源板的功耗为236mW, 下降了24%。进一步将单片机的状态设置成睡眠模式,功耗下降到了190mW, 下降了39%。相对于没有优化前的381mW,单片机系统的功耗下降了50%。 由此可以看出,降低仪器功耗的空间很大,值得深入研究。
个人分类: 地球物理及仪器|3570 次阅读|1 个评论
智能电源板调试与编程日记(6)
chrujun 2009-7-2 20:49
2009-06-29 星期一 晴:根据前几天的调试结果,对电源板电路图和PCB设计进行修改;并且增加了GPS电源控制功能。首先修改电位器的封装,使之和购买的器件定义一致;其次将P1.4~P1.7的输出作为电源控制信号;然后增加了GPS电源控制电路。接下来的工作是修改PCB设计,将修改后的电路原理图信息导入到PCB设计文件中。由于增加了GPS电源控制电路,对电源板的部分区域进行了重新布局,使GPS电源控制电路及GPS电源插座有足够的空间。购买的按键开关封装和设计软件提供的封装也有所区别,将按键开关的两个管脚的间距从5.08mm加长成6.00mm。最后的工作是对电源板的修改部分重新布线、补泪滴和违反设计区域重新铺铜;对电源板的标注进行调整和美化,直到满意为止。
个人分类: 地球物理及仪器|3325 次阅读|1 个评论
智能电源板照片与功能说明
chrujun 2009-7-1 18:46
图1 调试状态下的智能电源板照片 智能电源板说明 1. 功能:为数据采集系统提供多组低噪音电源。数据采集系统可以通过串口通信获取电源信息,对各组电源进行控制。 2. 主要特点:抗静电、防雷击、隔离控制、电源纹波1mV (实测)、专为野外工作环境下的精密地球物理数据采集系统设计。 3. 主要设计参数:4层板、7个隔离地层、6个隔离电源层、150mm*100mm。 4. 为了不泄密,相片中的隔离电源型号被专门覆盖。其它元件参数因看不清楚,没有处理。 5. 部分元件因没有到货还没有焊接。 6. 相片左上方是万用表,在测量供电电流。 7. 相片右上方是电池,为电源板供电。
个人分类: 地球物理及仪器|4051 次阅读|1 个评论
智能电源板调试与编程日记(5)
chrujun 2009-7-1 18:05
2009-06-28 星期天晴:编写程序对3组电源进行控制,程序无法实现P0.0~P0.3的输出发生变化。电源也就无法控制。通过查阅AT89C51AC2的说明书,发现P0的上拉电阻只有在存储器写周期才发挥作用。需要用锁存器才能锁定P0的输出。于是将P0.0~P0.3到电源控制插座的走线全部割断,更改成P1.4~P1.7的输出作为电源控制信号。通过走4根飞线将P1.4~P1.7的输出连接到电源控制插座上。修改程序后进行测试,发现P1.4~P1.7的输出正常,可以正常控制三组电源工作。 之后编程序通过中断INT0和INT1触发电源的开和关。测试发现INT0可以实现电源导通,但INT1导致整个程序死机,并且按下电源开按钮不放时串口停止输出。再一次查阅AT89C51AC2的说明书,将中断改成下降沿触发模式。串口输出停止的问题得到解决。但INT1导致死机的问题还是存在。对说明书进一步查阅,发现问题出在中断号上。INT0和INT1的中断号分别是0和2。而我弄成了1和3。中断号修改后电源可以正常控制了。很奇怪的是刚开始中断号根本就不对,为什么程序可以响应INT0和INT1中断?
个人分类: 地球物理及仪器|3743 次阅读|1 个评论
智能电源板调试与编程日记(4)
chrujun 2009-6-30 23:46
2009-06-27 星期六 晴:上午给AT89C51AC2烧程序时发现在系统编程软件FLIP打不开HEX文件。换一个老版本也不行,用KEIL C重新编译程序也不行。通过查阅各种资料,排除了HEX文件格式不兼容的问题。在ATMEL网站上下载了最新的FLIP程序,还是不行。阅读该软件的使用说明书,也没有找到问题的原因。下午在ATMEL网站上查找问题出现的原因,在技术支持部分发现有人碰到了类似问题。厂家的答复是要把HEX文件放在根目录,放在其它地方会出问题。按照厂家提供的方法,把HEX文件放在了根目录。果然,HEX文件可以顺利打开,老版本也没有问题。之后在厂家提供的示例程序基础上编写串口通讯程序和AD转换程序。波特率设置成2400BPS,利用串口通信将AD转换结果在超级终端上显示出来。超级终端上显示采集的电池电压为12.24V,用万用表得到的测量值是12.90V。估计是分压电阻有误差,或许有其它原因。
个人分类: 地球物理及仪器|3892 次阅读|3 个评论
智能电源板调试与编程日记(3)
chrujun 2009-6-29 22:29
2009-06-26 星期五 晴 为了便于周末调试,上午先打印了电源板电路图。之后用PCB洗板水对两块焊接好的电源板进行清洗。 9:40左右出发到北京,更换了规格不对的串口插座、购买了两瓶PCB洗板水、一把热熔胶枪、3米扁线、9米热缩管、10个100uH直插电感、5个MAX202ESE芯片等。下午4:00左右回涿州。 对电源板进一步焊接和清理。加电后发现昨天出现故障的电源板还是工作不正常。通过测量 PMOS管Q1周边的 电阻发现原因出在一个插座的管脚没有焊接好。重新焊接后模拟电源开始工作。但发现+3.3V电源指示灯不亮。用万用表检测发现问题还是出在焊接不良上。故障排除后两块电源板的供电系统工作正常。之后将电源板和计算机用串口连接,发现在系统编程软件FLIP3.3.4可以和电源板上的单片机AT98C51AC2通信,表明单片机系统工作正常。下一步需要编写程序看单片机能不能实现测量和控制功能。
个人分类: 地球物理及仪器|3631 次阅读|2 个评论
智能电源板调试与编程日记(2)
chrujun 2009-6-28 20:47
2009-06-25 星期四 晴:先分析负3.3V电压无法产生的原因。发现设计图纸中的电位器封装和购买的电位器封装不同。两者的管脚定义不一样。管脚2和管脚3的定义相反。将电位器卸下来后重新连接,把3脚引线去掉,2脚连接到3脚连接的焊盘。接上去后发现电压还是无法控制。进一步研究发现负电源的地没有和模拟地连接。飞一根线后问题解决,可以用电位器控制产生-3.3V电源。之后在仇洁婷的帮助下对2块电源板进行完整焊接,除部分芯片还没有到货无法焊接外,能焊接的器件全部焊接齐全。下午5:00全部焊接完成。通电后发现一块电源板供电正常,另外一块电源板是昨天先焊接的,上午还是好的,不知什么原因模拟电源没有输出了。查了一段时间还是没有找到故障的原因。初步估计是虚焊或电路板没有清洗导致某些问题。
个人分类: 地球物理及仪器|2784 次阅读|0 个评论
智能电源板调试与编程日记(1)
chrujun 2009-6-27 23:40
2009-06-24 星期三 晴:上午对昨天购买的芯片一一检查和整理。下午4:00左右电源板PCB板到货了。对电源板PCB板进行检查和焊接。由于电源板的铺铜厚了1倍,电源信号的走线宽度为1~2mm,焊接时散热很快。一些大器件很难焊好。仇洁婷建议换50W的烙铁。更换烙铁后焊接工作才有了起色。在仇洁婷的帮助下,一直焊接到晚上10:45,才焊好一块电源板的主供电系统部分。对电源板进行供电测试,发现-3.3V模拟电压无法产生,电压为-4.3V,无法用电位器控制。晚上回公寓后又对负电源产生电路进行研究,没有发现有什么问题。
个人分类: 地球物理及仪器|3382 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 18:43

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部