简介:面向工业自动化组态开发与选型人员,这份文档围绕亚控科技组态王6.55中文版展开,可作为了解该版本产品定位、功能组成与适用场景的参考资料,适合需要评估组态软件能力、进行项目选型或补充技术背景的初、中级用户。压缩包内共1个doc文件,整体约293KB,内容集中于产品概述、功能特性与版本说明,便于快速浏览和归档检索。已有936人学习下载,具备一定的参考热度。文档对向导式报表、支持OCX控件发布的Web功能、KingHistorian工业库集成、分布式报警与事件处理、变量导入导出、设备支持库及硬加密/软授权等方式均有涉及,可帮助读者梳理组态王6.55在数据采集、报表生成、远程监控与生产流程管理中的能力边界,为后续方案设计和技术沟通提供依据。
1. 组态王 6.55 中文版:一台老工控机还能救回来的前提
去年帮一个做包装线的小厂看现场,电控柜里那台工控机风扇呜咽着响,屏幕上跑着一套组态王 6.55 中文版的画面,罐体液位、电机状态、报警条都在动,但没人说得清它怎么配的。这种情况在中小产线、泵站、窑炉上非常普遍:组态王 6.55 属于国内装机量很大的一代 HMI 组态软件,把常见的 PLC、智能仪表、智能模块的数据采上来,做成画面、报警、历史曲线、报表,再通过 Web 发布推到局域网浏览器上。它不是新工具,但对存量工程来说,能不能吃透安装、驱动、变量、脚本、报表这五件事,直接决定你是能接着维护,还是只能整柜换掉。适合接手老工程的一线电控与自控人员,也适合刚入行想搞清楚 SCADA 组态到底在配什么的人。
2. 装完先别画画面:授权、驱动、变量三件套的落地顺序
新手拿到安装包最常见的一条错误路径是先拖一张漂亮的工艺图出来,结果变量连不上、历史存不下、报表取不到数,返工全部重来。合理的顺序是先确认授权能正常启动,再把设备通讯打通,最后才批量建变量,这三步任意一步没站稳,后面画多少都是白画。
2.1 硬加密与软授权怎么选,安装环境卡在哪
组态王 6.55 提供硬加密和软授权两种方式。硬加密就是一支 USB 加密锁,插在工控机上,软件启动时读锁;软授权把授权信息写到本机,跟硬件指纹绑定。两种方式在现场的体验差别很大,选之前先想清楚这台机器以后会不会搬、会不会换主板。
| 授权方式 | 便携性 | 换机成本 | 常见故障 | 适合场景 |
|---|---|---|---|---|
| 硬加密(USB 锁) | 随锁走,换机插上即用 | 低 | 锁没插紧、USB 口供电不足、驱动未装 | 单机 HMI、需要移机调试 |
| 软授权 | 绑本机硬件指纹 | 高,需要重新走授权流程 | 换主板、重装系统后失效 | 固定工控机、无人值守机柜 |
安装环境有几条血泪经验,值得在装之前就一条条对:安装路径用纯英文、无空格,不要放系统盘的 Program Files 下,更不要放桌面;安装前关掉杀毒软件的实时防护,老版本安装程序被误拦是很常见的;安装和首次运行都用管理员权限;系统版本上,这类老版本对高版本系统兼容性一般,稳妥做法是 32 位系统,或者虚拟机、兼容模式跑。
@echo off REM 1. 看系统位数,32 位环境对老版本更友好 wmic os get OSArchitecture REM 2. 看安装盘可用空间,历史库很吃磁盘 wmic logicaldisk get DeviceID,FreeSpace,Size REM 3. 看 USB 设备列表,确认加密锁是否被系统识别 wmic path Win32_PnPEntity where "Name like '%%USB%%'" get Name,Status pause这三条命令解决的是三个具体问题:系统位数决定你走哪套兼容方案;磁盘剩余空间决定历史库能存多久,很多“曲线只有最近三天”的工程其实是盘满了;USB 设备列表用来判断加密锁到底有没有被系统枚举到,如果这里看不到任何跟锁相关的条目,先换 USB 口再换机器,别急着怀疑软件。
提示:硬加密锁不要插在 USB Hub 或前置面板口上,工控机前置口供电普遍偏弱,锁时认时不认的情况多半出在这里。
2.2 设备驱动与串口、以太网参数:连不上先分三层看
通讯配不通,九成的人会一头扎进变量地址里翻,其实应该按三层往下排:物理层看接线、转换器、终端电阻;驱动层看设备驱动选得对不对、站号有没有冲突;变量层才看寄存器地址和数据类型。顺序反了,越查越乱。
串口设备(Modbus RTU 居多)的参数是最容易漏的,仪表说明书上写的那一列要一个不差地抄进设备定义里:
| 参数 | 常用值 | 说明 |
|---|---|---|
| 波特率 | 9600 / 19200 / 38400 | 必须与仪表一致,不一致就是收不到回应 |
| 数据位 | 8 | 多数 Modbus RTU 设备 |
| 停止位 | 1 | 少数设备用 2 |
| 校验 | 无 / 偶校验 | 部分仪表出厂默认偶校验,最容易踩 |
| 站号 | 1~247 | 同一条总线不能重复 |
| 采集频率 | 200~1000 ms | 设太小会拖垮整条总线 |
| 超时 | 500~1000 ms | 转换器质量差时适当放大 |
| 重试次数 | 2~3 | 给偶发丢包留余量 |
以太网设备(Modbus TCP、部分 PLC 直连)要确认的是 IP、端口和站号(单元标识)。端口多数是 502,但有些网关会改成自定义端口;站号在 TCP 下常常被忽略,可一旦网关后面挂了好几台从站,站号写错就会表现为“连上了但读出来全是 0”。
数据类型这块是最隐蔽的坑。同一个 32 位浮点,不同厂家给的字节顺序可能是 AB CD、CD AB、BA DC、DC BA 四种之一,说明书一般写“高字节在前”或“低字节在前”。我的习惯是先用调试助手把点位读出来,对着仪表面板上的实际数值核一遍,确认字节序之后再进组态王建变量,这一小时能省掉后面半天的反复。
2.3 变量词典到 Excel 的导入导出闭环
组态王 6.55 的变量导入导出是这版很实用的一个功能:变量可以导出到 Excel 表格,改完属性再导回工程,省掉一条条手敲的时间。一个中等规模的水处理工程动辄几百上千个点,手工建变量不仅慢,还特别容易写错一个字母导致画面一直显示问号。
变量类型先分清:内存离散、内存整数、内存实数、内存字符串属于内部变量,不连设备;IO 离散、IO 整数、IO 实数、IO 字符串才是跟设备挂钩的。导出后的表格大致长这样:
变量名,变量类型,连接设备,寄存器,数据类型,读写属性,采集频率,描述 PUMP1_RUN,IO离散,PLC1,00001,BIT,只读,200,1号泵运行状态 PUMP1_SPD,IO实数,PLC1,40001,FLOAT,读写,500,1号泵转速设定 TANK_LEVEL,IO实数,PLC1,40003,FLOAT,只读,500,水池液位 ALARM_ACK,内存离散,,,,读写,,报警确认导入的坑集中在三处:变量名必须唯一、不能带空格、不能以数字开头,导出改表时最容易手滑复制出重名;列顺序不要动,导入是按模板列位置解析的,删一列插一列就会整体错位;描述列别写太长,超出长度会被截断,但不影响导入本身。批改的时候建议先在一个小工程里导一次验证格式,再往正式工程灌。
注意:导入前先备份工程。变量导入不是增量合并的逻辑,一旦覆盖,原来绑在画面上的变量可能全部变成未定义。
3. 画面、图库精灵与命令语言:把静态图做成能跑的画面
画面这一层的评价标准很朴素:现场操作工能不能在两秒内找到他关心的那个数,以及误操作的概率有多高。花哨的渐变和动画对这个目标没帮助,反而会拖慢老工控机的刷新。这一章讲的是分辨率怎么定、图库精灵怎么复用、命令语言怎么分层,都是直接决定画面能不能长期维护的东西。
3.1 基准分辨率与图库精灵的复用姿势
画面属性里要先把基准分辨率定下来,一般按现场显示器或触摸屏的实际分辨率来,常见的 1024×768、1280×1024、1920×1080 三种。定完再画,中途改分辨率等于所有控件位置重排。多画面工程建议统一一套坐标基准,公共的顶栏、报警条、导航按钮做成模板画面,其他画面引用,改一处全变。
图库精灵是省时间的关键。把泵、阀、罐体、风机做成自定义图库精灵,内部把动画属性跟变量绑好,之后每个画面拖一个出来改绑定就行。这里有个容易翻车的地方:图库精灵内部如果用了图库自己的内部变量做动画,复制到新画面后不会自动跟着换,必须手动重新绑定到目标变量,否则画面上所有泵会一起动,看着像灵异事件。做完精灵之后建议先在一个测试画面里复制三份,分别绑三个不同变量验证一遍再批量用。
组合和成组要分清:组合是把多个图元临时捆在一起方便移动,成组之后才能作为整体做动画连接。罐体带液位填充这种,一般是罐体外壳和填充区域分开做,填充区域单独绑液位变量,别整组一起绑。
3.2 动画连接里最常用的四类属性
动画连接列表很长,实际工程里高频用的就那几类。把这几类的适用变量和注意点记住,剩下的大多是用不上的边角。
| 动画属性 | 适用变量 | 典型用法 | 注意 |
|---|---|---|---|
| 填充 / 百分比填充 | 模拟量 | 罐体液位、进度 | 要设上下限,方向跟罐体一致 |
| 旋转 | 模拟量 | 风机、阀门开度 | 旋转中心点必须设准 |
| 水平 / 垂直移动 | 模拟量 | 小车、滑块、指针 | 位移范围按像素算,不是按工程量 |
| 隐含 / 闪烁 | 离散量 | 报警提示、设备启停 | 闪烁频率别太高,看久了眼花 |
| 文本显示 | 数值 / 字符串 | 数值、状态文字 | 小数位数与工程量一致 |
| 按钮 | 命令语言 | 启停、确认 | 必须做防抖和二次确认 |
模拟量优先用填充和旋转,开关量优先用颜色切换和隐含,文字用文本显示绑字符串变量。有一类错误很典型:给一个 16 位整数变量绑百分比填充,结果液位一直是满的,因为填充的上下限默认是 0 到 100,而变量值域是 0 到 10000,这种不是软件的问题,是量程没对上。
3.3 命令语言分五层,别全塞进一个地方
组态王的命令语言按触发时机分成几个层次:应用程序命令语言(启动、运行、退出)、画面命令语言(存在时、显示时、隐藏时)、数据改变命令语言、事件命令语言、热键命令语言。新手最容易把所有逻辑写进画面命令语言的“存在时”里,画面一切换逻辑就断,而且周期不好控。
流量累计这类需要稳定周期的计算放应用程序命令语言的“运行时”,周期在属性里设,一般 500ms:
// 应用程序命令语言 - 运行时,触发周期 500ms // 用途:瞬时流量积分成累计流量 float fNow; fNow = \\本站点\瞬时流量; // 单位 m3/h if (fNow > 0) { // 0.5 是 500ms 换算成秒,除以 3600 是小时转秒 \\本站点\累计流量 = \\本站点\累计流量 + fNow * 0.5 / 3600.0; } // 限幅,防止长期运行后数值溢出或跳回 if (\\本站点\累计流量 > 9999999) { \\本站点\累计流量 = 0; }这段的关键在三个参数:触发周期决定积分精度,500ms 对流量累计够用,设成 100ms 反而增加 CPU 负担;0.5 / 3600.0是单位换算,改周期时这个系数必须一起改,忘了改就是累计值差几倍;限幅是后悔药,很多工程跑半年之后累计值变成负数或者突然归零,就是没做上限保护。
报警判断放数据改变命令语言更合适,只在变量值变化时触发,不占周期:
// 数据改变命令语言 - 绑定在 TANK_LEVEL 变量上 // 用途:液位高报警判断 if (\\本站点\TANK_LEVEL > \\本站点\LEVEL_HI) { \\本站点\LEVEL_ALARM = 1; \\本站点\ALARM_MSG = "液位高报警"; } else { \\本站点\LEVEL_ALARM = 0; \\本站点\ALARM_MSG = ""; }变量引用的写法是\\本站点\变量名,少了反斜杠或者把本站点写成具体站名都会读不到值。这类判断要注意采集频率:如果液位变量 5 秒才采一次,那数据改变命令语言最快也只能 5 秒判断一次,用它做联锁是不够的,联锁应该放在 PLC 侧或者用周期更短的应用程序命令语言。
4. 报表向导与历史库双写:班日报自动生成的参数细节
报表是这类工程交付时最容易被挑毛病的地方。操作工要的是每天早上八点一张纸,上面有每个班次的产量、平均值、最大值;工程师要的是这张表能自动出、数字对得上、格式不乱。组态王 6.55 在这块新增了向导式报表,配合历史库和工业库的双写,能把大部分重复劳动省掉,但参数配错的话,出来的数一定对不上。
4.1 组态王历史库还是工业库,双写值不值
组态王自带的历史库跟着软件装,配置简单,适合几百到几千点的小工程;工业库(KingHistorian)是独立部署的,官方给的指标是单服务器支持 100 万点、256 个并发客户同时存储和检索、每秒检索单变量超过 2 万条记录。这两个不是一个量级的东西,选错的话要么小马拉大车,要么杀鸡用牛刀。
| 对比项 | 组态王历史库 | 工业库(KingHistorian) |
|---|---|---|
| 部署方式 | 随组态王安装,单机 | 独立部署,可跨机 |
| 容量上限 | 受授权点数与磁盘限制 | 单服务器 100 万点 |
| 并发能力 | 本机为主 | 256 个并发客户 |
| 检索性能 | 一般,适合短周期查询 | 单变量每秒超 2 万条 |
| 典型场景 | 小点数、近七天曲线 | 大点数、年度归档、多客户端查 |
组态王 6.55 支持把同一个变量的数据同时写进组态王历史库和工业库,也就是双写。这个能力在大点数工程里很实用:画面上的实时趋势读本地历史库,响应快;报表和年度归档读工业库,容量和检索速度都够。配置入口在数据词典里,变量勾上历史记录,再分别指定两个存储目标,采样周期按变量重要性区分,关键工艺量 1 秒,辅助量 5 到 10 秒就够。
注意:双写会成倍增加磁盘 IO,工控机如果是机械硬盘,变量点数又上了万,建议把工业库放到独立服务器上,别跟画面运行挤一台机器。
4.2 报表向导怎么建一张能用的班报表
向导式报表的价值在于不用手画单元格,直接选数据源和时间模板就能生成班报、日报、周报、月报、季报、年报。真正决定这张表能不能用的,是三个参数:时间范围怎么切、统计方式选什么、数据源指向哪个库。
| 报表类型 | 时间粒度 | 典型用途 | 统计方式 |
|---|---|---|---|
| 班报表 | 8 小时一班 | 交接班产量、能耗 | 累计、平均、最大最小 |
| 日报表 | 00:00–24:00 | 日产量、日能耗 | 累计、平均 |
| 周报 / 月报 | 自然周 / 自然月 | 汇总上报 | 累计、同比 |
| 季报 / 年报 | 自然季 / 自然年 | 归档 | 累计 |
建表步骤一般是:先在报表向导里选数据源(组态王历史库或工业库),再选报表类型和时间模板,然后从变量列表里挑要统计的点位,最后给每列指定统计函数。行列统计是这版新增的能力,同一行可以既有平均值又有最大值,出表之后不用再手工算。
班次判断这类逻辑用命令语言算好,再让报表按班次变量筛:
// 应用程序命令语言 - 运行时,周期 1000ms // 用途:算出当前班次,供报表向导的时间模板筛选 int nHour; nHour = \\本站点\小时; if (nHour >= 8 && nHour < 16) { \\本站点\当前班次 = 1; // 白班 } else if (nHour >= 16 && nHour < 24) { \\本站点\当前班次 = 2; // 中班 } else { \\本站点\当前班次 = 3; // 夜班 }这段里nHour取自系统时间变量,班次边界按现场实际排班改,别照抄 8 点。班次变量建好之后,报表向导的时间筛选条件直接引用它,比在报表里写死时间段灵活得多——现场改一次排班,只改这段判断就行。
4.3 报表数字对不上的三个排查方向
报表出来数不对,先别怀疑软件算错,按下面三个方向排,基本能定位:
第一是时间基准。采集时间、存储时间、统计时间可能不是同一个时刻,一条记录在 07:59:59 采到、08:00:01 入库,就会被算进下一个班,边界上的那几条数据最容易引起争议。解决方式是把统计区间留一秒余量,或者干脆按整分钟对齐采集。
第二是死区和采集频率。变量设了变化死区之后,数值小幅波动不会入库,报表取平均时参与计算的点就少了,跟画面上的实时值对不上是正常的。关键指标要么把死区设小,要么改用定时存储而不是变化存储。
第三是累计量和瞬时量的混用。瞬时流量做累计,靠的是命令语言积分,积分周期改了而系数没改,累计值就会差出固定倍数。看到累计值刚好是预期的一半或者两倍,先回去查那段积分脚本的周期参数。
5. 避坑排查:五个把工程拖到下班的现场问题
下面这几条都是现场真遇到过、并且在不止一个工程里重复出现的问题,按现象、原因、解决三段写,方便对着查。
5.1 通讯与授权类
现象:画面上所有数值都不刷新,设备状态指示一直是断线,但用调试助手连同一台设备读数据完全正常。
原因:串口被别的程序占着。工控机上常见的是厂家调试软件、打印机驱动、或者上一个没退干净的采集进程,串口是独占资源,被占之后组态王打不开端口,表现出来就是通讯失败,而不是报“端口占用”。
解决:先在设备管理器里确认端口号没被改过,再任务管理器里把所有可能占串口的进程结束掉,重启组态王运行。如果反复出现,把调试软件装到另一台机器上,别跟运行系统混用一台。
现象:换了一台备用工控机之后,软件能启动,但提示授权无效,画面进不去。
原因:软授权绑的是本机硬件指纹,换主板、换网卡、重装系统都会导致授权失效;硬加密的情况下则常常是加密锁的驱动没装,或者锁插在了供电不足的前置 USB 口。
解决:软授权走官方重新授权的流程,别尝试各种“修复工具”;硬加密先换到后置 USB 口,再确认锁的驱动是否装上。这件事的教训是交接时一定要把授权方式和恢复流程写进文档,别只留一个能跑的机器。
5.2 数据与报表类
现象:历史曲线中间出现一段一段的断点,断点时间不固定,画面实时值却是正常的。
原因:多半是存储环节而不是采集环节。变量勾了变化存储但死区设得太大,或者采集频率设得比存储周期长,数据入库就稀疏;另一种是历史库所在磁盘满了,写入被丢弃,曲线直接断掉。
解决:先看磁盘剩余空间,再看变量的记录方式改成定时存储,采样周期按工艺要求设。对于必须连续的曲线,把采集频率和存储周期设成一致,别指望靠死区省空间。
现象:报表导出成 Excel 打开后列全错位,中文描述变成乱码。
原因:导出时的分隔符和编码跟 Excel 的默认解析方式不一致,中文环境下 CSV 默认按本地编码读,导出成 UTF-8 就容易乱码;列错位则通常是描述字段里本身带了逗号,把一列撑成了两列。
解决:导出时确认编码选项,或者改用 Excel 格式直接导出;描述字段里不要写逗号,需要断句用顿号或空格。这个坑看着小,但每次交付都要被挑一遍。
5.3 发布与运行类
现象:Web 客户端打开页面是一片空白,或者提示控件加载失败,服务器本机访问却一切正常。
原因:发布端用 OCX 控件发布画面时,客户端浏览器需要注册对应控件并允许加载,IE 的默认安全级别会把这类控件拦下来,另外客户端没把服务器地址加进可信站点也会被拦。
解决:先确认发布端 Web 服务已经启动、端口没被防火墙挡住,再在客户端注册控件、把地址加进可信站点、调低 ActiveX 相关设置。这部分下一章展开讲配置细节。
6. Web 发布与上线自检:让浏览器那端真的能看到画面
组态王 6.55 的 Web 发布是这一版改动比较大的地方,画面发布、实时数据发布、历史数据发布、数据库数据发布都支持,还支持 OCX 控件发布,客户端拿到的画面跟发布端工程高度一致。但这类老架构的发布,真正的门槛不在配置界面,而在客户端那台机器上。
发布端要做的四件事:工程里启动 Web 服务并指定端口;选择发布内容,画面、数据、历史、OCX 按需勾;确认运行系统处于运行态,发布是以运行态工程为源的;服务器防火墙放行发布端口。客户端要做的三件事:把服务器地址加入可信站点;允许 ActiveX 控件下载和运行;注册发布端用到的 OCX 控件。
@echo off REM 以管理员身份运行,注册发布端用到的 OCX 控件 REM 第一个参数是控件所在目录,按实际安装位置改 cd /d "<发布端OCX所在目录>" REM /s 静默注册,成功不弹窗;失败会返回非零 regsvr32 /s YourPublishCtrl.ocx if %errorlevel% neq 0 ( echo OCX 注册失败,检查是否以管理员身份运行 ) else ( echo OCX 注册成功 ) pause这段的关键在两点:必须以管理员身份运行,普通权限下 regsvr32 会静默失败;/s只是关掉成功弹窗,失败时仍然要看返回码。注册完建议在客户端用一个全新的浏览器会话重开页面,别在已经缓存了失败状态的窗口里反复刷新,那会让你误判成配置没生效。
上线前的自检我一般按这张表走一遍:
| 检查项 | 判断标准 | 不通过时的方向 |
|---|---|---|
| 发布端 Web 服务 | 状态显示已启动 | 端口冲突、工程未运行 |
| 本机自访问 | 服务器上能打开画面 | 发布内容未勾选 |
| 客户端连通性 | ping 与端口可达 | 防火墙、网段 |
| 控件注册 | 注册返回 0 | 权限、路径、位数不匹配 |
| 登录与权限 | 只读账号不能下发命令 | 用户权限配置 |
| 远程控制 | 命令下发后现场有动作 | 变量读写属性、联锁 |
远程控制这条要单独说一句:Web 端能发控制命令是这版的功能,但工业现场让浏览器直接写 PLC 是有风险的,稳妥做法是给远程账号只读权限,控制命令走确认弹窗加操作日志,别图省事开成全权限。
从那以后我每次交付带 Web 发布的工程,都会找一台从来没装过任何组件的笔记本当客户端,从零走一遍加可信站点、注册控件、打开画面的流程,跑通了才算完。很多时候问题不是出在工程上,而是出在“我这台机器上能开”这种错觉上。希望帮到你。
本文还有配套的精品资源,点击获取