
简介这份KingSCADA教程面向工业自动化、电力、交通与水利等领域的SCADA系统初学者及工程技术人员帮助读者系统掌握组态软件的画面设计与运行监控能力。资源包共1个doc文档约2.65MB内容以图文教程形式组织便于按章节顺序学习与查阅。教程围绕现场画面绘制、动画连接与脚本程序、报警与事件、趋势曲线等核心模块展开具体涵盖图形编辑器使用、精灵图与图形模型制作、现场流程图搭建、根本动画连接设置、脚本编程、报警与事件记录输出、变量记录属性定义及趋势曲线图素应用等知识点并延伸至数据库连接与工程安全用户管理。目前已有273人学习适合需要从零搭建组态工程或对照查漏补缺的读者参考。1. 从一份 KingSCADA教程.doc 说起组态软件到底该怎么上手很多人第一次拿到 KingSCADA教程.doc 这类文档第一反应是「照着装一遍就会了」结果装完打开软件面对工程管理器、设备驱动、实时数据库、画面编辑器一堆入口反而不知道从哪下手。KingSCADA 是国产组态软件里装机量很大的一款核心用途是把现场 PLC、仪表、板卡的数据采上来做实时监控画面、报警、趋势、报表再往上对接 MES 或数据库。它解决的不是「写一个漂亮界面」而是「让一台上位机稳定地盯住几百上千个点位并且出事能追溯」。这份教程真正该带你的路径是先跑通一个最小工程一个设备、一个变量、一个画面、一个报警再逐步加历史库、加冗余、加脚本。适合自动化、电气、设备运维转上位机的工程师也适合刚接触组态的学生。下面按我实际带人的顺序拆开讲不按文档目录念。2. 装完 KingSCADA 先别急着画画面工程结构与最小闭环2.1 工程、设备、变量、画面四层关系KingSCADA 的工程结构是典型的树状一个工程Project下面挂设备Device、实时数据库变量、画面、报警组、历史库配置。设备负责和 PLC 通信变量是设备和画面之间的中间层画面只认变量名不直接认 PLC 地址。这个分层是很多人翻车的地方——他们直接在画面里绑 PLC 寄存器地址后期换 PLC 或改点位就要全改。正确做法是设备里建好连接变量表里把每个点位定义成变量并映射到设备地址画面只引用变量名。我一般建议新手先只做四个东西一个 Modbus TCP 设备、三个变量一个开关量、一个模拟量、一个报警位、一张画面放一个按钮和一个数值显示、一条报警。这个闭环跑通后面加多少点位都是重复劳动。2.2 新建工程与设备连接的最小步骤以 Modbus TCP 为例假设你手边没有真实 PLC可以用 Modbus Slave 或 Modbus Poll 在本地模拟一个从站IP 127.0.0.1端口 502。步骤如下打开 KingSCADA 工程管理器新建工程选好工程路径路径不要带中文和空格这是血泪经验历史库和日志写入经常在这里出问题。进入开发环境在「设备」节点下新建驱动选 Modbus TCP。配置设备属性IP、端口、站号、超时时间、采集周期。设备类型: Modbus TCP IP地址: 127.0.0.1 端口: 502 站号: 1 超时: 1000 ms 采集周期: 500 ms 重连间隔: 5000 ms参数说明采集周期不是越小越好500ms 对大多数监控够用设成 50ms 会让通信线程和界面刷新压力陡增超时 1000ms 是经验值现场网络抖动时低于 500ms 会频繁报断线重连间隔给 5 秒避免断线后疯狂重连把 PLC 连接数占满。2.3 变量定义与地址映射设备建好后在实时数据库里建变量。变量分几种类型IO 变量对应设备地址、内存变量中间计算、系统变量。IO 变量要填设备名和寄存器地址。变量名类型设备地址数据类型说明Motor_RunIOModbusTCP10x0000Bool电机运行状态Tank_LevelIOModbusTCP14x0001Float液位Alarm_High内存--Bool高液位报警地址写法各驱动不同Modbus 常见的是 0x 表示线圈、4x 表示保持寄存器具体以驱动帮助为准。这里最容易踩的坑是数据类型和字节序Float 在 Modbus 里有 ABCD、CDAB、BADC、DCBA 四种排列读出来是乱码数值时先别怀疑程序去设备属性里换字节序。2.4 画面绑定与运行验证画面编辑器里放一个按钮和一个文本按钮动画关联 Motor_Run文本显示关联 Tank_Level。保存后切到运行态用 Modbus Slave 改寄存器值看画面是否跟着变。如果不变按这个顺序查设备是否显示已连接、变量当前值是否有刷新、画面是否绑定了正确的变量名。这三步能定位九成的「画面不动」问题。3. 报警、趋势、历史库让 KingSCADA 真正能追溯3.1 报警组与报警变量的配置逻辑报警不是给变量打个勾就完事。KingSCADA 里要先建报警组比如「液位报警」「电机报警」再在变量属性里挂到报警组设置报警类型高高、高、低、低低、限值、死区、报警文本。死区Deadband是关键参数液位在 80.0 上下抖动如果不设死区会疯狂产生报警和恢复记录把报警表刷爆。我一般给量程的 1%~2% 作为死区。报警文本要写清楚「哪个设备、什么点位、什么状态」比如「1#罐液位高报警当前值 XX」不要只写「报警1」。后期查历史的时候你会感谢自己。3.2 历史库选型内置库还是外部数据库KingSCADA 支持把历史数据存到内置的实时库或外部数据库SQL Server、MySQL、Oracle 等。选型看两点数据量和查询需求。方案适用场景注意点内置历史库点位数少、保存周期短、单机容量有限长期存储要定期归档SQL Server中大型项目、要和 MES 对接需要配 ODBC 或专用接口注意账号权限MySQL中小项目、成本敏感驱动版本要和数据库版本匹配配置历史库的常见步骤先在数据库里建库和表或用工具自动建表再在 KingSCADA 的「历史库配置」里填连接串、测试连接、选择要存的历史变量、设置存储周期和死区。存储周期别设太密1 秒存几百个点一个月就是几千万行查询会明显变慢。3.3 趋势曲线与报表的落地做法趋势曲线分实时趋势和历史趋势。实时趋势直接绑变量历史趋势要绑历史库里的变量并选时间范围。报表一般用 KingSCADA 自带的报表工具或导出到 Excel。这里有个实用技巧报表查询尽量走数据库的存储过程或视图不要在画面脚本里拼复杂 SQL否则画面会卡。3.4 用脚本做联动一个按钮启停的完整例子组态软件的价值一半在脚本。KingSCADA 支持类 Basic 的脚本分画面脚本、全局脚本、数据改变脚本。下面是一个按钮点击后写值并记录日志的例子 按钮鼠标按下事件 Sub OnLButtonDown() 写值到设备变量 SetTagValue Motor_Cmd, 1 延时确认 Delay 500 If GetTagValue(Motor_Run) 1 Then 记录操作日志到内存变量或数据库 WriteLog 操作员启动电机成功 Else WriteLog 操作员启动电机反馈未到位 End If End Sub逻辑说明先下发命令延时后读反馈根据反馈写不同日志。参数上Delay 不要设太长500ms 到 1s 够用太长会阻塞界面线程。WriteLog 如果写数据库注意加异常处理数据库断了不能让画面崩。4. 避坑与排查KingSCADA 现场最常见的五类翻车4.1 设备显示已连接但变量不刷新现象设备状态是绿色已连接但变量当前值一直是 0 或问号。原因地址映射错了或者寄存器类型选错把保持寄存器当输入寄存器读。解决用 Modbus Poll 单独读同一地址确认从站有数据再核对驱动里的地址格式和数据类型重点查字节序。4.2 历史数据断断续续有缺口现象趋势曲线中间断了一截。原因历史库连接不稳定、存储周期和采集周期不匹配、或者磁盘满了。解决先看历史库服务是否正常再看 KingSCADA 的历史库日志存储周期要大于等于采集周期磁盘留足空间长期项目一定要做归档策略。4.3 报警刷屏停不下来现象报警表每秒新增几十条。原因没设死区或者变量抖动严重。解决给模拟量报警加死区给开关量报警加延时确认比如持续 3 秒才报从源头减少抖动。4.4 工程换电脑后打不开或变量丢失现象拷贝工程到另一台电脑提示驱动缺失或变量表为空。原因工程依赖的驱动没装、路径变了、或者数据库连接串指向了原机器。解决换机前先确认驱动版本一致工程路径用相对路径或重新指定历史库连接串改成新机器的地址。4.5 运行一段时间后界面卡顿现象刚开始流畅几天后画面切换变慢。原因脚本里累积了未释放的对象、历史查询没加时间范围、或者报警缓存太大。解决检查脚本有没有死循环和频繁创建对象历史查询必须带时间条件定期清理报警缓存和日志。5. 进阶把 KingSCADA 工程做成可维护、可复制的模板5.1 用变量模板和画面模板批量复制点位一多一个个建变量会疯。KingSCADA 支持变量模板和画面模板。做法是把一类设备比如一台水泵的变量定义成模板包含运行、故障、手自动、电流等标准点位新建时直接套模板改前缀。画面也一样做一张标准设备脸复制后只改变量前缀。这样一百台泵的工程工作量能压到十分之一。5.2 用冗余和看门狗提高可用性对不能停的场景配双机冗余两台机器跑同一工程一台主一台备通过心跳线同步数据。关键参数是心跳周期和切换阈值心跳周期一般 1 秒连续丢 3 次切备机。另外在脚本里加看门狗定时写一个递增值到 PLCPLC 侧判断上位机是否活着避免上位机死了现场还在盲跑。5.3 版本管理与交付清单工程文件要纳入版本管理至少每次改动前备份一份带日期的副本。交付时给一份清单工程文件、驱动安装包、数据库脚本、通信参数表、变量点表、操作说明。点表尤其重要后期维护的人全靠它。交付项内容备注工程备份完整工程目录含历史库配置驱动包对应版本驱动记录版本号数据库脚本建库建表语句含账号权限变量点表变量名、地址、类型、说明Excel 格式通信参数表IP、端口、站号、协议现场核对用5.4 一个我常用来验证工程健康度的小脚本在全局脚本里加一个定时任务每分钟检查设备连接状态和历史库写入状态异常就写一条系统日志并触发一个系统报警。这样不用一直盯着出问题有记录。 全局周期脚本周期 60000ms Sub OnCycle() Dim devStatus devStatus GetDeviceStatus(ModbusTCP1) If devStatus 1 Then WriteLog 设备 ModbusTCP1 通信异常状态码 devStatus SetTagValue Sys_CommAlarm, 1 Else SetTagValue Sys_CommAlarm, 0 End If End Sub逻辑说明GetDeviceStatus 返回设备状态1 表示正常。异常时置系统报警位画面可以做一个总览指示灯。参数上周期 60 秒够用太频繁会增加脚本引擎负担。我带人做 KingSCADA 项目最深的教训就是别一上来就追求大而全先把一个点位从设备读到画面、再写进历史库、再报一次警这条链路走通后面全是复制和参数调整。那份 KingSCADA教程.doc 可以当字典查但真正的功夫在一次次现场调试里。希望帮到你。本文还有配套的精品资源点击获取