当前位置: 首页 > news >正文

深圳专业专业网站建设公司国内wordpress主机推荐

深圳专业专业网站建设公司,国内wordpress主机推荐,宝安小学网站建设,公司网站建设与维护今天继续我们的小白教程#xff0c;老鸟就不要在这浪费时间了#x1f60a;。 前面一期我们介绍了CODESYS的文件操作库CAA File。这一期主要介绍CODESYS的SysFile库所包含的文件读写功能块#xff0c;主要包括文件路径、名称、大小的获取以及文件的创建、打开、读、写、拷贝…今天继续我们的小白教程老鸟就不要在这浪费时间了。 前面一期我们介绍了CODESYS的文件操作库CAA File。这一期主要介绍CODESYS的SysFile库所包含的文件读写功能块主要包括文件路径、名称、大小的获取以及文件的创建、打开、读、写、拷贝和删除功能等。 一、SysFile库简介 与上一期介绍的目录和文件操作库CAA File不同SysFile属于CODESYS比较底层的库其中结构和功能块的定义与C语言非常接近。使用该库需要在“库管理器”中添加SysFile库这里使用的是3.5.15版本。 需要注意的是SysFile库中所有功能均为函数FUNCTION与CAA File库中的功能块FUNCTION_BLOCK是不同。函数可以直接使用而功能块需要先声明后使用。因为CODESYS的函数内部的变量在运行后是不会保留的这个与功能块是不同。使用的时候要分清楚避免因为初始状态不同导致的问题。 二、SysFile库的主要功能块 提供对运行时系统的文件功能的访问。仅能进行文件相关的操作。 1.基本定义 1文件访问模式ACCESS_MODE 定义文件打开的模式。 名称 初始值 说明 AM_READ 0 使用读取权限打开现有文件。如果文件不存在则报打开失败错误。 AM_WRITE 1 创建具有写入权限的新文件。如果文件确实存在则丢弃内容。 AM_APPEND 2 使用附加仅写权限打开现有文件。如果文件不存在则打开失败。 AM_READ_PLUS 3 打开具有读/写权限的现有文件。如果文件不存在则打开失败。 AM_WRITE_PLUS 4 创建具有读/写权限的新文件。如果文件确实存在则丢弃内容。 AM_APPEND_PLUS 5 使用附加读/写访问权限打开现有文件。如果文件不存在“打开”将创建一个新文件。 注意对于所有*_PLUS模式读取文件后只能在调用SysFileGetPos或SysFileSetPos后才能进行写入如果在SysFileRead之后立即调用SysFileWrite则文件指针可能位于无效位置正确的使用方式如下 SysFileRead(); SysFileGetPos(); SysFileWrite(); 2文件的时间戳SYS_FILETIME 定义文件的时间戳结构。 tCreation文件创建时间。 tLastAccess访问文件的时间。 tLastModification上次修改的时间。 3文件状态SYS_FILE_STATUS 定义指定文件的实际文件状态。 名称 初始值 说明 FS_OK 0 文件已被打开。 FS_NO_FILE 1 没有可用文件。 FS_ILLEGAL_POS 2 文件中的非法位置。 FS_FULL 3 文件系统上没有多余空间。 FS_EOF 4 已达到文件结尾。 4错误码定义Errors 此错误码定义位于CmpErrors库中文件读写中常用的如下表所示 名称 初始值 说明 ERR_OK 16#0 操作成功 ERR_FAILED 16#1 操作失败 ERR_PARAMETER 16#2 参数错误 ERR_NO_OBJECT 16#10 指定的文件不存在 ERR_NOTIMPLEMENTED 16#C 操作么有执行 ERR_NOT_SUPPORTED 16#18 操作不支持 由于错误定义较多这里只列了比较常用的几个上表中没有列出的可以参考官方文档。 2.文件操作函数 文件操作函数如下表 函数名称 功能 备注 SysFileOpen 打开文件 成功则返回文件句柄 SysFileRead 读取文件内容 返回读取的字节数 SysFileWrite 写入文件 返回写入的字节数 SysFileFlush 缓冲内容写入文件 返回运行系统错误码 SysFileClose 关闭文件 返回运行系统错误码 SysFileCopy 拷贝文件 SysFileRename 文件重命名 SysFileDelete 删除文件 SysFileEOF 检查文件是否到达结尾 SysFileGetPos 获取文件指针当前位置 SysFileGetSize 获取文件尺寸 返回值为文件尺寸 SysFileGetTime 获取文件最后修改时间 SysFileSetPos 设置文件指针位置 SysFileGetName 获取文件名称 SysFileGetPath 获取文件路径 SysFileGetStatus 获取文件状态 SysFileTruncate 重新设置文件尺寸 SysFileDeleteByHandle 根据handle删除文件 SysFileGetSizeByHandle 根据handle获取文件大小 SysFileGetName2 根据handle获取文件名称 SysFileGetStatus2 根据handle获取文件状态 3.常用的函数介绍 SysFile库文件操作函数的参数比较类似下面对几个常用的函数进行介绍。 1SysFileOpen szFile文件名称。可以包含绝对或相对路径注意路径需要用斜杠“/”表示不能用反斜杠“\”。 am打开模式类型为SysFile.ACCESS_MODE。 pResult返回运行系统错误代码类型为POINTER TO RTS_IEC_RESULT含义在CMPErrors库中定义见第一部分介绍。 返回值成功则返回文件句柄类型为SysFile.RTS_IEC_HANDLE失败则返回RTS_INVALID_HANDLE。 2SysFileClose、SysFileFlush hFile文件句柄类型为SysFile.RTS_IEC_HANDLE。 返回值返回运行系统错误代码类型为RTS_IEC_RESULT。 3SysFileRead和SysFileWrite hFile文件句柄。 pbyBuffer指向读或者写缓冲区首地址类型为POINTER TO BYTE。 ulSize需要读取或写入的字节数。注意必须小于等于缓冲区尺寸。 pResult返回运行系统错误代码。 返回值成功则返回读取或写入的字节失败则返回0。数据类型为_XWORD实际与DWORD等价。 4SysFileGetSize szFileName文件名称 pResult返回运行系统错误代码。 返回值文件尺寸。 5SysFileGetTime szFileName文件名称 ptFileTime文件时间类型为POINTER TO SYS_FILETIME。 返回值返回运行系统错误代码类型为SysFile.RTS_IEC_RESULT。 注意以上函数中凡是类型为RTS_IEC_RESULT的返回值如果是在函数中作为输入则需要定义为指针POINTER TO RTS_IEC_RESULT或者使用ADR()来获取错误码如果作为函数返回值则为SysFile.RTS_IEC_RESULT。 三、SysFile库使用示例 SysFile库的函数可以直接一起顺序使用也可以像CAA File库中的功能块一样按状态机的方式进行操作。以下示例为文件写入的分步操作。本次测试使用的控制器是禾川的Q0使用其它控制器时需要正确指定可进行读写操作的目录位置。 程序变量定义如下 PROGRAM testSysFile VAR bExecute : BOOL; szFileName    : STRING:/testfile.txt; pbyBuffer      : POINTER TO BYTE; ulSize            : DWORD; ErrorCode      : INT; Done             : BOOL; stContent      : STRING:hello everyone!; Mode            : SysFile.ACCESS_MODE : 1;      //0-AM_READ; 1-AM_WRITE; 2-AM_APPEND; 3-AM_READ_PLUS; 4-AM_WRITE_PLUS; 5-AM_APPEND_PLUS iStep      : INT : 0;      //运转流程 OP_TRIG : R_TRIG; bError            : BOOL; hFile       : SysFile.RTS_IEC_HANDLE; pRes              : SysFile.RTS_IEC_RESULT; iRet        : DWORD; END_VAR 程序如下 bExecute:TRUE; OP_TRIG(CLK : bExecute); pbyBuffer:ADR(stContent); ulSize:SIZEOF(stContent); IF OP_TRIG.Q AND iStep0 THEN iStep : 1; END_IF CASE iStep OF 0: IF bExecuteFALSE THEN Done : FALSE; ErrorCode : 0; bError : FALSE; END_IF 1: hFile : SysFileOpen(szFileName, Mode, ADR(pRes)); //打开文件 IF (pRes0 OR hFileSysFile.RTS_INVALID_HANDLE) THEN bError : TRUE; ELSE iStep : 2; END_IF 2: iRet:SysFileWrite(hFile, pbyBuffer, ulSize, ADR(pRes)); //内容写入文件 IF (iRet0) THEN SysFileClose(hFile); bError : TRUE; ELSE iStep : 3; END_IF 3: pRes:SysFileFlush(hFile); //缓存内容写入文件 IF (pRes0) THEN iStep : 4; ELSE SysFileClose(hFile); bError : TRUE; END_IF 4: pRes:SysFileClose(hFile); //关闭文件 IF pRes0 THEN Done : TRUE; iStep : 0; ELSE bError : TRUE; END_IF END_CASE //错误检查 IF bError THEN iStep : 0; ErrorCode : 1; END_IF 注意SysFile库的文件读写操作是不能被其它周期任务中断的。当需要读写的文件较大时需要的时间会比较长。这时候需要把运行读写程序的任务周期调长保证读写操作能够顺利完成。如果任务时间不够可能会出现文件没有读完或者写完的情况。 四、结论 SysFile库实际上属于运行系统的文件操作函数不管是操作方式还是参数定义都与C语言的对应函数类似对C语言比较熟悉的朋友应该很容易上手。另外需要注意的是底层操作函数与平台相关性较大比如读写时间与所使用的的控制器平台关系很大最好是在自己使用的平台上做一些读写测试后设置合理的任务周期避免出现文件读写不完整问题。 关于SysFile库读写大文件的问题还有一种思路是把以上代码封装成功能块在读或者写过程中把大文件拆分成尺寸较小的块通过分步多次读写每次进入读写流程时读或者写一块直至所有内容读写完成。当然这个流程会复杂一些嫌麻烦的还是直接用CAA File库来实现吧~~~^-^。 ------------------ 原创不易感兴趣的多支持
http://www.dnsts.com.cn/news/199530.html

相关文章:

  • 网站建设步骤及分工服装设计基础
  • 短租网站建设西安公司招聘
  • 关于网站建设公司大全接网站建设单子的网站
  • 凡科网站建设样品图和wordpress类似的源码
  • 上海频道网站建设公司做采购常用的几个网站
  • wordpress整站搬家首页空白问题软件的开发文档
  • 江苏城乡建设厅官方网站遵义网站建设网帮你
  • wordpress小说站模板禅城顺德网站建设
  • 网站点击快速排名东莞高端网站定制
  • 国外网站设计理念做网站收入怎样
  • 怎么截取网站视频做动图南宁网站开发招聘
  • seo网站推广是什么触屏端网站开发
  • 做外贸网站那个好安国市住房和城乡建设局网站
  • 戏曲网站建设的可行性分析南宁小程序开发设计
  • 网站有二维码吗上海建设网站费用
  • orchard wordpress百度关键词优化多久上首页
  • 现在网站优化全自动免费网页制作
  • 网站设计网络公司营业推广的形式包括
  • 网站文字广告代码广西电力工程建设公司网站
  • 长春市建设工程交易中心网站友情链接互换网站
  • 哪家网站做公司最好做外贸一般在哪个网站
  • 免费网站软件推荐正能量原画培训价格一般是多少
  • 嘉兴英文网站建设自贡网站建设
  • o2o商超网站建设wordpress用户名怎么设置密码
  • 网站建设先做前台还是后台招商外包
  • 汽车4s店网站模板找图纸的网站
  • 如何做可以微信转发的网站做一个自己的免费网站
  • 凡客官方网站html论坛网站模板下载
  • 什么是网站跳出率甘肃省住房和城乡建设部网站
  • 做竞价网站要准备什么条件分销商管理系统