Page 43 - 网络电信2018年9月刊下
P. 43

解   决  方  案

            统需要保证能以最快的速度发现线路故障并给出故障的位置。                          ','%s')",nSegmentID,szSegmentName,szStation-Name,
            故障处理程序编写同一般的VC++套接字编程基本相同,启动                         szAlarmLevel,szAlarmType,szAlarmDateTime,fLocation,
            Socket进程监听UDP端口。收到信息后分析字段,然后上传到数                     szRemark);
                  [9]
            据库中 。故障处理线程主要代码如下:                                       db.ExecuteSQL( sql) ;
                void  CAlarmReceiver:ProcessMessage(void  *  pDa-ta,  }
            int nLen)                                                catch( Error e)
                {                                                    {int count = m_listMessage.GetItemCount() ;
                //建立数据库连接                                            CString strItem;
                static CDatabase db;                                 strItem.Format("%d",count+1) ;
                if(! db.IsOpen( ))                                   strItem.Format("插入数据发生错误: %s",sql);
                {                                                    }
                CString strLogin;                                    }
                try{db.OpenEx(strLogin);
                }
                }
                //报警数据字段
                TCHAR szStationName[100];//通信站名称
                TCHAR szSegmentName[100];//光缆名称
                float fLocation;//光缆位置
                TCHAR szAlarmType[50]//报警类型
                TCHAR szAlarmLevel[50]//报警级别
                TCHAR szAlarmDateTime[20]//报警时间
                //提取通信站编码 ID
                tp=strstr(p,"\n") ;
                if(tp)
                {
                toklen=tp-p+1;                                       二、铁路自动通信监测系统仿真实验和分析
                if(nRemarkLen<200)                                   1、系统仿真实验
                {                                                    在软硬件设计完成后,进行仿真实验对系统运行有效性进
                int  n=(nRemarkLen+toklen>200)?(200-nRe-markLen):   行检验。将光缆线路的地理坐标导入光缆监测系统中,测试人
            toklen;                                              员根据远程系统显示的节点来分析整个光纤通信网络的状态,
                memcpy(szRemark+nRemarkLen,p,n);                 同时根据网络阻塞或是根据系统破坏程度情况,进行修复信
                nRemarkLen+=n;                                   号转发和硬件恢复等任务。这里进行三组测试主要是:使用5根
                szRemark[nRemarkLen]=’\0’;                       200m-500mm左右的光纤将车站调度室、列车控制室等多个节点
                }                                                进行连接,在一个节点上设置自动监测系统,模拟人为破坏下
                p+=toklen;                                       系统节点通信和光纤情况。测试采用2次直接破坏光纤本体,1
                }                                                次破坏通信节点的方法进行,在三次测试中,发现自动检测的
                //提取通信站名称(与上面的程序类同)                              数据和实际破坏距离存在1.2%误差          [10-11] 。
                ...                                                  2、出现误差的原因分析
                //提取通信光缆名称                                           造成测试误差的原因有四个方面:(1)直埋的光纤长度和地
                ....                                             面长度之间有差异。在坡度较大,坡高较高的丘陵地带敷设光
                //提取报警信息                                         缆要使用“S”形进行铺设,而且因为光纤自然弯曲、光纤坑
                ....                                             内接头预留、特殊地段盘留等情况,导致直埋光纤皮长与地面
                //提取报警信息后插入数据库                                   长度相比有显著的差异;(2)光纤皮长和光纤长度之间存在的偏
                CString sql;                                     差。由于光纤的出厂长度有限,所以长距离光线路需要多段光
                try{                                             纤接续,接续时光纤护套在每个接头都要剥开1.2m,这样使光
                sql.Format("Insert  Into  Alarm(LineID,LineName,   纤比皮长长度增加2.4m左右,接头越多累计误差就越大。另外
            StationName,Alarm_Level,                             在光缆线路施工中为减小光纤受到的侧压力和拉力,一些厂家
                Alarm_Type,Alarm_DateTime,Alarm_Location,Re-  ma  会把松套光纤和骨架型光纤在光缆内做成绞型,这种设计使得
            rk)""VALUES(%d,'%s','%s','%s','%s','%s','%s          100km的光纤线路中皮长比光纤短200m;(3)光纤走架空线路造成

            66                                         网络电信 二零一八年九月
   38   39   40   41   42   43   44   45   46