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()
您可以使用proficy iHistorian附带的oledbapi,请参阅manual of iHistorian。在手册中,您可以找到可用的表和SQL代码的一些示例。检查API是否正确安装了iHistorian附带的“Historian Interactive SQL”程序。在
我使用了python包PyADO来连接到oledbapi(从GitHub Gist获得,还需要包'win32com'和'pythoncom')。该模块在PyPi上不可用,所以只需下载它,提取它并将其放入“site packages”文件夹(或您当前的工作目录)。代码中有一些错误,请在'皮亚多.py'将“不等于”的所有“<;>符号替换为”!='. 对于python3的用法,还将所有print语句从“print blablabla”更新为“print(blablabla)”。为了提取数据,以下内容就足够了(我包括了“prettytable”以获得数据的适当打印):
导致:
^{pr2}$我还试图使用包'adodbapi',但是我不能使它工作。ODBC似乎根本不适用于iHistorian,这使得包“pyodbc”也不适合于此。如果有人有一个解决方案,用一个维护良好的python包连接到oledbapi,我很乐意听到。在
您可能需要解决与GE Historian的REST API接口与Python的接口。这里有一个公共链接 Historian API documentation for Version 5.5
它仍然适用于最新版本,但是安装iso也有最新的restapi文档(以防这个URL过期)。如果你的客户端语言是灵活的,GE历史学家也有C,C++,VC++,VC++ 6库和例子。您可以通过在Historian安装期间从客户端工具安装Historian API SDK来找到它们。它们将位于C:\Program Files\Proficy\Proficy Historian\x86\api\
相关问题 更多 >
编程相关推荐