☰
KingSCADA从入门到实战:域建模、设备配置与监控画面搭建指南
2026/10/3 5:28:17 网站建设 项目流程

简介:《KingSCADA教程》是一份面向工业自动化、电力系统、交通管理、水利管理等行业的SCADA系统入门与进阶文档,适合需要快速上手KingSCADA组态软件的技术人员、项目工程师及运维人员。资源为单份doc格式文档,大小2.65MB,内容以图文混排的教程式讲解为主,目录结构清晰,涵盖图形编辑器基础、现场画面绘制、动画连接、脚本程序、报警与事件、趋势曲线、数据库连接及工程安全管理等完整知识链。已有273人浏览学习。文档重点包括:绘制现场画面时的精灵图、图形模型、现场流程图制作方法;通过动画连接与脚本程序实现图形交互和逻辑控制;报警与事件记录输出的配置与输出方式;趋势曲线中变量记录属性、曲线图素及曲线方法的使用;以及数据库连接中的数据源、表格模板、记录体创建和对数据库的操作。学习者可借此掌握从画面组态、数据联动、报警处理到趋势分析与数据库对接的完整链路,为现场监控系统的搭建、调试与工程化落地提供实操参考。

1. KingSCADA教程到底在解决什么问题:先判断它值不值得学

工业现场做监控系统,最怕的不是设备复杂,而是组态软件本身学起来无从下手。KingSCADA是亚控面向大型分布式SCADA场景的主力组态平台,和常见的组态王相比,它把工程、域、设备、画面、报警、趋势、权限拆得更细,能撑起多服务器冗余和跨车间部署,代价就是初次上手时概念多、文档里术语绕。很多工程师拿到一份“KingSCADA教程.doc”,翻完前几页就卡在“域”和“设备发布”上,画面上数据半天不刷新,也不知道去哪查原因。这篇笔记会用一套完整的最小工程做线索,从建域、配设备、绑变量、做画面,一路聊到报警趋势和权限,最后把最容易翻车的几个现场问题按“现象→原因→解决”拆开。适合刚接手厂里SCADA改造、需要快速把第一版监控画面上线的人;有一定组态王基础但没碰过KingSCADA的人,读完也能直接对着工程动手。

2. 从工程骨架到变量采集:域、设备、通道的三层建模

2.1 域是什么:KingSCADA和组态王在架构上最大的区别

组态王的逻辑是以“一台机器上的工程”为中心,IO变量直接挂在设备下面,数据采集和画面都在同一台机器上跑,单机够用,但要做双机热备或跨网段分布式部署时,就得搬整个工程再改IP,很容易漏配置。KingSCADA把运行时拆成了“域”的概念:一个域就是一组能够独立运行的服务器角色集合,包含IO采集服务器、历史存储服务器、报警服务器和画面客户端入口,域之间可以通过网络同步数据。这样做的价值在工程变大之后才明显——你可以在中控室放一台域服务器,各车间放IO采集站,域负责把数据汇总,画面客户端连到域上,不用直接面对PLC。

建域的操作在工程管理器里完成。新建工程之后,工程树下会有一个“网络配置”,里面默认建好一个域,名字一般叫Domain0。生产环境里我建议按物理位置或者业务线拆域:一个车间一个域,前处理、灌装、公用工程分开,这样某一段网络断了,其他域的监控不受影响。域的核心参数有域ID、服务器IP、端口号、冗余模式(主备、均衡)。初学阶段先不加冗余,把域ID保持默认,IP填本机地址即可。

一个容易混淆的点:变量是要“发布”到域里的。变量建好后,在变量的属性页选择它属于哪个域,相当于告诉域服务器“这个变量你负责维护”,没有发布到域的变量在运行时是找不到的。这个机制在单机工程里看不出来,但一旦你配了双机热备,主备两个域各有一份变量列表,发布关系错了,备机切上来的时候画面就会报“变量不存在”。

2.2 创建设备通道与变量采集:以Modbus TCP为例的最小配置

设备配置的入口在工程树的“设备组态”里。常见做法是先在设备组态下新建一个通道,通道里再建设备。通道这一层对应物理链路,比如串口、网卡、OPC;设备对应具体的PLC或仪表,比如西门子S7-1200、Modbus TCP仪表、三菱FX5U。这里的教训是:通道不要建得多而杂,一台工控机可能同时采集PLC和电表,但串口和网口要分开建通道,因为通信参数、超时时间完全不一样,放在同一通道下,某个设备响应慢会拖累整条通道。

以最常见的Modbus TCP为例,新建通道后,通道参数里要填目标设备的IP和端口,默认502;站的单元ID一般保持1,除非PLC侧做了多站设置。设备建好后,在设备下面就可以新建IO变量。变量类型里要特别注意数据类型和寄存器区,Modbus的保持寄存器对应PLC侧的4x区,地址偏移从0开始,但你在PLC程序里看到的地址往往是40001起算,组态软件里填的时候要跟着驱动的地址映射规则走。

// 变量地址填法示例(KingSCADA 设备组态界面,非代码) // 变量名:ReactorTemp_PV // 数据类型:Float // 寄存器区:保持寄存器(4x) // 地址:0 → 对应 PLC 侧 40001 // 地址:10 → 对应 PLC 侧 40011

这里有一个最容易踩的坑:地址偏移。PLC程序里DB块地址和Modbus映射到的寄存器地址通常不一致,比如西门子DB1.DBD0映射到Modbus 40001,但有的驱动从40001开始编号,有的从40000开始,你填的地址差一位,数值要么读到相邻值要么完全不对。排查时用Modbus调试工具去读同一个地址,两边对对看差多少,就知道该往哪个方向偏移。这是KingSCADA教程文档里往往一句话带过、现场却要折腾半天的地方。

变量建好之后,不要急着做画面,先在“数据字典”里看一遍所有IO变量的采集状态。运行时打开“诊断”,能看到每个变量的质量戳是“好”还是“超时”,质量戳为“坏”的变量,画面绑定做得再漂亮也不会刷新。这一步能省下后面大量的排查时间。

2.3 变量域的发布与冗余:什么时候需要拆域

拆域不是越高大上越好。小项目就一台机器、几十个点,一个域跑到底,硬拆成多域反而增加运维成本。我一般按两个标准判断:一是有没有双机冗余需求,二是采集面是不是分布在多个网段。没有这两个条件,单域单服务器就够。

真正要拆域的场景是:现场有A、B两个车间,物理距离远,网络通过光纤环网连起来,中控室要同时看两个车间。如果只建一个域,服务器要同时采集两个网段的设备,一个网段抖动,整个域的采集质量全部下降。拆成车间A域和车间B域,各自在车间本地部署IO采集站,中控室的客户端各自连对应域,互不干扰。域之间的数据联动靠“域间变量引用”实现,比如A域需要读B域某个温度做联锁,就在A域里建一个引用变量指向B域的那个变量。这个功能配置起来不复杂,但要求两边域的防火墙端口放通,并且引用变量的刷新周期和数据来源有一定延迟,不适合做毫秒级联锁。

拆域之后要重点检查“发布关系”。在变量属性里选择域时,注意变量的“读写属性”和“初始值”也会随域发布一起带过去,有的工程师拆了域之后,发现备域的变量初始值没设,历史曲线刚启机那一段是跳变的。这不是软件坏了,是发布的时候初始值没有随工程一起更新。

3. 画面与动画绑定:让流程图跟着实时数据动起来

3.1 图形编辑器与图元入库:站在别人的流程图上干活

KingSCADA的画面开发环境是图形编辑器,和组态王的图库逻辑类似。左侧是图元面板,有基本图形(矩形、圆、管道)、设备符号(泵、阀门、电机)、仪表控件(仪表盘、数字显示)。新手做画面的第一个冲动是自己从零画一台反应釜,这其实是最低效的做法。正确路径是先去图库里翻有没有类似设备符号,拖进来改改尺寸和颜色;厂里如果有历史工程,直接复用旧工程里做好的图元,画面风格统一,开发速度也能快上一大截。

图元入库是很容易被忽略的长期投资。工程里常用的阀门、泵、液位罐,做好一个带动画连接的模板,选中图元右键“保存到图库”,下次直接拖出来用。我一般会在工程建立第二天就整理一个20个左右的图元库,后面做第二、第三张画面时效率会高很多。图元库在团队协作时特别有用——几个工程师各画各的画面,从同一个图库取元件,最后集成起来画面比例不会五花八门。

图层管理也是这一步要做的事。把设备管线、文字标注、报警闪烁分层放,运行时隐藏标注层,需要的时候再打开。有人为了省事把所有东西堆在默认图层,后期改版时移动一个设备,周围的标注全跟着动,改起来血压直接拉满。

3.2 动画连接:表达式和动作脚本怎么写

画面上的图元要动起来,靠的是动画连接。选择图元后在属性面板里找“动画”,常见的有水平移动、垂直移动、旋转角度、颜色变化、可见性、数值显示。每个动画绑定一个表达式,表达式的值驱动动画效果。

' 阀门颜色随开关状态变化的表达式(在动画连接中填写) ' 表达式:设备开关信号 = 1 时显示绿色,否则显示灰色 IIf(Vlv01_Open == 1, 1, 0) ' 液位高度随模拟量变化,按百分比驱动罐体填充高度 ' 表达式值域 0-100,填充图元的高度随液位百分比变化 (LevelTank01_Level - 0) / (100 - 0) * 100

上面这两行表达式看着简单,实际使用时要特别注意数据类型的坑。KingSCADA的脚本和表达式底层类似VBScript,对类型比较严格。如果你绑定的是IO变量且数据类型是Word,那么表达式里和1比较没问题;但如果变量类型是字符串(比如设备状态反馈是字符串),Vlv01_Open == 1会一直返回False,颜色永远变不过来。遇到这种情况,要么在设备侧把状态处理成数字量,要么在表达式里用CInt(Vlv01_Open) == 1做一次显式转换。这是画面调试中非常典型的玄学问题——看起来表达式没错,图元就是不动,查到最后是类型不匹配。

除了动画连接,还有一类是动作脚本。动作脚本挂在图元的事件上,比如按钮的单击事件、弹窗的打开事件。脚本里可以做变量写入、窗口切换、权限校验。

' 按钮单击事件:确认操作前先校验当前用户权限级别 ' UserLevel 是系统变量,2 表示操作员权限,3 表示管理员权限 If UserLevel < 2 Then MsgBox "当前用户无权执行操作", 48, "提示" Exit Sub End If ' 写入设定值前把输入框的字符串转为浮点 Dim setValue setValue = CDbl(InputEdit1.Text) WriteVariable "PID01_SP", setValue

脚本里最常见的问题是不做类型转换。InputEdit控件的Text属性始终是字符串,直接赋值给浮点变量会报类型错误。上面写了用CDbl先转一次,这几乎是每个脚本里都必须有的步骤。另外,写变量的函数WriteVariable在不同版本里还有WriteTag、SetVar别称,以你安装版本的数据字典为准,不必死记一个函数名。

3.3 画面编译和运行时切换:质量戳与数据刷新

画面开发完,保存后要先“编译画面”,语法错误会在编译阶段提示。编译通过不代表运行时没问题,最常见的运行时表现是:画面打开后数据是“旧值”,也就是上一次运行保存的数值,新采集值一直不进来。这和数据刷新机制有关——图元绑定的表达式只有在变量值发生变化时才触发刷新,如果变量质量戳是“坏”的,就不再更新画面。所以现场排查数据不刷新,第一件事不是看画面绑定,而是去诊断窗口看变量质量戳。

运行时通过“窗口切换”函数在不同画面之间跳转。

' 画面跳转示例:从主画面跳到反应釜操作画面 SwitchWindow "Reactor_Ops", 1, 0

第二个参数是窗口显示方式,1表示普通窗口,2表示模态对话框;第三个参数是窗口在屏幕上的位置编号。小技巧是:弹窗式的操作画面建议用模态方式,防止操作员同时打开多个弹窗误点;常驻的流程画面用普通窗口即可。运行时切换画面的性能损耗很小,但如果你在画面切换脚本里写了大量初始化逻辑,每次切换都会慢半拍,建议初始化代码放到周期脚本里,画面打开时只做一次启动触发。

4. 报警、趋势和操作权限:交付一个监控站的三个硬指标

4.1 报警配置:开关量、模拟量上下限、死区

画面能看数据只是第一步,报警才是监控系统真正创造价值的模块。KingSCADA的报警组态在“报警配置”里,分模拟量报警和开关量报警两类。模拟量报警要设置报警上下限、报警死区和报警级别。死区这个参数很多人不设,结果温度在53度和54度之间反复穿报,操作员一个班下来被报警淹没了。

死区的作用是防抖:比如高报值设60度,死区设2度,那么温度要到62度才解除报警,回落到58度才再次触发。这在现场非常重要,尤其是PID控制波动频繁的回路,没有死区,报警声一个小时内能把操作员逼到直接关报警总闸。经验上,死区一般取报警限值的1%到2%,温度、压力、流量都适用。

报警级别的划分建议和操作权限绑定。普通模拟量报警设置成2级,联锁动作或安全阀动作设置成1级高优先级,画面端对高优先级报警做闪烁并禁止静音。注意报警的“使能”条件要和设备启停状态联动,设备停机状态下的报警是不应该触发的,否则设备一停,一大堆低压、低温报警刷屏,真正的故障反而看不见。

4.2 历史趋势与数据回看:存储配置和曲线控件

历史趋势要有历史数据作为基础,这涉及历史存储的配置。KingSCADA默认把历史数据存在本机专用文件中,但工程交付给业主后,业主IT部门往往会要求数据能进关系型数据库,方便做报表和第三方对接。工程里配置历史库指向SQL Server或MySQL,通过ODBC数据源连接。

-- 历史数据建表示例(SQL Server) -- 存储周期建议按秒级存储,变化存储适合曲线平滑的液位和温度 CREATE TABLE [dbo].[His_ReactorTemp] ( [TagName] NVARCHAR(50) NOT NULL, [Value] FLOAT NOT NULL, [Quality] SMALLINT NOT NULL, [TimeStamp] DATETIME NOT NULL );

SQL存储一定要建索引,查询历史曲线时按TimeStamp过滤,否则数据量到几十万条之后,曲线控件查询会非常慢。索引就建在TimeStamp和TagName联合字段上,这个提前做了能省掉后续很多卡顿问题。

历史趋势曲线控件的使用上,最容易被忽视的参数是“时间范围”和“采样点数”。默认时间范围是最近一小时,采样点数是1000,超过1000个点数据就会被聚合,曲线的毛刺会消失。做工艺分析时,如果把时间范围拉到一天,采样点数还是1000,那么曲线会变得很平滑,但极值可能被聚合掉了,峰值在曲线上根本看不出来。正确做法是把采样点数提到5000以上,或者使用“按变化存储”的方式只存变化率超过阈值的点,这样长时段的曲线还能保留真实波动。

4.3 用户权限与操作记录:防止误操作的最后一道防线

权限系统在交付时往往是业主最关心的,因为操作工和技术员能动的按钮必须严格区分。KingSCADA的用户管理里可以配置用户组、用户、密码策略和操作权限。典型的权限矩阵是:操作员能看画面、确认报警、启停设备;技术员能修改设定值、调整PID参数;管理员能改画面、发布工程、管理用户。

权限校验最好的落地方式是在关键操作脚本开头加权限判断,而不是在按钮上做可见性控制。原因很简单:按钮隐藏了但脚本还在,懂一点组态的人可以通过快捷键或者调用脚本绕过画面按钮直接执行操作。脚本开头做权限校验,才真正把住了关。

操作记录建议启用,把用户的登录、注销、操作、报警确认全部写到操作日志里。KingSCADA的操作日志默认是本机文件,但现场出了事故要追溯时,本机日志可能被人为删除,所以规范做法是把操作日志存到数据库。这和前面历史数据进SQL是同一个套路,只是换一张表而已。

5. KingSCADA高频问题排查:现象、原因、对策一条线说清

5.1 设备在诊断里显示超时,但PLC侧用调试软件能读到数据

现象:设备通讯状态为“超时”,变量质量戳为“坏”,用Modbus调试软件在PC上能正常读到数据。

原因:最常见的是通道配置里的设备地址(站号)和数据类型不匹配。比如PLC侧设置了站号3,组态软件里默认是1;或者是因为通道参数里的通讯超时时间过短,PLC响应周期超过设定值就被判定为超时。另一个隐藏坑是PC网卡有多个IP,组态软件走错了网卡。

解决:先打开诊断窗口看通讯报文,确认请求报文发到了哪个IP哪个端口;再用串口或网口调试工具对比报文格式。排查时把超时时间从默认的1000ms先改到3000ms,排除响应慢导致的假超时,问题消失后再逐步缩短超时时间。站号按PLC实际配置逐项核对,重点看“单元ID”和“从站地址”两个字段,不要想当然地填1。

5.2 画面数据一直显示旧值,重启工程后恢复但不持久

现象:画面绑定变量的数值停留在上次关机时的值,新采集值刷新不进来;重启KingSCADA运行环境后能正常刷新,但运行一段时间后又变成旧值。

原因:变量质量戳变“坏”后,画面不会主动刷新旧值。质量戳变坏之前通常设备通道已经断开过,断开期间变量保持最后值,通道恢复后变量没有重新“激活”。这类问题在物联网关或PLC走无线通信时特别常见,链路闪断一下马上恢复,导致组态软件没能正确重连。

解决:在设备通道的参数里修改“断线重连间隔”和“重连尝试次数”。把重连间隔从默认的10秒调到3秒,重连次数设为0(无限次)。同时在变量层设置“初始值”为大概率的安全数字(比如液位设0),避免断线期间把上次的值当作真实值显示在画面上。这属于做了监控站之后的血泪经验——设备断线问题无法杜绝,但要让组态软件尽量在自愈后恢复刷新。

5.3 历史曲线查询速度慢,时间轴拖到一周后几乎卡死

现象:历史趋势查询一天数据大概两三秒,查询一周数据要等半分钟以上,甚至画面假死。

原因:数据存储表没有建合适的索引;或者是存储周期太短导致数据量巨大。比如温度按1秒存储,一台设备一天就是86400条记录,一百个变量就是几百万行,查询必然慢。

解决:存储周期不是越短越好,而是按工艺需要选取。液位、温度这些变化缓慢的过程量,按5秒或10秒变化存储足够;压力、流量这些波动快的,按1秒存储也能接受。查询时段的SQL语句加上TimeStamp范围过滤,索引建在TimeStamp上。还有一个技巧是给曲线控件设置“查询总数上限”,超过10万点自动降采样,曲线虽然少了一些细节,但操作员拖时间轴时不会卡顿。

5.4 登录用户有管理员权限,但某些写操作仍然报“无权限”

现象:使用管理员账号登录,执行画面上的“启动电机”脚本时提示“用户权限不足”,但同一个用户在另外一张画面上又能正常操作。

原因:权限校验不止看用户等级,还要看“数据安全区”。KingSCADA的变量和按钮都可以归属某个安全区,用户需要在“用户权限里同时匹配等级和安全区”才有权操作。很多工程的画面按钮安全区配置不正确,默认归到了某个自定义安全区里,而用户只分配了默认安全区,导致权限不匹配。

解决:在变量属性或按钮属性里看“安全区”字段,把它改成和用户一致的安全区,或者把用户组加上对应的安全区权限。排查时先确认脚本里校验的是哪个变量、哪个权限等级,再对照数据字典看这个变量的安全区,大多数情况下问题出在安全区不一致,一改就好。

5.5 双机热备切换后,备用机画面显示但历史数据缺失

现象:主服务器故障,备机升主后画面能显示实时数据,但历史趋势查询缺主服务器故障期间的记录,甚至主服务器恢复后历史数据不同步。

原因:KingSCADA的域内历史数据同步机制需要配置“历史数据补录”,默认只同步增量数据,对主服务器故障期间的缺失段不会自动补。备机在故障期间实时数据保留了,但历史库没有从主服务器归档文件中补齐。

解决:在主服务器上开启“历史数据补录”,设置补录时间范围,并在网络中保证主备服务器之间的历史归档文件同步。故障演练时要主动做一次主备切换测试,确认补录生效。这个问题最容易在验收前翻车,因为日常状况主服务器一直正常,备机的历史缺失问题根本暴露不出来。

6. 调试提效与交付前的检查清单:一天少踩三个坑

最后一个环节想聊的不是功能,而是调试效率。KingSCADA工程做到后期,改动一个变量、重发一次工程的时间成本很高,这里有几个我一直在用的习惯。

第一个习惯是善用“变量查询定位”。在图形编辑器里选中一个图元,右键“查找引用”可以看到它绑定了哪些变量、哪些表达式,这比满画面找绑定关系靠谱得多。排查问题时,先用这个功能确认图元和变量的绑定关系,而不是凭记忆猜。

第二个习惯是“离线仿真调试”。KingSCADA支持在没有真实PLC的情况下给IO变量赋模拟值,在开发环境里右键变量“设定初始值”,然后把设备通道置为“仿真模式”。这样画面开发可以完全不需要PLC在线,先把流程和动画调通,再去现场做设备联调。仿真模式下要特别注意:变量写值不会真的写进PLC,联调时要把仿真模式关掉,否则脚本逻辑里写了半天,现场设备纹丝不动。

第三个习惯是在交付前按一张固定清单走一遍:设备诊断里所有变量质量戳是否都为“好”;报警试触发一次,确认声音和闪烁正常;历史趋势查询最近24小时曲线无断档;用户权限矩阵逐项试一遍;操作日志有写入数据库。这张清单我每次交付都会打一遍,而每一次打勾都能捞出几个平时发现不了的问题,比如某条变量在发布时没有勾上域名,画面显示正常、历史数据却是空的。

做KingSCADA这几年,最大的教训是文档里写得很清楚的东西,在现场未必按文档走。所以我现在拿到一个新工程,第一件事就是先看变量发布关系,第二件事是看设备通道诊断,把这两个理解了,后面运行时的疑难杂症能少掉一半。希望这份笔记能帮你少走点弯路,照着这个路径搭出来的工程,至少监控站的底子是稳的。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询