コイル和レジスタ
前面介绍 Modbus 的内容中多次提到コイル(coil)和レジスタ(register)的概念,尤其是 Modbus function code 中,操作的对象基本上都是コイル和レジスタ。
在 Modbus protocol中之所以仍然称为コイル和レジスタ,完全是历史原因。在 PLC 应用领域,一1つのコイル就代表一个 PLC 出力点,也称为出力继电器。経由控制コイル导通与否来改变继电器出力ステータス,実装弱电控制强电。

但实际上,在如今的 Modbus デバイス中,它们都只是对应一块内存エリア而已。among them,コイル代表ビット操作。(bit),表示一个布尔变量;レジスタ代表字操作(word),表示一个整型変数の種類(当然也可以経由多个字的组合,表示浮動小数点数以及其他复合データ構造)。在 Modbus protocol中,字(word)の長ささ是 16 位,即 2 バイト単位。。
レジスタ种类説明
在 Modbus protocol中,すべてのデータ均存放于レジスタ中。根据存放的データ型以及各自読み書き特性,可以将レジスタ分为四个部分,这四个部分可以连续也可以不连续,完全由開発者たちは决定。
下表表示了四类レジスタ的含义以及与 PLC 的类比。
| レジスタ种类 | 含义 | PLC | example |
|---|---|---|---|
| Coil status (Coil Status) | 出力ポート(読めると書ける。) | DO(数字量出力) | 电磁阀出力、LED 表示 |
| ショップ型入力ステータス (Input Status) | 入力ポート(読み取り専用) | DI(数字量入力) | 拨码开关、微动开关 |
| レジスタを保持する。 (Holding Register) | 出力参数(読めると書ける。) | AO(模拟量出力) | PID 运行参数、阈值上下限 |
| 入力レジスタ。 (Input Register) | 入力参数(読み取り専用) | AI(模拟量入力) | センサーはデータ入力 |
レジスター·アドレス分配
Modbus レジスター·アドレス分配如下表所示,同样参照了 PLC レジスター·アドレス的分配方法。
| レジスタ种类 | registerPLCaddress | registerModbusプロトコルアドレス | 简称 |
|---|---|---|---|
| Coil status | 00001~09999 | 0000H~FFFFH | 0x |
| ショップ型入力ステータス | 10001~19999 | 0000H~FFFFH | 1x |
| レジスタを保持する。 | 40001~49999 | 0000H~FFFFH | 4x |
| 入力レジスタ。 | 30001~39999 | 0000H~FFFFH | 3x |
该表中的 PLC アドレス可以理解为 Modbus protocolアドレス的变种,在タッチパネル和 PLC プログラミング中应用较为广泛。
- register PLC アドレス指存放于コントローラーは中的アドレス,这些コントローラーは可以是 PLC,也可以是タッチパネル,或者文本表示器。PLC アドレス一般采用十进制説明,共有 5 位,其中第一位数字代表レジスタタイプ。
- register Modbus protocolアドレス指的是通信使用するとき的レジスタ寻址アドレス,例如 PLC address 40001 对应寻址アドレス 0x0000,40002 对应寻址アドレス 0x0001。レジスタ寻址アドレス一般使用十六进制説明。
细心的你会发现,PLC register address 40003 对应的プロトコルアドレス是 0x0002,PLC register address 30003 对应的プロトコルアドレス也是 0x0002,虽然通信使用するとき2つ相同的 Modbus protocoladdress,但是因为不同レジスタ的機能コード是不相同的,因此并不存在アクセス冲突。
Leave a Reply