倍福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
倍福TwinCAT(贝福Beckhoff)基础教程4.1 TwinCAT如何读写TXT文件的更多相关文章
- 倍福TwinCAT(贝福Beckhoff)基础教程4.2 TwinCAT如何读写CSV文件
本程序只是在官方范例程序上稍作修改,在官方原有的范例中,演示了多种模式的读写(可以认为CSV文件是比TXT文件需要更多数据量的时候使用,比如记录一个小型的数据库集合) 但是写的比较混乱,甚至没有H ...
- 倍福TwinCAT(贝福Beckhoff)基础教程1.2 TwinCAT安装配置
由于TC2和TC3都有可能用到,个人推荐都安装,但是注意必须是先安装的TwinCAT2,然后安装TwinCAT3,如果反了可能两个都没法用(打开TcSwitchRuntime提示Both TwinCA ...
- 倍福TwinCAT(贝福Beckhoff)基础教程1.1 TwinCAT背景知识
本节附件中有很多PPT介绍贝福TwinCAT和EtherCAT的相关技术,在此只做简单说明. 简单总结:EtherCAT就是一种总线技术,具有速度快,稳定性高,布线简单等优点,详细可以参考下面这个PP ...
- 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT 如何简单执行NC功能块 TC3
这一节我们介绍简单的NC运动(前面所讲的所有内容都是PLC编程和HMI的界面,算是基础知识),这里NC就是控制伺服电机的部分(当然还不是实际的NC轴,是虚拟轴,但是用到的函数都是一样,可以为后面的实际 ...
- 倍福TwinCAT(贝福Beckhoff)基础教程6.1 TwinCAT如何与高级语言通讯
因为使用TwinCAT的人用途不同,重视点就不同.如果用来代替传统PLC+HMI做项目的,很少会需要用到跟高级语言通讯,但是如果是用来做运动控制平台如做机器人运动控制器的,就肯定会用到.不管是否用得上 ...
- 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT如何执行系统命令
TwinCAT提供了一系列的执行Windows系统命令的方法 Name 描述 NT_Shutdown 关机操作系统 NT_AbortShutdown 取消关机操作系统命令 NT_Reboot 重启操作 ...
- 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_字符串
一般声明字符串都会加一个长度的限制,比如A:STRING(80);至于真实的字符串长度不要超过这个限制即可 在测试中,我演示了两个字符串的方法,CONCAT字符串拼接和REPLACE字符串替换.拼 ...
- 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT如何简单执行NC功能块 TC2
TC2的程序是在TC3的基础上稍作调整,只说明不同点,请先看TC3的. TC2中的一个原本是AXIS_REF类型变量被拆成了两个(PLCTONC_AXLESTRUCT和NCTOPLC_AXLESTRU ...
- 倍福TwinCAT(贝福Beckhoff)基础教程3.1 TwinCAT如何编写简单的计算器
把编写简单计算器作为入门的第一个范例程序,主要是因为比较简单,而且综合了HMI,数据类型,数据转换,PRG和FBD等功能块的混合等知识,个人认为还是比较适合用来快速上手的.由于是第一个范例,所以视频教 ...
随机推荐
- 让chrome支持本地Ajax请求
Chrome的安全机制不能支持ajax的本地访问, 例如: 在JavaScript里面访问 URL:file:///E:/test.html,Chrome 浏览器报错:XMLHttpRequest c ...
- SpringBoot程序启动时执行初始化代码
因项目集成了Redis缓存部分数据,需要在程序启动时将数据加载到Redis中,即初始化数据到Redis. 在SpringBoot项目下,即在容器初始化完毕后执行我们自己的初始化代码. 第一步:创建实现 ...
- html 过滤器 c#
using System.Text.RegularExpressions; using System.Web; internal class HtmlHelper { /// <summ ...
- 读入输出优化_C++
当我们考试时遇到大量的读入或者输出时,这些代码会耗费许多运行程序的时间,导致TL 本来 log2n 的算法因为读入被卡成线性的就太不划算了,所以我们这里要采用读入输出优化 getchar 和 putc ...
- scrapy爬取段子
scrapy.py 1.cmd运行scrapy shell http://www.baidu.com response.xpath('//div[@aa="bb"]') 找到需要匹 ...
- Linux单机安转Spark
安装Spark需要先安装jdk及安装Scala. 1. 创建目录 > mkdir /opt/spark > cd /opt/spark 2. 解压缩.创建软连接 > tar z ...
- HTML5初学笔记
今天学习了下HTML5的基本知识,用画笔在画布上画了几个东西,效果如图,相关代码如下,注意点总结在末尾: <!DOCTYPE html> <html> <head> ...
- git使用教程1-本地代码上传到github【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/git/ 前言 不会使用github都不好意思说自己是码农,github作为一个开源的代 ...
- python的tips:字符和字符串的问题
今天,自己建立了一个redis,python去访问的时候, 设置可以key以后,再读取key,返回的是字符, 和字符串比较,需要做一个转换, 信息如下: import redisr=redis.Red ...
- hdu 4081(次小生成树)
Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...