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 网络电信 二零一八年九月