Mingcedar

所属产品: Mingcedar CONTROL

服务器迁移与运行诊断 | Mingcedar

先准备完整备份,再在目标服务器检查授权、设置与业务运行。

首次发布 最近更新

<section id="preface" class="docs-block docs-block-intro"> <span class="section-kicker">运维</span> <h2>使用前说明</h2> <p>先准备完整备份,再在目标服务器检查授权、设置与业务运行。</p> <div class="docs-task-grid"> <article id="preface-item-1" class="docs-task-card"> <span>运维</span> <strong>迁移前</strong> <p>按备份清单保存数据、项目文件和运行配置,记录原服务器版本、访问地址与节点身份。</p> </article><article id="preface-item-2" class="docs-task-card"> <span>运维</span> <strong>恢复后</strong> <p>检查本机授权与 Settings,再核对 Python 项目、自写页面及外部服务的配置。</p> </article><article id="preface-item-3" class="docs-task-card"> <span>运维</span> <strong>确认运行</strong> <p>查看设备与 Tag 质量、报警和历史记录;遇到异常时,从对应页面和事件记录核对下一步。</p> </article> </div> </section> <section id="migration-backup" class="docs-block"> <span class="section-kicker">使用说明</span> <h2>备份、恢复与迁移</h2> <p>完整备份包括数据、项目文件、发布版本、脚本和运行配置;Settings 仅导出本页设置。</p> <div class="docs-detail-list"> <article id="migration-backup-item-1" class="docs-detail-row"> <strong>确定备份内容</strong> <p>按安装目录或容器持久卷整理备份范围。</p> <ol> <li>备份 PostgreSQL/TimescaleDB 数据库,并保留与备份匹配的程序版本和数据库版本信息。</li><li>保留画面文件页显示的实际用户页面目录及其完整资源,同时备份 SCREEN_FILE_HISTORY_DIR 指定的上传历史目录;若项目另有已发布版本,也备份 SCREEN_PUBLISH_ROOT_DIR 指定的发布目录。</li><li>保留 script 项目源码、依赖清单及离线安装包,以及实际使用的 config / configs 配置、弹窗模板、媒体通道、证书、节点身份和项目凭据。</li><li>按实际部署记录 data、logs 与 backups 的用途;密钥和授权材料使用受控的备份位置。</li> </ol> </article><article id="migration-backup-item-2" class="docs-detail-row"> <strong>执行备份与恢复</strong> <p>数据库备份使用数据库支持的一致性备份方式;直接复制运行中的数据库目录不能保证可恢复。</p> <ol> <li>需要文件级整机备份时,安排维护窗口并按安装包流程停止相关运行与数据服务。</li><li>在恢复位置准备匹配版本,恢复数据库、项目资源及上传历史、已使用的发布版本、脚本及配置。</li><li>启动后检查数据库、Redis、五项服务和授权,再检查画面、设备质量、报警、趋势、脚本及权限。</li> </ol> </article><article id="migration-backup-item-3" class="docs-detail-row"> <strong>迁移到新设备或新地址</strong> <p>迁移同时涉及访问地址、设备身份与现场采集责任。</p> <ol> <li>更新目标设备的 Portal、Screen 地址与证书,确认客户端可访问两个入口。</li><li>按授权页要求处理新设备激活;站点关系需要重新核对连接身份和能力。</li><li>确认原节点已退出目标 PLC 的采集责任,再启用新节点;在 Tag 诊断中核对质量、时间与来源。</li> </ol> </article> </div> </section><section id="license" class="docs-block"> <span class="section-kicker">使用说明</span> <h2>授权状态与在线激活</h2> <p>在 /license 查看本机授权,选择在线激活或离线文件激活。</p> <div class="docs-detail-list"> <article id="license-item-1" class="docs-detail-row"> <strong>查看本机授权</strong> <p>从 Settings 的“授权页”入口,或直接访问宿主机 /license。</p> <ol> <li>查看当前状态、授权类型和试用剩余时间。未激活时提供短时试用;试用结束会限制业务运行,以页面状态为准。</li><li>重装或迁移时,在本机信息中核对当前设备与安装身份。</li><li>永久授权已生效时无需重复输入授权码;有效永久证书保存在本机,可在授权服务不可达时继续离线运行。</li> </ol> </article><article id="license-item-2" class="docs-detail-row"> <strong>使用授权码在线激活</strong> <p>宿主机需要能够连接授权服务。</p> <ol> <li>打开“激活”页签,填写授权中心提供的授权码。</li><li>提交激活,等待设备校验和证书保存结果。</li><li>永久授权生效后检查系统状态;失败时按提示核对网络、授权码或设备绑定。</li> </ol> </article><article id="license-item-3" class="docs-detail-row"> <strong>重装、迁移与授权异常</strong> <p>同硬件重装由授权服务根据设备证明自动识别。</p> <ol> <li>使用当前安装重新发起激活或生成离线请求,无需手工选择首次安装或重装模式。</li><li>更换设备时按授权服务返回的绑定要求处理。激活文件须匹配目标设备和安装身份。</li><li>授权撤销、证书无效或绑定不匹配时,按页面原因处理;系统不会自动恢复授权。</li> </ol> </article> </div> <div class="docs-note-grid"> <figure id="license-image-1" data-after-card-anchor="license-item-1" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQserver/current-20261023/license.jpg" alt="Mingcedar 永久授权已生效的宿主机授权页面" loading="lazy" decoding="async"> <figcaption> <strong>宿主机授权页面</strong> <p>授权页显示当前授权、校验、运行环境与实例;图中永久授权已生效,离线授权另有独立页签。</p> </figcaption> </figure> </div> </section><section id="host-settings" class="docs-block"> <span class="section-kicker">使用说明</span> <h2>Settings 系统设置</h2> <p>Settings 包含显示与操作、设备采集、Python 和视频服务等设置,各区域有独立的保存与生效规则。普通 LAN 连接模式隐藏站点互联参数;使用项目证书模式时显示该分类。</p> <div class="docs-detail-list"> <article id="host-settings-item-1" class="docs-detail-row"> <strong>打开设置与查看生效状态</strong> <p>从系统设置入口打开 Settings,或访问当前宿主机的 /settings。系统查看与修改权限分别控制可见内容和可编辑操作。</p> <ol> <li>选择左侧分类,核对页面显示的当前值和“当前生效”值。由部署环境覆盖的项目在页面中只读。</li><li>“恢复本类推荐值”只填入本类表单;核对后仍需点击保存。重新读取会放弃未保存修改并加载服务器配置。</li><li>“设置导入与导出”仅处理本页设置。导出不包含密钥;导入先填入表单,核对后保存。</li><li>保存后根据提示判断立即生效或待重启。配置冲突时重新读取再编辑,不用旧表单覆盖其他窗口的修改。</li> </ol> </article><article id="host-settings-item-2" class="docs-detail-row"> <strong>显示与操作:背景和指令确认</strong> <p>界面偏好、报警分类和运行参数分别保存。</p> <ol> <li>选择是否显示内置语言条目;开关修改后立即保存,无需重启。</li><li>配置宿主机背景是否跟随 PPT 导出背景,或使用统一背景色。</li><li>分别配置画面指令确认与设备弹窗指令确认。需要原因或保持/点动的操作仍有各自的确认要求。</li><li>背景和指令确认设置点击“保存配置”后,按提示重启生效。</li> </ol> </article><article id="host-settings-item-3" class="docs-detail-row"> <strong>报警分类:编号、名称、颜色和执行优先级</strong> <p>操作位置:Settings → 显示与操作 → 报警分类。分类编号是规则引用的标识,不是报警阈值或优先级排序。</p> <ol> <li>点击新增分类,填写唯一正整数编号、1–64 字符的名称,并选择颜色和执行优先级。</li><li>按业务需要增加分类;安装时提供的五项可编辑,分类数量不固定为五种。</li><li>点击“保存报警分类”,立即应用,无需重启。移除操作先从编辑列表删除,保存后才生效。</li><li>已被规则引用的分类不能删除或改号。历史事件保留发生时的分类信息,修改名称或颜色不会重写历史。</li><li>到 Tag 报警配置中填写该编号,再设置触发条件、阈值、死区、延时和规则启用状态。</li> </ol> </article><article id="host-settings-item-4" class="docs-detail-row"> <strong>设备采集:用途周期与物理连接</strong> <p>报警、趋势、画面、弹窗和脚本触发共享采集结果。</p> <ol> <li>在采集周期中设置各用途的周期,单位为毫秒。一个 Tag 同时有多个用途时采用所需的最短周期。</li><li>自定义点位规则可按组代码或名称正则匹配;仅对没有活动用途的点位生效。同类规则优先匹配数值较大的优先级。</li><li>点击“保存采集策略”,系统自动应用;随后到设备页和 Tag 诊断核对实际采集。</li><li>展开“设备连接与性能”,设置默认采集周期、连接/请求超时、重连间隔、并发工作数、批量读取与 OPC UA 订阅。按字段范围保存,并按提示重启。</li><li>并发工作数用于同时处理多台设备。同一 PLC 的请求串行执行,提高并发数不会加快单台 PLC。</li> </ol> </article><article id="host-settings-item-5" class="docs-detail-row"> <strong>Python:模块管理与运行参数</strong> <p>Python 分类默认进入项目模块管理;运行参数在该分类的单独入口中。</p> <ol> <li>模块管理按项目选择依赖,支持安装包上传、目录导入、自写共享包与应用环境。完整步骤见 Python 项目与依赖章节。</li><li>运行参数包括执行超时、内存、并发、可靠事件保留时间和 HTTP 入站签名密钥;按项目负载调整后保存。</li><li>已配置密钥不回显,留空保存保持原值。修改运行参数后按页面提示重启。</li> </ol> </article><article id="host-settings-item-6" class="docs-detail-row"> <strong>站点互联与视频服务</strong> <p>站点互联参数控制站点连接;远端 PLC 的物理采集参数仍由源站点管理。</p> <ol> <li>普通 LAN 模式无需在 Settings 填写共享密钥或 CA,站点互联分类会隐藏。项目证书模式显示该分类,可查看共享密钥、CA 文件、路由刷新周期和 HTTP 超时;先按站点连接章节完成对应准备。</li><li>视频服务中选择托管 MediaMTX 或已有网关。已有网关需填写播放地址;只有已有 MediaMTX 需要控制 API 地址。地址需能从对应浏览器或宿主机访问。</li><li>保存后按页面提示重启,再分别打开站点与视频画面核对实际可用状态。</li> </ol> </article><article id="s7plus-driver-setup" class="docs-detail-row"> <strong>管理员:S7Plus 驱动部署</strong> <p>已随包安装 S7Plus 驱动时,核对其可用性;单独部署或替换时按以下步骤操作。</p> <ol> <li>取得匹配平台的驱动、构建清单及许可证材料,核对可执行文件 SHA-256 与构建清单一致。</li><li>在受保护的部署配置中同时设置 S7PLUS_DRIVER_EXECUTABLE 的绝对路径和 S7PLUS_DRIVER_SHA256;Windows 路径使用 .exe 文件。这些参数不属于日常 Settings 表单。</li><li>安排维护窗口并停止相关采集服务,完成文件与配置更新后按安装包的服务管理流程启动。</li><li>设备页选择 Siemens S7Plus,填写主机、端口与所需 TLS 配置;保存后核对配置应用、连接和 Tag 质量。证书校验失败时检查信任链和服务器名称。</li> </ol> </article> </div> <div class="docs-note-grid"> <figure id="host-settings-image-1" data-after-card-anchor="host-settings-item-3" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQserver/current-20261025/settings-alarm-categories.jpg" alt="系统设置中的报警分类编号、名称、颜色与执行优先级" loading="lazy" decoding="async"> <figcaption> <strong>报警分类与执行优先级</strong> <p>分类编号用于规则引用,执行优先级单独设置。完成编辑后点击“保存报警分类”,立即应用。</p> </figcaption> </figure><figure id="host-settings-image-2" data-after-card-anchor="host-settings-item-4" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQserver/current-20261025/settings-collection-policy.jpg" alt="采集周期中按用途显示的当前周期和调整字段" loading="lazy" decoding="async"> <figcaption> <strong>按用途配置采集周期</strong> <p>同一 Tag 有多个用途时采用所需的最短周期;图中数值为当前安装的配置,项目可按需调整。</p> </figcaption> </figure> </div> </section><section id="integration" class="docs-block"> <span class="section-kicker">使用说明</span> <h2>集成开发导览</h2> <p>IO State API 提供外部只读接入,页面 SDK 处理运行页交互,Python 执行宿主机项目逻辑。</p> <div class="docs-detail-list"> <article id="integration-item-1" class="docs-detail-row"> <strong>IO State API V2</strong> <p>在 IO 状态接口配置 Profile、发布修订与 Access Key,为外部系统提供范围内的读取和实时订阅。它读取已采集状态,不提供设备写入。</p> </article><article id="integration-item-2" class="docs-detail-row"> <strong>自写页面 SDK</strong> <p>自定义 HTML 页面通过 SDK 访问声明范围内的实时值、写入、报警与历史。页面发布、菜单登录要求与当前用户权限共同决定可用操作。</p> </article><article id="integration-item-3" class="docs-detail-row"> <strong>Python 项目</strong> <p>在 script 工作台管理代码、动作、事件和记录。项目内 common/ 可复用函数;Settings → Python 管理第三方模块与自写共享包。</p> </article><article id="integration-item-4" class="docs-detail-row"> <strong>数据库与外部服务</strong> <p>Python 使用数据库驱动、HTTP 客户端等库的原生 API。项目负责连接凭据、超时、事务和外部操作结果处理;宿主机不向脚本提供自身数据库或缓存凭据。</p> </article> </div> </section><section id="common-issues" class="docs-block"> <span class="section-kicker">使用说明</span> <h2>按现象排查问题</h2> <p>结合问题页面、更新时间、设备质量和事件记录排查。</p> <div class="docs-detail-list"> <article id="common-issues-item-1" class="docs-detail-row"> <strong>页面能打开,但没有有效数值</strong> <p>页面访问、实时连接、PLC 连接与 Tag 质量分别反映不同环节。</p> <ol> <li>系统状态中确认服务和数据基础设施;设备页检查目标设备连接与当前采集。</li><li>Tag 诊断中加入目标点位,核对启用状态、地址、数据类型、质量与时间。</li><li>如果 Tag 值正常而画面仍为空,检查页面引用、当前发布版本、菜单入口以及页面权限。</li> </ol> </article><article id="common-issues-item-2" class="docs-detail-row"> <strong>远端数据、报警或趋势不可用</strong> <p>在本机站点页查看目标远端站点。</p> <ol> <li>核对远端地址、连接身份、已选择能力和设备使用范围。</li><li>分别打开远端画面、报警或趋势,确认是连接不可用还是单个能力不可用。</li><li>本机使用远端 Tag 的规则,还需核对本站定义与服务输入范围;从目录看到设备不代表已启用全部消费。</li> </ol> </article><article id="common-issues-item-3" class="docs-detail-row"> <strong>历史曲线为空或有缺口</strong> <p>历史查询依赖归档配置与查询时段内实际保存的数据。</p> <ol> <li>确认时间范围、时区、设备筛选与已选择的曲线。</li><li>核对 Tag 的归档启用、采样方式与周期,再检查 Trend 服务及数据留存。</li><li>质量失效或采集不可用时可能没有有效点;缺口按实际记录保留,扩大时间范围可帮助定位发生区间。</li> </ol> </article><article id="common-issues-item-4" class="docs-detail-row"> <strong>写入结果待确认</strong> <p>已受理、协议完成和回读确认是不同结果。</p> <ol> <li>保存请求标识、时间、目标点与返回状态;到事件记录查询同次操作。</li><li>在 Tag 诊断查看后续质量和数值。现场值可能由其他操作改变,应结合事件时间判断。</li><li>结果仍未知时先核实设备状态与请求记录,再决定是否重新操作,避免同一命令重复执行。</li> </ol> </article><article id="common-issues-item-5" class="docs-detail-row"> <strong>脚本或外部接口不可用</strong> <p>开发接口和管理页面各有独立的权限与运行条件。</p> <ol> <li>Python 检查 Script 服务、项目活动版本、事件与动作的启用状态及运行记录;新增依赖后确认安装结果,并在同一项目中检查 import。</li><li>IO State API 检查 Profile 发布状态、Access Key、Scope 与目标点范围;连接 Ticket 为单次使用。</li><li>页面 SDK 检查画面从宿主机菜单打开、声明的读写点位和用户权限;使用对应章节的错误与状态说明定位。</li> </ol> </article> </div> </section>