本帖最后由 Vutoc 于 2021-3-20 11:51 编辑 
AE2的ME接口只提供了一个并不好用的阻塞模式,而没有提供内置的“一次合成只发送一份材料”功能。简单的自动化情形下,这并不是个很严重的问题,但不幸的是,要玩自动化,就必然不会仅仅局限于“简单机械”,很多复杂机械,比如植物魔法、龙之研究、余烬等等,并不是只有一个输入口,甚至原料与合成场所都不在同一个地方——它们都需要使用真正意义上“一次合成只发送一份材料”的真·阻塞模式才能正常运行。 或许你说,我可以一次只合成一个。那我们不妨设想一下这个场景:一个层层套娃的物品需要很多这种复杂机械去合成它的原料,如果你无法实现复杂机械的真正阻塞模式,那就每一层都卡一下~~~这酸爽,无与伦比。
What? 如何将ME接口的阻塞模式——当容器内有物品时不发送原料,升级为——当ME接口所对应的那个机械正在合成时,ME网络不发送原料。 即真正意义上的“阻塞模式”。
How? 首先详细解析合成步骤,然后给出解决方案,最后指导一些不想动脑筋的懒人读者们(勤快的读者请自行搭建 )搭建一个“广义阻塞ME接口系统”。    目录:待完善……
)搭建一个“广义阻塞ME接口系统”。    目录:待完善……
Tips? 不想看我跟水壶里的饺子——倒不出来一样的论述的话,可以直奔最后一页! 本教程不适合没有玩过广义自动化的AE2新手!你至少应该知道ME接口的三个作用并在游戏中实际使用过、了解到其阻塞模式的不足! 本教程也不适合大佬萌新、巨佬咸鱼!!! 本教程的最初想法来自安逸菌大大,可惜的是,有一个比较致命的问题并没有被考虑到,直接导致合成复杂物品时每一层都会卡一下。具体原因会在下文介绍到。 本教程之所以称为“广义阻塞模式”,是因为全程只用到了原版红石(为了呈现简洁,先用了压缩空间减小RS锁存器的体积,后面会拆开介绍并给出纯原版红石的电路结构)和AE2,至于后面黑箱部分使用的热力管道和龙之研究,它们只是黑箱而已,换成其他mod也完全没问题。 详细解析在下一页!!!
合成步骤详细解析:
原理图:
实践: 龙之研究注入合成(整合包:youyihj 飞翔之路3)
效果:丝滑拿铁,视频见这里
植物魔法符文祭坛(整合包:mr普拉斯 levitated)

效果:一样丝滑拿铁,不过,由于本方案需要在分配原材料的时候对分配速度进行限制,而失重整合包的物流管道较少,难以有效降低传输速度,故而黑箱部分看起来比较复杂。
步骤详解:
龙之研究注入合成的实践图片中,各部分其实已经非常明显了,从左到右分别是:ME部分(64k合成存储器、能源元件、ME驱动器和终端)、本教程核心(触发总线、ME接口、箱子、红石线路)、黑箱(龙之研究注入合成),如下图:

核心部分的主要思想是,通过检测ME接口和箱子内容变化,设计红石信号,以达到激活或者关闭ME触发总线的目的。下面给出详细分析,针对合成中遇到的所有情况都进行了说明。
此时没有合成任务,ME接口应该与ME网络相连,合成终端里可以看到终产物的合成配方


在合成终端里选择合成物品并指定数量,经过计算,总共需要合成3次,也就是说总共要发送3份原材料。
点击“开始合成”,ME网络为ME接口所指向的箱子发送一份原材料,注意这份原材料的发送是在你点击“开始合成”之后瞬间就完成的,不论这一份原材料是1个木板还是9*64个木板。
注意ME接口要设置为阻塞模式,否则ME网络会向箱子里发送3份原材料而不是1份。
还要注意,原材料会直接进入箱子,并不会先进入ME接口再进入箱子,也就是说ME接口始终箱检为空。

黑箱部分由任意管道系统进行分配,你甚至可以使用原版的漏斗,只要能把箱子里的原材料正确分配进复杂机械即可。我这里采用的是thermal管道。
ME网络向箱子发送原材料时,是按“处理模板”内标记的原料的顺序发送的,也就是说,如果你想要完美地将第一个物品分发到第一个容器里,那就需要在处理模板里将第一个物品放到3*3标记格的左上角那个格子里。小心mek的物流管道会打乱箱子内物品的顺序!但是thermal管道和EIO管道不会!不推荐使用mek!
触发总线关闭并不会终止ME网络的合成过程,各位可以放心地关闭触发总线从而将ME接口断开。

合成完毕后,产物被发送到ME接口内,而ME接口可以作为容器被红石比较器检测。这里将“产物进入ME接口”分为3个阶段,是因为红石信号的传递是需要时间的,并不能一瞬间完成。
第1轮的合成产物进入ME接口,这时候应该激活触发总线,将ME接口与ME网络相连,过一会ME网络便会将ME接口内的物品吸收回网络。这里就是安逸菌大大考虑不周的地方!ME网络收回ME接口内的物品是需要较长一段时间的,并不是秒收!如果没有考虑到这个而直接使用EIO的锁存红石过滤器的话,后面阶段的红石信号会被打乱!

在产物待在ME接口内的这段时间中,触发总线需要始终处于被激活的状态,否则ME网络无法收回接口内的物品。
触发总线激活后,ME接口接入ME网络,接口内的处理模板,发现原来丢失联系的那个接口又回来了?!于是特别高兴,便立刻、马上、迅速地又发了一份原材料给ME接口所指向的那个箱子。小心!这时候接口内的物品还没有被收回网络!这便是“产物进入ME接口_1”->“产物进入ME接口_3”过程中发生的事情。

在箱子内被发送了第2份原材料的时候,ME触发总线始终处于激活状态,箱子内原材料也处于被分发的状态。
如果分发得太快,ME接口内的第1轮合成产物还没有被收回网络,箱子就空了,那么ME网络将会为箱子发送第3份原材料——我们的任务就失败了。所以建议将抽取箱子内原材料的导管的抽取速率稍微调低,给ME网络充足的时间收回ME接口内的第1轮合成产物。
如下图所示,我在这个系统中,为ME网络留了一些时间收回ME接口内的第1轮产物。

并且设置红石信号:只要ME接口箱检为空,就立刻断开触发总线,不论箱子的箱检结果为何。
以上是第2轮发放原材料到第3轮发放原材料的过程,不再赘述,下面详细介绍第3轮产物进入网络的过程



至此合成过程结束,系统回到最初的状态
如何设计?
详细解析了合成过程的触发总线、ME接口以及箱子的变化之后,我们就需要开始设计这样的红石电路了,为了直观看到各变量的变化,我们可以将上述过程总结成下图所示:

根据经验,ME接口的箱检红石信号作用是将触发总线置1,而箱子的箱检红石信号作用是将触发总线置0,这一特点对应RS锁存器,那么我们首先在游戏中摆一个最简单的或非RS锁存器:

然后调整其P1、P2两个输入端,观察O1、O2两个输出端的输出情况,如下图所示:

可以看到,P1是O1的R端(Reset)、O2的S端(Set),当P1产生红石脉冲的时候,O1会被强制拉回0,O2会被强制抬到1,P2的作用与P1正好相反。这是数电的内容,不赘述。
唯一需要注意的是当P1、P2均为1的时候,R的作用更加强烈,换句话说,O1、O2都会被拉回0。这将造成初始状态的不稳定。一会儿介绍怎么解决这个问题。
利用RS锁存器可以实现上面提到的合成流程红石逻辑:

经过对比,发现除了初始状态不一样之外,其他情况下,O1端的红石电平都是触发总线所需红石电平的非逻辑,实际上RS锁存器有两个输出端,这种情况下,我们可以将触发总线做成反相触发总线,效果都一样的。
至于初始状态如何处理,我们可以在P1、P2均为0的情况下(对应搭建的结构就是ME接口和原版箱子里面都没有内容物)将P1设置为1然后设置为0,起到对O1的Reset作用。
说起来很麻烦,但对应实际搭建过程来说非常简单,我们只需要在一切都搭建完毕后,随便引出锁存器的一个输出端,然后在ME接口里放一块泥土,待泥土被ME网络吸收后,观察锁存器输出端的电平情况,如果是1,那就选用触发总线;如果是0,那就选用反向触发总线。
搭建方法:

ME接口要调成阻塞模式!
触发总线/反相触发总线的选取不用费脑筋仔细观察线路,只需要在ME接口里放一块泥土,等待泥土被网络吸收后,观察输出端的红石电平即可!
Emm?
    AE2的ME接口只提供了一个并不好用的阻塞模式,而没有提供内置的“一次合成只发送一份材料”功能。简单的自动化情形下,这并不是个很严重的问题,但不幸的是,要玩自动化,就必然不会仅仅局限于“简单机械”,很多复杂机械,比如植物魔法、龙之研究、余烬等等,并不是只有一个输入口,甚至原料与合成场所都不在同一个地方——它们都需要使用真正意义上“一次合成只发送一份材料”的真·阻塞模式才能正常运行。
    或许你说,我可以一次只合成一个。那我们不妨设想一下这个场景:一个层层套娃的物品需要很多这种复杂机械去合成它的原料,如果你无法实现复杂机械的真正阻塞模式,那就每一层都卡一下~~~这酸爽,无与伦比。
What?
    如何将ME接口的阻塞模式——当容器内有物品时不发送原料,升级为——当ME接口所对应的那个机械正在合成时,ME网络不发送原料。
    即真正意义上的“阻塞模式”。
How?
    首先详细解析合成步骤,然后给出解决方案,最后指导一些不想动脑筋的懒人读者们(勤快的读者请自行搭建 )搭建一个“广义阻塞ME接口系统”。
)搭建一个“广义阻塞ME接口系统”。
    目录:待完善……
Tips?
    不想看我跟水壶里的饺子——倒不出来一样的论述的话,可以直奔最后一页!
    本教程不适合没有玩过广义自动化的AE2新手!你至少应该知道ME接口的三个作用并在游戏中实际使用过、了解到其阻塞模式的不足!
    本教程也不适合大佬萌新、巨佬咸鱼!!!
    本教程的最初想法来自安逸菌大大,可惜的是,有一个比较致命的问题并没有被考虑到,直接导致合成复杂物品时每一层都会卡一下。具体原因会在下文介绍到。
    本教程之所以称为“广义阻塞模式”,是因为全程只用到了原版红石(为了呈现简洁,先用了压缩空间减小RS锁存器的体积,后面会拆开介绍并给出纯原版红石的电路结构)和AE2,至于后面黑箱部分使用的热力管道和龙之研究,它们只是黑箱而已,换成其他mod也完全没问题。
    详细解析在下一页!!!2021.12 数据,可能有更多内容
Emm?AE2的ME接口只提供了一个并不好用的阻塞模式,而没有提供内置的“一次合成只发送一份材料”功能。简单的自动化情形下,这并不是个很严重的问题,但不幸的是,要玩自动化,就必然不会仅仅局限于“简单机械”,很多复杂机械,比如植物魔法、龙之研究、余烬等等,并不是只有一个输入口,甚至原料与合成场所都不在同一个地方——它们都需要使用真正意义上“一次合成只发送一份材料”的真·阻塞模式才能正常运行。 或许你说,我可以一次只合成一个。那我们不妨设想一下这个场景:一个层层套娃的物品需要很多这种复杂机械去合成它的原料,如果你无法实现复杂机械的真正阻塞模式,那就每一层都卡一下~~~这酸爽,无与伦比。
What? 如何将ME接口的阻塞模式——当容器内有物品时不发送原料,升级为——当ME接口所对应的那个机械正在合成时,ME网络不发送原料。 即真正意义上的“阻塞模式”。
How? 首先详细解析合成步骤,然后给出解决方案,最后指导一些不想动脑筋的懒人读者们(勤快的读者请自行搭建
 )搭建一个“广义阻塞ME接口系统”。    目录:待完善……
)搭建一个“广义阻塞ME接口系统”。    目录:待完善……Tips? 不想看我跟水壶里的饺子——倒不出来一样的论述的话,可以直奔最后一页! 本教程不适合没有玩过广义自动化的AE2新手!你至少应该知道ME接口的三个作用并在游戏中实际使用过、了解到其阻塞模式的不足! 本教程也不适合大佬萌新、巨佬咸鱼!!! 本教程的最初想法来自安逸菌大大,可惜的是,有一个比较致命的问题并没有被考虑到,直接导致合成复杂物品时每一层都会卡一下。具体原因会在下文介绍到。 本教程之所以称为“广义阻塞模式”,是因为全程只用到了原版红石(为了呈现简洁,先用了压缩空间减小RS锁存器的体积,后面会拆开介绍并给出纯原版红石的电路结构)和AE2,至于后面黑箱部分使用的热力管道和龙之研究,它们只是黑箱而已,换成其他mod也完全没问题。 详细解析在下一页!!!
合成步骤详细解析:
原理图:

实践: 龙之研究注入合成(整合包:youyihj 飞翔之路3)

效果:丝滑拿铁,视频见这里
植物魔法符文祭坛(整合包:mr普拉斯 levitated)

效果:一样丝滑拿铁,不过,由于本方案需要在分配原材料的时候对分配速度进行限制,而失重整合包的物流管道较少,难以有效降低传输速度,故而黑箱部分看起来比较复杂。
步骤详解:
龙之研究注入合成的实践图片中,各部分其实已经非常明显了,从左到右分别是:ME部分(64k合成存储器、能源元件、ME驱动器和终端)、本教程核心(触发总线、ME接口、箱子、红石线路)、黑箱(龙之研究注入合成),如下图:

核心部分的主要思想是,通过检测ME接口和箱子内容变化,设计红石信号,以达到激活或者关闭ME触发总线的目的。下面给出详细分析,针对合成中遇到的所有情况都进行了说明。
| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| 没有合成任务的初始状态 | 
| 开启 | 
| 空 | 
| 空 | 
此时没有合成任务,ME接口应该与ME网络相连,合成终端里可以看到终产物的合成配方


| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| 发送第1轮原材料 | 
| 关闭 | 
| 空 | 
| 有 | 
在合成终端里选择合成物品并指定数量,经过计算,总共需要合成3次,也就是说总共要发送3份原材料。
点击“开始合成”,ME网络为ME接口所指向的箱子发送一份原材料,注意这份原材料的发送是在你点击“开始合成”之后瞬间就完成的,不论这一份原材料是1个木板还是9*64个木板。
注意ME接口要设置为阻塞模式,否则ME网络会向箱子里发送3份原材料而不是1份。
还要注意,原材料会直接进入箱子,并不会先进入ME接口再进入箱子,也就是说ME接口始终箱检为空。

| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| 第1轮原材料分配完毕 | 
| 关闭 | 
| 空 | 
| 空 | 
黑箱部分由任意管道系统进行分配,你甚至可以使用原版的漏斗,只要能把箱子里的原材料正确分配进复杂机械即可。我这里采用的是thermal管道。
ME网络向箱子发送原材料时,是按“处理模板”内标记的原料的顺序发送的,也就是说,如果你想要完美地将第一个物品分发到第一个容器里,那就需要在处理模板里将第一个物品放到3*3标记格的左上角那个格子里。小心mek的物流管道会打乱箱子内物品的顺序!但是thermal管道和EIO管道不会!不推荐使用mek!
触发总线关闭并不会终止ME网络的合成过程,各位可以放心地关闭触发总线从而将ME接口断开。

| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| 合成完毕 | 
| 关闭 | 
| 空 | 
| 空 | 
| 第1轮产物进入ME接口_1 | 
| 关闭 | 
| 有 | 
| 空 | 
| 第1轮产物进入ME接口_2 | 
| 开启 | 
| 有 | 
| 空 | 
| 第1轮产物进入ME接口_3 | 
| 开启 | 
| 有 | 
| 有 | 
合成完毕后,产物被发送到ME接口内,而ME接口可以作为容器被红石比较器检测。这里将“产物进入ME接口”分为3个阶段,是因为红石信号的传递是需要时间的,并不能一瞬间完成。
第1轮的合成产物进入ME接口,这时候应该激活触发总线,将ME接口与ME网络相连,过一会ME网络便会将ME接口内的物品吸收回网络。这里就是安逸菌大大考虑不周的地方!ME网络收回ME接口内的物品是需要较长一段时间的,并不是秒收!如果没有考虑到这个而直接使用EIO的锁存红石过滤器的话,后面阶段的红石信号会被打乱!

在产物待在ME接口内的这段时间中,触发总线需要始终处于被激活的状态,否则ME网络无法收回接口内的物品。

触发总线激活后,ME接口接入ME网络,接口内的处理模板,发现原来丢失联系的那个接口又回来了?!于是特别高兴,便立刻、马上、迅速地又发了一份原材料给ME接口所指向的那个箱子。小心!这时候接口内的物品还没有被收回网络!这便是“产物进入ME接口_1”->“产物进入ME接口_3”过程中发生的事情。

| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| ME接口内的物品被收回网络 | 
| 关闭 | 
| 空 | 
| 有 | 
在箱子内被发送了第2份原材料的时候,ME触发总线始终处于激活状态,箱子内原材料也处于被分发的状态。
如果分发得太快,ME接口内的第1轮合成产物还没有被收回网络,箱子就空了,那么ME网络将会为箱子发送第3份原材料——我们的任务就失败了。所以建议将抽取箱子内原材料的导管的抽取速率稍微调低,给ME网络充足的时间收回ME接口内的第1轮合成产物。
如下图所示,我在这个系统中,为ME网络留了一些时间收回ME接口内的第1轮产物。

并且设置红石信号:只要ME接口箱检为空,就立刻断开触发总线,不论箱子的箱检结果为何。
| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| 第2轮原材料发放完毕 | 
| 关闭 | 
| 空 | 
| 空 | 
| 第2轮产物进入ME接口_1 | 
| 关闭 | 
| 有 | 
| 空 | 
| 第2轮产物进入ME接口_2 | 
| 开启 | 
| 有 | 
| 空 | 
| 第2轮产物进入ME接口_3 | 
| 开启 | 
| 有 | 
| 有 | 
| 第2轮产物收回网络 | 
| 关闭 | 
| 空 | 
| 有 | 
| 第3轮原材料分配完毕 | 
| 关闭 | 
| 空 | 
| 空 | 
以上是第2轮发放原材料到第3轮发放原材料的过程,不再赘述,下面详细介绍第3轮产物进入网络的过程
| 阶段 | 
| 触发总线 | 
| ME接口 | 
| 原版箱子 | 
| 第3轮产物进入ME接口_1 | 
| 关闭 | 
| 有 | 
| 空 | 
| 第3轮产物进入ME接口_2 | 
| 开启 | 
| 有 | 
| 空 | 
| 第3轮产物进入ME接口_3 | 
| 开启 | 
| 空 | 
| 空 | 



至此合成过程结束,系统回到最初的状态
如何设计?
详细解析了合成过程的触发总线、ME接口以及箱子的变化之后,我们就需要开始设计这样的红石电路了,为了直观看到各变量的变化,我们可以将上述过程总结成下图所示:

根据经验,ME接口的箱检红石信号作用是将触发总线置1,而箱子的箱检红石信号作用是将触发总线置0,这一特点对应RS锁存器,那么我们首先在游戏中摆一个最简单的或非RS锁存器:

然后调整其P1、P2两个输入端,观察O1、O2两个输出端的输出情况,如下图所示:

可以看到,P1是O1的R端(Reset)、O2的S端(Set),当P1产生红石脉冲的时候,O1会被强制拉回0,O2会被强制抬到1,P2的作用与P1正好相反。这是数电的内容,不赘述。
唯一需要注意的是当P1、P2均为1的时候,R的作用更加强烈,换句话说,O1、O2都会被拉回0。这将造成初始状态的不稳定。一会儿介绍怎么解决这个问题。
利用RS锁存器可以实现上面提到的合成流程红石逻辑:

经过对比,发现除了初始状态不一样之外,其他情况下,O1端的红石电平都是触发总线所需红石电平的非逻辑,实际上RS锁存器有两个输出端,这种情况下,我们可以将触发总线做成反相触发总线,效果都一样的。
至于初始状态如何处理,我们可以在P1、P2均为0的情况下(对应搭建的结构就是ME接口和原版箱子里面都没有内容物)将P1设置为1然后设置为0,起到对O1的Reset作用。
说起来很麻烦,但对应实际搭建过程来说非常简单,我们只需要在一切都搭建完毕后,随便引出锁存器的一个输出端,然后在ME接口里放一块泥土,待泥土被ME网络吸收后,观察锁存器输出端的电平情况,如果是1,那就选用触发总线;如果是0,那就选用反向触发总线。
搭建方法:

ME接口要调成阻塞模式!
触发总线/反相触发总线的选取不用费脑筋仔细观察线路,只需要在ME接口里放一块泥土,等待泥土被网络吸收后,观察输出端的红石电平即可!
 本帖最后由 名为123的貘 于 2021-3-20 11:19 编辑 
ayj……az
值得支持的程度,终于又有一个中等程度的产出了
不过呢,yysy这个解不优,请参考
https://www.mcmod.cn/item/392568.html
网址中有整体的分析和总结归纳、比较
以及龙研注入有特解:
当基座中有物品时禁止下一份材料
ayj……az
值得支持的程度,终于又有一个中等程度的产出了
不过呢,yysy这个解不优,请参考
https://www.mcmod.cn/item/392568.html
网址中有整体的分析和总结归纳、比较
以及龙研注入有特解:
当基座中有物品时禁止下一份材料
名为123的貘 发表于 2021-3-20 11:11
ayj……az
值得支持的程度,终于又有一个中等程度的产出了
不过呢,yysy这个解不优,请参考
感谢支持~~
刚浏览了一遍mcmod百科单材料分离,发现其中“检测正在合成”部分其实也用的是RS锁存器,大概要想实现通用检测,RS锁存器是绕不开的一环吧~~
我用的“合成时断开”在文中被否决了,但其实呢,实际用下来也没有觉得发布任务会受到太大影响,应该是因人而异的感觉
另外就是这种自动化的文字讲解看起来都很头疼
Vutoc 发表于 2021-3-20 12:04
感谢支持~~
刚浏览了一遍mcmod百科单材料分离,发现其中“检测正在合成”部分其实也用的是RS锁存器,大概 ...
可以做到优化那就做呗,不是类似嘛
学习了,谢谢!
名为123的貘 发表于 2021-3-20 11:11
ayj……az
值得支持的程度,终于又有一个中等程度的产出了
不过呢,yysy这个解不优,请参考
再仔细研究了一次,这个凭证看似就是多执行绪同步化问题中的互斥锁。
不过,当需要由使用者手动发布不同的合成任务给使用同一个凭证的合成系统时
后一个合成任务会无法进行,因为凭证已经先被前一个合成CPU拿走了,这对使用者来说不太友善。
若是使用合成卡发布合成的话就没有这问题。
MCBBS有你更精彩~
神乎其技!6的飞起!