首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[脚本]西门子触摸屏输出txt/csv报表

[脚本]西门子触摸屏输出txt/csv报表

作者头像
科控物联
发布于 2023-02-28 16:28:48
发布于 2023-02-28 16:28:48
3.1K1
举报
文章被收录于专栏:科控自动化科控自动化

比较简单直接上代码

代码语言:javascript
复制
Sub VBFunction_report()
Dim fo            
'自定义变量  fo
Dim path        
'自定义变量  path   路径
Dim mode      
'自定义变量  mode   模式
Dim delimiter    
'自定义变量   delimiter   
Dim gap     
Const NEU=0 
mode=8       
'mode 变量初始化=8

If    SmartTags("bExtension")=0      Then
        path= "\Storage Card USB\datafile.txt"
        delimiter=vbTab
        gap=vbTab
Else
        path= "\Storage Card USB\datafile.csv"
         delimiter=","
        gap=" "
End If
'“bExtension” 变量是全局变量,它可以在整个 WinCC (TIA Portal) 项目中使用。通过符号 IO 域使用这个变量选择文件扩展名。

On Error Resume Next 
'万一脚本运行错误发生,“On Error Resume Next” 说明是必需的。

Set          fo=CreateObject("FileCtl.File")     
'创建对象(“FileCtl.File”) 函数创建一个对象,允许访问 Windows CE 文件系统。
If        Err.Number<>0     Then
          ShowSystemAlarm "Error #"& CStr(Err.Number) & " "& Err.Description
          Err.Clear
          Exit  Sub
End  If
'运行系统错误的源代码查错程序。如果一个运行系统错误发生,在消息窗口一个错误消息被显示并且脚本停止。
fo.open path,mode
'对 “fo” 对象使用 “Open” 方法打开由 “path” (路径名称)和“mode” 参数指定的文件。
'file.Open path name, mode, [access], [lock], [reclength]
If        Err.Number<>0     Then
          ShowSystemAlarm "Error #" & CStr(Err.Number) & " "& Err.Description
          Err.Clear
          Exit  Sub
End  If
'如果相应的文件或者路径名称不存在,查错程序将执行。

If       fo.LOF =NEU          Then
         fo.LinePrint("Date" & gap & delimiter & "NOX1(ppm)" & delimiter & gap  &"NOX2(ppm)" & delimiter & gap & "NOX3(ppm)" & delimiter & gap& "NOX4(ppm)" & delimiter & gap & "NOX5(ppm)"  & delimiter & gap & "flow1(Kg/h)" & delimiter & gap & "flow2(Kg/h)" & delimiter & gap )         
 End If

'至于是否新文件还是已经存在的,这部分检查都被执行。如果文件是新的,将被添加一个标题。

fo.LinePrint(Now & delimiter & gap &  SmartTags("gas_NOX1")& delimiter & gap & SmartTags("gas_NOX2") & delimiter & gap & SmartTags("gas_NOX3") & delimiter & gap & SmartTags("gas_NOX4") & delimiter & gap & SmartTags("gas_NOX5") & delimiter & gap & SmartTags("flow1") & delimiter & gap & SmartTags("flow2") & delimiter & gap )
' 指定的字符串将被 “fo” 对象的 “LinePrint” 方法写入已打开的文件中。变量值和返回值也被写到文件中。“Now” 函数写一个时间标记到文件中。

fo.Close
'“Close” 方法关闭文件。

Set fo= Nothing
'关键字“Nothing” 用于分离对象变量,该变量由“Set”命令分配给该对象。
ShowSystemAlarm"Storage of data was successful!"
'传输用户自定义的系统消息到 HMI 消息系统。
End Sub
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档