CODE39
世界には、100種類ほどのバーコードの種類があるといわれていますが、その中から、CODE39について紹介します。
CODE39とは
CODE39は1975年にインターメック社で開発されたバーコードで、数字、アルファベットといくつかの記号の合計43個のキャラクタをコード化したものです。
アルファベットを扱えることから工業用途にはなくてはならないものとされ、FAでは自動車、電気関係で数多く使用されるのをはじめ、わが国でもEIAJ(現在の(社)電子情報技術産業協会:JEITA)が“EIAJ-EDI標準”として規格化しています。
- CODE39を読み取るには?
- ハンディバーコードリーダの読み取り原理はこちら
CODE39の構成
CODE39は、9本のバー、スペースのうち3本が太いということでこの名前がついています。
基本的な構成としては、以下のようになります。
- 9本のバー、スペースで一つの文字(キャラクタ)を表わします。
- バーコードの始まりと終わりには、*(アスタリスク)が付けられます。(スタート/ストップキャラクタ)
- それぞれのキャラクタの間のスペース部分を「キャラクタ間ギャップ」と呼びます。
通常、ナローバー幅と同じサイズで作られます。
ただし、最大値はナローバー幅の3 ~ 5.3倍という規定になっています。

- CODE39を読み取るには?
- ハンディバーコードリーダの読み取り原理はこちら
CODE39のキャラクタ構成
CODE39は下表のような構成で作られています。
表わすことのできるキャラクタは、数値(0 ~ 9)、アルファベット、記号(— , . , _(スペース),*, $ , /, + , %)です。
| キャラクタ | バーのパターン |
|---|---|
| 0 | ![]() |
| 1 | ![]() |
| 2 | ![]() |
| 3 | ![]() |
| 4 | ![]() |
| 5 | ![]() |
| 6 | ![]() |
| 7 | ![]() |
| 8 | ![]() |
| 9 | ![]() |
| A | ![]() |
| B | ![]() |
| C | ![]() |
| D | ![]() |
| E | ![]() |
| F | ![]() |
| G | ![]() |
| H | ![]() |
| I | ![]() |
| J | ![]() |
| K | ![]() |
| L | ![]() |
| M | ![]() |
| N | ![]() |
| O | ![]() |
| P | ![]() |
| Q | ![]() |
| R | ![]() |
| S | ![]() |
| T | ![]() |
| U | ![]() |
| V | ![]() |
| W | ![]() |
| X | ![]() |
| Y | ![]() |
| Z | ![]() |
| — | ![]() |
| . | ![]() |
| SPACE | ![]() |
| $ | ![]() |
| / | ![]() |
| + | ![]() |
| % | ![]() |
| * | ![]() |
CODE39の特徴
- 数字以外にもアルファベット、記号などが扱えるため、品番などが表現できます。
- スタート/ストップキャラクタが「*」。
- 一つの文字を表わすのに、9本のバー、スペースを用い、他のコードに比べて多いため、誤読が非常に少なく、信頼性の高いバーコードです。
- 一つの文字を表すのに、9本のバー、スペースを用い、他のコードに比べて多いため、バーコードのサイズが最も大きくなります。
- CODE39を読み取るには?
- ハンディバーコードリーダの読み取り原理はこちら
CODE39の使われ方
CODE39は主に工業用として使用されます。
- EIAJラベル
- (社)電子情報技術産業協会(JEITA)では、各企業間で取り引きに関する情報を通信回線を介し、コンピュータ間で交換する方法(EDI)を実施しています(EIAJ-EDI標準)。EIAJラベルでは、このEDI実現のために取引の際に使用される伝票などをEIAJラベルとして標準化しています。この標準化により、企業間でばらばらであった納品書の様式が統一され、作業効率、経済効率が上がることも期待されます。最終的には、納品書廃止(ペーパーレス化)を推し進めようとしています。

- EIAJ Dラベル

- CODE39を読み取るには?
- ハンディバーコードリーダの読み取り原理はこちら
製造業での利用例(ロケーション管理)
工場の倉庫内には多くの部品が保管されており、必要な部品を必要なときに必要な数だけ製造ラインに供給しなければなりません。バーコードを活用することで、どの部品がどこにあるかというロケーション管理が可能になり、素早く見つけ出しピッキングして製造ラインに供給することができます。
ロケーションの付与
棚の場所に「100」や「101」といった番地を付けて、その番地を示すバーコードを作成し、印刷したラベルを棚に貼っておきます。棚に格納する部品には、たとえばインテークバルブは「001001」、エキゾーストバルブは「001002」、カムシャフトホルダーは「001003」というようなコードを付けます。
そして、棚の番地を示すコードと、その棚に格納する部品のコードの対応表をコンピュータ上に作成します。場所コードのバーコードを読み取り、続いて部品コードを読み取ることで、どこに何があるかという情報がコンピュータに入力されます。
- 番地コード 部品コード
- 100 001001
- 101 001002
- 102 001003
ロケーションの管理
棚から部品を取り出すときは、取り出す部品の番地コードと部品コードを読み取り、コンピュータに入力するときに「出庫データ」と指定します。また、新しい部品が入庫した場合は、番地コードと部品コードを読み取って、データをコンピュータに入力するときに「入庫データ」と指定します。これによって、コンピュータは新しい部品を新しい番地に登録します。この操作によって対応表は常に最新の状態に保たれます。そして、部品コードを指定すれば場所を探すことができ、番地コードを指定すれば部品を探すことができます。また、これらの操作をプログラムすることで、ボタン1つで画面に表示したり、リストを出力することができます。
バーコードを使うメリット
番地コードと部品コードのデータを活用すると、部品を探す手間が省けることはもちろん、部品在庫の管理やロボットによる自動ピッキングも可能になります。これにより、必要な部品を必要なだけ製造ラインに供給することが可能になり、生産効率の向上が実現します。
CODE39 フルアスキー
標準のCODE39では、数字、アルファベットといくつかの記号の合計43個のキャラクターをコード化しますが、“$”、“+”、“%”、“/”のいずれかと、その後に続くキャラクターを組み合わせてすべてのアスキーコードをコード化し、バーコードスキャナーより出力することができます。
| ASCII | CODE39 | ASCII | CODE39 |
|---|---|---|---|
| NUL | %U | @ | %V |
| SOH | $A | A | A |
| STX | $B | B | B |
| ETX | $C | C | C |
| EOT | $D | D | D |
| ENQ | $E | E | E |
| ACK | $F | F | F |
| BEL | $G | G | G |
| BS | $H | H | H |
| HT | $I | I | I |
| LF | $J | J | J |
| VT | $K | K | K |
| FF | $L | L | L |
| CR | $M | M | M |
| SO | $N | N | N |
| SI | $O | O | O |
| DLE | $P | P | P |
| DC1 | $Q | Q | Q |
| DC2 | $R | R | R |
| DC3 | $S | S | S |
| DC4 | $T | T | T |
| NAK | $U | U | U |
| SYN | $V | V | V |
| ETB | $W | W | W |
| CAN | $X | X | X |
| EM | $Y | Y | Y |
| SUB | $Z | Z | Z |
| ESC | %A | [ | %K |
| FS | %B | \ | %L |
| GS | %C | ] | %M |
| RS | %D | ^ | %N |
| US | %E | _ | %O |
| SP | スペース | ` | %W |
| ! | /A | a | +A |
| " | /B | b | +B |
| # | /C | c | +C |
| $ | /D | d | +D |
| % | /E | e | +E |
| & | /F | f | +F |
| ' | /G | g | +G |
| ( | /H | h | +H |
| ) | /I | i | +I |
| * | /J | j | +J |
| + | /K | k | +K |
| , | /L | l | +L |
| - | - | m | +M |
| . | . | n | +N |
| / | /O | o | +O |
| 0 | 0 | p | +P |
| 1 | 1 | q | +Q |
| 2 | 2 | r | +R |
| 3 | 3 | s | +S |
| 4 | 4 | t | +T |
| 5 | 5 | u | +U |
| 6 | 6 | v | +V |
| 7 | 7 | w | +W |
| 8 | 8 | x | +X |
| 9 | 9 | y | +Y |
| : | /Z | z | +Z |
| ; | %F | { | %P |
| < | %G | | | %Q |
| = | %H | } | %R |
| > | %I | ~ | %S |
| ? | %J | DEL | %T,%X,%Y,%Z |
- CODE39フルアスキーを利用する場合は、CODE39フルアスキー対応のバーコードスキャナーが必要です。
- フルアスキーを表示するキャラクターの組み合わせは単独では出力されません。
- CODE39を読み取るには?
- ハンディバーコードリーダの読み取り原理はこちら





















































