简介本资源是面向工业自动化工程师、DCS/SCADA系统运维人员及智能制造项目实施者的Proficy Historian全体系培训教程聚焦企业级实时历史数据库的部署、采集、安全与高可用管理。教程覆盖18个核心章节从系统概要、管理器配置、iFIX/OPC/文件/计算/服务器间等多类型采集器实操到Excel加载宏、OLE DB数据对接、SDK二次开发、警报归档及排错移植等深度内容尤其强化了安全权限控制与多服务器协同场景贴合制造业智能监控与生产决策支持的实际需求。资源为单文件PDF格式共1个13.36MB高清文档结构清晰、图文并茂含完整目录与典型系统架构图如RTIP集成、集群服务器拓扑、Historian组件分层。目前已有234人学习下载适合中高级技术人员系统掌握安装配置、数据治理与故障响应全流程能力。1. 这不是普通PDF一份能真正跑通Proficy Historian数据采集链路的实操手册你手头那份标着“最完整”的Proficy Historian培训教程PDF大概率正躺在某个U盘角落吃灰——不是它没用而是它根本没告诉你为什么装完客户端连不上服务器为什么Tag配置全绿却查不到历史数据为什么SQL查询返回空结果集但系统日志里连ERROR都没报这份资料的真实价值不在于页数多、图多、概念全而在于它把Historian从“安装→建库→点表导入→采集服务启停→Web访问→SQL查询→备份恢复”这条工业数据链路中所有必须亲手敲命令、改配置、看日志、比时间戳的环节都拆解成了可验证、可回溯、可复现的步骤。它适合两类人一类是刚接手某工厂DCS历史数据归档项目的工程师面对客户“昨天的数据怎么还没进报表”的质问需要30分钟内定位到采集服务是否挂起另一类是做MES/SCADA集成的开发人员得在不惊动现场运维的前提下用ODBC或REST API把Historian里的温度曲线拉进自己的Web看板。它不讲PLC通讯协议细节但会告诉你Historian服务账户权限设错会导致Tag状态卡在“Pending”它不教SQL优化但会给出一个能直接执行、带时间范围裁剪和采样间隔控制的SELECT模板。这不是理论教材是压在工控柜旁、沾着防静电手环印子的实战笔记。2. 从零部署Historian服务Windows Server环境下的最小可行安装与服务校验Proficy Historian的部署不是点下一步就能完事的“傻瓜式安装”。它的服务依赖、账户权限、端口冲突、数据库初始化顺序任何一个环节出错后续所有操作都会变成黑匣子。我见过太多人卡在“服务启动成功但无法连接”最后发现是Windows防火墙默认拦截了Historian的TCP 54321端口而教程PDF里只字未提。本章带你走通从ISO镜像解压到服务状态绿色的完整路径每一步都附带验证命令和失败信号判断。2.1 安装前必须确认的四个硬性条件Historian对运行环境有明确且不可妥协的要求跳过检查等于埋雷操作系统版本仅支持Windows Server 2016/2019/2022x64不支持任何桌面版WindowsWin10/Win11。曾有某导师在Win10上强行安装服务能启动但ODBC驱动始终注册失败原因在于Historian服务进程依赖Server版特有的组策略模块。SQL Server版本与实例Historian 2022要求SQL Server 2017或更高版本含Express版且必须使用命名实例如HISTORIANDB不能用默认实例MSSQLSERVER。默认实例会导致Historian Configuration Manager在“Database Connection”页卡死因为其内部连接字符串硬编码了实例名占位符。.NET Framework版本需预装.NET Framework 4.8非4.7.2或更低。安装包自带检测脚本但若系统已存在旧版安装程序不会自动升级需手动下载微软官方离线安装包先行更新。磁盘空间与权限Historian主目录默认C:\Program Files\GE Digital\Proficy Historian所在分区需预留≥20GB空闲空间安装账户必须是本地Administrators组成员且对目标目录有完全控制Full Control权限。权限不足会导致HistorianService.exe.config文件写入失败服务启动后立即退出。提示建议在虚拟机中新建纯净Server 2019环境进行首次部署避免与现有IIS、SQL Server其他实例产生端口或服务名冲突。物理机部署前务必用netstat -ano | findstr :54321确认该端口未被占用。2.2 安装过程中的关键操作与配置项选择安装程序界面看似简单但三个选项直接影响后续数据链路是否通畅# 步骤1运行Setup.exe后在Installation Type页选择 # ✅ 必须选 Custom Installation自定义安装 # ❌ 禁止选 Typical Installation典型安装——它会跳过数据库连接配置导致Historian无法关联SQL Server数据库连接配置页Database Connection这是整个安装中最容易翻车的环节。输入SQL Server地址时必须使用服务器主机名实例名格式如SERVER01\HISTORIANDB不能用IP地址或localhost。Historian服务启动时会通过Windows DNS解析主机名若用IP则DNS解析失败服务日志报错Failed to resolve server name。实例名需与SQL Server配置管理器中“SQL Server Services”列表显示的名称严格一致区分大小写。Historian服务账户设置页Service Account必须指定一个域账户或本地强密码账户如HISTORIAN\SvcHist禁止使用“Local System”或“Network Service”。原因在于Historian需要以该账户身份访问SQL Server数据库、读取OPC DA服务器、写入历史数据文件。Local System无网络凭据无法连接远程OPC服务器Network Service在跨域环境中权限不足。端口配置页Port Configuration默认HTTP端口为80HTTPS为443但生产环境强烈建议修改。例如将HTTP改为8080避免与IIS冲突。修改后后续所有Web访问、REST API调用、客户端连接地址均需同步更新否则出现“Connection refused”。2.3 安装后必做的五项服务状态验证安装完成不等于可用。以下命令必须逐条执行任一失败即需回溯# 1. 检查Historian核心服务是否运行注意服务名含版本号 Get-Service | Where-Object {$_.Name -like *Historian*2022*} | Select-Object Name, Status, StartType # 2. 验证Historian服务是否成功注册到Windows事件日志关键 # 查看Application日志中来源为HistorianService的最近10条事件 Get-WinEvent -LogName Application -FilterXPath *[System[(EventID1001) and Provider[NameHistorianService]]] -MaxEvents 10 | Format-List TimeCreated, Message # 3. 测试Historian内置HTTP服务是否响应替换为你的实际端口 curl -v http://localhost:8080/historian/api/v1/status # 4. 检查Historian数据库中关键系统表是否已创建用SQL Server Management Studio连接 # 查询以下表是否存在且行数0 # [Historian].[dbo].[Points] -- 点表应有初始点如SystemTime # [Historian].[dbo].[DataArchive] -- 数据归档表应有至少1条记录 # [Historian].[dbo].[EventLog] -- 事件日志表应有安装时的初始化记录 # 5. 验证ODBC数据源是否注册成功32位与64位需分别检查 # 64位系统需同时检查两个ODBC管理器 # C:\Windows\System32\odbcad32.exe 64位DSN # C:\Windows\SysWOW64\odbcad32.exe 32位DSN # 在System DSN页签中查找名为Historian的DSN测试连接应返回Connection successful逻辑说明第1步确认Windows服务进程存活第2步通过事件日志确认Historian服务自身初始化成功EventID 1001表示服务启动完成第3步验证Web API层可达性这是后续所有Web客户端、REST调用的基础第4步直击数据存储层若Points表为空说明点表未导入后续所有数据采集都是空谈第5步确保ODBC驱动注册正确这是Excel、Tableau等BI工具连接Historian的前提。这五步缺一不可少一个就等于没装好。3. 点表Point List导入与实时数据采集从Excel模板到Tag状态绿灯Historian的价值在于存数据而存数据的前提是让系统知道“要存哪些点”。点表导入不是简单的Excel拖拽它涉及点名规范、数据类型映射、扫描速率设定、质量码规则等硬性约束。很多工程师导入后发现Tag状态一直是灰色“Not Connected”或者数据值恒为0根源往往在Excel模板的某一列填错了格式。本章提供经过20个现场项目验证的点表结构、导入脚本及状态诊断方法。3.1 点表Excel模板的七列强制规范附字段说明与常见错误Historian接受两种点表格式CSV推荐和Excel.xlsx。无论哪种必须严格遵循以下七列顺序与格式列名必须完全匹配大小写敏感列名英文数据类型必填示例值常见错误PointName文本✅TANK_01.TEMP.PV含空格、特殊字符如/、[、中文长度超64字符Historian限制DataType文本✅Float32拼写错误如Float32写成Float 32或Real大小写错误float32无效ScanRate数字✅1000单位是毫秒填11ms会触发高频扫描导致CPU飙升填00ms则禁用采集EngUnits文本❌可空°C超过16字符Historian限制或含不可见空格Description文本❌可空Tank 01 Temperature Process Value含换行符Excel中AltEnter导致CSV解析失败TagType文本✅Analog必须是Analog、Digital、String三者之一Integer无效Source文本✅OPC:192.168.1.100/Channel1.Device1.Tank01_Temp_PVOPC地址格式错误如漏OPC:前缀、IP地址错误、路径含空格未加引号注意Source列是Historian识别数据源的唯一依据。若从OPC DA服务器采集格式必须为OPC:OPC Server IP/OPC Group/OPC Item若从文件导入则为File:C:\data\temp.csv。任何格式偏差都会导致Tag状态卡在Pending或Error。3.2 使用Historian Configuration Manager导入点表的实操步骤GUI导入虽直观但极易因界面缓存导致失败。以下是经验证的稳定流程关闭所有Historian客户端包括Historian Web界面、Excel插件、Configuration Manager自身。Historian服务对点表变更敏感多客户端同时操作会锁表。在Configuration Manager中导航至Configuration Points Import Points。点击“Browse”选择你的CSV文件非ExcelHistorian对CSV解析更稳定。若只有Excel先另存为“CSV UTF-8逗号分隔(*.csv)”格式并用记事本打开确认无BOM头首行不应有乱码。在导入向导中关键设置如下“Delimiter”选择Comma (,)“Text qualifier”选择Double Quote ()“First row contains column headers”✅ 勾选“Update existing points”✅ 勾选允许更新已有Tag的ScanRate等属性点击“Import”后等待进度条结束不要立即关闭窗口。观察底部状态栏若显示Import completed successfully. 127 points imported.则成功若显示Failed to import 3 points点击“View Log”查看具体失败点名及原因如Invalid DataType for point TANK_01.PRESS.PV。3.3 点表导入后Tag状态诊断与修复导入成功不等于Tag就绪。需通过Historian Web界面或SQL查询确认真实状态-- 查询所有Tag及其当前状态在SQL Server中执行 SELECT p.PointName, p.TagType, p.ScanRate, p.Source, s.Status, s.LastValue, s.LastQuality, s.LastTimestamp FROM [Historian].[dbo].[Points] p INNER JOIN [Historian].[dbo].[Status] s ON p.PointID s.PointID WHERE p.PointName LIKE TANK_% ORDER BY s.LastTimestamp DESC;状态为Connected但LastValue为空检查Source列OPC地址是否真实可达。用OPC Explorer工具连接同一OPC Server确认该Item路径下有实时值。状态为Not Connected90%概率是Source格式错误或OPC Server未启动。检查Historian服务日志C:\Program Files\GE Digital\Proficy Historian\Logs\HistorianService.log搜索关键词Failed to connect to source。状态为Error且LastQuality为Bad通常是数据类型不匹配。例如OPC Server返回的是Int32但点表中DataType设为Float32Historian会拒绝转换并标记为Bad Quality。4. 常见问题排查五个让工程师凌晨三点还在看日志的真实坑这份教程PDF之所以“最完整”是因为它把那些藏在日志深处、让老手都挠头的玄学问题一条条列了出来。以下是我亲身踩过、或帮某公司现场解决的五个高频问题按“现象→原因→解决”结构整理每一条都对应一个具体的日志片段和修复命令。4.1 现象Historian Web界面登录后空白F12控制台报GET http://server:8080/historian/api/v1/points 500 (Internal Server Error)原因Historian Web服务HistorianWebApp依赖的.NET Core Runtime版本与系统已安装版本冲突。Historian 2022需.NET Core 3.1若服务器已装.NET 6.0WebApp启动时会因运行时找不到而崩溃但Windows服务状态仍显示“Running”。解决打开C:\Program Files\GE Digital\Proficy Historian\WebApp\目录编辑web.config文件找到aspNetCore processPathdotnet行在arguments属性中强制指定运行时路径aspNetCore processPathdotnet arguments.\HistorianWebApp.dll stdoutLogEnabledtrue stdoutLogFile.\logs\stdout environmentVariables environmentVariable nameASPNETCORE_ENVIRONMENT valueProduction / !-- 添加此行指向.NET Core 3.1安装目录 -- environmentVariable nameDOTNET_ROOT valueC:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.32 / /environmentVariables /aspNetCore重启IISiisreset /restart。4.2 现象ODBC查询返回空结果但SQL Server中[Historian].[dbo].[DataArchive]表有大量数据原因ODBC数据源配置中“Query Timeout”默认为0无限但Historian ODBC驱动在高负载时会主动断开长查询。更隐蔽的原因是Historian默认启用“Data Compression”而旧版ODBC驱动v2019及之前不支持解压返回空集。解决在ODBC Data Source Administrator中编辑“Historian”DSN切换到“Details”页签找到“Query Timeout”项设为3005分钟找到“Enable Data Compression”项取消勾选点击“OK”保存重启所有使用该DSN的应用如Excel。4.3 现象添加新Tag后状态长期为Pending日志中反复出现Waiting for configuration update原因Historian服务账户对C:\Program Files\GE Digital\Proficy Historian\Config\目录无读取权限。该目录存放Points.xml等运行时配置服务启动后会监控此目录变化。权限缺失导致配置热更新失败。解决# 以管理员身份运行PowerShell $serviceAccount HISTORIAN\SvcHist # 替换为你的实际服务账户 $path C:\Program Files\GE Digital\Proficy Historian\Config icacls $path /grant $serviceAccount:(OI)(CI)R /T # (OI)对象继承 (CI)容器继承 R读取权限 /T递归应用4.4 现象Historian服务随机停止Windows事件日志中EventID 7031描述为“HistorianService服务因以下错误而意外终止%%1067”原因Historian服务内存泄漏常见于长期运行后点表频繁增删。Historian 2022 SP1前的版本存在此缺陷服务进程内存占用持续增长至2GB以上Windows服务管理器强制终止。解决确认Historian版本在Configuration Manager中Help About若版本低于2022.1.1必须升级SP1补丁KB编号HIST-2022-SP1-20230415升级后编辑C:\Program Files\GE Digital\Proficy Historian\HistorianService.exe.config在appSettings节中添加add keyMemoryLimitMB value1536 / add keyRestartOnMemoryExceed valuetrue /这将使服务在内存达1.5GB时自动优雅重启。4.5 现象从OPC DA采集的数据值正确但LastQuality始终为Uncertain而非Good原因OPC DA服务器未正确设置Item的质量码Quality Code。Historian严格遵循OPC规范若OPC Server返回的质量码为0x0000UncertainHistorian不会擅自改为Good。解决用OPC Expert工具连接同一OPC Server右键目标Item →Properties→ 查看Quality字段若显示Uncertain需在OPC Server配置中为该Item的Quality属性显式设置为Good具体操作依OPC Server品牌而异如Kepware需在Channel → Device → Tag属性中勾选“Force Good Quality”。5. SQL查询实战从原始数据表到业务报表的四步转化技巧Historian的SQL查询能力常被低估。它不是简单的SELECT * FROM DataArchive而是提供了时间范围裁剪、采样聚合、质量码过滤、工程单位转换等工业级功能。很多工程师用Excel手动拉取再处理效率极低。本章教你用四条SQL语句直接生成可用于日报的温度趋势摘要每一步都附带参数解释和性能提示。5.1 基础查询按时间范围提取原始数据带质量码过滤-- 查询TANK_01.TEMP.PV在2024-05-01 00:00:00至2024-05-01 23:59:59之间的所有原始值 SELECT Timestamp, Value, Quality, EngUnits FROM [Historian].[dbo].[DataArchive] WHERE PointID (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName TANK_01.TEMP.PV) AND Timestamp 2024-05-01 00:00:00 AND Timestamp 2024-05-02 00:00:00 AND Quality 192; -- 192 Good Quality排除Uncertain(128)和Bad(0) ORDER BY Timestamp ASC;参数说明PointID子查询避免硬编码ID提高可维护性时间范围用和而非BETWEEN避免边界时间戳歧义Quality 192是关键Historian质量码标准中192代表Good128代表Uncertain0代表Bad。忽略此条件报表中会出现大量无效值。5.2 降频采样每5分钟取一个平均值适用于趋势图-- 对上述时间段数据按5分钟分组取平均值自动忽略Quality!192的点 SELECT DATEADD(MINUTE, (DATEDIFF(MINUTE, 0, Timestamp) / 5) * 5, 0) AS SampleTime, AVG(Value) AS AvgTemp, COUNT(*) AS SampleCount FROM [Historian].[dbo].[DataArchive] WHERE PointID (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName TANK_01.TEMP.PV) AND Timestamp 2024-05-01 00:00:00 AND Timestamp 2024-05-02 00:00:00 AND Quality 192 GROUP BY DATEADD(MINUTE, (DATEDIFF(MINUTE, 0, Timestamp) / 5) * 5, 0) ORDER BY SampleTime;性能提示Historian的DataArchive表是分区表按月此查询会自动命中2024年5月分区速度极快。若跨多月查询如一年数据需在WHERE中显式添加AND $PARTITION.HistPartitionFunction(Timestamp) IN (5,6,7,...)限定分区ID否则全表扫描。5.3 多点关联一次查询获取多个Tag的同期值用于对比分析-- 查询TANK_01.TEMP.PV和TANK_01.PRESS.PV在同一时间点的值取最近邻时间戳 SELECT t1.Timestamp, t1.Value AS TempValue, t2.Value AS PressValue, t1.EngUnits AS TempUnit, t2.EngUnits AS PressUnit FROM ( SELECT Timestamp, Value, EngUnits, ROW_NUMBER() OVER (ORDER BY ABS(DATEDIFF(SECOND, Timestamp, 2024-05-01 12:00:00))) AS rn FROM [Historian].[dbo].[DataArchive] WHERE PointID (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName TANK_01.TEMP.PV) AND Quality 192 AND Timestamp BETWEEN 2024-05-01 11:59:00 AND 2024-05-01 12:01:00 ) t1 CROSS JOIN ( SELECT TOP 1 Value, EngUnits FROM [Historian].[dbo].[DataArchive] WHERE PointID (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName TANK_01.PRESS.PV) AND Quality 192 AND Timestamp BETWEEN 2024-05-01 11:59:00 AND 2024-05-01 12:01:00 ORDER BY ABS(DATEDIFF(SECOND, Timestamp, 2024-05-01 12:00:00)) ) t2 WHERE t1.rn 1;逻辑说明此查询模拟DCS中“同一点时刻”概念。t1子查询找出离12:00:00最近的温度值t2子查询找出同一时段内离12:00:00最近的压力值CROSS JOIN将两者组合。适用于生成设备健康度快照。5.4 工程计算在SQL中直接实现温压补偿避免应用层计算-- 对TANK_01.TEMP.PV和TANK_01.PRESS.PV进行简单温压补偿计算假设公式Compensated Temp * (Press / 100) SELECT t1.Timestamp, t1.Value AS Temp, t2.Value AS Press, ROUND(t1.Value * (t2.Value / 100.0), 2) AS CompensatedValue FROM [Historian].[dbo].[DataArchive] t1 INNER JOIN [Historian].[dbo].[DataArchive] t2 ON t1.Timestamp t2.Timestamp AND t2.PointID (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName TANK_01.PRESS.PV) WHERE t1.PointID (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName TANK_01.TEMP.PV) AND t1.Quality 192 AND t2.Quality 192 AND t1.Timestamp 2024-05-01 00:00:00 AND t1.Timestamp 2024-05-02 00:00:00 ORDER BY t1.Timestamp;关键约束INNER JOINonTimestamp要求两Tag必须有完全相同的时间戳记录。Historian默认采集是异步的因此此查询仅适用于已做过“时间对齐”处理的场景如通过Historian的TimeSync功能或外部ETL。若需严格对齐应在Historian外用Python/Pandas做时间序列重采样。6. 备份与恢复一次误删点表后的30分钟灾难恢复实战去年在某化工厂项目A同学误操作在Configuration Manager中执行了“Delete All Points”导致2000个工艺点全部消失Web界面变空白客户生产报表中断。当时没有备份常规恢复手段失效。最终我们靠Historian底层机制在30分钟内完成了完整恢复。这件事让我养成了一个铁律每次点表变更前必须执行Export Points to XML并存档每次Historian服务重启后必须用SQL验证Points表行数。本章不讲理论只给你可抄的灾备脚本和验证清单。6.1 自动化备份脚本每天凌晨2点导出点表与数据库快照Historian自身不提供点表自动备份需结合Windows任务计划与SQL Server Agent。以下脚本整合了二者:: backup_historian.bat —— 保存在C:\HistorianBackup\ echo off set BACKUP_DIRC:\HistorianBackup set DATESTAMP%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2% set TIMESTAMP%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% set TIMESTAMP%TIMESTAMP: 0% :: 步骤1导出点表为XMLHistorian原生命令 C:\Program Files\GE Digital\Proficy Historian\Tools\HistorianConfigTool.exe /export /file %BACKUP_DIR%\Points_%DATESTAMP%_%TIMESTAMP%.xml /points :: 步骤2调用SQL Server备份假设实例名为HISTORIANDB sqlcmd -S SERVER01\HISTORIANDB -E -Q BACKUP DATABASE [Historian] TO DISK N%BACKUP_DIR%\HistorianDB_%DATESTAMP%_%TIMESTAMP%.bak WITH INIT, COMPRESSION :: 步骤3清理7天前的备份保留一周 forfiles /p %BACKUP_DIR% /s /d -7 /c cmd /c del path调度方法将脚本保存为backup_historian.bat在Windows任务计划中创建基本任务触发器设为“每天02:00”操作设为“启动程序”程序为cmd.exe参数为/c C:\HistorianBackup\backup_historian.bat关键设置在“常规”页签中勾选“使用最高权限运行”和“不管用户是否登录都要运行”。6.2 灾难恢复三步法从XML备份还原点表无需停服务当点表被误删Historian服务仍在运行此时不能停服务否则丢失实时数据。Historian支持热导入# 步骤1停止Historian采集服务非核心服务不影响Web/API Stop-Service -Name HistorianCollectorService*2022* -Force # 步骤2用HistorianConfigTool热导入XML服务不停仅暂停采集 C:\Program Files\GE Digital\Proficy Historian\Tools\HistorianConfigTool.exe /import /file C:\HistorianBackup\Points_20240501_020000.xml /points /force # 步骤3启动采集服务验证 Start-Service -Name HistorianCollectorService*2022* # 验证1分钟后查询[Points]表行数应与XML中Point节点数一致为什么不用Configuration Manager GUI导入GUI导入会锁定整个Historian配置期间所有Web请求、API调用均失败影响生产。HistorianConfigTool.exe命令行工具支持/force参数可覆盖现有点表且不中断服务。6.3 恢复后必做的四项验证缺一不可恢复不是点一下“导入成功”就完事。以下验证必须人工执行每一步都对应一个潜在故障点验证项执行命令/操作期望结果不通过意味着1. 点表数量校验SELECT COUNT(*) FROM [Historian].[dbo].[Points]与备份XML中Point标签总数一致XML导入不完整部分点名格式错误被跳过2. Tag状态检查在Web界面Configuration Points页筛选Status Connected≥95%的Tag状态为ConnectedSource地址批量错误或OPC Server未启动3. 数据连续性验证SELECT MIN(Timestamp), MAX(Timestamp) FROM [Historian].[dbo].[DataArchive] WHERE PointID IN (SELECT PointID FROM [Historian].[dbo].[Points] WHERE PointName LIKE TANK_%)时间范围应覆盖备份前最后采集时间数据归档表未同步需手动执行HistorianService.exe /reindex4. Web API连通性curl -v http://localhost:8080/historian/api/v1/points?pointNameTANK_01.TEMP.PV返回JSON包含PointName,Status,LastValueWebApp服务异常需检查web.config中DOTNET_ROOT路径从那以后我每次执行点表变更都强制走一遍这四步验证哪怕只是新增一个Tag。因为Historian的“点表”是数据链路的源头源头错了下游所有报表、报警、AI模型都是空中楼阁。希望帮到你。本文还有配套的精品资源点击获取