6
这类水厂水泵配置一般有(大、小)两档或(大、中、小)三档功率。水泵的数量和容量由备用要求和供水能力决定,不同档功率的水泵用来调节供水压力。水泵电机同(自耦)变压器降压启动装置来启动,启动电流较大。一般采用以下两种供水方式:1.通过开、停不同组合的机组来调节供水压力,直接给管网用户供水。这种供水方式机组开、停频繁,供水压力只能作有级调节,受操作人员的限制较多。若机组开、停调整不及时或机组功率大小配置不合理,随着用水量的变化,会出现供水压力的大幅度波动。供水压力过低、不能满足用户要求。压力过高时,使管网泄漏和每吨水耗电量增加,造成浪费,容易造成爆管事故。2.在种供水方式的基础上,在管网中增设高位水池。这种方式可以缓解供水压力的波动,也有一定的节能效果。但高位水池占地面积大、造。需要增加值班人员、对水质也有二次污染。由于水池高度和其在管网中的位置受地理环境的限制,在很多水厂起到的节能效果并不明显,只是在泵站短时停电时保证用户用水的要求。因此采用这种供水方式不是佳的解决办法。目前,在水泵调速基础上发展起来的恒压供水技术已广泛应用于中小型水厂的泵站运行控制,在提高供水质量和降耗节能入自动化生产方面都有十分明显的经济效益和社会效益。
系统原理如图1所示,主要由变频器、PLC和低压电气元件组成。系统与原系统的自耦变压器降压启动装置及阀门控制器组成一个整体对五台机组进行自动控制。变频器选用日本三垦公司的MF-220K型变频器,PLC选用德国西门于公司S7-200系列可编程控制器具有以下功能:
图2为系统控制原理框图。
PLC作为整个系统的控制部件,完成模拟量的采样、运算和输出,并完成控制系统的开停、大泵的变频/工频切换、小泵的自动投切、各种工况的监控以及各种故障的检测、判断、处理和报警等任务。
目前中小型泵站的控制设备普遍比较落后,自动化程度低下,工人的素质相对较低。根据现状和我国对这类水厂的技改要求,在中小型水厂应用PLC控制的变频恒压供水系统,由于其技术、自动化程度高、性高、操作简便、快、节能效果好等优点而成为。我公司已愿与各中小型水厂合作完成恒压供水的技术改造,使这些水厂在自动化生产、节能和管理上都上了一个新的台阶
1 引言
ARCNET初由美国Datapoint公司于1977年成功开发并用于办公局域网中,后来以太网以其快的传输速率和大量的量使办公室网络的需求由ARCNET转向以太网。而ARCNET时间的确定性,的性和组网的灵活性,使其在工业实时控制系统中找到了新的应用途径―嵌入式控制系统的应用。
ARCNET广泛应用于实时控制的各个领域,诸如印刷、电力、船舶、铁路运输、楼宇自动化等领域都可以见到它的身影。
ARCNET常常嵌入到具体系统中,国外很多仪器设备都设有ARCNET网络接口标准。目前已有大约1000万个ARCNET节点应用于工业控制领域中[2]。国内的应用也有一定发展,一些技术人员开始尝试用ARCNET网络构造实时控制系统,完成国外进口产品的升级换代。但其发展还远远不够,为了好地推广ARCNET技术,促进工业自动化的发展,本文从ARCNET的技术及应用等角度,加以介绍。
2 ARCNET工作机制
ARCNET局域网采用了优化的令牌总线协议(IEEE802.4),除了具有令牌总线网的一般特点外,还具有如下特点:
① 网络中每个节点保存有下一个节点的逻辑地址,可以生成一个网络活动节点地址表。
② 为了避免目的节点没有空闲缓冲区而引起信息的丢失,设置了空闲缓冲区查询帧,通过查询可以减少不必要的数据重传,提高了网络运行效率。
ARCNET是一个真正开放标准协议,1999年成为美国ANSI/ATA878.1。从OSI参考模型来看,它提供了网络的物理层和数据链路层服务,说明ARCNET能方便地在两个节点之间实现数据包的发送和接收。
2.1 逻辑环的建立
在ARCNET网络中,每个节点均有一个的(Medium Access Control)地址,其取值范围为0~255,其中0是网络广播地址。每个节点在系统初始化或重构时确定它在逻辑环中的下一个节点,并将下一个节点的ID值保存在各自的寄存器NID(Next ID)中,并按地址从小到大的顺序构成一个逻辑环路。图1是一个典型的4个节点的逻辑环。
a 网络拓扑结构 b 逻辑环
图1 逻辑环的建立
令牌作为一组特的信号序列,沿着逻辑环从一个节点传向逻辑邻居(而非物理邻居),因而与节点在网络上的物理位置以及网络的拓扑结构无关。
2.2 节点的进网或退网
当一个节点加电或840ms(2.5Mbps速率下)没有收到令牌时,它即发出一个重构脉冲,使总线终止一切活动,造成令牌丢失,从而引发系统重构。经过重构形成新的逻辑环,新节点也就加入网络中。重构时间的多少取决于网上节点的多少和速率的大小,通常为20~30ms。
当一个节点由于故障或断电而退出网络时不需要进行整个逻辑环的重构,因为当逻辑环的上一个节点(存有退网节点的ID值)向它发送令牌时,不可能收到它的响应,因而令牌发送者将它的NID值加1,重发令牌,直到收到响应,即找到逻辑环中新的下一个节点为止(实际上新的下一个节点就是故障节点在原逻辑环的下一个节点),节点的退网也就完成。
根据现场实际情况,多数网络故障是节点故障,对于ARCNET网络,只需该节点退网,即可保证网络中其它节点正常工作。由于节点退网网络重构,因而网络故障恢复时间很短。
网络中节点的增加或退出都是由网络自动完成,不需外界的介入。
2.3 数据的接收和发送
ARCNET局域网的速率为156.25K~10Mbps,其用户数据的长度为0~507字节,有两种ARCNET数据帧模式,其中短帧模式用户数据的大长度为253字节,长帧模式用户数据的大长度为507字节,只要按一定的格式将用户数据写入协议控制器内置的2K RAM中,在数据发送时,协议控制器会自动将其组织到ARCNET的数据帧中。传输数据在协议控制器内置的2K RAM中的存放格式如图2所示。
地址 短帧模式 长帧模式
0 | SID | 0 | SID |
1 | DID | 1 | DID |
2 | 256-N | 2 | 0 |
. | 未用 | 3 | 512-N |
. | DATA 1 | . | 未用 |
. | DATA 2 | . | DATA 1 |
. | . | . | DATA 2 |
. | . | . | . |
. | DATA N-1 | . | DATA N-1 |
255 | DATA N | 511 | DATA N |
N为用户数据的长度;SID为源节点地址;DID为目的节点地址;DID为0表示广播地址
图2 传输数据在2K RAM中的存放格式
在数据传送的过程中,一旦源节点CPU将待发的用户数据写入协议控制器的内部RAM,在该节点持有令牌时,相当于接收到令牌传送帧(ITT,Invitation to Tran***it,简称令牌),向目的节点发送一个空闲缓存查询帧(FBE,Free Buffer Enquiry),查询目的节点是否有足够的接收缓存,目的节点如有,则回答一个确认帧(ACK, Acknowle-dgement),否则回答一个否认帧(NAK, Negative Acknowledgement)。源节点只有收到来自目的节点的ACK帧后才向其发送一个含有用户数据的数据帧(PAC, Packet)。如果目的节点收到了数据,且通过了CRC校验,则回送一个ACK帧,告诉源节点数据接收成功,否则目的节点不回发任何信息,导致源节点时,源节点认为数据发送失败,等下一次收到令牌时重发该数据帧,至此节点传输过程结束,令牌被传递给下一个节点。图3是节点156向节点255发送数据包的具体过程。
a 等待令牌信号 b 检查是否可发送
c 可发送回答确认 d 送出数据
e 发送完成 f 令牌传向下一个节点
图3 数据的传送过程
ARCNET支持广播消息。广播消息发出后回送确认帧,通过消息广播一次可以将消息传送给网络上的所有节点,可见广播速度很快。
3 ARCNET局域网的性能分析
3.1 机制
ARCNET局域网通过下列几种途径确保数据的传输。
① 数据发送前通过发送FBE帧对目的节点的接收准备进行确认。
② 每个数据帧中都含有一个CRC-16的帧校验序列。
③ 一旦令牌丢失,将引发重构,自动重构网络。
④ 协议控制器提供强大的网络故障诊断功能。
此外,由于协议控制器内置2K RAM,可储存8页短帧模式的用户数据和4页长帧模式的用户数据。即使节点CPU不读取RAM中的数据,数据充满RAM也无关紧要,当RAM要溢出时,节点CPU在收到FBE帧时可回送NAK帧,使RAM不再接收数据,此时源节点将不再发送数据,将令牌传送给下一节点,因此,即使某一节点无法通信,整个网络也不会锁闭。
3.2 数据吞吐量和总开销
由于ARCNET使用令牌传送机制来仲裁节点对网络的访问权,因而网络性能在时间上是可预测的或可确定的。正是由于ARCNET的时间可确定性,使其在工业实时控制领域中的应用经久。
反映局域网能的一个重要参数就是“一个节点在能够发送信息之前等待的时间”,这个参数表示了各个节点每秒钟能发送的信息数,也就是网络的吞吐量。
在2.5Mbps的速率下,ARCNET协议控制器执行简单的令牌传送约需28.2µs(协议控制器响应时间12.6µs+令牌码传送时间15.6µs),因而令牌绕逻辑环一周的传递时间为28.2×Nnodes(µs),Nnodes为网络中活动节点数,一个节点从接收到令牌到发送数据为止,共需117.2µs的处理时间,传输每个字节需11个时钟周期,一个字节的传输时间为11×400ns=4.4µs(速率为2.5Mbps时,每个时钟周期为100ns)。因此令牌绕逻辑环一周坏情况下的传输时间是网上每个节点均有数据需要发送,其大小可表示为(28.2+117.2+4.4×Nbytes)×Nnodes(µs) (Nbytes为每个数据包发送的字节数),因而等待时间Tw的范围为:
28.2×Nnodes µs<Tw<(145.4+4.4×Nbytes)×Nnodes µs
若一网络中活动节点数为100个,令牌环绕一周约有2%的节点需要发送信息,其信息包的总长度为100字节,则一个节点发送数据的等待时间为:
Tw=(145.4+4.4×100) ×100×2%+28.2×100×98%=3934µs
即一个节点在一秒钟内可发送约256个信息包。事实上Datapoint公司的实验表明即使在一个具有175个节点的重载网络中,节点有信息发送的次数与总的具有令牌的次数之比也很少过2%[3]。由此可见ARCNET局域网的性能是很高的。
此外从的效率来看,若一个节点信息包的长度253字节,其传输总时间为145.4+4.4×253=1258.6µs,传输数据所花时间为4.4×253=1113.2µs,效率约为88%(1113.2/1258.6×**=88%),也是相当高的。
3.3 几种流行的现场总线协议比较
表1 几种流行的现场总线协议的性能比较
从表中看出,这几种网络的性能各有特点,PROFIBUS在PLC组网中应用较多,CAN在底层设备上的应用有着鲜明的特点,LONWORKS则具有支持较多的通信介质和的上层软件的特点。而ARCNET传输速度快,数据量大,支持多种网络拓扑。此外,与工业以太网相比,ARCNET采用令牌传递方式数据传递。因此,从控制网络层次上看,若将子系统分成三个层次:设备级、控制级和信息级,则ARCNET协议是控制级上的选择。
4 ARCNET局域网的组网技术
ARCNET局域网的组网相当灵活,用户可以有多种组合。由于ARCNET协议支持多种拓扑结构,诸如总线型、星型、树型、环型网(ARCNET协议本身不支持环型,但经过开发商提供的特殊的集线器可以组成环网)。至于传输介质,一般有三类通信介质可供选择:同轴电缆、双绞线和光纤,这些介质各有利弊,如果网络中使用有源HUB,则三种介质可以混合使用,由此可见ARCNET组网的灵活性。
4.1 大网段长度的确定
对于局域网工程应用而言,网络中网段的长度是一个需要关注的问题。网段是指一个完整的网络中去掉HUB之后若干部分中的任何一个,在无集线器网络或总线网络中,整个ARCNET网络就是一个网段,所有节点都连接到这个网段上。而有集线器的网络就有多个网段组成。一个网段允许的大电缆长度取决于所使用的收发器与电缆类型,表2给出了几种典型的电缆和网络拓扑结构下网段上大电缆的长度和大节点数的参考指标[5]。
表2 几种典型的通信介质和网络拓扑结构下的网段长度
注意:(1) 大网段的长度是以标准电缆的衰减和坏情况下收发器的功率预算为基础算出的;(2) 大节点数不包括HUB端口(因为其内部无协议控制器),但是网段大电缆长度包括连接到HUB端口的电缆长度。
4.2 协议控制器和收发器的选用
ARCNET的协议全部由硬件完成,称为ARCNET协议控制器,因而减轻了节点CPU的开销和软件设计周期,提高了效率。
早期的协议控制器的收发缓存另外扩展2K RAM,因而其芯片的引脚较多,体积较大,而且对网络的诊断功能不强。笔者曾使用COM90C65设计ARCNET局域网,由于其诊断功能不足,只有通过增加软件开销来加强网络管理功能,但是效果不佳,在产生活动节点地址表方面也颇费周折,而对令牌的监视则束手无策。尽管后来的COM90C66将2K RAM内置到协议控制内部,但是使用上还存在许多不便。近几年推出的COM 200系列芯片,无论在结构上和功能上都作了很大改进,使开发人员应用为便捷,而且在组网上提供了多的灵活性,如通过对内部寄存器的设置可灵活改变速率,根据网络中节点数目的多少设置重构时间,以得到短的重构时间,进一步提升了系统的性和快速性。通过某些寄存器的配合使用,较少的软件开销,便可得到网络节点活动地址表以及网络的故障信息,大大方便了网络管理。
在收发器方面与早期的为2.5Mbps优化的双脉冲收发器相比,收发器的尺寸减少了很多,而且可以工作在10Mbps的传输速率下,当传输距离相对较短时,设计者可以选择成本较低的RS-485收发器。市场上可以购买到日本Standard Microsystem公司生产的ARCNET收发器,它能很好地工作在10Mbps下,而且输出电压较早期有很大的减少。
4.3 软件开发
早期的ARCNET网络部件的开发环境不是很好,这在一定程度***了它的应用。笔者当初设计ARCNET应用系统时,网络装置的调试和应用程序的开发占用了许多精力。如今ARCNET开发商对这些环节做了很大改进,有很多的开发工具可供选择。
根据应用层面和使用人员的层次,开发商们提供了灵活的部件。如各种类型的ARCNET网卡和丰富的ARCNET集线器可供用户选择,并提供相应的驱动程序。其中的空协议栈驱动是嵌入式网络普遍采用的方式,在这种方式中,数据链路层可以直接和应用层对话,用户在应用程序中根据自己的需要定义协议。当传输速度非常重要,而与其他系统的连通性要求不高时,这种方式是的选择。
如果用户自行设计网卡,则提供基于PC机的调试软件和驱动程序的源代码供用户参考。为便捷的是某些供应商还提供开发装置的板和网络分析仪,以方便设计人员分析网络的性能,进一步缩短开发周期。
5 结语
由于ARCNET网络具有传输时间的确定性,网络组建的灵活性和的性,在实时控制系统中有着广泛的应用,甚至有观点提出ARCNET已成为现场总线技术应用的三个层次中的部分。国内的设计人员也开始关注ARCNET网络技术,并在设备改造和国外配件的升级换代方面做了成功的尝试。笔者希望通过本文的介绍,起到抛砖引玉的作用,促进ARCNET在国内的进一步应用,以丰富现场总线控制技术在我国的发展。
引 言
CAN总线以其开发维护、总线利用率高、传输距离远(远可达10 km)、传输速率高(可达1 Mbps)使用户能组建稳定、的现场总线网络。CAN总线已被广泛应用到各个自动化控制系统中,例如汽车电子、自动控制、智能大厦、电力系统、安防监控等领域。随着CAN总线网络区域的扩大,2个节点之间的直接将难以满足远距离通信要求。CAN中继器是延长CAN总线通信距离的中转站,其通信效率和通信性直接影响CAN总线的通信能力。传统的基于单MCU的CAN中继器难以满足大量数据的中转要求,本文基于双MCU设计的CAN总线中继器。
1 系统总体设计
CY7C136是2 KB高速CMOS静态RAM。同一片RAM上有2组数据线和2组地址线,对每个端口的控制是相互立的,可分别在存储器的任意位置存取数据。
双口RAM作为2个MCU的共享资源,一个端口与MCUl相连,另一个端口与MCU2相连。从SJAlOOOCAN总线接口1接收来的数据送入双口RAM,这些数据被MCU2取走并送到SJAl000 CAN总线接口2上;从SJAl000 CAN总线接口2接收来的数据也送入双口RAM,并被MCUl取走送到SJAl000 CAN总线接口1上。由于MCU的地址总线和数据总线是复用的,因此采用锁存器进行地址锁存,硬件总体结构如图1所示。
2 硬件电路实现
电路中使用的2片MCU为8051系列单片机AT89C52,、开发、易于实现、性高。MCUl与MCU2之间通过P1口的P1.5、P1.6、P1.7进行联络与应答,保证系统存储空间访问的性。
2.1 MCU主控制电路
MCUl(AT89C52片1)连接的外围设备有双口RAM和CAN总线控制器。为了防止地址冲突,采用74LS138译码器进行地址译码。AT89C52的PO为地址/数据复用口,采用74HC573作为地址锁存器。由于MCUl和MCU2电路原理相同,本文只介绍MCUl控制电路。MCUl电路原理如图2所示。
2.2 双口RAM接口电路
双口RAM电路接口如图3所示。双口RAM芯片CY7C136作为2个MCU数据的中转站,分别与2个MCU的相应引脚相连。其中CY7C136引脚I/O0L~1/O7L与1片AT89C52(MCUl)的PO相连,引脚I/OOR~I/O7R与2片AT89C52(MCU2)相连。YOAOUT为MCU1读写双口RAM的片选信号,Y1AOUT为MCU2读写双口RAM的片选信号,并将MCU的读写控制信号线与双口RAM的相应读写控制信号线相连。
2.3 CAN总线控制器接口电路
CAN总线控制器采用sJAl000。74LSl38译码器的YO引脚输出作为SJAl000的片选信号。中断引脚连接MCUl的I,作为处理CAN接收中断的触发信号。电路原理如图4所示。
3 软件设计实现
3.1 存储空间分配思想
为使双口RAM实现率的应用,将2 KB的存储空间设计成2个1 KB大小的环形队列形式,每一个环形队列的结构如图5所示(图中阴影部分为存有数据的区域,非阴影区域为空闲区域)。
3.2 程序控制流程
中继器只是中转来自总线上的数据,而这些数据是随机的,因此接收采用中断的方式。某一时刻只要SJAl000成功接收一
帧数据,就会向负责本端口的MCU申请中断,进行数据接收,并将数据送入环形队列queue。
当环形队列中有待发送的数据时,程序的处理流程如图6所示(其中,tail和bead分别为环形队列的尾指针和头指针)。MCU对方环形队列中的信息,主要是查看环形队列信息是否为空,如果为空则不对其操作。如果不为空,则队列中有待发送的信息,于是启动一次信息发送。如果发送成功,则通过联络信号通知对方修改环形队列指针。
4 测 试
对基于双口RAM的双MCU中继器进行压力测试(高数据负载率下测试)。短距离内向2个CAN口加载10 000帧数据,测试中继器成功中转情况,其如表1所列(表身数据为成功中转帧数)。根据CAN总线规定,其平均负载率不过65%,传统的单MCU CAN中继器平均负载率很难达到60%。从表1可以看出,引入双MCU后CAN中继器的性能大大提高,能在负载率过60%的情况下稳定工作。环形队列queue溢出的情况可以通过增加双口RAM的大小来解决。
结 语
采用双MCU配合双口RAM设计CAN总线中继器,解决了单MCU无法快速处理CAN总线负载过重的问题,使其性能和效率得到了很大提高,为CAN中继器在工程领域的优化设计提供了良好的技术平台和解决方案。