找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
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") '指定控件位置是画面 0 中的 MSFlexGrid1 控件
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
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
"NewPdl0"是在主画面里调用的吧,这样的话你的全局脚本定位表格位置这里就要改了,参考以下连接
HMIRuntime.Screens("主画面.画面窗口1:NewPdl0")ScreenItems("sugar")
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!