比较简单直接上代码
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
