您可以使用 proficy iHistorian 中包含的 OLE DB API,请参阅iHistorian 手册。在手册中,您可以找到有关 SQL 代码的可用表和一些示例。使用 iHistorian 附带的“Historian Interactive SQL”程序检查 API 是否正确安装。
我使用了 python 包“ PyADO ”来连接到 OLE DB API(从GitHub Gist得到这个,也需要包“win32com”和“pythoncom”)。该模块在 PyPi 上不可用,因此只需下载它,将其解压缩并将其放在“site-packages”文件夹(或您当前的工作目录)中。代码中存在一些错误,通过将“不等于”的所有“<>”符号替换为“!=”来修复“PyADO.py”文件中的错误。对于 python 3 用法,还将所有打印语句从“print blabla”更新为“print(blabla)”。为了提取数据,以下内容就足够了(为了获得像样的数据打印,我包含了“漂亮的”):
import PyADO
from prettytable import PrettyTable
conn = PyADO.connect(None,host='IHISTORIAN_SERVER_NAME',user='USERNAME',password='PASSWORD',provider='iHOLEDB.iHistorian.1')
curs = conn.cursor()
curs.execute("SELECT timestamp, value, quality, tagname FROM ihrawdata WHERE samplingmode=rawbytime AND timestamp>='01-Mar-2018 13:58' AND timestamp<='01-Mar-2018 14:30' AND (tagname=SOMETAG OR tagname=OTHERTAG)")
result = curs.fetchall()
descr = curs.description
header = [i[0] for i in descr]
table = PrettyTable(header)
for row in result:
table.add_row(row)
print(table)
curs.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
导致:
+---------------------------+--------------------+------------------+--------------+
| timestamp | value | quality | tagname |
+---------------------------+--------------------+------------------+--------------+
| 2018-03-01 13:58:15+00:00 | -4.422495365142822 | Good NonSpecific | SOMETAG |
| 2018-03-01 13:59:15+00:00 | -3.046903133392334 | Good NonSpecific | SOMETAG |
| 2018-03-01 13:58:00+00:00 | 61.07942581176758 | Good NonSpecific | OTHERTAG |
| 2018-03-01 13:59:00+00:00 | 60.99810791015625 | Good NonSpecific | OTHERTAG |
| 2018-03-01 14:00:00+00:00 | 62.58036422729492 | Good NonSpecific | OTHERTAG |
+---------------------------+--------------------+------------------+--------------+
Run Code Online (Sandbox Code Playgroud)
我也尝试使用包“ adodbapi ”,但我无法让它工作。似乎 ODBC 根本不适用于 iHistorian,这使得包 'pyodbc' 也不适合于此。如果有人有一个解决方案可以使用维护良好的 python 包连接到 OLE DB API,我会很高兴听到它。
您可能需要解决通过 Python 连接 GE Historian 的 REST API 接口的问题。这是5.5 版 Historian API 文档的公共链接
它仍然适用于最新版本,但安装 iso 还具有最新的 REST API 文档(以防此 URL 已过时)。如果您的客户端语言灵活,GE Historian 还提供 C、C++、VC++ 和 VC++6 库和示例。您可以在 Historian 安装期间通过客户端工具安装 Historian API SDK 来找到它们。它们将位于 C:\Program Files\Proficy\Proficy Historian\x86\api\
| 归档时间: |
|
| 查看次数: |
3813 次 |
| 最近记录: |