zoukankan      html  css  js  c++  java
  • 倍福TwinCAT(贝福Beckhoff)基础教程4.1 TwinCAT如何读写TXT文件

    TwinCAT提供了FB_FileRead等一系列读写文件的方法,本小程序演示的是多个贝福自带的FBD功能块连起来用的方法,跟前面讲的一样,建议在初始化的时候把所有FBD都复位,准备使用

     

    真正的读取文件流程是打开-读取-关闭,任何一个环节都有可能出错(比如打开文件找不到这个文件,读取文件读到的数据和要放入的变量不匹配,关闭的时候由于文件在使用出错),在写PLC程序的时候,一个状态(比如CurrentJob定义了一个状态1叫做Open-puts,就实现一个功能,把一个double或者string类型数据写入一个文件),具体实现的时候,还是分步实施,而且中间要加必要的等待和延时(因为是执行系统命令,一个PLC的扫描周期就完成打开或者读写文件很可能会报错),中间任何一步失败了都要跳转到失败的状态,且对外报错告知情况,调试的时候可以去对应的FBD功能块找ErrorID分析原因。

     

    虽然FileWrite和FilePut都能实现写入文件的功能,但是却不太一样,可能FilePuts和FileGets更加适合于读写一个数据(从功能块的输入和输出来看,sLine表示了一个STRING,不管是数字的字符串还是文本的字符串都一样,而且打开是可读的)

     

    而FileRead和FileWrite更适合读写批量数据(比如一个数组),从功能块的输入输出来看,他需要的是数据的地址和数据的长度,我们就可以给一个double数组,但是写出来的东西也不是可以直接浏览的格式了

     

    总结:

    本小程序主要演示了使用贝福功能块读写文件的功能,相比于执行系统命令有更大的实用价值,例如读写文件的功能可以用来设置极限,伺服参数或者驱动器参数的读写

    这里我们把多个FBD功能块串起来用,并且任何一个环节出错都会跳转到错误状态,个人认为这种写法更加合理,方便调试,如果需要移植,也只需要把一个文件夹中的相关FBD都移植过去,然后把MAIN程序的对应状态稍微修改一下即可(本质上这还不是类似于高级语言纯粹面向对象,可以直接一个函数完成一个事情,跟当前项目剥离的很干净,但是这样做已经比较容易理解了,由于TwinCAT每个FBD功能块的引脚输入输出都有变量,你很难做到真正写一个FB或者PRG实现完美的函数封装)

     

     

    更多教学视频和资料下载,欢迎关注以下信息:

    我的优酷空间:

    http://i.youku.com/acetaohai123

     

    我的在线论坛:

    http://csrobot.gz01.bdysite.com/

     

    问题交流:

    QQ:910358960

    邮箱:acetaohai123@163.com

  • 相关阅读:
    SonarQube
    Gerrit
    Jenkins
    Jenkins
    GitLab
    GitLab
    GitLab
    centos7配置国内yum源
    CentOS7 ping: unknown host www.baidu.com
    VirtualBox下安装CentOS7系统
  • 原文地址:https://www.cnblogs.com/acetaohai123/p/6823621.html
Copyright © 2011-2022 走看看