工控编程吧

标题: 如何在HMI 设备上通过脚本诊断是否存储驱动器可移动存储介质 处于可写状态 [打印本页]

作者: baikhgmv    时间: 2016-11-3 09:19
标题: 如何在HMI 设备上通过脚本诊断是否存储驱动器可移动存储介质 处于可写状态
如何在HMI 设备上通过脚本诊断是否存储驱动器可移动存储介质(U盘,SD/MMC 卡)处于可写状态此常问问题包含一个示例脚本,检查HMI设备是否有可用的存储介质并且是否处于可写状态。可以改变脚本以满足需求。


描述
当系统运行时HMI项目的数据通过用户触发保存到驱动的可移动存储介质(U盘,SD/MMC 卡等)。在此过程中存储介质丢失或没有准备好被写入会导致错误。可在写之前通过检查驱动状态来避免该错误。
提示
在计划的写过程发生之前可以通过调用 Visual Basic 脚本判断是否驱动处于可写状态。根据返回值包含的状态来决定是否继续写或中止写过程。
根据用到的操作系统(Windows 或 WinCE), Visual Basic 脚本提供不同的方式检查可移动驱动盘是否可写。
No.
步骤
1
创建以下脚本函数代码。
  • 对:基于 Windows 的操作面板:
Function MediaCheckWin(ByRef path)

Dim fso, drive, result
Set fso= CreateObject("Scripting.FileSystemObject")

On Error Resume Next
Set drive= fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(path)))

If Err.Number=0 Then
result= 0
Else
result= Err.Number
End If

MediaCheckWin= result

End Function


  • 对:基于 WindowsCE 的操作面板:
Function MediaCheckCE(ByRef path)

Dim fso, result

Set fso= CreateObject("Filectl.filesystem")

If fso.dir(path)="" Then
result= 1
Else
result= 0
End If

Set fso= Nothing

MediaCheckCE= result
注意
"result" 可以改变返回值来满足您的需求。
2
在每次运行写存储介质之前调用 MediaCheckWin() 或 MediaCheckCE() 脚本。这里需要传送要写文件的路径,例如 "e:\" (Windows)  或 "\Storage Card USB\" (Windows CE), 作为脚本的参数。
注意
如果把路径通过输入字段作为参数,需要确保你的输入被接受(按回车键)。
如果不把路径通过输入字段作为参数,但在脚本中定义它,你要按照规范在引号中设置路径。
3
根据返回值来决定是否继续或中止写过程。
返回值"0" 意味着存储介质处于可写状态;其他任何返回值意味着存储介质为可写状态。
表 01

下载
TIA Portal 例子程序 KP400 Comfort / PC Runtime 包含集成的脚本
注意
注意,脚本只识别可更换的介质是否可用。例如,如果介质是写保护或没有更多的可用内存,脚本仍然返回值“0”。基于 Windows CE 的面板在移除存储介质之后可能需要一点时间才能产生错误信息。












欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4