中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

工控软件

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 工控软件 → 浏览主题: 【话题】}wincc中如何通过全局脚本VBS读取“画面中的对象”的值??!!(20171108)
发表新帖 回复该主题
回帖:3个,阅读:5125 [上一页] [1] [下一页]
* 帖子主题:

【话题】}wincc中如何通过全局脚本VBS读取“画面中的对象”的值??!!(20171108)

分享到
414
13260796055
文章数:20
年度积分:50
历史总积分:414
注册时间:2017/3/13
发站内信
发表于:2017/11/7 23:03:56
#0楼
   如:在wincc画面中,插入一个输入/输出域,对象名称为text,画面运行后输入“1234567”,通过全局脚本VBS怎么读到“1234567”,并将其值通过下面所属方法写到数据库表格中!请各位大神赐教,谢谢!!

   我现在写的一个脚本可以读到PLC变量的值并将其写到数据库表格中,如PLC输入值标签名称为JKTDH,运行后PLC所对应值域的值为9876543,通过以下脚本可以将JKTDH这个标签值9876543写到对应的数据库表格中!以下功能的代码实现的功能:通过改变按钮“ahuo_sta1”的状态,将PLC标签"JKTDH"的值9876543写到SQL2005数据库表名为WaterPercent,列名为tdh所对应的表格中;
Dim tdh
Set tdh = HMIRuntime.Tags("JKTDH")
Dim fahuo_sta1
Set fahuo_sta1 = HMIRuntime.Tags("fahuo_sta1")

database = "fysystem"
server="JH1-PC\WINCC"
uid="jm"
pwd="12345678"
conn = "Provider = SQLOLEDB.1;DRIVER = SQL SERVER;SERVER="&server&";DATABASE="&database&";UID="&uid&";PWD="&pwd&""
Set db = CreateObject( "ADODB.Connection" )
Set restemp = CreateObject( "ADODB.Recordset" )
db.connectionstring = conn
db.Open

If fahuo_sta1.Read = 1 Then

sqlstr = "INSERT INTO WaterPercent(tdh) VALUES('"&tdh.read&"')"

db.execute(sqlstr)

Else
End If
db.close

   请问,如何用类似的定义方法将“画面中的对象”手动输入的1234567写入对应的表格,其属性的定义是什么格式!

   请大神们赐教,非常感谢!!
[此贴子已经被jint于2017/11/9 9:03:40编辑过]
20分悬赏
8158
fujifa
文章数:2904
年度积分:91
历史总积分:8158
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2017/11/8 15:09:26
#1楼
以下是引用132607960552017/11/7 23:03:56的发言:
   如:在wincc画面中,插入一个输入/输出域,对象名称为text,画面运行后输入“1234567”,通过全局脚本VBS怎么读到“1234567”,并将其值通过下面所属方法写到数据库表格中!请各位大神赐教,谢谢!!

   我现在写的一个脚本可以读到PLC变量的值并将其写到数据库表格中,如PLC输入值标签名称为JKTDH,运行后PLC所对应值域的值为9876543,通过以下脚本可以将JKTDH这个标签值9876543写到对应的数据库表格中!以下功能的代码实现的功能:通过改变按钮“ahuo_sta1”的状态,将PLC标签"JKTDH"的值9876543写到SQL2005数据库表名为WaterPercent,列名为tdh所对应的表格中;
Dim tdh
Set tdh = HMIRuntime.Tags("JKTDH")
Dim fahuo_sta1
Set fahuo_sta1 = HMIRuntime.Tags("fahuo_sta1")

database = "fysystem"
server="JH1-PC\WINCC"
uid="jm"
pwd="12345678"
conn = "Provider = SQLOLEDB.1;DRIVER = SQL SERVER;SERVER="&server&";DATABASE="&database&";UID="&uid&";PWD="&pwd&""
Set db = CreateObject( "ADODB.Connection" )
Set restemp = CreateObject( "ADODB.Recordset" )
db.connectionstring = conn
db.Open

If fahuo_sta1.Read = 1 Then

sqlstr = "INSERT INTO WaterPercent(tdh) VALUES('"&tdh.read&"')"

db.execute(sqlstr)

Else
End If
db.close

   请问,如何用类似的定义方法将“画面中的对象”手动输入的1234567写入对应的表格,其属性的定义是什么格式!

   请大神们赐教,非常感谢!!
[此贴子已经被jint于2017/11/8 8:58:46编辑过]

手动输入不就是使用IO输入输出域来实现的么,IO域么总要链接内部变量的,然后将这段代码写在域的VBS动作里就可以了。

HAVE FUN!
414
13260796055
文章数:20
年度积分:50
历史总积分:414
注册时间:2017/3/13
发站内信
发表于:2017/11/8 16:18:00
#2楼
   I/O域链接的变量有外部变量,也有当前画面的变量;我的代码读写的是I/O域链接的外部变量,我需要读写的是当前画面的变量!
[此贴子已经被作者于2017/11/8 16:19:54编辑过]
8158
fujifa
文章数:2904
年度积分:91
历史总积分:8158
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2017/11/9 8:31:27
#3楼
以下是引用132607960552017/11/8 16:18:00的发言:
   I/O域链接的变量有外部变量,也有当前画面的变量;我的代码读写的是I/O域链接的外部变量,我需要读写的是当前画面的变量!
[此贴子已经被作者于2017/11/8 16:19:54编辑过]

ADO编程外部变量的写入操作和内部变量的写入操作是一样的,一样的,一样的!
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003