第6课 · 把加工参数存起来(数据寄存器)

信捷指令讲堂 · 6 段 · 共 3:43 · 正文 1168 字 · 完全免费

前五节课我们做的是"通和断",从这节课开始要跟"数"打交道。数据寄存器 D 就是 PLC 里专门存数字的抽屉,这节课教你把抽屉用对。

完整课程 · 智慧屏 + 数字人讲师加载较慢?先看下面的图文
正在加载数字人讲师 …
首次打开约需 30~60 秒(3D 模型较大,只在电脑上加载)
加载期间可以先往下看图文讲解
这台设备暂时跑不了完整课程需要支持 WebGL 的浏览器(多数电脑浏览器都支持)
下面是同一节课的图文讲解 + 音频,内容完全一样

📱 手机上看不到完整课程(数字人讲师需要电脑浏览器的 3D 支持)。下面是这节课的图文讲解 + 音频,内容完全一样,手机上也能完整学完。想体验完整课程,用电脑打开这一页即可。
仍然在手机上试试完整课程

1/6

开场承接

0:37

本节要做什么

  • 数字写死了走多长、做几个、延时几秒都刻在程序里,改一次就要重下载一遍
  • 数据寄存器用 D 存这些数字 —— 改参数只改一个数,程序一行都不动
  • 改参数这是设备好不好用的分水岭:改参数不动程序
把加工参数存起来(数据寄存器) · 开场承接 梯形图 上一节的步进程序 · 数字还是写死的

上一节的步进程序 · 数字还是写死的

前面五节,我们从一个按钮一个灯,做到启保停、定时器、计数器,上一节还用步进指令把上料、加工、下料串成了一条自动线。可是有个问题一直没解决:那条线里所有的数字,走多长、做几个、延时几秒,都是直接写在程序里的。哪天客户说标准长度从五十改成六十,就得打开电脑改程序、重新下载一遍。这一节我们讲数据寄存器,也就是 D,专门用来存这类数字。参数存进 D,改参数就只是改一个数,程序一行都不用动。

2/6

D 就是一个存数字的盒子

0:36

D 是什么

  • 数据寄存器一排排存数字的盒子,每个十六位(-32768~32767),编号 D0~D7999
  • MOV放数字用 MOV K50 D10 —— 把 50 送到 D10
  • 顺序前一个是要送的值、后一个送到哪儿,写反了直接报错
把加工参数存起来(数据寄存器) · D 就是一个存数字的盒子 梯形图 MOV K50 D10:把 50 送进 D10

MOV K50 D10:把 50 送进 D10

先说 D 是什么。D 叫数据寄存器,说白了是一排排存数字的盒子,每个盒子十六位,能放负三万二千七百六十八到三万二千七百六十七之间的整数,编号从 D0 一直到 D7999。往盒子里放数字用 MOV 指令:MOV K50 D10,念作把五十送到 D10,前面是要送的值、后面是送到哪儿,顺序写反了程序直接报错。下面把这段程序下载进去,按一下运行,看看 D10 里是不是真的出现了五十。

3/6

参数与实测值分开存

0:38

参数与实测值分开存

  • 参数标准值放 D10、实测值放 D0,两个盒子分开互不打扰
  • SM2首扫脉冲:只在上电第一个扫描周期接通,参数只装载一次
  • 参数表改参数不动程序,靠的就是这套
把加工参数存起来(数据寄存器) · 参数与实测值分开存 梯形图 参数 D10 与实测值 D0 分开存

参数 D10 与实测值 D0 分开存

刚才那个五十,其实就是一条参数。现场真正量出来的数,得另找一个盒子放,比如 D0,两个盒子互不打扰。图上第一行 LD SM2,SM2 是上电后第一个扫描周期才接通的首扫脉冲,用它把标准值 K50 装载进 D10,只装一次,以后你从面板上把 D10 改成六十,程序也不会给你刷回去。先按一下运行,再按一下 X0,量到的六十就写进 D0。参数一个盒子、实测值一个盒子,这就是数控设备里最常见的参数表。

4/6

怎么比(一)触点比较

0:38

怎么比:触点比较

  • 触点比较LD> 大于、LD= 等于、LD< 小于 —— 比较式直接画成触点
  • 分选超长 Y0、合格 Y1、偏短 Y2,三个条件互斥只亮一个
  • 改参数把 D10 从 50 改成 70,三个判断一起平移
把加工参数存起来(数据寄存器) · 怎么比(一)触点比较 梯形图 触点比较:D0 与 D10 比出三档

触点比较:D0 与 D10 比出三档

数字会存了,接下来是怎么比。信捷有一类触点比较指令,把比较式直接画成触点:LD> 是大于、LD= 是等于、LD< 是小于。图上这几行就是一台分选机的逻辑。一开始 D0 是六十八,比参数 D10 的五十大,Y0 亮,判超长;让 D0 变成三十五,它就比五十小,Y2 亮,判偏短;回到五十,正好等于,Y1 亮,判合格,三个条件互斥。整套程序里唯一的数字就是 D10,改它一个,三个判断一起平移。

5/6

怎么比(二)CMP

0:36

怎么比:CMP 指令

  • CMPCMP D0 D10 M0 —— 一次把三个比较结果都给出来
  • M0M0 大于 / M1 等于 / M2 小于,谁成立谁亮
  • 两种写法触点比较直观,CMP 一次给全,现场两种都在用
把加工参数存起来(数据寄存器) · 怎么比(二)CMP 梯形图 CMP 一次给出 M0/M1/M2 三个结果

CMP 一次给出 M0/M1/M2 三个结果

触点比较是一个条件一个触点,三个判断就要写三行。还有更省事的写法:CMP 指令。CMP D0 D10 M0,把 D0 和 D10 比一下,结果一次放进三个位里:M0 代表大于、M1 代表等于、M2 代表小于,谁成立谁亮,再拿它们驱动 Y0 到 Y2。一开始 D0 是六十八,M0 亮;变成三十五,换成 M2 亮;回到五十,M1 亮。触点比较直观,CMP 一次给全三个结果,两种写法现场都用。

6/6

三个坑 + 预告

0:38

三个坑 + 预告

  • 十六位最大 32767,K40000 会翻成负数 —— 大数要用双字 DMOV
  • 不保持断电或停机就清零,要留住得用 HD 或 FD
  • 参数表下一节:定时器和计数器的设定值也搬进 D
把加工参数存起来(数据寄存器) · 三个坑 + 预告 梯形图 坑一:40000 进了十六位的 D0 变成负数

坑一:40000 进了十六位的 D0 变成负数

最后三个坑。第一,D 是十六位的,最大三万二千七百六十七。K40000 硬写进去,会翻成负的二万五千五百三十六,程序算出来全不对;要大数就用双字 DMOV,占两个相邻的盒子。第二,D 是不保持的,一断电、或者从运行切到停止,里面的数全清零,要记住的参数得用掉电保持的 HD,或者写进 FD。第三,D 存数字、M 存通断,别混着用。下一节我们做一张真正的参数表,把定时器和计数器的设定值也搬进 D。

想亲手试一下?

这门课的电路,已经给你摆好了。不用装软件,点开就能按按钮、看线圈亮。