WINCC7.5 用按钮做画面切换,VBS报错

已锁定

小雨同学

  • 帖子

    27
  • 精华

    0
  • 被关注

    3

论坛等级:游士

注册时间:2012-06-11

黄金 黄金 如何晋级?

WINCC7.5 用按钮做画面切换,VBS报错

893

2

2022-01-22 17:28:59

画面切换是正常的,做了个输入输出域=1时,全局脚本VBS将数据写入表格。从画面编辑器单独运行这个画面不会报错。但是从项目管理器运行整个项目时切换画面,再输入输入输出域=1,全局脚本VBS就会报错。没有找到这个画面和控件。

Option Explicit
Function action

Dim sCon,conn,oRs,n,i,s1,oCom,strcn,z
Dim riqi,mazhi,qxlx,qxwz,ok
Dim MSFlexGrid1
Dim LocalBeginTime, LocalEndTime
Dim R_JC,Weight,R_FC,GBD
'以上均为标准


Dim J1 '定义 J1,这个 J1 的名称可以任意定义,为了方便对应 WINCC 中的变量,一般就设定为名称一样
Set J1 = HMIRuntime.Tags("Z1") 'PLC 中对应的变量在 WINCC 变量记录中的名称,这里是作为定时模式+手动控制,
J1.Read '读取 j1
   If J1.Read Then '如果 J1=1

'本段如果不需要在定时模式时要增加手动控制,可以删除,如果不用,则最后的 End if 也要删除
Set MSFlexGrid1 = HMIRuntime.Screens("NewPdl0").ScreenItems("sugar") '指定控件位置是画面 NewPdl0 中的sugar控件,名称是对的。
riqi=Now '当前的时间显示值,下面的程序就是把当前最新数据写入数据库并且在控件中显示出来
Dim name
Set name = HMIRuntime.Tags("nane1") '红色的 name 是变量记录中的 8 位字符变量,在这里就是产品编号名称,下面的 R1 等均是一样的含义
name.Read
Dim R1
Set R1 = HMIRuntime.Tags("L1")
R1.Read

Dim R2
Set R2 = HMIRuntime.Tags("L2")
R2.Read

Dim R3
Set R3 = HMIRuntime.Tags("L3")
R3.Read

Dim R4
Set R4 = HMIRuntime.Tags("L4")
R4.Read

Dim R5
Set R5 = HMIRuntime.Tags("L5")
R5.Read


          If name.Value = "" Then '如果输入的编号名称为空,则会显示 "信息录入未成功,请重新录入!" 程序完成

          Else '如果名称不为空,则把数据存入数据库
sCon="Provider=SQLOLEDB.1; Integrated Security=SSPI; Persist Security Info=False; Initial Catalog=test2;Data Source=DESKTOP-3HP9KJ5\WINCC"
'数据库名称 'WINCC 服务器名称
Set conn=CreateObject("ADODB.connection")
'建立一个数据库的实例
conn.connectionString=sCon
'按路径建立连接
conn.CursorLocation = 3
'update 时候锁定数据库
conn.Open
'打开数据库
Set oRs = CreateObject("ADODB.Recordset")
'数据库信息条目
Set oCom = CreateObject("ADODB.Command")
'数据库查询功能
oCom.CommandType = 1
'性能优化
Set oCom.ActiveConnection = conn
s1 ="insert into biao(DT,Name,B1,B2,B3,B4,B5) Values('"& riqi &"','"& name.Value &"','"& R1.Value &"','"& R2.Value &"','"& R3.Value &"','"& R4.Value &"','"& R5.Value &"')"
'表名称和列名称,在对应数据库中建立的名称 列对应变量记录中的变量名称(注意格式)
conn.Execute s1
conn.Close
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
 n= MSFlexGrid1.Rows
MSFlexGrid1.TextMatrix(n-1,0) = n-3
MSFlexGrid1.TextMatrix(n-1,1) = riqi '按照实际情况写入
MSFlexGrid1.TextMatrix(n-1,2) =name.Value
MSFlexGrid1.TextMatrix(n-1,3) = R1.Value
MSFlexGrid1.TextMatrix(n-1,4) = R2.Value
MSFlexGrid1.TextMatrix(n-1,5) = R3.Value
MSFlexGrid1.TextMatrix(n-1,6) = R4.Value
MSFlexGrid1.TextMatrix(n-1,7) = R5.Value

MSFlexGrid1.TopRow = MSFlexGrid1.Rows - 1 '移动到最后一行,显示当前最新数据行
End If


 Else
End If

End Function





WINCC7.5 用按钮做画面切换,VBS报错 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有31062条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。