📱 手机上看不到完整课程(数字人讲师需要电脑浏览器的 3D 支持)。下面是这节课的图文讲解 + 音频,内容完全一样,手机上也能完整学完。想体验完整课程,用电脑打开这一页即可。
仍然在手机上试试完整课程
卡上得先有东西
0:36卡上得先有东西
- 它是什么PLC 卡槽里的小存储卡
- 三条硬规定32G 内、FAT32、以太网型不支持
- 文件怎么放data001~data999.csv,放根目录
- 表格从第一行开始第一行是类型申明
读第 1 列第 2 行,D20 拿到数
SD 卡是插在 PLC 卡槽里的一张小存储卡,程序能读它也能写它。用之前记三条:容量不能大于 32G,必须先格式化成 FAT32,以太网型 PLC 不支持。卡上的文件名是固定的,从 data001.csv 到 data999.csv,而且要放在根目录下。文件内容就是一张表格,第一行写数据类型,第二行开始才是数据。这张卡上已经放好一个文件,画面里 M0 一合上,程序就把第一列第二行读了出来。
表格长什么样
0:35表格长什么样
- 第一行不是数据是类型申明
- 四种类型W / DW / F / S
- ★ 定宽不够宽就在左边补空格
- 双字占两个寄存器第二列读进来是两个数
第二列是双字,占两个寄存器
打开这个文件,它其实就是一张表格。第一行不是数据,是类型申明,写这一列用哪种类型。一共四种:单字 W 占六个字符,双字 DW 占十一个字符,浮点 F 后面跟整数位和小数位,字符 S 后面跟的是占用几个字。每种都按固定宽度排好,数不够宽就在左边补空格,列与列之间用逗号隔开。所以第二列的双字,读进来要占两个寄存器。画面里 M0 一合上,读出来的就是两个字。
读的三个地址
0:39读的三个地址
- 第一个操作数参数首地址,连带 D0~D2
- D0~D2 各放什么索引号 / 列号 / 行号
- 第二个操作数要读几个字
- ★ 行号怎么算第一行 = 类型下面那行
手册读例:D20 读出 -32765
读卡用 READSD 这条指令,后面跟三个操作数。第一个是参数首地址 D0,它连着占三个寄存器:D0 放文件索引号,D1 放列号,D2 放行号。第二个操作数是 D10,写要读几个字。第三个是 D20,读到的数据就放在它开始的寄存器里。行号从数据行开始算,第一行就是类型申明下面那一行。手册的例子是索引 1、第一列、第二行,取一个字,读出来正好是 -32765。画面里 M0 一合上就能看到。
把数写回卡上
0:38把数写回卡上
- 操作数排法和读几乎一样
- 第三个操作数数据从哪来
- 参数块可共用读出来改完再写回去
- ★ 行数超了会扩展扩展很慢,别这么用
写进第三行,再读回来对照
写卡用 WRITESD,操作数的排法和读几乎一样。第一个还是参数首地址,里面照样是索引号、列号、行号;第二个是要写几个字;第三个换成了数据来源的首地址。参数块可以跟读共用一套,读出来的数改完就能原样写回去。要注意:行号超过卡上实际行数,文件会被自动扩展。手册叮嘱过,扩展很慢,会影响扫描周期,别这么用。画面里 M0 一合上,先把 D50 写进第三行再读回来,D20 和 D50 就对上了。
出错看哪一个
0:38出错看哪一个
- 错误写在哪特殊寄存器 SD453
- 常见的几个码0 成功 / 4 文件不存在
- ★ 一笔不能只读一半字数对不上就报 28
- 看画面读不存在的文件 → 4
读不存在的文件,状态字报 4
读写出错不会停机,它把结果写进特殊寄存器 SD453。零是成功,四是文件不存在,二十四是文件索引号不合法,索引只能从一到九九九;二十五是列号超出了文件的列数;二十六是行号小于一,或者超过了实际行数;二十七和二十八都跟要读几个字有关。手册还叮嘱一条:一笔数据不能只读取其中一部分,字数跟类型对不上就要报二十八。画面里故意去读一个不存在的文件,状态字立刻变成四,D20 一动没动。
一批数据一起搬
0:35一批数据一起搬
- 列号写 0第二个操作数变成行数
- 整行怎么放按列顺序排进寄存器
- 写回去也一样从左到右、从上到下
- 看画面一行三个格子一次读完
列写 0,一整行三个格一起读
最后说一个巧办法:如果列号写零,那第二个操作数就不再是字数,而是行数,一次把整行搬走。比方说索引一、列号零、行号一、字数一,意思是从第一行开始读一行;这一行有几列、每列占几个字,它自己算好,按列的顺序放到 D20 开始的寄存器里。手册里写进去的顺序也是这个路子:先第一列第一行,再第二列第一行,从左到右、从上到下。画面里列号写零,一行三个格子一次就读完了。