本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。
以上声明内容的最终解释权归西门子(中国)有限公司所有,后续内容更新不做另行通知。
适合自动化项目中,通过外部传入文件,然后通过加工程序读取文件中的内容,实现单向的读取
NC加工程序读取TXT文件内容,文件读取

• V4.7+SP02
选项:6FC5800-0AP75-0YB0
添加需要注意的事项
添加需要注意的事项
DEF INT <错误>
DEF STRING[<字符串长度>] <结果>[<n>,<m>]
READ(<错误>,"<文件名称>",<起始行>,<行数>,<结果>)

比如零件程序下的TEST文件

程序示例:
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都是自定义变量

(2)NUMBER是将string型的数据转换为REAL型
比如读取硬盘上的文件
1)选择驱动器窗口(PCU),进行下面设置
2)选择全局设置-输入电脑的用户名和密码


示例:
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
(1)txt文件的数据

(2)读取到系统内的数据
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

此功能如果需要用在别的盘内或者位置,必须在定义的路径+prog文件夹内
切记不能直接在盘内,否则无法用Read指令读取
1. 西门子公司,基本编程手册
2. 西门子公司,工作准备手册
胡伟
2022-01-24
版本 | 日期 | 修改内容 |
V1.0 | 2022.01.24 |