【问题标题】:PI DataLink Add-In Not Loaded by Scheduled Task计划任务未加载 PI DataLink 加载项
【发布时间】:2019-10-03 09:13:40
【问题描述】:

我有一个带有一些 VBA 代码的 Excel 工作簿,它使用 OSIsoft DataLink 插件的 PISampDat 函数来提取多列数据。工作簿由批处理文件运行,而批处理文件又由 Windows 计划任务触发。如果我手动运行工作簿或批处理文件,它会按预期工作,但如果我使用计划任务,则会收到以下错误:

1004: 无法运行宏“PISampDat”。宏可能不可用 在此工作簿中或所有宏都可能被禁用。

“PISampDat”不是宏,而是插件中的函数名称。代码如下:

ThisWorkbook.Sheets(SheetName).Range(Cells(5, PTTagNamesCol), Cells(RangeRowCount, PTTagNamesCol)) = Application.Run("PISampDat", TagName, EDate, SDate, "5m", 0, PiServer)

当它由计划任务运行时,Excel 似乎没有加载 DataLink 加载项,因此无法识别函数名称。

更多细节:

  • 以管理员用户身份运行的计划任务对所有文件具有权限 和涉及的文件夹
  • “无论用户是否登录都运行”选项 选择了
  • 已选择“以最高权限运行”选项
  • 为 Windows Server 2012 R2 配置
  • “程序/脚本”选项仅包含批处理文件名
  • “开始于(可选)”选项仅包含批处理文件路径

知道如何解决这个问题吗?

【问题讨论】:

标签: excel vba osisoft


【解决方案1】:

根据您计划任务的配置,它可能以系统用户身份运行,而用户配置文件无权访问正确的 Excel 加载项。也可能是该任务作为后台任务运行,其中线程无法访问 UI 内容……有很多事情,而且可能很复杂。

我认为您可能需要退后一步,问问自己您要实现什么目标? 从 PI System 中使用数据的方法有很多种,这实际上取决于您要执行的操作。您可以将 .NET 代码与 AF SDK 一起使用,这比 excel 更容易自动化。您还可以使用带有 PI ODBC 驱动程序的 ODBC 客户端从 PI System 中查询数据,这也更容易实现自动化。您还可以使用 PI System 的 powershell 脚本......很多东西。查看PI Developer Technologies,您可能会发现另一种更简单的方法来提取数据。

一旦您在平面文件(例如 csv)中获取数据,您就可以轻松地在 excel 中使用它 数据刷新,与 powerbi 相同。

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    相关资源
    最近更新 更多