Applilet EZ PL プログラム集
1.概要
このアプリケーションノートは、ビジュアル・プログラミングツール「Applilet EZ PL 3.0」でマイコン・トレーニ ングキット ReferSTAR 78K/Kx2 に搭載されているステッピングモーター、LCD モジュール、ネットワークコント ローラなどの入出力デバイスを制御するプログラムを紹介するものです。 本アプリケーションノートでの動作環境は以下のとおりとします。 ターゲットシステム :ReferSTAR 78K/Kx2(CT-781) ホスト PC :Windows XP、USB2.0 FTDI 社仮想 COM ポートドライバインストール済み ホストPC ReferSTAR 78K/Kx2(CT-781) 図1-1:ReferSTAR 78K/Kx2とホストPC 本アプリケーションで紹介するプログラムのファイル名と内容を以下に示します。 表1-1:プログラムのファイル名と内容 紹介している章 ファイル名 プログラムのおもな内容 2. LCD モジュール LCD_SW.loc 押しボタンスイッチの状態を LCD モジュールに表示させる LCD_VR.loc 温度センサーと VR の状態を LCD モジュールに表示させる 3. ステッピングモーター STEP.loc 押しボタンスイッチでモーターのスタート / ストップ、回る向きを制御する 4. ネットワークコントローラ WEB.loc ネットワークを介して、LED、ステッピングモーター、ブザーを制御する 5. 標準ロジック IC 74 シリーズパネル Logic75143.loc スライドスイッチで、どの押しボタンスイッチが LED1 に反映されるかを制御する 6. 7 セグメント LED(拡張回路) 7seg_SW.loc 押しボタンスイッチ 1 を押し下げるたびに 7 セグメント LED の表示が 00 ~ 99 まで2. LCD モジュール
■ スイッチの状態を表示する
「Applilet EZ PL」の LCD 表示パネルでは、入力信号に応じた表示をさせることができます プログラム例と動作 押しボタンスイッチを押すと、LCD モジュールの 1 行目に押されているスイッチの番号が表示されます。 1 2 3 4P6 P5 P17 P16 GND P12 P11 P10 RST GND ANI5 ANI4 ANI3 ANI2 GND
1 × KEY1 ON_ 押しボタンスイッチ コントラストLCD スライドイッチ Embedded Controller 7 8 K 0 / K E2 NEC ELECTRONICS LINK P00 P01 ACT C T-7821 Sunhayato 128KBytesROM 7KBytesRAM uPD78F0537 NETWORK MODULE 78K0/KE2 uPD7 8F0537 TQFP-64 0 1 2 3 4 5 6 93C46 押されているスイッチが 表示される 図2-1:押しボタンSWとLCDモジュールのプログラム例と動作 押しボタンスイッチが複数押された場合の処理は行っていません。 ① ※
プログラムの考え方 まず、押しボタンスイッチが押された場合の処理を考えます。LCD 表示モジュールへ表示する文字列は、押 されるスイッチごとに変わるので、押しボタンスイッチごとに LCD 表示パネルを用意する必要があります。 押しボタンスイッチ SW1 が押されると アクティブ信号を出す ※プロパティはデフォルトのままです アクティブ信号が入ると 1 行目に「KEY1_ON」 と表示する ※プロパティで「表示行」と「表示する文字列」 を設定する 図2-2:押しボタンSWパネルとLCD表示パネルのプロパティ1 ②
Applilet EZ PLの入出力信号について
Applilet EZ PL では、入出力信号をすべて正論理(1 がアクティブ)として扱います。アクティブが L となる I/O(押すと L が入 力される押しボタンスイッチや、L 出力で点灯する LED ランプ)は、入力あるいは出力する際に反転されていると考えてください。 押しボタンスイッチ からの入力信号つぎに、押しボタンスイッチが何も押されていない場合の処理を考えます。押しボタンスイッチが何も押され ていないときは、LCD モジュールに何も表示しないようにします。押しボタンスイッチ 1 ∼ 4 が全て押され ていない場合の LCD 表示パネルを用意し、表示をクリアするように設定します。
A B X
0 0 1
0 1 0
1 0 0
1 1 0
押しボタンスイッチが 何も押されていないと アクティブ信号を出す アクティブ信号が入ると LCD 表示パネルの 表示をクリアする ※プロパティで「表示行」を設定する A B X 押しボタンスイッチの どれかが押されている 押しボタンスイッチが 何も押されていない 図2-3:押しボタンSWパネルとLCD表示パネルのプロパティ2■ 温度とボリュームの状態をLCDモジュール2行に表示する
温度センサーとボリュームの状態を 2 行に分けて LCD モジュールに表示する例を示します。 プログラム例と動作 温度センサーの温度を LCD モジュールの 1 行目に、ボリュームの値を 2 行目に表示します。 1 2 3 4 5 C T -7820 Sunhayato forEmpower your cr eat i vi t y EmbeddedContr oller 7 8 K0 / K X 2
NEC ELECTRONICS
MicroComputer Evaluation Board
2 1 2 3 4
P6 P5 P17 P16 GND P12 P11 P10 RST GND ANI5 ANI4 ANI3 ANI2 GND
1 × Temperature:28 押しボタンスイッチ LCD コントラストスライドイッチ LED ランプ ステッピングモーター 温度センサー ブザー ボリューム 温度とボリュームの状態 が表示される VR=75 図2-4:温度センサー、ボリュームとLCDモジュールのプログラム例と動作 ①
プログラムの考え方 温度センサーのパネルでは、10 とおりの範囲を指定できます。それに合わせて LCD モジュールのパネルも 10 とおり用意します。 アクティブ信号(温度センサーが 115)が入ると 1 行目に「Temperature:34」と表示する ※プロパティで「表示行」と「表示する文字列」 を設定する 設定した範囲の値が入力されるとアクティブ 信号を出す ※プロパティでコンペアタイプにチェックし 設定値を設定する 温度センサーの設定値 LCD の 1 行目の表示文字列 255 ~ 123 from -40 to 25 122 Temperature:26 121 Temperature:27 120 Temperature:28 119 Temperature:29 118 Temperature:30 117 Temperature:31 116 Temperature:32 115 Temperature:33 114 Temperature:34 図 2-5:温度センサーと LCD 表示パネルのプロパティ 温度センサーからの入力値は、デバイスの個体差、環境などに影響されます。上記は参考例ですので、実際に設定する 場合は、最適な値に調整してください。温度センサーの温度特性については「ReferSTAR 78K/Kx2 ユーザーズマニュ アル」を参照してください。 ② ※
ボリュームのパネルでも 10 とおりの範囲を指定できますので、10 とおりの LCD モジュールのパネルを用意 します。 アクティブ信号(ボリュームが 0 ∼ 24)が入ると 1 行目に「VR= 0- 24」と表示する ※プロパティで「表示行」と「表示する文字列」 を設定する 設定した範囲の値が入力されるとアクティブ 信号を出す ※プロパティでコンペアタイプにチェックし 設定値を設定する ボリュームの設定値 LCD の 2 行目の表示文字列 255 VR =255 200 VR =200-254 175 VR =175-199 150 VR =150-174 125 VR =125-149 100 VR =100-124 75 VR = 75- 99 50 VR = 50- 74 25 VR = 25- 49 0 VR = 0- 24 図2-6:ボリュームとLCD表示パネルのプロパティ
アナログ入力パネルのプロパティ設定について
アナログ入力パネルのプロパティ設定で、コンペアタイプに設定した場合で「設定値の範囲にある場合だけ出力する」にチェック を入れない場合は、設定値よりも大きい値(255 まで)の範囲で比較します。 例:右図の場合 0 ~ 255、25 ~ 255、50 ~ 255、75 ~ 255、100 ~ 255…3. ステッピングモーター
ステッピングモーターのパネルでは、モーターを回すかどうかと、回す向きを設定できます。 プログラム例と動作 押しボタンスイッチ 1 を押すと、ステッピングモーターが左回りに、押しボタンスイッチ 2 を押すと右回りに 回ります。 1 2 3 4 5 C T -7820 Sunhayato forEmpower your cr eat i vi t y EmbeddedContr oller 7 8 K0 / K X 2
NEC ELECTRONICS
MicroComputer Evaluation Board
2 1 2 3 4
P6 P5 P17 P16 GND P12 P11 P10 RST GND ANI5 ANI4 ANI3 ANI2 GND
1 × 押しボタンスイッチ LCD コントラストスライドイッチ LED ランプ ステッピングモーター 温度センサー ブザー ボリューム 押しボタンスイッチ1を押すと左回り 押しボタンスイッチ2を押すと右回り 図3-1: 押しボタンSWとステッピングモーターのプログラム例と動作 ①
プログラムの考え方 ステッピングモーターのパネルは、Enable、Dir 信号でモーターの回転開始 / 停止、方向を制御できます。ま たプロパティで回転速度、励磁方法が設定できます。プログラム例では回転速度を 20、励磁方式を 1-2 相励磁 に設定しています。 1 2 E D 押しボタンスイッチが押されていない 押しボタンスイッチ1が押されている 押しボタンスイッチ 2 が押されている 押しボタンスイッチ 1、2 が押されている 回らない 右回りに回る 左回りに回る 右回りに回る
1 2 E D
0 0 0 0
1 0 1 1
0 1 1 0
1 1 1 1
図3-2:ステッピングモーターパネルのプロパティ ②4. ネットワークコントローラ
ネットワークコントローラを制御する WEB 入出力パネルを使用する場合は、コンパイルの前にかならず Applilet EZ PL の「設定」メニューの「ネットワーク」で IP アドレスとサブネットマスクを設定してください。 IP アドレス、サブネットマスクはご使用の環境に合ったものを設定してください。 図4-1: IPアドレスの設定 プログラム例と動作 図4-2:WEB入出力パネルのプログラム例 ※ ①ホスト PC でブラウザを起動し、IP アドレスを指定します。ReferSTAR 78K/Kx2 のページが表示されます。
ReferSTAR 78K/Kx2
ホストPC
ブラウザにページを 表示して操作する 1 2 3 4 5 C T -7820 Sunhayato forEmpower your cr eat i vi t y EmbeddedContr oller 7 8 K0 / K X 2
NEC ELECTRONICS
MicroComputer Evaluation Board
2 1 2 3 4
P6 P5 P17 P16 GND P12 P11 P10 RST GND ANI5 ANI4 ANI3 ANI2 GND
1 × 押しボタンスイッチ LCD コントラストスライドイッチ LED ランプ ステッピングモーター 温度センサー ブザー ボリューム IPアドレスを指定 「WEB入力設定」 をクリック ONでブザーをならす(2000Hz) ONでブザーをならす(1000Hz) ONでブザーをならす(500Hz) ON/OFFでモーターの向きを変える ONでモーターをまわす ONでLED1を点灯する ネットワーク あるいは クロスケーブルで直接接続 ネットワークケーブル Embedded Controller 7 8 K 0 / K E2 NEC ELECTRONICS LINK P00 P01 ACT C T-7821 Sunhayato 128KBytesROM 7KBytesRAM uPD78F0537 NETWORK MODULE 78K0/KE2 uPD7 8F0537 TQFP-64 0 1 2 3 4 5 6 93C46 図4-3:WEB入出力プログラムの動作
プログラムの考え方 WEB 入力のパネルでは、ネットワークを介してブラウザに表示されるスイッチからの信号の数を設定できま す。信号は各処理 / 出力パネルのアクティブ信号として使用できます。 アクティブ信号が入力されるとそれぞれの 出力パネルより LED ランプ、ステッピング モーター、ブザーを制御する ※ブザー出力パネルはプロパティで出力周波数に チェックを入れる ネットワークを介してブラウザに表示された スイッチが ON されるとアクティブ信号を出す ※プロパティで入力ビット数を設定する 図4-4:WEB入出力プログラムの各パネルのプロパティ WEB 入力パネルと WEB 出力パネルはかならずペアで配置する必要があります。 ② ※
ReferSTAR 78K/Kx2 とホスト PC の通信 WEB 入出力パネルを使用したプログラムを動作させて、ホスト PC と通信しているとき、ReferSTAR 78K/ Kx2 はホスト PC から WEB サーバーとして認識されています。以下に主な通信のやりとりを示します。 図4-5:ホストPCとReferSTAR 78/Kx2との主なやりとり ③ ReferSTAR 78K/Kx2 ホストPC IPアドレスを指定 (HTMLファイルを要求) 「WEB入力設定」をクリック (CGIプログラムの実行を要求) ネットワーク HTMLファイルを送信 CGIプログラムを実行 ・HTMLページを表示 CGIプログラムのコマンドを実行 ・I/Oを制御 ・HTML表示を書き換える (スイッチの状態OFF→ON) ON/OFFスイッチをクリック (CGIプログラムのコマンド発行) WEBクライアント WEBサーバー LED1
WEB 入出力パネルが生成するページ
WEB 入出力パネルは、Applilet EZ PL で作成したプログラムの内容が反映されるページ(「WEB 入力設定」 のページ)以外に、「I/O ポート状態表示」、「N/W(ネットワーク)状態表示」のページを生成します。
図4-6:WEB入出力パネルが生成するページ ④
5. 標準ロジック IC 74 シリーズパネル
標準ロジック IC 74 シリーズの「74153」パネルを使用した例です。「74153」は 4 チャネルのマルチプレクサです。 以下に真理値表を示します。入力信号 B、A の状態によって、C0 ∼ C3 のどの信号が出力されるかが決まります。 真理値表
Select Inputs Data Inputs Strobe Outputs B A C0 C1 C2 C3 G Y X X X X X X H L L L L X X X L L L L H X X X L H L H X L X X L L L H X H X X L H H L X X L X L L H L X X H X L H H H X X X L L L H H X X X H L H X: Don’t care パネルのプログラム例と動作を以下に示します。 1 2 3 4 5 C T -7820 Sunhayato for
Empower your cr eat i vi t y EmbeddedContr oller 7 8 K0 / K X 2
NEC ELECTRONICS
MicroComputer Evaluation Board
2 1 2 3 4
P6 P5 P17 P16 GND P12 P11 P10 RST GND ANI5 ANI4 ANI3 ANI2 GND
1 × 押しボタンスイッチ コントラストLCD スライドイッチ LED ランプ ステッピングモーター 温度センサー ブザー ボリューム スライドスイッチ1,2:下/下 →押しボタンスイッチ1がLED1に反映 スライドスイッチ1,2:下/上 →押しボタンスイッチ2がLED1に反映 スライドスイッチ1,2:上/下 →押しボタンスイッチ3がLED1に反映 スライドスイッチ1,2:上/上 →押しボタンスイッチ4がLED1に反映 図5-1:「74153」パネルのプログラム例と動作
6. 拡張回路例(7 セグメント LED)
ReferSTAR 78K/Kx2 のブレッドボード拡張回路例として、2 桁の 7 セグメント LED 回路と、7 セグメント LED パネルのプログラム例を示します。 5V 2SA1020 2SA1020 C O M 1 1 f 2 g 3 e 4 d 5 C O M 2 6 D.P 7 c 8 b 9 a 10 a b c d e f g D.P LA-401VD Digit 1 SEG_DP SEG_F SEG_G SEG_E SEG_D SEG_C SEG_B SEG_A C O M 1 1 f 2 g 3 e 4 d 5 C O M 2 6 D.P 7 c 8 b 9 a 10 a b c d e f g D.P LA-401VD Digit 2 SEG_DP SEG_F SEG_G SEG_E SEG_D SEG_C SEG_B SEG_A OE 1 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 GND 10 LE 11 8Q 12 7Q 13 6Q 14 5Q 15 4Q 16 3Q 17 2Q 18 1Q 19 VCC 20 SN74ABT573 120 1/4W 120 1/4W 120 1/4W 120 1/4W 120 1/4W 120 1/4W 120 1/4W 120 1/4W SEG_DP SEG_F SEG_G SEG_E SEG_D SEG_C SEG_B SEG_A 1u/25V 5V 1u/25V 1k 1k 1k 1k 5V 1u/25V P10 P11 P12 P16 P17 P23 P22 P24 P05 P06 P25 図6-1:7セグメントLED拡張回路例 C T -7820 Sunhayato for
Empower your cr eat i vi t y EmbeddedContr oller 7 8 K0 / K X 2
NEC ELECTRONICS
MicroComputer Evaluation Board
2 1 2 3 4
P6 P5 P17 P16 GND P12 P11 P10 RST GND ANI5 ANI4 ANI3 ANI2 GND
1 × 押しボタンスイッチ コントラストLCD スライドイッチ ボリューム 押しボタンスイッチ1を押すたびに 7セグメントLEDが00∼99まで カウントする 図6-2:7セグメントLEDのプログラム例と動作
プログラムの考え方 7 セグメント LED の下位桁(0 ∼ 9 までが表示される)へ表示する処理を考えます。押しボタンスイッチを 押し下げるたびにカウントするので、カウンタパネルの入力に押しボタンスイッチ 1 を入力します。押しボタ ンスイッチを押し下げるたびに 7 セグメント LED の下の桁に 0 ∼ 9 までカウントされます。 アクティブ信号が入力される とそれぞれのジャンパパネル で設定された文字を 7 セグメ ント LED に表示する ※プロパティで表示桁と表示 文字を設定する 押しボタンスイッチが押された回数をカウント し、設定した数値になるとアクティブ信号を出す ※プロパティでカウント値を設定する ※プロパティで 表示タイプを 設定する 図6-3:7セグメントLEDプログラムの考え方1 7 セグメント LED を表示する場合は 7 セグメント LED ジャンパパネルと 7 セグメント出力パネルの両方を配置、設定 する必要があります。 ② ※
上位桁のカウンタは、下位桁のカウンタの桁上がりがあるときだけカウントするようにします。下位桁カウン タが 0 になったときに桁上がりがあると考え、下位桁カウンタの 0 ビット目(下位桁カウンタが 0 のときアク ティブ)を上位桁カウンタの桁上がりの信号として使います。 プログラム開始直後は下位桁のカウンタが 0 に初期化され、0 ビット目がアクティブになるので、そのときだ けは上位桁カウンタが桁上がりをしないようにします。
D
CK
押しボタンスイッチ 1 常に 1 下位桁カウンタの 0 ビット目 (カウンタが 0 のときアクティブ) 電源投入後は 0 を保持している 一度押しボタンスイッチ 1 を押 すとずっと 1 を保持する 桁上がりのための信号 プログラム開始直後に桁上がり が起こらないようにするための D フリップフロップ 上位桁カウンタの アクティブ信号 図6-4:7セグメントLEDプログラムの考え方2Copyright© 2007 Sunhayato Corp. 本資料について 本資料は、電子工作や電子回路、パーソナルコンピュータ の操作について一般的な知識をお持ちの方を対象にしてい ます。 本資料を元に操作するには、NEC エレクトロニクス社製マ イコンについての知識や開発環境などが必要です。 Microsoft®、Windows® は米国 Microsoft 社の米国および その他の国における登録商標です。 その他、記載されている製品名は各社の商標または登録商 標です。 本資料のご利用にあたって 本資料に掲載している内容は、お客様が用途に応じた適切な 製品をご購入頂くことを目的としています。その使用によ り当社及び第三者の知的財産権その他の権利に対する保証、 又は実施権の許諾を意味するものではありません。また、 権利の侵害に関して当社は責任を負いません。 本資料に記載した情報を流用する場合は、お客様のシステ ム全体で充分評価し適用可能かご判断願います。当社では 適用可能判断についての責任は負いません。