シーケンス回路で使用するリレーと、PLC回路で使用するラダー言語には違いがありますが、PLCの良い点の一つは数値や文字列などのデータを扱えることです。
PLCにおいてデータを扱うためには、内部メモリと呼ばれるデバイスを使用します。このデバイスは、PLC内部の記憶領域であり、数値データやON/OFF状態を表す信号の格納場所(アドレス)を示すものです。
デバイスはワードデバイスとビットデバイスの2種類に分類されます。ワードデバイスは数値データを表現するために使用され、一方ビットデバイスはON/OFF状態を表現するために使用されます。
デバイスの詳細な仕様はPLCのメーカーや機種によって異なりますが、デバイス記号とデバイス番号によって表現されます。例えば、三菱電機製のシーケンサの場合、M00は「補助リレー」というビットビットデバイスであり、「00」という番号が割り付けられたビットデバイスを表します。
その他の三菱シーケンサの代表的なデバイスは以下の通りですが、もちろんこれ以外にも多くの種類のデバイスが用意されています。
デバイス種類 | デバイス記号 | デバイス名 |
ビットデバイス | X | 入力デバイス |
ビットデバイス | Y | 出力デバイス |
ビットデバイス | M | 内部リレー |
ビットデバイス | F | アナンシエータ |
ビットデバイス | L | ラッチリレー |
ワードデバイス | D | データレジスタ |
ワードデバイス | R | 拡張データレジスタ |
ワードデバイスの「ワード」とは「16ビット」のことです。
1ワード分のワードレジスタは連続した16個のビットデータを使用して数値データを表しています。
ビットデータとは「ON」と「OFF」すなわち「1」と「0」の情報です。
これを利用してワードデータは数値を表現することができます。
PLCにおいて、数値を表現するためには16ビットのワードデータ、または32ビットのダブルワードデータを使用します。ワードデータは2の16乗(65,536)通り、ダブルワードデータは2の32乗(4,294,967,296)通りのパターンを表現できます。ただし、表現可能な数値の範囲や負の値を表現できるかどうかは、「データ形式」によって異なります。この点に留意してください
データ形式 | データ長 | 最小値 | 最大値 |
符号なし16bitバイナリー値 unsigned short | 16ビット =2byte =1ワード | 0 | 65,535 |
符号付16bitバイナリー値 signed short | 16ビット =2byte =1ワード | -32,768 | 32,767 |
符号なし32bitバイナリー値 unsigned long | 32ビット =4byte =2ワード | 0 | 4,294,967,295 |
符号付32bitバイナリー値 signed long | 32ビット =4byte =2ワード | -2,147,483,648 | 2,147,483,647 |
最上位ビットのことをMSB(most significant bit)と呼ぶことがあります。
最上位ビットとは、データの二進数表現において、最も桁の大きなビットのことを指します。例えば、8ビットのデータであれば、最上位ビットは左から数えて8番目のビットです。最上位ビットをMSB(most significant bit)と呼ぶことがあります。このように呼ぶのは、最上位ビットがデータの桁数や大きさを決定する上で最も重要なビットだからです。たとえば、符号付きの数値を表す場合、最上位ビットは符号を表し、その値が0か1であるかで正負が決まります。最上位ビットが1であれば負数、0であれば正数を表します。このように、最上位ビットはデータの表現において非常に重要な役割を持っています。
数値データを取り扱うコツ
少数値の取扱
上記の4つのデータ形式は、すべて整数型のデータ形式であり、小数点以下の数値を表現することができません。しかし、例えば位置決めなど、小数点以下の精度が必要なデータを扱う場合には、これらの整数型データを工夫することで小数点以下の数値を表現することができます。この場合、例えば位置決めデータの単位が0.1μmであれば、デバイスのコメント内に単位を記載しておくことで、そのデバイスの内容がわかりやすくなります。
デバイスの割り付け
PLCのデバイス値は、各ビットが独立した2進数で表されます。符号なしの16ビット整数の場合、下位ビットが0から15までの番号でアドレス化されます。同様に、32ビットの場合は0から31までの番号でアドレス化されます。
ダブルワードデータの場合、32ビットのデータであるため、2つの16ビットのデータに分割することができます。PLC内部では、2つのデータが連続して格納され、それぞれ偶数番号と奇数番号のデバイス値が割り当てられます。例えば、偶数番号がD0、D2、D4…、奇数番号がD1、D3、D5…となります。
ただし、偶数デバイス値を使用することが必須というわけではありません。偶数デバイス値を使うことで、データの配置がわかりやすくなり、メンテナンス性が向上するというメリットがあるため、多くの場合において偶数デバイス値が採用されています。
ちなみに、三菱シーケンサにおいて、ダブルワードデータの場合、デバイス「D0」に格納されるデータの順序は、上位16ビットがD1、下位16ビットがD0になります。このようなデータの格納方法を「リトルエンディアン形式」と呼びます。リトルエンディアン形式では、指定アドレスが下位ワードとなり、指定アドレス+1が上位ワードとなるため、注意が必要です。
トルエンディアン形式は、Intelプロセッサなどでも採用されているバイトオーダーの一つであり、下位バイトから順番に格納されるため、扱いやすくなる場合があるとされています。
16bitバイナリー値(16 bit binary)のカンスト
符号付16ビットバイナリー値で表現可能な最大値は32,767です。例えば、1時間に1インクリメントする数値データをカウントする場合、カンストするまでの時間を計算してみます。
1時間に1回カウントアップするので、1日で24回、1年で24×365=8,640回です。
32,767÷8,640=約3.79年でカンストしてしまいます。
次に、符号付32ビットバイナリー値にて、同様にカウントした場合を考えます。
表現可能な最大値は2,147,483,647ですので、2,147,483,647÷8,640=約248,551年となります。
FA装置の寿命を考慮すると、1時間に1回カウントアップするような用途であれば、
符号付32ビットのダブルワード形式のデータを使用する方が良いと思います。
まとめ
- PLCは、内部メモリを使用してデータを扱う。
- 内部メモリには、ワードデバイスとビットデバイスの2種類があり、それぞれ数値データとON/OFF状態を表現する。
- ワードデバイスは16ビットで、ワードレジスタは連続した16個のビットデータを使用して数値データを表す。
- PLCにおいて、数値を表現するためには16ビットのワードデータ、または32ビットのダブルワードデータを使用する。ただし、表現可能な数値の範囲や負の値を表現できるかどうかは、データ形式によって異なる。
- 最上位ビットとは、データの二進数表現において、最も桁の大きなビットのことを指す。最上位ビットをMSB(most significant bit)と呼ぶことがある。
コメントを投稿するにはログインしてください。