异星工厂吧 关注:56,921贴子:330,320

分享一个自己研究的,判断是否卸空至少一种货物的判断器设计

只看楼主收藏回复

新人初学,求指点。
本设计适用于四车厢拉多种货的火车,比如从石化区拉塑料、硫磺、润滑油和固体燃料的火车。这种车在卸货站的发车条件需要至少满足已卸空任意一种货物,否则就等待继续卸载。
楼下上图。


IP属地:河北1楼2024-05-08 23:15回复
    整体布局。4个判断运算器,1个算术运算器,1个常量运算器。

    1号判断运算器,从车站读取输入“每个信号”,判断是否大于0,输出为信号A,常量1。这样得到的输出结果就是火车上数量大于0的货物种类计数。

    2号算数运算器,将1号判断运算器输入的信号A减1,得到信号B。

    3号判断运算器,比较1号运算器输入的信号A和2号运算器输入的信号B(A-1)。如相等则输出为常量1的信号C。至于为什么会相等,稍后解释。

    4号常量运算器,输出信号C=负1。用作重置运算器6。

    5号判断运算器,判断信号A是否等于0,等于0则输出常量运算器输入的信号C的值,即负1。

    6号判断运算器,信号C锁存器,一旦信号C大于0则输出C=1,输出端连到输入端进行锁存,直到被C=负1重置。


    IP属地:河北2楼2024-05-08 23:28
    回复
      列车未进站时,A=0,B=-1,C=-1。
      列车进站后,A可能等于0至4。如果A=0,表示车上是空的。设置发车条件为货仓清空,火车即会离开。如果A=1,只有一种物品,设置发车条件为货仓清空,火车卸完货即会离开。
      假设A为4,则此时2号算数运算器输出B=3。3号判断A>B,无输出,即C=0。5号判断A不等于0,无输出,即C=0。
      随着卸货,其中一种货卸完,A变成3,在此tick,2号运算器还未输出B=2,B仍然为3,3号运算器判断A=B,输出C=1。6号判断器判断C大于0,输出C=1,自己的输入也变为C=1。之后B变为2,A>B,3号无输出,但是6号的判断结果不变,仍然输出C=1。6号的输出信号接给车站,火车可以读取并判断C>0作为其中一条发车条件。
      火车发车后,A变为0,5号判断器输出C=-1,6号判断器接收到5号的C=-1和自己输出的C=1,得到C=0,变成无输出,即C=0。整套系统重置,等待火车再次进站。


      IP属地:河北3楼2024-05-08 23:50
      回复
        花里胡哨。直接写个每种货物-1的常量箱连电线杆上,然后车头也连电线杆上读取货物+推送信号。发车任意信号小于0


        IP属地:上海4楼2024-05-08 23:57
        收起回复
          实际测试的结果和预期一样。设备上显示的信号符合判断。
          不过刚刚想到一个问题,如果火车同一tick卸完一种以上的货物,导致A变成2甚至1,则A<B,3号无输出,火车得不到发车条件。
          应该修改3号的判断条件为A小于等于B,这样不管卸完几种货物都能输出C=1给火车。
          所有货物同时卸完,A=0的情况则不需要C=1,靠货仓清空发车即可。
          新人第一次做判断器设计,可能有各种问题,欢迎大家指点。


          IP属地:河北5楼2024-05-09 00:11
          回复
            你这东西,能在火车发车页面直接设置啊


            IP属地:海南来自iPhone客户端6楼2024-05-09 07:50
            收起回复
              四楼跟我思路一样


              IP属地:湖北来自Android客户端7楼2024-05-09 08:23
              回复
                好几年不玩了。不知清楚更新到啥版本了。
                要是按照古老版本的方式,可以读取到车辆每种货物的数据量,然后通过多个运算器+判断去,进行递减,直到有一组得到数值=0,输出后,通过判断其控制火车站发车。
                说起了简单,部署起来微微麻烦,你要有多组数据存储组合来记录,当前的这一组运算器是不是参与运算,然后判断他输出结果。做出来一个,其他的直接复制就行,最后加一组统一判


                IP属地:山东8楼2024-05-09 08:39
                回复
                  感觉你是想节约火车数量。那把产地和工厂用信号线连上。工厂加上缓冲箱,任意货物低于设定值,就发车,产地用筛选爪设定装车货物。为了防止车厢装满后爪子手上还拿着东西,可以只装39格。
                  混装的话用机器人更简单点,发车的同时产地开始设定蓝箱需求,够一车货物开始装车,车走了,启动另一个爪子把箱子里的多余产品抓走。一样,装车数量最好是装39格货物,免得爪子手上还拿着东西。


                  IP属地:四川9楼2024-05-09 10:53
                  收起回复
                    你这样省了火车但是其他设置需要考虑的东西就大大增加了,就好像为了省事铁路铺单轨,然后发现单轨要正常运行信号比双规复杂的多,整天撞车或者找不到车站~~
                    老老实实一种物质一辆车吧


                    IP属地:山东10楼2024-05-10 12:34
                    收起回复
                      火车混运还是等2.0吧,现在的原版火车没法信号调度,混运的意义不大,单车单货比较好


                      IP属地:上海来自Android客户端11楼2024-05-10 21:12
                      回复



                        IP属地:山西12楼2024-05-11 07:16
                        回复
                          不如试试ltn或者cybersyn


                          IP属地:福建来自Android客户端13楼2024-05-12 07:53
                          回复
                            直接任意信号=0,发车秒了


                            IP属地:英国来自Android客户端14楼2024-05-23 00:31
                            收起回复
                              我刚设计了一个电路
                              一个常量器输出车站所需货物的负值,和实际库存叠加,
                              然后两个判断器组成一个定时重置的计时器,一个判断器每当计时器重置的时候输出所有信号到锁存器,在锁存器前面加一个判断器判断每个信号小于零,这样就只输出缺货的信号。
                              重点来了——需要在每次输出信号到锁存器的前一个tick把锁存器重置,如果计时器的重置时间太短火车来的太慢会不断的叠加需求信号。因为所有信号到锁存器之前要经过一遍运算器,所以很轻易就能实现,一个连线正确的判断器就够了
                              然后一个运算器把锁存器的信号变成正的,输入到筛选爪上设置白名单,这样爪子就只抓缺货的东西
                              最后用另一种颜色的线连接爪子,接到判断器上,设置任意信号大于零,输出重置锁存器的信号,这样火车在卸车的时候就会每次抓取都刷新一次库存,只要货物够了就不会继续卸货了
                              火车控制就更简单了,锁存器的信号判断一下就可以控制车站同时叫火车过来


                              IP属地:山东15楼2024-05-23 09:58
                              收起回复