■ 文言の時分割表示

⇒ TO Home Page
内容

1.異常フラグがONになっていると。それに対応したメッセージを表示する。
2. 但し、複数の異常が発生した場合、一定時間ごとにメッセージを切替え表示する。
3. 異常フラグは今回、連続する16ビットとする。

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

2行目 :PLC起動時の初期化。

4行目 :1word単位でエラーフラグ[MR0xx]を[MR1xx]に記憶。タイマのカウント。
5行目 :エラー記憶が有⇒無に変化した時点で、表示文言を消去し、次に発生するエラー表示の為にタイマをリセット。
実質「LDA MR100」は不要です。
6行目 :エラー記憶が有れば、文言表示動作有効のフラグ[ACTIVE]を真に。このフラグは5行目のエッジ検出にも使用。

8行目 :[ACTIVE]が真なら、11行目のSTEまでを実行。
9行目 :タイマがアップしたら前回のエラー記憶を消去。INDEXが16以上(MASKで定義)で有ればオーバーフロー処理をして、INDEXに1を追加してイ ンデック スレジスタ[Z1]に代入。今回チェックするフラグが真ならば。
10行目 :タイマをリセット。[Z1]に転送文字数[SPAN]を掛けて、転送元オフセットを算出し、[Z2]に代入。
最後に、転送元アドレスからSPAN文字分を表示領域の[DM0]に転送。
転送元(ここではEM)の代わりにエラーフラグのコメントを転送してもおもしろいかもしれません。

15行目 :PLC起動時の初期化ルーチン。
17行目 :INDEXカウンタをクリア。今回フラグ数が16ビットなので、MASKにF(hex)を代入。
19行目 :転送文字数(32文字)を代入。
21行目 :表示時間をタイマに代入(今回は3秒)し、タイマをセット。

24行目 :フラグ[TEST_DATA]が偽なら、テストデータを生成します。テストデータが不要なら、PLC起動前に[TEST_DATA]を真にしておく。
インデックスレジスタ7[Z1]に0を代入。エラーフラグ0の数値を100にしたい(独断で決定)ため、[TM4]に100を代入。
エラー16個分のループを回すため、[MASK](15)に+1して[LOOP]に代入。
26行目:転送 元アドレスに初期値を代入。以降、転送元アドレスを32づつ、数値を1づつ増加させて16回分代入。
シミュレーション ・ 左の画像をクリックすると、大きい画像が表示されます。

シミュレーションできる方は下欄からプログラムコードと登録モニタをダウンロードしてください。

MR000〜MR015の現在値にカーソルを合わせ、「ダブルクリック」または「スペースキー」押下でON-OFFさせて下さい。
エラーの位置に応じた数値がDM0に一定時間ごとに転送されます。
●PDFを表示 ●コードをダウンロード ●登録モニタをダウンロード