评论66
楼主 2008/10/2 20:35:44
在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。
很多年前,一位开发人员为了对嵌入式有更深层次的理解,向Oracle询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢? Oracle面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发人员问的最多的大都围绕“我怎么才能使程序跑的更快”、“什么编译器最好”等肤浅的问题。所以,面对这个不同寻常却异乎成熟的问题,Oracle感到欣喜并认真回复了他:你的问题很有深度很成熟,因为只有不断地去深入理解才有可能不断地提高水平。并且Oracle为了鼓励这位执着的程序员,把10条关于嵌入式软件开发测试的秘诀告诉了他:
1.懂得使用工具
2.尽早发现内存问题
3.深入理解代码优化
4.不要让自己大海捞针
5.重现并隔离问题
6.以退为进
7.确定测试的完整性
8.提高代码质量意味着节省时间
9.发现它,分析它,解决它
10.利用初学者的思维
这十条秘诀在业界广为流传,使很多人受益。本文围绕这十条秘诀展开论述。
1.懂得使用工具
通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对门益复杂的嵌入式软件进行快速有效的测试愈加显得重要。
就象修车需要工具一样,好的程序员应该能够熟练运用各种软件工具。不同的工具,有不同的使用范围,有不同的功能。使用这些工具,你可以看到你的系统在干些什么,它又占用什么资源,它到底和哪些外界的东西打交道。让你郁闷好几天的问题可能通过某个工具就能轻松搞定,可惜你就是不知道。那么为什么那么多的人总是在折腾个半死之后才想到要用测试工具呢?原因很多,主要有两个。一个是害怕,另一个是惰性。害怕是因为加入测试用具或测试模块到代码需要技巧同时有可能引入新的错误,所以他们总喜欢寄希望于通过不断地修改重编译代码来消除bug,结果却无济于事。懒惰是因为他们习惯了使用printf之类的简单测试手段。下面来介绍一些嵌入式常用的测试工具。
源码级调试器[Source-level Debugger]
这种调试器一般提供单步或多步调试、断点设置、内存检测、变量查看等功能,是嵌入式调试最根本有效的调试方法。比如VxWorks TornadoII提供的gdb就属于这一种。
简单实用的打印显示工具[printf]
printf或其它类似的打印显示工具估计是最灵活最简单的调试工具。打印代码执行过程中的各种变量可以让你知道代码执行的情况。但是,printf对正常的代码执行干扰比较大(一般printf占用CPU比较长的时间),需要慎重使用,最好设置打印开关来控制打印。
ICE或JTAG调试器[In-circuit Emulator]
ICE是用来仿真CPU核心的设备,它可以在不干扰运算器的正常运行情况下,实时的检测CPU的内部工作情况。像桌面调试软件所提供的:复杂的条件断点、先进的实时跟踪、性能分析和端口分析这些功能,它也都能提供。ICE一般都有一个比较特殊的CPU,称为外合(bond-out)CPU。这是一种被打开了封装的CPU,并且通过特殊的连接,可以访问到CPU的内部信号,而这些信号,在CPU被封装时,是没法“看到”的。当和工作站上强大的调试软件联合使用时,ICE就能提供你所能找到的最全面的调试功能。但ICE同样有一些缺点:昂贵;不能全速工作;同样,并不是所有的CPU都可以作为外合CPU的,从另一个角度说,这些外合CPU也不大可能及时的被新出的CPU所更换。JTAG(Joint Test Action Group)虽然它最初开发出来是为了监测IC和电路连接,但是这种串行接口扩展了用途,包括对调试的支持。AD公司为Blackfin设计的Visual Dsp++就支持高速的JTAG调试。
ROM监视器[ROM Monitor]
ROM监控器是一小程序,驻留在嵌入系统ROM中,通过串行的或网络的连接和运行在工作站上的调试软件通信。这是一种便宜的方式,当然也是最低端的技术。它除了要求一个通信端口和少量的内存空间外,不需要其它任何专门的硬件。并提供了如下功能:下载代码、运行控制、断点、单步步进、以及观察、修改寄存器和内存。因为ROM监控器是操作软件的一部分,只有当你的应用程序运行时,它才会工作。如果你想检查CPU和应用程序的状态,你就必须停下应用程序,再次进入ROM监控器。
Data监视器[Data Monitor]
这种监视器在不停止CPU运行的情况下不仅可以显示指定变量内容,还可以收集并以图形形式显示各个变量的变化过程。
OS监视器[Operating System Monitor]
操作系统监视器可以显示诸如任务切换、信号量收发、中断等事件。一方面,这些监视器能够为你呈现事件之间的关系和时间联系;另一方面,还可以提供对信号量优先级反转、死锁和中断延时等问题的诊断。
性能分析工具[Profiler]
可以用来测试CPU到底耗在那里。profiler工具可以让你知道系统的瓶颈在那里、CPU的使用率以及需要优化的地方。
内存测试工具[Memory Teseter]
可以找到内存使用的问题所在,比如内存泄露、内存碎片、内存崩溃等问题。如果发现系统出现一些不可预知的或间歇性的问题,就应该使用内存测试工具测测看。
运行跟踪器[Execution Tracer]
可以显示CPU执行了哪些函数、谁在调用、参数是什么、何时调用等情况。这种工具主要用于测试代码逻辑,可以在大量的事件中发现异常的那些。
覆盖工具[Coverage Tester]
主要显示CPU具体执行了那些代码,并让你知道那些代码分支没有被执行到。这样有助于提高代码质量并消除无用代码。
GUI测试工具[GUI Tester]
很多嵌入式应用带有某种形式的图形用户界面进行交互,有些系统性能测试足根掘用户输入响应时间进行的。GUI测试工具可以作为脚本工具有开发环境中运行测试用例,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程(Rational公司的robot和Mercury的Loadrunner工具是杰出的代表)。很多嵌入式设备没有GUI,但常常可以对嵌入式设备进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是节省了功能测试和回归测试的时间。
自制工具[Home-made tester]
在嵌入式应用中,有时候为了特定的目的,需要自行编写一些工具来达到某种测试目的。本人曾经编写的视频流录显工具在测试视频会议数据流向和变化上帮了大忙,帮公司找到了几个隐藏很深的bug。
2.尽早发现内存问题
内存问题危害很大,不容易排查,主要有三种类型:内存泄露、内存碎片和内存崩溃。对于内存问题态度必须要明确,那就是早发现早“治疗”。在软件设计中,内存泄露的“名气”最大,主要由于不断分配的内存无法及时地被释放,久而久之,系统的内存耗尽。即使细心的编程老手有时后也会遭遇内存泄露问题。有测试过内存泄露的朋友估计都有深刻地体验,那就是内存泄露问题一般隐藏很深,很难通过代码阅读来发现。有些内存泄露甚至可能出现在库当中。有可能这本身是库中的bug,也有可能是因为程序员没有正确理解它们的接口说明文档造成错用。
在很多时候,大多数的内存泄露问题无法探测,但可能表现为随机的故障。程序员们往往会把这种现象怪罪于硬件问题。如果用户对系统稳定性不是很高,那么重启系统问题也不大;但,如果用户对系统稳定很高,那么这种故障就有可能使用户对产品失去信心,同时也意味着你的项目是个失败的项目。由于内存泄露危害巨大,现在已经有许多工具来解决这个问题。这些工具通过查找没有引用或重复使用的代码块、垃圾内存收集、库跟踪等技术来发现内存泄露的问题。每个工具都有利有弊,不过总的来说,用要比不用好。总之,负责的开发人员应该去测试内存泄露的问题,做到防患于未然。
内存碎片比内存泄露隐藏还要深。随着内存的不断分配并释放,大块内存不断分解为小块内存,从而形成碎片,久而久之,当需要申请大块内存是,有可能就会失败。如果系统内存够大,那么坚持的时间会长一些,但最终还是逃不出分配失败的厄运。在使用动态分配的系统中,内存碎片经常发生。目前,解决这个问题最效的方法就是使用工具通过显示系统中内存的使用情况来发现谁是导致内存碎片的罪魁祸首,然后改进相应的部分。
由于动态内存管理的种种问题,在嵌入式应用中,很多公司干脆就禁用malloc/free的以绝后患。
内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。这种内存崩溃造成系统故障是随机的,而且很难查找,目前提供用于排查的工具也很少。
总之,如果要使用内存管理单元的话,必须要小心,并严格遵守它们的使用规则,比如谁分配谁释放。
3.深入理解代码优化
讲到系统稳定性,人们更多地会想到实时性和速度,因为代码效率对嵌入式系统来说太重要了。知道怎么优化代码是每个嵌入式软件开发人员必须具备的技能。就象女孩子减肥一样,起码知道她哪个地方最需要减,才能去购买减肥药或器材来减掉它。可见,代码优化的前提是找到真正需要优化的地方,然后对症下药,优化相应部分的代码。前面提到的profile(性能分析工具,一些功能齐全IDE都提供这种内置的工具)能够记录各种情况比如各个任务的CPU占用率、各个任务的优先级是否分配妥当、某个数据被拷贝了多少次、访问磁盘多少次、是否调用了网络收发的程序、测试代码是否已经关闭等等。
但是,profile工具在分析实时系统性能方面还是有不够的地方。一方面,人们使用profile工具往往是在系统出现问题即CPU耗尽之后,而profile工具本身对CPU占用较大,所以profile对这种情况很可能不起作用。根据Heisenberg效应,任何测试手段或多或少都会改变系统运行,这个对profiler同样适用!
总之,提高运行效率的前提是你必须要知道CPU到底干了些什么干的怎么样。
4.不要让自己大海捞针
大海捞针只是对调试的一种生动比喻。
经常听到组里有人对自己正在调试的代码说shit!可以理解,因为代码不是他写的,他有足够的理由去shit bug百出的代码,只要他自己不要写出这种代码,否则有一天同组的其它人可能同样会shit他写的代码。为何会有大海捞针呢?肯定是有人把针掉到海里咯;那针为何会掉在海里呢?肯定是有人不小心或草率呗。所以当你在抱怨针那么难找的时候,你是否想过是你自己草率地丢掉的。同样,当你调试个半死的时候,你是否想过你要好好反省一下当初为了寻求捷径可能没有严格地遵守好的编码设计规范、没有检测一些假设条件或算法的正确性、没有将一些可能存在问题的代码打上记号呢?关于如何写高质量请参考林锐的《高质量c++/c编程指南》或《关于C的0x8本“经书”》。
如果你确实已经把针掉在海里是,为了防止在找到之前刺到自己,你必须要做一些防范工作,比如戴上安全手套。同样,为了尽能地暴露和捕捉问题根源,我们可以设计比较全面的错误跟踪代码。怎么来做呢?尽可能对每个函数调用失败作出处理,尽可能检测每个参数输入输出的有效性包括指针以及检测是否过多或过少地调用某个过程。错误跟踪能够让你知道你大概把针掉在哪个位置。
5.重现并隔离问题
如果你不是把针掉在大海了,而是掉在草堆里,那要好办写。因为至少我们可以把草堆分成很多块,一块一块的找。对于模块独立的大型项目,使用隔离方法往往是对付那些隐藏极深bug的最后方法。如果问题的出现是间歇性的,我们有必要设法去重现它并记录使其重现的整个过程以备在下一次可以利用这些条件去重现问题。如果你确信可以使用记录的那些条件去重现问题,那么我们就可以着手去隔离问题。怎么隔离呢?我们可以用#ifdef把一些可能和问题无关的代码关闭,把系统最小化到仍能够重现问题的地步。如果还是无法定位问题所在,那么有必要打开“工具箱”了。可以试着用ICE或数据监视器去查看某个可疑变量的变化;可以使用跟踪工具获得函数调用的情况包括参数的传递;检查内存是否崩溃以及堆栈溢出的问题。
6.以退为进
猎人为了不使自己在森林里迷路,他常常会在树木上流下一些标记,以备自己将来有一天迷路时可以根据这些标记找到出路。对过去代码的修改进行跟踪记录对将来出现问题之后的调试很有帮助。假如有一天,你最近一次修改的程序跑了很久之后忽然死掉了,那么你这时的第一反映就是我到底改动了些什么呢,因为上次修改之前是好的。那么如何检测这次相对于上次的修改呢?没错,代码控制系统SCS或称版本控制系统VCS(Concurrent Version Control,CVS是VCS的演化版本)。将上个版本check in下来后和当前测试版本比较。比较的工具可以是SCS/VCS/CVS自带的diff工具或其它功能更强的比较工具,比如BeyondCompare和ExamDiff。通过比较,记录所有改动的代码,分析所有可能导致问题的可疑代码。
7.确定测试的完整性
你怎么知道你的测试有多全面呢?覆盖测试(coverage testing)可以回答这个问题。覆盖测试工具可以告诉你CPU到底执行了那些代码。好的覆盖工具通常可以告诉你大概20%到40%代码没有问题,而其余的可能存在bug。覆盖工具有不同的测试级别,用户可以根据自己的需要选择某个级别。即使你很确信你的单元测试已经很全面并且没有dead code,覆盖工具还是可以为你指出一些潜在的问题,看下面的代码:
if (i >= 0 && (almostAlwaysZero == 0 || (last = i)))
如果almostAlwaysZero为非0,那么last=i赋值语句就被跳过,这可能不是你所期望的。这种问题通过覆盖工具的条件测试功能可以轻松的被发现。
总之,覆盖测试对于提高代码质量很有帮助。
8.提高代码质量意味着节省时间
有研究表明软件开发的时间超过80%被用在下面几个方面:
调试自己的代码(单元测试)
调试自己和其他相关的代码(模块间测试)
调试整个系统(系统测试)
更糟糕的是你可能需要花费10-200倍的时间来找一个bug,而这个bug在开始的时候可能很容易就能找到。一个小bug可能让你付出巨大的代价,即使这个bug对整个系统的性能没有太大的影响,但很可能会影响让那些你可以看得到的部分。所以我们必须要养成良好的编码和测试手段以求更高的代码质量,以便缩短调试的代码。
9.发现它,分析它,解决它
这世界没有万能的膏药。profile再强大也有力不从心的时候;内存监视器再好,也有无法发现的时候;覆盖工具再好用,也有不能覆盖的地方。一些隐藏很深的问题即使用尽所有工具也有可能无法查到其根源,这时我们能做的就是通过这些问题所表现出来的外在现象或一些数据输出来发现其中的规律或异常。一旦发现任何异常,一定要深入地理解并回溯其根源,直到解决为止。
10.利用初学者的思维
有人这样说过:“有些事情在初学者的脑子里可能有各种各样的情况,可在专家的头脑里可能就很单一”。有时候,有些简单的问题会被想的很复杂,有些简单的系统别设计的很复杂,就是由于你的“专家思维”。当你被问题难住时,关掉电脑,出去走走,把你的问题和你的朋友甚至你的小狗说说,或许他们可以给你意想不到的启发。
总结:嵌入式调试也是一门艺术。就想其它的艺术一样,如果你想取得成功,你必须具备智慧、经验并懂得使用工具。只要我们能够很好地领悟Oracle这十条秘诀,我相信我们在嵌入式测试方面就能够取得成功。
信息来源: | 中国工控展览网 |
楼主 2008/10/2 20:36:35
一、概述
交换技术是一个具有简化、低价、高性能和高端口密集特点的交换产品,体现了桥接技术的复杂交换技术在OSI参考模型的第二层。与桥接器一样,交换机按每一个包中的MAC地址相对简单地决策信息转发。而这种转发决策一般不考虑包中隐藏的更深的其他信息。与桥接器不同的是交换机转发延迟很小,接近单个局域网性能,远远超过了普通桥接互联网络之间的转发性能。
交换技术允许共享型和专用型的局域网段进行带宽调整,以减轻局域网之间信息流通出现的瓶颈问题。现在已有以太网、快速以太网、FDDI和ATM技术的交换产品。
利用专门设计的集成电路可使交换机以线路速率在所有的端口并行转发信息,提供了比传统桥接器高得多的性能。专用集成电路技术使得交换器在更多端口的情况下以上述性能运行,其端口造价低于传统型桥接器。
二、三种交换技术
1.端口交换
端口交换技术最早出现在插槽式的集线器中,这类集线器的背板通常划分有多条以太网段(每条网段为一个广播域),不用网桥或路由连接,网络之间是互不相通的。以大主模块插入后通常被分配到某个背板的网段上,端口交换用于将以太模块的端口在背板的多个网段之间进行分配、平衡。根据支持的程度,端口交换还可细分为:
模块交换:将整个模块进行网段迁移。
端口组交换:通常模块上的端口被划分为若干组,每组端口允许进行网段迁移。
端口级交换:支持每个端口在不同网段之间进行迁移。这种交换技术是基于OSI第一层上完成的,具有灵活性和负载平衡能力等优点。如果配置得当,那么还可以在一定程度进行客错,但没有改变共享传输介质的特点,自而未能称之为真正的交换。
2.帧交换
帧交换是目前应用最广的局域网交换技术,它通过对传统传输媒介进行微分段,提供并行传送的机制,以减小冲突域,获得高的带宽。一般来讲每个公司的产品的实现技术均会有差异,但对网络帧的处理方式一般有以下几种:
直通交换:提供线速处理能力,交换机只读出网络帧的前14个字节,便将网络帧传送到相应的端口上。
存储转发:通过对网络帧的读取进行验错和控制。
前一种方法的交换速度非常快,但缺乏对网络帧进行更高级的控制,缺乏智能性和安全性,同时也无法支持具有不同速率的端口的交换。因此,各厂商把后一种技术作为重点。
有的厂商甚至对网络帧进行分解,将帧分解成固定大小的信元,该信元处理极易用硬件实现,处理速度快,同时能够完成高级控制功能(如美国MADGE公司的LET集线器)如优先级控制。
3.信元交换
ATM技术代表了网络和通讯技术发展的未来方向,也是解决目前网络通信中众多难题的一剂“良药”,ATM采用固定长度53个字节的信元交换。由于长度固定,因而便于用硬件实现。ATM采用专用的非差别连接,并行运行,可以通过一个交换机同时建立多个节点,但并不会影响每个节点之间的通信能力。ATM还容许在源节点和目标、节点建立多个虚拟链接,以保障足够的带宽和容错能力。ATM采用了统计时分电路进行复用,因而能大大提高通道的利用率。ATM的带宽可以达到25M、155M、622M甚至数Gb的传输能力。
三、局域网交换机的种类和选择
局域网交换机根据使用的网络技术可以分为:以大网交换机;令牌环交换机;FDDI交换机;ATM交换机;快速以太网交换机等。
如果按交换机应用领域来划分,可分为:台式交换机;工作组交换机;主干交换机;企业交换机;分段交换机;端口交换机;网络交换机等。
局域网交换机是组成网络系统的核心设备。对用户而言,局域网交换机最主要的指标是端口的配置、数据交换能力、包交换速度等因素。因此,在选择交换机时要注意以下事项:
(1)交换端口的数量;
(2)交换端口的类型;
(3)系统的扩充能力;
(4)主干线连接手段;
(5)交换机总交换能力;
(6)是否需要路由选择能力;
(7)是否需要热切换能力;
(8)是否需要容错能力;
(9)能否与现有设备兼容,顺利衔接;
(10)网络管理能力。
四、交换机应用中几个值得注意的问题
1.交换机网络中的瓶颈问题
交换机本身的处理速度可以达到很高,用户往往迷信厂商宣传的Gbps级的高速背板。其实这是一种误解,连接入网的工作站或服务器使用的网络是以大网,它遵循CSMA/CD介质访问规则。在当前的客户/服务器模式的网络中多台工作站会同时访问服务器,因此非常容易形成服务器瓶颈。有的厂商已经考虑到这一点,在交换机中设计了一个或多个高速端口(如3COM的Linkswitch1000可以配置一个或两个100Mbps端口),方便用户连接服务器或高速主干网。用户也可以通过设计多台服务器(进行业务划分)或追加多个网卡来消除瓶颈。交换机还可支持生成树算法,方便用户架构容错的冗余连接。
2.网络中的广播帧
目前广泛使用的网络系统有Netware、Windows NT等,而Lan Server的服务器是通过发送网络广播帧来向客户机提供服务的。这类局域网中广播包的存在会大大降低交换机的效率,这时可以利用交换机的虚拟网功能(并非每种交换机都支持虚拟网)将广播包限制在一定范围内。
每台文交换机的端口都支持一定数目的MAC地址,这样交换机能够“记忆”住该端口一组连接站点的情况,厂商提供的定位不同的交换机端口支持MAC数也不一样,用户使用时一定要注意交换机端口的连接端点数。如果超过厂商给定的MAC数,交换机接收到一个网络帧时,只有其目的站的MAC地址不存在于该交换机端口的MAC地址表中,那么该帧会以广播方式发向交换机的每个端口。
3.虚拟网的划分
虚拟网是交换机的重要功能,通常虚拟网的实现形式有三种:
(1)静态端口分配
静态虚拟网的划分通常是网管人员使用网管软件或直接设置交换机的端口,使其直接从属某个虚拟网。这些端口一直保持这些从属性,除非网管人员重新设置。这种方法虽然比较麻烦,但比较安全,容易配置和维护。
(2)动态虚拟网
支持动态虚拟网的端口,可以借助智能管理软件自动确定它们的从属。端口是通过借助网络包的MAC地址、逻辑地址或协议类型来确定虚拟网的从属。当一网络节点刚连接入网时,交换机端口还未分配,于是交换机通过读取网络节点的MAC地址动态地将该端口划入某个虚拟网。这样一旦网管人员配置好后,用户的计算机可以灵活地改变交换机端口,而不会改变该用户的虚拟网的从属性,而且如果网络中出现未定义的MAC地址,则可以向网管人员报警。
(3)多虚拟网端口配置
该配置支持一用户或一端口可以同时访问多个虚拟网。这样可以将一台网络服务器配置成多个业务部门(每种业务设置成一个虚拟网)都可同时访问,也可以同时访问多个虚拟网的资源,还可让多个虚拟网间的连接只需一个路由端口即可完成。但这样会带来安全上的隐患。虚拟网的业界规范正在制定当中,因而各个公司的产品还谈不上互助性。Cisco公司开发了Inter-Switch Link(ISL)虚拟网络协议,该协议支持跨骨干网(ATM、FDDI、Fast Ethernet)的虚拟网。但该协议被指责为缺乏安全性上的考虑。传统的计算机网络中使用了大量的共享式Hub,通过灵活接入计算机端口也可以获得好的效果。
4.高速局域网技术的应用
快速以太网技术虽然在某些方面与传统以大网保持了很好的兼容性,但100BASE-TX、100BASAE-T4及100BASE-FX对传输距离和级连都有了比较大的限制。通过100Mbps的交换机可以打破这些局限。同时也只有交换机端口才可以支持双工高速传输。
目前也出现了CDDI/FDDI的交换技术,另外该CDDI/FDDI的端口价格也呈下降趋势,同时在传输距离和安全性方面也有比较大的优势,因此它是大型网络骨干的一种比较好的选择。
3COM的主要交换产品有Linkswitch系列和LANplex系列;BAY的主要交换产品有LattisSwitch2800,BAY stack workgroup、System3O00/5000(提供某些可选交换模块);Cisco的主要交换产品有Catalyst 1000/2000/3000/5000系列。
三家公司的产品形态看来都有相似之处,产品的价格也比较接近,除了设计中要考虑网络环境的具体需要(强调端口的搭配合理)外,还需从整体上考虑,例如网管、网络应用等。随着ATM技术的发展和成熟以及市场竞争的加剧,帧交换机的价格将会进一步下跌,它将成为工作组网的重要解决方案。
信息来源: | 电子产品世界 |
楼主 2008/10/3 8:36:50
计算机网络往往由许多种不同类型的网络互连连接而成。
如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。
将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统:
1.物理层(即常说的第一层、层L1)中继系统,即转发器(repeater)。
2.数据链路层(即第二层,层L2),即网桥或桥接器(bridge)。
3.网络层(第三层,层L3)中继系统,即路由器(router)。
4.网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。
5.在网络层以上的中继系统,即网关(gateway).
当中继系统是转发器时,一般不称之为网络互联,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。高层网关由于比较复杂,目前使用得较少。因此一般讨论网络互连时都是指用交换机和路由器进行互联的网络。本文主要阐述交换机和路由器及其区别。
2 交换机和路由器
“交换”是今天网络里出现频率最高的一个词,从桥接到路由到ATM直至电话系统,无论何种场合都可将其套用,搞不清到底什么才是真正的交换。其实交换一词最早出现于电话系统,特指实现两个不同电话机之间话音信号的交换,完成该工作的设备就是电话交换机。所以从本意上来讲,交换只是一种技术概念,即完成信号由设备入口到出口的转发。因此,只要是和符合该定义的所有设备都可被称为交换设备。由此可见,“交换”是一个涵义广泛的词语,当它被用来描述数据网络第二层的设备时,实际指的是一个桥接设备;而当它被用来描述数据网络第三层的设备时,又指的是一个路由设备。
我们经常说到的以太网交换机实际是一个基于网桥技术的多端口第二层网络设备,它为数据帧从一个端口到另一个任意端口的转发提供了低时延、低开销的通路。
由此可见,交换机内部核心处应该有一个交换矩阵,为任意两端口间的通信提供通路,或是一个快速交换总线,以使由任意端口接收的数据帧从其他端口送出。在实际设备中,交换矩阵的功能往往由专门的芯片(ASIC)完成。另外,以太网交换机在设计思想上有一个重要的假设,即交换核心的速度非常之快,以致通常的大流量数据不会使其产生拥塞,换句话说,交换的能力相对于所传信息量而无穷大(与此相反,ATM交换机在设计上的思路是,认为交换的能力相对所传信息量而言有限)。
发表于中国工控网《工业以中国工控网太网论坛
楼主 2008/10/3 8:39:19
前分散式I/O处理设备,大都采用各种不同的通信网络与通信协议,例如Optomux通信协议,是采用RS-485通信介面, Modbus通信协议也是采用RS-485通信介面,二者虽然都采用RS-485通信网络,然而却因为通信协议的不同,而无法共容于同一个通信网络。
目前所谓的现场总线,如DeviceNet,LonWorks,Profibus等,也是各不相容,由于网络硬件与通信协议的不兼容,因此系统的整合也非常的困难。而且前述的设备,都是属于小型的局部网络设备,因此在单一的网络上,所能连接的设备有限,同时传输的距离也有一定的限制。
随着科技快速的发展,网际网络已成为无国界的网络,而且随着高速宽频网络的普及性,网际网络将会很快的,分布在世界上任何一个脚落。由于网际网络的通讯协议,已经是全球的一个标准协议,只要符合此通讯协议,同时又具备有网页服务器的设备。那无论身在何处,都可以藉由电脑或移动电话的网际网络浏览器,浏览或设定某些参数。
OPTO 22有鉴于此,于1997年率先推出全球第一个以IT为标准的 “以太网 I/O (Ethernet I/O)” 处理单元。OPTO 22的Ethernet I/O/IT处理单元,可以直接连接现场的开关量与模拟量的信号,也可以连接具有RS-232/422/485的通讯设备,同时内建网页服务器,并且可以储存文字网页。因此,无论身在世界的任何脚落,都可以藉由电脑或移动电话的网际网络浏览器,浏览现场各设备的实时状态,也可以更改各设备的实时状态。当现场设备有异常发生时,Ethernet I/O/IT处理单元,也可以主动的以SNMP(Simple Network Management Protocol)传送或以E-Mail发送,某设备预先设定的相对异常信息。
Ethernet I/O/IT处理单元包含了四个部份,他们分别是智能卡(Brain Board)、安装底板(Mounting Rack)、连接现场被监测或控制设备的输入/输出模块(I/O Module)与连接具有RS-232/422/485通讯串口仪器设备的通讯模块(Serial Module)。
一、智能卡(Brain Board)类型:
SNAP-B3000-ENET:
1. RJ-45 Ethernet 接口。
2. RS-232串口,通讯速率 300至115,200bps,可连接数据机以PPP协议,供客户端监控连接的现场设备。
3. 可处理32点的开关信号、或者32点的模拟量信号、或者32个通讯串口、或者混合处理开关与模拟量信号及通讯串口。
4. 工作温度:摄氏0至70度,相对湿度:0-95%
SNAP-ENET-D64:
1. RJ-45 Ethernet 接口。
2. RS-232串口,通讯速率 300至115,200bps,可连接数据机以PPP协议,供客户端监控连接的现场设备。
3. 可处理64点的开关量信号。
4. 工作温度:摄氏0至70度,相对湿度:0-95%
SNAP-ENET-RTC:
除了功能与SNAP-B3000-ENET完全相同外,它同时有一个电池备份的万年历与实时时钟,提供SNMP或E-Mail信息的日期与时间。
SNAP-WLAN-FH-ADS:
1. 符合IEEE 802.11无线通讯网络的标准。
2. 传输速率:1 至 2 Mbps。
3. 传输方式:Frequency-Hopping Spread Spectrum (FHSS)。
4. 频宽:2.4 GHz ISM。
5. 输出功率:500mW。
6. 传输距离:2,000Feet / 606M无障碍空间。
7. 可处理32点的开关信号、或者32点的模拟量信号、或者32个通讯串口、或者混合处理开关与模拟量信号及通讯串口。
8. 工作温度:摄氏0至55度,相对湿度:0-95%
智能卡(Brain Board)共同特性:
1. 符合IEEE-802.3标准
2. 通讯速率:自动选择 10Mb或100Mb
3. 任何一个开关量输入点,都可以设定为计数器,并可储存32位的计数值。
4. 模拟量,具有自动转换为工程单位处理的功能。
5. 可以设定输入信号为某一事件状况,输出点为相对的处理动作。同时可以设定事件的提示信息,当事件发生时,主动的将此提示信息以SNMP传送或以E-Mail发送至指的客户端。
6. 可同时执行TCP/IP、UDP/IP、SNMP、SMTP、HTTP、 HTML、HDML/WML、XML、PPP、IEEE 1394、Modbus/TCP等通讯协议。
7. 系统的规划与设定,可由电脑的浏览器(IE)规划与设定,而不需要任何特殊的软件工具
8. 内建网际网络服务器,并可储存使用者自己设计的文字网页。操作者可由电脑的浏览器或者具有浏览网页的移动电话,查看或控制设备的状况
9. 可发送电子邮件信息
10. 提供 OPC Server以连接至OPC与DDE的客户端
11. 提供Modbus/TCP驱动程序,以便连接具有Modbus/TCP通讯协议的硬件设备,以及供具有Modbus/TCP通讯协议的软件包使用。
12. OPTO 22驱动包内含ActiveX元件,以利使用者以Vb、Vc、C++等软件,开发自己的操作画面
13. 提供Linux 演示软件及源代码,以利用客户在Linux操作系统下开发应用软件
14. 连接至现场控制器SNAP-LCM4的M4SENET-100 RJ-45以太网卡,可使用OPTO 22 的 FactoryFloor软件包,开发控制程序与操作者界面。
二、安装底板(Mounting Rack)是用来安装智能卡、I/O及串口模块。以可安装模块的数量区分,共有有五种类型:
1. SNAP-B4M:可安装4个模块
2. SNAP-B8M/B8MC/B8MC-P:可安装8个模块
3. SNAP-B12M/B12MC/B12MC-P:可安装12个模块
4. SNAP-B16M/B16MC/B16MC-P:可安装16个模块
5. SNAP-D64RS:可安装16个模块,只能安装SNAP-ENET-D64智能卡
注:MC型具有固定式额外的接线端子座。MC-P的接线端子座是可以插拔的
三、输入/输出模块(I/O Module)类型,共分为三大类:
1. 开关量模块:共有直流输入、直流输出、交流输入与交流输出等四大类别,每一种类别,依照电压的等级的不同,有不同的产品型号。同时也提供量测直线(光学电子尺)与转动(编码器)位移量的模块。
2. 模拟量模块:共有输入与输出二大类别,每一种类别,依照电气信号的不同,有不同的产品型号。如标准电压、电流、电阻值、各种温度信号、交流RMS电压与电流、转数或频率等各种现场信号源。
3. PID回路控制模块:0-10VDC模拟量输入,0-10VDC或4-20mA模拟量输出。0-10VDC可以设定为时间比率的开关量输出,连接至大功率的固态继电器(如OPTO 22的240D45、480D45等),控制如加热器等设备。
四、串口通讯模块(Serial Module) 类型:此模块可将现场具有RS-232/422/485串口的设备,转换为以太网接口。并经由智能卡,整合至与智能卡同一级的网络。例如:可以由网际网络浏览器,在遥远的任何地方浏览此设备。串口通讯模块共有二种,每一种模块,提供二个串口。
1. SNAP-SCM-232:RS-232通讯模块
2. SNAP-SCM-485:RS-485通讯模块
发表于中国控制网
楼主 2008/10/3 8:42:06
【摘要】 较全面地论述了现场总线及不同工业领域的低层串行数字通信网络的国际标准:包括8类总线的IEC 61158标准,以及用于公路车辆数字信息交换的ISO 11898标准,列车通信网标准IEC 61375,用于低压配电与控制装置的控制器与设备接口标准IEC 62026,用于工业机械(机床)运动控
制的实时通信标准IEC 61491(SERCOS)。介绍了我国制订现场总线标准的动向。论述了高速以太网用作现场总线的发展趋势。
【关键词】 现场总线 标准 工业以太网
一、 引 言
开发现场总线最初目的是用数字仪表内部所具有的数字信号替代4~20mA等模拟信号实现控制室与现场之间的信息传输,最初应用于过程控制及制造业。现场总线应用以后,人们得到了更多的好处。例如控制功能彻底分散到现场,先进的现场设备管理功能得以实现,系统的可靠性大大提高等等。现场总线有过不同的定义,其实质是指应用在测控现场,实现现场设备、系统管控设备之间信息交换的串行双向数字通信网络。从这一概念出发,本文所述的应用在公路车辆、铁路列车、低压配电与控制以及机床运动控制等领域的ISO11898、IEC 61375、IEC 62026、IEC 61491等标准所定义的工业网络都可以认为是现场总线。这种现场网络的发展从过程控制及制造业测控领域开
始,以后很快发展到诸如电力监控与继电保护、楼宇自动化、环境监控、交通工具、能源管理、农业、自动测试系统、医疗仪器、机器人等各种领域,现在现场总线已经无处不在。
二、现场总线国际标准IEC 61158[1][2][3]
自80年代中期开始,世界上各大控制厂商及标准化组织推出了多种互不兼容的现场总线协议标准,据不完全统计,迄今为止世界上已出现过的总线有近200种。不同标准的现场产品不能互换,将给用户造成极大的不便。从198
4年起,IEC(国际电工委员会)/TC65(工业过程测量及控制技术委员会)和ISA(美国仪表学会)就开始了制订国际标准的工作。但由于受到大控制厂商相互竞争的影响,国际标准的制订困难重重,商业集团为了自身的利益给国际标准的投票通过制造阻力,使得国际标准迟迟不能
完成。最终不得已在1999年12月通过了一个包含了多种互不兼容的协议的标准,即IEC 61158国际标准。该标准包括了目前国际上用于过程工业及制造业的8类主要的现场总线协议。
Type1,IEC 61158技术规范。这是由IEC/ISA负责制订的,曾试图使之成为统一的国际标
准的一个技术规范,基金会现场总线FF的H1(低速现场总线)是它的一个子集。
Type2,ControlNet现场总线。美国AB公司、Rockwell开发,ControlNet Internationa
l(CI)组织支持。
Type3,Profibus现场总线。德国西门子公司开发,Profibus用户组织(PNO)支持。欧洲
现场总线标准三大总线之一。
Type4,PNet现场总线。丹麦Process Data公司开发,PNet用户组织支持。欧洲
现场总线标准三大总线之一。
Type5,FF HSE(High Speed Ethernet,高速以太网)。现场总线基金会FF开发的H2(高速
现场总线)。
Type6,SwiftNet现场总线。美国SHIP STAR协会主持制定,波音公司支持。
Type7,WorldFIP现场总线。法国WorldFIP协会制订并支持。欧洲现场总线标准三大总线
之一。
Type8,Interbus现场总线。德国Phoenix Contact公司开发,Interbus Club支持。
上述8种总线中,Type1是为过程控制开发的,支持总线供电和本质安全。Type5(FF HSE)是
与之配套的高速现场总线,用于对时间有苛刻要求或数据量较大的场合,如断续生产的制造
业,以及监控级。Type2(ControlNet)为监控级总线,它的底层(设备级)总线为DeviceNet,
两者有着共同的应用层。Type3(Profibus)有3个部分ProfibusFMS、ProfibusDP和Profi
busPA,采用不同的物理层,分别用于监控级、断续生产的制造业的现场级和过程控制的
现场级。Type7(WorldFIP)也有不同的物理层,可用于过程控制和制造业的现场级。Type4(P
Net)多用于食品、饲养业、农业及工业一般自动化。Type6(SwiftNet)主要用于航空航天
领域。Type8(Interbus)主要用于制造业的现场级(设备级)或一般自动化。
IEC61158 Ed.3.0分成总论、物理层规范和服务定义、数据链路服务定义、数据链路协议规
范、应用层服务定义、应用层协议规范6个部分,它的用户层功能块是IEC 61804标准,再加
上IEC 61784(连续与断续制造用行规集,草案)构成一个完整的现场总线标准。
三、现场总线的其它国际标准
除了IEC 61158外,IEC及ISO还制定了一些特殊行业的现场总线国际标准。
(1) 1993年ISO/TC22/SC3(公路车辆技术委员会电气电子分委员会)发布的ISO 11898公路车
辆—数字信息交换—用于高速通信的CAN以及低速标准ISO 11519。
该标准基于有名的CAN(控制器局域网)总线,已有很多文献介绍。与之相关的还有ISO 119921(公路车辆—主拖与被拖车辆之间的电气连接—数字信息交换—卡车/拖车收发器标准)
和ISO 118983(容错收发器标准)两个低速的物理接口标准[4]
ISO 119921提高了发送电平,具有很高的抗电磁干扰能力,能抵御100V以上的
共模射频电压和约6V的地电位差,可用于严酷的电磁环境。
ISO 118983的特点是具有总线管理功能和容错性能。在总线CANH和CANL之
一断线、CANH和CANL之一对电源短路或对地短路、CANH和CANL相
互短路及线路与终端电阻断开时均能给出指示。总线在正常状态时为差分传输,故障时转为
单线传输,故障消除后又自动转为差分传输。
由于CAN没有规定应用层和物理接口,一些组织给它制定了不同的应用层和物理接口标准构
成了几种完整的现场总线协议,其中比较有名的有下文提到的DeviceNet、SDS以及CANopen
等。
(2) 1999年9月IEC TC9(铁路电气设备技术委员会)发布的国际标准IEC 61375列车通信网(TCN)[5]。
该标准定义了两层总线:列车总线(WTB,Wire Train Bus)和多功能车辆总线(MVB,Multifunc
tion Vehicle Bus)。
MVB用于车辆或机车内部通信,速率1.5Mb/s,提供3种物理接口:RS485(距离不大于
20m);屏蔽双绞线变压器隔离接口(200m),允许使用IEC 611582标准的变压器和收发器;点对点或星型的光纤连接(2000m)。MVB具有冗余媒体,媒体访问采用具有冗余主站(总线
管理站)的主从方式。在任何时刻总线上都只有一个能发起通信的主站,但有两个或几个能
转变为主站的总线管理站。几个总线管理站通过令牌传递来转移主站行使权,每隔几秒钟转
移一次。
WTB用于车辆之间的连接,每一车辆一个节点,WTB可有32个节点(最大62个),860m,媒体冗余,采用有护层的屏蔽双绞线、变压器隔离、曼彻斯特(Manchester)编码,速率1.5Mb/s。
由于总线长,接收信号动态范围大,解码器采用SDSP(统计数字信号处理器)。媒体访问采用
主从方式,主站固定,但所有节点均有作为主站的能力,必要时(如主站失效、列车重组等)
可改变主站节点。
MVB和WTB的链路层支持周期和非周期两类数据,提供过程数据、报文数据和管理数据3种服
务。高层协议(0SI的3~7层)称为RTP(实时协议),提供变量、报文和网络管理3种基本服
务。为了提高实时性,变量服务只有应用层。
(3) IEC SC17B(低压配电与控制装置分委员会)发布的国际标准IEC 62026低压配电与控制装
置—控制器与设备接口(CDIs)[1]。
这个标准包括了已有的4种现场总线:2000年7月发布的DeviceNet、SDS(Smart distributed
system)和ASi(Actuator sensor interface),以及2001年11月审议通过的Seriplex总
线(Serial multiplexed control Bus)。
DeviceNet和SDS都是基于CAN的,即它们的低两层协议采纳了CAN,补充了物理层,增加了应用层和设备规范文件(device profile),构成了完整的开放的现场总线。
ASi[6]和 Seriplex[7]是两种面向位(bit)的价格低廉的总线,特
别适合于以开关量为主的智能配线系统。ASi是一种轮循方式的主/从系统,每次交换
4位数据,采用无屏蔽双绞线,支持总线供电,距离100m(可加重复器扩展到300m)最大响应
时间5ms。Seriplex使用电源+、数据、时钟、公共线(地)4芯加屏蔽的专用电缆完成主/从或点对点通信,拓扑任意,距离达1500m。它可以直接与嵌有Seriplex ASIC(专用集成电路)
的控制元件或I/O模块连接,每个网络可多至255节点,响应时间小于1ms。Seriplex的传输方式几乎不同于其它所有总线,它的ASIC不停地对时钟线上的脉冲记数,当记数等于自己的地址时,ASIC与数据线交换1位数据。
(4) IEC TC44(机械设备电气安全技术委员会)1995年11月发布的IEC 61491工业机械电气设备—控制单元与驱动装置之间的实时通信串行数据链路[1][8][9]。
该标准定义了一种开放的、控制单元与驱动装置之间的实时光纤串行接口,又被称作SERCOS
(Seriel Realtime Communication System,串行实时通信系统)主要用于机床驱动等运动
控制系统中对位置、速度、扭矩等的控制,尤其用在多轴协调驱动等场合。此外也可用于PL
C接口或其它的I/O模块。SERCOS是一个2/4 Mbit/s的光纤环(正在改进的2.0版速率为2/4
/8/16 Mbit/s),每环可多至254个节点。节点的主控制器或驱动装置中嵌入SERCOS专用芯片(SERCON410B等,新版为SERCON816)完成通信及驱动功能。
此外,还有一些总线虽然不是国际标准,但已获得了广泛应用。如美国Echelon公司推出的L
onWorks总线,已在许多行业得到应用,是建筑自动化中起主导作用的总线,美国的列车通
信标准也采用LonWorks。
图 1 Ethernet/IP和ControlNet、DeviceNet协议
四、我国制订现场总线标准的动向[10]
在我国,现场总线技术的开发和应用还相当落后。在技术相对落后的领域中,国家标准
的制订常等同采用相应的国际标准。在现场总线国际标准的制订过程中,我国对IEC/ISA的
工作即对IEC 61158技术报告一直是投赞成票的,即希望有一种和国际标准一致的单一的国家标准。1993.10已等同采用IEC 611582(物理层规范)形成了GB/T 166572,并计划等同采用IEC 61158技术报告的3、4、5、6部分。国家已大力投资支持开发FF现场总线并取得了成效,正准备通过互操作检验。
1999年12月投票表决新的多总线共存的IEC 61158标准时,我国同样投了赞成票,即承认了多总线共存的局面。但是,我国对于现场总线国家标准的制订,已不打算等同采用IEC 6115
8标准。这是因为:第一,新的国际标准是按总论、物理层规范和服务定义、数据链路服务
定义、数据链路协议规范……等分标准发布的,8种标准分散在各个部分中,用户使用一种
总线标准时,要从近4000页文件中挑选,极不方便。第二,8种总线,性能有优劣,应用范
围有宽窄,开发难度有难易,开放程度也不同,一种总线一般都能用于多个领域,我国完全
没有必要全部采用。我国准备采用的做法是:
(1) 选择我们认为影响大的优秀的有市场前途的一些总线为我国的标准。这些总线必须是真
正开放的。总线所支持的国际组织必须支持、帮助中国的标准化工作,支持中国的企业开发
现场总线产品。
(2) 标准的文本采用欧洲现场总线标准的方式,一个一个总线分开,便于用户使用。1996年
欧洲标准化委员会发布的EN50170标准包括了Profibus、WorldFIP、PNet三种现场总线
,后又采用了ControlNet和FF。
五、关于工业以太网和TCP/IP协议簇[11]
几年以前,Ethernet(以太网)还被认为不能用于工业控制领域,这主要是因为Ethernet的CDMA/CD媒体访问方式不能保证网络(传输时间)的确定性,负荷重时网络的传输效率很低甚至崩溃。故在以往开放的DCS中不得不采用昂贵的令牌网如MAP网。但是Ethernet技术的快速发展和广泛应用以及低廉的价格吸引着工业控制领域。100Mb/s的快速Ethernet诞生以后,一些机构开发出适合于工业环境的Ethernet器件,开始将Ethernet用于DCS的监控级。事实证明,由于其高速、低负荷率,完全能保证系统的实时性。现在多个现场总线行业性组织都在进行Ethernet用作工业网络的研究并推出了他们的解决方案。除上述的FF HSE外,还有Ethernet/IP(The Open DeviceNet Vendor
Association支持)、ProfiNet(The Profibus Trade Organization支持)、Interface for Distributed Automation(The IDA Group支持),Modbus/TCP(The Modbus Users Group支持)
等。这些研究不仅仅是把Ethernet用作高层网络,而且希望将它直接和现场设备连接,实现所谓“一网到底;”、“一网打净”。支持推进这些研究活动的国际组织有工业以太网协会
(Industrial Ethernet Association)、工业自动化开放网络协会(IAONA)等。我国的“十五
”863第一批项目也将工业以太网现场总线列为重点攻关项目。
以上的解决方案基本上都是采用快速以太网(IEEE 802.3u)作为低两层协议,第3、4层采用T
CP/IP协议簇,再加上各自原来的现场总线应用层和设备行规,将各自的应用层数据封装成TCP/IP的格式进行传输。
工业以太网用作过程控制领域的现场总线还要解决总线供电和本质安全问题,这也是目前正
在研究的重要问题。
由ODVA支持的Ethernet/IP(以太网工业协议)是一种性能优良的协议[12],其应
用层称为CIP(控制与信息协议),和ControlNet、DeviceNet总线的应用层完全相同并使用相同的设备行规,从而实现和ControlNet/DeviceNet总线系统的无缝连接并共同使用。CIP采用了一种叫做生产者/消费者的通信模式,允许网络上所有节点同时从一个数据源存取同一
数据,提高了通信效率。EtherNet/IP的结构如图1的左边所示,应用层的实时数据(I/O控制数据)由传输层的UDP(用户数据报)协议传送,非实时的显式报文(Explicit Messaging)则由传输层的TCP(传输控制协议)传送。UDP为无连接协议,软件开销小,传输速度快。TCP为面向连接的协议,适合于传输较长的报文。Ethernet/IP有免费的协议文本供使用(免费下载)
,有开发工具并已有产品,故Ethernet/IP的性能和开发的成本及难度在几种方案中均处于
优势。
以太网的工业应用成了当前的研究热点,有人预言工业以太网将会取代所有的现场总线标准
而一统天下,实现人们梦寐以求的统一的现场总线。用以太网替代设备级现场总线也容易实
现,只要在现场仪表中装上以太网收发器及协议芯片,就能将仪表挂到以太网上。但笔者认
为,这种统一是不现实的,也是不必要的。因为:
(1) 不同的应用场合有不同的特点,一种现场总线(以太网)难以满足要求。如有的场合需要
高抗干扰,有的场合需要远距离传输,但并不需要大的带宽,有的场合不适宜采用星形网络
等等。
(2) 采用导线的以太网单个网段长度有限,光纤网成本高且不能实现总线供电。
(3) 采用导线的高速网络的抗干扰能力比低速网络差。
(4) 在简单的现场设备尤其是开关量现场设备的应用中,采用DeviceNet、SDS、ASI、Se
riplex等在成本、性能上将优于以太网。
(5) 即使大家都使用工业以太网和TCP/IP协议,但商业竞争的结果会导致使用不同的应用层
协议。
六、结束语
多种现场总线标准将会在较长的时期内共存,但总线的种类有可能会逐步减少到几种。工业以太网的应用范围会迅速扩大,但不会出现以太网一统天下的局面。多种协议标准的复杂的工业网络将会简化成为一种或两种协议标准的网络。一种协议标准就是工业以太网,两种协议标准就是工业以太网加上一级设备网。现场总线技术已经由过程工业、制造业、电力、环境等的系统监控渗透到了变配电设备、车辆、机床、机器人等的内部,正在彻底改变测控系统乃至变配电设备、机床、车辆本身的设计思想。我国的这些行业应抓住机遇,应用现场总线技术,提高生产的自动化水平或产品的技术含量,加快产品的更新换代。
参考文献
[1] http:∥www.iec.ch
[2]成继勋.现场总线标准的现状及展望.计算技术及自动化(中南六省自
动化学术年会论文集),1999.11:261~264
[3]缪学勤.现场总线技术的最新进展.自动化仪表,2000,21(6):1~4
[4]成继勋.CAN总线的物理层协议.世界仪表与自动化(IIAC′2001论文集),2001.9:202~206
[5]http:∥www.labs.it/rosin/tcncorso/tutindex.htm
[6]http:∥www.asinterface.com/default.asp
[7]http:∥www.auburnarmature.com/techsupp/networks/seriplex.html
[8]http:∥www.sercos.com
[9]http:∥www.sercos.de
[10]冯晓升.中国现场总线标准体系的形成与实施.世界仪表与自动化(IIAC′2001论文集),2001.9:138~142
[11]http:∥www.industrialethernet.com/
[12]ODVA & CI,Ethernet/IP Specification,Release 1.0,June 5,2001
发表于中国工控网
楼主 2008/10/3 8:50:31
关键词:电磁流量计 流量校准 在线检查
一 前言
电磁流量计广泛应用于流程工业和公用事业,按要求测量仪表须在受控状态下运行和定期检定。流量仪表流量值的检查方法通常有离线和现场在线检查两种。因这两种方法都有缺陷,实践中广大用户探索出若干在现场间接检查方法,验证或评估电磁流量计流量测量值是否已超过原始校准精确度等级范围,为继续使用或需进一步检查提供依据。本文就国内外现场非实流流量校准的检查方法、实践经验、专用仪器开发、现场校准规范制订等动向作扼要论述。
二 在线检查的现状
现在尚缺乏对电磁流量计在线检查的全面了解,仅见到几家日本企业近年发表的实施非实流在线检查的报导;另外,上海地区几年前已开始探索和制订“在线检验方法”等。
1. 化学工业
电磁流量计在化学工业中应用以流量控制为主,所测流体以酸、碱性液和浆液居多,多具有腐蚀性和磨耗性。电磁流量计实际应用中发生故障和失效,多是由于腐蚀泄漏、绝缘下降、电极沾污或附着异物等引起的。
电磁流量计传统的定期维护检查是将流量传感器卸下管线清扫和检查,然后实施流量校准。为减少流量传感器从管道上卸装损伤衬里,先在管线上测量绝缘电阻等推断有无异常现象,再决定下一步是否卸下管线检查或实流流量校准。三菱化学(株)3种检查方式所占比重是:(1)只作在线检查占35%;(2)卸下管线作接液部位清扫后检查占22%;(3)离线作实流校准占43%。
2. 水务业
(1)(日)东京都水道局
东京都水道局对电磁流量计每年做一次全面检查,检查内容为:外观检查,转换器特性试验,测量值校准,测量各部电压,测量绝缘电阻,确认电路。仪表检查调整时因零点漂移,调整零点显得十分重要,而“在线调零”必须使被测介质停止流动,却不易办到。因此在现场只能省略包含有传感器运作的检查,仅实施转换器的校准。将本次检查结果和历史数据比较确定仪表是继续使用、修补还是更新。传感器按所测励磁线圈绝缘电阻劣化程度决定更新与否。
(2)上海自来水公司和原水公司
上世纪90年代以来,上海自来水公司和原水公司开始摸索在线检查和验证有无异常现象的方法。无停役可能的管线分别检查流量传感器和转换器,用模拟信号器和其他通用仪表测试转换器,具有较高的校准精确度(取决于模拟信号器精确度),其方法与离线检查相同。传感器检查则以测试电极接液电阻,检查励磁线圈包括励磁连接电缆的绝缘电阻和铜电阻,以及检查转换器输出的励磁电流,核对磁场强度等间接方法。有停役条件的管线,还可从预设在传感器附近入孔进入,检查电级和衬里污秽/沉积状况并清洗。
三 现场检查内容
楼主 2008/10/3 8:53:27
王竹平先生,上海辰竹仪表有限公司总经理、教授级高工。
关键词:数字调节仪表 记录仪表
数字调节仪表和记录仪表是工业自动化控制系统中基础的常见仪表之一。上世纪80年代初至90年代中,随着微电子和微处理技术的迅速发展,显示直观、测量精确度高、具有PID自整定等功能的数字调节仪表和多通道、万能输入、大容量测量数据电子存储功能的新型记录仪表——无纸记录仪得到快速发展,在工业自动化系统中占有重要地位,促进了当时我国石油、化工、冶金、机械等各个行业自动化水平的提高。
此后,随着DCS系统价格大幅下降、PLC控制器的普及应用,计算机在工业自动化系统中承担显示、控制运算和数据存储等功能,因此原来应用的数字调节仪表和记录仪表被替代,但总体上它们逐步处于萎缩状况。很多业内人士认为数字调节仪表和记录仪表的发展已走到尽头,但这次MICONEX 2004的情况让笔者对此看法产生疑问。国内外携数字调节仪表和记录仪表参展的公司有三四十家之多,不乏年产几万台规模的公司。中国近年来国民经济快速发展,企业急剧增加,价廉物美的数字调节仪表和记录仪表在规模不大、自动化程度不高、人员技能相对较差、成立时间不长的中小企业的应用是很经济、有效的。而国外产品侧重向用于专门系统和装置的专用控制记录站、控制站方向发展。
一 国外产品特点
(1)数字调节仪表和记录仪表已发展成为专门用途的控制站、记录站、网络站。一台数字调节仪表有多回路组态控制,多通道开关量输入、输出逻辑控制功能,无纸记录仪往往有几十个通道测量记录功能,还包含多通道数字调节功能。原来许多典型、较难控制的专用系统,如锅炉控制、渗碳炉控制、真空烧结炉控制等系统,需有多个PID等组合。以往需多台数字调节、手动操作器、报警器和记录仪等组成,现在只要一台专用数字调节仪表或记录仪表就可实现,同时仪表具有多种通信协议接口,很方便与整个工厂自动化系统相连接,实现信息互通。
(2)人性化人机界面设计,可同时显示多种信息和多种方式。组态操作方面既有传统通过仪表面板按钮方式操作,也可在计算机或手操器上设置参数通过网络下载到仪表中。
(3)仪表在性能和可靠性方面进一步提高,测量精确度为±0.1%F.S是普遍水平,采样控制周期越来越快,原一般为0.5s、0.25s,现在有的甚至出现达到25ms采样控制周期的快速仪表,MTBF可靠性更达到几十万小时。
(4)仪表向网络化方向发展,许多仪表有开放式DeviceNet、Profibus、 CC-Link、Ethernet-Link多种总线接口,方便连接工厂自动化系统。
(5)由于仪表自身发展,数字调节仪表和记录仪表在某些领域、控制装置比采用DCS、PLC等方案控制更有效,性价比更高,存在和发展的空间很大。
二 国内产品特点
(1)近年来国产数字调节仪表和记录仪表有了长足进步,这归功于民营科技企业作出的重大贡献。主要数字调节仪表制造商有:上润精密仪器有限公司、虹润精密仪器有限公司、厦门宇光电子技术有限公司、厦门安东电子有限公司等,其年产量均达到几万台规模。记录仪表主要是无纸记录仪,厂商有杭州盘古自动化系统有限公司、浙大中控仪表有限公司、北京英华达电子工程科技有限公司等,年销量几千台到上万台。
(2)国内产品在市场上数量占绝对优势,但也表现出常规品种多,特色品种少,几家厂间产品功能、质量水平相当,各家产品之间缺少特色。
(3)仪表在性能、外观、可靠性方面比国外同类产品稍逊。
(4)具有通信功能已是数字调节仪表和记录仪表的常规功能,但目前仅有Modbus、RS-485、RS-232形式,开放性较差,较难接入工厂总线自动化系统。
(5)目前国内产品竞争相当激烈,竞争手段往往停留在价格上竞争,互相压价,造成企业利润率低。这样,企业的进一步科技开发、科技创新的投入不足,导致新产品少,推出时间长。
三 几个参展厂商典型产品介绍
(1)重庆横河川仪
横河川仪这次展出众多规格和品种的数字智能调节仪表和显示记录仪表,特点是按功能分类更加细化。数字调节器具有14种内置控制功能电炉控制、加热/冷却控制、位置比例阀位控制等都有专用控制器实现。UT351型还标配以太网接口,即插即用,实现实时监控,远程维护,不增加连接用硬件设备,实现系统网络化。CX1000/CX2000无纸显示记录仪称为控制测量站更为确切,是集测量、控制、记录、网络功能于一体的大型控制测量站。它可对生产过程的实时、历史状况进行监视,内部具有灵活组态PID回路控制、程序过程控制、逻辑控制功能实现对生产过程控制,内置10Base-T以太网接口或Web server、E-mail和FTP功能能实现网络通信。
(2)欧陆自动化设备(远东)有限公司
欧陆集团新推出2000系列程序过程控制数字调节控制器和3000系列三回路数字调节控制器。欧陆数字调节仪表是最早进入中国市场的国外产品之一。这次推出两个新系列仪表:2000系列中2604、2704程序控制器和3000系列3116、3216、3580、3504数字调节仪表。新系列有3个控制回路,PID、VP或ON/OFF控制可组态成为串级控制、比例控制、前馈控制等方式,用于真空炉、大气炉、锅炉控制以及恒温恒湿房控制,程序控制器可存储60段650步程序控制,可扩展20个逻辑输入和20个继电器输出,实现逻辑程序控制功能。多种开放式协议通信接口Profibus-DP、Modbus RTU、RS-485/232、DeviceNet和EI-Bisyc,方便接入各种工厂自动化总线系统。
(3)日本理化工业株式会社(RKC)
RKC历史悠久,国内引进较早,市场覆盖面广,在塑料机械、电子工业装配加工、食品、半导体行业温度控制中的高端市场占优势。这次展示有程序控制器MA900/901,标准型温控器CB100、CB400、CB500、CB700、CB900系列,高速采样控制周期达25ms的HA900、HA400系列。控制方式有聪敏PID控制外,还有位置比例控制、级联控制。输出方式有继电器接点输出,驱动SSR用电压脉冲输出,电流、电压连续输出,三端双向晶闸管输出,驱动三端双向用触发输出,均可模块化选择。
(4)厦门宇光电子技术有限公司
厦门宇电主导产品AI系列人工智能调节仪,目前年销量达6万台。AI系列人工智能调节仪表采用自学习和模糊控制技术,实现自整定/自适应功能,达到无超调、无久调的精确调节,性能优于传统PID调节器。基于RS-485通信接口的AIBUS通信协议,简单高效又功能齐全,在RS-485通信9600B下,平均每台仪表读取3个常用量及1个参数的时间仅40ms,是采用Modbus协议的仪表3~10倍,利用AIBUS协议的AI系列组建的FCS结构计算机监控系统,每个串口连接50台仪表仍能获得满意的数据刷新率。
(5)北京英华达电子过程科技有限公司
英华达开发出EN3800系列在线振动监测保护系统,用于包括汽轮机、水轮机、压缩机、燃气轮机、鼓风机、电动机和水泵等系统和设备安全有关的多种重要机械参数如转速、轴振/摆度、瓦振/机架振动、胀差、偏心等的连续测量、监视和记录,并利用测量参数对设备进行状态监测保护和故障分析诊断。由于它把振动监测保护系统技术与无纸记录仪表技术融合在一起,使得EN3800系列比美国本特利公司3800系统、德国菲利浦公司RMS700系统某些方面更具特色:采用带背光彩色液晶屏汉化显示,内置带电保护的大容量电子盘及3.5英寸软盘记录测量数据,采用更可靠、更方便且灵活的菜单设置方式,避免采用易出错的短接块设置方式。系统每一通道均可被利用作轴振/摆度、瓦振/机架振动等监测。它可完成众多监测功能的组合,性价比高,带有RS-232/485通信接口,直接同计算机和DCS等系统通信。
发表于中国工控网
楼主 2008/10/3 8:54:14
1、 大气压:地球表面上的空气柱因重力而产生的压力。它和所处的海拔高度、纬度及气象状况有关。
2、 差压(压差):两个压力之间的相对差值。
3、 绝对压力:介质(液体、气体或蒸汽)所处空间的所有压力。
绝对压力是相对零压力而言的压力。
4、 表压力(相对压力):如果绝对压力和大气压的差值是一个正值,那么这个正值就是表压力,即表压力=绝对压力-大气压>0。
5、 负压(真空表压力):和“表压力“相对应,如果绝对压力和大气压的差值是一个负值,那么这个负值就是负压力,即负压力=绝对压力-大气压<0。也称为真空度
6、 静态压力:一般理解为“不随时间变化的压力,或者是随时间变化较缓慢的压力,即在流体中不受流速影响而测得的表压力值”。
7、 动态压力:和“静态压力”相对应,“随时间快速变化的压力,即动压是指单位体积的流体所具有的动能大小。”通常用1/2ρν2计算。
式中ρ—流体密度;v—流体运动速度。”
8、为什么液注高度也可表示压力:压力等于液柱高度、液体密度和重力加速度的乘积。液体的密度在一定温度下是不变的,所以压力也可以用液柱高度。
9、压力单位与法定压力单位Pa之间换算关系
1工程大气压即1kgf/cm2= (9.80665×104)Pa≈(9.81×104)Pa;
1物理工程大气压(atm)=(101325)Pa≈(1.0133×105)Pa;
1巴(bar)=(1000)mbar=(105)Pa。
10、压力开关是一种简单的(压力控制装置),当被测压力达到额定值时,压力开关可发出(警报或控制)信号。
11、压力开关的工作原理是:当被测压力超过额定值时,弹性元件的自由端(产生位移),直接或经过比较后推动(开关元件),改变(开关元件)的通断状态,达到控制被测压力的目的。
12、压力开关采用的弹性元件有(单圈弹簧管)、(膜片)、(膜盒)及(波纹管)等。
开关元件有(磁性开关)、(水银开关)、(微动开关)等。
13、压力开关的开关形式有(常开式)和(常闭式)两种。
14、压力开关的调节方式有(两位式)和(三位式)两种。
发表于中国工控网
楼主 2008/10/3 8:55:10
(1)涡街流量计的优点 与节流式差压流量计相比,涡街流量计有如下优点。
① 结构简单、牢固、安装维护方便。无需导压管和三阀组等,减少泄露、堵塞和冻结等。
② 精确度较高,一般为±(1~1.5)%R。
③ 测量范围宽,合理确定口径,范围度可达20:1。
④ 压损小,约为节流式差压流量计的1/4~1/2。
⑤ 输出与流量成正比的脉冲信号,无零点漂移。
⑥ 在一定雷诺数范围内,输出频率不受流体物性(密度、粘度)和组成的影响,即仪表系数仅与旋涡发生体及管道的形状、尺寸有关。
(2)涡街流量计的局限性
① 对管道机械振动较敏感,不宜用于强振动场所。
② 口径越大,分辨率越低,一般满管时流量计用于DN400以下。
③ 流体温度太高时,传感器还有困难,一般流体温度≤420℃。
④ 当流体有压力脉动或流量脉动时,示值大幅度偏高,影响较大,因此不适用于脉动流。
(3)节流式差压流量计优点
① 节流式差压流量计中的标准孔板结构易于复制,简单牢固,性能稳定可靠,价格低廉。无需实流校准就可使用,这在流量计中是少有的。
② 适用范围广泛。既适用于全部单相流体,也可测量部分混相流,如气固、汽液、固液等。
③ 高温高压大口径和小流量均适用。
④ 对振动不敏感,抗干扰能力特别优越。
(4)节流式差压流量计局限性
① 测量精确度在流量计中属中等水平。由于众多因素的影响错综复杂,精确度难以提高。
② 范围度窄,由于仪表信号(差压)与流量为平方关系,一般范围度仅3:1~4:1。
③ 现场安装条件要求较高,如需较长的直管段(指孔板、喷嘴),一般难以满足。
④ 节流装置与差压显示仪表之间引压管线为薄弱环节,易产生泄露、堵塞及冻结、信号失真等故障。
最近几年发展起来的一体型节流式差压流量计,虽然仍有引压管线,但长度不足1m,因而减小了这方面的缺陷。
⑤ 压损大(指孔板、喷嘴)。
3.1.9 蒸汽相变对流量测量的影响
水蒸气顾名思义是气相,但在一定条件下会变成液相;饱和水蒸气中的水滴本是液相,但在一定条件会被蒸发变成气相。这是蒸汽质量流量测量中常常碰到的汽水相变。
在推导式质量流量计中,关键环节是蒸汽密度的求取,蒸汽相变发生后,就使得通常由蒸汽温度压力求取其密度的关系发生变化,因此必须认真对待。
(1)气相变液相 过热蒸汽在经过长距离输送后,往往会因为热量损失、温度降低,使其从过热状态进入饱和状态,甚至部分蒸汽冷凝出现相变而变成水滴。这些水滴对流量测量结果究竟有多大影响,下面举例说明。
有一常用压力为1.0MPa 的过热羝淞髁课猶m,假设经长距离输送后有10%qm冷凝成水滴,令其为qm1,而保持气态的部分为qms,从定义知,此时湿蒸汽的干度为
X= (3.22)
由于采用温压补偿,所以按照临界饱和状态查表,得到此时的蒸汽(干部分)密度为ρs=5.6808kg/m3,,查水密度表知此时水滴的密度为ρL=882.47 kg/m3,显然水滴与蒸汽干部分的体积流量为
qvl=qml/ρ1 (3.23)
qvs=qms/ρ2 (3.24)
式中 qv1――水滴的体积流量,m3/s;
qvs――蒸汽干部分的体积流量,m3/s。
由定义知,蒸汽干部分体积流量占湿蒸汽总体积流量qv之比Rv为
Rv= (3.25)
因为 (3.26)
所以 Rv= (3.27)
在该例中,Rv=99.93%,由此可见,在湿蒸汽中,水滴所占的体积比可忽略不计。
① 选用涡街流量计时湿度对测量结果的影响。涡街流量计的输出仅与流过测量管的流体流速成正比,在测量湿饱和蒸汽时,水滴对涡街流量计输出的影响可忽略,故可认为,涡街流量计的输出完全是由湿蒸汽的干部分所引起。而干部分的密度,无论是压力补偿或温度补偿,都可较精确地查出。
蒸汽计量地结果往往作为供需双方经济结算地依据。如果双方约定按蒸汽干部分结算费用,冷凝水不收费,则在本例中相变对测量的影响微不足道,可以忽略。如果冷凝水也按照蒸汽一样收费,则涡街流量计的计量结果偏低值为1-X。
② 选用孔板流量计时湿度对测量结果的影响。从GB/T2624-1993标准知[1>,孔板流量计测量蒸汽质量流量时有式(3.1)。
当过热蒸汽热量损失而脱离过热状态后,只可能出现两种情况。一种是进入临界饱和状态,另一种是进入过饱和状态。如果进入临界饱和状态,从理论上讲,流量计不会因此而增大误差,因为在式(3.1)中,根据蒸汽压力查出的р1与实际密度是相符的。如果进入过饱和状态,情况就复杂了。
一般认为,蒸汽干度较高(X≥95%)时流体表现为均相流动。温压补偿可按通常方法进行;但出现一定误差。在式(3.1)中,р1是实际流体湿饱和蒸汽的密度,其值比临界饱和状态的大,而且干度越低密度越大。而人们根据压力查出的是临界饱和状态的密度,比实际密度小,所以质量流量计结果出现负误差。在湿度不进行测量的情况下,X是未知数,因此,测量结果偏低多少是个未知数。
在蒸汽干度较低(X≤95%)时,管道中的流体出现分层流动,产生误差更大。
(2)湿饱和蒸汽变成过热蒸汽 湿饱和蒸汽变成过热蒸汽,一般发生在湿饱和蒸汽突然较大幅度减压,流体出现绝热膨胀时。
① 相变过程。湿饱和蒸汽中的蒸汽和水滴,处于汽液相平衡状态,在压力突然降低而低于平衡压力时,水滴部分蒸汽,同时从液相和气相中吸收汽化热,使汽液相温度降低。如果温度降低得不多或蒸发前湿度较高,就会使温度迅速降低到与新的压力所对应的饱和温度,建立新的平衡。这时蒸汽仍为湿饱和蒸汽。如果压力降低得很多或蒸发前湿度较低,则因水滴蒸发而使温度降低后仍高于新的压力所对应得饱和温度,则蒸汽变为过热状态[5>。
② 蒸发对流量测量的影响
a. 上述蒸发发生后得到的两种结果,前一种对补偿无影响,仅仅是蒸汽中的干部分增加,干度相应增大。
b. 如果蒸发发生后,蒸汽变为过热状态,而流量计又恰巧安装在减压之后的管道上。这时对流量计的影响分以下三种情况。
设计时已经考虑到蒸汽变为过热状态,或处于何种状态难以确定,或有时是过热状态有时是饱和状态,所以采用温压补偿,则上述相变对测量结果无影响。
设计时按饱和蒸汽考虑,而且采用压力补偿,则上述相变将带来较小的误差,即过热蒸汽温度同饱和温度之差所对应的密度差造成的补偿误差。
设计时按饱和蒸汽考虑,但采用温度补偿,则将过热蒸汽温度当作饱和温度去查密度表。一般会引起较大的误差。
③ 举例。有一化工厂[5>,锅炉房供饱和蒸汽,并根据各用户中蒸汽压力妖气值最高的一个决定锅炉供汽压力为1.0MPa,多数用户在蒸汽总管进装置时先经减压阀减压。先从图3.12所示的一个实例着手进行分析。
图3.12蒸汽减压和流量测量示意
用作进入装置蒸汽计量的涡街流量计安装在减压(稳压——阀之后。原设计按饱和蒸汽考虑,采用温度补偿。经减压,蒸汽总管带入的水滴蒸发完后汽温仍高于饱和温度,呈过热状态,现场采集到的数据如图所示。这是流量二次表按照所测量到的温度t2=162.4℃查饱和蒸汽密度表,得р2=3.4528kg/m3,而按照t2和p2两个测量值查过热蒸汽密度表,得密度р2′=2.6897kg/m3,所以质量流量计算结果出现28.37%的误差,即
δmt =
在本例中,如果采用压力补偿,则根据p2=0.42MPa的信号查饱和蒸汽密度表,应得到р″2=2.7761kg/m3,则补偿误差为
δmp=
⑤ 解决办法
a. 将总蒸汽流量计安装在减压阀之前。由于上述蒸汽未经减压时,确属饱和蒸汽,所以,将流量计安装在减压阀之前,按饱和蒸汽补偿方法处理,可保证测量精确度。
b. 如果流量计只能安装在减压阀后面,则可增装一台压力变送器,进行温压补偿。
发表于中国工控网
楼主 2008/10/3 13:09:28