☰
综合监控FSU入网全流程:账号权限、字典表、资源录入与验收
2026/10/29 4:15:13 网站建设 项目流程

简介:《中国铁塔中兴力维综合监控FSU入网操作指引》面向中国铁塔动环监控运维与FSU实施人员,针对综合监控前端设备接入网管系统时流程不统一、配置项繁杂的问题,给出标准化的入网操作参考,适合具备一定动环监控基础的读者按步骤核对与实施。压缩包共1个doc文件,约12.09MB,内容以V0.2试行版指引为主体,围绕账号基础信息、信号量字典表、资源信息配置展开,并细化站点、铁塔、机房、FSU、蓄电池、开关电源、外市电接入及交直流配电设备等对象的录入要求。目录还延伸到变压器/调压器、空调、油机、摄像头、红外、烟感、温感、水浸、门磁等监控点,便于读者理解设备数据采集与中央管理系统的对接关系。已有5485人学习,可作为入网配置、资源核查和故障排查时的对照材料,帮助运维人员快速熟悉FSU接入链路与关键参数设置。

1. 综合监控 FSU 入网:卡住进度的往往不是设备,而是那张没人认真填的字段清单

去年跟一个地市的站点接入,厂家把综合监控 FSU 装好、上电、链路也通了,平台侧却连着三天看不到一条完整数据。设备没问题,问题出在站址编码没生成、点位名和现场实际点位对不上。这类活真正耗时间的从来不是拧螺丝,而是配置项之间的依赖顺序。这份综合监控 FSU 入网操作指引,做的就是把这条链路固化下来:账号权限怎么开、信号量字典表怎么对、十几类资源对象按什么顺序录、上线之后拿哪几项指标验收、割接当晚出问题从哪查。它面向的不是写方案的人,而是真正要在一个个菜单里点完几百条记录、还得保证第二天早上巡检不出事的现场工程师和厂家交付人员。

2. 账号与权限:三级结构没搭对,后面全是重复劳动

账号是整个入网流程的第一道闸门,也是最容易被当成「随便开个号」的一步。指引里把账号分成两块:运维人员配置和帐号信息配置,路径都落在「系统管理—组织管理」下面,一个走「新增用户」,一个走「新增部门」再「新增用户」。看着简单,但顺序错了,后面所有资源录入的归属都会跟着错,返工量能把人拖到半夜。

2.1 组织树先画后建:运营方、厂家、账号是三个层级

正确做法是先建组织结构,再往节点下面挂用户,而不是图省事直接在根节点下建账号。常见的组织树大致长这样:

层级节点内容建法承担的作用
一级运营方总部节点系统初始化全局数据范围
二级地市/区域分公司新增部门划定数据权限边界
三级厂家名称节点新增部门,部门类型选「部门」隔离不同厂家的数据
四级厂家具体账号新增用户实际登录使用的身份

为什么非得有厂家这一层部门节点?因为权限继承是按部门走的。厂家账号建在厂家部门下,不单独分配权限时会默认继承部门权限;如果把厂家账号直接挂在地市节点下,这个号天然就能看到该地市全部站点的数据,等于权限一开始就漏了。我在一个项目上见过厂家交付人员能看到隔壁厂家的设备清单,查下来就是部门节点建错位置,账号跟着继承了不该有的数据范围。

组织树还有一个隐性要求:地市节点不要随意改名或挪动。节点 ID 一旦被资源数据引用,改名只是显示变化,但挪动父节点会导致已有账号的数据范围重新计算,历史工单的归属也可能跟着变。真要做组织调整,宁可新建节点,把旧节点冻结,也别直接拖拽。

2.2 运维人员和厂家账号:字段差在哪,权限继承怎么算

两类账号的建法路径一样,但字段和权限来源完全不同。把差异列成一张表,建号的时候照着对,比事后一个个查要省事:

字段运维人员厂家账号填错的后果
用户名填内部工号对应的姓名填厂家联系人姓名告警派单找不到人
登录账号工号或统一命名厂家缩写加序号唯一性冲突,登录失败
用户类型内部运维人员第三方供应商维护人员默认权限模板不匹配
所属部门所属地市节点所属厂家节点数据范围越界
操作权限按岗位分配不分配则继承部门能改不能改说不清

几个实操上的细节值得单独拎出来说。第一,厂家账号的用户类型必须选「第三方供应商维护人员」,这个枚举值决定了他能看到哪些菜单、能对哪些设备下发控制指令,选错了后面靠手工补权限非常麻烦。第二,运维人员的操作权限要按岗位走,值班岗只需要看告警和派单,不需要资源编辑权限,给了反而是风险。第三,账号停用不要删,删了之后历史工单里的处理人字段会变成空值,追溯的时候是黑匣子,正确做法是置为停用状态。

权限分配完之后一定要做验证,别信「保存成功」四个字。我一般必测三个场景:拿厂家 A 的账号登录,搜厂家 B 的站点名称,搜不到才算过;拿只读岗账号点一次控制类操作,被拦住才算过;把某个账号停用后立刻用另一个浏览器登录,登录被拒才算过。这三个动作五分钟能做完,能挡掉后面八成扯皮。

2.3 账号清单先用脚本过一遍再录入

菜单里一条条点账号,几十个还能忍,上百个就必须先整理成清单再批量导入。整理阶段最容易出的问题是登录账号重复、用户类型写成自造词、部门路径缺层级。这些用一段脚本十几秒就能查出来,比在系统里被一条条报错拦住舒服得多。

# account_check.py # 用途:录入前校验账号清单,提前暴露重复、枚举非法、命名不规范三类问题 import csv import re import sys from collections import Counter REQUIRED = ["login", "user_name", "user_type", "dept_path"] VALID_TYPES = {"内部运维人员", "第三方供应商维护人员"} # 厂家账号命名规范:厂家缩写(2-6位小写字母) + 序号(3-6位数字) PATTERN = re.compile(r"^[a-z]{2,6}[0-9]{3,6}$") def load(path): # utf-8-sig 是为了兼容表格软件导出的带 BOM 的 CSV with open(path, newline="", encoding="utf-8-sig") as f: return list(csv.DictReader(f)) def check(rows): errs = [] logins = Counter((r.get("login") or "").strip().lower() for r in rows) for i, r in enumerate(rows, start=2): # start=2 对应表格里的真实行号 for key in REQUIRED: if not (r.get(key) or "").strip(): errs.append(f"第{i}行:字段 {key} 为空") utype = (r.get("user_type") or "").strip() if utype not in VALID_TYPES: errs.append(f"第{i}行:用户类型「{utype}」不在允许枚举内") login = (r.get("login") or "").strip() if utype == "第三方供应商维护人员" and not PATTERN.match(login): errs.append(f"第{i}行:厂家账号「{login}」不符合命名规范") # 部门路径必须带层级分隔,只有一级说明账号挂错位置了 if "/" not in (r.get("dept_path") or ""): errs.append(f"第{i}行:部门路径「{r.get('dept_path')}」缺少层级") for login, n in logins.items(): if login and n > 1: errs.append(f"登录账号「{login}」重复出现 {n} 次") return errs if __name__ == "__main__": rows = load(sys.argv[1]) errs = check(rows) print("\n".join(errs) if errs else f"校验通过,共 {len(rows)} 条账号")

这段代码的逻辑很直白:先按必填字段扫一遍空值,再核对用户类型枚举,然后对厂家账号做命名正则匹配,最后用计数器找重复登录账号。dept_path这个字段要求写成「地市/厂家」这样的斜杠路径,只有一级就说明账号挂到了地市节点下,正是上一节说的权限越界隐患,脚本在这里顺便做了拦截。

参数上唯一需要按项目调整的是PATTERN,不同项目对厂家账号命名约定不一样,有的要求带厂家代码前缀,有的要求带地市缩写,改正则即可,别改判断顺序。脚本输出的行号是 CSV 里的真实行号(表头算第 1 行),拿着行号直接回表里改,不用二次搜索。

3. 信号量字典表:点位名对不齐,数据上来也是废的

字典表是整份指引里最容易被跳过的一节,因为它只是一句「信号量字典表见附件」。但实际干过的人都知道,FSU 上送的数据能不能被平台正确解析,全看这张表。设备侧一个点位叫「1 路市电电压」,平台侧字典里叫「外电A相电压」,名字对不上、编码对不上,数据就算传上来了,曲线也是空的,告警也是哑的。

3.1 字典表到底规定了什么:四类信号与命名规则

把字典表拆开看,它规定的其实只有四件事:点位编码、信号名称、信号类型、量纲与阈值。信号类型通常分四类,处理方式完全不同:

信号类型典型例子平台侧处理方式最容易出的问题
模拟量电压、电流、温度、湿度存历史曲线,按上下限判越限量纲不统一,阈值失效
状态量开关电源运行状态、门磁开合存状态变更记录0/1 含义与现场相反
告警量市电中断、水浸、烟感触发告警并进入派单流程未定义告警级别,无法派单
控制量远程复位、空调开关下发指令,需权限校验未做权限隔离,误操作

命名规则上,我的习惯是「设备类型 + 部位 + 物理量」三段式,比如「开关电源-整流模块1-输出电压」,中间用固定分隔符。好处是后期做批量映射时可以用字符串切分自动归类,不用一个个肉眼认。分隔符一旦定下来就别改,改了历史点位全要重映射。

量纲这块要特别较真。同一个「电池电压」,有的是单体的 2V 级,有的是整组的 48V 级,字典表里不写清楚量纲和量程,平台侧只能按默认值判越限,结果就是整组电压正常、单体已经亏电了还在报平安。常见做法是在字典表里强制加「下限/上限」两列,模拟量必填,填不出来说明这个点位还没想清楚怎么用。

3.2 从设备点位到平台点位:映射表怎么建

真正落地的动作是建一张映射表,左边是 FSU 侧的实际点位(厂家配置工具里看到的名字或地址),右边是平台字典里的标准点位。这张表不要用脑子记,用表格列出来,四列就够:厂家点位标识、厂家点位名称、平台点位编码、映射状态。

建表顺序建议按设备类型分批走,先做供电类(市电、开关电源、蓄电池),再做环境类(温湿度、水浸、烟感),最后做视频和门禁。原因是供电类点位直接关联告警派单,优先级最高;环境类点位数量多但逻辑简单;视频和门禁往往涉及独立子系统,联调周期长,放最后不至于卡住整体进度。

映射状态这一列别省,建议只填三种值:已映射、待确认、无对应。第三种最容易被忽略——现场有些点位平台字典里根本没有对应项,硬凑一个上去,后面告警语义就乱了。老老实实标「无对应」,写进割接遗留问题清单,比强行映射强。

3.3 用脚本给字典表做体检

字典表通常是 Excel 交付的,几百上千行,人工核对不现实。用 openpyxl 读出来跑一遍规则校验,能提前发现八成问题。

# dict_check.py # 用途:校验信号量字典表的枚举、量程、告警级别与点位编码唯一性 import sys from collections import Counter from openpyxl import load_workbook SHEET = "信号字典" COLS = ["点位编码", "信号名称", "信号类型", "量纲", "下限", "上限", "告警级别"] TYPES = {"模拟量", "状态量", "告警量", "控制量"} wb = load_workbook(sys.argv[1], data_only=True) ws = wb[SHEET] header = [str(c.value).strip() if c.value else "" for c in ws[1]] idx = {name: header.index(name) for name in COLS} errs, codes = [], [] for row_no, row in enumerate(ws.iter_rows(min_row=2, values_only=True), start=2): rec = {k: row[i] for k, i in idx.items()} code = str(rec["点位编码"]).strip() if rec["点位编码"] else "" if not code: continue # 空行跳过 codes.append(code) stype = rec["信号类型"] if stype not in TYPES: errs.append(f"第{row_no}行:信号类型「{stype}」非法") # 模拟量必须有上下限,且下限必须小于上限 if stype == "模拟量": if rec["下限"] is None or rec["上限"] is None: errs.append(f"第{row_no}行:模拟量缺少上下限") elif float(rec["下限"]) >= float(rec["上限"]): errs.append(f"第{row_no}行:下限大于等于上限") # 告警量必须定级别,否则派单流程走不下去 if stype == "告警量" and not rec["告警级别"]: errs.append(f"第{row_no}行:告警量未定义告警级别") for code, n in Counter(codes).items(): if n > 1: errs.append(f"点位编码「{code}」重复 {n} 次") print("\n".join(errs) if errs else f"字典表校验通过,有效点位 {len(codes)} 条")

逻辑上分三组:枚举校验保证信号类型不出现自造词,量程校验保证模拟量可判越限,唯一性校验保证点位编码不冲突。SHEET和COLS两个常量按实际表结构调整,列名必须和表头完全一致(含空格),这是最容易翻车的地方——表头写成「 点位编码」带个前导空格,index()就找不到。建议先打印header看一眼再跑。

告警级别那一项,很多厂家交付的字典表里是空的,理由通常是「平台侧统一配」。实际做法还是要填,因为不同告警的派单时限不一样,市电中断和温感轻微超限不可能一个响应速度。级别枚举建议控制在三到四档,太多档位现场根本记不住。

4. 资源信息配置:十几类对象的录入顺序和编码规则

资源信息配置是整个入网流程里工作量最大的部分,也是最讲究顺序的部分。指引里列了站址、杆塔、机房、FSU、蓄电池、开关电源、市电引入、交流配电、直流配电、变压器、空调、油机、摄像头、红外、烟感、温感、水浸、门磁、门禁、智能电表这么一长串。这些对象不是平行的,有明确的父子依赖。

4.1 依赖顺序:站址打底,杆塔机房其次,FSU 和设备最后

正确的录入顺序是一条树:站址是根,杆塔和机房挂在站址下,FSU 挂在机房下,蓄电池、开关电源、空调这些设备挂在机房或 FSU 下。乱序录入的直接后果是下拉框选不到父对象,只能先存草稿再回头补,补的时候又容易漏。

顺序对象依赖的父对象保存后自动生成
1站址无(需先有区域)站址编码
2杆塔站址杆塔编码
3机房站址机房编码
4FSU机房设备编码
5蓄电池 / 开关电源 / 配电设备机房设备编码
6空调 / 油机 / 智能电表机房设备编码
7摄像头 / 红外 / 烟感 / 温感 / 水浸 / 门磁 / 门禁机房或 FSU设备编码

「市电引入」「变压器/调压器」在指引里标了可选,判断标准很简单:这个站有没有独立报装的市电引入点、有没有专用变压器。没有就跳过,不要为了「填满」硬建一条,后面告警跟着这条假数据跑,排查时能把人绕晕。

4.2 关键字段和自动编码:哪些能改,哪些别碰

几乎所有资源对象保存后都会自动生成编码,这是给 FSU 配置用的。自动生成的编码有两类字段要区分开:一类是名称,系统会按「站址+类型」自动拼一个,允许人工修改;另一类是编码本身,一旦生成就别动。改名称只影响展示,改编码等于换了个设备身份,历史数据、告警记录、工单关联全部对不上。

拿机房举例,必填的关键字段是名称、类型、等级、楼层、列数、行数、所属杆塔、所属机楼,编码自动生成。这里面「等级」和「楼层」看着像可填可不填,实际会影响后续的巡检策略和告警分级,建议全部填实。FSU 的字段更特殊一些,除了名称、类型、所属杆塔,还要填经纬度、厂家信息、长宽高、功率、接口数——经纬度决定地图落点,长宽高和功率决定机位规划,接口数决定后续能挂多少设备,这些都是后面要用的数据,别留空。

蓄电池和开关电源有一批「现场核查类」字段,比如是否漏液、电池支撑部位有无坍塌变形、连接铜排有无腐蚀、整流模块型号、剩余槽位数、能否二次下电、告警指示灯状态。这些字段的性质和纯配置字段不一样,它们记录的是安装验收那一刻的现场状态,填的时候要真的看一眼设备,别照抄模板。我在一个项目上见过一批蓄电池的「连接铜排有无腐蚀」全填了「无」,三个月后巡检发现两组已经明显氧化,回头查录入记录,是交付人员批量复制的。

4.3 FSU 本体信息:经纬度、尺寸和接口数怎么填才不返工

FSU 这一条单独拿出来说,因为它是唯一同时连接「平台」和「现场」的对象。经纬度建议用现场实测值,精度保留到小数点后六位,别用站址的近似坐标凑。平台上地图落点偏差超过几十米,巡检人员导航过去就找不到塔,这是纯体力浪费。

接口数这个字段容易被填成设备铭牌上的物理口数量,但实际配置时应该填「本期实际使用的接口数」。原因很简单,平台侧排设备挂载时会按这个数校验,填成物理总量但实际只用了三分之一,后续想加设备就会提示超额,还得回来改。常见做法是填本期规划数,剩余口数单独记在割接文档里。

FSU 名称一般由机房信息自动带出,允许修改,但我建议保持系统生成的默认值,只在后面加个序号区分同机房多台 FSU。原因是名称参与地图和拓扑的排序,自定义命名如果没有统一规则,拓扑树上会乱成一团。

4.4 用脚本生成录入清单模板

手工一条条录几百个站点的资源,出错率极高。更现实的做法是先用脚本生成结构化的录入清单,按对象类型和依赖顺序排好,填完之后再批量导入或者照着录。

# build_resource_template.py # 用途:按依赖顺序生成资源录入清单模板,避免乱序录入导致父对象选不到 import csv # 顺序即依赖顺序,前面的对象必须先存在 ORDER = [ ("站址", ["站址名称", "站址类型", "所属区域", "基站状态"]), ("杆塔", ["杆塔名称", "所属站址", "杆塔类型"]), ("机房", ["机房名称", "所属站址", "机房类型", "等级", "楼层", "行数", "列数"]), ("FSU", ["FSU名称", "所属机房", "经度", "纬度", "厂家", "长", "宽", "高", "功率", "接口数"]), ("蓄电池", ["蓄电池名称", "所属机房", "型号", "单组额定容量", "单体个数", "单体电压等级"]), ("开关电源", ["开关电源名称", "所属机房", "型号", "整流模块总数", "剩余槽位数", "能否二次下电"]), ("空调", ["空调名称", "所属机房", "型号", "类型"]), ("烟感", ["烟感名称", "所属机房", "安装位置"]), ("水浸", ["水浸名称", "所属机房", "安装位置"]), ] with open("resource_template.csv", "w", newline="", encoding="utf-8-sig") as f: w = csv.writer(f) w.writerow(["对象类型", "字段名", "是否必填", "填写值", "备注"]) for obj, fields in ORDER: for field in fields: # 所属类字段统一标必填,父对象不存在时导入必然失败 required = "是" if field.startswith("所属") or "名称" in field else "否" w.writerow([obj, field, required, "", ""]) print("模板已生成:resource_template.csv")

这段脚本的价值不在于生成文件本身,而在于把依赖顺序显式写进了ORDER列表。填表的人拿到模板就能看出「杆塔必须在站址之后填」,不用靠口头交代。required的判断用了一个简化规则:以「所属」开头的和带「名称」的字段标必填,其他标选填。实际项目里可以按平台侧的必填校验规则再细化,比如 FSU 的经纬度在很多平台上是必填项,加进规则即可。

生成的 CSV 用带 BOM 的 UTF-8 保存,是为了让常用表格软件双击打开不乱码。如果走接口批量导入,记得把 BOM 去掉,部分接口对首行 BOM 敏感,会报字段名不匹配。

5. 避坑与排查:上线前后最容易翻车的五个点

这一节按我踩过的顺序排,每条都按「现象—原因—解决」写,不写理论。

5.1 现象:资源保存成功,但设备编码是空的

原因通常是父对象没选或者父对象本身没编码。系统生成编码依赖父对象的编码做前缀,父对象缺失时保存动作能过,编码生成逻辑静默失败。解决方式是从根节点往回查:先确认站址有编码,再看机房的所属站址是不是空的。还有一种情况是批量导入时父对象名称拼写不一致,比如站址叫「某基站」、机房引用写「某基站 」,多了个尾随空格,匹配失败但不报错。批量导入前建议统一去掉首尾空格。

5.2 现象:告警一直报「市电中断」,现场实际供电正常

原因多半是状态量的 0/1 含义弄反了。厂家 FSU 侧有的用「1 表示市电正常」,平台字典里默认「1 表示中断」,映射时没做取反。解决方式是先断电测试确认实际逻辑,再在映射表里加一列「是否取反」,别在平台侧改字典表——改字典表会影响所有引用该点位的站点。另一个可能原因是市电检测点接在了不常带电的辅助回路上,这类要靠现场改线,平台侧怎么配都没用。

5.3 现象:FSU 显示在线,但地图上是空白或落点漂移

先看经纬度填的是不是站址近似坐标,偏几十米在地图上可能就是另一个街区。其次看经纬度格式,有的平台要求十进制度,填成度分秒格式会被当成非法值静默丢弃。还有一种少见的:FSU 名称里带了特殊字符,导致地图组件渲染时该标记被跳过,把名称改回默认生成值就正常了。排查顺序建议是「先看字段值格式,再看数值精度,最后看名称字符」。

5.4 现象:厂家账号能搜到别家厂家的站点

这是权限问题,不是搜索问题。查三处:账号挂在哪个部门节点下、部门节点挂在哪一级、账号有没有被单独分配过跨部门的数据权限。最常见的是账号建在了地市节点下而不是厂家节点下,继承了地市的全部数据范围。解决方式是停用原账号、在正确的厂家节点下重建,不要试图用「收回权限」修补,收回操作往往只对操作权限生效,数据权限还留着。

5.5 现象:性能曲线在凌晨出现固定断点

这个坑很隐蔽,表现是每天凌晨两三点有一段数据缺失,设备在线、告警正常。原因通常是 FSU 与平台的时间不同步,FSU 侧时钟漂移后上报的时间戳落在未来或过去,平台按时间窗口查询时就出现空洞。解决方式是核对 FSU 的 NTP 配置和平台侧的时间源,把时间同步周期调到小时级。另一个诱因是性能采集周期和存储周期配置不一致,采集 5 分钟一次、存储按 15 分钟聚合,聚合窗口边界没对齐也会出现断点,这种就要改配置而不是查时钟。

遇到问题时的排查顺序,我的习惯是从下往上:先确认 FSU 在线且有心跳,再看点位映射是否正确,再看资源编码是否完整,最后才怀疑平台侧服务。反过来查,九成时间浪费在平台日志里找一个根本不存在的问题。

6. 上线验收与割接:七项检测跑完再签字

设备上线和能长期稳定跑,中间隔着一段验收。指引里列的那几项检测不是走形式,每一项对应一类线上事故。

序号检测项具体看什么我常用的判据
1网管侧检查FSU 注册状态、协议版本是否一致状态显示在线,协议版本与平台支持列表匹配
2在线情况心跳记录、最近一次上报时间最近上报间隔在心跳周期的三倍以内
3地图定位经纬度落点与站址位置比对偏差在本项目约定范围内,不出现空白标记
4拓扑设备FSU 下挂设备树与实际设备数量比对数量一致,无重复挂载、无孤儿设备
5实时视频通道拉流、连续播放首帧时间可接受,连续播放无明显卡顿花屏
6性能指标电压、电流、温度等模拟量曲线有数据、无断点、量纲与字典表一致
7设备告警模拟断开一路市电后观察上送与恢复告警按时上送,恢复后自动消除,不残留

第 7 项一定要做实测,不能看平台上有告警列表就算过。做法是现场配合断一路负载或拔一路检测线,观察告警是否在约定时间内上送、级别是否正确、是否进入派单流程,恢复后是否自动消除。这一项测通了,告警穿越测试基本就是同一套动作换几个点位重复跑。割接操作放在所有检测通过之后做,割接前把老系统的历史数据导出备份,割接后第一件事是核对 FSU 在线数和告警数跟割接前对得上,对不上就回退,别硬扛。

有个血泪教训:早期我做过一次割接,七项检测里第 6 项只看了有没有数据,没核对量纲。上线一周后发现所有温度曲线都在 200 度以上,实际机房也就二十几度,是厂家上报的是华氏度、字典表按摄氏度配的。从那以后我每次验收都强制走一遍「拿一个已知物理量对比读数」的动作,温度、电压各挑一个点位,现场用仪表读一次,和平台显示值对一下。这个动作五分钟,能挡掉最难查的一类问题。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询