The library SysLibFileAsync.lib (2)
SysFileOpenAsync (2)
SysFileCloseAsync (3)
SysFileWriteAsync (3)
SysFileReadAsync (3)
SysFileDeleteAsync (4)
SysFileGetPosAsync (4)
SysFileSetPosAsync (4)
SysFileEOFAsync (4)
SysFileGetSizeAsync (5)
SysFileGetTimeAsync (5)
SysFileCopyAsync (5)
SysFileRenameAsync (6)
SysFileCloseAllOpenAsync (6)
1
The library SysLibFileAsync.lib
如果目标系统支持,这个库可以实现访问来自IEC-application的asynchronous文件。以下面的功能块来举例:
? SysFileOpenAsync
? SysFileCloseAsync
? SysFileWriteAsync
? SysFileReadAsync
? SysFileDeleteAsync
? SysFileGetPosAsync
? SysFileEOFAsync
? SysFileGetSizeAsync
? SysFileGetTimeAsync
? SysFileCopyAsnc
? SysFileRenameAsync
? SysFileCloseAllOpenAsync
共同点:
这个库中的功能块包含一些公共成员:
– 输入参数bEnable:BOOL
– 输出参数bDone:BOOL
– 输出参数bBusy:BOOL
– 输出参数bError:BOOL
– 输出参数wErrorld:WORD
所有这些功能块在输入参数bEnable输入一个上升沿时开始运行。一旦当功能块开始运行只有当输出参数bDone有输出时才可以再次调用功能块。此时输出是有效的。从现在开始。
这些公共参数在文档中不再做明确的解释。
这I/O中的I表示输入,O表示输出。
SysFileOpenAsync
2
这个功能块用来打开一个已经存在的文件或建立一个新文件。它的输出是一个hFile,也就
是文件的一个handle。一个文件的handle就是这个文件的标识符,可以是其它功能块调用
文件时的一个输入参数。
输入变量 数据类型 描述
stFileName STRING 文件名称
stMode STRING 文件打开模式:
w 写入模式(创建或重写文件)
r 只读模式(文件只能用来打开读取)
rw 读写模式(若文件不存在则建立文件,若存在则以读取方式
打开)
a 附加模式(若文件存在则写入数据且永远都是添加到文件的
末尾,若不存在则创建文件)
SysFileCloseAsync
这个功能块用来关闭一个文件。从此时开始这个文件的handle将失效,可以对文件进行其
它的操作处理。
变量 数据类型 描述
hFile DWORD 通过SysFileOpenAsync模块得到的文件的handle SysFileWriteAsync
这个功能块用来向文件中写入数据,文件是通过SysFileOpenAsync模块打开的。
变量 I/O 数据类型 描述
hFile E DWORD 文件标识符(参考SysFileOpenAsync)
pBuffer E DWORD 要写入的数据的地址(可通过ADR操作命令得到) dwSize E DWORD 要写入数据的字节数
dwWrite A DWORD 实际写入数据的字节数
数据是以二进制形式写入文件的,这意味着没有进行任何的转换。
SysFileReadAsync
3
这个功能块可用来从一个已打开的文件中读取数据。
变量 I/O 数据类型 描述
hFile I DWORD 文件标识符(参考SysFileOpenAsync)
pBuffer I DWORD 要读取的数据在缓冲器的地址
dwSize I DWORD 从文件读向缓冲器的数据字节数
dwRead O DWORD 实际读取数据的字节数
pBuffer参数必须通过ADR操作命令来取得,对文件都是直接的读写二进制,没有进行任何的转换而拷贝到pBuffer中。
SysFileDeleteAsync
这个功能块用来删除一个文件。
输入变量 数据类型 描述
stFileName STRING 要删除的文件名称 SysFileGetPosAsync
这个功能块将重新找到文件读/写的当前位置。
变量 数据类型 描述
hFile DWORD 通过SysFileOpenAsync模块得到的文件的handle SysFileSetPosAsync
这个功能块将重新设置文件读/写的当前位置。
变量 数据类型 描述
hFile DWORD 通过SysFileOpenAsync模块得到的文件的handle dwPos DWORD 文件内部读/写访问的Offset
SysFileEOFAsync
这个功能块用来确定对文件进行读/写的指针是否已经到达文件的结尾。
4
变量 I/O 数据类型 描述
hFile I DWORD 通过SysFileOpenAsync得到的文件的handle bEOF O DWORD 表明是否文件的handle已经到达
SysFileGetSizeAsync
这个功能块用来获得一个文件的字节数。
变量 I/O 数据类型 描述
stFileName I STRING 文件名
dwSize O DWORD 文件的字节数
SysFileGetTimeAsync
这个功能块用来获得文件的修改时间。
变量 I/O 数据类型 描述
stFileName I STRING 文件名称
ftFileTime O POINTER TO FILETIME指向FILETIMEAsync结构体的指针 FILETIMEAsync结构体(库中已经包含):
TYPE FILETIMEASYNC
STRUCT
dtCreation:DT; (* Erstelldatum *)
dtLastAccess:DT; (* Datum letzter Zugriff *)
dtLastModification:DT; (* Datum letzte 膎derung *)
END_STRUCT
END_TYPE
SysFileCopyAsync
5
这个功能块用来拷贝一个文件到另一个文件或位置。
变量 I/O 数据类型 描述
stFileDest I STRING 目标文件名
stFileSource I STRING 源文件名
dwCopied O DWORD 拷贝的字节数
SysFileRenameAsync
这个功能块用来重命名一个文件。
变量 数据类型 描述
stFileOldName STRING 旧文件名
stFileNewName STRING 新文件名 SysFileCloseAllOpenAsync
通过这个功能块用户可以关闭当前打开的所有文件,不用知道每个文件的handle或名称。系统可以自己默认这些handle值。
6