第41课 · 块里怎么排队

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

上一节课说了块会排队,这节课把"排队"这件事彻底看透:哪条指令会卡住后面的、怎么用忽略条件跳过暂时不想做的一步。

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

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

1/6

一条做完才轮到下一条

0:33

一条做完才轮到下一条

  • 手册怎么说按扫描时间顺序执行
  • ★ 关键在先后一条执行完才轮到第二条
  • 所以能放心写前一段没做完,后一段不抢跑
  • 看画面脉冲没发完,后面两条一直等
块里怎么排队 · 一条做完才轮到下一条 梯形图 脉冲还在发,后面两条一个都没动

脉冲还在发,后面两条一个都没动

上一课说了块里的程序是排队的,这一课就把这件事看透。手册的原话是:块内部的程序按照扫描时间顺序执行,条件成立的先执行,一条执行完了,才轮到满足条件的第二条。注意,这里说的不是同时,是有先后的。所以块里可以放心写两段互相依赖的动作,前一段没做完,后一段绝不会抢跑。画面里第一条就是发脉冲,后面的传值和自加都排在它后面,只要脉冲还没发完,它们就一直等着。

2/6

两条脉冲一前一后

0:31

两条脉冲一前一后

  • 手册的例子块里连着两条脉冲
  • 怎么排的Y0 发完才轮到 Y1
  • ★ 顺序执行一个条件也照样一条一条来
  • 看画面第一条在发,第二条不动
块里怎么排队 · 两条脉冲一前一后 梯形图 第一条脉冲还在发,第二条纹丝不动

第一条脉冲还在发,第二条纹丝不动

手册举过一个很典型的例子:块里连着写两条脉冲指令,第一条发给 Y0,第二条发给 Y1,后面还有一条读模块。这三条不是一起发的,扫描周期图上是这样排的:第一个周期发 Y0,Y0 发完了,才轮到发 Y1,Y1 也发完了,最后才轮到最后那条。所以同一个块里,哪怕只有一个执行条件,动作照样是一条一条来的。画面里第一条还在发,第二条纹丝不动。

3/6

不想做的那条就跳过

0:30

不想做的那条就跳过

  • 要解决什么某一条暂时不做
  • 忽略条件 SKIP条件成立就跳过
  • ★ 只跳这一条前后两条照做
  • 看画面中间那条一直没动
块里怎么排队 · 不想做的那条就跳过 梯形图 M3 开着:中间那条停住,前后两条在涨

M3 开着:中间那条停住,前后两条在涨

块里有时候希望某一条暂时不做,这就用得上忽略条件,助记符是 SKIP。手册的说法很直接:条件成立则跳过不执行,条件不成立或者为空就执行。等于给这一条挂了个开关,开关一通,这条就被跳过,它前后两条照做不误。在梯形图上它是一个独立的小框,写在这个梯级的最前面。画面里 M3 一直开着,中间那条自加就一直没动,前后两条各涨各的。

4/6

一个块里能分好几段

0:29

一个块里能分好几段

  • 能分几段每段自己的忽略条件
  • 互不干扰M3 只管第一段
  • ★ 硬规矩一条指令最多挂一个
  • 看画面第一条停、第二条涨
块里怎么排队 · 一个块里能分好几段 梯形图 M3 跳第一段、M4 放行,第二条在涨

M3 跳第一段、M4 放行,第二条在涨

一个块里可以放好几段程序,每一段都有自己的忽略条件,管自己那一段做不做。比如第一段用 M3 管,第二段用 M4 管,互不干扰:M3 接通只跳过第一段,第二段照样跑。这里有一条硬规矩要记牢:一条指令最多只能挂一个忽略条件,不能像触点那样串两个上去。画面里 M3 开着、M4 关着,所以第一条自加停着,第二条一直在涨。

5/6

忽略条件只认 X 和 M

0:27

忽略条件只认 X 和 M

  • 手册的死规定只能是 M 或 X
  • 哪些不行T、C、S 都不认
  • 还要不带偏移带变址的写法不行
  • 看画面X0 和 M3 都好使
块里怎么排队 · 忽略条件只认 X 和 M 梯形图 X0 和 M3 都能当忽略条件

X0 和 M3 都能当忽略条件

忽略条件不是什么都能用。手册写得很死:只能是 M 或者 X 这两种位软元件,而且不带偏移。T、C、S 这些不行,带上变址的写法也不行,写上去了程序也不会认。所以看到块里有跳过条件,先看它是不是 X 或者 M。画面里第一段用的就是输入 X0,一样好使;第二段用 M3,两种写法都合法。

6/6

块里别放什么、脉冲口怎么分

0:33

块里别放什么、脉冲口怎么分

  • 块里别放高速计数、脉宽调制、P/I 都别放
  • 别塞进 STL块和流程分开写
  • 脉冲口规矩各用一个口,别抢一个
  • 看画面两个块各用一个口
块里怎么排队 · 块里别放什么、脉冲口怎么分 梯形图 两个块各用一个脉冲口,同时跑

两个块各用一个脉冲口,同时跑

最后几条编写上的规矩,违反了程序照样能写,但运行时容易出问题。第一,块里不要放高速计数和脉宽调制这两条输出指令。第二,P 和 I 这类标签指令写进去也不起作用。第三,不建议把块塞进流程 STL 里,容易出意想不到的问题,最好把两者分开写。脉冲口还有讲究:不同的块尽量各用一个口,主程序和块更不能抢同一个口。画面里两个块各用 Y0 和 Y1,谁也不碍谁。

想亲手试一下?

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