wincc 日报表(带注释)

1.先点VB许可注册MSFLEXGRID这个控件,然后再解压baobiao这个文件。
2.打开baobiao项目,将计算机名改为本机计算机名,就可以运行项目
3.在全局脚本里建立起与数据库的连接,通过定时整点触发脚本,把变量写到数据库。WINCC里全局脚本触发定时器设定是每小时整点触发。
4.在月,年,班月,班年报表画面属性里,定义了打开画面执行的VB程序,用于显示选择年月日,以及画面其他显示,比如记录的条数,系统时间
5.在主画面,第一次运行时要按“添加数据库”按钮,这样就在SQL2005里建立baobiao1数据库,打开SQL Server Management Studio,点Connect,在Databases目录下可以看到baobiao1数据库文件,在tables下面有建立好的ribao表,打开表,在Columns里可以看到在WINCC里建立的变量。如果不需要做报表记录,点“分离数据库”旋钮。

6.在日报表中,显示的列数为8列,编号0-7,显示的行数为oRs.Recordcount+6,也就是查询到的记录数+6,第一行用来显示报表标题,第二行显示“编号”,“日期”,一直到“速度”。

从第三行开始显示查询到的记录,包括记录的编号,记录时间,记录值。oRs.Recordcount+3行显示最大值,oRs.Recordcount+4行显示最小值,oRs.Recordcount+5显示平均值,oRs.Recordcount+2用来显示查到的每个记录总和,程序里注释掉了,就没显示。
7.统计查询记录最大值,最小值,平均值是在SQL数据库里完成的,通过max,min,avg函数完成的
8. 将第一行8列合为一列
MSFlexGrid1.Row = 0’选中第一行。注意第一行,或者是第一列都从0开始
For z = 0 To 7
MSFlexGrid1.Col = z
MSFlexGrid1.Text = “R980履带式布料机日报表"通过FOR,NEXT操作,将8列内容都显示为"R980履带式布料机日报表”

Next
MSFlexGrid1.MergeCells = 4设置一个值4表明如何及何时将有相同内容的记录进行合并
MSFlexGrid1.MergeRow(0) = True设置将0行内容合并
9. MSFlexGrid1.Rows = oRs.RecordCount + 6’显示的行数为查询到数据数目+6
MSFlexGrid1.ColWidth(0) = 800’第一列宽度
MSFlexGrid1.ColWidth(1) = 2100’第二列宽度
MSFlexGrid1.ColWidth(2) = 1000’第三列宽度
MSFlexGrid1.ColWidth(3) = 1000’第四列宽度
MSFlexGrid1.ColWidth(4) = 1000’第五列宽度
MSFlexGrid1.ColWidth(5) = 1000’第六列宽度
MSFlexGrid1.ColWidth(6) = 1000’第七列宽度
MSFlexGrid1.ColWidth(7) = 1000’第八列宽度
MSFlexGrid1.TextMatrix(1, 0) = "编号"设置某个选定行,列的单元的文本内容
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设置当前列的对齐方式
For i = 1 To oRs.RecordCount第一列显示每条记录编号
MSFlexGrid1.TextMatrix(i + 1, 0) = i
Next
10. Sql = “SELECT CONVERT(char(19), riqi, 20) AS riqi, yali, wendu, liuliang, zhongliang, dianya, sudu FROM ribao WHERE riqi BETWEEN '” & BeginDate & “’ and’” & EndDate & “'ORDER BY riqi” SELECT CONVERT(char(19), riqi, 20) AS riqi,其中CONVERT(CHAR(19), CURRENT_TIMESTAMP, 20)为定义的显示日期格式,如2006-02-22 16:26:08。按照起始,结束时间查询记录。Select From,为查询语句标准格式,FROM后面是表名,本例表名为ribao

sql1 = “select avg(yali)as ylp,avg(wendu)as wdp,avg(liuliang)as llp,avg(zhongliang)as zlp,avg(dianya)as dyp,avg(sudu)as sdp,min(yali)as ylx,min(wendu)as wdx,min(liuliang)As llx,min(zhongliang)As zlx,min(dianya)As dyx,min(sudu)As sdx,max(yali)As yld,max(wendu)As wdd,max(liuliang)As lld,max(zhongliang)As zld,max(dianya)As dyd,max(sudu)As sdd from ribao where riqi between '” & BeginDate & “’ and’” & EndDate & "'"数据库支持SQL查询语言,用函数AVG,MIN,MAX对列求平均,最小,最大值。
11.从WINCC访问sql2005数据库步骤:
1) 创建一个到数据库的 ADO 连接
2) 打开数据库连接
3) 创建ADO记录集
4) 从记录集提取你想要的数据,在表格显示出来
5) 关闭记录集
6) 关闭连接
ADO有三个主要对象,connection,Recordset,Command,通过这三个对象完成对数据库操作
strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=baobiao1;Data Source=.\wincc"创建一个ADO连接,连接运行数据库baobiao1
Set conn = CreateObject(“ADODB.Connection”)创建ADO连接对象,对数据库操作
conn.ConnectionString = strcn
conn.CursorLocation = 3
conn.Open 打开数据库连接

Set oRs = CreateObject(“ADODB.Recordset”)读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。ADO连接创立后,就可以创建一个ADO记录集了。

Set oCom = CreateObject("ADODB.Command")创建一个ADO.Command对象。该查询用于取回数据,此数据将以一个 RecordSet 对象返回。这意味着被取回的数据能够被 RecordSet 对象的属性、集合、方法或事件进行操作
oCom.CommandType = 1返回一个 Command 对象的类型
Set oCom.ActiveConnection = conn返回包含了定义连接或 Connection 对象的字符串。
oCom.CommandText = Sql设置或返回包含提供者(provider)命令的字符串

Set oRs = oCom.Execute Execute 是方法,执行 CommandText 属性定义的Sq1定义查询、SQL 语句或存储过程,是按时间条件查询到的riqi,yali,wendu, liuliang, zhongliang, dianya, sudu记录值
n = oRs.RecordCount’查询到的记录数目
Text2.Text = n
Set oCom1 = CreateObject(“ADODB.Command”)
oCom1.CommandType = 1’ors1是记录平均,最小,最大值
Set oCom1.ActiveConnection = conn
oCom1.CommandText = sql1
Set oRs1 = oCom1.Execute执行 CommandText 属性定义的Sq11定义查询、SQL 语句或存储过程,是按时间条件查询到的riqi,yali,wendu, liuliang, zhongliang, dianya, sudu的各个最大,最小,平均值记录值
n1 = oRs1.RecordCount n1为1,

ylp = oRs1(“ylp”): wdp = oRs1(“wdp”): llp = oRs1(“llp”): ylx = oRs1(“ylx”): wdx = oRs1(“wdx”): llx = oRs1(“llx”): yld = oRs1(“yld”): wdd = oRs1(“wdd”): lld = oRs1(“lld”)
zlp = oRs1(“zlp”): dyp = oRs1(“dyp”): sdp = oRs1(“sdp”): zlx = oRs1(“zlx”): dyx = oRs1(“dyx”): sdx = oRs1(“sdx”): zld = oRs1(“zld”): dyd = oRs1(“dyd”): sdd = oRs1(“sdd”)

oRs.Requery Requery的作用是:通过重新执行对象所基于的查询语句,更新Recordset[记录集]对象中的数据。

提示:适用这个方法可以刷新记录集的所有内容。
Do While Not oRs.EOF
'n = n + 1这句我给删掉了,程序可以运行

ylp = Int(ylp * 10 ^ 3 + 0.5) / (10 ^ 3)
wdp = Int(wdp * 10 ^ 3 + 0.5) / (10 ^ 3)
llp = Int(llp * 10 ^ 3 + 0.5) / (10 ^ 3)
zlp = Int(zlp * 10 ^ 3 + 0.5) / (10 ^ 3)
dyp = Int(dyp * 10 ^ 3 + 0.5) / (10 ^ 3)
sdp = Int(sdp * 10 ^ 3 + 0.5) / (10 ^ 3)

a1 = CStr(oRs.Fields(1).Value)取第一条记录的值。ADO Field 对象包含有关 Recordset 对象中某一列的信息。Recordset 中的每一列对应一个 Field 对象
b1 = CStr(oRs.Fields(2).Value)
c1 = CStr(oRs.Fields(3).Value)
d1 = CStr(oRs.Fields(4).Value)
e1 = CStr(oRs.Fields(5).Value)
f1 = CStr(oRs.Fields(6).Value)
a1 = Int(a1 * 10 ^ 3 + 0.5) / (10 ^ 3)
b1 = Int(b1 * 10 ^ 3 + 0.5) / (10 ^ 3)
c1 = Int(c1 * 10 ^ 3 + 0.5) / (10 ^ 3)
d1 = Int(d1 * 10 ^ 3 + 0.5) / (10 ^ 3)
e1 = Int(e1 * 10 ^ 3 + 0.5) / (10 ^ 3)
f1 = Int(f1 * 10 ^ 3 + 0.5) / (10 ^ 3)
MSFlexGrid1.TextMatrix(i + 1, 2) = a1’第三行开始显示第一条记录值
MSFlexGrid1.TextMatrix(i + 1, 3) = b1
MSFlexGrid1.TextMatrix(i + 1, 4) = c1
MSFlexGrid1.TextMatrix(i + 1, 5) = d1
MSFlexGrid1.TextMatrix(i + 1, 6) = e1
MSFlexGrid1.TextMatrix(i + 1, 7) = f1

oRs.MoveNext
Loop
oRs.close’这是后加的,退出程序前,关闭与数据库,记录集的连接
ors1.close’这是后加的
conn.close’这是后加的

注意,所有报表源码执行完,最后都添加关掉连接的代码,即
oRs.close
ors1.close
conn.close

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: WinCC 7.5 是西门子推出的一款高级人机界面软件,该软件自多种案例。这些案例覆盖了不同领域的应用,如制药、水处理、食品饮料等。这些案例旨在帮助用户了解WinCC 7.5的功能和应用。这些案例具有实际性和可操作性,用户可以通过这些案例学习如何使用WinCC 7.5创建人机界面和监控系统。 除了自案例,WinCC 7.5还提供了详细的文档和教程,帮助用户更好地了解软件。用户还可以参加西门子举办的培训课程,获得更深入的学习和使用经验。 总之,WinCC 7.5自多种实用案例,这些案例为用户提供了具体的应用实例,帮助用户更好地理解和掌握该软件的应用技巧。同时,用户还可以通过众多的教程、文档和培训课程进一步提高技能水平,更好地应用WinCC 7.5。 ### 回答2: WinCC 7.5是西门子公司推出的一款人机界面软件,它拥有丰富的功能和灵活的操作方式,适用于多种工业自动化领域。与此同时,WinCC 7.5也拥有多个版本和模块,以适应不同客户的需求。 关于WinCC 7.5是否自案例,可以回答如下: WinCC 7.5自有多个示例项目。这些示例项目包含了各种工业领域的典型场景和应用,如水处理、食品加工、自动化生产等。这些示例项目可以帮助用户快速了解WinCC 7.5的功能和操作方式,同时也可以作为模板,用于快速开发新的项目。用户可以在WinCC 7.5的安装文件中找到这些示例项目,并按照自己的需要进行下载和安装。 除了自的示例项目外,WinCC 7.5还提供了丰富的教程和帮助文档,可以帮助用户进一步学习和掌握软件的使用方法和技巧。此外,WinCC 7.5还支持第三方插件和组件的集成,用户可以通过这些插件和组件来扩展软件的功能和应用范围,以满足更多领域的需求。 ### 回答3: WinCC 7.5 是西门子公司开发的一款人机界面软件,主要用于工业领域中的过程控制、数据采集和监控。WinCC 7.5 中自了一些案例,旨在帮助用户更好地了解软件的功能和使用方法。 这些自的案例包括了多种工业应用场景,如加工车间、成品仓库、污水处理等。每个案例都包含了一个工业过程模拟、数据采集、控制指令和用户界面设计。用户可以通过这些案例来学习如何使用WinCC 7.5来实现自己的工业控制和监控需求。 除了自的案例,WinCC 7.5 还有丰富的应用程序示例和在线教程,用户可以通过在线帮助文档和社区获取更多的学习资源和支持。总之,WinCC 7.5 是一款功能强大的人机界面软件,它的自案例和学习资源可以帮助用户更快更好地掌握软件的使用技巧和实际应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨小杨先生

你的鼓励是我的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值