PLC のデータ型
PLC のデータには「ビット」と「ワード」があります。
もう少し正確な書き方をすると、PLC の内部メモリには「ビットアドレス」と「ワードアドレス」という2種類のアドレスがあります。
ワードアドレス
PLC の世界で「1ワード」といえば 16bit のことです。
ワードアドレスのメモリは、コンピューターのプログラムで言うと short 相当です。
ビット処理の多い PLC の世界では、「1ワード」のサイズが変わるのは破壊的な変化となります。そのため、CPU の性能が向上して 32bit 演算が普通に使える今になっても、1ワード 16bit の文化が引き継がれています。
ビットアドレス
PLC は元々、ボタンやランプなどの I/O 操作を、電気回路から論理回路に置き換える目的で作られています。そのため PLC には「ビットアドレス」という概念があります。
ビットアドレスのメモリは、コンピューターのプログラムで言うと bool 相当です。
ビットアドレスの表現方法は製品によって様々です。「0, 1, 2...」というように、ビット毎のアドレスが用意されている場合もあれば、「0.00, 0.01, 0.02...」というように、ワードアドレスにの後ろにビット番号を付け加える場合もあります。
内部の演算に使えるデータ型
PLC のアドレスは「ビットアドレス」と「ワードアドレス」しかありませんが、データの扱いはもう少し柔軟です。演算命令を使い分けることによって、例えば三菱電機の MELSEC-Q シリーズの場合は、メモリの内容を以下のデータ型とみなして演算処理をすることができます。
- 16bit 整数
- 32bit 整数
- BCD 4桁
- BCD 8桁
- 32bit 浮動小数
- 64bit 浮動小数
「BCD (Binary Coded Decimal)」は PLC の特徴的なデータ型だと思います。
16進数表記 | 整数 | BCD | ビットの状態 |
---|---|---|---|
0x0101 | 257 | 101 | 0000 0001 0000 0001 |
0x0065 | 101 | 65 | 0000 0000 0110 0101 |
BCD は、10進数の桁の位置とビットの位置関係を固定にできるのが利点です。16進数表記の値をそのまま10進数の値として扱うことで、10進数の 1桁 は常に 4bit になります。
データを表示する
PLC から読み出したデータは 16bit 単位のバイナリデータです。これを表示するため、表示側は PLC の内部処理に合わせて処理する必要があります。
ビットとワードの変換、エンディアンの変換、BCD変換、文字列変換など…PLC のメーカーや機種によって必要な処理が異なるので面倒ではありますが、技術的に難しいことはありません。記事も長くなってきたので、具体的な処理方法については割愛します。
次回は同じく表示側ですが、JavaScript ではなく、表示に使うアプリについて書いてみたいと思います。
この記事の投稿者
この投稿者の最近の記事
- 2020年5月30日さきラボFA-HAT 開発中
- 2020年4月11日さきラボ工場の設備をネットワークで接続したいけど何をどうしたらいいのか? そんな時はおまかせください!
- 2020年4月10日さきラボテレワークを推奨しない理由
- 2019年10月6日Raspberry Pi と PLC で作る Factory Automationファイルシステムの変換方法