今回はJX-BASIC Part5になり、ボートに内蔵されている高速入力を利用しJTEKTのエンコーダとつながり、Counter値を取得する方法について説明します。JX-BASICはJTEKTが2022年12月から発売した、20命令語のみの薄型・省スペースの基板型シンプルコントローラになります。特徴としては20の命令語に絞り、シンプル機能(電源、通信、I/O)を実現できます。ちなみに、この基板型シンプルコントローラを使用するJXプログラミングソフトウエアは無料です。
詳しい仕様はこちらのLinkから確認してください。
https://www.electronics.jtekt.co.jp/jp/product/plc/jx-basic/
Reference Link
Implementation
Wiring
こちらはエンコーダの配線になります。今回使用するのはJTEKTエンコーダです。
こちらは実際JTEKTのJX-BASICとエンコーダTRD-SR1000Aの配線になります。
Configuration
設定>高速I/Oをクリックし高速I/Oの設定を行います。
高速I/Oの設定画面が表示されます。
ステップ1:モード選択
最初に高速I/Oの使用タイプを設定します。
今回は高速カウンターを使用しますので、高速カウンターを選び>次へ進みます。
ステップ2:モードオプションの選択
今度はモードオプションの選択画面になります。
記事で使用するエンコーダは90度相差(A,B相)対応できますので、90度相差(A,B相)の選択のボタンに+をクリックします。選択されたアプリケーションの画面に1つの高速カウンタアプリケーションが追加され、次へをクリックし進みましょう。
ステップ3:モード属性の選択肢
最後は高速カウンタの細かい設定画面になります。
名称
こちらはプログラムに定義される変数の名前と直結します。
なので、隣にあるニックネームを自動で割り当てるのCheckboxを入れるとX001、X002のニックネームも名称に合わせて自動定義されます。
現在のカウント値
こちらのFieldからX001・X0002で取得したCounter値の格納先を設定できます。
DDxから始めるレジスタの設定になりますが、DDは32Bitのレジスタになります。
今回はDD1に設定します。
リセット使用
こちらのCheckboxを入れると現在のCount値をリセットすることが可能になります。
下図のように、リセットの細かい設定が表示されました。
リセット
今回の記事でC1を設定します。つまりC1=Trueの場合、現在DD1に格納されているCounter値がリセットになります。
リセットタイミング
こちらの項目からリセットは立ち上げ・たち下げで実行するを選択できます。
カウンターをリセット
今回の記事では0ですが、Counterにリセットされたとき必ず0ではなく自由設定できます。
Enableを使用
こちらはHigh Speed Counter値をX1・X2から更新するかを有効・無効できるオプションになります。
下図のように、Enableを使用するCheckboxを入れると、有効に関連する設定が表示されます。
Enable
こちらの機能を有効にすることにより、高速I/Oの機能を無効・有効化することができます。高速I/Oが無効されたとき、Counterの更新はしません。
Enable時
DropboxからON/OFFの設定があり、つまり設定されたデバイスがON・Offするときに機能を有効する選択はできます。
Overview
最後にJX-BASICが設定した項目を赤枠のところに一覧できます。
高速I/Oの設定が正しければ、OKで設定を適用しましょう。
割り込みプログラム作成
高速I/Oを使用するために、割り込みプログラムを作成します。
ラダープログラム>割り込みプログラム>新規割り込みプログラムの追加をクリックします。
割り込みプログラム名を入力します。
割り込み設定
先程追加した割り込みプログラムを右クリック>割り込み設定を開きます。
割り込みプログラムの設定画面が表示されます。
今回設定するのは割り込みのタイミングだけで、ob30は10msごとに割り込みます。
Program
こちらは高速I/Oの現在値を読み>前の周期のCounterを比較し、0より大きななら正回転、0より小さいなら逆回転、0であれば停止状態だと判断するプログラムを作成しました。
MAIN
MAINプログラムは高速Counterの無効やリセットの回路を作成しました。
Result
こちらの動画はJTEKTエンコーダから高速I/OのCounter値を読み取る操作です。
JTEKT.JXBASIC – Using High Speed Counter Function with JTEKT Encoder
こちらの動画はJTEKTエンコーダの回転方向を検知する操作です。
JTEKT.JXBASIC – Using High Speed Counter Function with JTEKT Encoder,Detect FW/BW
こちらの動画はプログラムからJTEKTエンコーダの機能を無効にする操作です。
JTEKT.JXBASIC – Using High Speed Counter Function with JTEKT Encoder,Enable
こちらの動画はプログラムから高速I/O機能を無効にする操作です。
JTEKT.JXBASIC – Using High Speed Counter Function with JTEKT Encoder,Reset
Download
こちらのLinkからプロジェクトをDownloadしてください。
https://github.com/soup01Threes/JTEKT/blob/main/Project_HighSpeedCounter.jkp