python能和wincc一起用_《Python通过WebService接口查询WinCCOA服务器的数据》
Python 作为功能强大的语言在很多领域都已经有所应用,在做数据分析或机器学习方面应用也比较多。而WinCC OA通过Reporting Manager提供了一种WebService接口,给第三方提供数据。第三方软件或程序,如:Python,可以方便的通过这个WebService 接口读取到WinCCOA的实时和历史数据,从而进一步充分利用SCADA的数据。下面给大家一个Python通过WebS
Python 作为功能强大的语言在很多领域都已经有所应用,在做数据分析或机器学习方面应用也比较多。
而WinCC OA通过Reporting Manager提供了一种WebService
接口,给第三方提供数据。
第三方软件或程序,如:Python,可以方便的通过这个WebService 接口读取到WinCC
OA的实时和历史数据,从而进一步充分利用SCADA的数据。
下面给大家一个Python通过WebService接口查询WinCC OA实时数据的简单的例子参考,可以酌情修改适应自己的应用:
# -*- coding: utf-8 -*-
#需要检查Python是否已安装了suds库
from suds.client import Client
# Reporting manager 需要在WinCC OA中启动
#Reporting manager 的使用和配置的具体内容请参考
#WinCC OA在线帮助
my_url="http://localhost:8080/?wsdl"
#webService 读取
#url:为webservice的地址
#data:为需要查询的数据
def wsQuery(url,data):
client =
Client(url)#创建一个webservice接口对象
#具体可以根据wsdl文件中描述的函数列表,灵活使用具体的服务调用
res=client.service.dpQuery(data)
res
#res[2][2][0] #[2][2][0] is dp name
#res[2][2][2] #[2][2][1] is
value
if(len(res)> 2):
for i in
range(0, len(res[2])):
#打印查询结果
print str(res[2][i][0]) + '=' +
str(res[2][i][1])
else:
#如果没有查到数据
"no data returned"
if __name__
=='__main__':
#'Ex*': 返回所有以Ex打头的变量
#关于通配符的使用以及
SELECT 查询语法可以参考WinCC OA的在线帮助。
wsQuery(my_url,"SELECT '_online.._value' FROM 'Ex*.'")
注:
其中WinCC OA 返回给 Python的数据, 打印出来格式如下:
(returnQueryValueList){
errorCode = 0
errorText = None
table[] =
(QueryValue){
column1 = "System1:ExampleDP_Arg1."
column2 = 4.0
column3 = ""
column4 = ""
column5 = ""
column6 = ""
column7 = ""
},
(QueryValue){
column1 = "System1:ExampleDP_Arg2."
column2 = 50.0
column3 = ""
column4 = ""
column5 = ""
column6 = ""
column7 = ""
},
…….
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)