the post
"Combinators 101" by GopherAtl is a nice introduction in circuit networks and signals.
the other blueprint might look complicated, but it is really only an optimized layout of a few simple basic elements, then copied 5 times for 5 belts with 5 displays, and optimized a bit again :-)
the following blueprint shows those basic elements
Code: Select all
H4sIAAAAAAAA/+1Y227iMBD9lSqPK6ciBlpVXe+PVKvIJEOx1rEjx6FFEf++NoSCHUIuUKSVlpfS2nPxOeOZ46bygcuE8oeYVCyRoiBVxUQKnyRCBXsXlJNK
b3IgAdOQBUjQzHwX7JNBqMsFBNstqg3wBYMUEpaCChOZLZigWipjuEUgNNMMbFDfcVhklPMA5bIwW6Qg1ScJI7Qh4XyLTKJaSR4vYEXXTCpSJUwlJdOxWUnr
/UumCh27Oa2Z0iXlh7T2i+HHyuQa7NwWmgpNopn5nuVU2UxJQOwpzaKAxLo26b4FUfCbVApSk/ruFJuYpWSKDnmYX/DWflB9st1xQk6z3DsTtmea9vM/P/Uf
Of7PIOzEmezCPJ4Fr7Y9gldchR6eHD4Oij8DJEudl0O95huTWCl0vFQyi5kwHohWJYzjBLXB6S49+UyitwB3uo8cH1GvAhjC/1M7/1QxvcpAs6S1BMLocW6D
mZOmTO1jmfDNejj6GlkSQJOVc5+QzMGUgQ0Y/BhTBz3Jdkl86c/bQCjPIfl0DyTDu0E5c2t5Og7LRIHJdQ1hJlOI7UgIC1mqBLzSnBk4Jy6aS8Y1qNOBVNPD
GYiQKs2WNNHBSTCtqChyqXS4AK69CFM/Au5nhxt2tx4/C06TP6cku33zl12q/YOgCw5xygr7c9cGv9YM0mm8oiK1WWjDTuGuH/6632j5sOcaM3bQuwIQ7sWb
tI++i/BG42iZjDMbGe1/DTRGz8AaONMH1pKlLszNJtCLnQs3+0SoNvsNNmqoe+e0907ce2dU7/z2Kormz76SRWUBxjuXal8bPQerL23P8Y/b+e+Sp7N2RK5T
pw1I8CS6QpYe3Z2TpUvKi766FM/bJGYTWTN9fV1zcrXqk7XrPgvuvKt9HcftMBzKnb6rR7RJqo+1OeHmy3hq3gn1C7JNm3TV2rCnUK2DOxG5TeEVYO17mXzB
8j3VeeHRdAZg9y3TvNttYhD7arCzU3ivppdBZNpWOrtL44gm/kweQs0OhNs0Dtz+bMUz/1q00WRgbjcc1rvx3SjAV1GQM3Gj1n3h0Y99sdzzogwfl/9C1Y9u
SA2wehe2q0L3k2F7+L8lfMTPwfZVgS6VeIhfQaR/AQU+9+ACFQAA
using the blueprint gives this :
- BPcomponents.PNG (224.48 KiB) Viewed 10877 times
the most difficult to understand (but once understood becomes quite easy :-) is how to store some value. to achieve this, simply connect the output of a decider back to its input and set the condition to be true for the most time. for the output options, you select "input count". the "always true" condition together with the "input count" causes the value to loop around from input to output, then through the wire which connects output to input, and then again through the decider.
in a bit more detail since timing is important: the decider takes the input, does its work during one tick, and outputs the computed value. in the next tick, it takes this new value, computes again, etc.
now that we have a value stored in a decider, we need to change the value: when the condition becomes false, output will be 0, and thus the value is cleared, but on the next tick, the condition will be true again since the value is much lower now. this is useful eg for a clock that resets itself always when counting up to some limit like 60 ticks, 60 seconds (3600 ticks), etc. and how do we make it count up? just add some value, eg by connecting a constant combinator to the input. in the above example, i have used black for the clock value, and grey for the limit so that i can easily change that value without having to edit anything in the setup, but only need to modify the constant combinator.
now again that loop: let's start with any value, and black=1 on the constant. the combinator always adds all inputs, thus computing (during this tick) "old value + 1" and checks the condition. if the clock doesn't overflow yet, we will have the new value (= old+1) at the output (at the end(!) of this tick) and thus also back at the input for the start of the next tick.
this results in having 1 (0+1) on the green wire for the first tick, then 2 (1+1) on the second, etc, until we finally get 59 (58+1) on the 59th, and 60 (59+1) on the 60th. the condition (assuming we compare "black<60" to count a second) is no longer true, and we get an output of 0, thus a value of 1(0+1) on the green wire for the 61st tick.
the last paragraph explains why there is a small but important difference on how you connect something to this counter: the nixie display is connected to the counter with the same color wire that is also used for connecting input and output, and input and constant. thus we will have the added value +1 also on the display. with the above blueprint, the display shows the values 1-300 for counting 5 seconds, or in the above paragraph it would show 1-60. but if you use the other color (in this case red) for the wire (like the connection to the green and purple deciders), the values would only be the output values of the counter without the +1 from the constant, thus 0-59. and on a closer look, you could see this difference since on the same tick, the red wire outputs 0 while the green wire already has the next value of 0+1. you also would get the same effect when using a red wire for connecting the constant to the decider: the +1 would not be on the green wire, but a 0, and only after the tick you would get 1 on the output of the decider.
the two deciders only add color to the nixies. during the first 100 of 300 ticks, the display is uncolored. from 100 to 300, there is a green signal, and from 200 to 300, there is also a purple signal that has precedence before green (the rules which color is shown when there are several color signals, are different for nixies and lamps!). for recoloring the display, setting up >100 and >200 is good enough, but be aware that for exact measurements, this would be uncolored for 101 ticks from 0-100, green for 100 from 101-200, and purple for 99 from 201-299. when connecting the deciders with the green wire, it would be 100 ticks for each color (1-100, 101-200, 201-300).
ok, most difficult part is done ...
the belt transports artifacts and has two connections to circuit networks. the deciders at the bottom right enable them for exactly 100 ticks (watch out for the conditions: >100 and <201).
instead of using other colors and connecting both deciders directly to the clock, i saved a few wires by using black everywhere. thus the black clock signal is forwarded through the first decider when it is >100 and i don't need a direct connection between clock and second decider.
last part of the setup: the first connection on he belt goes to a multiplier that multiplies any signals by 1 and outputs as white signal. thus i can use a blueprint for the setup, no matter what kind of items i count. the other connection on the belt outputs pulses just like the first one (one pulse is a signal for exactly one tick only) and that is multiplied by MINUS 1. those two signals then are combined at the decider at the top which is built exactly like the clock at the bottom, but taking the +1 and -1 pulses instead of a constant +1 from a constant combinator. the condition for looping the output back to the input and thus store the value is set to "(almost) always true" (white < "insanely large") so that in contrast to a clock, the decider never resets its value automatically. the effect of adding those two pulse sources is that the counter counts how many items are on the belt between the two pulse generators. from the display, we can see that there are 14-15 items on a yellow belt of length 5 :-) feel free to replace yellow belts with red and blue to see whether they have the same or another number of items, what their throughput is, etc.
last, a hint on the original blueprint: each belt in that setup has two counters, one with big nixies for the current value, and a second which stores the last number of the previous minute. by using exact timing, the counter is cleared at the end of a minute and one tick later the new value is added, effectively storing the new value. it took me quite some time to get that timing right since the "gate" that i used between the other combinators also caused a delay :-)
to use few wires to connect all those counters, i kept them separate and didn't use the trick of inputting "any" and outputting to another signal (like i did with white here)
and finally, i added the artifact in the constant combinator only to easily start and stop items on all belts at the same time by setting the constant combinator to 0, 1 or 2 artifacts :-) thus you can forget about the red wires that connect that combinator to the belts.