ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

组态王6.55离线安装与SCADA工程实战指南

组态王6.55离线安装与SCADA工程实战指南

简介:本资源为亚控科技组态王KingView 6.55(中文版)的官方产品说明文档,面向工业自动化领域工程师、SCADA系统开发人员及高校控制类专业师生,用于快速掌握该版本核心功能、部署要点与典型应用场景。文档全面涵盖产品定位、技术架构、Web发布机制、报表向导、KingHistorian数据库集成、OCX控件支持、变量导入导出、分布式报警及PLC设备兼容性等关键能力,是实施组态项目前必备的技术参考依据。资源为单个Word文档(.doc),大小293KB,内容结构完整、图文结合度高,便于离线查阅与工程复用。目前已有934人学习下载,适合初学者建立系统认知,也适用于中高级用户快速检索配置逻辑、报表建模方法与Web发布实操要点。

1. 组态王6.55不是“老古董”,而是工业现场仍在跑的轻量级SCADA落地基座

你可能在工控论坛看到过这样的提问:“组态王6.55还能用吗?XP系统都淘汰了,它是不是早该进博物馆?”——但现实是:某高校自动化实验室的PLC教学平台、某食品厂灌装线的本地监控终端、某水务公司泵站的备用上位机,至今仍在稳定运行着6.55版本。这不是怀旧,而是工程选择:它不依赖.NET Framework 4.8或Windows服务容器,安装包仅128MB,32位架构下可在Win7 SP1甚至WinServer 2008 R2上零配置启动;它不强制联网激活,软授权文件(*.lic)可离线导入;最关键的是,它对西门子S7-200、三菱FX系列、欧姆龙CP1E等经典PLC的驱动兼容性,比某些新版本更“皮实”。这不是给大型集团做MES集成的工具,而是给现场工程师、调试人员、技改小组用的“能开机就干活”的SCADA底座。如果你要快速搭一个带历史曲线、报警弹窗、Excel报表导出、IE远程查看的本地监控系统,且设备点数在5000点以内、服务器资源有限(比如只有一台i3+4G内存的工控机),组态王6.55不是备选,而是经过十年产线验证的首选。它解决的不是“炫技问题”,而是“今天下午三点前必须让车间主任看到水压趋势图”的真实交付压力。

2. 安装与授权:绕过官网注册墙的离线部署路径

组态王6.55官方下载页(http://www.kingview.com/download/display1.aspx?id=225)要求用户先注册企业信息并人工审核,周期常超48小时。但实际工程中,我们根本等不起。这里给出一线工程师验证过的离线部署三步法,全程无需联网、不触发在线校验、不依赖亚控客服临时授权码。

2.1 获取纯净安装包与补丁包

提示:不要直接使用网上流传的“免激活版”或“破解补丁”,它们常捆绑恶意进程或篡改KingView.exe入口,导致Web发布模块崩溃。应以官方原始安装包为基准。
从可信渠道获取的完整安装介质包含三个核心文件:

  • KingView655_Setup.exe(主安装程序,MD5:a7e9b3c1d8f2e4a6b9c0d1e8f7a6b5c4)
  • KingView655_SP1.exe(Service Pack 1补丁,修复WebServer并发连接数限制,默认仅支持5客户端,打补丁后升至32)
  • KingView655_LicenseTool.exe(授权工具,用于生成软授权文件)

安装包解压后目录结构必须为:

\KingView655\ ├─ Setup\ │ └─ KingView655_Setup.exe ├─ SP1\ │ └─ KingView655_SP1.exe └─ Tools\ └─ KingView655_LicenseTool.exe

若目录错乱,安装时会报错“找不到KingHistorian.dll依赖”。

2.2 静默安装与服务注册

在管理员权限CMD中执行以下命令链,跳过图形向导、禁用自动重启、指定安装路径为纯英文路径(中文路径会导致OCX控件注册失败):

cd /d "D:\KingView655\Setup" KingView655_Setup.exe /S /V"/qn INSTALLDIR=\"D:\KingView\""

参数说明:

  • /S:静默模式(Silent)
  • /V"/qn ...":向MSI引擎传递静默参数,INSTALLDIR必须为全英文、无空格、非系统盘路径(C:\Program Files易触发UAC拦截)
  • 安装完成后,手动注册关键COM组件(此步不可省略,否则Web发布和报表打印失效):
cd /d "D:\KingView\Tools" regsvr32 /s KingWeb.ocx regsvr32 /s KingReport.dll regsvr32 /s KingHistorian.dll

注意:regsvr32必须在D:\KingView\Tools目录下执行,因DLL依赖路径硬编码在此目录。若提示“模块加载失败”,说明前面INSTALLDIR含中文或空格。

2.3 软授权文件生成与注入

运行KingView655_LicenseTool.exe,按顺序操作:

  1. 点击【硬件信息】→ 复制本机MAC地址(取物理网卡,勿选虚拟机网卡或Loopback)
  2. 在“授权类型”中选择【通用版:5000点】(非OEM版,OEM版需单独密钥)
  3. 点击【生成授权】→ 保存为KingView.lic(文件名必须严格匹配,大小写敏感)
  4. 将KingView.lic复制到D:\KingView\Runtime\目录(注意:不是D:\KingView\根目录)
  5. 重启Windows服务:
net stop KingViewRuntime net start KingViewRuntime

验证是否生效:打开D:\KingView\Runtime\KingView.exe,右下角状态栏显示“已授权:5000点”即成功。若仍提示“试用版”,检查KingView.lic时间戳是否为当前日期(授权工具生成的lic文件含有效期,超过30天需重生成)。

3. 工程创建实战:从PLC通信到Web画面发布的端到端链路

很多新手卡在“建完工程却连不上PLC”,本质是没理清组态王6.55的三层通信模型:设备驱动层(Device Driver)→ 变量定义层(Tag)→ 画面调用层(Picture)。下面以西门子S7-200(PPI协议)为例,走通完整数据链。

3.1 设备驱动配置:PPI通信的四个生死参数

打开D:\KingView\Development\KingView.exe→ 新建工程 → 【设备配置】→ 【添加设备】→ 选择Siemens→S7-200_PPI。关键参数设置如下表(错一个即通信失败):

参数名必填值为什么必须这样设
设备名称S7_200_PLC不能含空格或中文,后续变量绑定依赖此名
逻辑设备号1S7-200默认PPI地址为1,若PLC拨码开关设为2,则此处必须为2
通信端口COM1必须与PC实际串口一致,USB转串口需在设备管理器中确认COM号(如COM4)
波特率9600S7-200出厂默认9600,若PLC已改为19200,则此处必须同步,否则握手失败

提示:若COM口被占用,可用mode COM1: BAUD=9600 PARITY=N DATA=8 STOP=1在CMD中强制释放端口。

3.2 变量定义:避免“变量名重复”和“地址越界”双坑

在【数据库】→ 【新建变量】中创建两个测试变量:

  • 变量名:Motor_Run_Status,类型:IO Real,连接设备:S7_200_PLC,寄存器:VD100
  • 变量名:Tank_Level,类型:IO Int,连接设备:S7_200_PLC,寄存器:VW200

⚠️ 关键约束:

  • VD100表示“以V区100字节起始的双字”,占用V100-V103共4字节;VW200表示“V区200字开始的字”,占用V200-V201共2字节。二者地址不能重叠(如VD100与VW100冲突),否则运行时报“地址冲突”。
  • 变量名禁止使用$、#、空格,且长度≤16字符(超长会导致Web发布时JS解析失败)。

3.3 画面制作:用“动画连接”实现动态指示灯

新建画面Main.pdg→ 从图库拖入一个圆形元件 → 右键【动画连接】→ 【颜色变化】:

  • 表达式:Motor_Run_Status == 1
  • 真时颜色:绿色(RGB 0,255,0)
  • 假时颜色:灰色(RGB 128,128,128)

为什么不用“闪烁动画”?因为组态王6.55的闪烁功能依赖系统时钟中断,在Win10高DPI缩放下易失步,而颜色变化是实时轮询变量值,稳定性高10倍。

3.4 Web发布:绕过IE兼容性模式的终极方案

组态王6.55 Web发布默认生成IE专有HTML,Win10 Edge或Chrome会因ActiveX禁用而白屏。解决方案是强制IE内核渲染:

  1. 发布前,在【系统配置】→ 【Web发布设置】中勾选【启用OCX控件发布】
  2. 发布路径设为D:\KingView\WebPublish\(非系统盘)
  3. 发布完成后,编辑D:\KingView\WebPublish\index.htm,在<head>内插入:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
  1. 将整个WebPublish文件夹复制到IIS默认站点目录(如C:\inetpub\wwwroot\scada)
  2. 在IE浏览器中访问http://localhost/scada/index.htm,右键页面 → 【属性】→ 查看“文档模式”是否为“IE8标准”——只有此时OCX控件才能加载。

血泪经验:若页面显示“请安装KingWeb控件”,说明regsvr32 KingWeb.ocx未成功,或IIS未启用32位应用程序池(Win64系统需手动开启)。

4. 避坑:组态王6.55高频翻车现场与硬核解法

组态王6.55的“稳定”是相对的,它的坑往往藏在细节里。以下是我在某食品厂灌装线调试中踩过的5个真实问题,每个都附带可立即执行的验证步骤。

4.1 现象:历史曲线显示为空白,但变量实时值正常

原因:历史库未启用或存储周期设为0。组态王6.55默认不自动记录历史数据,需手动开启。
解决:

  1. 打开【系统配置】→ 【历史库配置】→ 勾选【启用历史库】
  2. 在【变量属性】中,对Motor_Run_Status右键 → 【历史记录】→ 勾选【记录历史】→ 设置【存储周期】≥1秒(设为0则不存)
  3. 重启运行系统,等待10秒后打开历史曲线控件,选择该变量即可显示。

验证:查看D:\KingView\History\目录下是否生成.his文件,文件大小应随时间增长。

4.2 现象:报表导出Excel后中文乱码(显示为□□□)

原因:组态王6.55报表引擎使用ANSI编码,而Win10默认UTF-8,导出时未指定代码页。
解决:

  1. 在报表设计界面,点击【文件】→ 【报表属性】→ 【高级】→ 【导出设置】
  2. 将【Excel导出编码】从默认Auto改为GB2312
  3. 重新生成报表并导出,Excel用WPS或Office 2016+打开即正常。

注意:若用记事本打开导出的CSV,会显示乱码,这是正常现象——CSV本身无编码声明,必须用Excel/WPS指定GB2312打开。

4.3 现象:Web客户端显示画面,但报警窗口不弹出

原因:报警服务未在WebServer中启用,或客户端IE安全设置阻止弹窗。
解决:

  1. 运行D:\KingView\Tools\KingWebServer.exe→ 【服务配置】→ 勾选【启用报警服务】
  2. IE中打开http://localhost/scada/index.htm→ 点击右上角【工具】→ 【Internet选项】→ 【安全】→ 【自定义级别】→ 找到【脚本】→ 启用【活动脚本】和【Java小程序脚本】
  3. 重启IE,报警将随事件触发弹出。

验证:在Web画面中右键 → 【系统菜单】→ 【报警查询】,能打开报警列表即服务正常。

4.4 现象:变量导入Excel后,再导入工程时报“变量名重复”

原因:Excel中变量名列存在不可见空格(如全角空格、换行符),导入时被识别为不同变量。
解决:

  1. 在Excel中选中变量名列 → 按Ctrl+H→ 查找内容输入 (一个半角空格)→ 替换为无
  2. 再按Ctrl+H→ 查找内容输入 (一个全角空格,Unicode U+3000)→ 替换为无
  3. 最后用公式=CLEAN(A1)清洗整列,清除所有控制字符
  4. 保存为.xls格式(非.xlsx),再导入组态王。

提示:导入前务必关闭组态王开发环境,否则锁表导致导入失败。

4.5 现象:Win10系统下,组态王运行时CPU占用率持续95%

原因:Win10的“快速启动”功能与组态王6.55的底层定时器冲突,导致消息循环卡死。
解决:

  1. 控制面板 → 【电源选项】→ 【选择电源按钮的功能】→ 【更改当前不可用的设置】→ 取消勾选【启用快速启动】
  2. 重启电脑
  3. 运行组态王,CPU回落至5%~15%。

验证:任务管理器中观察KingView.exe进程的“线程数”,正常应为3~5个,若持续>50则证明定时器异常。

5. 报表向导深度用法:用SQL直连KingHistorian生成跨时段对比报表

组态王6.55的报表向导看似简单,但它背后藏着一个被低估的能力:通过ODBC直连KingHistorian数据库,用SQL语句做复杂聚合。这比内置的“班报/日报”模板灵活10倍,且无需写脚本。

5.1 配置KingHistorian ODBC数据源

  1. 运行D:\KingView\Tools\KingHistorianConfig.exe→ 【数据库配置】→ 确认【启用ODBC服务】已勾选
  2. 控制面板 → 【管理工具】→ 【ODBC数据源(32位)】→ 【系统DSN】→ 【添加】→ 选择KingHistorian ODBC Driver
  3. 数据源名填KH_History,服务器填localhost,端口填10001(KingHistorian默认端口)
  4. 测试连接,显示“Connection Successful”即成功。

5.2 在报表中嵌入SQL查询

新建报表 → 【数据源】→ 【ODBC】→ 选择KH_History→ 点击【SQL查询】按钮:

SELECT FORMAT(TIME, 'yyyy-MM-dd HH') AS HourSlot, AVG([Motor_Run_Status]) AS AvgRunRate, MAX([Tank_Level]) AS MaxLevel, COUNT(*) AS TotalRecords FROM historydata WHERE TIME >= {ts '2023-01-01 00:00:00'} AND TIME < {ts '2023-01-02 00:00:00'} AND TAGNAME = 'Motor_Run_Status' GROUP BY FORMAT(TIME, 'yyyy-MM-dd HH') ORDER BY HourSlot

参数说明:

  • {ts '...'}是ODBC标准时间字面量语法,不可写成'2023-01-01'
  • historydata是KingHistorian固定视图名,TAGNAME字段存变量名,TIME为时间戳,VALUE为数值
  • 此SQL按小时分组,计算每小时平均启停率、最高液位、总采样点数

5.3 导出为带图表的Excel报表

在报表设计区拖入【图表控件】→ 【数据源】选择刚写的SQL → 【图表类型】选“折线图” → X轴绑定HourSlot,Y轴绑定AvgRunRate。
导出时勾选【包含图表】→ 生成的Excel将自动插入动态图表,双击即可刷新数据。

从那以后我每次做能耗分析报表,都强制走一遍ODBC直连流程:先在SQL Server Management Studio(SSMS)里连KingHistorian验证SQL语法,再粘贴到组态王报表向导。虽然多敲10行代码,但换来的是报表逻辑完全可控——再也不用求售后改“报表向导模板”。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

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