WINCC7.5 控件Date and Time 运行 VBS脚本

已锁定

小雨同学

  • 帖子

    27
  • 精华

    0
  • 被关注

    3

论坛等级:游士

注册时间:2012-06-11

黄金 黄金 如何晋级?

WINCC7.5 控件Date and Time 运行 VBS脚本

1743

4

2022-01-13 10:33:19

SQL建了个表,然后在WINCC 7.5里面画面添加控件Date and Time 运行 VBS脚本报错。脚本编译正常。


VBS脚本:


Function Visible_Trigger(Byval Item)



Dim KJ1,KJ2,KJ3,KJ4,KJ5

Dim QR

Dim MSFlexGrid1

Dim LocalBeginTime,LocalEndTime,riqi

Dim oRs,oRs1,n,n1,i,z,s1,s11,oCom,oCom1,strcn,conn,pj

Dim zxy1

'查询当天全部数据,为标准


Set  MSFlexGrid1 = ScreenItems("sugar")  '对应表格控件名称

Riqi = Now

LocalBeginTime = Year(riqi) & "-" & Month(riqi) & "-" & Day(riqi) & " " & "00:00:00" 

LocalEndTime = Year(riqi) & "-" & Month(riqi) & "-" & Day(riqi) & " " & "23:59:59" 


s1 = "SELECT DT,Name,B1,B2,B3,B4,B5 FROM chengzhong WHERE DT BSTWEEN '" & LocalBeginTime & "'And'" & LocalEndTime & "'ORDER BY DT"

'S1 后面的内容要对应数据库中列的内容,后面的DT与前面的DT要名称一致,biao要对应数据库列表名称dbo后面的名称

Strcn = "Providor=SQLOLEDB.1;lntegrated Security=SSPI;Persist Security lnfo=False; lnitial Catalog=WEIHUABING; Data Source=.wincc"

                                                                      '这里要与数据库表名称一致,服务器一致

Set conn = CreateObject("ADODB.Connection")

conn.ConnectionString = strcn

conn.CursorLocation = 3

conn.Open


Set oRs = CreateObject("ADODB.Recordset")

Set oCom = CreateObject("ADODB.Command")

oCom.CommandType = 1

Set oCom.ActiveConnection = conn

oCom.CommandText = s1                          '执行检索功能

Set oRs = oCom.Execute

n = oRs.RecordCount                            '获得检索到的总数


'HMIRuntime.Tags("13").Write n


'定义在线表格属性


MSFlexGrid1.Clear

MSFlexGrid1.Rows = oRs.RecordCount+2

MSFlexGrid1.ColWidth(0) = 700               '第一列宽度设置    序号

MSFlexGrid1.ColWidth(1) = 2500              '第二列宽度设置    编号

MSFlexGrid1.ColWidth(2) = 1200              '第二列宽度设置    时间

MSFlexGrid1.ColWidth(3) = 1200

MSFlexGrid1.ColWidth(4) = 1200

MSFlexGrid1.ColWidth(5) = 1200             '第6列宽度设置,如果列数多则继续添加

MSFlexGrid1.ColWidth(6) = 1200

MSFlexGrid1.ColWidth(7) = 1200

MSFlexGrid1.RowHeight(0) = 600             '第一行高度设置

MSFlexGrid1.RowHeight(1) = 400


MSFlexGrid1.Row = 0

For z = 0 To 7                             '根据上面的列数改变

MSFlexGrid1.CellFontSize = 12               '字体大小

MSFlexGrid1.Col = z

MSFlexGrid1.Text = "位置统计表"

Next


MSFlexGrid1.MergeCells = 4                '相同内容合并单元格

MSFlexGrid1.MergeRow(0) = True           '合并单元格


MSFlexGrid1.Row = 1

For z = 0 To 5                            '根据上面的列数改变

MSFlexGrid1.Col = z

MSFlexGrid1.CellBackColor = vbCyan          '定义第二行颜色

Next


MSFlexGrid1.TextMatrix(1,0) = "序号"          '根据实际情况输入

MSFlexGrid1.TextMatrix(1,1) = "日期"  

MSFlexGrid1.TextMatrix(1,2) = "名称"  

MSFlexGrid1.TextMatrix(1,3) = "位置1(mm)"  

MSFlexGrid1.TextMatrix(1,4) = "位置2(mm)"  

MSFlexGrid1.TextMatrix(1,5) = "位置3(mm)"  

MSFlexGrid1.TextMatrix(1,6) = "位置4(mm)"  

MSFlexGrid1.TextMatrix(1,7) = "位置5(mm)" 



MSFlexGrid1.ColAlignment(0) = 4             '对齐方式,根据上面实际情况对应输入

MSFlexGrid1.ColAlignment(1) = 4

MSFlexGrid1.ColAlignment(2) = 4

MSFlexGrid1.ColAlignment(3) = 4             '对齐方式

MSFlexGrid1.ColAlignment(4) = 4

MSFlexGrid1.ColAlignment(5) = 4

MSFlexGrid1.ColAlignment(6) = 4

MSFlexGrid1.ColAlignment(7) = 4



'查询数据 插入在线表格对应位置


If (n>0) Then

        

        oRs.MoveFirst '移动到数据库检索结果的第一行

        i = 0

        Do While Not oRs.EOF '是否到记录末尾,循环填写表格

        n = n + 1 

        MSFlexGrid1.TextMatrix(i+2,0) = i          '根据上面实际情况对应输入

MSFlexGrid1.TextMatrix(i+2,1) = oRs.Field(0).Value

MSFlexGrid1.TextMatrix(i+2,2) = oRs.Field(1).Value

MSFlexGrid1.TextMatrix(i+2,3) = oRs.Field(2).Value

MSFlexGrid1.TextMatrix(i+2,4) = oRs.Field(3).Value

MSFlexGrid1.TextMatrix(i+2,5) = oRs.Field(4).Value

MSFlexGrid1.TextMatrix(i+2,6) = oRs.Field(5).Value

MSFlexGrid1.TextMatrix(i+2,7) = oRs.Field(6).Value



i = i+1

oRs.MoveNext

Loop

conn.Close

      MSFlexGrid1.TopRow =  MSFlexGrid1.Rows - 1  '移动到最后一行

Else

MsgBox "您所查询的时间段内没有数据....."

oRs.Requery

conn.Close

End If



End Function


运行的时候出现错误。



script debugger could not be started!

脚本调试器无法启动!


出现ODBC也有问题!

我去检查ODBC!






还是出现上面的错误!!!!!

再去检查SQL SERVER

发现WINCC的没有打开!


然后打开WINCC的服务。


还是报上面的错误!!

求助!!!!!!!!!



s1 = "SELECT DT,Name,B1,B2,B3,B4,B5FROM Table_1 WHERE DT BETWEEN '" &LocalBeginTime& "' and'" &LocalEndTime& "'ORDER BY DT"

'S1 后面的内容要对应数据库中列的内容,后面的 DT 与前面的 DT 要名称一致,biao 要对应数据库列表名称 dbo.后面的名称


'这里要与数据库表名称一致,服务器一致


这部分改了以后,没有出现上面的报错。

Strcn = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=false;Data Source=DESKTOP-RP8EOKV\WINCC>;Initial Catalog = test"



又出现SQL SERVER不存在或拒绝访问!

怎么解决??

WINCC7.5 控件Date and Time 运行 VBS脚本 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有31074条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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