数据库WinCC结构变量枚举使用分享

分享到:
322
下一篇 >

大虾分享:

使用ADO读取WinCC组态数据库获取结构变量信息,以下代码在WinCC V6.0里测试通过

在画面添加一个按钮,两个微软ComboBox(Combo1、Combo2)

在按钮的鼠标事件里写如下VB代码

Dim cn,rs,rs1,sCon,DSN

DSN=Replace(HMIRuntime.Tags("@DatasourceNameRT").Read,"R","")

sCon="Provider=sqloledb;Integrated Security=SSPI;"

sCon=sCon & "Data Source=127.0.0.1WinCC;"

sCon=sCon & "Initial Catalog=" & DSN

Set cn=CreateObject("ADODB.Connection")

Set rs=CreateObject("ADODB.RecordSet")

Set rs1=CreateObject("ADODB.RecordSet")

cn.ConnectionString=sCon

cn.CursorLocation=3

cn.Open

rs.Open "Select * From MCPTVARIABLETYPE where VARIABLETYPECLASS = 'STRUCTURE'", cn,1,3,-1

rs.MoveFirst 

ScreenItems("Combo1").Clear

Do While Not rs.EOF 

ScreenItems("Combo1").AddItem rs.Fields(1).Value

rs.MoveNext

Loop

ScreenItems("Combo1").ListIndex = 0

rs1.Open "Select * From MCPTVARIABLEDESC As a INNER JOIN MCPTVARIABLETYPE As b ON b.VARIABLETYPENAME ='" & _

ScreenItems("Combo1").Text & "' And a.VARIABLETYPEID = b.VARIABLETYPEID", cn, 1, 3, -1

rs1.MoveFirst 

ScreenItems("Combo2").Clear

Do While Not rs1.EOF

ScreenItems("Combo2").AddItem rs1.Fields(5).Value

rs1.MoveNext

Loop

ScreenItems("Combo2").ListIndex = 0

rs.Close

rs1.Close

cn.Close

Set rs=Nothing

Set rs1=Nothing

Set cn=Nothing

在Combo1的Click事件里写如下VB代码

Dim cn,rs1,sCon,DSN

DSN=Replace(HMIRuntime.Tags("@DatasourceNameRT").Read,"R","")

sCon="Provider=sqloledb;Integrated Security=SSPI;"

sCon=sCon & "Data Source=127.0.0.1WinCC;"

sCon=sCon & "Initial Catalog=" & DSN

Set cn=CreateObject("ADODB.Connection")

Set rs1=CreateObject("ADODB.RecordSet")

cn.ConnectionString=sCon

cn.CursorLocation=3

cn.Open

rs1.Open "Select * From MCPTVARIABLEDESC As a INNER JOIN MCPTVARIABLETYPE As b ON b.VARIABLETYPENAME ='" & _

ScreenItems("Combo1").Text & "' And a.VARIABLETYPEID = b.VARIABLETYPEID", cn, 1, 3, -1

rs1.MoveFirst 

ScreenItems("Combo2").Clear

Do While Not rs1.EOF

ScreenItems("Combo2").AddItem rs1.Fields(5).Value

rs1.MoveNext

Loop

ScreenItems("Combo2").ListIndex = 0

rs1.Close

cn.Close

Set rs1=Nothing

Set cn=Nothing

游侠:

虽然功能不太理解,但还是精华了。

大虾:

这段代码功能就是,点击按钮在Combo1里列出项目里定义的结构变量类型,在Combo1里选择结构变量类型,在Combo2里列出该结构变量类型下定义的变量名称。

这个是高塍同志在峰会提出的,他在项目里使用了结构变量,并在脚本里访问结构变量,不同的项目使用不同数量的结构变量,这样在脚本里就需要大量的人工输入结构变量名称。

游侠:

运行时,浏览结构变量名称干啥?

大虾:

应该就是不用在脚本里输入结构变量名称,做到多项目代码共用,详情还是要高塍同志来解释。

斑竹:

奇侠同志感谢你,上次峰会我有个不是很小的项目脱不开身,峰会我让我上司兼朋友去参加的,机会难得承蒙西门子盛情不忍心弗其好意范冒名顶替的戒条了。我会让他给你回帖的,他管的项目多所以对项目的结构化模块化,标准化,应用层面傻瓜化*舍得花功夫,弄得我反而不适应甚至有些排斥,可能处的位置不一样吧!特意给你献花一朵,并给大家献花一朵。不是modubus通讯实数不一致这个贴我还不知道这个插曲,再次向你致敬!


你可能感兴趣: 工控菜鸟园 自动化系统 WinCC Panel WinCC
无觅相关文章插件,快速提升流量