如何从资料库中读取资料并在WinCC的画面中显示

请教各位专家,我需要从SQL的PW_USER 的Table 中根据NAME栏的数值取出GRPID的数值,并根据GRPID的值给一个内部变量赋值:具体一点就是,在PW_USER Table中,有一栏的信息是Name对应的数值时“a”,GRPID对应的数值是 1000,当我在WinCC中用用户名“a”登陆时,可以取得GRPID 的值,这个值可以通过一个内部变量在WinCC中显示出来,不知道该如何下手,谢谢!

最佳答案

GRPID仅仅是用户所在组代表的ID,意义不是很大,一般去用户组比较有意义。
 这是我以前用的VBS脚本,稍微改了一下。
 Dim oConn,oRs,strConn
 '********************创建COM对象************************
 Set oConn=CreateObject("ADODB.Connection")
 Set oRs=CreateObject("ADODB.RecordSet")
 '*********************读取DSN并连接数据库************************
 Dim DSN
 DSN = HMIRuntime.Tags("@DatasourceNameRT").Read
 If Len(DSN)<0 Then Exit Sub
 DSN = Mid(DSN,1,Len(DSN)-1)
 'HMIRuntime.Trace "DSN : " & DSN & vbCrLf
 strConn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=.\WINCC;Initial Catalog='" & DSN & "';"
 HMIRuntime.Trace strConn & vbCrLf
 oConn.Open strConn
 '*********************获取用户所在用户组名************************
 Dim strSQL
 strSQL="SELECT NAME FROM PW_USER WHERE ID IN (SELECT GRPID FROM PW_USER WHERE NAME = '" & HMIRuntime.Tags("@CurrentUser").Read  &"')"
 HMIRuntime.Trace "strSQL : " & strSQL & vbCrLf
 oRs.Open strSQL,oConn,1,1
 If Not oRs.eof Then
  MsgBox oRs("NAME")
   'HMIRuntime.Tags("GRPNAME").Write  oRs("NAME").Value
 End If
 '*********************卸载COM对象************************
 oRs.Close
 Set oRs = Nothing
 oConn.Close
 Set oRs = Nothing

提问者对于答案的评价:
非常感谢!你太强了!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc274472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • 两台电脑的wincc项目文件同步

    项目中经常有2台电脑作为上位机,在组态时通常是先做好一台,然后复制到另一台电脑运行即可,我的问题是:是否可通过一条指令实现两台电脑的wincc项目文件同步,省去文件拷来拷去。请教大…

    SIMATIC WinCC 2021年7月5日
  • wincc7.3 运行一段时间后,提示无法启动基本应用程序

    系统是win7专业版,wincc装的是7.3.0.8的,使用一段时间后,大约半年,每天都在使用的,今天突然开不了项目了,授权是正常的。具体版本和提示信息请看图 问题补充:新建项目也…

    2017年6月9日
  • WINCC 7.0 报警和语言问题

    各位高手,我现在有两个问题高分求教?1、wincc 7.0 如何使用报警控件,即当以变量为真时,触发一报警。2、我在Graphics Designer…

    SIMATIC WinCC 2019年6月11日
  • 报警器信号分配 ,试图执行的操作不被支持

    前两天因为取消了WINCC工程文件共享,造成打开wincc项目时提醒用户没有执行该操作的权限,再重复共享后,工程可以打开了,但是,报警器信号分配却无法打开 ,提示,试图执…

    SIMATIC WinCC 2021年7月5日
  • HMI UDT数据类型使用

    在项目库新建HMI UDT数据类型后,在变量表里没有新建的类型。请问需要怎么给变量分配项目库里新建的数据类型?希望能讲详细点,谢谢!附图如下: 问题补充:修改为PLC变量…

    2021年7月5日
  • wincc授权如何安装

    wincc运行一段时间后就显示授权已过期。 我下了一些授权,其中有一个好几百个授权的合集,是一个.exe的应用程序,里面有不少V6.2的授权,但我不知道如何安装。在win…

    SIMATIC WinCC 2019年6月11日
  • WINCC如何实现风机动态旋转画面

    界面上有3个风机,每个风机做了10个图片,风机状态反馈运行时,10个画面形成一动态风机旋转画面,请教如何处理呢? 最佳答案 参考:http://www.ad.siemens.com…

    SIMATIC WinCC 2019年6月11日
  • WINCC,WINAC,WINAC之间的区别和联系

    如题,三者各是什么,之间的关系? 问题补充:写错了,是WINAC,WINCC,WINLC 最佳答案 通俗点说,WINCC只是个触摸屏的安装软件,而WINAC是软件性质的PLC,可以…

    SIMATIC WinCC 2019年6月11日
  • WINCC7.0SP3和SP2

    请教各位大侠1,WINCC7.0SP3完全版开发的程序在WINCC7.0SP2运行版上可否使用?如果不能该咋办?2,如果同是运行版,SP2和SP3的授权有区别么,订货号一样么?3,…

    SIMATIC WinCC 2018年12月7日
  • Wincc flexible项目如何传输到不同profinet地址的面板里?

    面板损坏,已经换新的,但由于没有之前这个项目的备份,用的另外一台的项目,但这两台所使用的profinet地址不一致,我如何才能将已有项目上传到这台新的面板?直接上传是否会和PLC通…

    SIMATIC WinCC 2017年6月27日