今回はJX-BASIC Part2になり、Timerの使用・Monitor機能について説明します。JX-BASICはJTEKTが2022年12月から発売した、20命令語のみの薄型・省スペースの基板型シンプルコントローラになります。特徴としては20の命令語に絞り、シンプル機能(電源、通信、I/O)を実現できます。ちなみに、この基板型シンプルコントローラを使用するJXプログラミングソフトウエアは無料です。
詳しい仕様はこちらのLinkから確認してください。
https://www.electronics.jtekt.co.jp/jp/product/plc/jx-basic/
Reference Link
Monitor Function
プログラムのDebug作業ではモニタ機能は欠かせないんです。JX Programmingにもその機能揃えおり、モニタをクリックしてください。
ステータスモニタ
JX Programmingツールにはステータスモニタとシステムモニタの2つの機能があります。最初にはステータスモニタを説明します。
下図のように、ラダープログラムにある各接点・コイル・Blockの状態をリアルタイムで確認できます。
システムモニタ
次はシステムモニタ機能を紹介します。
システムモニタ画面が表示され、Boardにある入出力・エラー状態などを直接確認できます。
下図のような操作になります。
Implementation‐1 Delay On Timer
では、これからJX ProgrammingのTimer機能を説明します。最初の実装は一番の基本的なDelay On Timerです。
Add Timer
Timerプログラムを追加するため、現在のカーソルを右クリック>カーソルの前に回路を挿入をクリックします。
右にある命令リストからTimerをカーソル2にDropして追加します。
Timerの設定画面が表示されます。
タイマー番号
タイマー番号は三菱のT1,T2,T3のようなデバイスと同様で、赤枠にある…ボタンをクリックしタイマー番号を設定します。
アドレス一覧の画面が表示されます。
その中に直接使用したいタイマーを設定すれば完了です。下図では未使用のみ表示を選択するとプログラム中に使用してるタイマーが非表示になります。
Done!T1を設定しました。
設定値‐定数
設定値では定数やレジスタからも設定できます。
定数を設定する場合はFieldに数字をそのまま入力すればOkです。
設定値‐レジスタ
もし設定値をレジスタに設定し可変できるようにしたい場合、設定値にある…ボタンをクリックします。
アドレス一覧の画面が表示され、DSは三菱 CPUのD0,D1,D100に相当します。
Done!いまTimerの設定値はDS1に設定されました。
単位
単位では設定値はms/sec/minのように異なる単位に設定できます。
ディレイ設定
ディレイ設定では該当するTimerはOn Delayか・Off Delayかを設定できます。最初の実装ではOn Delay に設定します。
現在値オプション
こちらのOptionはタイマーがTriggerされてない間、最後に積算された時間をキープするかを設定できます。すべての設定が完了したらOkをクリックしてください。
Done!プログラムにTimerのBlockが追加されました。
Add Enable
Enableのパラメータ入力をX0001と接続します。つまりX1=Trueの間TimerがTriggerされます。
Result
下図のようにX1が1秒TrueになるとT1=Trueになります。
Implementation-2 Delay Off Timer
次はDelay Off Timerのプログラムを設定します。
ディレイ設定
先程のTimer設定画面にあるディレイタイマー設定を”OFF ディレイタイマー”に設定してください。
プログラムにあるTimer Blockは”Timer(OFF Delay)”に変わりました。
Result
Done!Delay Off Timerもできました。
Implementation-3 Keep the Last Value
最後はTimerがTriggerされたとき加算した時間をキープできるようなOptionsをつけます。
現在値オプション
Timer設定画面では現在値オプションを”タイマを停止してる間、現在値を保持します”を選択します。
Timer BlockはResetという入力パラメータが増えました。
Result
ResetにC1と紐付けます。下図のようにX1は1秒ずっとOnしてなくても、Timerの加算値も減ることなくずっと加算されます。
なので、X1=FalseでもT1がTrueになったままです。
TD1はX1=Trueの合計時間になります。
そしてC1=TrueにTD1(Current)がリセットされます。
そしてT1のコイルもリセットされます。