异星工厂吧 关注:63,211贴子:408,481
  • 11回复贴,共1

【半个电路设计思路】一个升级版通用车库设计思路展示

取消只看楼主收藏回复

这是一个通用车库电路,作用是根据需求车辆数释放对应的火车数,该电路可同时释放多辆载货不同的火车。


IP属地:重庆1楼2020-09-27 13:45回复
    现场码字,慢!!!
    轻喷!!!
    建议先观看我之前的水贴,也是一个通用车库的设计思路。
    链接:https://tieba.baidu.com/p/6771758175?pid=133036671355&cid=0&red_tag=2835196999#133036671355


    IP属地:重庆2楼2020-09-27 13:47
    回复
      2025-11-15 18:50:41
      广告
      不感兴趣
      开通SVIP免广告
      2.电路作用及核心思路
      2.1电路作用:需求区发出各自需要运送什么货物的火车数量的脉冲信号到达候车区,候车区电路根据信号种类和数量分别释放对应个数的火车出候车站。从这一点就可以看出,候车区的车站是火车的必经之站,所有装满货的火车必须到达候车站等待下一步指令,火车站本身无需电路控制开关。
      2.2核心思路
      1.检测火车携带的货物,将候车站所有火车携带不同货物的车辆数给统计出来(算是动态编号);
      2.根据需求脉冲信号与动态编号信息进行对比;
      3.符合要求的火车释放出去。
      这个电路最难的点便是第二点,如何对比很费脑子。另外,由于是动态编号,火车的到站和离站都会迫使电路给火车的编号发生改变,所以只能够使用脉冲信号作为需求信号。


      IP属地:重庆3楼2020-09-27 13:58
      回复
        3.检测货物信息及统计信息
        首先,读取火车站传递过来的货物信息和编号信息
        其次,消除火车编号信号T,这会影响检测货物信息,所以必须消除
        (1)具体方法,直接使用*-1的方式消除信号T,考虑信号经过每个运算器都需要1tick时间,为了避免意外还需要使用一个运算器平衡一下。图1

        然后是判断货物信息
        (1)直接一个判断器检测,任意信号>0输出 1个任意信号

        最后是统计信息
        这一部分听着牛逼哄哄的,其实很一般。具体操作是上面第三步检测到有货物信息输出一个货物信息,通过一个运算器+0的方式直接输出到下一个就可以了。
        举例:5个车站,1 3 5为绿板火车,2 4为铜板火车。
        先检测出各自携带的货物信息输出1个信号。
        1的+0运算器,输入端输入自身车站检测到的一个信号,以及上一个运算器输出端的信号。同类信号会自动融合的。
        具体表现为:
        1号 输入端 1个绿板信号 输出端 1个绿板信号;
        2号 输入端 1个绿板信号 1个铜板信号 输出端 1个绿板信号 1个铜板信号 ;
        3号 输入端 2个绿板信号 1个铜板信号 输出端 2个绿板信号 1个铜板信号 ;
        4号 输入端 2个绿板信号 2个铜板信号 输出端 2个绿板信号 2个铜板信号 ;
        5号 输入端 3个绿板信号 2个铜板信号 输出端 3个绿板信号 2个铜板信号。
        通过上述方式,便统计出候车区货物信息。


        IP属地:重庆4楼2020-09-27 14:21
        回复
          4.根据需求脉冲信号与动态编号信息进行对比
          (1)在进行对比前将所有需求信号转变为相反的负数。这一步的目的因为同类信号自动融合,直接给对比完了,无需再利用额外的运算器处理,省事。

          (2)直接用一个+0的运算器将需求区的负数信号和楼上最后一步运算器输出端的信号进行融合。接下来就是判断输出环节,下一楼再讲。先来说说这部分的工作状态。
          假设需求2个绿板火车,1个铜板火车,具体表现为:
          1号 输入端 1个绿板信号 需求信号负数(绿板-2,铜板-1)输出端 绿板-1,铜板-1;
          2号 输入端 1个绿板信号 1个铜板信号 需求信号负数(绿板-2,铜板-1)输出端 绿板-1,铜板0;
          3号 输入端 2个绿板信号 1个铜板信号 需求信号负数(绿板-2,铜板-1)输出端 绿板0,铜板0 ;
          4号 输入端 2个绿板信号 2个铜板信号 需求信号负数(绿板-2,铜板-1)输出端 绿板0,铜板1;
          5号 输入端 3个绿板信号 2个铜板信号 需求信号负数(绿板-2,铜板-1)输出端 绿板1,铜板1。
          通过上面输出数值可以看出,从前往后看,凡是需要被调用的火车,所对应货物类型信号数值全是≤0,>0的全是不需要的(调用火车站:绿板1 3,铜板2)。这一点很重要甚至说是电路的最核心部分也不为过,因为关系到后面是否允许发车的判定条件。


          IP属地:重庆5楼2020-09-27 14:37
          回复
            5.判断条件
            如何确定这辆火车就是我需要释放的火车呢,这点最核心也是最难想明白的。
            通过楼上分析,我们可以确定一个条件那就是不需要调用火车的信号>0。举例说就是4号火车站不需要被调用,所有铜板信号>0;5号火车站不需要被调用,所有绿板信号>0。
            但问题在于一个火车站是同时输出多个信号信息,有一部分>0,一部分≤0。如4号火车站,同时输出绿板0,铜板1。那么这辆火车我是释放呢还是不放呢?
            所以还需要一个东西能表明这辆火车运的是什么货物,如果是铜板就不放,反正则放。
            想法都会,但是怎么实现这一点却很难。
            通过上述描述,我们可以发现不放出的火车货物信号必然>0,我们便是通过这一点来做文章的。
            首先,将第4部分的输出信号拉出来,必然≥1
            然后是将3.3部分输出的一个货物信号拉出来,必然=1
            这样便可以发现,不被释放的火车所对应的火车信号数值必然≥2,换句话说<2的全部释放。
            这样便完成了核心判断输出。具体如图


            IP属地:重庆6楼2020-09-27 14:59
            回复
              6.发车信号输出
              6.1火车发车条件设置


              IP属地:重庆7楼2020-09-27 15:00
              回复
                6.2发车信号产生及输出条件设置
                6.2.1发车信号产生
                什么时候产生发车信号很关键,因为采用了类似动态编号的方式,只要火车走了编号再一次改变又有新的火车站成为1号站。所以早晚都不行,只能在确定的某一刻。
                因此,这个发车信号我直接利用输入候车区的脉冲信号,当任意信号不等于0的时候输出一个发车信号C。

                6.2.2输出条件设置
                由于采用了脉冲信号,所以信号到达每一个判断器的时间必须经过平衡一下,保证所有需要的信号在同一时刻传达到所需的位置,不然直接gg
                所以第一步便是平衡时间。这个虽然设置的是信号T>0允许输出信号C,但实际核心作用是信号到达平衡时间用的,这点记住了,很重要。

                最后则是将之前的信号X(核心判断最后输出的信号X)作为判断条件,只有信号X=0才允许输出信号C到火车上。


                IP属地:重庆8楼2020-09-27 15:16
                回复
                  2025-11-15 18:44:41
                  广告
                  不感兴趣
                  开通SVIP免广告
                  最后说一下注意事项:
                  1.我实验用的脉冲发生器属于第二种,但是这种不行,有弊端,直接整第三种就行了。另外,脉冲发生器应当放在需求区而不是我这儿的试验区。
                  脉冲发生器帖子:https://tieba.baidu.com/p/6679222233?pid=132154301815&cid=0&red_tag=1101877020#132154301815
                  2.这个电路在货物需求数量为1的时候可能会出现不会调用火车bug,具体原因不明也不想去查,太累了。但是这个bug并不影响,随着需求增大火车数量增加自然会跳到2 3辆火车,所以无所谓。这一点也就表明你们使用的脉冲发生器只能是第三种。
                  3.这个电路我只经过小规模测试,并没有大规模实际验证,还有什么bug我不知道。
                  4.这个电路最初的设计构思用于服务全局同名车站的,但是后面发现区域同名车站也行。所以也别问我做出来干嘛,历史遗留问题外加本人突然想到解决方案就做了。


                  IP属地:重庆9楼2020-09-27 15:24
                  回复
                    蓝图代码:
                    求取:htt去ps://pa去n.bai去du.com/去s/1去uF2v7去NMEa_50Fe-M去IGn2aA
                    前期:hqi5


                    IP属地:重庆10楼2020-09-27 15:27
                    回复
                      这个电路再加一个到站关闭火车站的结构会更好些,扩展以及分成多块候车区后对火车进站更友好些


                      IP属地:重庆来自iPhone客户端18楼2020-09-27 22:26
                      回复
                        完全正确,现在的思路完全不同


                        IP属地:重庆来自iPhone客户端31楼2021-07-27 22:49
                        回复