腾控PLC的文件读写功能块和用法 点击:573 | 回复:8



steelen

    
  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2010-12-10 14:39:01
楼主
功能块安装
点击如下所示安装包文件,然后按默认路径进行安装

2.1功能块说明
2.1.1 FileOpen

该功能块打开一个已经存在的文件或创建一个新的文件
参数 数据类型 描述
Execute BOOL 为ON时打开/创建文件,文件操作期间需要保持ON的状态
Name STRING 将要打开/创建的文件的名称,包括路径。
Done BOOL 0: 功能块不能被执行。
1: 功能块可以被执行。
Handle UINT 打开/创建文件的文件处理。
Error BOOL 0: 当打开/创建文件时,没有错误产生。
1: 当打开/创建文件时,产生一个错误。
ErrorID UINT 当打开/创建文件时,产生的错误的错误编号:
0: 没有错误信息可用。
2: 已经被打开的最多文件的数量。
4: 文件已经被打开。
5: 文件被写保护或者访问被拒绝。
6: 文件名称没有定义。
注意:
• 在同一时间内,最大限度可以打开8个文件。
• 文件名称的数据类型必须是STRING。文件名称的长度包括路径在内必须不能超过80个字符。不允许用户定义字符串。
• 输出Done、Error和ErrorID的状态一直保留到输入Execute处检测到一个下降沿为止。
2.1.2 FileClose

该功能块关闭一个已打开的文件。
参数 数据类型 描述
Execute BOOL 如果检测到上升沿,则关闭文件。
Handle UINT 将要关闭的文件的文件处理。
Done BOOL 0: 功能块不能被执行。
1: 功能块可以被执行。
Error BOOL 0: 当关闭文件时,没有错误产生。
1: 当关闭文件时,产生一个错误。
ErrorID UINT 当关闭文件时,产生的错误的错误编号:
0: 没有错误信息可用。
1: 无效的文件处理。
20: 文件不能被关闭。
注意:
• 当终止应用程序时,要想自动关闭已打开的文件,那么对于系统程序中的每个已打开的文件,必须调用功能块FileClose。
• 输出Done、Error和ErrorID的状态一直保留到输入Execute处检测到一个下降沿为止。
2.1.3 FileWrite

该功能块是用来往文件写数据。
参数 数据类型 描述
Execute BOOL 如果检测到上升沿,则往文件写数据。
Handle UINT 文件的文件处理,在该文件中应该被写入。
Buffer ANY 包含要被写入数据的数据缓冲区。
Length UDINT 要写的字符数
Done BOOL 0: 功能块不能被执行。
1: 功能块可以被执行。
LengthWritten UDINT 写字符的数量
Error BOOL 0: 写的时候,没有错误产生。
1: 写的时候,产生一个错误。
ErrorID UINT 当写的时候,产生的错误的错误编号:
0: 没有错误信息可用。
1: 无效的文件处理。
11: 没有内存可供写数据使用。
12: 要写字符的数量比数据缓冲区的字符数量大。
23: 没有数据能被写。
注意:
• 可以用不同方法来声明要写数据的数据缓冲区。数据缓冲区类型是一个用户定义的数据类型,例如,Byte Array。数据类型如以下所声明为例:
TYPE
FileBuffer :ARRAY 【1..100】 OF BYTE;
END_TYPE
在这种情况下,数据缓冲区长度为100个字符。
• 字符串不能直接用作数据缓冲区。如果字符串能够被存储在一个文件夹里,那么首先必须使用ProConOS功能块STRING_TO_BUF将它存储在一个数组中。
• 输出Done、LengthWritten、Error和ErrorID的状态一直保留到输入Execute处检测到一个下降沿为止。
2.1.4 FileRead

该功能块是用来从文件读数据。
参数 数据类型 描述
Execute BOOL 如果检测到上升沿,则从文件读数据。
Handle UINT 某个应该读的文件的文件处理。
Buffer ANY 要读的数据的数据缓冲区。
MaxLength UDINT 要读的字符数
Done BOOL 0: 功能块不能被执行。
1: 功能块可以被执行。
LengthRead UDINT 读字符的数量
Error BOOL 0: 读的时候,没有错误产生。
1: 读的时候,产生一个错误。
ErrorID UINT 当读的时候,产生的错误的错误编号:
0: 没有错误信息可用。
1: 无效的文件处理。
10: 已达到数据的末尾。
12: 要读字符的数量比数据缓冲区的字符数量大。
22: 没有数据能被读。
注意:
• 可以用不同方法来声明要读数据的数据缓冲区。数据缓冲区类型是一个用户定义的数据类型,例如,Byte Array。数据类型如以下所声明为例:
TYPE
FileBuffer :ARRAY 【1..100】 OF BYTE;
END_TYPE
在这种情况下,数据缓冲区长度为100个字符。
• 字符串不能直接用作数据缓冲区。如果不能将读数据处理成字符串,那么首先必须在数组中存储数据,然后使用ProConOS功能块BUF_TO_STRING将其转换成字符串。
• 输出Done、LengthRead、Error和ErrorID的状态一直保留到输入Execute处检测到一个下降沿为止。





steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2010-12-10 14:55:25
1楼
这样,用户可以实现简单的数据记录功能,报警记录功能。

steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2010-12-13 10:12:34
2楼
这样,用户可以实现简单的数据记录功能,报警记录功能

steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2010-12-14 16:27:06
3楼
其他家的PLC有没有这个功能啊?哪位兄弟知道

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2010-12-14 17:11:40
4楼
富士的SPH系列PLC,使用的与你家PLC一样的软件:科威的软件。

我想,既然科威作为菲尼克斯的全资子公司,应该菲尼克斯也使用相同的软件并提供相同的功能。

而其他诸如西门子的PLC,可以动态建立DB,那么实现的功能也是一样的~~

基本上所有的厂商应该均有这个功能。

Good Luck

steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2010-12-14 17:16:24
5楼
呵呵,这个功能是我们自己做的。KW原来的功能与PLC运行文件在一起的。我们还支持FTP服务器,用户可以把自己PLC写的文件通过FTP客户端下载走,而不用担心用户把PLC运行文件一块下载了

steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2010-12-15 09:50:17
6楼
呵呵,这个功能是我们自己做的。KW原来的功能与PLC运行文件在一起的。我们还支持FTP服务器,用户可以把自己PLC写的文件通过FTP客户端下载走,而不用担心用户把PLC运行文件一块下载了

工控老王

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 260回
  • 年度积分:0
  • 历史总积分:913
  • 注册:2010年7月07日
发表于:2010-12-20 09:35:30
7楼

工控老王

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 260回
  • 年度积分:0
  • 历史总积分:913
  • 注册:2010年7月07日
发表于:2010-12-20 09:35:48
8楼
富士的SPH系列PLC,使用的与你家PLC一样的软件:科威的软件。 我想,既然科威作为菲尼克斯的全资子公司,应该菲尼克斯也使用相同的软件并提供相同的功能。 而其他诸如西门子的PLC,可以动态建立DB,那么实现的功能也是一样的~~ 基本上所有的厂商应该均有这个功能。 Good Luck

热门招聘
相关主题

官方公众号

智造工程师