ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

KingSCADA图形开发实战:从图形编辑器到报警趋势数据库闭环

2026/10/3 5:27:11 拓冰建站 浏览量
KingSCADA图形开发实战:从图形编辑器到报警趋势数据库闭环 简介KingSCADA系统教程文档系统梳理了在工业自动化、电力、交通、水利等场景下的组态开发流程适合SCADA初学者、现场工程师及技术支持人员参考学习。资源为单个doc文件压缩包大小2.65MB体量虽小但内容覆盖完整包含第四章绘制现场画面图形编辑器、精灵图、图形模型、现场流程图、第五章动画连接与脚本程序、第六章报警与事件、第八章趋势曲线、数据库连接以及工程安全与用户管理等核心章节。从图形元素的创建到变量记录属性定义、动画连接逻辑、脚本程序编写再到报警事件记录与输出、历史趋势展示及外部数据库对接读者可按目录循序渐进地掌握一套可落地的组态项目操作路径。已有273人浏览学习适合作为KingSCADA入门自学、课程配套资料或实际项目开发中的快速查阅手册。1. KingSCADA 教程到底在教什么一份能直接对着干的现场作业单刚拿到这份 KingSCADA 教程时我以为是官方手册的电子版翻进去才发现真正有价值的是第四章到第九章的工程开发主线图形编辑器怎么把阀门、水泵、反应釜、储罐画出来精灵图怎么做成可复用的组件动画连接和脚本程序怎么让画面动起来再往后是报警、趋势曲线和数据库连接。对做工业监控、电力、水利或小型自动化项目的工程师来说这就是一套“照着做就能出活”的现场作业单。全文以 KingSCADA 3.1 为背景主线一直围绕一个培训工程推进先搭画面再绑定变量做联动最后配历史和报警。适合刚接触 SCADA 的新手从头跟也适合有项目经验的人跳过基础直接查参数。2. 图形编辑器怎么把现场画面立起来认识入口、三套绘图工具和四个基础图素如果你以前用过组态软件第一感觉会是“这不就是把图元拖进去连上变量就完事”。但 KingSCADA 的图形编辑器比这多一层逻辑每种图素都自带一组对象属性属性决定显示外观动画连接决定运行时的行为脚本程序则把多个图素串成一套控制逻辑。我建议先花半小时把编辑器的界面布局摸清楚再动手否则后面做精灵图和图形模型时会来回找不到窗口。2.1 入口与布局先在哪个窗口找属性、在哪个窗口找变量启动图形编辑器的方法很简单在工程开发环境 KingMake 中单击“编辑”菜单里的“图形系统”命令随即弹出画面编辑器。编辑器界面包含菜单栏、工具栏、工具箱、编辑界面、动画连接窗口、内容窗口、对象浏览窗口、属性配置窗口。我一般会提醒第一次用的人工具箱管的是“画什么”属性窗口管的是“怎么显示”动画连接窗口管的是“怎么动”三者是分开的。对象浏览窗口用来快速定位已经放置在画面上的图素避免图素一多就在编辑区里点错。内容窗口和属性配置窗口则是配合使用的选中一个图素右侧属性窗口里就会出现它的名称、大小、位置、外观等通用属性同时还有它自己的独特属性。修改这些属性画面会立刻在编辑区里反馈这就是 KingSCADA 图形开发效率高的原因之一。开发画面时可以随时切换到运行环境测试画面效果缩短开发周期所以不要停留在纯编辑状态一定要养成“画两步就跑一次运行”的习惯。2.2 四个基础图素的属性表圆角矩形、文本、管道、按钮绘图工具由三部分组成基本工具、扩展工具和 Windows UI。基本工具里的圆角矩形、文本、管道以及扩展工具里的按钮是现场流程图里最常用的四类图素。下面这张表把核心属性列出来方便画图时对照。图素核心属性属性作用圆角矩形Pen / Brush / DrawOption矩形边框、画刷填充、显示方式文本Text / TextFont / TextBrush显示内容、字体、文本颜色管道OutterWidth / OutterColor / InnerWidth / InnerColor管道外壁宽度和颜色、内部宽度和颜色按钮FlatStyle / Font / Background / Foreground / Style / Caption / ShapeStyle外观风格、字体、背景前景、常态多态、标题、形状圆角矩形是最常用的容器图素。选中后在属性窗口里展开 Pen点击弹出线属性对话框把线宽度设为 3其他保持不变再设置 Brush 属性选择“线性”画刷管道、罐体、液位条都可以用这种方式做出立体感。DrawOption 控制矩形框的显示方式例如是否透明、是否填充这块建议按实际画面效果调不必死记每个枚举值。文本图素最大的特点是“大小随图素尺寸而变化”而且只支持单行显示非常适合值输出。选中文本工具 T把内容改成“##”再通过动画连接窗口“添加连接”选择“模拟值输出”关联变量\\local\liquid_level运行时这个文本就会实时显示液位数值。需要显示多行文本时不要硬拉文本框改用 Windows 控件组里的文本框或超级文本那个才支持多行。管道图素表示带外壁且内部可流动的特殊图素。画一条管道后设好内外壁宽度和颜色双击管道打开动画连接窗口“添加连接 → 基本 → 管道流动”在离散值输入中选择变量\\local\water_pump。只要该变量为 1管道内部就会显示流动效果。这里要注意管道流动依赖的是离散变量不是数值变量联动时先用脚本把数值转换成开关量再接到管道上。按钮属于扩展工具。它既可以做成普通按钮也可以做成多态按钮。多态按钮比普通按钮多的东西是PressedBackground 代表按下时按钮显示的背景颜色FocusedBackground 代表按钮处于焦点时显示的背景颜色DisabledBackground 在 Enable 属性为 false 时生效。做“阀门控制”这类按钮时我会把 Style 设为多态然后同时配置正常色、按下色和焦点色这样操作人员点击时才有明确的视觉反馈。2.3 新建画面到运行系统最小可验证的一次循环新建画面在“文件”菜单中执行“新建画面”命令输入画面名称例如“学习”设置画面大小点击确定。接着按 2.2 的顺序放四个图素圆角矩形做背景边框文本做数值显示管道做流动效果按钮做控制入口。保存后进入运行系统就能看到文本显示液位数值、管道根据变量状态流动。这里有一个很实用的验证顺序先让变量有确定值再验证动画连接。比如把\\local\water_pump暂时设为 1如果管道没流动问题一定出在动画连接配置上如果管道流动了再放心去写脚本控制。反过来先写脚本再验证变量、脚本、动画连接三个环节混在一起出了问题很难定位。我习惯把一个最简单的画面当成“连通性试验台”任何新图素先在这个画面上跑通再复制到正式流程画面里这也是后面做精灵图和图形模型的前提。3. 精灵图与图形模型把液位指示做成能反复调用的组件资产很多 SCADA 项目画面越做越乱根因是同一个设备在不同画面上被重复绘制每次属性设置都不一样。KingSCADA 的精灵图和图形模型就是来解决这个问题的。它们的区别在于抽象层级精灵图强调外观和动画连接的内嵌图形模型在精灵图基础上进一步支持脚本程序并且模型重新编辑后会把变化内容更新到已经实例化的模型对象中。这一章把两者的完整做法走一遍。3.1 精灵图为什么比组合图素省事动画和逻辑内嵌带来的复用空间精灵图在外观上类似组合图素但内嵌了丰富的动画连接和逻辑控制。工程人员只需把它从精灵图库中调出来放在画面上再做少量修改就能完成复杂的控制功能。KingSCADA 3.1 的精灵图库中提供了大量工程常用的精灵图如果在图库里找不到合适的也可以自己开发精灵图再放到图库里备用。我自己的理解是精灵图更像一个“带接口的成品零件”而组合图素只是一堆图形拼在一起。组合图素被复制到新画面后动画连接要么丢失要么还指向原有的变量改起来很痛苦精灵图则把动画连接和变量绑定关系一起封装外部只需要按需暴露少量属性。做液位指示、电机启停、阀门状态这类高频控件我一般都会先做成一两个精灵图后面所有画面上直接复用。3.2 做一个液位指示精灵图外观、属性、变量、动画关联四步走精灵图开发界面与图形开发界面很相似。在“文件”菜单中选择“新建 → 精灵图”就会弹出精灵图开发界面里面同样有菜单栏、工具栏、工具箱、图形编辑区、属性窗口。整个制作过程分四步。第一步是制作精灵图外观。在图形编辑区用圆角矩形、直线、文本图素画出液位指示的各组成部分这里外观由 A、B、C、D、E、F 六个部分组成颜色通过调色板设置。画完后把各组成部分组合在一起。组合时经常需要调整上下层位置选中图素点击右键通过右键菜单“位置”来调比如把液位条放到面板下层把文本放到液位条上层。第二步是建立属性与变量。首先定义需要暴露到外部的属性背景颜色 BackColor类型 Brush液位颜色 fluidcolor类型 Brush液位高度最大值 Max、最小值 Min类型 float。这四个属性会在图素上形成对外接口使用时可以直接改。接着定义变量选中“变量”点击右键增加变量变量名称 fluidValue类型 float初始值 0。这里的变量是局部变量只能应用在精灵图内部不能用在工程的其它地方。第三步是建立动画关联。选中作为背景的圆角矩形设置 Brush 属性点击后面的按钮在弹出的对话框中选择 BackColor再选中作为液位的圆角矩形设置 Brush 属性关联 fluidColor。重点来了选中液位图素打开“连接 → 增加连接”选择缩放动画连接。关联变量 fluidValue缩放比例选择线性缩放的参考点选择“下”最小时对应数值选择属性 Min最大时对应数值选择属性 Max。参考点选“下”意味着液位从底部往上长这是液位指示最常见的做法如果参考点选“上”液位就会从顶部往下掉效果反过来。第四步是保存精灵图。单击“文件”菜单中的“保存”命令弹出精灵图库对话框。选中最顶部的“Genius Graphy Folders”点击右键创建新的文件夹命名为 my genius然后把精灵图命名为 genius1。这样精灵图就算入库了。如果以后想基于现有精灵图改新图也可以直接把它调出来另存省掉从零画外观的时间。3.3 图形模型把精灵图嵌进罐体并暴露配置项图形模型可以模拟现实中的生产设备如锅炉、电机设备的图形展示、动画连接、安全设置、脚本语言等把这些功能组合在一起形成图形模型。用户使用时只需将模型实例化再做一系列配置就能快速把图形展示及动态效果部署到工程中。图形模型相对于图库精灵优势在于不仅具有动画连接还可以编写脚本程序同时模型重新编辑后会更新已实例化的模型对象。下面做一个“罐”的图形模型把前面做的液位指示精灵图嵌进去。先做外观在开发环境目录中选择“视图 → 图形模型”在右侧编辑区中单击“新建”按钮输入模型名称“罐”根据需要填写模型描述、创建者等信息。双击模型图标进入开发界面用椭圆、矩形框制作罐体Brush 属性设置为过渡色表现金属质感。罐体上添加圆角矩形做液位高度指示添加文本做数值显示为方便说明分别叫 A、B、C 图素。然后打开精灵图库找到 my genius 文件夹双击液位指示精灵图把它放置在图形编辑区域称为 D 图素。把 ABCD 组合起来罐的图形模型外观就完成了。第二步建立模型属性和变量。属性包括罐体颜色、面板颜色、液位指示颜色、文本框颜色颜色类型选 Brush字体大小类型选 FontMax、Min类型选 float。变量定义与精灵图类似这里定义一个“液位高度”变量类型 float初始值 0。第三步建立动画连接。罐体 A 的 Brush 关联“罐体颜色”属性B 图素的 Brush 关联“文本框颜色”属性C 图素的 TextFont 关联“字体大小”属性。精灵图 D 的属性逐一关联到图形模型属性BackColor 关联“面板颜色”fluidcolor 关联“液位指示颜色”Max 关联“Max”Min 关联“Min”。完成这些关联后图形模型对外只暴露“罐体颜色、面板颜色、液位指示颜色、文本框颜色、字体大小、Max、Min”使用模型的人不需要理解内部结构只要配置这些属性和液位高度变量就能部署。文本 C 改为“##”添加模拟值输出连接关联液位高度变量设置整数位数和小数位数都为 2。动画连接全部完成后保存图形模型之后每新建一个罐体实例只需要修改 Max/Min 和关联的实际变量就够了。4. 动画连接与脚本程序用按钮控制管道流动的联动写法动画连接是 KingSCADA 画面“活”起来的核心机制脚本程序则负责更复杂的逻辑控制。前面用了不少动画连接但都停留在单点绑定。这一章完整走一个联动案例画面上有一个管道流动动画再放一个“阀门控制”按钮通过按钮脚本切换阀门和水泵的状态从而控制管道流动与停止。4.1 动画连接的类型与关联思路动画连接的本质是把图素属性与变量值绑定。在图形编辑器中双击任意图素或者在下方动画连接窗口点击“添加连接”都能打开连接配置。常用类型有模拟值输出、离散值输出、离散值输入、管道流动、缩放、旋转等。模拟值输出适合文本显示液位、温度、压力这类连续量离散值输出适合显示电机启停状态缩放适合液位升降、储罐填充管道流动适合介质输送。配置动画连接时要区分两个方向输出型连接是变量值变化后驱动图素显示变化输入型连接是用户在运行画面上操作图素后反过来写变量。按钮的鼠标左键点击就属于输入型它触发的是一个脚本而不是直接写变量。实际工程中我会把“操作入口”和“显示出口”分开按钮只管触发脚本指示灯和管道流动只管显示结果中间的逻辑全部交给脚本处理方便后期改联锁。4.2 按钮控制脚本阀门开闭与管道流动联动现在做一个按钮文本为“阀门控制”设置正常色、按下时颜色、焦点颜色等属性。接下来设置按钮的鼠标左键按下的动画连接在弹出的脚本编辑器里输入以下脚本var valve_gate1 \local\valve_gate1; var water_pump \local\water_pump; if(valve_gate1 false) { valve_gate1 true; water_pump true; } else { valve_gate1 false; water_pump false; }逻辑说明按下按钮时先读取\\local\valve_gate1的当前状态。如果阀门是关闭状态就把阀门置 true同时把水泵置 true管道开始流动如果阀门已经是打开状态就把阀门置 false同时水泵置 false管道停止流动。这实际是一个“取反切换”逻辑每次点击都在开与关之间切换。参数说明变量路径采用\\local\xxx格式local 表示本机节点下的变量区。valve_gate1 是阀门开到位信号water_pump 是水泵运行信号两个变量类型都是布尔量所以可以使用 false 判断。脚本中的赋值语句会把两个变量同时更新运行时管道流动效果会瞬间变化。如果这个脚本在按钮的“鼠标左键按下”事件上配置那么点击瞬间就会执行不需要再额外配置鼠标释放事件。写完脚本后把按钮与前面的管道流动动画放到同一个画面上保存并进入运行系统。点击按钮阀门和水泵状态翻转管道流动与停止随之切换整个联动过程不需要重新编译。4.3 参数绑定时的两个边界精灵图局部变量与外部变量使用动画连接和脚本时最容易踩的两个边界第一精灵图和图形模型内部只能选择本图的局部变量不能跨图引用工程全局变量。在精灵图里做动画连接时弹出关联变量对话框里面看到的只是当前精灵图定义的局部变量比如 fluidValue要想接收外部变量值必须通过属性映射或者在图形模型里把外部变量关联到内部变量上。第二脚本里引用变量不要写成字符串形式要直接写变量路径。如果把\\local\valve_gate1放在引号里脚本就把这行内容当成普通字符串处理而不会读变量值。这个细节在初学阶段几乎必错一次。5. 动画连接排坑指南变量路径、# 通配符和模型更新里的五处翻车点这一章专门讲我在实际工程里反复遇到、教程里又比较容易看漏的问题。每一条都按“现象 → 原因 → 解决”来写希望对完步骤还是一脸懵的人有个对照表。5.1 变量路径少了一个反斜杠为什么整条联动失灵现象动画连接窗口里填了变量\local\water_pump运行时管道一动不动按钮怎么点都没反应。变量路径里少了一层前缀。原因KingSCADA 引用变量使用双反斜杠开头格式是\\local\变量名。手输时经常把前导双反斜杠打成单反斜杠系统识别不到节点位置。同样如果变量名里的字母大小写与实际定义不一致联动也会静默失败画面并不报错黑匣子一样没有反馈。解决尽量不手输变量。在动画连接配置窗口点击“选择变量”在弹出的变量浏览器里双击要关联的变量系统会自动生成正确路径。脚本里需要手写变量时我会先复制一遍变量浏览器里的完整路径再粘贴到脚本编辑器确保前导双反斜杠和大小写都原样保留。5.2 文本#通配符不是格式化工具多个#会显示成乱码现象文本内容写成“### 米 ###”运行后显示成“20.4 米 ###”或者写成“##.##”后显示成“20.4.##”跟预期完全对不上。原因KingSCADA 的数值输出通配符只认第一次遇到的#字符。当文本对象输入带有#的字符时它就是数值类型的通配符运行时把#替换为当前数值。如果文本里有多个#只有第一个#被当作插值位置其余#原样显示。教程里写得很明确文本内容为“# 米”时显示“20.4 米”文本内容为“此时液位高度为 # 米”时显示“此时液位高度为 20.4 米”而“### 米 ###”这类写法不会做格式化。解决不要在文本里用多个#做数字格式化文本只保留一个#作为占位符。数值的整数位数、小数位数在“模拟值输出”动画连接对话框里单独设置。如果文本内容不含有#却关联了数值输出运行时会直接把数值追加在文本后面等于把文本当成了前缀。5.3 按钮按下后没有视觉反馈多态按钮背景色没配齐现象按钮按下时画面没有任何变化操作工不知道点没点上或者按钮已经被禁用但外观上还和正常状态一样容易误操作。原因按钮的 Style 还停留在“常态”系统只使用 Background 属性填充背景没有启用多态切换。或者 Style 已经设为多态但只填了 Background没有设置 PressedBackground、FocusedBackground、DisabledBackground按下去时找不到对应的背景色只能沿用原色。解决选中按钮在属性窗口把 Style 设为“多态”然后同时配置三组颜色PressedBackground 设置按钮按下时的背景色FocusedBackground 设置按钮处于焦点时的背景色DisabledBackground 设置 Enable 属性为 false 时按钮显示的背景色。这样按钮在不同状态下都有明确区分。如果要做不可操作状态记得把 Enable 属性设为 false只改颜色不会真正禁掉按钮。5.4 精灵图入库时选错位置自定义文件夹没保存进去现象做好的精灵图保存后在精灵图库中找不到自己新建的 my genius 文件夹或者明明保存了两份同名精灵图打开图库时只看到一个。原因保存精灵图时弹出的精灵图库对话框里有个目录树我第一次用的时候直接点了保存没注意到要先在最顶层的 Genius Graphy Folders 节点下右键新建文件夹导致精灵图被保存到默认层级。第二次制作时又建了一个名字相同的文件夹但两次没有选同一个节点实际存到了不同位置。解决保存精灵图时先在“Genius Graphy Folders”上点击右键选择创建新文件夹给文件夹起好名字然后选中这个文件夹再给精灵图命名并保存。后续调用时先展开同名文件夹再双击图形区域里的精灵图。如果发现文件夹已经存在但精灵图没进去直接在文件夹上右键重命名检查路径然后把旧图删掉重新保存一次。5.5 图形模型改完旧实例没有跟随更新现象在图形模型里把罐体颜色从灰色改成蓝色保存后回到原来的监控画面罐体还是灰色但新建一个实例拖到画面里颜色却是蓝色。原因图形模型编辑保存后变化内容会更新到已经实例化的模型对象中但更新动作不是实时同步的需要重新打开画面或者对实例执行一次刷新才会生效。另一种情况是某个实例在使用时手动修改过局部属性比如单独调过实例的颜色这个局部覆盖值会优先级高于模型默认值模型更新时不会覆盖手动修改的内容。解决编辑完图形模型并保存后关闭当前画面重新打开如果实例还停留在旧状态右键点击实例查看是否提供“更新到模型”或“恢复默认属性”之类的操作执行一次后再检查。排查时先区分是全局没有刷新还是某个实例局部覆盖。对于需要整体统一样式的设备建议使用时不要再单独调整实例属性所有颜色、字体统一在模型里维护避免更新时冲突。6. 收工前把报警、趋势曲线和数据库连进来三页清单验证工程闭环画面、动画、脚本都跑通后一个监控工程还差最后三块报警与事件、趋势曲线、数据库。这三块功能在教程里分别占了独立章节却经常被初学者忽略直到现场调试时才发现没有历史数据可查、报警记录是空的。我现在的做法是固定走一遍“三页清单”验证。第一页是报警与事件。在 KingSCADA 中报警记录及输出和事件记录及输出是两套通道报警针对变量越限、开关变位事件针对操作行为。交付前我会逐一检查需要监控的液位、温度变量是否配置了报警限值报警输出窗口是否在画面上放置报警变量触发后画面有没有可见变化比如闪烁或弹窗。第二页是趋势曲线。定义变量的记录属性是趋势曲线的前提如果变量没有设置为记录型后画面上再放趋势曲线图素也是白搭。确认变量记录属性、选择趋势曲线图素再配置曲线的方法和数据源然后进入运行环境写入一段时间的数据回看曲线是否有连续轨迹。第三页是与数据库连接。创建数据源及数据库、创建表格模板及记录体、对数据库的操作这三步是一套标准动作。我通常把表格模板的列名与变量一一对应再插入一条测试记录然后到数据库客户端里查这条记录确认字段和类型都对得上。这套清单里最容易漏的是“变量记录属性”因为它在变量定义界面里不在画面编辑器里很多人在画面上找不到入口就放弃了。从那以后我每次做完一个工程都强制走一遍这三页清单先报警、再趋势、后数据库全部有实际数据输出才敢说画面交付。如果教程按章节读下来觉得内容分散不妨把它当成验收清单倒着读先知道自己最终要什么再回翻相应章节查操作。希望帮到你。本文还有配套的精品资源点击获取