最近项目上要把老产线的监控系统从组态王往 KingFusion 上迁,本来以为就是一次普通的组态软件重装,结果在 KingFusion 3.6 SP4 的安装环节实打实折腾了两天。这篇记录把我从环境检查到最终跑通的每一步、每一个坑都写清楚,尤其适合正在部署 KingFusion 3.6 SP4 的自动化工程师、系统集成商和工厂信息部门参考,也顺便把 SP4 这个版本跟老版本容易混淆的细节说明白。内容是围绕我实际安装过程展开的,工具选型和参数都是基于常见的生产环境配置,你可以直接在项目里抄作业。
1. 项目背景与整体设计思路
1.1 为什么从组态王迁移到 KingFusion
这次要上 KingFusion 的是一条中等规模的产线监控系统,现场有 3 套控制站、几十台设备,需要集中采集 PLC 数据并做历史存储与 Web 发布。以前用的是经典组态王,单机版部署,组态画面做起来很快,但到了后期问题也明显:客户端要在每台电脑上装运行环境,操作员站多了之后画面刷新和数据库读写压力都上来了,最麻烦的是远程访问和移动端查看基本靠"远程桌面",既不稳定也不安全。
KingFusion 是亚控的工业自动化组态平台,跟老组态王比,核心区别在架构上:它把数据采集、历史存储、Web 服务和组态开发拆成了独立模块,服务器端集中部署,用户端通过浏览器访问。简单说,老组态王是"一机一画面",KingFusion 是"一群机一张网"。这次迁移的目标就是把原来散在各操作站的任务收拢到一台中心服务器上,统一采集、统一存储、统一发布,后续加画面改逻辑也只在开发端做,不影响运行端。
1.2 KingFusion 3.6 SP4 版本怎么看
版本号里的 SP4 是 Service Pack 4,也就是 3.6 大版本的第四个服务补丁包。SP 包在工业软件里不是普通的小修复,它往往携带了数据库结构变更、权限模型调整、Web 服务接口更新这些动基础的东西。我在这次安装里最深的体会就是:如果是用老版本升级上来的,千万别跳 SP 去装新包,数据库结构不匹配会直接导致服务启动时报错,甚至业务画面数据读取不全。
我这次拿到的介质是已经集成了 SP4 的完整安装包,不需要先装 3.6 基础版再打补丁。但如果你手头是"3.6 基础版 + SP4 补丁包"的组合,顺序就要注意:先装好基础版并完成初始化,再执行补丁升级,全程别开着数据库去改文件,否则文件占用会导致部分组件更新失败。
1.3 总体部署架构与安装物料清单
部署上我选了单服务器集中式架构,理由很简单:现场规模不大,不需要把采集服务、存储服务、Web 服务拆到多台机器上,单台服务器配置到位就够了。等以后设备数量翻倍,KingFusion 的服务是可以拆开独立部署的,升级路径是平滑的,这一点在选型时可以提前想清楚。
安装前先列物料清单,避免现场缺东西:
- Windows Server 2019 操作系统介质,建议装带桌面体验的版本,方便调试;
- SQL Server 2019 数据库安装包,生产环境建议用标准版以上;
- KingFusion 3.6 SP4 安装介质和授权许可文件;
- 服务器固定 IP、机器名规划,以及 Web 访问端口号;
- Chrome 或 Edge 浏览器,用于访问 Web 客户端;
- 一台装有开发客户端的工程师站,用于组态画面修改。
清单确认完,再动服务器。这里有个非常容易踩的小坑:服务器机器名如果包含下划线或特殊字符,后面的数据库连接和站点绑定容易出一些莫名其妙的问题。我装之前直接用标准化名称把机器重命名了,DNS 解析干净,后面省了很多事。
2. 安装前的环境检查与准备工作
2.1 服务器操作系统与硬件配置要求
KingFusion 3.6 SP4 是基于 Windows 平台的产物,服务器端建议直接选用 Windows Server 2016 或 2019。我这次用的是 Server 2019,跟老组态王时代惯用的 Win7 比,IIS 和.NET 环境更完整,安全策略也合理。如果你手头的服务器还是老掉牙的 Windows Server 2008 R2,趁早别折腾,直接装新系统。
硬件上,KingFusion 这套服务端同时承担采集、存储和 Web 发布,性能压力集中在 CPU 和磁盘读写上。我配置的是 8 核 16G 内存的机器,系统盘用的 SSD,数据和数据库目录放在独立的机械盘上。在这里有个个人建议:历史数据库文件别和系统文件堆在一起,单独一个分区,长期跑下来磁盘碎片和空间管理都轻松很多。
安装之前还要检查操作系统补丁和 .NET Framework。KingFusion 依赖 .NET 4.x,所以安装介质包里自带的 .NET 版本如果低于系统需要的版本,安装程序可能会提示你先补环境。我习惯提前在"启用或关闭 Windows 功能"里把 .NET 3.5 和 .NET 4.8 都勾上,免得安装到一半卡在环境检测这一步。
2.2 SQL Server 数据库的准备与账号规划
KingFusion 本身不内置数据库,它需要依赖外部 SQL Server 实例来存放组态数据、变量历史记录和工程元数据。这一步可以说是安装过程里最容易翻车的地方。
我在服务器上装了 SQL Server 2019,安装时特意选择了混合验证模式(Windows 身份验证 + SQL Server 身份验证)。为什么要混合模式?主要原因是 KingFusion 的服务端程序是以 Windows 服务方式运行的,如果只开 Windows 验证模式,服务通过本地系统账号去连数据库可能没问题,但后面 Web 服务和客户端连接走的是网络链路,用 SQL 账号更直观、更容易排查连接问题。安装过程中创建了一个独立的登录账号,专门给 KingFusion 用,没有直接给它 sa 权限,后续需要建库操作时,手动授权到 sysadmin 角色即可。
一个值得注意的细节是,SQL Server 默认只有 1433 端口对外监听,如果服务器开了防火墙,需要确认这个端口有没有放行。另外我是显式把数据库服务的登录模式调整为"混合模式",并重启了 SQL Server 服务,这一步千万别漏,否则后面数据库初始化工具会一直报登录失败。
2.3 IIS 与 .NET 环境的启用细节
KingFusion 的 Web 客户端跑在 IIS 上,所以服务器必须预先装好 IIS 组件。这一步是最容易被忽略的,我在虚拟机里第一次演练时就没装 IIS,安装程序本身没报错,但等配置完站点去浏览器访问的时候,页面直接给我返回 403 和 500.19,后来才意识到是 IIS 功能不完整。
我建议在服务器管理器里把"Web 服务器(IIS)"角色启用,同时勾选这些子项:静态内容、默认文档、ASP.NET 4.8、Windows 身份验证、URL 授权、HTTP 日志记录、请求筛选。其中 Windows 身份验证经常不在默认安装列表里,如果漏了,后面做系统集成登录或者是需要走域账号验证时会很不方便。
IIS 装完以后,最好再确认一下 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 目录下 Temporary ASP.NET Files 文件夹存在,如果没有,可以手动创建并给 IIS_IUSRS 用户加上读写权限,这是 ASP.NET 运行临时编译文件的目录,少了它 Web 站点的页面会一直报"未能加载文件或程序集"的异常。
2.4 安装目录与端口规划
安装目录不要选系统分区默认路径。KingFusion 有日志文件、发布文件、临时缓存,这些文件长期运行会产生大量碎片和可观的体积。我这次把程序装到 D:\KingFusion,数据库文件放在 E:\SQLData,日志文件目录也是单列。生产环境这样规划,后续清理和迁移都很友好。
端口这块要提前统一。IIS 默认盯的是 80 端口,但很多服务器上往往已经挂了别的 Web 服务,或者被其他应用程序占用。我这次直接把 KingFusion 的 Web 站点绑定到 8088 端口,固定下来之后在防火墙上放行,之后所有客户端访问地址就是 http://服务器IP:8088。端口规划的原则是:避开常见高危端口、避开已占用端口、留好记忆点就行。
如果现场服务器有硬件防火墙或安全组策略,记得在安装之前就把 TCP 8088 和 SQL Server 1433 放行,免得到最后一步全部配置完成却连不上页面,排查方向还容易跑偏到授权和配置上。
3. 逐步实操:KingFusion 3.6 SP4 安装全过程
3.1 服务端程序的安装与组件选择
介质放进光驱或者解压出来之后,双击 setup 启动安装向导。安装界面第一步会让选择安装类型或组件,常见的有服务器端、开发客户端、运行客户端。我这里只勾选了服务器端组件。
有一个经验值得单独拎出来说:如果是单机全部安装,很多安装包默认会勾选全部,但我不推荐这么干。开发客户端和服务器装在同一个台机器上方便是方便,但生产环境原则上开发工具和运行环境尽量分离,避免工程师在服务器上改画面时影响实时数据采集。所以我这台服务器上只装了服务端,组态开发的活放到独立的工程师站电脑上。
安装过程的时长取决于机器性能,正常大约 10 到 20 分钟。安装完成后程序目录会生成主程序、WebSite 目录、日志目录等关键子文件夹。此时先别急着启动任何服务,下一步数据库初始化才是重头戏。
3.2 数据库初始化和 SP4 升级脚本的执行
KingFusion 首次安装必须执行数据库初始化。安装程序自带一个数据库配置工具,界面里要填写数据库服务器地址、端口、登录账号。确认无误后点初始化,程序会自动创建一组以 KF 开头的业务数据库,这些库承载工程配置、实时值存储、历史归档与报警记录。
我在初始化的时候遇到过一次连接失败,排查下来是 SQL Server 服务还没彻底启动完,服务起来和实例监听端口之间有两三秒的窗口期。这种问题重启一下数据库服务或者等十几秒再点一次就可以了。初始化成功之后,数据库里会多出若干 KF 前缀的库,为了保险起见我把这几个库手动做了一次完全备份,防止后续操作误删数据。
如果是从旧版本升级到 SP4,初始化工具会检测现有数据库的版本,并提示需要执行升级脚本。升级前务必把原有数据库完整备份一份,这一步不是流程冗余,是真的救过命。我之前升级一个测试环境就遇到过升级脚本在中途因为主键重复而中断,如果没有备份,整个库结构就处于半新版半旧版的危险状态,进退两难。
3.3 Web 站点配置与 IIS 发布
数据库初始化完成后,安装向导一般会引导配置 IIS 站点,或提供独立的 Web 发布配置工具。在实际操作中,我倾向于手动在 IIS 里建站点,因为可控性更高,也方便查日志。
操作路径是:打开 IIS 管理器,新建网站,物理路径指向 D:\KingFusion 下的 WebSite 目录,端口填写规划好的 8088,主机名不填写,允许所有 IP 访问。应用池使用默认的 .NET v4.0 集成模式即可,如果安装程序默认设置了经典模式,建议改成集成模式,否则部分 POST 请求和 Web API 调用会出兼容问题。
站点建好之后,需要设置应用池的身份权限。KingFusion 的 Web 服务需要读取数据库和本地文件,所以应用池身份至少要有对 WebSite 目录的读取权限。最常见的问题是 IIS 默认身份对安装目录没有访问权限,页面打开直接报 500.19 或者权限错误。我直接把 WebSite 目录的安全选项里加上 IIS_IUSRS 用户的读取权限,问题就消失了。
配置完成后,先在服务器本机访问 http://localhost:8088 验证页面,如果能正常打开登录页,再放开防火墙访问限制。顺便提一句,首次访问登录页如果长时间加载不出内容,多半是数据库服务没启动,或者 Web 配置里的连接字符串指向了错误的数据库实例。
3.4 开发端与运行端客户端的安装
服务端跑通之后,工程师站需要安装开发客户端。开发客户端是用于组态设计、变量定义、画面绘制的工具,功能相当于"画图 + 配置 + 脚本编辑"的集合体。运行客户端则是操作员站或者领导查看站用的,界面简洁,不支持工程修改,主要用来看画面、操作按钮、查趋势报表。
在工程师站上双击安装程序,选择开发客户端组件,安装过程基本是下一步到底。安装完成后首次打开开发工具,需要填写要连接的服务端地址和端口,如果服务端配置正确,就能加载到服务器上的工程列表。
运行客户端的安装更轻量,浏览器本身就是运行环境,不需要额外装程序,直接访问服务器地址就行。这跟老组态王一个站点装一套运行环境的做法完全不一样,新建操作员站的成本几乎为零,这也是这次迁移中我最满意的地方。
3.5 授权导入与 License 激活
KingFusion 安装完成并不意味着能用,还要导入授权。授权通常有加密狗和授权文件两种形式,现在的项目现场为了方便,大多采用机器码绑定的离线授权文件。
操作过程不复杂:在服务器的授权管理工具里查看到本机机器码,把机器码发给厂家,生成对应的授权文件之后,在授权管理界面导入即可。这里有个非常容易踩的暗坑:服务器系统时间如果不是标准的北京时间,授权激活很大概率会失败,提示时间无效或者授权异常。我开始没注意时区设置,导入授权之后客户端一直提示未授权,查了半天才发现是服务器 UTC 时间偏差了几个小时,同步时间后重新导入立刻正常。
授权文件导入完毕后,最好重启一次全部 KingFusion 相关服务,确保授权状态被重新读取。设备数量、并发点数、功能模块这些信息都能在授权管理界面看到,建议把授权内容截图存档,方便后续核验。
4. 安装中的坑与排查技巧实录
4.1 数据库登录反复失败的排查
安装过程中我遇到的最典型问题就是数据库初始化工具提示登录失败。这种情况常见原因排前三的分别是:SQL Server 服务没启动、登录模式还是 Windows 验证、防火墙阻断了 1433 端口。
排查时可以打开 SQL Server Management Studio,先用 SQL 账号手动本地连接试试。如果本地能连、但 KingFusion 工具连接报错,就要检查连接字符串里填的数据库实例名格式,是不是漏了端口或者机器名带上了域前缀。我在现场遇到过一次实例名写成了"服务器名\SQLEXPRESS",但实际装的是默认实例,改成"服务器名"就好了。这种低级错误最容易在忙碌时反复发生,建议初始化工具的每一项都截图留档。
4.2 Web 页面 403 和 500.19 的处理
第一次配置完 IIS 站点,打开浏览器访问时,页面直接给我来了一个 500.19 错误。这个错误本质上是 IIS 读取配置文件时权限不足,或者是配置节被锁定了。排查时先看事件查看器,Windows 日志里的详细信息比浏览器页面准确得多。
我处理的办法很直接:先检查 WebSite 目录的 NTFS 权限,把 IIS_IUSRS 的读取权限加上,再看 IIS 的"功能"是否启用了 ASP.NET。如果 403 错误,则通常是默认文档没有配置,网站根目录下的默认登录页没有被 IIS 正确识别。在 IIS 站点的默认文档里手动添加上 index.html 或 Default.aspx 这类名称就好。
这个过程中有个重要原则:在 IIS 里改了绑定端口或物理路径之后,不要只刷浏览器,一定要重启一下应用池,很多缓存问题通过重启应用池能直接消失,比自己瞎查节省半小时。
4.3 端口冲突与服务启动不起来的情况
安装后服务端可能包含多个 Windows 服务,比如数据采集服务、数据处理服务、Web 辅助服务等。如果服务启动后马上停止,先别卸载重装,去安装目录下的日志文件夹翻启动日志。我在测试环境就遇到过一个服务起不来的情况,原因是数据库连接配置里 sa 账号密码被改了,但服务配置里的连接字符串没刷新,启动时连不上库,服务自动退出。
端口冲突一般体现在 Web 服务上。服务器如果之前装过其他 Web 组件,8088 被占用时 IIS 启动站点会直接报错。排查端口占用用命令 netstat -ano | findstr 8088,找到占用进程的 PID,再去任务管理器里看是哪个程序占用。能停则停,不能停就改 KingFusion 的站点端口,改完记得同步修改防火墙规则。
4.4 客户端连不上服务端的定位方法
所有服务端配置完成、本地访问正常之后,客户端仍然连不上,这问题基本集中在网络层面。先从客户端机器上用浏览器访问 http://服务器IP:8088,如果打不开,依次检查:双方网络能否互通(ping 服务器 IP)、防火墙是否放行 8088、服务器本身是否有对外网卡绑定。
如果浏览器能打开登录页,但登录成功后提示"连接服务失败",大概率是客户端解析服务端地址有问题,或者在配置客户端时填的服务器地址用了机器名,而 DNS 解析不到。我在实践里统一用 IP 地址来填,局域网内部没有 DNS 的情况下这是最稳的。
5. 部署验证与运维注意事项
5.1 安装完成后的功能点检清单
所有服务启动正常、网页能登录之后,别急着宣告胜利。我习惯按清单逐项过一遍,确认业务功能真实可用:
- 用管理员账号登录 Web 客户端,检查主界面能否正常加载;
- 打开工程画面,确认实时数据有刷新,数据库读写无报错;
- 建立一条模拟报警,确认报警页面能实时弹出并记录;
- 查一下历史曲线,确认历史数据能正常归档与回放;
- 用另一个账号(比如操作员账号)同时登录,模拟多用户并发访问,观察页面响应是否正常;
- 服务器重启一遍,确认所有 KingFusion 服务都能自动启动。
这一步检查的价值在于,很多安装问题不是立刻暴露的,而是运行几个小时之后才慢慢浮现。比如历史归档数据丢掉、Web 页面定时刷新卡顿,这些都需要提前压测才能发现。
5.2 日常运维与备份建议
KingFusion 上线后的运维重点,我认为前三名是备份、监控和补丁管理。数据库必须做完整的定期备份计划,尤其是 KF 开头的配置库和历史库。历史库天天在增长,我建议磁盘写满之前做一次容量评估,不要等站点无法写入才开始处理。
服务器时间建议做 NTP 自动同步,不仅影响授权,还影响报警时间戳和数据准确性。日志文件也需要定期清理,KingFusion 的服务日志在生产环境会迅速积累,尤其是在采集通道频繁重启或异常的时候,几天能留下几个 GB 的日志,建议写个计划任务定期归档清理。
补丁升级要克制。生产环境上能不动就尽量别动,如果确实需要升级,先在测试环境完整演练一遍流程,再挑停机窗口操作。这个教训是我花钱买来的,也是这次安装记录里最想强调的一点。
安装整个流程走下来,我最大的体会是:环境准备花掉的精力,决定了后面所有步骤的顺利程度,数据库和 IIS 这两块配置越规范,后面越省事。还有一个小技巧,装完之后可以在服务器桌面上把每个服务的名称、端口、数据库实例名、授权截止日期全部写在一张便签上,别嫌麻烦,三个月之后你回来维护的时候,会发现这张便签比啥文档都好使。