1. TOPPERS/JSP のプログラミング(応用編)
本章では、タッチパネルを使用したプログラムを作成しながら、実践編で学んだ定電圧制御や MPPT 制御を組み合わせて使用する方法について学習します。
応用編でのサンプルプログラムでは、これまでの KED-EXT102 の LCD やボタンスイッチなどによるインターフェースからタッチパネルを使用したインターフェースに代わります。
サンプルプログラムでは、以下の機能を一つのプログラムで実現します。
(1)電力・電流値計測(メイン画面)(2)定電圧制御(3)定電流制御(4)MPPT 制御(5)充電制御(6)デューティ比設定(7)各制御で取得した電流値のグラフ表示
開放電圧取得準備状態
これらの機能毎にタッチパネルへ表示する画面が異なります。(1)の画面(メイン画面)を中心にして、相互に切替えることができます。画面の切替えは、タッチパネルからの押下げ情報で判断します。サンプルプログラムの構成イメージを以下に示します。

メインタスク(1)電圧・電流計測(2)定電圧制御表示(3)定電流制御(電圧値／電流値など)

メイン関数

タッチパネル(4)MPPT 定電圧制御(5)充電制御

画面押下げ情報取得(6)設定画面※タッチパネルへの表示は、各画面処理で行います(7)グラフ表示

MPPT 制御状態遷移

MPPT 制御状態遷移参照

AD 変換割込み
AD 変換

AD 変換割り込み
グローバル変数

タイマ割込み・開放電圧(ピーク)検出・電圧値・開放電圧取得準備状態・デューティ比調整

・電流値への遷移(MPPT 制御)

・デューティ比・グラフデータ保持・電圧、電流値算出

算出

参照

次に、サンプルプログラムの各画面での制御や機能について説明します。

1.1 電力・電流計測
プログラムを起動すると下記のようにメイン画面が表示されます。メイン画面では現在の経路接続状態での電力値と電流値を計測して、タッチパネルへ表示します。
⑧②⑥①⑫⑦⑨⑤④⑪⑩③

メイン画面上の矢印は、現在の接続経路を示しています。プログラム起動時は、上記のようにソーラーパネル、二次電池、モーターがすべて接続された状態となります。
メイン画面では、以下の数値を表示します。
①ソーラーパネルの発電電力②ソーラーパネルからモーターへの電流値③二次電池への充電電力④ソーラーパネルから二次電池への電流値⑤二次電池からモーターへの電流値⑥モーターの消費電力
プログラム起動時は、計測ポイントに設定する。

VSOL2 VCEN

VSOL1

ソーラーパネル

VMOT1 VMOT2

降圧コンバータ１

降圧コンバータ２

(ON)

(ON)

モーター

リレー(ON)

VBAT
二次電池

このメイン画面、数値、矢印の表示は、タッチパネル側に予め用意された複数のコマンドを KED-SH101からタッチパネルへコマンドを発行して実現しています。メイン画面全体と電力値、電流値の表示は、「10.1.7 メイン画面を表示」を参照ください。矢印の表示は、「10.1.9 メイン画面の矢印を表示」を

参照ください。
メイン画面上の矢印や[グラフ表示]、[設定画面]を押すと他の画面へ遷移します。
⑦定電圧／定電流制御へ遷移⑧MPPT 制御へ遷移⑨充電制御へ遷移⑩設定画面へ遷移⑪グラフ表示画面へ遷移⑫初期化※⑫初期化を押すと接続経路やデューティ比を初期化します。
メイン画面の押下げ状態や座標値の取得もタッチパネルに予め用意されています。メイン画面の押下げ情報の取得は、「10.1.8 メイン画面の情報取得」を参照ください。
メイン画面の処理は、サンプルプログラムの関数 ShowMain()を参照ください。

1.2 定電圧制御
メイン画面の二次電池とプロペラ(モーター)を結ぶ矢印を押すと以下の定電圧制御画面を表示します。
定電圧制御画面では、二次電池からモーターへ経路を接続して、電圧が目標電圧(2.5V 固定)に近づくように定電圧制御を行います。定電圧制御で計測した値は、下記画面のようにタッチパネル上に表示します。
⑦⑧①②
③④⑤
⑥

①モーター側指定電圧(目標電圧)②バッテリ側電圧(二次電池側電圧)③バッテリ側電流(二次電池側電流)④モーター側電圧⑤モーター側電流⑥PWM2 のデューティ比⑦定電流制御(定電流制御画面へ遷移)⑧メイン画面(メイン画面へ遷移)
定電圧制御の画面も、タッチパネルに予め用意されています。定電圧制御画面全体の表示と目標電圧やデューティ比などを表示するコマンドや手順は、「10.1.10 定電圧制御画面を表示」を参照ください。
定電圧制御画面に遷移したときは、下記のように経路を接続します。
計測ポイントに設定する。

VSOL2 VCEN

VSOL1

ソーラーパネル

VMOT1 VMOT2

降圧コンバータ１

降圧コンバータ２

(OFF)

(ON)

この状態では、二次電池からソーラーパネル側へも電流モーター

リレー(ON)が流れるため電圧は、VSOL2 < VCEN になります。

VBAT
二次電池

定電圧制御の内容は、タッチパネルへ表示する内容と目標電圧を 2.5V に固定していることを除いて、

「7.1 二次電池からの電圧を計測」と同じです。
定電圧制御画面では、バッテリー(二次電池)側の電圧値と電流値も計測して表示します。バッテリー側の電流は、計測ポイント VSOL2 と VCEN で計測した電圧値から電位差を求めて、電流値を算出します。
このため電位差の関係は VSOL2 < VCEN となり、算出した電流値は－(マイナス)の値となります。
定電圧制御画面から定電流制御画面またはメイン画面に遷移します。各画面へは、タッチパネル画面上の[定電流制御]と[メイン画面]を押下げると遷移します。
[定電流制御]と[メイン画面]の押下げ情報は、タッチパネルへコマンドを発行して取得することができます。コマンドと手順については、「10.1.11 定電圧制御画面の情報取得」を参照ください。
定電圧制御画面からメイン画面へ遷移するときは、定電圧制御画面での経路接続状態がメイン画面に引き継がれて、メイン画面で電圧値や電流値の計測を行います。
以上の定電圧制御の処理については、サンプルプログラムの関数 ShowVol()を参照ください。

1.3 定電流制御
定電圧画面の[定電流制御]を押下げると以下の定電流制御画面を表示します。
定電流制御画面では、二次電池からモーターへ経路を接続して、電流値が目標電流(0.030A 固定)に近づくように定電流制御を行います。定電流制御で計測した値は、下記画面のようにタッチパネル上に表示します。
⑦⑧①②③④⑤⑥①モーター側指定電流(目標電流)②バッテリ側電圧(二次電池側電圧)③バッテリー側電流(二次電池側電流)④モーター側電圧⑤モーター側電流⑥PWM2 のデューティ比⑦定電圧制御(定電圧制御画面へ遷移)⑧メイン画面(メイン画面へ遷移)
定電流制御画面は、定電圧制御画面での経路接続状態をそのまま引き継いで、目標電流(0.030A 固定)による定電流制御を行います。定電流制御画面での経路接続は、「8.2 定電圧制御」を参照ください。
定電流制御画面での定電流制御は、目標電流が 0.03A に固定していること以外は、「7.2 二次電池からの定電流を計測」と同じ手法で定電流制御を行っています。制御の詳細については、「7.2 二次電池からの定電流を計測」を参照ください。
定電流制御画面は、タッチパネル側に予め用意されています。定電流制御画面と計測した電圧値と電流値を表示するコマンドと手順は、「10.1.12 定電流制御画面を表示」を参照ください。
定電流制御画面から定電圧制御画面またはメイン画面に遷移します。タッチパネル画面上の[定電圧制御]と[メイン画面]を押下げると遷移します。
[定電圧制御]と[メイン画面]の押下げ情報は、タッチパネルへコマンドを発行して取得することができます。コマンドと手順については、「10.1.13 定電流制御画面の情報取得」を参照ください。
定電圧制御画面からメイン画面へ遷移するときは、定電圧制御画面での経路接続状態がメイン画面に引き継がれて、メイン画面で電圧値や電流値の計測を行います。
以上の定電流制御の処理については、サンプルプログラムの関数 ShowCur()を参照ください。

1.4 MPPT 制御
メイン画面の上部矢印を押下げると以下の MPPT 制御画面を表示します。
MPPT 制御画面では、ソーラーパネルからモーターへ経路を接続して MPPT 制御を行います。MPPT 制御で計測した値は、下記画面のようにタッチパネル上に表示します。
⑧①②③
④⑤
⑥
⑦

①ソーラーパネルの開放電圧②ソーラーパネルの最適動作点電圧③ソーラーパネル側電圧④ソーラーパネル側電流⑤ソーラーパネルの出力電力⑥PWM2 のデューティ比⑦発電量⑧メイン画面MPPT 制御の画面も、タッチパネルに予め用意されています。MPPT 制御画面全体の表示と開放電圧や計測した電圧値や電流値などを表示するコマンドや手順は、「10.1.14 MPPT 制御結果画面表示」を参照ください。
MPPT 制御画面に遷移したときは、下記のように経路を接続します。
計測ポイントに設定する。

VSOL2 VCEN

VSOL1

ソーラーパネル

VMOT1 VMOT2

降圧コンバータ１

降圧コンバータ２

(ON)

(ON)

モーター

リレー(OFF)

VBAT
二次電池

MPPT 制御画面では、「7.3 ソーラーパネルでモーターを回転」と同様に、30 秒毎に開放電圧のピークを検出して目標電圧とします。その目標電圧に対して PWM2 のデューティ比を調整して MPPT 制御を行います。なお、PWM1 のデューティ比は 97%固定です。
タッチパネル画面上の[メイン画面]を押下げると MPPT 制御画面からメイン画面に遷移します。[メイン画面]の押下げ情報は、タッチパネルへコマンドを発行して取得することができます。コマンドと手順については、「10.1.15 MPPT 制御結果画面の情報取得」を参照ください。
MPPT 制御画面からメイン画面へ遷移するときは、MPPT 制御画面での経路接続状態が引き継がれて、メイン画面で電圧値や電流値の計測を行います。
以上の MPPT 制御の処理については、サンプルプログラムの関数 ShowMppt()を参照ください。

1.5 充電制御
メイン画面の左部矢印を押下げると以下の充電制御画面を表示します。
充電制御画面では、ソーラーパネルから二次電池へ経路を接続して充電制御を行います。充電制御で計測した値は、下記画面のようにタッチパネル上に表示します。
⑦①②③④⑤⑥①充電量②ソーラーパネル側電圧③ソーラーパネル側電流④バッテリー側電圧⑤バッテリー側電流⑥バッテリー側ピーク電圧⑦メイン画面充電制御の画面も、タッチパネルに予め用意されています。充電制御画面全体の表示と計測した電圧値や電流値などを表示するコマンドや手順は、「10.1.16 充電制御画面表示」を参照ください。
充電制御画面に遷移したときは、下記のように経路を接続します。
VSOL2 VCEN

VSOL1

ソーラーパネル

VMOT1 VMOT2

降圧コンバータ１

降圧コンバータ２(ON)

(OFF)

モーター

リレー(ON)

満充電検出後に、リレーを OFF にする。

VBAT二次電池

充電制御画面では、「7.4 ソーラーパネルから電池を充電」と同様な充電制御を行いますが、PWM1 のデューティ比を 50%固定としています。これにより充電制御画面では、ソーラーパネルの出力電流のピーク検出は行わず、満充電のチェックのみ行っています。満充電のチェックは、「7.4 ソーラーパネルから電池を充電」と同じ方法で行います。
なお、満充電後もタッチパネルには、現在の電圧値と電流値が表示されます。これは、電圧の計測ポイント(VSOL2 と VCEN)が降圧コンバータ 1 とリレーの間にあり、満充電になっても VSOL2 と VCEN での電圧と電流の計測を継続しているためです。
満充電は、KED-EXT102 の LCD に表示される” charge complete”で確認してください。
タッチパネル画面上の[メイン画面]を押下げると充電制御画面からメイン画面に遷移します。
[メイン画面]の押下げ情報は、タッチパネルへコマンドを発行して取得することができます。コマンドと手順については、「10.1.17 充電制御画面の情報取得」を参照ください。
充電制御画面からメイン画面へ遷移するときは、充電制御画面での経路接続状態が引き継がれて、メイン画面で電圧値や電流値の計測を行います。
以上の充電制御の処理については、サンプルプログラムの関数 ShowCharge()を参照ください。

1.6 設定画面
メイン画面の右下部の[設定画面]矢印を押下げると以下の設定画面を表示します。
設定画面では、PWM1 と PWM2 のデューティ比を設定したり、リレーを ON/OFF したりします。また、リレーの変更に伴うメイン画面での矢印表示も調整します。

①②③④⑤①メイン画面②PWM1 のデューティ比設定③PWM2 のデューティ比設定④リレースイッチ OFF⑤リレースイッチ ON
設定画面を表示するコマンドや押下げ情報を取得するコマンドもタッチパネルに予め用意しています。
設定画面表示のコマンドや手順については、「10.1.18 設定画面表示」を参照ください。また、設定画面の押下げ情報の取得のコマンドや手順については、「10.1.19 設定画面の情報取得」を参照ください。
リレースイッチの[ON]/[OFF]によって、メイン画面の矢印を以下のように調整します。
現在の接続経路
ソーラーパネル→モーター
ソーラーパネル→二次電池二次電池→モーター
すべて接続

リレーON
すべての矢印を表示
変化なし

リレーOFF
変化なし
矢印表示なしソーラーパネルからモーターの矢印を表示[メイン画面]を押すとメイン画面へ遷移します。その際には、リレーの[ON]/[OFF]によるリレー状態や矢印表示、PWM1 と PWM2 のデューティ比が、メイン画面に引き継がれます[PWM1 のデューティ比]と[PWM2 のデューティ比]を押すと、次のような設定値入力画面に遷移します。

②③④①①テンキー・・・数値を入力します。(‘.’は無効です。)②[戻る]・・・設定値確定。最初に表示した値が返されます。
③[決定]・・・設定値確定。入力した値が返されます。
④[訂正]・・・設定値キャンセル。最初に表示した値に表示が戻ります。
設定値入力画面の表示や押下げ情報取得もタッチパネルに予め用意しています。設定値入力画面表示のコマンドや手順については、「10.1.20 設定値入力画面の表示」を参照ください。設定値入力画面の押下げ情報取得のコマンドや手順については、「10.1.21 設定値入力画面の情報取得」を参照ください。
設定値入力画面のテンキーには’.’(小数点)が入力できるように表示されていますが、PWM1 と PWM2のデューティ比(0～100%)が小数点数になることはありませんので、サンプルプログラムでは小数点が無効になるようタッチパネルへコマンドを発行しています。

1.7 グラフ表示
グラフ表示には、メイン画面の[グラフ表示]を押下げて遷移します。グラフ表示では、各画面の制御中に計測した最大 60 点の電流値をグラフ化して、電流値の推移を確認し易くします。
④①②③①消費・・・ソーラーパネルからモーターへの電流値によるグラフ②充電・・・ソーラーパネルから二次電池への電流値によるグラフ③放電・・・二次電池からモーターへの電流値によるグラフ④[メイン画面]・・・メイン画面へ遷移
グラフ化は、1 秒置きに保持した最大 60 点の①～③の電流値を対象にしています。保持した電流値が60 点を超えた場合は、一番古い電流値を破棄して更新します。これにより現時点から 1 分前までの各電流値が、グラフ化の対象となります。なお、制御によって経路が接続されていないときの電流値は 0.000Aとなります。
グラフ化は、データ表示を除く画面(グラフ初期画面)を表示してから、電流値のグラフ表示を行います。グラフ初期画面は、タッチパネルに予め用意しています。グラフ初期画面のコマンドと手順については、「10.1.22 グラフ画面の表示」を参照ください。
電流値のグラフ表示は、古い順に電流値を抽出して行います。最初に抽出した電流値からタッチパネル上の座標を求めます。その求めた座標を直線で結んでグラフ表示します。座標を直線で結ぶときには「6.5 タッチパネルへ直線を描画」で学習したタッチパネルの直線描画コマンドを使用します。タッチパネルの直線描画のコマンドと手順については、「10.1.3 直線の描画」を参照ください。
グラフ表示後は、保持した電流値はすべてクリアします。