简介《Desigo CC手册-04-Project Configuration-BA-CN》是西门子 Desigo CC 楼宇自动化系统官方文档中的工程配置分册面向楼宇自控工程师、系统集成商以及负责平台部署与运维的技术人员用于解决项目从零搭建到可交付运行过程中的配置规范问题。压缩包内共 1 个 PDF 文件约 2.23MB内容集中在系统管理控制台SMC的操作与流程说明上。正文以 SMC 为主线依次讲解历史数据库HDB的创建与链接、项目的三种实例化方式其中恢复项目模板因预置了系统设置、扩展模块、图形文件夹、事件架构、驱动程序与趋势定义等而更省时省错、事件处理行为与项目文件夹共享及安全访问权限的设置以及项目与 HDB 的定期备份并配有 SMC 工作流程图和现场演示指引。已有 559 人学习适合需要按官方规范完成平台部署、故障排查与日常维护的读者对照查阅。1. 装完软件打不开项目Desigo CC 工程配置的四步主线不少人拿到 Desigo CC 的安装包跑完 setup、双击桌面图标登录框转两圈就弹错——项目根本不存在。这套楼宇自控平台的工程配置Project Configuration不在安装向导里完成而是集中在系统管理控制台SMC里按「建历史数据库 → 实例化项目 → 配置项目 → 激活启动」四步手工推进。Desigo CC 手册第 4 章讲的正是这条主线HDB 怎么建、模板项目怎么恢复、端口和权限怎么设、备份怎么留后路。它适合刚接手楼控平台部署的工程师也适合已经在现场、但每次重建项目都得翻旧笔记的人。手册本身标注了内部使用范围二次分发前先确认授权这一点比技术细节更容易被忽略。2. 先建历史数据库SMC 里从扫描 SQL Server 到 HDB 落地的完整链路SMC 的职责范围其实就四块配置系统和服务管理员账户、创建与恢复项目含模板和升级、往项目里加扩展模块、为特定项目创建或恢复 SQL 历史数据库。四块里唯一跟数据库打交道的就是最后一块而它恰好是后面所有步骤的前置条件。2.1 为什么 HDB 必须先于项目落地回到手册里的配置流程在「配置项目」这一步明确列了四件事命名项目、提供项目路径、将项目链接到历史数据库、保存。注意第三项——项目实例化时就要指定它归属哪个 HDB。如果此时库里空空如也SMC 给不出可选项要么配置保存不下去要么保存了但事件和趋势没有落点等项目跑起来再回头补就得停服改配置。HDB 承担的数据有四类理解这四类的写入特征直接决定后面建库参数怎么填活动日志记录用户在系统里的操作轨迹写入频率跟人有关工作时段密集、夜间稀疏事件日志报警产生与处理过程写入频率跟点位数和报警密度正相关大项目里是最猛的一路批处理消息记录已发生的故障写入稀疏但单条体积不小数值日志趋势数据值和上传写入最稳定也最容易失控点数乘采样周期就是日增量。常见做法是按「点位总数 × 采样周期 × 单人日均操作量 × 3 年」估算初始容量先给一个不会立刻触发自动增长的初值再让它在运行期缓慢扩。别指望 SQL Server 的自动增长救命1 MB 或 10% 的默认增量在高频写入下会产生大量文件碎片查询延迟上来之后很难解释给业主听。2.2 扫描、链接、添加三个动作别跳步SMC 建库的交互是「扫描 → 链接 → 添加」三段式每段都有明确的边界。扫描分两种扫描本地只搜 Desigo CC 服务器本机上的 SQL Server 实例扫描网络会把整个网段能发现的实例都列出来。SQL Server 可以装在应用服务器本机也可以放在网络上的其他机器这点手册写得很清楚。现场经验是单机小项目直接扫描本地省事一旦是多服务器架构或者数据库要独立运维走扫描网络但前提是被扫的实例已经启用了 TCP 协议并且 SQL Browser 服务在跑否则扫半天列表是空的。链接是把 SMC 和选定的 SQL Server 实例绑定起来这一步不建库只是建立可管理关系。添加才是真正在实例上创建一个新的 HDB。三个动作连起来看就是「发现实例 → 认领实例 → 在实例上开库」。排查阶段我一般先在目标实例上跑一段查询确认身份和容量余量再回到 SMC 里点扫描-- 在候选 SQL Server 实例上执行确认实例身份、版本与排序规则 SELECT SERVERNAME AS instance_name, -- 实例名核对是不是要连的那台 SERVERPROPERTY(ProductVersion) AS product_version, -- 版本号决定支持的备份语法 SERVERPROPERTY(Edition) AS edition, -- 版本类型Express 有 10GB 单库上限 SERVERPROPERTY(Collation) AS collation; -- 排序规则建库时继承后期改代价大这段查询解决的是「扫到了但不确定是不是它」的问题。Express 版有单库容量上限如果 HDB 预估三年后要超过这个数现在就得换版本而不是等库撑爆了再迁。排序规则要跟现场其他库保持一致尤其当报表端还要跨库关联的时候。-- 看现有库的数据/日志分布用来判断这块实例的磁盘还够不够再塞一个 HDB SELECT DB_NAME(database_id) AS db_name, type_desc, -- ROWS 数据文件LOG 日志文件 CAST(SUM(size) * 8.0 / 1024 AS DECIMAL(10,2)) AS size_mb FROM sys.master_files GROUP BY database_id, type_desc ORDER BY size_mb DESC;size字段的单位是 8KB 页乘 8 除 1024 换算成 MB这是 T-SQL 里最常见的换算写法。查出来的结果是判断「这台实例还剩多少余量」的依据比在 SMC 里凭感觉填大小靠谱得多。2.3 建库参数六个字段决定后面三年好不好过手册把 HDB 配置信息拆成六项数据库和日志大小、恢复方法、文件位置、路径位置、HDB 所有人和用户。这六项在新建对话框里就是几行输入框但它们决定了后期扩容、备份、故障恢复的全部操作空间。参数手册里的叫法我一般怎么填容易翻车的地方数据文件初始大小数据库和日志大小按三年趋势量估算先给 2~5 GB不让它频繁自动增长给太小运行三个月就开始天天增长日志文件初始大小数据库和日志大小数据文件的 25%~50%单独指定增长步长数据日志同盘同目录一块盘坏了全丢恢复方法恢复方法只靠 SMC 备份就选简单恢复有 DBA 做日志备份才选完整选了完整恢复却没人做日志备份日志文件无上限膨胀数据文件位置文件位置独立数据盘纯英文、无空格路径默认塞进系统盘C 盘告急时迁移成本极高日志文件位置路径位置与数据文件物理分离同盘同目录写入竞争 单点故障所有人/用户HDB 所有人和用户服务运行账号做 owner另建只读账号给报表图省事直接用高权限账户审计过不去恢复方法这一项值得多说两句。HDB 本质是持续写入的日志型数据如果选完整恢复模式事务日志会一直累积直到你做一次日志备份把它截断。SMC 的备份功能备的是整个数据库文件不是事务日志备份所以现场常见的情况是选了完整恢复跑了半年日志文件涨到几十 GB磁盘告警了才回头改恢复模式。想省心就选简单恢复模式配合定期完整备份恢复点目标按备份周期算现场有专职 DBA 统一做日志链才考虑完整恢复。2.4 建库成功的确认点点保存后要等几分钟SMC 会返回创建成功的确认。这一步别急着往下点先在 SQL Server 里核一遍库是否存在、状态是否 Online、数据文件和日志文件是否真的落在了你指定的路径上。有些现场在对话框里改了路径但没生效文件还是躺在默认目录等到做容量规划时才发现对不上。核完这三项再回到 SMC 的项目列表里确认这个 HDB 可被选中2.1 里说的「项目链接 HDB」才不会卡住。3. 实例化项目模板、备份、新建三条路的选型与端口约束HDB 就位之后下一步是把项目「造」出来。SMC 提供三种实例化方式恢复项目模板、恢复项目备份、创建新项目。手册对第一种明确标了「推荐方法」这不是客套话背后是工程量差异。3.1 三条路的成本对照方式来源相对耗时适用场景主要风险恢复项目模板安装目录下的 ProjTemplates最快全新项目、标准化批量交付模板版本低于当前安装版本恢复后状态过期需升级恢复项目备份现场导出的项目备份包中等站点迁移、回滚、复制同构站点备份包不含 HDB恢复后数据断档创建新项目空白起点最慢极小规模试点、教学演示手工配置项漏得多后期返工手册明确写了恢复项目模板相比创建新项目花费的时间明显减少模板是提供基本设置的预配置项目能减少工程投入和出错风险。原厂交付的项目模板覆盖 BA、消防和 TBS 三类项目场景。也就是说只要你的项目属于这三类里的任何一种从模板起步几乎没有理由选「创建新项目」。模板里预置的东西比想象中多列出来能理解为什么它省时间分类预置内容系统设置系统级参数与应用层设置扩展模块已激活的扩展模块图形已创建的图形文件夹、已创建的拓扑图形事件已应用的事件架构客户端已选择的客户端和用户配置文件报告已导入并按类别分类的报告驱动已创建并已启动的驱动程序、已创建的网络与已分配的驱动趋势已创建的趋势定义视图逻辑视图、物理视图、用户视图安全用户与安全组含已分配的作用域和应用程序权限这张表里最值钱的是最后一行。安全组、作用域、应用程序权限这三样如果从零配是纯手工活配错一个作用域客户端登进来看到一片空白排查方向会跑偏到网络上去。3.2 恢复模板的完整操作路径第一步确认模板目录里有什么。模板放在GMSProjects\GMSMainProject\ProjTemplates下面每个模板是一个独立目录。现场排查模板缺失、模板包不完整这类问题我一般先用一段脚本把目录结构和体积列出来比在文件资源管理器里一层层点快得多# 列出本机可用的项目模板确认模板目录完整、体积正常 $tplRoot C:\ProgramData\GMSProjects\GMSMainProject\ProjTemplates Get-ChildItem -Path $tplRoot -Directory | ForEach-Object { $sizeMB (Get-ChildItem $_.FullName -Recurse -File | Measure-Object Length -Sum).Sum / 1MB [PSCustomObject]{ TemplateName $_.Name # 模板目录名SMC 对话框里显示的就是它 Modified $_.LastWriteTime # 最后修改时间判断模板新旧 SizeMB [math]::Round($sizeMB, 1) # 体积明显偏小说明模板包不完整 } } | Sort-Object Modified -Descending-Directory限定只列目录避免把零散文件混进来Measure-Object -Sum累加文件长度算总体积。判读方法很直接同一批交付的模板体积应该在同一量级某个模板只有几百 KB 而其他都是几十 MB基本可以断定拷贝过程中断了。Modified字段用来判断模板是随安装包带的还是后来手工放进去的后者要额外确认来源。第二步在 SMC 里点「恢复项目模板」。这里有个容易误解的点Desigo CC 的安装本身不需要默认项目所以点这个按钮时如果 SMC 项目列表是空的属于正常状态不是安装出问题。第三步从模板目录里选中目标模板。选完后进入配置项命名项目、提供项目路径也可以保持默认、把项目链接到前面建好的 HDB、保存。第四步恢复流程跑完后切到「项目和系统信息」选项卡看状态。这一眼很关键状态是否正常直接决定要不要做升级见 3.4。3.3 项目路径与端口号多项目并存的硬约束路径这件事手册允许保持默认但默认路径通常在系统盘。项目目录里装的是图形、报告、驱动配置和运行期产生的临时文件长期写入量不小。我的习惯是一律改到独立数据盘路径全英文、不带空格长度控制在 100 字符以内——路径里的空格和中文在后续共享映射、脚本调用、备份工具里都可能变成问题源。端口号有明确的硬约束手册写得很直白只有一个项目实例时保留端口号默认值SMC 中存在多个项目时两个已启动项目不能具有相同端口号如果某项目的端口号和活动项目的端口号相同则该项目无法启动。换句话说端口冲突的表现不是报错弹窗而是项目起不来。多项目环境里我通常在部署前先把端口占位情况摸一遍# 查本机已监听的端口避开活动项目占用的号段 Get-NetTCPConnection -State Listen | Where-Object { $_.LocalPort -ge 8000 -and $_.LocalPort -le 9000 } | Select-Object LocalAddress, LocalPort, OwningProcess | Sort-Object LocalPort-State Listen只保留处于监听状态的连接-ge/-le圈定常用服务端口区间具体区间按现场实际配置调整。OwningProcess是占用该端口的进程 ID拿它去任务管理器里对一下就能判断这个端口是被 Desigo CC 相关进程占着还是被别的软件占了。如果发现项目配置里写的端口已经被无关进程占用改项目端口比停别人的服务现实。3.4 升级与激活状态变红必须处理恢复完模板看「项目和系统信息」选项卡。如果状态显示「已过期」并且标红说明恢复出来的项目版本低于当前安装的软件版本必须执行升级。这一步没有「先跳过以后再升」的选项——版本不匹配的项目在启动阶段就会出问题而且日志里给出的原因往往很含糊容易把人往数据库方向带。升级跑完之后是启动。SMC 里如果只有这一个项目启动即可如果存在多个项目需要手动指定激活哪一个。判断是否激活成功看两处标题栏显示当前活动项目名项目状态显示「已启动」。这两处都对了才算项目真正跑起来。手册把这几个信号点单独拎出来是因为现场最常见的误判就是「点了启动按钮就当成功了」实际上项目还在后台初始化客户端这时候连上去只会超时。4. 项目配置与客户端接入事件处理、共享权限和激活启动项目跑起来只是开始。手册在「配置项目」这一层列的目标是配置项目以控制事件处理的行为、设置项目文件夹共享和安全访问权限以允许客户端连接。这两件事一件管数据怎么流转一件管人怎么进来分开看都简单合在一起才是能交付的状态。4.1 事件处理行为先定策略再动配置事件处理行为影响的是报警从产生到归档的整条路径常见需要定下来的有报警是否需要人工确认、确认后是否自动归档、批处理消息的归类规则、事件的保留周期。这些在模板里已经有一套默认架构模板预置了「已应用的事件架构」大多数标准项目直接用默认值就能跑只有在业主有特定运维流程要求时才动。我的做法是先跑一遍默认策略观察一周的事件日志写入量和报警确认率再决定要不要改。上来就按业主口头描述改策略最容易出现的后果是报警确认流程走不通——运维人员点不到确认按钮或者确认了但事件不归档日志表越滚越大。改之前把原来的策略截屏存档改坏了能对照回滚。4.2 文件夹共享与安全访问别用 Everyone客户端要连上来得能访问服务器上的项目目录。手册把这步和「安全访问权限」放在一起说是因为共享和安全是两件事共享解决「能不能看到」NTFS 权限解决「看到之后能干什么」。只配共享不配 NTFS等于门开着没锁。常见做法是建一个专用的客户端访问组把项目目录共享出去共享权限给「更改」级别NTFS 权限也对应给到修改但绝不使用 Everyone# 为项目目录建立共享只授权给客户端访问组和服务账号 $projPath D:\GMSProjects\BA_Project01 # 项目实际路径与 SMC 里配置的一致 $shareName BA_Project01 # 共享名建议与项目名一致便于识别 New-SmbShare -Name $shareName -Path $projPath -FullAccess DOMAIN\svc_scada # 服务运行账号需要完全控制 -ChangeAccess DOMAIN\cc_client_grp # 客户端组只给更改不给完全控制 Get-SmbShareAccess -Name $shareName # 回读确认授权结果-FullAccess给服务账号是因为运行期要写临时文件和日志-ChangeAccess给客户端组是够用的上限客户端不需要改权限、改所有者。Get-SmbShareAccess回读这一步别省命令行建共享失败通常不报错只是没建上。NTFS 层再补一刀注意继承标志# 在 NTFS 层给客户端组继承式修改权限覆盖子目录和文件 icacls D:\GMSProjects\BA_Project01 /grant DOMAIN\cc_client_grp:(OI)(CI)M /T # 回读当前 ACL确认没有残留的 Everyone 或 Users 完全控制 icacls D:\GMSProjects\BA_Project01(OI)是对象继承(CI)是容器继承M是修改权限三个合起来表示「这个目录和它下面所有内容客户端组都有修改权」。/T表示递归应用到已有子项不加这个参数之前已存在的文件不会拿到新权限客户端能进目录却打不开文件报错信息还特别含糊。回读那一步是为了抓残留——从别的机器整盘拷过来的项目目录经常带着原环境的宽松 ACL。4.3 客户端侧连通性验证服务器配完不等于客户端能连。交付前我从客户端机器上跑两段验证一段测端口一段测共享# 从客户端机器执行先测端口再测共享可达性 $server 10.0.0.21 # 服务器地址按现场实际替换 $port 8080 # 项目配置里设定的端口 Test-NetConnection -ComputerName $server -Port $port -InformationLevel Detailed # 测共享能列出目录内容说明共享和 NTFS 两层都通了 Get-ChildItem \\$server\BA_Project01 -ErrorAction Stop | Select-Object -First 5 Name, LengthTest-NetConnection输出里重点看TcpTestSucceededFalse 就往防火墙和端口占用方向查Get-ChildItem抛异常通常是共享名写错或者 NTFS 拒绝了当前账号。两段都过客户端登录失败基本就只剩账号和作用域的问题排查范围一下子收窄了。5. 现场避坑六类翻车记录与逐条排查以下六条按「现象 → 原因 → 解决」组织都是部署阶段反复出现的形态按出现频率排序。5.1 数据库侧的两类现象SMC 扫描网络时列表为空本地扫描却能看到实例。 原因目标 SQL Server 没启用 TCP/IP 协议或者 SQL Browser 服务没启动跨机器的实例发现走不通也有防火墙拦掉 UDP 1434 的情况。 解决在 SQL Server 配置管理器里启用 TCP/IP 并重启实例服务把 SQL Browser 设为自动启动防火墙放行对应端口。改完先在客户端机器上用Test-NetConnection -Port 1433确认端口通再回 SMC 点扫描。跳过端口验证直接扫容易误判成 SMC 权限问题。现象HDB 运行几个月后日志文件涨到几十 GB磁盘告警。 原因建库时恢复方法选了完整恢复但现场没有任何人做事务日志备份日志只增不减。 解决先做一次完整备份再把恢复模式切到简单日志空间会被回收。切换前确认业主能接受「恢复到最近一次完整备份」这个恢复点目标。后续要么坚持简单恢复 定期完整备份要么把日志备份纳入日常运维排班。5.2 项目侧的两类现象模板恢复完成项目状态标红显示「已过期」启动失败。 原因模板包的版本低于当前安装的软件版本恢复出来的项目结构跟运行时对不上。 解决在 SMC 里对该项目执行升级等状态恢复正常后再启动。这里容易犯的错是看到红色就去查数据库连接实际上数据库好好的问题在版本。现象第二个项目配置完点启动没反应也没有明确报错。 原因端口号与已激活项目冲突。手册写得很清楚端口和活动项目相同就无法启动。 解决给新项目换一个未被监听的端口号改完保存再启动。用 3.3 里那段Get-NetTCPConnection先确认目标端口是空的。多项目环境里端口规划最好在部署前就画成表别等项目建完了再一个个试。5.3 备份与接入侧的两类现象项目备份「成功」了换台机器恢复出来历史趋势和事件日志全空。 原因只备份了项目目录没备份 HDB。项目配置和业务数据是两套东西项目备份不含数据库内容。 解决项目和 HDB 分开备份、成对归档文件名里带上日期和项目名。恢复时先恢复 HDB再恢复项目并重新链接顺序反了会卡在链接那一步。现象客户端能 ping 通服务器共享也能打开但登录系统后界面空白。 原因账号存在但安全组、作用域或应用程序权限没分配到位。模板里预置的安全组如果被手工改过很容易漏掉某个作用域。 解决对照模板原有的安全组配置逐项核对该账号所属组的应用程序权限和作用域。这类问题排查起来最耗时间因为现象是「空白」而不是报错我的习惯是在交付前用测试账号完整走一遍登录流程不等业主发现。6. 备份与恢复演练一份能真正回滚的收尾清单备份这件事最怕的是「备份成功」四个字带来的虚假安全感。Desigo CC 的备份是两个独立对象项目文件系统里的目录和历史数据库SQL Server 里的库。两者必须成对缺一半的备份在恢复时才发现问题那时候现场已经在等你了。项目部分走 SMC 或手工归档整个项目目录注意目录里可能有运行期锁文件热备份前先停项目。HDB 部分走 SQL 原生备份更可控-- HDB 完整备份带压缩和进度提示输出到独立备份盘 BACKUP DATABASE [HDB_BA01] TO DISK ND:\Backup\HDB_BA01_20240615.bak WITH INIT, -- 覆盖同名文件避免追加导致备份文件无限增大 COMPRESSION, -- 压缩备份楼控数据压缩率通常不错 CHECKSUM, -- 写入校验和恢复时能发现介质损坏 STATS 10; -- 每 10% 打印一次进度长任务心里有底 -- 备份完立刻校验别等恢复时才发现包是坏的 RESTORE VERIFYONLY FROM DISK ND:\Backup\HDB_BA01_20240615.bak WITH CHECKSUM;INIT和NOINIT的区别值得记一下默认是追加一个 .bak 文件会越滚越大恢复时还得挑文件号显式写INIT每次覆盖一个备份一个文件管理成本低得多。CHECKSUM加在备份和校验两头介质层面的位翻转能被抓出来不加的话一个损坏的备份和好备份在文件列表里长得一模一样。然后是最容易被跳过的一步恢复演练。我在项目上养成的习惯是交付前在一台空机器上走一遍完整恢复——先RESTORE出 HDB再恢复项目并重新链接最后启动、登录、翻一遍历史趋势。这套动作跑通一次心里才有底。有一次现场磁盘阵列故障正是靠提前演练过的顺序在四十分钟内恢复而不是在现场边查手册边试。从那以后我每次交付前都强制走一遍「空库恢复演练」哪怕业主没要求哪怕时间紧。备份文件躺在那里不叫备份能恢复出来的才叫备份。这份手册的价值也在这儿——它把创建、实例化、配置、备份串成了一条能照着走的线而不是散落的对话框说明。把 PDF 存到本地工程盘随用随查比临时在线翻页稳当得多。希望帮到你。本文还有配套的精品资源点击获取