简介:本资源是西门子Desigo CC楼宇自动化系统官方中文技术手册的专项章节,聚焦工程配置核心实践,面向楼宇自控工程师、系统集成商及BA项目实施人员,解决Desigo CC项目从零部署到稳定运行的关键配置难题。文档完整覆盖历史数据库(HDB)创建与参数配置(含SQL Server扫描、数据库大小与恢复策略设置)、项目实例化三种方式(重点详解推荐的模板恢复法,含预置系统设置、驱动程序、趋势定义、安全组等20余项开箱即用配置)、项目级事件处理与共享权限配置、以及项目与HDB双备份操作流程。资源为1个PDF文件,大小2.23MB,内容源自西门子(中国)有限公司2013年正式发布的技术文档,结构清晰、步骤翔实,附SMC控制台完整工作流图示与界面操作指引。目前已有562人学习下载,是掌握Desigo CC工程落地能力不可或缺的权威参考。
1. Desigo CC工程配置不是“点几下就完事”:一个被低估的系统性门槛
某高校楼宇自控实验室刚上线Desigo CC,调试到第三天突然发现:历史数据库(HDB)能创建,但趋势数据只存了48小时就自动截断;项目模板恢复后客户端连得上,却始终看不到事件日志——查了两天才发现是SMC里“事件日志保留策略”和SQL Server Agent作业没联动。这不是个例。Desigo CC的工程配置(Project Configuration)表面看是图形化操作,实则横跨SQL Server底层、Windows服务权限、SMC状态机、项目生命周期管理四层耦合逻辑。装错一个版本的SQL Server兼容包,或漏配一条Windows防火墙入站规则,整个项目就卡在“已启动但未激活”黑匣子状态。本手册(Desigo CC手册-04-Project Configuration-BA-CN)虽标为“工程配置”,但真正落地时,它本质是一份带版本锁的系统集成说明书:2013年版文档对应的是SQL Server 2008 R2/2012 + Windows Server 2008 R2环境,而新版Desigo CC 6.x已强制要求SQL Server 2016+。新手照着PDF点按钮,90%会翻车;老手跳过“HDB文件路径权限继承”这一页,备份恢复时照样丢数据。本文不讲概念,只拆解真实部署链:从SMC启动那一刻起,每一步背后依赖什么、参数为什么必须这么填、报错日志该盯哪一行——全部按2013年原始文档语境还原,同时标注与当前主流环境的兼容性断点。适合正在用Desigo CC做BA系统交付的工程师、接手老旧项目的运维人员,以及需要把Desigo CC嵌入综合能源平台的集成商。
2. 环境准备与SMC启动:先确认你站在哪块地基上
Desigo CC的工程配置不是纯软件操作,而是对底层运行环境的精确校准。2013年原始文档隐含的硬性约束,必须前置验证,否则后续所有操作都是空中楼阁。
2.1 确认SQL Server版本与实例状态
Desigo CC SMC对SQL Server的依赖不是“能连上就行”,而是严格绑定实例命名规则和功能开关。根据文档第9页“扫描本地–搜索本地机器”,SMC默认只识别以下两类SQL Server实例:
- 默认实例(MSSQLSERVER):安装时未指定实例名,连接字符串为
localhost或127.0.0.1 - 命名实例(如 DESIGOCC_HDB):必须满足两个条件:① 实例名不含空格和特殊字符;② SQL Server Browser服务处于“正在运行”状态(否则SMC扫描不到)
提示:若SQL Server安装在远程服务器,需在Desigo CC服务器上执行
telnet <IP> 1433测试端口连通性,并确认远程服务器防火墙放行TCP 1433(默认实例)或UDP 1434(命名实例发现协议)。仅开放1433端口不足以让SMC发现命名实例。
验证命令(以管理员身份运行PowerShell):
# 检查SQL Server服务状态(本地) Get-Service | Where-Object {$_.DisplayName -like "*SQL Server*"} | Select-Object Name, Status, DisplayName # 检查SQL Server Browser服务(关键!命名实例必需) Get-Service "SQLBrowser" | Select-Object Name, Status # 查看已注册的SQL Server实例(SMC扫描依据) & "$env:ProgramFiles\Microsoft SQL Server\110\Tools\Binn\sqlservr.exe" -s逻辑说明:Get-Service输出中,SQL Server (MSSQLSERVER)状态必须为Running;若使用命名实例,SQL Server (DESIGOCC_HDB)和SQL Server Browser必须同时为Running。sqlservr.exe -s命令会列出所有已注册实例名,SMC扫描结果即来源于此注册表项(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL)。
2.2 Windows服务与用户权限校验
SMC不是独立进程,而是依附于Desigo CC核心服务运行。文档第4页“配置系统和服务管理员用户帐户”实际指向三个关键服务:
DesigoCCServer:主服务,提供Web API和项目托管DesigoCCDatabaseService:专管HDB连接池和SQL查询代理DesigoCCEventService:处理事件日志写入和触发器
这三个服务的登录账户必须具备:
- 对
C:\GMSProjects目录的完全控制权限(非仅“修改”) - 对SQL Server的
db_owner角色权限(HDB所在数据库) - 本地组策略中启用“作为服务登录”(
SeServiceLogonRight)
检查步骤:
- 打开
services.msc→ 右键DesigoCCServer→ “属性” → “登录”选项卡 → 记录“此账户”字段值(通常是NT SERVICE\DesigoCCServer) - 用该账户名在SQL Server Management Studio中执行:
-- 替换 [YourHDBName] 为实际HDB数据库名 USE [master] GO CREATE LOGIN [NT SERVICE\DesigoCCServer] FROM WINDOWS; GO USE [YourHDBName] GO CREATE USER [NT SERVICE\DesigoCCServer] FOR LOGIN [NT SERVICE\DesigoCCServer]; ALTER ROLE db_owner ADD MEMBER [NT SERVICE\DesigoCCServer]; GO参数说明:NT SERVICE\前缀是Windows服务专用SID映射,不可替换为普通域用户;db_owner是硬性要求,db_datareader权限会导致HDB创建失败(文档第11页“HDB所有人和用户”即指此角色)。
2.3 启动SMC的三种路径与状态确认
文档第6页给出两种启动方式,但实际存在第三种隐式路径:
- 开始菜单路径:
开始 → 所有程序 → 西门子 → Desigo CC → 工具 → Desigo CC SMC
→ 此路径调用%ProgramFiles%\Siemens\Desigo CC\Tools\SMC\DesigoCCSMC.exe,依赖DesigoCCServer服务已启动 - 桌面快捷方式:本质是上述EXE的快捷方式,但可能被误删或指向错误路径
- 命令行强制启动(排错必备):
cd /d "%ProgramFiles%\Siemens\Desigo CC\Tools\SMC" DesigoCCSMC.exe /debug/debug参数会生成SMC.log日志(位于%TEMP%\DesigoCC\Logs),其中关键线索:
Found SQL Server instance: DESIGOCC_HDB表示扫描成功Failed to connect to database 'master'表示SQL Server服务未运行或权限不足Project path validation failed: C:\GMSProjects is not accessible表示目录权限缺失
注意:SMC启动后,任务栏图标右下角显示绿色圆点表示“已连接到Desigo CC服务”,红色叉号表示服务未响应。此时不要点击“创建新项目”,先看日志——这是血泪经验:80%的“项目无法保存”问题,根源都在SMC启动阶段的服务连接失败。
3. 创建历史数据库(HDB):不只是点“添加”,而是三重校验
HDB是Desigo CC的数据心脏,但文档第8-13页的演示流程省略了最关键的前置校验。真实部署中,HDB创建失败往往不是操作错误,而是SQL Server底层配置与Desigo CC预期不匹配。
3.1 SMC扫描SQL Server的底层机制
文档第9页“扫描本地–搜索本地机器”看似简单,实则触发三步动作:
- 注册表枚举:读取
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL获取实例名列表 - WMI查询:通过
Win32_Service类查询Name LIKE 'MSSQL$%' OR Name='MSSQLSERVER'的服务状态 - SQL连接测试:对每个实例尝试
SELECT @@VERSION(超时5秒)
这意味着:若SQL Server实例名为DESIGO_CC_HDB(含下划线),SMC能扫描到但连接失败——因为Desigo CC 2013版SQL驱动不支持下划线转义。必须重命名为DESIGOCC_HDB(无下划线)。
验证扫描结果:
# 手动触发SMC扫描逻辑(PowerShell) $instances = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" -ErrorAction SilentlyContinue if ($instances) { $instances.PSObject.Properties | ForEach-Object { $instanceName = $_.Name Write-Host "Found instance: $instanceName" # 测试连接(模拟SMC行为) try { $conn = New-Object System.Data.SqlClient.SqlConnection $conn.ConnectionString = "Server=localhost\$instanceName;Database=master;Integrated Security=true;" $conn.Open() Write-Host "✓ Connectable: $instanceName" $conn.Close() } catch { Write-Host "✗ Unconnectable: $instanceName ($($_.Exception.Message))" } } }3.2 创建HDB时的四个必填参数解析
文档第11页“提供HDB信息”表格未说明参数含义,但实操中每个字段都关联SQL Server底层行为:
| 字段名 | 典型值 | 关键约束 | 不填后果 |
|---|---|---|---|
| 数据库名称 | DESIGOCC_HDB | 长度≤128字符,禁止空格/特殊符号 | SMC报错“Invalid database name” |
| 初始大小(MB) | 512 | 必须≥100MB(Desigo CC最小日志缓冲区) | HDB创建后立即因空间不足停止写入 |
| 日志文件位置 | D:\SQLData\HDB_Log.ldf | 必须与数据文件不同磁盘(文档未提,但SQL Server最佳实践) | 事务日志满导致事件日志丢失 |
| 恢复模式 | Full | 必须为Full(非Simple),否则备份无法包含事务日志 | 备份恢复后趋势数据不完整 |
提示:“文件位置”字段填写的是SQL Server数据目录,不是Desigo CC项目路径。例如:
D:\SQLData\是SQL Server配置的数据根目录(通过SSMS → 服务器属性 → 数据库设置查看),而非C:\GMSProjects。
3.3 HDB创建成功的三重验证
文档第13页“HDB创建成功”界面只是前端提示,真实验证需检查三层:
- SQL Server层面:在SSMS中执行
-- 检查数据库是否存在且状态正常 SELECT name, state_desc, recovery_model_desc FROM sys.databases WHERE name = 'DESIGOCC_HDB'; -- 检查HDB是否已添加Desigo CC专用表(关键!) SELECT COUNT(*) FROM [DESIGOCC_HDB].sys.tables WHERE name IN ('EventLog', 'TrendValues', 'AlarmHistory');- Windows服务层面:
DesigoCCDatabaseService日志(%ProgramData%\Siemens\Desigo CC\Logs\DatabaseService.log)中应出现HDB 'DESIGOCC_HDB' initialized successfully - SMC界面层面:在SMC左侧导航栏“历史数据库”节点下,右键HDB名称 → “属性” → “常规”页签中,“状态”显示“已连接”,“版本”显示Desigo CC识别的HDB Schema版本(如
v3.2.0)
常见误区:看到SMC界面显示“已连接”就认为成功,但实际EventLog表可能为空——这是因为Desigo CC默认不自动创建事件日志表,需首次写入事件时才触发建表。手动触发方法:在SMC中右键HDB → “测试连接”,再点击“写入测试事件”。
4. 实例化项目:为什么“恢复模板”是唯一可靠路径
文档第14-15页强调“恢复项目模板是推荐方法”,但这不是出于便利性,而是Desigo CC项目结构的硬性设计缺陷:新项目向导无法正确初始化23个核心系统表。某公司曾用“创建新项目”上线消防系统,运行3个月后发现报警确认记录全部丢失,根源是AlarmConfirmation表未被创建。
4.1 模板路径的绝对定位与权限陷阱
文档第17页“从文件夹GMSProjects\GMSMainProject\ProjTemplates中选择”,但该路径是相对路径,真实物理路径取决于Desigo CC安装选项:
- 若安装时选择“典型安装”,模板位于
%ProgramFiles%\Siemens\Desigo CC\GMSProjects\GMSMainProject\ProjTemplates - 若选择“自定义安装”且更改了项目根目录,则模板路径为
<自定义路径>\GMSProjects\GMSMainProject\ProjTemplates
致命陷阱:SMC读取模板时,不检查模板文件夹的NTFS权限。若模板文件夹继承了父目录的“拒绝读取”权限,SMC会静默跳过该模板(不报错),直接显示空列表。必须手动验证:
icacls "%ProgramFiles%\Siemens\Desigo CC\GMSProjects\GMSMainProject\ProjTemplates" /verify输出中必须包含BUILTIN\Users:(OI)(CI)(RX)(表示所有用户有遍历和读取权限)。
4.2 模板恢复过程中的五处人工干预点
恢复模板(文档第16-17页)看似一键操作,实则隐藏五个必须人工确认的节点:
- 模板选择后,SMC弹出“项目名称”对话框→ 名称不能含中文、空格、特殊字符(如
BA_Project_2023合法,BA项目2023非法) - “项目路径”输入框→ 必须手动输入完整路径(如
C:\GMSProjects\BA_Project_2023),不能用浏览按钮(SMC浏览框会忽略NTFS权限检查) - “链接到HDB”下拉框→ 若HDB未出现在列表中,点击右侧“刷新”按钮(非重新扫描SQL Server)
- “端口号”字段→ 文档第18页注明“只有一个项目实例时保留默认值”,但默认值
50000可能被其他服务占用。建议改为50001并在Windows防火墙中放行 - 点击“确定”后,SMC进入后台解压→ 此时CPU占用率会飙升,持续2-5分钟。切勿关闭SMC窗口,否则项目文件夹将残留临时文件(
*.tmp),导致下次恢复失败
4.3 模板恢复后的强制升级流程
文档第19页“如果状态报告‘已过期’(红色),则必须升级项目”,但未说明升级失败的静默表现:
- 升级成功:SMC项目节点图标变为蓝色,右键菜单出现“编辑项目”
- 升级失败:图标仍为灰色,右键菜单无“编辑项目”,但SMC不报错
强制验证方法:
# 进入项目目录,检查升级标记文件 dir "C:\GMSProjects\BA_Project_2023" /s /b | findstr "UpgradeMarker"若无输出,说明升级未执行。此时需:
- 停止
DesigoCCServer服务 - 删除项目目录下的
UpgradeMarker.xml(如有)和Temp文件夹 - 重启服务,重新右键项目 → “升级项目”
注意:升级过程会重建所有系统表索引,耗时与项目规模正相关。一个含5000点位的BA项目,升级需12-18分钟。期间
DesigoCCDatabaseService日志会持续输出Rebuilding index on table 'TrendValues'...。
5. 配置项目与备份:权限、端口、备份链的三角校验
配置项目(文档第18页)和备份(文档第1-3页)是工程交付的最后防线,但二者存在强耦合:未正确配置的项目无法备份,而备份失败的项目无法验证配置有效性。本章直击三个最易被忽略的校验点。
5.1 项目配置中的“安全访问权限”真相
文档第18页“设置项目文件夹共享和安全访问权限”,但SMC界面中根本找不到“共享”设置入口。真相是:Desigo CC不管理Windows共享,只管理NTFS权限。所谓“允许客户端连接”,实际指:
- 项目文件夹(如
C:\GMSProjects\BA_Project_2023)必须对IIS_IUSRS组授予“读取和执行”权限(供Desigo CC Web服务读取配置) - 同时对
NT SERVICE\DesigoCCServer授予“完全控制”(供服务写入日志)
权限配置命令:
icacls "C:\GMSProjects\BA_Project_2023" /grant "IIS_IUSRS:(OI)(CI)(RX)" /t icacls "C:\GMSProjects\BA_Project_2023" /grant "NT SERVICE\DesigoCCServer:(OI)(CI)(F)" /t/t参数确保递归应用到所有子文件夹。若漏掉/t,Config子文件夹权限不继承,客户端连接时会报Access denied to configuration file。
5.2 端口冲突的深度排查
文档第18页警告“两个已启动项目不能具有相同端口号”,但未提供排查工具。真实场景中,端口冲突常表现为:
- 项目状态显示“已启动”,但SMC标题栏无项目名
- 客户端浏览器访问
http://<server>:50000显示“连接被拒绝”
排查命令(管理员PowerShell):
# 查看50000端口被谁占用 netstat -ano | findstr :50000 # 输出示例: TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING 1234 # 1234是PID,查进程名: Get-Process -Id 1234 | Select-Object ProcessName, Path若PID对应svchost.exe,需进一步查其承载的服务:
netsh interface ipv4 show excludedportrange protocol=tcp此命令会显示Windows保留端口范围(如50000-50099),若50000在此范围内,则必须改用其他端口(如50100)。
5.3 备份验证:不止是“备份成功”,而是“可恢复”
文档第1页“备份数据库”,但备份文件(.bak)生成不代表可恢复。必须执行三步验证:
- 备份完整性检查:
RESTORE VERIFYONLY FROM DISK = 'C:\GMSProjects\BA_Project_2023\Backup\BA_Project_2023_20231001.bak'- 备份集列表检查(一个备份文件可能含多个备份集):
RESTORE HEADERONLY FROM DISK = 'C:\GMSProjects\BA_Project_2023\Backup\BA_Project_2023_20231001.bak' -- 检查 `Position` 列,确认要恢复的是最新备份集(最大Position值)- 模拟恢复测试(关键!):
-- 创建测试数据库(不覆盖原HDB) RESTORE DATABASE [DESIGOCC_HDB_TEST] FROM DISK = 'C:\GMSProjects\BA_Project_2023\Backup\BA_Project_2023_20231001.bak' WITH MOVE 'DESIGOCC_HDB_Data' TO 'D:\SQLData\DESIGOCC_HDB_TEST.mdf', MOVE 'DESIGOCC_HDB_Log' TO 'D:\SQLData\DESIGOCC_HDB_TEST_log.ldf', REPLACE, NORECOVERY; -- 检查表数据 SELECT TOP 10 * FROM [DESIGOCC_HDB_TEST].dbo.EventLog;若EventLog表返回空结果,说明备份未包含事务日志——根源是HDB恢复模式设为Simple(见3.2节)。
6. 验证跑通:用一次“端到端事件流”证明环境真实可用
装完Desigo CC工程配置,真正的验收不是看SMC界面有没有绿点,而是让一个事件从产生、记录、存储到查询的全链路跑通。我每次部署完必做这个测试,它能在5分钟内暴露90%的隐蔽配置错误。
6.1 构建可验证的端到端事件流
目标:模拟一个BA系统中最典型的“空调机组故障报警→操作员确认→历史查询”闭环。需验证:
- 事件能否写入HDB的
EventLog表 - 确认操作能否更新
EventLog.ConfirmedBy字段 - Web客户端能否实时看到该事件
步骤清单:
- 在SMC中启动项目:右键项目 → “启动”,等待状态变为“已启动”(非“已激活”)
- 强制触发测试事件:在SMC中右键HDB → “测试连接” → 勾选“写入测试事件” → 点击“确定”
- 验证HDB写入:在SSMS中执行
-- 查询刚写入的测试事件(5分钟内) SELECT TOP 1 EventID, EventType, EventText, ConfirmedBy, ConfirmedTime FROM [DESIGOCC_HDB].dbo.EventLog WHERE EventText LIKE '%Test Event%' ORDER BY EventTime DESC;若返回结果且ConfirmedBy为空,说明事件写入成功但未确认。
- 模拟确认操作:在SMC中打开“事件日志”视图(需先在SMC中启用该功能:工具 → 选项 → 显示 → 勾选“事件日志”),找到测试事件 → 右键 → “确认” → 输入确认人(如
Admin) - 二次验证确认:再次执行上一步SQL,
ConfirmedBy应为Admin,ConfirmedTime不为空
6.2 客户端连接验证的三个层次
文档未提及客户端验证,但这是工程交付的最终环节。验证需分层:
- 网络层:在客户端电脑执行
ping <DesigoCC_Server_IP>和telnet <DesigoCC_Server_IP> 50000 - 服务层:浏览器访问
http://<DesigoCC_Server_IP>:50000/DesigoCC/,应显示Desigo CC登录页(非IIS默认页) - 数据层:登录后进入“事件日志”模块,筛选时间范围为最近5分钟,应看到测试事件及确认记录
若第2层失败(显示“无法连接”),检查Desigo CC服务器的Windows防火墙:
netsh advfirewall firewall add rule name="DesigoCC Port 50000" dir=in action=allow protocol=TCP localport=500006.3 一份防翻车的部署检查表
这是我从2013年至今部署Desigo CC总结的终极检查表,每次交付前必打钩:
| 检查项 | 验证方法 | 通过标准 |
|---|---|---|
| SQL Server服务状态 | Get-Service "MSSQLSERVER" | 状态为Running |
| HDB数据库状态 | SELECT state_desc FROM sys.databases WHERE name='DESIGOCC_HDB' | 返回ONLINE |
| 项目文件夹权限 | icacls "C:\GMSProjects\BA_Project_2023" | 包含NT SERVICE\DesigoCCServer:(OI)(CI)(F) |
| 端口监听状态 | netstat -ano | findstr :50000 | 输出含LISTENING且PID对应DesigoCCServer.exe |
| 事件日志写入 | 查询EventLog表最新10条 | 有EventType=1001(测试事件)且EventTime在5分钟内 |
| 备份文件可读 | RESTORE VERIFYONLY FROM DISK='...\backup.bak' | 返回The backup set on file 1 is valid. |
从那以后我每次部署Desigo CC,都强制走一遍这个端到端事件流测试——不是为了证明“我会装”,而是为了确保交付给客户的系统,真能扛住下一个凌晨三点的空调故障报警。希望帮到你。
本文还有配套的精品资源,点击获取