ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

KingFusion 3.6 SP4安装部署实战:从环境准备到故障排查

KingFusion 3.6 SP4安装部署实战:从环境准备到故障排查 最近项目上要把老产线的监控系统从组态王往 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 这两块配置越规范后面越省事。还有一个小技巧装完之后可以在服务器桌面上把每个服务的名称、端口、数据库实例名、授权截止日期全部写在一张便签上别嫌麻烦三个月之后你回来维护的时候会发现这张便签比啥文档都好使。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进