异星工厂吧 关注:62,293贴子:398,897
  • 12回复贴,共1

【萌新科普向】一个信号优先级的案例分享

取消只看楼主收藏回复

今天看到贴吧有人问 在货物处于不同数值的前提下灯泡显示不同的颜色 这个问题,故而临时起意想借这个问题说一说信号优先级的用法。
大佬退让,萌新请进。


IP属地:重庆1楼2020-08-11 17:34回复
    2.案例
    好了,在了解到什么是信号优先级后便可以回到一楼我说的那个案例了。
    问题:如何在货物处于不同数值的前提下让灯泡显示不同的颜色?
    基于信号优先级的思路,我有两种思路,一种是利用判断器进行比较,另一种是利用运算器进行计算筛选。就是一楼那张图里面的这两种。


    IP属地:重庆3楼2020-08-11 17:47
    回复
      2025-07-18 00:20:18
      广告
      2.1基于判断器的方案
      在开始之前,需要进行一些假设。
      假设我最多需要70个铁片,每10个铁片对应一个等级。换句话说我电路设计为在铁片≤10的时候灯泡亮一个颜色,10<铁片≤20的时候灯泡又亮一种颜色,以此类推总共对应7种颜色。


      IP属地:重庆4楼2020-08-11 17:53
      回复
        2.1基于判断器的方案
        先说各个元器件设置,再说原理吧。
        需要元器件:灯泡*1,判断器*1,常量箱*1
        灯泡设置:任意值>0允许灯亮,勾选 使用颜色标识;图1
        常量箱设置:红色10,绿色20,蓝色30,黄色40,粉色50,青色60,白色70;图2
        判断器设置:每一信号≥铁片,输出每一个信号,将输出信号设置为常量1。图3





        IP属地:重庆5楼2020-08-11 18:01
        回复
          2.1基于判断器的方案
          现在来说说原理吧。直接举例分析说明。
          举例:我现在箱子里面有25个铁片(我用常量箱代替)
          电路工作流程分析:
          1.判断器内部信号分别进行判断:红色10,绿色20,蓝色30,黄色40,粉色50,青色60,白色70 分别和 铁片25 进行比较,符合判断条件的信号将被输出。
          2.判断器信号输出:经过比较,红色信号 和 绿色信号 不满足判断条件 每一信号≥铁片,所以不进行信号输出。由于设置了输出常量1,所以输出的每个信号值均为1。具体如图1
          3.灯泡被同时输入信号 蓝色1,黄色1,粉色1,青色1,白色1,铁片1。但是灯泡同一时刻只能显示一种颜色,所以基于颜色信号的优先级,灯泡只选择显示蓝色。(备注:基于信号优先级的原因,颜色信号所对应铁片的数值范围是不可进行更改的,请注意了)
          到此,基于判断器的方案介绍完成。 是不是觉得很简单呢,只用这么一点点东西就解决了这么复杂的问题。
          先吃饭,另一个再说


          IP属地:重庆6楼2020-08-11 18:15
          回复
            2楼吞了?


            IP属地:重庆来自iPhone客户端9楼2020-08-11 19:13
            回复
              2.2基于运算器的方案
              在讲这个方案之前,要说一下运算器 除法 的一个特性。
              运算器除法特性:进行除法运算只输出整数部分。举例:假设运算器处理10/3,最后只会输出3,剩下的小数部分直接删除;同理3/10输出的结果是0。
              这个特性在接下来的电路会用到。


              IP属地:重庆12楼2020-08-11 20:48
              回复
                2.2基于运算器的方案
                同样,回顾上述假设。
                假设我最多需要70个铁片,每10个铁片对应一个等级。换句话说我电路设计为在铁片≤10的时候灯泡亮一个颜色,10<铁片≤20的时候灯泡又亮一种颜色,以此类推总共对应7种颜色。


                IP属地:重庆13楼2020-08-11 20:51
                回复
                  2025-07-18 00:14:18
                  广告
                  2.2基于运算器的方案
                  所需元器件:灯泡*1,运算器*1,常量箱*1
                  灯泡设置:任意值>0允许灯亮,勾选 使用颜色标识;图1
                  常量箱设置:红色10,绿色20,蓝色30,黄色40,粉色50,青色60,白色70;图2
                  运算器设置:每一信号/铁片数目,输出每一信号。图3




                  IP属地:重庆14楼2020-08-11 20:55
                  回复
                    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。但是灯泡同一时刻只能显示一种颜色,所以基于颜色信号的优先级,灯泡只选择显示蓝色。(同样,顺序不能反过来)


                    IP属地:重庆16楼2020-08-11 21:03
                    收起回复
                      3.拓展
                      是否可以利用信号优先级的顺序这一个特性制作出一个彩色显示屏的。
                      目前彩色显示屏的方案有是有了,但是原理和这并不一样。这个我没有试过,有能力的可以尝试一下。如图下的彩屏就是再加一个常量箱分别输入不同颜色所对应的信号值。


                      IP属地:重庆17楼2020-08-11 21:08
                      回复
                        原来早有人研究了。http://tieba.baidu.com/p/5804671862?share=9105&fr=share&unique=9ACD82D7A0D4F0D8B0E9AAAD5EA1D3C7&st=1597158347&client_type=1&client_version=11.6.1&sfc=copy


                        IP属地:重庆来自iPhone客户端18楼2020-08-11 23:06
                        收起回复
                          补一个古老的彩屏显示器教程https://forums.factorio.com/viewtopic.php?f=193&t=37490


                          IP属地:重庆来自iPhone客户端21楼2020-08-23 19:37
                          回复