■ ランプのランダム点燈

⇒ TO Home Page
内容

1. スイッチを押す毎に10個のランプをランダムに点燈させたい。

サンプルコード ・ 左の画像をクリックすると、大きい画像が表示されます。

3行目:[Autto] を真にすると。[Switch](5行目)を操作しなくても自動でランプ点燈します。
@T0がアップすると、自分自身をリセットするため、@T0は1スキャンだけ真になります。

5行目 :[Switch]と[@T0]の論理和をとって動作させています。[Switch]または[@T0]が真になるとSBN10が実行されます。

10行目 :ここからサブルーチン。
11行目 :13行目の「CJ(条件分岐)」の飛び先。
12行目 :乱数を発生させます。変数[RDM]を種に、結果を[RDM]に代入。
13行目 :乱数生成範囲は「1〜65535」なので、[RDM]から1を引いて乱数を「0〜65534」の範囲とし、それに10をかけて65535で割る事で、 「0〜9」の範囲に圧縮。
前回の数値[MEM]と今回の数値を比較し、同じ数値なら、11行目に飛び、再度乱数を発生。
(続けて同じ個所のランプ点燈を避けるため。)
14行目 :前回と今回の数値が違えば、[MEM]に今回の数値を代入。デコードする。

18行目 :動作確認用デバイス。


シミュレーションできる方は下欄からダウンロードしてください。

2行目の[Auto]を真にすると、自動でランプの点燈位置が切替ります。
[Auto] にカーソルを合わせ、「ダブルクリック」または「スペースキー」押下でON-OFFさせて下さい。

[Auto]が偽の時は[Switch]を真にする度にランプの点燈位置が切替ります。
[Switch]にカーソルを合わせ、「ダブルクリック」または「スペースキー」押下でON-OFFさせて下さい。

動作確認は18行目で行えます。

ポイント
「ENDH」以下には自由に落書きができます。回路が成立していなくても変換エラーは起きません。
モニタも可能です。
また、この領域に記述しても、PLCには転送されません。


モニタ用デバイスや参考コード、クロスリファレンス参照用デバイスを記述しておくと大変便利です。
私はこの領域を良く活用しています。

●PDFを表示 ●コードをダウンロード