2.6、系统组成
CMS 采用三层架构设计,各层职责明确、相互协作。本文介绍系统的各个组成部分及其作用。
💡 提示:如需了解架构原理和数据流向,请先阅读 核心概念 - 系统架构
2.6.1、客户端程序
Editor(开发客户端)
用途:工程开发和配置
主要功能:
- 工程管理:创建、打开、备份、还原工程
- 变量配置:设备连接、变量定义、历史归档设置
- 页面设计:拖拽式界面设计、组件配置、数据绑定
- 业务配置:报警规则、数据表结构、脚本编写、权限管理
- 调试测试:实时监控、数据查看、功能验证
适用人员:工程师、开发人员
启动方式:CMS 服务监控 → 点击"启动"按钮

Vision(运行客户端)
用途:工程运行和现场监控
主要功能:
- 加载并运行已开发的工程
- 实时显示监控页面
- 数据查看和操作交互
- 报警查看和确认
- 生产数据记录
适用人员:现场操作人员、管理人员
启动方式:CMS 服务监控 → 配置运行工程 → 点击"启动"按钮

2.6.2、服务程序
CMS 服务监控
用途:管理和监控后台服务
主要功能:
- 服务启停控制
- 数据库连接配置
- 授权管理和查看
- 系统日志查看
- 运行状态监控
访问方式:
- 双击桌面图标启动
- 点击任务栏托盘图标打开控制面板

重要提示:完全退出 CMS 需要右键托盘图标选择"退出",否则服务将在后台继续运行。
CMS Host(核心服务)
职责:
- 工程配置信息管理
- 用户认证和权限控制
- 数据处理和业务逻辑执行
- 报警条件判断和记录
- RESTful API 接口服务
- 页面资源服务
技术特点:
- 基于 .NET 6/8 开发
- 支持高并发访问
- 提供 WebSocket 实时通讯
SIOT(变量服务)
职责:
- 工业协议解析和设备通讯
- 实时数据采集(支持 100ms 级高速采集)
- 变量读写和控制指令下发
- 数据缓存和转发
- 设备连接状态监控
技术特点:
- 独立进程运行,保证采集稳定性
- 支持 200+ 工业协议
- 提供独立的实时控制链路
2.6.3、数据存储
MySQL(关系型数据库)
存储内容:
- 工程配置信息(变量定义、页面配置、报警规则等)
- 用户和权限数据
- 报警历史记录
- 业务数据表(生产记录、质量数据等)
- 变量归档数据(通过数据管理模块配置)
- 系统日志
版本要求:MySQL 8.0.32 或更高版本
替代方案:SQL Server 2016 或更高版本
InfluxDB(时序数据库)
存储内容:
- 变量历史归档数据(通过历史库模块配置)
- 高频时间序列数据
技术特点:
- 针对时间序列数据优化
- 支持高效的时间范围查询
- 自动数据压缩和过期清理
版本:InfluxDB 2.x(内置,自动安装)
归档方式对比
CMS 提供两种变量归档方式:
| 归档方式 | 存储位置 | 适用场景 | 配置位置 |
|---|---|---|---|
| 历史库归档 | InfluxDB | 高频时序数据、趋势分析 | 历史库模块 |
| 数据管理归档 | MySQL | 与业务数据关联、复杂查询 | 数据管理模块 |
详见 数据管理模块 说明。
2.6.4、工程文件
工程文件(.cmsproj)
工程文件是 CMS 的核心配置文件,扩展名为 .cmsproj,采用 SQLite 数据库格式,包含:
数据采集配置:
- IO 通道定义(协议、连接参数)
- 变量组和变量定义
- 历史归档策略
界面配置:
- 页面布局和组件
- 组件属性和样式
- 数据绑定关系
业务配置:
- 报警点和报警规则
- 数据表结构定义
- 脚本代码和任务
系统配置:
- 用户账号和权限
- 多语言翻译
- 系统参数
文件位置:
- 开发环境:用户自定义位置
- 运行环境:通过服务监控配置
工程数据
工程运行时产生的数据,存储在数据库中:
历史数据:
- InfluxDB:通过历史库模块归档的变量数据
- MySQL:通过数据管理模块归档的变量数据
业务数据(MySQL):
- 报警实时表和历史表
- 生产记录和统计数据
- 用户操作日志
重要提示:工程迁移时需要同时备份工程文件和工程数据,确保配置和数据的完整性。详见 工程备份与还原。
2.6.5、服务启动流程
首次启动
-
启动 CMS 服务监控
- 双击桌面图标或从开始菜单启动
- 服务监控程序将在后台运行
-
配置数据库连接
- 点击"设置"页签
- 配置 MySQL 连接信息(主机、端口、用户名、密码)
- 点击"检测"验证连接
- 点击"应用"保存配置
-
选择运行模式(可选)
- 正式模式:需要配置数据库,功能完整
- 试用模式:无需数据库,快速体验(功能受限,运行 2 小时)
-
启动服务
- 点击"启动"按钮
- 系统自动启动 CMS Host 和 SIOT 服务
- 等待服务状态变为"运行中"
-
打开客户端
- Editor:点击"启动"按钮进入开发环境
- Vision:先配置运行工程(选择
.cmsproj文件),再点击"启动"按钮
日常使用
服务监控程序 支持开机自启动,启动后:
- 服务自动运行,无需手动启动
- 点击托盘图标可打开控制面板
- 可以直接启动 Editor 或 Vision 客户端
2.6.6、系统目录结构
CMS 安装后的目录结构(默认路径:C:\Program Files\CMS):
CMS/
├── host/ # CMS Host 核心服务
│ ├── appsettings.json # 服务配置文件
│ ├── data/ # 工程缓存和临时数据
│ └── logs/ # 服务日志
├── siot/ # SIOT 变量服务
│ ├── License/ # 授权文件
│ ├── presslog/ # 采集日志
│ └── drivers/ # 协议驱动
├── client/ # 客户端程序
│ ├── Editor/ # 开发客户端
│ └── Vision/ # 运行客户端
├── database/ # 内置数据库
│ ├── mysql/ # MySQL 数据文件(如使用内置数据库)
│ └── influxdb/ # InfluxDB 数据文件
└── CMS.Supervisor.exe # 服务监控程序
2.6.7、网络端口
CMS 使用以下默认端口(可在配置文件中修改):
| 服务 | 端口 | 用途 |
|---|---|---|
| CMS Host | 18000 | HTTP API 和页面服务 |
| SIOT | 18001 | 变量服务通讯 |
| MySQL | 3306 | 数据库连接 |
| InfluxDB | 8086 | 时序数据库 API |
防火墙配置:如需远程访问,请开放相应端口。