第24课 · 让端子自己数脉冲(高速计数)

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

普通计数器再快也追不上编码器。这节课讲高速计数怎么接、怎么读,顺带解释一个容易误判的现象:计数值超过 32767 变负数不是出错。

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

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

1/6

同样是 CNT,数的东西不一样

0:39

同样是 CNT,数的东西不一样

  • 写法一样,数的东西不一样同样一句 CNT,普通计数器数条件通断,高速计数器数端子脉冲
  • 普通计数器:数条件M0 挡三下,C0 数到三、线圈亮
  • 高速计数器:数端子M1 挡三下、X0 一动不动,HSC0 一格没动
  • 驱动条件只是启用开关通着它才认端子,光挡它没用
让端子自己数脉冲(高速计数) · 同样是 CNT,数的东西不一样 梯形图 两种 CNT 对照:一个数条件,一个数端子

两种 CNT 对照:一个数条件,一个数端子

同样是 CNT,数的东西却不一样。第一条:M0 每通断一次,普通计数器 C0 就加一。头一下,C0 加一;再一下;第三下,C0 数到三,线圈亮起。第二条把计数器换成 HSC0。再把 M1 挡三下:又挡一下;还是三下,HSC0 一格都没动。因为高速计数器数的不是条件的通断,而是 X0 端子上的脉冲。M1 只是个启用开关,通着才认端子,光挡它没用。右下角 D0 是 HSC0 的累计值搬出来显示的。

2/6

编号不是随便配的:HSC2 只看 X3

0:40

编号跟端子绑定:HSC2 只看 X3

  • 编号跟端子绑定HSC0 看 X0/X1,HSC2 看 X3/X4,HSC4 看 X6/X7
  • 规律:一半乘三编号的一半乘三,就是 A 相端子的号
  • HSC2 数 X3在 X3 上打两下,D0 走到二
  • 它不认别的端子换 X0 打一下,HSC2 一点反应也没有
让端子自己数脉冲(高速计数) · 编号不是随便配的:HSC2 只看 X3 梯形图 HSC2 只认 X3:给 X0 打脉冲它不理

HSC2 只认 X3:给 X0 打脉冲它不理

编号不是随便配的,它跟输入端子绑定。手册的分配表写着:HSC0 看 X0、X1,HSC2 看 X3、X4,HSC4 看 X6、X7。规律是编号的一半乘三,就是 A 相端子的号。图上用 HSC2,X3 就是它的 A 相。给 X3 来第一下,D0 走到一;再来第二下,D0 走到二。这时候换 X0 打第三下 —— HSC2 一点反应也没有,因为 X0 是 HSC0 的地盘。D0 还是二,它压根不认。

3/6

到值置 ON 并保持:断开也不清零

0:37

到值置 ON、保持、断开不清零

  • 到值就置 ONX0 数到三,线圈 HSC0 置 ON,Y0 跟着亮
  • 不卡在设定值继续打,累计值继续涨
  • 断开不清零M0 断开,线圈照样 ON,值停在三
  • 合上接着累加从三接着走到四,不从零重来
让端子自己数脉冲(高速计数) · 到值置 ON 并保持:断开也不清零 梯形图 到值置 ON:断开 M0 也不清零

到值置 ON:断开 M0 也不清零

数到设定值只是开始。CNT HSC0 K3:第一下,数到一;第二下,数到二;第三下,数到三,线圈 HSC0 立刻置 ON,右下角 Y0 也跟着亮 —— 它是拿 D0 跟三比出来的。第一件反直觉的事:它不卡在三上,你继续打它就继续涨。把 M0 断开,线圈照样 ON,累计值停在三,不清零 —— 普通计数器一断电就复位,它不。再把 M0 合上,从三接着走,到四,绝不像新的一样从零重来。

4/6

复位:RST HSC0 一条顶两条

0:37

RST HSC0:一条指令清两样

  • 只写编号不带 DRST HSC0,HSCD0 是同一寄存器的另一种叫法
  • 数到四,还没亮先数到四,没到 K5 线圈不亮
  • 一条指令清两样线圈复位 + 累计值双字清零
  • 清完从零重数断开 M0 是清不掉的,必须 RST
让端子自己数脉冲(高速计数) · 复位:RST HSC0 一条顶两条 梯形图 RST HSC0:线圈和累计值一起清零

RST HSC0:线圈和累计值一起清零

数上去之后怎么清回零?用 RST。写法是 RST HSC0,只写编号、不带 D,HSCD0 是同一寄存器的另一种叫法。先给 X0 打第一下,数到一;打第二下;打第三下;打第四下 —— D0 走到四,线圈没到 K5 所以还不亮。按一下 M1:它一次干两件事,线圈 HSC0 复位,累计值双字也清零,D0 跟着回到零。清完再打是从零重数。复位按钮一定接 RST,光断 M0 清不掉。

5/6

读和写:DMOV 是唯一的出口

0:37

DMOV 读写:一进一出

  • 不能直接用除 DMOV 外任何应用指令、比较指令都不行
  • 先写:D20 进 HSC0DMOV D20 HSC0 把 D20 的数值塞进计数器
  • 再读:HSC0 出 D0DMOV HSC0 D0 把累计值抄到 D0,才轮到比较触点
  • 两端都是双字两个操作数都是 32 位,所以用 DMOV
让端子自己数脉冲(高速计数) · 读和写:DMOV 是唯一的出口 梯形图 一写一读:D20 进 HSC0,HSC0 出 D0

一写一读:D20 进 HSC0,HSC0 出 D0

手册专门强调一句:它不能直接参与除 DMOV 以外的任何应用指令,比较也不行,必须先用读写搬进普通寄存器。第一条 DMOV D20 HSC0 是先写:把 D20 的数塞进计数器。第二条 DMOV HSC0 D0 是读:把累计值抄到 D0。读出来,才轮到 DLD>= 比较触点干活。把 D20 改成两百五,计数器就是两百五,读回 D0 也是两百五,Y0 亮;改成五十,Y0 灭。两头都是双字。

6/6

AB 相:B 相电平定方向

0:39

CNT_AB:AB 相认正反转

  • 多了 B 相X0 是 A 相脉冲,X1 是 B 相电平
  • 电平常低就加X1 低电平,脉冲来一个加一
  • 扳高就减X1 扳高,同样的脉冲往回退
  • 编码器正反转这就是编码器认正反转的做法
让端子自己数脉冲(高速计数) · AB 相:B 相电平定方向 梯形图 AB 相:X1 低就加、X1 高就减

AB 相:X1 低就加、X1 高就减

最后一种 AB 相。CNT_AB 不止用 X0,还搭上 X1:X0 是 A 相的脉冲,X1 是 B 相的电平,电平高低决定方向。X1 低时,每来一个脉冲加一:先打第一下,D0 走到一;再打第二下,D0 到二,Y0 亮起,表示到了。把 X1 扳高,方向就反了:往回第一下,D0 退到一;往回第二下,退到零,Y1 重新亮。同样是 X0 的脉冲,X1 一个电平就翻了方向。这就是编码器认正反转的做法。

想亲手试一下?

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