Python-操作WinCC历史数据库

源代码:


import win32com.client


def conn_mysql():
    #DSN = r'Provider=WinCCOLEDBProvider.1;Catalog=CC_test2_20_03_31_16_25_08R;Data Source=ZJF02\WINCC;UID=sa;PWD=root'
    DSN= r"DRIVER={MySQL ODBC 8.0 Unicode Driver}; SERVER=localhost; DATABASE=test; USER=root; PASSWORD=root;OPTION=3"

    #select
    Rs = win32com.client.Dispatch(r"ADODB.Recordset")
    Rs.ActiveConnection = DSN
    Rs.Source = r"select * from testtable"
    Rs.CursorType = 0
    Rs.CursorLocation = 2
    Rs.LockType = 1
    Rs.Open()
    numRows = 0
    Rs.MoveFirst()
    while not Rs.EOF:
    #    print r'id:',Rs.Fields.Item("id").Value.encode('gbk')
    #      if Rs.Fields.Item("name").Value != None:
    #         print r'  name:',Rs.Fields.Item("name").Value.encode('gbk')
    #     numRows+=1
    #     Rs.MoveNext()
    # print 'Total Rows:',numRows

        a = str(Rs.Fields.Item(0))+str(Rs.Fields.Item(1))+str(Rs.Fields.Item(2))+'\n'
        # with open('a.txt', 'a', encoding='utf-8') as f:
        #     f.write(a)
        print(a)
        Rs.MoveNext()

def conn_wincc():
    runTime = win32com.client.Dispatch(r'CCHMIRuntime.HMIRuntime')
    catalog = runTime.Tags("@DatasourceNameRT").Read()  # 获取数据库名称
    # dataSource = runTime.Tags("@LocalMachineName").Read()  # 获取计算机名称
    return catalog

def test():
    DSN = r'Provider=WinCCOLEDBProvider.1;Catalog=CC_data_tes_20_04_22_17_20_56R;Data Source=ZJF02\WINCC;UID=administrator;PWD=kobe0820'
    Rs = win32com.client.Dispatch(r"ADODB.Recordset")
    Rs.ActiveConnection = DSN
    #Rs.Source = r"select * from testtable"
    Rs.Source = r"Tag:R,('pva\t1'),'2020-03-31 10:36:30.870','2020-07-01 04:21:46.990'"
    Rs.CursorType = 0
    Rs.CursorLocation = 3
    Rs.LockType = 1
    Rs.Open()
    numRows = 0
    Rs.MoveFirst()
    #print(Rs.FieldCount)
    while not Rs.EOF:
        print(Rs.Fields.Item(0))
        Rs.MoveNext()

if __name__ == '__main__':
    #print(conn_wincc())
    #conn_mysql()
    test()


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kobe_OKOK_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值