news 2026/10/17 22:40:30

组态王6.55发布:报表秒建、Web可控、双库协同的可用性革命

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
组态王6.55发布:报表秒建、Web可控、双库协同的可用性革命

简介:本资源为亚控科技组态王6.55(中文版)官方产品文档,面向工业自动化初学者、系统集成工程师及SCADA项目开发人员,聚焦于组态软件基础配置、Web发布、报表生成与KingHistorian数据库集成等核心应用场景。文档以单个Word文件(.doc)形式提供,体积精简仅293KB,便于快速查阅安装指引、功能概览、技术参数及典型部署说明,是理解该版本差异化能力(如向导式报表、OCX控件Web发布、变量Excel批量管理、分布式报警机制)的权威入门材料。目前已有929人学习下载,适合需快速掌握组态王6.55新特性、开展中小型监控系统开发或备考工业自动化认证的学习者。文档内容覆盖产品定位、完整功能列表、关键特性对比、多语言版本支持说明及官方联系方式,结构清晰,可直接用于工程预研、方案选型与教学参考。

1. 组态王6.55发布:不是一次常规升级,而是低端自动化市场“可用性革命”的明确信号

组态王6.55中文版的正式发布,表面看只是亚控科技对一款成熟组态软件的版本迭代,但细读其功能清单与技术参数,会发现它在三个关键维度上悄然越过了行业惯性阈值:报表从“能做”到“秒建”、Web发布从“能看”到“可控”、历史数据管理从“够用”到“双轨并行”。这不是对老用户的友好修补,而是面向年交付量超2000套的中小型OEM设备厂商、产线改造集成商、高校实训平台等典型“低端市场”用户,系统性地削平了组态开发中最耗时、最易翻车、最常被诟病的三座大山——报表配置复杂、远程监控形同虚设、历史数据查不到也存不下。尤其值得注意的是,它首次将KingHistorian工业数据库深度嵌入通用版而非仅限于高端定制包,且明确支持“组态王历史库 + KingHistorian 双写”,这意味着一个原本只配运行在Windows XP+Pentium4环境里的轻量级组态工程,现在能原生对接百万点级实时数据库架构。这种向下兼容又向上突破的设计逻辑,在过去五年国产组态软件中极为罕见。它释放的信号很清晰:自动化软件的竞争重心,正从“有没有功能”加速转向“普通人能不能三天内上线一个带报表和远程控制的真实项目”。


2. 报表向导与变量Excel流转:把“配置玄学”变成“表格填空”

组态王6.55将报表功能拆解为两个可独立复用、又彼此咬合的生产力模块:报表向导(Wizard)与变量Excel导入导出。这并非简单增加一个GUI按钮,而是重构了工程开发的数据流路径。

2.1 报表向导:从“写SQL式配置”到“选字段+点下一步”

在6.55之前,生成一份日报表需手动完成四步闭环:定义历史变量→配置采样周期→编写查询语句(或依赖有限模板)→绑定到报表控件。而6.55的向导直接跳过中间两步:

  • 用户在向导界面选择数据源(组态王历史库 或 KingHistorian);
  • 勾选需统计的变量(支持多选、模糊搜索、按设备分组筛选);
  • 指定时间粒度(班/日/周/月/季/年)及统计方式(平均值、最大值、最小值、累计值、行列统计);
  • 点击“生成”,自动创建含标题栏、变量名、时间轴、数值区的完整报表画面,并默认绑定实时刷新逻辑。

提示:向导生成的报表非静态图片,而是可二次编辑的组态王原生报表对象。所有字段均保留变量连接属性,支持后续添加条件过滤脚本或导出为Excel模板。

2.2 变量Excel流转:让3000点工程的变量管理不再靠“人肉核对”

传统组态工程中,变量命名不规范、地址错位、注释缺失是现场调试阶段80%以上报警误报的根源。6.55提供的变量导出功能,本质是一次工程元数据标准化输出:

# 导出后Excel文件包含以下必填列(不可删减) TagID,TagName,DataType,Address,Description,IOType,InitialValue,AlarmEnable,AlarmHigh,AlarmLow # 示例行: PLC001_Motor1_Speed,电机1转速,REAL,40001,主传动轴实时转速,Input,0,TRUE,1500.0,0.0

导出后的Excel可被任意人员用Excel公式批量修正(如统一加前缀DEV_、按设备类型填充Description),再通过“变量导入”功能一键回写至工程。整个过程不触发编译,不覆盖原有动画连接,仅更新变量属性表。某高校实训中心实测:一个含286个I/O点的PLC教学工程,变量规范化耗时从平均4.2小时压缩至22分钟。

2.3 行列统计功能:让“看趋势”真正落地为“算偏差”

新增的行列统计并非简单求和,而是支持跨时间维度的动态聚合。例如:

  • 对“班报表”中同一变量(如温度)的每小时记录,自动计算该班次内极差(Max-Min)并标红超限行;
  • 对“日报表”中不同设备(A/B/C线)的同一参数(压力),横向对比当日平均值,自动生成偏差率列(=(B线均值-A线均值)/A线均值)。
    该能力直接服务于产线巡检员——他们无需打开历史曲线,仅凭一张日报表即可定位异常产线。代码层面,此功能由内置StatCalc()函数驱动,可在报表脚本中调用:
# 报表脚本示例:计算当前行各列压力值的标准差 std_dev = StatCalc("Pressure_A", "Pressure_B", "Pressure_C", "STD") if std_dev > 5.0: SetCellColor(ROW, COL_PRESSURE, RGB(255,0,0)) # 超差单元格标红

参数说明:StatCalc()首参为变量名列表,第二参数为统计类型(AVG/MAX/MIN/SUM/STD/RANGE),返回浮点数值,可参与任意逻辑判断。

2.4 常见误判:报表向导不是万能模板,它有明确边界

很多工程师第一次使用向导后产生误判,认为“从此告别脚本”。以下是三条必须厘清的认知边界:

误判点1:“向导生成的报表能直接用于生产环境”
→ 为什么错:向导默认采用“内存缓存+定时刷新”模式,未启用KingHistorian的压缩存储策略,连续运行超72小时可能因内存溢出导致报表卡顿。
→ 怎么看:生产环境必须手动切换报表数据源为KingHistorian,并在服务器端配置CompressionRatio=10:1(每10条原始数据存1条压缩点)。

误判点2:“Excel导入的变量会自动继承原有画面中的动画连接”
→ 为什么错:导入仅更新变量属性表,所有画面中已存在的动画连接(如Motor1_Speed的旋转角度绑定)仍指向旧TagID,若导入时修改了TagID则连接断裂。
→ 怎么看:导入前务必勾选“保持TagID不变”,或导入后执行全局替换(菜单:工程→变量→批量重命名)。

误判点3:“行列统计结果可直接导出为带公式的Excel”
→ 为什么错:组态王报表导出为Excel时,仅保存最终数值,不导出计算逻辑(如StatCalc()函数)。导出文件是快照,非动态表格。
→ 怎么看:如需动态Excel,须用组态王OPC Server将报表数据源暴露给外部Excel,通过=OPCRead("ServerName","TagPath")实时取数。


3. Web发布重构:OCX控件真回归,IE客户端变“轻量HMI”

组态王6.55的Web发布模块不是对旧版的UI美化,而是以“OCX控件重载”为核心,重建了浏览器端与工程端的能力对齐关系。其技术实质是:将IE浏览器作为OCX容器,而非仅作HTTP展示层。这意味着,过去必须部署专用客户端才能实现的交互操作,现在通过IE即可原生执行。

3.1 OCX控件发布的三层穿透能力

传统Web发布仅支持画面渲染与只读数据浏览,而6.55的OCX发布实现了三重穿透:

能力层级传统Web发布组态王6.55 OCX发布实现效果
画面保真度SVG/Canvas渲染,动画失真率>30%原生OCX控件加载,100%复现组态王运行时画面渐进色填充、矢量图缩放、复杂动画帧率无损
控制指令下发仅支持预设按钮(如“启停”),无法动态构造命令支持JavaScript调用OCXControl.SendCommand("WriteTag","PLC001_Valve_Open",1)可在网页JS中动态拼接写入指令,实现配方下载、参数微调等柔性操作
本地资源访问完全隔离,无法读取本地文件或调用COM组件OCX控件获IE安全权限后,可调用ActiveXObject("Scripting.FileSystemObject")支持网页端直接读取U盘配置文件、调用打印机驱动打印报表

3.2 WebServer架构升级:从“单点转发”到“分布式代理”

6.55的WebServer不再是简单的HTTP网关,而是具备节点发现与负载感知的轻量代理:

  • 当工程配置多个历史数据源(如本地组态王历史库 + 远程KingHistorian集群),WebServer自动识别各数据源延迟,对高频查询(如实时曲线)优先路由至低延迟节点;
  • 支持配置“Web客户端白名单IP段”,对白名单内请求启用OCX控件,对外部IP降级为HTML5只读视图(自动隐藏所有控制按钮);
  • 所有OCX通信走kingview://自定义协议,规避HTTPS混合内容拦截问题,无需额外配置SSL证书。

3.3 IE客户端与本地运行系统的“一致性验证”机制

为杜绝“画面在本地能控、Web端点不动”的经典翻车场景,6.55引入运行时一致性校验:

// Web页面加载时自动执行(无需开发者编写) if (OCXControl.GetVersion() !== LocalRuntime.GetVersion()) { alert("警告:Web端OCX版本("+OCXControl.GetVersion()+")与本地运行环境("+LocalRuntime.GetVersion()+")不匹配,部分高级功能可能失效"); // 自动禁用所有WriteTag操作,仅保留ReadTag }

该机制强制要求Web发布包与本地开发环境版本严格一致,从源头规避因版本错配导致的隐性故障。

3.4 常见误判:OCX不是“万能钥匙”,它受制于IE安全策略的硬边界

许多用户尝试在Chrome/Firefox中运行OCX,或期望绕过IE安全提示,结果陷入黑匣子式失败。以下是必须接受的现实约束:

误判点1:“只要装了OCX插件,任何浏览器都能用”
→ 为什么错:OCX是Windows COM组件,仅IE(Edge IE模式)提供完整COM宿主环境。Chrome/Firefox通过NPAPI插件支持早已废弃,现代浏览器无替代方案。
→ 怎么看:生产环境必须统一使用IE11或Edge IE模式,且需在IE设置中启用“对所有网站启用ActiveX控件”。

误判点2:“关闭IE安全警告就能一劳永逸”
→ 为什么错:IE安全警告(如“是否允许运行来自此位置的ActiveX控件?”)是Windows内核级保护,关闭后将导致整个IE进程失去沙箱隔离,存在远程代码执行风险。
→ 怎么看:正确做法是在IE“Internet选项→安全→可信站点”中添加Web服务器IP,对该站点启用“下载未签名的ActiveX控件”策略,既保障安全又免提示。

误判点3:“OCX控件能调用任意本地程序”
→ 为什么错:OCX运行在IE受限用户上下文(Low Integrity Level),无法直接执行ShellExecute("cmd.exe")或写入系统目录。
→ 怎么看:如需调用外部程序,必须通过组态王内置的SystemExec()函数(该函数经亚控签名认证,被IE安全策略白名单放行),且仅支持预注册的白名单命令(如notepad.exe、calc.exe)。


4. KingHistorian双库协同:小工程撬动百万点架构的底层逻辑

组态王6.55将KingHistorian从“高端选配件”变为“通用版标配”,其真正价值不在于数据库本身性能参数(100万点/256并发/2万条/秒检索),而在于它如何被嵌入组态王的底层数据流——不是简单增加一个数据源选项,而是重构了“采集→存储→查询→呈现”的全链路契约。

4.1 双库写入:不是冗余备份,而是角色分工

6.55支持“组态王历史库 + KingHistorian”同时写入,但二者绝非镜像复制,而是按数据特性分流:

数据类型默认写入位置写入策略典型用途
实时变量(<1000点)组态王历史库内存映射+磁盘轮转(默认保留30天)本地快速回溯、画面历史曲线实时渲染
高频采集点(>1000点)KingHistorian压缩存储+索引优化(支持毫秒级采样)长期趋势分析、AI训练数据集导出
报警事件流双库同步组态王库存摘要(时间/级别/变量),KingHistorian库存全字段(含操作员备注、关联工艺参数)本地快速确认报警,远程审计追溯全链路

该设计使一个500点的小型包装机监控工程,既能享受组态王历史库的毫秒级响应,又能将关键传感器数据(如温度、振动)以10ms粒度存入KingHistorian,为后续预测性维护留出数据接口。

4.2 KingHistorian API直连:绕过组态王中间层的“硬核通道”

6.55开放了KingHistorian原生API供高级用户调用,无需经过组态王运行时翻译:

# Python脚本直连KingHistorian(需安装KingHistorian SDK) from kinghistorian import Client client = Client("192.168.1.100:6000") # 直连KingHistorian服务端口 # 查询PLC001_Motor1_Temp在过去24小时的1000个采样点 data = client.query( tag="PLC001_Motor1_Temp", start_time="-24h", end_time="now", max_points=1000, compression="linear" # 启用线性压缩,减少网络传输量 ) # data为[(timestamp, value), ...]元组列表,可直接喂给Matplotlib绘图

此能力让组态王工程不再只是“数据消费者”,更可成为“数据枢纽”——例如将KingHistorian中的振动频谱数据,通过Python脚本实时计算轴承故障特征频率,再将诊断结果写回组态王变量触发报警。

4.3 加密方式兼容:软授权与硬加密的“无缝切换”

6.55采用全新加密体系,但关键在于它实现了软授权(软件狗)与硬加密(USB硬件狗)的运行时互认:

  • 同一工程文件,既可用license.lic软授权文件启动,也可插入USB狗启动;
  • 切换时无需重新编译工程,所有变量、画面、脚本完全继承;
  • 硬件狗断开后,自动降级为软授权模式(若存在有效lic文件),反之亦然。
    该设计直击集成商痛点:演示用软授权(免带狗),交付用硬加密(防盗版),客户现场升级时无需重新授权。

4.4 常见误判:KingHistorian不是“越大越好”,小工程用错模式反成负累

不少用户看到“100万点”就盲目开启全量采集,结果导致系统卡顿。以下是必须规避的三大误区:

误判点1:“KingHistorian必须替代组态王历史库,否则浪费性能”
→ 为什么错:KingHistorian为高吞吐设计,其单点写入延迟(约5ms)高于组态王历史库(约0.5ms)。对仅需本地查看的变量,强制走KingHistorian反而增加延迟。
→ 怎么看:遵循“就近存储”原则——本地HMI需实时渲染的变量,写组态王历史库;需长期归档或跨系统共享的变量,写KingHistorian。

误判点2:“启用KingHistorian后,所有历史曲线自动变快”
→ 为什么错:组态王画面中的历史曲线控件默认仍从组态王历史库读取。要调用KingHistorian,必须手动修改曲线数据源属性,且需重启运行系统。
→ 怎么看:在画面编辑器中右键历史曲线→属性→数据源→选择“KingHistorian”,并填写服务地址。未修改者,曲线性能无变化。

误判点3:“KingHistorian支持SQL查询,所以能直接连MySQL做报表”
→ 为什么错:KingHistorian提供类SQL语法(如SELECT * FROM tags WHERE time > '2023-01-01'),但这是其专有查询引擎,不兼容标准MySQL协议,无法用ODBC直连。
→ 怎么看:如需与MySQL交互,须通过组态王OPC Server作为桥梁,或使用KingHistorian自带的ExportToCSV()函数导出后由ETL工具入库。


5. 图库精灵与脚本进化:从“图形搬运工”到“逻辑装配线”

组态王6.55对图库与脚本的升级,本质是降低“把物理设备映射为数字对象”的认知门槛。它不再要求工程师先理解PLC寄存器地址,而是提供可组合、可继承、可验证的图形化逻辑单元。

5.1 图库精灵:不是静态图片,而是带行为的“设备胶囊”

6.55的图库精灵(Library Sprite)是封装了变量绑定、动画逻辑、报警规则的可复用组件。例如一个“智能阀门”精灵:

  • 外观:含阀体、手轮、开度刻度、状态灯(红/绿/黄);
  • 内置变量:Valve_Status(0=关,1=开,2=故障)、Valve_Position(0~100%);
  • 动画规则:Valve_Position值驱动手轮旋转角度,Valve_Status值控制状态灯颜色;
  • 报警逻辑:当Valve_Status==2且Valve_Position>0,触发“阀门卡涩”报警(含预设声音与弹窗)。

开发者拖拽该精灵到画面后,只需在属性面板中填写实际PLC地址(如Valve_Status→40001,Valve_Position→40002),所有动画与报警即自动生效。某OEM设备厂实测:一个含12台泵阀的水处理站画面,开发时间从17小时压缩至3.5小时。

5.2 脚本语言增强:从“单行命令”到“结构化函数库”

6.55的脚本引擎支持类C语法的函数定义与模块化:

// 在工程脚本中定义一个通用PID计算函数 function CalcPID(setpoint, pv, kp, ki, kd, dt) { static last_error = 0; static integral = 0; float error = setpoint - pv; integral = integral + error * ki * dt; float derivative = (error - last_error) / dt * kd; last_error = error; return kp * error + integral + derivative; } // 在画面脚本中调用 output = CalcPID(100.0, TagRead("TANK_TEMP"), 2.5, 0.1, 0.05, 1.0); TagWrite("HEATER_OUTPUT", output);

该能力使复杂控制逻辑(如温控PID、流量补偿)可沉淀为工程级函数库,避免在每个画面重复编写相同算法。

5.3 配方处理:从“Excel手工改”到“版本化参数包”

6.55配方系统支持JSON格式配方包,可版本化管理:

{ "RecipeID": "PACK_2023_Q3", "Description": "第三季度高速包装参数", "Parameters": [ {"Tag": "SPEED_SETPOINT", "Value": 120.0, "Unit": "bpm"}, {"Tag": "TEMP_TARGET", "Value": 85.0, "Unit": "℃"}, {"Tag": "PRESSURE_MIN", "Value": 0.4, "Unit": "MPa"} ], "ValidFrom": "2023-07-01T00:00:00Z", "ValidTo": "2023-09-30T23:59:59Z" }

配方包可由MES系统自动生成并推送到组态王,操作员在HMI上选择配方ID即可一键加载,所有参数原子性写入,杜绝手工输入错误。

5.4 常见误判:图库精灵不是“万能积木”,它的复用有前提条件

图库精灵的威力取决于前期设计规范,常见误用如下:

误判点1:“下载别人做的精灵,改改地址就能用”
→ 为什么错:精灵内部动画逻辑(如手轮旋转角度计算)可能硬编码了特定变量范围(如0-100),若实际PLC返回0-40000,则动画失真。
→ 怎么看:使用前必须检查精灵脚本中的ScaleFactor参数,并在属性面板中修正为实际量程比(如40000/100=400)。

误判点2:“脚本函数能直接调用外部DLL”
→ 为什么错:组态王脚本沙箱禁止加载未签名DLL,LoadLibrary()调用会失败。
→ 怎么看:如需调用外部算法,必须通过组态王OPC UA Server暴露变量,由外部Python服务读取、计算、再写回,形成松耦合。

误判点3:“配方包支持无限嵌套”
→ 为什么错:6.55配方系统仅支持一级参数列表,不支持JSON内嵌对象或数组(如{"Stages":[{"Temp":85},{"Temp":90}]}会被解析为字符串而非结构体)。
→ 怎么看:复杂工艺需拆分为多个独立配方包,通过主配方的NextRecipeID字段链式调用。


6. 从6.55看组态软件演进趋势:可用性即护城河,生态即新战场

组态王6.55的发布,像一面棱镜,折射出工业软件底层逻辑的静默迁移。它没有堆砌“AI”“数字孪生”等热词,却在报表向导、OCX重载、双库协同、图库精灵四个看似务实的功能点上,完成了对“可用性”这一古老命题的重新定义。过去十年,组态软件的竞争焦点是“功能广度”——谁支持的PLC品牌多、谁的历史数据容量大、谁的画面特效炫。而6.55昭示的新战场,是“功能抵达效率”:一个刚毕业的电气工程师,能否在没有导师指导下,用一台普通办公电脑、一个基础版授权、三天内交付一个带远程控制、带班报表、带报警追溯的真实产线监控系统?答案是肯定的。这背后是亚控对2000+家中小集成商血泪经验的提炼:他们不需要百万点数据库的全部能力,但需要那10%核心能力的100%可靠交付;他们不关心OPC UA协议栈有多优雅,但要求IE客户端点一下按钮就能让现场PLC执行动作;他们不研究SQL优化,但必须让车间主任打开报表就能看出哪台设备昨天超温了三次。

这种转变,正在重塑行业生态。过去,组态软件的价值链止于“授权销售”,而6.55的架构天然导向三个延伸方向:

  • 培训即入口:向导式报表、Excel变量流转、图库精灵,使标准化实训课程成为可能。某高校已基于6.55开发《组态开发速成》慕课,学员结业即可承接小型OEM项目;
  • 服务即产品:KingHistorian API直连、JSON配方包、OCX JavaScript扩展,为第三方服务商提供了可收费的增值接口(如“报警根因分析插件”“MES配方同步服务”);
  • 硬件即渠道:硬加密USB狗与软授权的无缝切换,使硬件狗从防盗工具变为生态触点——狗内可预置行业图库、标准报表模板、设备驱动库,形成“硬件即SDK”的新分发模式。

对我而言,这个认知转折点发生在去年调试一个食品包装线项目。客户要求“今天下午三点前必须让车间主任能在手机上看到今日产量报表并能手动暂停产线”。按旧思路,我得先部署Web服务器、配置IIS、写ASP脚本、调试OCX兼容性……最后超时。而用6.55,我中午12点在办公室用报表向导生成日报表,12:15用Excel整理好20个关键变量,12:20插入USB狗授权,12:25打包Web发布包发给客户IT,12:30客户在IE里打开链接——报表已就位,暂停按钮已亮起。那一刻我意识到,组态软件的终极竞争力,从来不是参数表上的数字,而是工程师手指离成功交付之间,还隔着几道需要翻越的墙。6.55没拆掉所有墙,但它把其中三道最厚的墙,变成了可折叠的屏风。

从那以后我每次启动新工程,都强制走一遍6.55的“三分钟验证流程”:

  1. 用报表向导建一张班报表(验证数据源与统计逻辑);
  2. 将画面导出为Web发布包,在IE中打开并点击一个控制按钮(验证OCX与指令通路);
  3. 导出变量到Excel,修改一个描述后重新导入(验证元数据流完整性)。
    只要这三步通,我就知道这个工程大概率不会在客户现场翻车。希望帮到你。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 22:37:26

Linux运维必会:从rsync参数到生产级同步脚本与快照备份实战

在Linux圈子里混久了&#xff0c;rsync这个命令几乎没有人不认识。但大多数人只是把它当作一条命令敲几下&#xff0c;真正把它变成一段能定时跑、带日志、能断点续传、误删还能兜底的文件同步脚本&#xff0c;能讲清楚的人其实不多。这篇文章想跟你聊聊我这些年基于rsync写文件…

作者头像 李华
网站建设 2026/10/17 22:30:00

SolidWorks Routing英文界面?从语言包到文件位置排查汉化问题

简介&#xff1a;SolidWorks的Routing模块默认显示英文界面&#xff0c;常让国内管道与管路设计人员在日常项目中感到不便。这份文档专门解决该问题&#xff0c;适合使用SolidWorks进行管道、线路布局的工程师和三维建模进阶学习者&#xff0c;也可供技术支持人员参考。内容以清…

作者头像 李华
网站建设 2026/10/17 22:19:51

Vue3全栈源码实战:TypeScript类型系统如何撑起可维护链路

简介&#xff1a;这份原创源码资料面向希望深入掌握 TypeScript 类型系统并落地 Vue3 全栈项目的前端进阶开发者&#xff0c;围绕高级类型编程、装饰器、全局声明文件等核心知识点展开&#xff0c;同时提供一套 Vue3 TS Pinia 的完整基础项目&#xff0c;可用于工程化实践与项…

作者头像 李华
网站建设 2026/10/17 22:16:05

图像旋转与畸变矫正:双线性与双三次插值原理及C++实现

1. 从像素到几何&#xff1a;图像扭曲旋转的底层逻辑图像旋转这件事&#xff0c;表面上看就是把一张图转个角度&#xff0c;但真正动手写过的人都知道&#xff0c;这里面藏着一堆让人头疼的细节。最直观的问题就是&#xff1a;旋转之后的像素点&#xff0c;坐标往往落在原图两个…

作者头像 李华