【萌新科普向】一个信号优先级的案例分享
异星工厂吧
全部回复
仅看楼主
level 11
今天看到贴吧有人问 在货物处于不同数值的前提下灯泡显示不同的颜色 这个问题,故而临时起意想借这个问题说一说信号优先级的用法。
大佬退让,萌新请进。
2020年08月11日 09点08分 1
level 11
2.案例
好了,在了解到什么是信号优先级后便可以回到一楼我说的那个案例了。
问题:如何在货物处于不同数值的前提下让灯泡显示不同的颜色?
基于信号优先级的思路,我有两种思路,一种是利用判断器进行比较,另一种是利用运算器进行计算筛选。就是一楼那张图里面的这两种。
2020年08月11日 09点08分 3
level 11
2.1基于判断器的方案
在开始之前,需要进行一些假设。
假设我最多需要70个铁片,每10个铁片对应一个等级。换句话说我电路设计为在铁片≤10的时候灯泡亮一个颜色,10<铁片≤20的时候灯泡又亮一种颜色,以此类推总共对应7种颜色。
2020年08月11日 09点08分 4
level 11
2.1基于判断器的方案
先说各个元器件设置,再说原理吧。
需要元器件:灯泡*1,判断器*1,常量箱*1
灯泡设置:任意值>0允许灯亮,勾选 使用颜色标识;图1
常量箱设置:红色10,绿色20,蓝色30,黄色40,粉色50,青色60,白色70;图2
判断器设置:每一信号≥铁片,输出每一个信号,将输出信号设置为常量1。图3
2020年08月11日 10点08分 5
level 11
2.1基于判断器的方案
现在来说说原理吧。直接举例分析说明。
举例:我现在箱子里面有25个铁片(我用常量箱代替)
电路工作流程分析:
1.判断器内部信号分别进行判断:红色10,绿色20,蓝色30,黄色40,粉色50,青色60,白色70 分别和 铁片25 进行比较,符合判断条件的信号将被输出。
2.判断器信号输出:经过比较,红色信号 和 绿色信号 不满足判断条件 每一信号≥铁片,所以不进行信号输出。由于设置了输出常量1,所以输出的每个信号值均为1。具体如图1
3.灯泡被同时输入信号 蓝色1,黄色1,粉色1,青色1,白色1,铁片1。但是灯泡同一时刻只能显示一种颜色,所以基于颜色信号的优先级,灯泡只选择显示蓝色。(备注:基于信号优先级的原因,颜色信号所对应铁片的数值范围是不可进行更改的,请注意了)
到此,基于判断器的方案介绍完成。 是不是觉得很简单呢,只用这么一点点东西就解决了这么复杂的问题。
先吃饭,另一个再说
2020年08月11日 10点08分 6
level 9
请问颜色信号的优先级是系统默认的吗?具体顺序是什么?
2020年08月11日 10点08分 7
系统默认,无法更改。具体情况参考我那个链接,那里给出来详细的验证过程。大致顺序为左上角优先级最高,右下角最低
2020年08月11日 11点08分
@不羁的迷途 链接被吞了,看不到,楼下能发个简单的顺序么
2020年08月11日 11点08分
就是不好说才叫你看帖子,简单来说同一栏里左上角第一个优先级最高,然后从左往右优先级依次降低。 你直接在我主页里查找那个帖子 从入门到太监 第9楼。
2020年08月11日 11点08分
level 9
2楼不见了
2020年08月11日 11点08分 8
没有啊,怎么我看着还在
2020年08月11日 11点08分
level 11
2楼吞了?
2020年08月11日 11点08分 9
level 9
2020年08月11日 12点08分 10
level 13
(备注:基于信号优先级的原因,颜色信号所对应铁片的数值范围是不可进行更改的,请注意了)
不好意思,这句没看懂,是常量箱的颜色信号的数值只能是优先级从小到大吗?不能颠倒?
2020年08月11日 12点08分 11
这句话的确是我偷懒了没表达清楚。举例:假设铁片在[0,10]区间内和在区间[10,20]所对应的颜色只能是红色和绿色,二者顺序不能反过来。如果反过来了的话,红色对应[10,20],当铁片数<10,依然是红色而不是绿色。因为<10七种颜色都会输出,优先级最高的是红色而不是绿色。
2020年08月11日 12点08分
懂了,粗暴点就是:红1 绿2 蓝3,不能红2 绿1 蓝3[哈哈]
2020年08月11日 12点08分
@抹抹黑 准确来说,红只能对应铁片的0-10,绿对应10-20,蓝对应30-40。常量箱设置的红10 绿20这个10 20只是对应铁片相应区间的最大值。
2020年08月11日 12点08分
试过了,数值可以随意变动,规则是:红色数值要最小,绿色要比红色大,蓝色要比绿色大以此类推。红<绿<蓝<黄<紫<青<白,数值大小顺序不能乱了。
2020年08月11日 13点08分
level 11
2.2基于运算器的方案
在讲这个方案之前,要说一下运算器 除法 的一个特性。
运算器除法特性:进行除法运算只输出整数部分。举例:假设运算器处理10/3,最后只会输出3,剩下的小数部分直接删除;同理3/10输出的结果是0。
这个特性在接下来的电路会用到。
2020年08月11日 12点08分 12
level 11
2.2基于运算器的方案
同样,回顾上述假设。
假设我最多需要70个铁片,每10个铁片对应一个等级。换句话说我电路设计为在铁片≤10的时候灯泡亮一个颜色,10<铁片≤20的时候灯泡又亮一种颜色,以此类推总共对应7种颜色。
2020年08月11日 12点08分 13
level 11
2.2基于运算器的方案
所需元器件:灯泡*1,运算器*1,常量箱*1
灯泡设置:任意值>0允许灯亮,勾选 使用颜色标识;图1
常量箱设置:红色10,绿色20,蓝色30,黄色40,粉色50,青色60,白色70;图2
运算器设置:每一信号/铁片数目,输出每一信号。图3
2020年08月11日 12点08分 14
level 10
好耶
2020年08月11日 12点08分 15
你来凑什么热闹[滑稽][滑稽]
2020年08月11日 13点08分
@不羁的迷途 你可是热心的问题解决者诶[笑眼]超棒的
2020年08月11日 15点08分
@贴吧用户_QWtyGRM 因为我又懒又菜,搞不出牛掰的东西,只能没事水水贴刷刷存在感[狂汗][狂汗]
2020年08月12日 05点08分
@不羁的迷途 一样一样[滑稽]
2020年08月12日 07点08分
level 11
2.2基于运算器的方案
举例:我现在箱子里面有25个铁片(我用常量箱代替)
电路工作流程分析:
1.运算器内部信号相除。
计算过程:10/25=0;20/25=0;30/25=1;40/25=1;50/25=2;60/25=2;70/25=2;25/25=1。
通过计算结果可以得出红色信号和绿色信号输出的值为0,所以红色和绿色不输出,输出蓝色1,黄色1,粉色1,青色2,白色2,铁片1。图1
2.灯泡被同时输入信号 蓝色1,黄色1,粉色1,青色2,白色2,铁片1。但是灯泡同一时刻只能显示一种颜色,所以基于颜色信号的优先级,灯泡只选择显示蓝色。(同样,顺序不能反过来)
2020年08月11日 13点08分 16
能用你这个方法让铁板齿轮红瓶分优先级输出信号吗
2023年07月02日 11点07分
1 2 尾页