ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

KingSCADA从入门到实战:域建模、设备配置与监控画面搭建指南

KingSCADA从入门到实战:域建模、设备配置与监控画面搭建指南 简介《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这几年最大的教训是文档里写得很清楚的东西在现场未必按文档走。所以我现在拿到一个新工程第一件事就是先看变量发布关系第二件事是看设备通道诊断把这两个理解了后面运行时的疑难杂症能少掉一半。希望这份笔记能帮你少走点弯路照着这个路径搭出来的工程至少监控站的底子是稳的。本文还有配套的精品资源点击获取
返回列表