サンプルコード [ Condition.sio ] をダウンロードしてシミュレーションを実行してみてください。(LZH圧縮の自己解凍ファイルがダウンロードできます。)
[OUT1] は「ON」状態に「すると」動作し、タイマーがONになります。
[IN1](ONの条件)をONすると[OUT1]はON、[IN1] をOFFしても [OUT1] はONを保持することがわかります。
[OUT2] は「ON」状態に「すると」動作し、タイマー1秒になります。
[IN1](ONの条件)をONすると [IN1] をONし続けると、タイマーカウントが開始します。
タイマーアップした瞬間に [OUT1] はONを保持します。
尚[IN2] をONすると [OUT1] [OUT2] はOFFになります。
SiOのデバイスはセットラッチデバイスです。出力保持するにはフィードバックを考慮したラッチが必要です。
この構成で入力条件による出力保持する機能を実現できます。
[OUT3] は「ON」状態に「し続けると」動作し、タイマー1.5秒になります。
[IN1] をONするとタイマーカウントが始まります。カウントアップする前に [IN1] をOFFすると [OUT3] はONしません。
ところが [IN1] がカウントアップするまでONし続けると [OUT1] はONし、[IN1] をOFFしても [OUT3] はONを保持します。
尚[IN2] をONすると [OUT3] はOFFになります。
「し続けると」を動作させるとONの条件がカウントアップのあとに動作します。
カウントアップ後に出力をラッチします。
[OUT4] は「ON」状態に「カウントすると」動作し、カウント値を3にします。
[IN1] をON回数にカウントアップを要求します。設定値の3になると [OUT4] はONを保持します。
さらにタイマー設定しておけば、タイマーアップもONを保持します。
「カウントすると」を動作させると、[IN] をON回数をカウントして、設定値になると出力をラッチします。
論理は「の後に」です。
[OUT6] は「OFFの条件1」と「OFFの条件2」にビットデバイスを設定しています。
この場合、「OFFの条件1」がONになった後「OFFの条件2」との論理和で [OUT6] はOFFになります。
「OFFの条件2」がすでにONしていると「OFFの条件1」がONになった瞬間に [OUT6] はOFFになります。
またタイマー「の後に」です。
[OUT7] は「OFFの条件1」にタイマー、[OFFの条件2] にビットデバイスを設定しています。
この場合、タイマーのアップと「OFFの条件2」の論理和で [OUT7] はOFFになります。
また論理「の後に」タイマーです。
[OUT9] は「OFFの条件1」にビットデバイスを、「OFFの条件2」にタイマーを設定しています。
この場合、「OFFの条件1」がONになった後「OFFの条件2」との論理和で [OUT9] はOFFになります。
OFFの条件「の後に」を動作させると、「OFFの条件1」が優先することがわかります。
そのため、「OFFの条件2」がすでにONしていると、一瞬に「OFFの条件1」と「OFFの条件2」の論理和になります。
[OUT8]は「OFFの条件1」に「ONの条件」をOFFに設定しました。
これは単純に入力のバッファになります。
「または」を動作させると「OFFの条件1」と「OFFの条件2」の論理和になります。
[OUT10] は [IN2] をONか [IN3] をOFFのどちらかでOFFになります。
また「さらに」を動作させれば「OFFの条件1」と「OFFの条件2」の論理積になります。