1. コンピュータと機器の接続 |
ケーブルは、RS232Cリバースケーブル(Null Modem)を使用します。 結線図は右のとおり。
ケーブル両端のコネクターには通常 D-sub 9 ピン オス を使用します。 RS232C シリアルインターフェスを内蔵したデバイス( Device )は、PC 上 USB Serial Port として構成されますので、ケーブルは USB ケーブルが使用されます。
|
|
|
Step1(準備) |
Computer: |
HTBasicがインストールされた RS232Cインターフェースを持つ Windows 10 PC |
注1) |
デバイスマネージャーで、[ポート(COM と LPT)]にある、使用する通信ポート / USB Serial Port を確認してください。以降の説明では、通信ポート(COM1)を使用している事とします。 |
注2) |
以降の説明では、HTBasic上のターミナルエミュレーターアプリは、プログラム「Terminal9」(ソースリスト-Terminal9.txt-の表示)を読み込み実行します。
プログラム「Terminal9」で ISC は 9 を使用します。(一番目のシリアルインターフェース)
|
Device: |
Windows XP 時代の Microsoft Terminal.exe 等、「Tera Term Pro」等のシリアル接続に対応したターミナルエミュレーターアプリがインストールされた RS232Cインターフェースを持つ Windows 10 PC |
注1) |
デバイスマネージャーで、[ポート(COM と LPT)]にある、使用する通信ポート / USB Serial Port を確認してください。以降の説明では、USB Serial port(COM4)を使用している事とします。 |
注2) |
以降の説明では、ターミナルエミュレーターアプリとして、「Tera Term」を使用例とします。 |
|
Step2(RS232C通信パラメータの設定) |
Computer: |
|
(1) |
HTBasicを起動し、メニューバーからTools|Device Setupを実行し、ドライバー SERIAL を加えます
|
(2) |
Serial Driver Properties で、RS232C通信パラメータのと HTBasic 起動時に、このシリアルドライバーがロードされ、RS232C通信を使ったアプリケーションが実行できるように設定を行います。
(注1) 通信パラメーター、Baud Rate (9600), Data Bits (8), Parity (None),
Stop bits (1) ならびにフロー制御、Use XON/XOFF は、HTBasicでの
デフォルト値です。
(注2) Load this driver at startup もできるように選択します。
|
Device: |
(Tera Term は、ダウンロード後「OSDN 利用規約」に同意の上インストールしご使用ください) |
(1) |
Tera Term を起動し、使用する COM ポートを設定します
|
(2) |
メニューバーから、設定|シリアルポート から通信パラメータを設定します。
(注) 通信パラメーター、Baud Rate (9600), Data Bits (8), Parity (None),
Stop bits (1) は、Tera Term でのデフォルト値です。
フロー制御は、HTBasic に合わせ、Xon/Xoffに設定します。
|
(3) |
メニューバーから、設定|端末 で、改行コード(文字列のターミネータ)を HTBasic のデフォルトに合わせ、受信/送信とも CR + LF に設定して下さい。
ローカルエコー の表示も、データのやり取りの可視化のためできるように設定します。
|
(4) |
メニューバーから、設定|設定の保存 で、最新の設定状態の保存を推奨します。 次回の立ち上げ時、設定|設定の読み込み から、使用する設定をセットできます。
|
|
Step3(双方向通信動作確認: 双方向とも OK であれば、PC上のCOMポート/HTBasicでの
諸パラメーターの設定は正常) |
Device から Computer へ データが送られか / 受け取れるか の確認
(文字 1 を送る)
|
Computer: |
|
方向 |
|
Device: |
|
結果 |
O K |
|
|
Computer から Device へ データが送られか / 受け取れるか の確認
(文字 Z を送る)
|
Computer: |
|
方向 |
|
Device: |
|
結果 |
O K |
|
2. ターゲットデバイスとの接続 |
実際の場面では、ターゲットデバイスが持つ変更可能な諸パラメータと HTBasic で変更可能な諸パラメータとを比較し、マッチしたパラメータ値を決定します。
|
Step1 ターゲットデバイス( Device )でマッチした通信パラメータ値で、HTBasic( Computer )
にシリアルドライバーをインストール |
例)ターゲットデバイスの通信パラメーターとHTBasic( Computer )での設定
Baud Rate (115200), Data Bits (8), Parity (None), Stop bits (1) フロー制御 なし
HTBasic を起動し、メニューバーから Tools|Device Setupで、SERIALドライバーを使用できるようにします。
SERIALドライバーが HTBasic のプログラムで使用可能であるかは、HTBasic のコマンド行から、 LIST BIN<enter> で確認できます。
|
Step2 HTBasic( Computer )/ ターゲットデバイス( Device )間での、
コマンドを使用したプログラミング |
コマンドの送信と結果の受信には、文字列の終わりに EOL(行の区切り)文字として CR + LF を使用します。 参考) HTBasic のデフォルトとなっていますが変更は、
ASSIGN @Sr TO 9;EOL -文字列-
のようします。
|
以下は、HTBasic( Computer )と あるターゲットデバイス( Device )間のデータのやり取りを決められたコマンド処理で行う例です。
|
HTBasic( Computer ) |
方向 |
ターゲットデバイス( Device ) |
ターゲットデバイス( Device )の値を知る |
送信データ:IDE<cr><lf> OUTPUT @Sr;"IDE" ENTER @Sr;A$ |
→ ← |
動作:デバイスID を送信 ↓
送信データ:- ID -<cr><lf> |
送信データ:CLKE<cr><lf> OUTPUT @Sr;"CLKE" ENTER @Sr;A$ |
→ ← |
動作:デバイスの Timedate を送信 ↓
送信データ:- Timedate -<cr><lf> |
ターゲットデバイス( Device )の値を変更する |
送信データ:IDW- ID -<cr><lf> OUTPUT @Sr;"IDW" ENTER @Sr;A$ |
→ ← |
動作:デバイスID を変更後<ack>を送信 ↓
送信データ:<cr><lf> |
送信データ:CLKW- Timedate -<cr><lf> OUTPUT @Sr;"CLKE" ENTER @Sr;A$ |
→ ← |
動作:デバイスの Clock を変更後<ack>を送信 ↓
送信データ:<cr><lf> |
ターゲットデバイス( Device )に計測の開始を指示する |
送信データ:MES1<cr><lf> OUTPUT @Sr;"MES1" ENTER @Sr;A$
(注)応答がない場合の処理要
|
→ ← |
動作: MES1 の計測を開始、終了後<ack>を送信 ↓
送信データ:<cr><lf> |
ターゲットデバイス( Device )にあるデータの送信を指示をする |
送信データ:MES1E<cr><lf> OUTPUT @Sr;"MES1E" ENTER @Sr;A$
(注1)応答がない場合の処理要
(注2)複数のデータがある場合の処理要
|
→ ← |
動作: MES1 に対応するデータを送信 ↓
送信データ:- データ -<cr><lf> |
|
|
3. トラブル処理 |
RS232C シリアルインターフェイスを使用した HTBasic( Computer )と ターゲットデバイス( Device )間のプログラム開発は、ちょっとした通信上の設定の間違い/コマンドのプロトコルの解釈の違いで暗礁に乗り上げる場合がままあります。 そのようなときは、落ち着いて通信パラメータ等の確認、検証を再度行いながらステップを追って解決されることをお勧めいたします。
|