BHTの実行時エラー

主なエラーと意味、対策など
(詳細はマニュアル参照)

エラー番号
(16進)
意味と対策など
0 システムの内部要因によるエラー。
1 NEXT に対応するFOR がありません。
2 文法エラー
3 RETURN に対応するGOSUB がありません。
4 DATA ステートメントがありません。
READ ステートメントで読むデータがもうありません。)
5 パラメタの値が範囲外です。
6 演算結果が許容範囲をこえています。
7 メモリが足りません。(ネストが深すぎるなど)
8 配列が宣言されていません。
9 添字の値が範囲外です。
(添字の値が配列のサイズをこえているか、次元の指定が宣言と異なっています。)
0A 二重宣言(配列が二重に宣言されました。)
0B 0による除算が実行されました。
0C CASE およびEND SELECT に対応するSELECT がありません。
0D END DEF またはEXIT DEF ステートメントが、DEF FN ステートメントブロックの外で実行されました。
0E 実引数の値が仮引数の型の範囲を超えています
仮引数とローカル変数の数の合計が範囲外です。(合計数が254 を越えました。)
0F 文字列長が範囲外です。
10 式が長すぎるか、複雑すぎます。
11 アプリケーションスタックオーバーフロー
12 スコープ違反です。
14 エラーが発生していないのにRESUME ステートメントが実行されました。
(エラー割込み処理ルーチンの外でRESUME ステートメントが実行されました。)
1F CALL ステートメントで、範囲外の機能番号が指定されました。
32 ファイルタイプが間違っています。
33 受信テキストのフォーマットが正しくありません。
34 ファイル名かファイル番号が正しくありません。
(指定されたファイルはオープンされていません。)
35 ファイルが見つかりません。
36 ファイルタイプが正しくありません。
(ステートメントまたは関数と、ファイルタイプ(データファイル、通信デバイスファイル、バーコードデバイスファイル)が矛盾しています。)
37 ファイルはオープン済みです。
(オープン済みのファイルに対してOPEN ステートメントが実行されました。)
38 ファイル名が受信ヘッダのものと異なっています。
39 ファイル数が多すぎます。
3A ファイル番号の値が範囲外です。
3B レコード数が、定義された最大値をこえました。
3C FIELD オーバーフロー
(FIELD ステートメントで指定されたレコード長が、255 バイトをこえています。)
3D FIELD ステートメントで指定されたフィールド幅が、ファイルと異なっています。
→ファイルを削除して実行する。
(ファイルレイアウトを変更して、PD4だけ入れ替えて実行したときなどに発生)
3E FIELD ステートメントが実行されていないのに、PUT またはGET ステートメントが実行されました。フィールド変数のスコープが範囲外です。
3F レコード番号が正しくありません。
(レコード番号の値が範囲外です。)
40 パラメタが設定されていません。
(ID が設定されていません。)
41 ファイルが壊れています。
42 読み出し専用ファイルに書き込もうとしました。
43 フラッシュROM 上のファイルは変更できません。
読み出し専用のファイルは変更できません。
45 同時オープンが禁止されているデバイスファイルをオープンしようとしました。
46 通信エラーが発生しました。
47 通信が異常終了したか、クリアキーによって中断されました。
48 通信タイムアウト
(指定された時間内にCS 信号を受信できませんでした。)
49 受信したプログラムファイルが不正です。
4A レコード件数が多すぎます。
(BHT/BHT-Ir プロトコル指定時)
4B 指定プロトコルと、通信相手のプロトコルが異なります。
(Ymodem プロトコル指定時)
6F ファイルが既に存在しています。
90 ファイル受信時、解凍に失敗しました。
(Ymodem プロトコル指定時)
A0 画像データが不正です。
(サイズが大きすぎます。データが壊れています。)
A1 画像データ表示に失敗しました。
A2 画像データ表示に失敗しました。
F0 引数の数が異なります。
F1 引数の型が異なります。
F2 文字列変数領域が不足しています。
→古い機種から 新しい機種に変えたときに発生することがある。
“SCREEN.FN3” 1 など
100 通信経路の指定に失敗しました。
101 通信経路の接続に失敗しました。
102 通信経路が指定されていません。
103 すでに通信経路が接続されています。
104 すでに通信経路が切断されています。
105 電源断を検出しました。
106 TCP/IP モジュールの内部要因エラー
107 TCP/IP モジュールが起動していません。
108 TCP/IP モジュールの使用するメモリが不足しています。
110 2XX 以外の応答を受け取りました。
111 ファイルがクローズされていません。
201 ソケットの接続はできません。
202 FTP 転送するファイルが見つかりません。
209 ソケット識別子が無効です。
20D 切断せず異なるFTP サーバに接続しようとした。
216 パラメタの1 つが無効です。FTP ハンドルが無効です。
パラメタの1 つが無効か、ソケットがすでにバインドされています。
218 ソケット数が多すぎます。
224 ソケットにアドレスを割り付け中です。
225 前回のソケットのクローズが完了していません。
228 受信する最大データ数が小さすぎます。
229 指定したソケットが接続先のソケットと一致しません。
22A このオプションが指定のレベルで認識されません。
22B このプロトコルファミリは、指定したプロトコルタイプおよびプロトコルに対応していません。
22F 指定したアドレスファミリはこのソケットでは不正です。
230 指定IP アドレスはすでに使用されています。
231 指定したアドレスが不正です。
236 相手側からRST を受信し、コネクションが切れました。
237 システム領域のメモリが足りません。
238 ソケットはすでに接続されています。
239 ソケットが接続されていません。
23A ソケットがクローズされています。(TCP ソケットのみ)
23C タイムアウトが発生しました。
23D 接続に失敗しました。
293 通信経路上に問題が発生しました。
241 ホストまでの接続経路がありません。
295 ログイン要求したがユーザがありません。
400 設定値を読み出せませんでした。
(書き込めませんでした。)
401 SS 無線通信デバイスファイルまたは微弱無線通信デバイスファイルのオープンに失敗しました。
450 無線通信デバイスからの応答がありません。
503 CU が他のBHT とリンク確立されています。
504 既にCU 設定の実行中です。
505 タイムアウト
506 サポートしていない通信速度です。
600 Bluetooth 通信デバイスのオープンに失敗しました。
601 接続に失敗しました。
602 接続処理がタイムアウトしました。
620 リモートデバイスと接続されていません。
610 Bluetooth 通信デバイスのオープンに失敗しました。
621 リモートデバイス名の獲得に失敗しました。
622 Bluetooth 通信デバイスからの応答がありません。
630 サービス検索に失敗しました。
631 サービス検索処理がタイムアウトしました。
640 低消費電力モードへ遷移できませんでした。
641 既に低消費電力モードに遷移しています。

ダイアルアップ接続のセキュリティ

NTTのフレッツISNDで、自社サーバまで直接通信するのは、アクセスポイントにあたる自社サーバの信頼性にかかってくる。
当該PCが別のネットワークに属していると、そちらに引きずられる…。

接続先のサーバが社内LANに接続しているとき、
ISDN経由で接続されたPCは、アクティブディレクトリなどの管理とセキュリティが適用される。

通常、常時接続でインターネットに出るとき、セキュリティを考える必要があるのに比べると、格段にセキュリティで安全と考えられる。

—–
2017年7月の記事より

Windows 10 (x64) に Creators Update (v1703) を適用後、ダイヤルアップ接続を行うと、エラー 633 により失敗します。この現象は、Windows 10 (x86) では発生しません。エラー 633: モデム (またはほかの接続デバイス) は既に使用中か、正しく構成されていません。
原因:本現象は、製品の問題により、RASMAN サービスがデバイス(モデム)ドライバをロードする処理に失敗するために発生します。
対処方法:本件の修正を含む累積更新プログラム (KB4025342) は、Windows Update にて自動配信が開始されております。

Windowsの資格情報

【Windows】

コントロール パネル→ユーザー アカウントと家族のための安全設定→資格情報マネージャー

【コマンドプロンプト = cmdkey.exe 】

保存されたユーザー名とパスワードの作成、表示、および削除を行います。

このコマンドの構文:

CMDKEY [{/add | /generic}:ターゲット名 {/smartcard | /user:ユーザー名 {/pass{:パスワード}}} | /delete{:ターゲット名 | /ras} | /list{:ターゲット名}]

例:

利用できる資格情報を表示するためのコマンドは次のとおりです:
cmdkey /list
cmdkey /list:ターゲット名

ドメイン資格情報を作成するためのコマンドは次のとおりです:
cmdkey /add:ターゲット名 /user:ユーザー名 /pass:パスワード
cmdkey /add:ターゲット名 /user:ユーザー名 /pass
cmdkey /add:ターゲット名 /user:ユーザー名
cmdkey /add:ターゲット名 /smartcard

汎用資格情報を作成するためのコマンドは次のとおりです:
汎用資格情報を作成するには /add スイッチを /generic で置き換えることができ
ます

既存の資格情報を削除するためのコマンドは次のとおりです:
cmdkey /delete:ターゲット名

RAS 資格情報を削除するためのコマンドは次のとおりです:
cmdkey /delete /ras

BHTで使用するファイルの拡張子

ファイルの拡張子

ファイルの拡張子は 自由に決めていいのですが、以下の拡張子には特別な意味があります。

拡張子 説明
PD4 プログラムファイル
FNT フォントファイル
LB4 ライブラリファイル

BHTの各種設定の取り決め

BHTにはいろんな機種があり、プログラミングする上で気にする部分は次の内容です。

仕様 格納できる値 備考
画面のサイズ
QVGA?
QVGAでの文字の表示 現行機種の多くの場合、QVGAサイズの機種が多い。
フォントサイズ フォントの大きさ

フォント
のサイズ
画面モード 文字サイズ
横x縦(半角)
表示文字
横x縦(半角)
標準 ANK 12x16 20x20
漢字モード 30x30(15x30) 8x10(16x10)
ANK 12x16 20x20
漢字モード 24x24(12x24) 10x13(20x13)
40 40x40(20x40) 6x8(12x8)
30 30x30(15x30) 8x10(16x10)
24 24x24(12x24) 10x13(20x13)
16 16x16(8x16) 15x20(30x20)
文字の大きさは、フォントサイズ、画面モード、倍角の3つの属性で決まります

フォントサイズは、OUTステートメントで指定
OUT &h6080, 0 ‘ 標準フォント
OUT &h6080, 1 ‘ 小フォント
OUT &h6080, 40 ‘ 縦横40ドット
etc.

画面モードは、SCREENステートメントで指定
SCREEN 0 ‘ ANKモード
SCREEN 1 ‘ 漢字モード

倍角には、以下の4つがあります。
・ 倍角しない
・ 横倍角(文字幅が2倍)
・ 縦倍角(文字高さが2倍)
・ 4倍角(文字幅,高さ共に2倍)

スキャンできるコード 通常のバーコードのみ EAN-13/-8(JAN-13/-8),UPC-A/-E,UPC/EAN(アドオン付 き),Interleaved 2of5,CODABAR(NW-7),CODE39,CODE93,CODE-128、GS1-128(EAN-128),STF,RSS(GS1 DataBar)
QRコードも可能 QRコード、マイクロQRコード、SQRC、iQRコード、PDF417、マイクロPDF417、Maxiコード、DataMatrix(ECC200)、GS1 Composite
通信方法 有線で行う(YModem等) 送受信後のファイルの処置を考慮する。
無線で行う(FTP等) 以下を確認する
・接続するWanのセキュリティ関係(SSIDやパスワード等)
・自BHTのIPアドレス、サブネットマスクの割り当て
・接続先のIPアドレス、FTPなら接続用のユーザー名、パスワードや接続先のサーバサービスなど
リジューム 電源投入時、最初からスタートさせる
電源を落とした状態からの復帰 無線接続などは切れている状態なので、プログラム側で再接続などの工夫をする必要がある。
自動パワーオフ 自動パワーオフをする 自動パワーオフすると、電池の持ちは向上すると思われるが、次に電源入れた時の挙動、とくにリジュームオンの時の対処をプログラミング時に考慮すること。
電源ボタンの押下時間 通常は3秒。 これを長くすることで、誤操作を防止する。
ガベージ ガベージのタイミング 頻繁過ぎるとメモリを痛めるので頻度を考慮する。

BHTにプログラムを送信する方法-TermTermで送信

ハンディターミナルにプログラムを送信するには方法を紹介します。

ハンディターミナルのプログラムは、拡張子がPD4です。

通常、ファイルの送信には、通信ユーティリティを使用しますが、このソフトウエアは有償なので、ここではTeraTermを使った方法を紹介します。

【準備】
パソコンにCU( 載せ台)を接続します。
CUのドライバである ActiveCom のドライバを デンソーのページからダウンロードして設定してください。
※CU= コミュニケーションユニット (communication unit) 載せ台のこと

【TeraTerm を手動で操作するときの手順】
(1) BHTを受信待ちにします。
BHTの[SF]]+[1+を押しながら[PW]を押してシステムメニューにします。
2:Dow.nloadを選択します。
これは30秒でタイムアウトしますので、TeraTermが間に合わなかったら、リトライしてください。

(2) TermTermを起動します。
通信ポートを選択します。通信ポートには「~Active COM~」があります。

[ファイル(F)]→[転送(T)]→[YMODEM]→[送信]の順に選び、プログラムファイル「~.PD4」を選択します。

【TeraTerm のマクロで実行する】

●マクロの例

このマクロは、プログラムファイル「target.pd4」を送信します。
このマクロファイルと同じフォルダに プログラムファイル「target.pd4」を置く。
このマクロのファイルを拡張子[ttl]で作成し、拡張子[ttl]をTeraTermと関連付けをすると、ダブルクリックすることで実行できるようになる。

;このマクロと同じフォルダにプログラムを置く
;このマクロのファイルを拡張子[ttl]で作成し、拡張子[ttl]をTeraTermと関連付けをすると、
;ダブルクリックすることで実行できるようになる。
;
;通信ポート番号=3 通信速度=115.2k
connect ‘/C=3 /BAUD=115200′
;
;送信するプログラム名=target.PD4
;フルパスのプログラム名を作成
PRGNAME=’target.PD4’
getdir filePath
strconcat filePath ‘\’
strconcat filePath PRGNAME
;
;YMODEMで送信する
ymodemsend filePath
if result=1 then
messagebox ‘送信終了’ PRGNAME
else
messagebox ‘送信に失敗’ PRGNAME
endif
;
;終了する
closett
end

BHTの初期化の方法

BHTを初期化すると工場出荷時の状態に戻ります。
中に入っているソフトウエアも削除され、時計も初期化されます。

電源を落とした状態から、次の手順で操作します。

  1. 3つのキー [M1]キーと [0]キーと
    [SF]
    キーを押しながら [PW]を押します。
  2. 画面に[INITALIZE SYSTEM]と表示されます。
    この画面が出なかったら最初からやり直してください。
  3. [1:USER AREA EXCEPT FONTS]が反転している状態で
    [ENT]キーを押します。
  4. [SELECT MESSAG]画面で、[1:Japanese]を選択します。
    [1]キーを押して[1:Japanese]を反転させ、[ENT]キーを押します。
  5. [INITIALIZE SYSTEM]画面で[1:Yes]を選択します。
    [1]キーを押して[1:Yes]を反転させ [ENT]キーを押します。
  6. 初期化が実行され、しばらく待つと 電源が おちて画面が暗くなります。
    これで工場出荷時の状態に初期化された状態になります。

バーコード照合 プログラム

バーコード照合 v1.01

【概要】
バーコードの照合を行います。
照合は、(1)1:1照合 (2)1:n照合の2種類です。
この機能は BHT-1500に搭載されている機能を、他のBHTでも使用できる様に作成されました。

【使用できる機種】
BHT-OSで、画面サイズがQVGAの機種全般
例)
BHT-1500シリーズ /BHT-1300シリーズ /BHT-800シリーズ /BHT-600シリーズ /BHT-500シリーズ

【スキャン可能なバーコード】
EAN-13/-8(JAN-13/-8), UPC-A/-E, Interleaved 2of5, NW-7, CODE39, CODE93, CODE-128, GS1-128(EAN-128), STF, RSS(GS1 DataBar)

【画面イメージ】
メニュー画面 
1:n照合画面
1:n照合 OK画面
1:n照合 NG画面

【ダウンロード】
ここからダウンロードしてください

【動画】

1:n照合の事例