1       免责声明

本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。

以上声明内容的最终解释权归西门子(中国)有限公司所有,后续内容更新不做另行通知。

2       概述

适合自动化项目中,通过外部传入文件,然后通过加工程序读取文件中的内容,实现单向的读取

3       关键词

NC加工程序读取TXT文件内容,文件读取

4       要求

4.1        硬件要求

image.png

4.2        软件版本要求

        V4.7+SP02

4.3        其他要求

选项:6FC5800-0AP75-0YB0

5       注意事项

5.1        注意事项一

添加需要注意的事项

5.2        注意事项二

添加需要注意的事项

6       调试或使用步骤

6.1     使用READ指令读取 

DEF INT <错误>

DEF  STRING[<字符串长度>] <结果>[<n>,<m>]

READ(<错误>,"<文件名称>",<起始行>,<行数>,<结果>)

image.png

image.png                                     


6.2     读取NC内的文件

比如零件程序下的TEST文件

image.png

程序示例:

N10 DEF INT ERROR

N30 READ(ERROR,"/_N_MPF_DIR/TEST_MPF",1,5,TEMP) 

N40 IF ERROR <>0

N50 MSG("错误"<<ERROR<<"READ 指令")

N60 M0

N70 ENDIF

TDATA[0]=NUMBER(TEMP[0])

TDATA[1]=NUMBER(TEMP[1])13

TDATA[2]=NUMBER(TEMP[2])

TDATA[3]=NUMBER(TEMP[3])

TDATA[4]=NUMBER(TEMP[4])

M30

 

说明:

1)TEMP和TDATA都是自定义变量

image.png

2)NUMBER是将string型的数据转换为REAL型 

6.3     读取PCU上的数据

比如读取硬盘上的文件

image.png 

6.3.1          设置HMI-逻辑驱动器

1)选择驱动器窗口(PCU),进行下面设置

image.png 

2)选择全局设置-输入电脑的用户名和密码

image.png

6.3.2          需要开通EES功能

image.png

6.3.3          读取数据

示例:

N10 DEF INT ERROR

N30 READ(ERROR,"//DEV_5:/prog/TEST.TXT",1,5,TEMP)

N40 IF ERROR <>0

N50 MSG("错误"<<ERROR<<"READ 指令")

N60 M0

N70 ENDIF

TDATA[0]=NUMBER(TEMP[0])

TDATA[1]=NUMBER(TEMP[1])

TDATA[2]=NUMBER(TEMP[2])

TDATA[3]=NUMBER(TEMP[3])

TDATA[4]=NUMBER(TEMP[4])

M30

6.4     读取数据展示

1)txt文件的数据

image.png

2)读取到系统内的数据

image.png 

6.5     读取带/杠数据并处理

6.5.1          示例: 

N10 DEF INT ERROR

N20 DEF INT _NUM

N30 DEF STRING[255] DATATEMP

N40 DEF STRING[255] DATA

N60 DEF STRING[255] _NEWDATA[5]

N70 DEF INT _JS

;读取一行

N80 READ(ERROR,"//DEV_5:/prog/TEST.TXT",1,1,_NEWDATA)

;判断读取是否有

N90 IF ERROR <>0

N100 MSG("错误"<<ERROR<<"READ 指令")

N110 M0

N120 ENDIF

 

N130 DATATEMP = _NEWDATA[0]

N160 _JS=0

;循环处理

N170 WHILE(INDEX(DATATEMP,"/")<>-1)

N180 _NUM=INDEX(DATATEMP,"/")

N190 TEMP[_JS] = SUBSTR(DATATEMP,0,_NUM)

N200 DATA = SUBSTR(DATATEMP,_NUM+1)

N210 DATATEMP = DATA

N220 _JS=_JS+1

N230 ENDWHILE

 

TDATA[0]=NUMBER(TEMP[0])

TDATA[1]=NUMBER(TEMP[1])

TDATA[2]=NUMBER(TEMP[2])

TDATA[3]=NUMBER(TEMP[3])

TDATA[4]=NUMBER(TEMP[4])

 

N240 M30 

6.5.2          被读取值

image.png 

6.5.3          读取结果

image.png 

6.6     故障

6.6.1          文件转移到D盘内,无法读取,Read报错3

image.png

此功能如果需要用在别的盘内或者位置,必须在定义的路径+prog文件夹

切记不能直接在盘内,否则无法用Read指令读取

6.6.2          勾选共享驱动器时,无法执行加工程序,可以Read读取,取消共享驱动器时,无法Read读取,可以执行加工程序

image.png 

7       参考文献

1.     西门子公司,基本编程手册

2.     西门子公司,工作准备手册 

8       作者/联系人

胡伟

2022-01-24

9       版本信息

版本

日期

修改内容

V1.0

2022.01.24