コイルとレジスタ
これまでModbusを紹介した内容ではコイル(coil)とレジスタ(register)の概念が何度も言及されているが,特にModbus関数コードでは,操作対象は基本的にコイルとレジスタである.
Modbusプロトコルでまだコイルとレジスタと呼ばれるのは完全に歴史的な理由です。PLCアプリケーションの分野では、コイルは出力リレーとも呼ばれるPLC出力ポイントを表します。コイルの導通の有無を制御してリレー出力状態を変化させ、弱電制御強電を実現します。

しかし、実際には、今日のModbusデバイスでは、それらはすべて1つのメモリ領域に対応しています。ここで、コイルはブール変数を表すビット演算(ビット)を表し、レジスタは整数変数を表すワード演算(ワード)を表します(もちろん、浮動小数点やその他の複合データ構造を表すために複数のワードを組み合わせることもできます)。Modbusプロトコルでは、ワード(word)の長さは16ビット、すなわち2バイトである。
レジスタの種類説明
Modbusプロトコルでは、すべてのデータがレジスタに格納されます。格納されているデータの種類とそれぞれの読み書きcharacteristicに応じて、レジスタは4つの部分に分割することができ、これらの部分は連続または不連続にすることができ、完全に開発者によって決定されます。
以下の表は、4種類のレジスタの意味とPLCとのアナロジーを示しています。
| レジスタの種類 | 意味の意味 | PLC | 例:例 |
|---|---|---|---|
| コイルの状態 (Coil Status) | 出力ポート読み取り可能 | DO(デジタル出力) | 電磁弁出力、LED表示 |
| 個別入力ステータス (Input Status) | 入力ポート読み取り専用 | DI(数値数量入力) | ダイヤルスイッチ、マイクロスイッチ |
| レジスタを保持する。 (Holding Register) | 出力パラメータ(読み取り可能、書き込み可能) | AOシミュレーション出力 | PID動作パラメータ、しきい値の上限と下限 |
| 入力レジスタ。 (Input Register) | パラメータの入力読み取り専用 | AI(シミュレーション入力) | センサーデータ入力 |
レジスタアドレス割り当て
Modbusレジスタアドレス割当ては下表の通りであり、同様にPLCレジスタアドレスの割当て方法を参照した。
| レジスタの種類 | レジスタPLCアドレス | レジスタModbusプロトコルアドレス | 略称は。 |
|---|---|---|---|
| コイルの状態 | 00001~09999 | 0000H~FFFFH | 0x |
| 個別入力ステータス | 10001~19999 | 0000H~FFFFH | 1x |
| レジスタを保持する。 | 40001~49999 | 0000H~FFFFH | 4x |
| 入力レジスタ。 | 30001~39999 | 0000H~FFFFH | 3x |
この表のPLCアドレスは、タッチスクリーンやPLCプログラミングで広く使用されているModbusプロトコルアドレスの変種として理解できます。
- レジスタPLCアドレスは、PLC、タッチスクリーン、またはテキストディスプレイのいずれかであるコントローラに格納されたアドレスを指します。PLCアドレスは一般的に10進数で記述され、合計5ビットで、最初の桁はレジスタタイプを表します。
- レジスタModbusプロトコルアドレスは、Communicationに使用されるレジスタアドレスアドレスを指します。例えば、PLCアドレス40001はアドレス0 x 0000に対応し、40002はアドレス0 x 0001に対応します。レジスタ·アドレス·アドレスは一般に16進記述を用いる。
注意を払うと、PLCレジスタアドレス40003はプロトコルアドレス0 x 00 02に対応し、PLCレジスタアドレス300 03はプロトコルアドレス0 x 00 02に対応していますが、Communicationは2つの同じModbusプロトコルアドレスを使用しますが、異なるレジスタの機能コードが同じではないため、アクセス競合はありません。
Leave a Reply