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

最新文章

  1. MVC中的成员资格,授权,安全性
  2. Android官方数据绑定框架DataBinding
  3. [USACO2005][poj2229]Sumsets(递推)
  4. hdu 1756 判断点在多边形内 *
  5. document操作
  6. python中精确输出JSON浮点数的方法
  7. H5动画优化之路
  8. [light oj 1013] Love Calculator
  9. python手机号码运营商归属测试
  10. Linux_hadoop_install
  11. 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店
  12. BeanUtils\DBUtils
  13. 算法起步之Bellman-Ford算法
  14. Python3.x 配置原生虚拟环境
  15. freetype 字形解析
  16. 大数据入门第二十天——scala入门(一)入门与配置
  17. vcenter SSO
  18. spring security 非页面登录
  19. ios:设置视图背景图片的方法
  20. 设计模式--模板方法模式C++实现

热门文章

  1. Linux 安装配置JDK
  2. SQLSever 触发器
  3. roadhogrc.mock.js配置
  4. flexigrid 学习总结
  5. 第3章 MFC框架程序剖析
  6. Linux内核内存管理-内存访问与缺页中断【转】
  7. 计蒜客 28206.Runway Planning (BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 F)
  8. FZU-2268 Cutting Game(二进制使用)
  9. schema get_ddl
  10. POJ 2686 Traveling by Stagecoach(状压DP)