简介:KingSCADA4.0信创版帮助手册是一份面向工业自动化工程师、系统管理员及维护人员的SCADA系统参考文档,覆盖电力、石油、水处理、化工等行业的远程监控与管理场景,从系统安装配置、组态开发到报警处理、数据归档和报表生成均有完整说明。资源采用zip压缩打包,共1327个文件,以png、jpeg、bmp等界面截图与操作演示图片为主(超1300张),辅以少量js、css、html文件构成的交互式页面,方便按目录索引查阅,压缩包整体约25.11MB。内容不仅包含基础操作用户指南,还深入介绍了信创环境下的国产软硬件兼容、网络安全机制以及物联网/大数据等新技术的融合应用,并给出高级功能定制与集成案例。目前已有664人在CSDN浏览或学习此手册,对于需要系统掌握KingSCADA信创版使用与项目实施的中高级工程师,是一份相当实用的案头资料。
1. 拿到信创版帮助手册,先别急着翻目录
把一个跑了七年的老监控系统迁到国产化环境,是这两年最磨人的活。PLC和仪表原封不动,但组态软件、操作系统、数据库都得换,Windows小机要换成麒麟系统。KingSCADA4.0信创版帮助手册就是为这类项目准备的:它把安装部署、工程迁移、历史数据落库、Web发布这一整套流程,按国产CPU和国产操作系统的环境重新讲了一遍。对第一次接触信创版的人来说,最该关心的不是功能差多少,而是四个问题:装完能不能起来、老工程能不能搬过来、数据能不能落到达梦或金仓、服务能不能长期不退出。下面从这四个方向拆开讲。
2. 装出能跑的KingSCADA4.0信创版:麒麟环境部署与组件选择
安装是后续一切的基础,而信创版的坑恰恰在安装阶段出现得最多。和Windows版不一样,KingSCADA4.0信创版对系统运行库的依赖很重,安装脚本只负责把文件拷到指定目录,不会帮你检查缺了哪些共享库。很多时候安装界面一路“下一步”走完,启动服务才发现缺lib,日志里只有一行不起眼的报错。
2.1 信创版和Windows版差在哪:运行时、授权、进程模型
先说运行时。Windows版组态软件一般会把VC运行库、图形库全部打包进安装目录,装完就能跑;信创版则直接使用操作系统自带的GTK、X11、ODBC等基础库。银河麒麟V10基于Ubuntu维护,软件包用apt管理,装完系统之后第一件事就是把常用库补齐。缺库的症状很有迷惑性:安装不报错,服务也显示active,但进程起来后闪退,或者画面打开是黑屏。我一般会在安装前先把libgtk、unixodbc这一串基础依赖装好,省得后面排查时抓瞎。
再说授权。Windows版常见的是加密狗,插上就能用;信创版在国产平台上更多采用软授权方式,授权文件绑定机器的网卡MAC和主板信息。这意味着两件事:一是虚拟机环境里网卡MAC不能乱变,否则授权文件作废;二是安装完必须手工激活,而不是插上设备自动生效。KingSCADA4.0信创版帮助手册里关于授权的章节篇幅不大,但实际项目里因为授权导致服务起不来的情况,占了部署阶段故障的一半。
最后是进程模型。Windows版安装时会注册成Windows服务,开机自启,后台运行;信创版安装完默认是一个前台程序,注销桌面会话或者关掉终端,进程就跟着退了。生产环境必须把它做成systemd服务来管。这部分手册写得比较简略,通常需要自己补一个service文件,后面第5章会专门讲这个坑。
2.2 银河麒麟V10上最小化安装的操作步骤
常见做法是先确认CPU架构,再装依赖,最后执行安装脚本。以下是瘦身后的最小流程:
# 第一步:确认CPU架构,信创版按aarch64和x86_64分别打包 uname -m # 第二步:安装基础运行库,麒麟V10基于Ubuntu,用apt管理 sudo apt-get update sudo apt-get install -y libgtk-3-0 libx11-6 unixodbc libodbc1 # 第三步:解压安装包并执行安装脚本 tar -xzf KingSCADA4.0-linux-aarch64.tar.gz cd KingSCADA4.0 sudo ./install.sh -d /opt/kingview # 第四步:安装完成后检查服务状态 sudo systemctl status kingscada4先说第一步,uname -m输出x86_64就装x86_64包,输出aarch64就装arm包,装反了会出现“Exec format error”一类的错误。第二步的依赖中,libgtk-3-0是图形界面运行时,unixodbc负责和达梦、金仓这类国产数据库对接。install.sh -d参数指定安装目录,我习惯放在/opt下,和业务数据分开。手册里会建议你使用默认目录,但生产环境我建议单独规划磁盘,后面历史数据转储会讲原因。
安装完成后systemctl status能看到服务状态是第一步,还要看进程是否真的在跑。信创环境经常出现服务显示active,但实际进程已经僵死的情况,这时要配合ps -ef | grep kscada确认。服务名在不同小版本里可能略有出入,以手册里的实际服务名为准。
| 参数 | 最小配置 | 建议配置 |
|---|---|---|
| CPU | 2核 | 4核及以上 |
| 内存 | 8GB | 16GB |
| 系统盘 | 20GB | 40GB |
| 数据盘 | 50GB | 视历史数据量而定 |
组件的选型也要注意。KingSCADA4.0信创版的安装向导里会有组件勾选,包括采集服务、历史存储、报警服务、Web发布、报表组件。不要全选,用不上的组件会占用端口和内存。我一般只勾采集服务、历史存储和Web发布,报表用单独的报表服务器,这样排错时定位门面更小。
2.3 装完先看这四件事
安装完成后不要急着导工程,先确认四件事:架构、授权、时区、数据库驱动。架构问题前面说过了,授权状态可以用安装目录下的工具查询:
# 查授权状态,不同小版本工具名不同,常见的是lmutil或license_check /opt/kingview/bin/lmutil lmstat -a # 查时区,信创服务器默认可能是UTC timedatectl时区这个坑特别隐蔽。很多国产服务器出厂时区或为UTC,或为CST但不带Asia/Shanghai时区文件。SCADA系统记录的历史数据如果按UTC时间戳落库,在趋势曲线上看到的时间会整个偏移八小时。装完系统第一件事就执行sudo timedatectl set-timezone Asia/Shanghai,不要等数据迁完了再改,到时候历史数据对不上,还得重导一遍。
数据库驱动的验证也在这个阶段做。达梦的ODBC驱动、金仓的ODBC驱动,是否能被odbcinst -q -d列出来,这事越早确认越好。我遇到过驱动服务装了但/etc/odbc.ini配置缺失的情况,KingSCADA数据服务启动时报“Cannot load driver”,排查半天才发现是ODBC配置文件和驱动版本不匹配。
3. 工程迁移到4.0信创版:导出导入、字体控件和驱动重绑
安装只是第一步,真正花时间的是把老工程搬过来。KingSCADA4.0信创版帮助手册里关于迁移的章节写得比较理想化:照着向导点几下就能导入。实际上老工程里藏着大量依赖,只有把这些依赖先摸清,迁移才不会翻车。
3.1 迁移前摸清工程里有什么:老工程的依赖清单
在Windows开发机上找到老工程的工程目录,常见结构是一个主工程文件夹,里面包含画面文件、变量表、脚本、报警配置、报表模板。先别急着把整个文件夹拷到信创环境,按下面这份清单过一遍,确认工程里都有什么依赖:
- 画面文件引用的字体列表,特别是微软雅黑、宋体这类Windows字体,在麒麟上默认没有
- 是否用了ActiveX控件,老版画面里的日历控件、图表控件在Linux下没有
- 变量表里的设备连接是走OPC DA还是MODBUS,OPC DA依赖DCOM,Linux底下根本没有这套机制
- 脚本里调用了哪些外部接口,比如通过ODBC访问Access数据库,这类代码在信创环境必须改
摸清依赖之后,把老工程整个拷贝到信创服务器,用工程管理器导入。导入完成后不要直接看画面,先打开变量表看看有没有变量变成黄色感叹号,黄色一般代表设备连接失效。
3.2 画面和脚本迁移:字体、ActiveX、类C脚本的三处改造
画面迁移最麻烦的是字体。老工程里画面上到处是“微软雅黑”“宋体”,在麒麟系统里这些字体不存在,文字显示成方块或者变成默认字体,画面排版直接乱掉。常见做法是把画面模板里的字体统一替换为Noto Sans CJK SC或WenQuanYi Zen Hei。在工程管理器里做全局替换,比在每张画面上手动改要快得多。
ActiveX控件的替换更费劲。老画面上的ActiveX表格控件、曲线控件,在信创版里推荐用内置控件替代。如果你手里的工程用了大量第三方ActiveX,得提前确认帮助手册里对应功能的替代控件是什么。有些控件功能接近,但属性名和方法名不一样,脚本里的调用要跟着改。
脚本迁移是重头戏。KingSCADA的脚本是类C语法,老工程里大量使用Windows API或者VBS风格的调用。信创版在脚本引擎上做了解释器层面的适配,但函数名和行为可能有差异:
// 老版本脚本里的弹窗调用 ShowWindow("报警窗口"); // 信创版中需要改为内置窗口方法 OpenWindow("报警窗口"); // 老版本依赖Windows路径分隔符 string path = "C:\\project\\data.csv"; // 信创版用Linux路径 string path = "/opt/kingview/data/data.csv";这段代码里的两处改动是迁移时最常见的。ShowWindow换成OpenWindow不只是改名,两者的返回值也不同,老代码里如果用返回值判断窗口是否打开,新版本里需要同步调整。路径分隔符的改动更隐蔽,脚本里拼接字符串然后给报表组件用,经常运行到一半才报文件找不到,排查起来很费时间。
3.3 驱动通道重绑:MODBUS TCP留用、OPC DA换OPC UA
变量表里最大的工作量在设备连接重绑。老工程里每一路设备的“连接设备”都指向一个通道,这个通道绑定了具体驱动。Windows版常见的OPC DA通道在信创版里没有,因为OPC DA基于DCOM,国产平台上没有完备的DCOM实现。常见做法是换OPC UA:
| 老驱动通道 | 信创版替代方案 | 改动量 |
|---|---|---|
| MODBUS TCP | MODBUS TCP(直接兼容) | 小,只需确认端口和从站地址 |
| OPC DA | OPC UA客户端 | 中,需要重新配置服务器端点 |
| 厂商私有串口驱动 | 串口通信驱动 | 小,检查串口权限 |
| DDE/NetDDE | 不支持 | 大,需改走TCP或数据库中间表 |
MODBUS TCP是最省事的,寄存器地址、数据类型、读写属性都能平移,只需要重新指定从站地址。OPC DA换OPC UA时要注意:老工程里的变量地址填的是“Item路径”,新版本里要换成UA的节点ID格式,格式类似ns=2;s=PLC1.AI_Temp。这个改动很容易漏。
变量表如果量大,可以在开发机上先导出CSV,然后批量修改“连接设备”列,再导入信创版工程管理器。以下是一个变量表导入时的字段对照:
点名,数据类型,连接设备,寄存器地址,读写属性 AI_TEMP,float,PLC1,40001,只读 AI_PRESS,float,PLC1,40002,只读 DO_VALVE,bool,PLC1,00001,读写CSV导入时最容易被忽略的是“连接设备”这一列必须和工程管理器里通道定义的名字完全一致,多一个空格都会导致导入后变量全部脱线。我一般导入后先筛选“设备连接状态”列,把所有异常变量集中处理,而不是在画面上单个去点。
4. 历史数据和实时数据落库:信创版接达梦与金仓的配置细节
KingSCADA4.0信创版把历史数据存储和外接关系数据库分成了两件事。自带的历史存储组件负责把采集数据按时间序列落盘,供趋势曲线查询;而要把数据交给报表系统或第三方管理平台,则需要接到达梦或金仓这类数据库。国产化项目里,后者往往是验收硬指标。
4.1 实时库和历史库,为什么必须用外部数据库
KingSCADA本身有实时数据库,采集上来的数据在内存里驻留,同时按周期写入历史文件。这个设计在单机项目里没什么问题,一旦客户要求数据保留三年、报表系统直接查数据库,历史文件就顶不住了——查询效率低,备份也麻烦。信创项目里客户点名要达梦或金仓,本质上是希望数据资产掌握在数据库手里,而不是躺在组态软件私有文件里。
所以信创版在数据服务里把“历史数据转储”做成标准功能:采集值先写入内置历史存储,再通过数据服务定时写入外部数据库。好处是趋势曲线仍走高速文件读取,报表和其他系统走SQL查询,两边互不拖累。
这个方案要注意转储延迟。转储周期设得太短,数据库写入压力大;设得太长,报表系统查到的数据滞后明显。我一般设为5秒一个批,每批批量插入,比逐条写入效率高很多。
4.2 达梦数据库连接配置
达梦的默认端口是5236,安装完成后第一件事是建库建用户。数据服务的连接方式通常是ODBC,需要在/etc/odbc.ini里配置数据源:
# /etc/odbc.ini [dm_scada] Description = DM Database for KingSCADA Driver = DM8 ODBC Driver Server = 127.0.0.1 Port = 5236 Database = SCADA_DB对应的数据服务连接字符串这么填:
SERVER=127.0.0.1;PORT=5236;DATABASE=SCADA_DB;UID=SYSDBA;PWD=your_password注意达梦的ODBC驱动有两套,一套是达梦自带的,一套是unixODBC自带的通用驱动。KingSCADA数据服务在连接时要求使用达梦官方驱动,否则会报“Data source name not found”。配置完odbc.ini后用isql -v dm_scada测试连通性,能正常返回结果再回到KingSCADA里建数据表。达梦驱动在不同CPU架构下需要分别安装,aarch64机器上要装arm版驱动,这个在下载页面就能区分。
4.3 金仓数据库连接配置
金仓数据库的默认端口是54321,连接方式和达梦类似,也支持ODBC。金仓的ODBC驱动在小版本间差异较大,配置时优先用安装包自带的驱动版本,不要混用系统自带的通用驱动:
# /etc/odbc.ini [fk_scada] Driver = KingbaseES ODBC Driver Host = 127.0.0.1 Port = 54321 Database = scada连接串:
host=127.0.0.1 port=54321 dbname=scada user=system password=your_password金仓有个容易踩的细节:它默认连接的是public模式,而KingSCADA数据服务在初始建表时会指定模式名。如果数据库用户没有对应模式的权限,建表会静默失败。常见做法是在金仓里先建好独立用户并授权所有模式权限,再交给KingSCADA连接,避免中途因为权限问题反复重试。
达梦和金仓的驱动在KingSCADA4.0信创版帮助手册里通常有对照表,标注哪个版本驱动适配哪个数据库小版本。安装驱动后一定要重启KingSCADA数据服务,ODBC配置变更不会自动热加载,不重启就没反应。
4.4 历史数据转储与清理策略
转储策略的合理设置来自对数据量的估算。假设每个采集点每5秒一个值,1000个点一天的数据量大约140万条记录。数据库按这个规模设计表时,建议按月分表存储,便于后续清理和归档。KingSCADA数据服务支持在表名后缀加日期,常见格式history_202502这类,配置时确认一下命名规则能被报表系统接受。
磁盘清理要同时照顾数据库和KingSCADA历史文件。数据库侧用保留窗口策略,比如保留13个月,超期数据定时删除;KingSCADA侧的历史文件也要配置自动清理,否则磁盘被塞满后采集服务会挂。这里的教训是:数据库磁盘满了是报错,KingSCADA历史文件满了是直接采集中断,两个都要盯,不只盯一个。通知告警建议接到已有监控平台,通过SNMP或邮件发出来,单独靠值班人定时看服务器不现实。
5. KingSCADA4.0信创版排查:授权、画面、时间戳与服务常驻
无论手册写得多么完整,现场出的问题永远不在手册的“常见问题”列表里。这里挑四个我实际遇到过的,按“现象→原因→解决”的方式写出来,每条都是一个完整的闭环。先看一眼现象,再顺着代理器找根因,最后落到操作步骤。
5.1 授权激活提示“未找到密钥”怎么办
现象:KingSCADA启动后画面能打开,但进入运行态时提示“未找到有效授权”,或者服务日志里出现“license key not found”的报错。在开发机上一切正常,部署到服务器就报这个。
原因:信创版软授权绑定了网卡MAC地址。虚拟机环境里,服务器重启后MAC地址可能变化;另外,有些机器有多个网口,绑定的是其中一块网卡的MAC,网卡有问题时系统切换到了另一块网卡,授权就失效了。
解决:第一步,用授权工具查看当前授权绑定的MAC地址;第二步,把服务器网卡的MAC地址固定下来,在虚拟机里设置为静态MAC,或者在BIOS里禁用随机MAC;第三步,重新生成授权文件。生成授权文件时只保留实际使用的物理网卡,其他网卡驱动禁用,避免授权工具误选网卡。
5.2 画面字体碎裂、切换卡顿
现象:画面文字显示成小方块,中文完全不可读;切换画面时,界面卡顿一两秒。在Windows版上同样的工程很流畅。
原因:两个原因叠加。字体问题是因为系统缺少中文字体,画面里的字体映射失败;画面卡顿通常是因为信创环境缺少GPU驱动,图形渲染回退到了软件渲染,而软件渲染对高分辨率画面压力很大。
解决:先解决字体,安装Noto字体集:
sudo apt-get install -y fonts-noto-cjk装完字体后,重启KingSCADA开发环境,画面文字就能正常显示。卡顿问题要检查图形渲染方式,在KingSCADA运行环境配置里找图形渲染模式,常见做法是关闭“硬件加速”或“GPU加速”,改用软件渲染。可能有人会觉得关掉加速会更卡,但实际上信创机器上GPU驱动通常没装上,强行开硬件加速反而更慢。这里建议关闭后重试,以实际帧率表现为准。
5.3 历史数据时间差八小时
现象:趋势曲线里显示的数据点和实际时间对不上,数据库表里写入的时间戳比北京时间慢八小时,或者曲线横轴显示的全是UTC时间。
原因:服务器的系统时区没有设置为北京时间。很多默认镜像使用UTC时区,KingSCADA取系统时间转成时间戳时,直接落库就带了八小时偏差。更隐蔽的是,如果数据库服务器时区也是UTC,写入的时间戳被报表系统读取时又按北京时间解析,偏差会叠加。
解决:把每台服务器统一设置为北京时间:
sudo timedatectl set-timezone Asia/Shanghai改完时区后,检查已有历史数据。已经错位的数据在数据库里直接UPDATE时间戳偏移8小时是不推荐的,因为夏令时和闰秒会干扰;更稳妥的做法是清理掉测试阶段的数据,调整时区后重新采集验证,确认曲线正常后再进入正式收集。
5.4 远程桌面登出后服务进程退出
现象:通过SSH或远程桌面在服务器上启动了KingSCADA,关闭终端后再次连接,发现服务已经停了,实时数据中断。
原因:KingSCADA的默认启动方式是前台启动,进程挂在当前终端会话下。终端关闭,会话结束,进程收到SIGHUP信号退出。这个问题在Windows版不存在,因为Windows服务可以脱离用户会话运行,但Linux版安装后默认没有注册成systemd服务。
解决:使用systemd守护服务,退出终端后服务不受影响。先创建服务文件:
sudo vi /etc/systemd/system/kingscada.service内容如下:
[Unit] Description=KingSCADA 4.0 Runtime Service After=network.target [Service] Type=simple User=kingview ExecStart=/opt/kingview/bin/kscada_runtime Restart=always RestartSec=5 [Install] WantedBy=multi-user.target保存后执行sudo systemctl daemon-reload和sudo systemctl enable --now kingscada。RestartSec=5保证崩溃后等5秒再拉起,避免反复重启时把日志打爆。服务跑起来后,再用exit登出终端验证服务是否继续运行,确认无误再投入生产。用户和运行目录这里按实际安装路径调整权限,不要直接用root跑SCADA服务,这是和Windows最大的习惯差异。
6. 上线前把这份检查单过一遍,比翻帮助手册高效得多
最后一件事,不是写总结,而是分享一个我每次上线前都会跑的自检脚本。信创环境的问题大多不是不会配,而是配完没有验证闭环,带着隐患上了生产。把检查项变成脚本跑一遍,几分钟就能确认环境是健康的。
#!/bin/bash # 上线前自检脚本 echo "===== 1. 服务状态 =====" systemctl status kingscada4 --no-pager | grep -E "Active|Main PID" echo "===== 2. 授权状态 =====" /opt/kingview/bin/lmutil lmstat -a | grep -E "License|expire" echo "===== 3. 系统时间 =====" timedatectl | grep "Time zone" date echo "===== 4. 磁盘剩余 =====" df -h /var/lib/kingview | tail -1 echo "===== 5. 数据库连通性 =====" isql -v dm_scada -e "select 1" echo "===== 6. 历史数据写入 =====" tail -5 /var/log/kingview/history.log脚本里每一条都对应上线前必须过的一关。服务状态确认进程活着;授权状态确认授权没过期,信创版授权常有项目截止日期,过期当天服务会停;系统时间和时区确认历史数据时间戳正确;磁盘剩余容量确认历史文件不会写满;数据库连通性确认报表系统能拿到数据;历史日志尾部确认最后一条数据写入时间离当前时间不超过两个转储周期,如果日志还停在十分钟前,说明采集链路已经出差了。
设备清单在投产前也要核对一遍:变量表和现场设备地址有没有新增点位未加到工程里;新增模块的寄存器地址有没有和PLC程序里的实际地址对齐。这些核对在开发机上做一遍,到现场只改IP,改动越少越不容易出错。
我自己在信创项目里吃过最大的亏就是全信了手册的默认配置,时区和磁盘清理没提前设,结果上了生产之后历史数据全乱了,返工重导数据花了一周。后来自检脚本就养成了习惯,每次交付前都跑一遍,问题在机房就能发现,不用等项目停了再回头查。希望这个习惯也能帮到你。
本文还有配套的精品资源,点击获取