1、计 算 机 网 络 课 程 设 计 报 告院 ( 系 ) : 计算机学院 专 业: 计算机科学与技术 姓 名: 班 级: 学 号: 指导教师: 2009 年 7 月 4 日计算机网络课程设计之协议编程实验一 帧封装实验目的: 编写程序,根据给出的原始数据,组装一个 IEEE 802.3 格式的帧(题目)默认的输入文件为二进制原始数据(文件名分别为 input1 和 input2) ) 。 要求程序为命令行程序。比如,可执行文件名为 framer.exe,则命令行形式如下:framer inputfile outputfile,其中,inputfile 为原始数据文件,outputfile 为输
2、出结果。 输出:对应 input1 和 input2 得结果分别为 output1 和 output2。试验要求: 编写程序,根据给出的原始数据,组装一个 IEEE 802.3 格式的帧(题目)默认的输入文件为二进制原始数据(文件名分别为 input1 和 input2) ) 。 要求程序为命令行程序。比如,可执行文件名为 framer.exe,则命令行形式如下:framer inputfile outputfile,其中,inputfile 为原始数据文件,outputfile 为输出结果。输出:对应 input1 和 input2 得结果分别为 output1 和 output2验设计相关
3、知识:帧:来源于串行线路上的通信。其中,发送者在发送数据的前后各添加特殊的字符,使它们成为一个帧。Ethernet 从某种程度上可以被看作是机器之间的数据链路层连接。按 802.3 标准的帧结构如下表所示(802.3 标准的 Ethernet 帧结构由 7 部分组成)802.3 标准的帧结构前导码 帧前定界符 目的地址 源地址 长度字段 数据字段 校验字段7B 1B (2/6B) (2/6B) (2B) (长度可变) (4B)其中,帧数据字段的最小长度为 46B。如果帧的 LLC 数据少于 46B,则应将数据字段填充至 46B。填充字符是任意的,不计入长度字段值中。在校验字段中,使用的是 CR
4、C 校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC 数据字段。循环冗余编码(CRC)是一种重要的线性分组码、编码和解码方法,具有简单、检错和纠错能力强等特点,在通信领域广泛地用于实现差错控制。CRC 校验码的检错能力很强,不仅能检查出离散错误,还能检查出突发错误。利用 CRC 进行检错的过程可简单描述如下:在发送端根据要传送的 k 位二进制码序列,以一定的规则产生一个校验用的 r 位监督码(CRC 码),附在原始信息的后边,构成一个新的二进制码序列(共 k+r 位),然后发送出去。在接收端,根据信息码和 CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则在差错控
5、制理论中称为“生成多项式” 。CRC 的基本实现前导码 帧前定界符 目的地址 源地址 长度字段数据字段 校验字段7B 1B (2/6B) (2/6B) (2B) (长度可变) (4B)循环冗余校验码的特点:(1)CRC 校验码可检测出所有单个错误。 (2)CRC 校验码可检测出所有奇数位错误。 (3)CRC 校验码可检测出所有双位的错误(4)CRC 校验码可检测出所有小于、等于校验位长度的突发错误。 (5)CRC 校验码可以 的概率检测出长度为(K+1)位的突发错误(1/2)-k实验分析: 填充帧头部字段要完成一次帧封装的过程,首先要完成的就是帧头部的装入,这一过程只要将签到吗、定界符、目的地
6、址、源地址、长度字段的相应数值按顺序写入就可以了。其中,长度字段的值即为要发送的数据的实际长度。 填充数据字段在填充数据字段的过程中要注意的主要问题是数据字段的长度。802.3 标准中规定了帧数据字段的最小长度为 46B,最大长度为 1500B。如果数据不足46B,则需要通过填充 0 来补足;若数据长度超过 1500B,则的大奖超过部分封装入下一个帧进行发送。 CRC 校验帧封装的最后一步就是对数据进行校验,并将校验结果记入帧校验字段。程序流程图: 以 二 进 制 、 可 读 写 方 式 打 开 输 出 文 件开 始写 入 前 导 码 和 这 界 定 符获 取 当 前 文 件 指 针写 入 目
7、 的 地 址 和 源 地 址打 开 输 入 数 据 文 件 、 获 得 稳 健 长 度length, 并 将 长 度 值 写 入 输 出 文 件将 输 入 数 据 文 件 的 内 容 填 入 数据 字 段数 据 字 段 长 度 =46B填 充 ( 46-length) 字 节 0关 闭 输 入 数 据 文 件添 加 1字 节 0, 用 于 CR计 算计 算 CR值 , 填 充 校 验 字 段风 转 完 成 , 关 闭 输 出 文 件结 束NYCRC 计算流程图:序源代码:#include#include#includevoid main(int argc,char*argv)/如果输入命令行不
8、正确,则输出提示后退出。if(argc!=3)cout8);file.put(char(length/将文件长度值按照逆序写入到输出文件的长度字段中。file.write(data,length);/将 data 内容写入到输出文件中。/如果输入文件长度不足 B,则用补足 B。if(length7);/将输入数据相应的值递补到余数末位。crc=crc(0x07);/进行除法运算,即与除数的低位相异或。else/当前余数的最高位为,不需要进行除法运算。crc=(crc7);/将输入数据相应位的值递补到余数末位。ch=ch #include #include #include#include #p
9、ragma comment(lib,“ws2_32“) /指定连接到网络应用和 internet#define IO_RCVALL _WSAIOW(IOC_VENDOR,1) typedef struct IP_HEAD union /定义联合 unsigned char Version; unsigned char HeadLen; ; unsigned char ServiceType; unsigned short TotalLen; unsigned short Identifier; union unsigned short Flags; unsigned short FragOff
10、set; ; unsigned char TimeToLive; unsigned char Protocol; unsigned short HeadChecksum; unsigned int SourceAddr; unsigned int DestinAddr; unsigned char Options; ip_head; /定义 IP 头部的数据结构void main(int argc,char *argv) using namespace std; ofstream outfile(“C:logfile.txt“,ios:out);if(argc!=2) couth_addr_l
11、ist0; if(bind(sock,(PSOCKADDR) cout4)5)1) size -=sizeof(USHORT); if(size ) cksum += *(UCHAR*)buffer; cksum = (cksum 16) + (cksum cksum += (cksum 16); return (USHORT)(cksum); 程序流程图:源程序代码:#include #include #include #include #include #include 构 造 原 始 套 接 字 , 并 初 始 化开 始填 充 IP头 部计 算 IP头 部 检 验 和构 造 TCP伪 头
12、 部填 充 TCP头 部计 算 TCP头 部 校 验 和发 送 TCP数 据 报结 束#include #include #pragma comment(lib,“ws2_32.lib“)#define IPVER 4 /IP 协议预定#define MAX_BUFF_LEN 65500 /发送缓冲区最大值typedef struct ip_hdr /定义 IP 首部 UCHAR h_verlen; /4 位首部长度,4 位 IP 版本号 UCHAR tos; /8 位服务类型 TOS USHORT total_len; /16 位总长度(字节) USHORT ident; /16 位标识 U
13、SHORT frag_and_flags; /3 位标志位 UCHAR ttl; /8 位生存时间 TTL UCHAR proto; /8 位协议 (TCP, UDP 或其他 ) USHORT checksum; /16 位 IP 首部校验和 ULONG sourceIP; /32 位源 IP 地址 ULONG destIP; /32 位目的 IP 地址 IP_HEADER; typedef struct tsd_hdr /定义 TCP 伪首部 ULONG saddr; /源地址ULONG daddr; /目的地址 UCHAR mbz; /没用UCHAR ptcl; /协议类型 USHORT
14、tcpl; /TCP 长度 PSD_HEADER; typedef struct tcp_hdr /定义 TCP 首部 USHORT th_sport; /16 位源端口 USHORT th_dport; /16 位目的端口 ULONG th_seq; /32 位序列号 ULONG th_ack; /32 位确认号 UCHAR th_lenres; /4 位首部长度/6 位保留字 UCHAR th_flag; /6 位标志位 USHORT th_win; /16 位窗口大小 USHORT th_sum; /16 位校验和 USHORT th_urp; /16 位紧急数据偏移量 TCP_HEAD
15、ER; /CheckSum:计算校验和的子函数 USHORT checksum(USHORT *buffer, int size) unsigned long cksum=0; while(size 1) cksum+=*buffer+; size -=sizeof(USHORT); if(size) cksum += *(UCHAR*)buffer; cksum = (cksum 16) + (cksum cksum += (cksum 16); return (USHORT)(cksum); int main(int argc, char* argv) WSADATA WSAData; S
16、OCKET sock; IP_HEADER ipHeader; TCP_HEADER tcpHeader; PSD_HEADER psdHeader; char Sendto_BuffMAX_BUFF_LEN; /发送缓冲区unsigned short check_BuffMAX_BUFF_LEN; /检验和缓冲区const char tcp_send_data=“This is my homework of networt,I am happy!“;BOOL flag; int rect,nTimeOver; if (argc!= 5) printf(“Useage: SendTcp sor
17、uce_ip source_port dest_ip dest_port n“); return false; if (WSAStartup(MAKEWORD(2,2), return false; if(sock=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED)=INVALID_SOCKET) printf(“Socket Setup Error!n“); return false; flag=true; if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*) ret
18、urn false; nTimeOver=1000; if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char*) return false; /填充 IP 首部 ipHeader.h_verlen=(IPVER4 | sizeof(ipHeader)/sizeof(unsigned long); ipHeader.tos=(UCHAR)0; ipHeader.total_len=htons(unsigned short)sizeof(ipHeader)+sizeof(tcpHeader)+sizeof(tcp_send_data); ipHead
19、er.ident=0; /16 位标识ipHeader.frag_and_flags=0; /3 位标志位ipHeader.ttl=128; /8 位生存时间 ipHeader.proto=IPPROTO_UDP; /协议类型ipHeader.checksum=0; /检验和暂时为 0ipHeader.sourceIP=inet_addr(argv1); /32 位源 IP 地址ipHeader.destIP=inet_addr(argv3); /32 位目的 IP 地址/计算 IP 头部检验和memset(check_Buff,0,MAX_BUFF_LEN);memcpy(check_Buf
20、f,ipHeader.checksum=checksum(check_Buff,sizeof(IP_HEADER);/构造 TCP 伪首部psdHeader.saddr=ipHeader.sourceIP;psdHeader.daddr=ipHeader.destIP;psdHeader.mbz=0;psdHeader.ptcl=ipHeader.proto;psdHeader.tcpl=htons(sizeof(TCP_HEADER)+sizeof(tcp_send_data);/填充 TCP 首部 tcpHeader.th_dport=htons(atoi(argv4); /16 位目的端
21、口号tcpHeader.th_sport=htons(atoi(argv2); /16 位源端口号 tcpHeader.th_seq=0; /SYN 序列号tcpHeader.th_ack=0; /ACK 序列号置为 0/TCP 长度和保留位tcpHeader.th_lenres=(sizeof(tcpHeader)/sizeof(unsigned long)4|0); tcpHeader.th_flag=2; /修改这里来实现不同的标志位探测,2 是 SYN,1 是/FIN,16是 ACK 探测 等等 tcpHeader.th_win=htons(unsigned short)16384);
22、 /窗口大小tcpHeader.th_urp=0; /偏移大小 tcpHeader.th_sum=0; /检验和暂时填为 0/计算 TCP 校验和 memset(check_Buff,0,MAX_BUFF_LEN);memcpy(check_Buff, memcpy(check_Buff+sizeof(psdHeader), memcpy(check_Buff+sizeof(PSD_HEADER)+sizeof(TCP_HEADER),tcp_send_data,sizeof(tcp_send_data);tcpHeader.th_sum=checksum(check_Buff,sizeof(
23、PSD_HEADER)+sizeof(TCP_HEADER)+sizeof(tcp_send_data); /填充发送缓冲区memset(Sendto_Buff,0,MAX_BUFF_LEN);memcpy(Sendto_Buff,memcpy(Sendto_Buff+sizeof(IP_HEADER),memcpy(Sendto_Buff+sizeof(IP_HEADER)+sizeof(TCP_HEADER),tcp_send_data,sizeof(tcp_send_data);int datasize=sizeof(IP_HEADER)+sizeof(TCP_HEADER)+sizeo
24、f(tcp_send_data);/发送数据报的目的地址SOCKADDR_IN dest; memset(dest.sin_family=AF_INET; dest.sin_addr.s_addr=inet_addr(argv3); dest.sin_port=htons(atoi(argv4);rect=sendto(sock,Sendto_Buff,datasize, 0,(struct sockaddr*) if (rect=SOCKET_ERROR) printf(“send error!:%dn“,WSAGetLastError(); return false; else print
25、f(“send ok!n“); closesocket(sock); WSACleanup(); return 1; 实验运行结果:所以进入 dos,并进入到该可执行文件的目录下后在命令提示行下输入:sendtcp 192.168.18.3 12 192.168.18.7 25,回车运行,运行截图如下:本实验小结:在对 TCP 数据包头部进行填充时,首先需要我们去充分了解它的数据结构,在这个过程中可以了解相应字节上应该存放的内容和它们的功能。由于本次的课程设计只要求填充一个 TCP 数据包,然后将其发送出去,使用的数据发送函数是 sendto(),成功地完成 sendto()调用只能保证数据已
26、经从本地发送出去,并不意味着数据传送到达目的地。课程设计总结在此次的计算机网络课程设计中,我们一共做了三个程序设计的实验,帧封装、IP 数据包解析和发送 TCP 数据包。在编写程序的过程中,用到了很多的函数,这些函数的运用使得程序简便而且正确的运行出来。为了正确的实现这些函数,查阅了很多相关的资料,从中获得了大量的有用的信息,收获也颇丰富。在这次的课程设计中,动手能力得到了很大的提高,而且将这学期所学的网络的知识和以前所学的编程的知识充分的联系起来,对这门课的认识又提高了一层。电厂分散控制系统故障分析与处理作者:单位:摘要:归纳、分析了电厂 DCS 系统出现的故障原因,对故障处理的过程及注意事
27、项进行了说明。为提高分散控制系统可靠性,从管理角度提出了一些预防措施建议,供参考。关键词:DCS 故障统计分析 预防措施随着机组增多、容量增加和老机组自动化化改造的完成,分散控制系统以其系统和网络结构的先进性、控制软件功能的灵活性、人机接口系统的直观性、工程设计和维护的方便性以及通讯系统的开放性等特点,在电力生产过程中得到了广泛应用,其功能在 DAS、MCS、BMS、SCS 、DEH 系统成功应用的基础上,正逐步向MEH、BPC、ETS 和 ECS 方向扩展。但与此同时,分散控制系统对机组安全经济运行的影响也在逐渐增加;因此如何提高分散控制系统的可靠性和故障后迅速判断原因的能力,对机组的安全经
28、济运行至关重要。本文通过对浙江电网机组分散控制系统运行中发生的几个比较典型故障案例的分析处理,归纳出提高分散系统的可靠性的几点建议,供同行参考。1 考核故障统计浙江省电力行业所属机组,目前在线运行的分散控制系统,有 TELEPERM-ME、MOD300,INFI-90,NETWORK-6000, MACS 和 MACS-,XDPS-400,A/I 。DEH 有 TOSAMAP-GS/C800, DEH-IIIA 等系统。笔者根据各电厂安全简报记载,将近几年因分散控制系统异常而引起的机组故障次数及定性统计于表 1表 1 热工考核故障定性统计2 热工考核故障原因分析与处理根据表 1 统计,结合笔者
29、参加现场事故原因分析查找过程了解到的情况,下面将分散控制系统异常(浙江省电力行业范围内)而引起上述机组设备二类及以上故障中的典型案例分类浅析如下:2.1 测量模件故障典型案例分析 测量模件“异常” 引起的机组跳炉、跳机故障占故障比例较高,但相对来讲故障原因的分析查找和处理比较容易,根据故障现象、故障首出信号和 SOE 记录,通过分析判断和试验,通常能较快的查出“异常”模件。这种“异常”模件有硬性故障和软性故障二种,硬性故障只能通过更换有问题模件,才能恢复该系统正常运行;而软性故障通过对模件复位或初始化,系统一般能恢复正常。比较典型的案例有三种:(1)未冗余配置的输入/输出信号模件异常引起机组故
30、障。如有台 130MW 机组正常运行中突然跳机,故障首出信号为“ 轴向位移大” ,经现场检查,跳机前后有关参数均无异常,轴向位移实际运行中未达到报警值保护动作值,本特利装置也未发讯,但 LPC 模件却有报警且发出了跳机指令。因此分析判断跳机原因为 DEH 主保护中的LPC 模件故障引起,更换 LPC 模件后没有再发生类似故障。另一台 600MW 机组,运行中汽机备用盘上“汽机轴承振动高”、 “汽机跳闸 ”报警,同时汽机高、中压主汽门和调门关闭,发电机逆功率保护动作跳闸;随即高低压旁路快开,磨煤机 B 跳闸,锅炉因“汽包水位低低”MFT。经查原因系1 高压调门因阀位变送器和控制模件异常,使调门出
31、现大幅度晃动直至故障全关,过程中引起1 轴承振动高高保护动作跳机。更换1 高压调门阀位控制卡和阀位变送器后,机组启动并网,恢复正常运行。(2)冗余输入信号未分模件配置,当模件故障时引起机组跳闸:如有一台 600MW 机组运行中汽机跳闸,随即高低压旁路快开,磨煤机 B 和 D 相继跳闸,锅炉因 “炉膛压力低低”MFT。当时因系统负荷紧张,根据 SOE 及 DEH内部故障记录,初步判断的跳闸原因而强制汽机应力保护后恢复机组运行。二日后机组再次跳闸,全面查找分析后,确认 2 次机组跳闸原因均系 DEH 系统三路“ 安全油压力低”信号共用一模件,当该模件异常时导致汽轮机跳闸,更换故障模件后机组并网恢复
32、运行。另一台 200MW 机组运行中,汽包水位高值,值相继报警后 MFT保护动作停炉。查看 CRT 上汽包水位, 2 点显示 300MM,另 1 点与电接点水位计显示都正常。进一步检查显示300MM 的 2 点汽包水位信号共用的模件故障,更换模件后系统恢复正常。针对此类故障,事后热工所采取的主要反事故措施,是在检修中有针对性地对冗余的输入信号的布置进行检查,尽可能地进行分模件处理。(3)一块 I/O 模件损坏,引起其它 I/O 模件及对应的主模件故障:如有台机组 “CCS 控制模件故障“ 及“一次风压高低” 报警的同时, CRT 上所有磨煤机出口温度、电流、给煤机煤量反馈显示和总煤量百分比、氧
33、量反馈,燃料主控 BTU 输出消失,F 磨跳闸(首出信号为“一次风量低”) 。4 分钟后 CRT 上磨煤机其它相关参数也失去且状态变白色,运行人员手动 MFT(当时负荷 410MW) 。经检查电子室制粉系统过程控制站(PCU01 柜 MOD4)的电源电压及处理模件底板正常,二块 MFP 模件死机且相关的一块 CSI 模件(模位 1-5-3,有关 F 磨 CCS 参数)故障报警,拔出检查发现其 5VDC 逻辑电源输入回路、第 4 输出通道、连接 MFP 的 I/O 扩展总线电路有元件烧坏(由于输出通道至 BCS(24VDC) ,因此不存在外电串入损坏元件的可能) 。经复位二块死机的 MFP 模件
34、,更换故障的 CSI 模件后系统恢复正常。根据软报警记录和检查分析,故障原因是 CSI 模件先故障,在该模件故障过程中引起电压波动或 I/O 扩展总线故障,导致其它 I/O 模件无法与主模件 MFP03 通讯而故障,信号保持原值,最终导致主模件 MFP03 故障(所带 A-F 磨煤机 CCS 参数) ,CRT 上相关的监视参数全部失去且呈白色。 2.2 主控制器故障案例分析 由于重要系统的主控制器冗余配置,大大减少了主控制器“异常” 引发机组跳闸的次数。主控制器“异常” 多数为软故障,通过复位或初始化能恢复其正常工作,但也有少数引起机组跳闸,多发生在双机切换不成功时,如:(1)有台机组运行人员
35、发现电接点水位计显示下降,调整给泵转速无效,而 CRT 上汽包水位保持不变。当电接点水位计分别下降至甲-300mm,乙-250mm,并继续下降且汽包水位低信号未发,MFT 未动作情况下,值长令手动停炉停机,此时 CRT 上调节给水调整门无效,就地关闭调整门;停运给泵无效,汽包水位急剧上升,开启事故放水门,甲、丙给泵开关室就地分闸,油泵不能投运。故障原因是给水操作站运行 DPU 死机,备用 DPU 不能自启动引起。事后热工对给泵、引风、送风进行了分站控制,并增设故障软手操。(2)有台机组运行中空预器甲、乙挡板突然关闭,炉膛压力高 MFT 动作停炉;经查原因是风烟系统 I/O 站 DPU发生异常,
36、工作机向备份机自动切换不成功引起。事后电厂人员将空预器烟气挡板甲 1、乙 1 和甲 2、乙 2 两组控制指令分离,分别接至不同的控制站进行控制,防止类似故障再次发生。2.3 DAS 系统异常案例分析DAS 系统是构成自动和保护系统的基础,但由于受到自身及接地系统的可靠性、现场磁场干扰和安装调试质量的影响,DAS 信号值瞬间较大幅度变化而导致保护系统误动,甚至机组误跳闸故障在我省也有多次发生,比较典型的这类故障有: (1)模拟量信号漂移:为了消除 DCS 系统抗无线电干扰能力差的缺陷,有的 DCS 厂家对所有的模拟量输入通道加装了隔离器,但由此带来部分热电偶和热电阻通道易电荷积累,引起信号无规律
37、的漂移,当漂移越限时则导致保护系统误动作。我省曾有三台机组发生此类情况(二次引起送风机一侧马达线圈温度信号向上漂移跳闸送风机,联跳引风机对应侧) ,但往往只要松一下端子板接线(或拆下接线与地碰一下)再重新接上,信号就恢复了正常。开始热工人员认为是端子柜接地不好或者 I/O 屏蔽接线不好引起,但处理后问题依旧。厂家多次派专家到现场处理也未能解决问题。后在机组检修期间对系统的接地进行了彻底改造,拆除原来连接到电缆桥架的AC、 DC 接地电缆;柜内的所有备用电缆全部通过导线接地;UPS 至 DCS 电源间增加 1 台 20kVA 的隔离变压器,专门用于系统供电,且隔离变压器的输出端 N 线与接地线相
38、连,接地线直接连接机柜作为系统的接地。同时紧固每个端子的接线;更换部份模件并将模件的软件版本升级等。使漂移现象基本消除。(2)DCS 故障诊断功能设置不全或未设置。信号线接触不良、断线、受干扰,使信号值瞬间变化超过设定值或超量程的情况,现场难以避免,通过 DCS 模拟量信号变化速率保护功能的正确设置,可以避免或减少这类故障引起的保护系统误动。但实际应用中往往由于此功能未设置或设置不全,使此类故障屡次发生。如一次风机 B 跳闸引起机组 RB 动作,首出信号为轴承温度高。经查原因是由于测温热电阻引线是细的多股线,而信号电缆是较粗的单股线,两线采用绞接方式,在震动或外力影响下连接处松动引起轴承温度中
39、有点信号从正常值突变至无穷大引起(事后对连接处进行锡焊处理) 。类似的故障有:民工打扫现场时造成送风机轴承温度热电阻接线松动引起送风机跳闸;轴承温度热电阻本身损坏引起一次风机跳闸;因现场干扰造成推力瓦温瞬间从 99突升至 117,1 秒钟左右回到 99,由于相邻第八点已达 85,满足推力瓦温度任一点 105同时相邻点达 85跳机条件而导致机组跳闸等等。预防此类故障的办法,除机组检修时紧固电缆和电缆接线,并采用手松拉接线方式确认无接线松动外,是完善 DCS 的故障诊断功能,对参与保护连锁的模拟量信号,增加信号变化速率保护功能尤显重要(一当信号变化速率超过设定值,自动将该信号退出相应保护并报警。当
40、信号低于设定值时,自动或手动恢复该信号的保护连锁功能) 。(3)DCS 故障诊断功能设置错误:我省有台机组因为电气直流接地,保安 1A 段工作进线开关因跳闸,引起挂在该段上的汽泵 A 的工作油泵 A 连跳,油泵 B 连锁启动过程中由于油压下降而跳汽泵 A,汽泵 B 升速的同时电泵连锁启动成功。但由于运行操作速度过度,电泵出口流量超过量程,超量程保护连锁开再循环门,使得电泵实际出水小,B 泵转速上升到 5760 转时突然下降 1000 转左右(事后查明是抽汽逆止阀问题) ,最终导致汽包水位低低保护动作停炉。此次故障是信号超量程保护设置不合理引起。一般来说,DAS 的模拟量信号超量程、变化速率大等
41、保护动作后,应自动撤出相应保护,待信号正常后再自动或手动恢复保护投运。2.4 软件故障案例分析分散控制系统软件原因引起的故障,多数发生在投运不久的新软件上,运行的老系统发生的概率相对较少,但一当发生,此类故障原因的查找比较困难,需要对控制系统软件有较全面的了解和掌握,才能通过分析、试验,判断可能的故障原因,因此通常都需要厂家人员到现场一起进行。这类故障的典型案例有三种: (1)软件不成熟引起系统故障:此类故障多发生在新系统软件上,如有台机组 80%额定负荷时,除 DEH 画面外所有 DCS 的 CRT 画面均死机(包括两台服务器) ,参数显示为零,无法操作,但投入的自动系统运行正常。当时采取的
42、措施是:运行人员就地监视水位,保持负荷稳定运行,热工人员赶到现场进行系统重启等紧急处理,经过 30 分钟的处理系统恢复正常运行。故障原因经与厂家人员一起分析后,确认为 DCS 上层网络崩溃导致死机,其过程是服务器向操作员站发送数据时网络阻塞,引起服务器与各操作员站的连接中断,造成操作员站读不到数据而不停地超时等待,导致操作员站图形切换的速度十分缓慢(网络任务未死) 。针对管理网络数据阻塞情况,厂家修改程序考机测试后进行了更换。另一台机组曾同时出现 4 台主控单元“白灯”现象,现场检查其中 2 台是因为 A 机备份网停止发送,1 台是 A 机备份网不能接收,1 台是 A 机备份网收、发数据变慢(比正常的站慢几倍) 。这类故障的原因是主控工作机的网络发送出现中断丢失,导致工作机发往备份机的数据全部丢失,而双机的诊断是由工作机向备份机发诊断申请,由备份机响应诊断请求,工作机获得备份机的工作状态,上报给服务器。由于工作机的发送数据丢失,所以工作机发不出申请,也就收不到备份机的响应数据,认为备份机故障。临时的解决