常见问题:先按这些入口查,绝大多数现场问题能定位

先确认服务在不在运行,再看端口、数据库、磁盘和防火墙。Windows 用「启动设置」看 redis 和 hqserver 是否都在运行;Linux 用 sudo hqcontrolctl status 和 sudo hqcontrolctl health 看服务和健康状态。

FAQ

FAQ: 常见问题:先按这些入口查,绝大多数现场问题能定位

这里收集实施、运维和客户常见问题。优先按问题类型进入对应检查项,未经确认不直接修改数据库、删除文件或重装系统。

HQControl 起不来、网页打不开(先按这个顺序查)

先确认服务在不在运行,再看端口、数据库、磁盘和防火墙。Windows 用「启动设置」看 redis 和 hqserver 是否都在运行;Linux 用 sudo hqcontrolctl statussudo hqcontrolctl health 看服务和健康状态。

  • 服务没起来:Windows 在启动设置里右键启动;Linux 执行 sudo hqcontrolctl restart
  • 端口被占用:网页端口(默认 8080)被其他程序占了会起不来;换掉占用程序,或改网页端口(见下一条)。
  • 数据库没就绪:起来又退、或日志提示连不上数据库时,先确认数据库服务在运行;Linux 看 sudo hqcontrolctl logs postgres
  • 磁盘满 / 装错盘:清理磁盘空间;安装目录不要放在光驱、U 盘或网络盘。
  • 页面可打开但功能被锁定:通常是试用到期,需要进入 /license 激活(见“授权激活”)。
  • 本机可打开、其它电脑无法打开:检查防火墙和访问地址(见“其他电脑访问不了”)。

HQControl 网页访问端口修改

打开设置页(浏览器访问 HQControl 地址加 /settings),在「基础访问」这组把「监听地址」里的端口改掉,保存后重启 HQControl 才生效。例如默认 :8080,想用 9090 就改成 :9090;只想本机访问可填 127.0.0.1:9090

  • 改完保存:Windows 在启动设置里重启 HQControl;Linux 执行 sudo hqcontrolctl restart
  • 改完之后客户端要用新端口访问,例如 http://服务器IP:9090
  • Linux 没有桌面时,可用 SSH 隧道在本地电脑打开 /settings 修改。
  • 数据库、缓存、脚本执行用的是本机内部端口,不在这里改,也不要对公网开放。

其他电脑访问不了 / 远程打不开

先在服务器本机确认页面可打开(http://127.0.0.1:8080)。本机可打开、其它电脑无法访问时,通常与访问地址、防火墙或网络有关。

  • 用服务器真实 IP 访问(Windows 用 ipconfig、Linux 用 hostname -I 查),不要在其他电脑上用 127.0.0.1。
  • 放行网页端口:Windows 防火墙加入站规则放行 8080;Linux 用 sudo ufw allow 8080/tcp 或 firewalld 放行。
  • 虚拟机部署时,网络应使用「桥接」模式,其它机器才能访问。
  • 用域名或反向代理访问时,记得开启 WebSocket(见“用域名或反向代理后实时数据断开”)。

现场应该开放哪些端口

正式安装后,对外只需要开放 HQControl 的网页端口(默认 8080,如改过以设置页「监听地址」或 sudo hqcontrolctl ports 为准)。数据库、缓存、脚本执行都是本机内部服务,装好后默认锁在本机,不应开放给客户机或公网。

  • 浏览器访问:http://服务器IP:8080(或现场配置的端口)。
  • IO State API 和 WebSocket:都在网页端口下,不另开端口。
  • 数据库、缓存、脚本执行:本机内部服务,不要直接暴露到公网。

设备连不上:西门子 S7

S7 有两条不同链路,先分清用哪条:绝对地址走 S7 TCP(默认端口 102,要填 Rack/Slot);符号地址走 OPC UA(默认端口 4840,填 Endpoint)。在设备连接页做一次连接检查,按提示判断是网络、握手还是会话的问题。

  • 绝对地址:确认 Host、端口 102、Rack/Slot 正确,S7-1200/1500 通常 Rack 0 / Slot 1,S7-300/400 通常 Rack 0 / Slot 2。
  • 绝对地址连不上:到 PLC 里允许 PUT/GET(S7 通信),并把要读的 DB 关掉“优化的块访问”。
  • 符号地址:先在 PLC 里启用 OPC UA Server,Endpoint 填 opc.tcp://PLC-IP:4840;安全策略、安全模式、匿名或账号登录要和 PLC 一致。
  • 符号地址的 Tag 只填符号地址,不要再填 DB 号、字节偏移;数组和复杂结构拆成单个标量点。
  • 都对还是连不上:查是否能 ping 通 PLC、防火墙是否放行对应端口。

设备连不上:Modbus TCP

Modbus TCP 默认端口 502。连得上但数值不对,多半是地址基数或字节序和设备不一致;连不上多半是 IP、端口、从站地址或网络问题。在设备连接页做连接检查,按返回的异常码定位。

  • 确认设备 IP、端口(默认 502)和「从站 / 单元 ID」正确(按设备说明书,常见是 1)。
  • 地址基数:寄存器从 0 还是从 1 开始,要和设备说明书一致。
  • 数值明显错乱:调「字节序 / 字序」,读一个已知寄存器对照着调到对为止。
  • 读不到某类点:确认寄存器类型选对(保持寄存器、输入寄存器、线圈、离散输入)。

设备连不上:OPC UA

OPC UA 设备要先在设备侧开启 OPC UA Server。Endpoint 填 opc.tcp://地址:端口(常见 4840)。在设备连接页做连接检查,重点看是网络、握手还是会话(安全 / 认证)阶段失败。

  • 确认设备已启用 OPC UA Server,Endpoint 地址和端口填对。
  • 安全策略、安全模式要和设备一致(开发常用 None,生产按设备要求选)。
  • 需要账号登录时,认证方式选「用户名」并填账号密码;否则用匿名。
  • 证书不被信任时,按设备 / 服务器的证书信任设置处理。

连上了,但部分 Tag 是 bad、stale 或 unverified

单个坏点不等于整台设备不可用。设备主状态只看连接、采集能力和归属;坏点要进 Tag 诊断或坏点复测里单独核。unverified 表示按需点还没被采集确认,既不是 good 也不是 bad。

  • 先用 Tag 诊断复核关键点的值、质量和时间戳。
  • bad_address:地址写错或超出设备范围,检查地址格式、DB / 寄存器号、位偏移。
  • bad_type:地址对但数据类型不匹配,把 Tag 数据类型改成和设备里实际一致。
  • stale:太久没读到新值,看设备是否在线、采集周期是否太慢。
  • 按需点没有画面、弹窗、趋势或诊断订阅时,不会长期进入采集计划,属正常。

实时值不刷新,先查哪里

按链路查:设备连接 → 采集 → 缓存 → WebSocket → 页面订阅。系统状态页能看到 IO、缓存、WebSocket 等模块状态;反向代理场景还要确认 WebSocket 已开启。

  • 设备是否在线,当前节点是否该设备的采集节点。
  • 纯显示的点要设成按周期采集(有扫描周期),否则只在被订阅时才读。
  • Tag 质量为 bad 时画面不显示该值,先把设备 / 地址问题解决。
  • 用域名或反向代理时,确认 WebSocket 已开启(见对应条目)。

报警不触发 / 不记录

先确认这个 Tag 有实时值,再确认报警配置对。报警基于 Tag 主数据,Tag 没值或质量为 bad 时不会触发普通阈值报警。

  • 在 Tag 诊断里确认这个点有实时值、质量是 good。
  • 在报警配置里确认该点已开启参与报警,且选了正确的报警方式。
  • 阈值要按现场单位填,不要把原始值和换算后的工程值混用。
  • 保存后制造一次触发场景,确认能产生、恢复并在事件记录里留痕。
  • 整类报警都不动:到系统状态看报警模块是否在运行。

趋势没有曲线

趋势要先给点位开启归档 / 趋势参与,再看留存周期和时间范围。刚开启的点位需要积累一段时间才有曲线。

  • 在趋势配置里确认该点已开启归档或趋势参与。
  • 在数据留存里确认保留周期够长,查询的时间范围落在保留期内。
  • 采样周期或死区设得太大时,变化小的量会很少落点。
  • 整类趋势都没有:到系统状态看趋势模块是否在运行。

运行画面空白或菜单打不开

优先检查画面文件页、菜单配置和对外访问地址。画面资源应在画面运行目录的 screens/assets/<画面编码>/index.html,菜单里的页面列表来自画面运行目录扫描结果。

  • 画面文件页能看到对应目录和入口 HTML,且已发布。
  • 菜单目标指向实际存在的页面,当前账号也有对应权限。
  • 浏览器里页面资源没有 404(可按 F12 看网络请求)。
  • 设置页里的对外访问地址不是旧 IP 或临时主机名。

登录不了 / 忘记密码 / 权限不够

首次安装用初始管理员账号登录(初始密码见部署或交付说明),登录后立刻改密码。日常账号在权限配置里管理。

  • 忘了某个账号的密码:用另一个管理员账号在权限配置里给它重置。
  • 所有管理员都无法进入:没有自助重置命令,需要技术人员在数据库层面处理,不要自行删除数据库。
  • 能登录但进不去某些页面:到权限配置确认该账号的角色有对应权限。
  • 账号被停用或要求改密:到权限配置启用账号,或按提示先改密码。
  • 系统设置页和授权页:要最高管理员登录后才能保存或激活。

提示试用到期 / 需要授权

未激活时有 30 天试用。到期后业务功能会锁定,只剩授权页和设置页可用。去 /license 完成在线或离线激活即可恢复,具体步骤见“授权激活”章节。

  • 本机直接打开 /license;远程要先用最高管理员登录。
  • 能联网用在线激活;不能联网用离线激活(导出请求文件 → 签发 → 导回导入)。
  • 换了机器要重新申请授权,旧机器的授权文件不能直接复用。

数据库或缓存异常

页面打开很慢、没有实时值,或系统状态里数据库 / 缓存发灰时,多半是数据库或缓存出了问题。先看日志,再按顺序重启。

  • Linux 看日志:sudo hqcontrolctl logs postgressudo hqcontrolctl logs redis
  • Windows:在启动设置里看对应服务是否在运行,必要时重启。
  • 重启顺序按数据库 → 缓存 → HQControl;Linux 直接 sudo hqcontrolctl restart
  • 用外部数据库时,确认数据库服务器可达、账号密码对、扩展可用。

磁盘越来越满

历史趋势、事件和日志会随时间增长。磁盘快满会导致写入失败、趋势停更。先确认是哪类数据涨得快,再用数据留存策略控制。

  • Linux 用 df -h 看磁盘占用;Windows 看磁盘剩余空间。
  • 在数据留存里把趋势、事件、报警的保留周期调到够用即可,不要一味设很长。
  • 确认留存模块在运行(系统状态里看)。
  • 长期趋势用聚合数据(分钟 / 小时)代替原始点,更省空间。

点位很多、系统变慢

点位很多时不要所有点都高频采集。按重要程度分配采集节奏:少数关键点快采,大量点位慢采或按需采。

  • 保持「批量读取」开启,通常比逐点读更快更稳。
  • 把同设备、地址相邻的点放在一起,便于成块读取。
  • 非关键点用更长的采集周期,或设成按需点(被画面 / 趋势订阅时才读)。
  • 单设备并发请求一般保持 1,除非设备厂商明确支持并发读。

趋势、报警、事件的时间不对

时间戳以服务器时间为准。时间或时区不对,多半是服务器系统时间或时区没设对。

  • 确认服务器系统时间和时区正确,建议开启 NTP 自动校时。
  • 容器或虚拟机部署时,尤其要确认容器 / 系统的时区设置。
  • 改完系统时间后,重新查看趋势和事件时间是否恢复正常。

用域名或反向代理后,实时数据断开

通过域名或反向代理访问时,实时数据走 WebSocket,必须在反向代理上开启 WebSocket 透传,否则页面能打开但实时值不刷新。下面是 Nginx 的示例配置。

  • 反向代理目标指向 HQControl 本机网页端口(默认 http://127.0.0.1:8080)。
  • 必须透传 Upgrade 和 Connection 头,WebSocket 才能建立。
  • 设置页里的对外访问地址要填用户实际访问的域名。
location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

Integration Script(集成脚本)能做什么

集成脚本是服务器侧的 Python 脚本入口,提供 ReadTagReadTagsWriteTag 访问 HQControl 数据。正式包内置 HTTP、数据库、MQTT、WebSocket、加密等常用包;项目也可以装第三方 Python 包或配本地包目录。

  • 适合定时任务、HTTP/MQTT 联动、SQL 读写和现场自动化。
  • 脚本执行服务只在本机运行,不是公开接口。
  • 先看脚本运行记录确认最近结果、超时、并发和失败日志。
  • 能用配置项完成的,优先用配置项;脚本用来补充配置表达不了的流程。

我想迁移服务器,应该备份哪些文件

先看“迁移备份”章节。最少要备份数据库、configscreens/assetsdata/screen-file-history。Windows 默认在 D:\HQCONTROLC:\HQCONTROL;Linux 默认在 /opt/hqcontrol。换硬件后不要复制旧授权文件,新机器要重新导出授权请求。

  • 主数据和历史记录主要在数据库里。
  • 画面运行资源在 screens/assets
  • 主机级配置在 config 目录和启动配置里。
  • 画面发布历史在 data/screen-file-history
  • 新机器授权到 /license 重新处理。

覆盖升级后如何确认更新包生效

同机覆盖升级会保留配置、数据、日志、运行目录和运行时依赖。升级后先看系统状态和 /settings,再看数据库迁移记录、画面文件的发布版本、菜单入口、关键 Tag、报警趋势和脚本执行记录。

  • 确认数据库迁移记录已更新到目标版本。
  • 画面文件页确认当前的发布版本。
  • 关键画面打开后能读 Tag、写入受权限控制。
  • 报警总页、趋势查询和事件记录可用。
HQControl Tag 诊断排障入口
图示 1: Tag 诊断排障

实时值异常时,先用 Tag 诊断确认值、质量和时间戳,再回到画面或设备配置。

HQControl IO State API 排障入口
图示 2: IO State API

第三方读取或接口异常时,先确认 IO State API 筛选条件、访问 Key 和返回质量。

HQControl 事件记录排障入口
图示 3: 事件记录

覆盖升级、报警确认、写值和脚本问题都应回事件记录确认实际操作链路。