- 1. 通讯Funktion
- 2. 通讯Beispiel
- 3. Funktionscode 03H:读Register.
- 4. Funktionscode 10H:写多路Register.
- 5. 16 位CRC-Test码
- 6. 出错处理
- 7. ModbusTechniken交流QQ群
通讯Funktion
仪表采用 RS485 Kommunikation方式,Porter Rate可设为 1200、2400bps、4800bps、9600bps。
同一条通讯线路上最多可以同时Verbindung 32 个仪表,每个仪表均可设定其通讯Adresse,通讯Verbindung应使用带有铜网的屏蔽双绞线,线径不kleiner als 0.5mm2 。布线时应使通讯线远离强电电缆或其他强电场环境,最大传输距离为 1200m,典型的网络Verbindung方式如图,用户可根据具体情况选用其他合适的Verbindung方式。

DL/T 645-2007 VereinbarungWechselnzu ModBus-RTU 通讯Vereinbarung的Daten帧如下:
FE FE FE FE 68 xx xx xx xx xx xx 68 14 0E 33 33 35 3D 35 33 33 33 33 33 33 33 33 33 CS 16
注意:xx xx xx xx xx xx 即为屏显Adresse,如编Nr.为 21 02 25 02 15 21 则填入 21 15 02 25 02 21,填入的是仪表侧边条形码标Nr.的倒写.

CS为68 xx xx bis zu 33 33 33的Prüfungen und后两位,不包括前面4个FE;
更改后modbus Adresse,Porter Rate,Datenplatz,Prüfstand.,Stoppen Sie Platz以仪表屏幕显示。
默认DL/T645VerbindungParameter为(8n2,2400bps),Senden Sie上述指令,观察电表屏显,当“DLT645”变成“Modbus”即为Wechseln成功,观察屏显“Modbus”后一屏的数字,该数字为电表的modbus从机Adresse,以10 System显示,注意,modbus的默认Porter Rate为9600。
仪表设置为 ModBus-RTU 传输模式时,ModBus-RTU 通讯Vereinbarung在一根通讯线上采用主从应答方式的通讯Verbindung方式。首先,主Berechnung机的信Nr.寻址zu一台唯一Adresse的终端Ausrüstung(从机),然后,终端Ausrüstung发出的应答信Nr.以相反的方向传输给主机,即半双工的工作模式。该Vereinbarung只允许在主机(PC,PLC 等)和终端Ausrüstung之间通讯,而不允许独立的终端Ausrüstung之间的Daten交换,这样各终端Ausrüstung不会在它们初始化时占据通讯线路,而仅限于Antwortzu达本机的查询信Nr.。
仪表提供 ModBus-RTU 通讯Vereinbarung(见附录 A),通讯可Lesen或修改的Parameter信息,见下表。
| ParameterAdresse | Parameter代Nr. | Parameter说明 | Datentyp | DatenLängeWord | 读写属性 |
| 0000H | UcodE | 编程密码 codE | int | 1 | R |
| 0001H | REV. | 软件版本 | int | 1 | R/W |
| 0002H | CLrE | 电能清零 CLr.E | int | 1 | R/W |
| 0003H | RESERVED | 保留 | int | 1 | R/W |
| 0004H | RESERVED | 保留 | int | 1 | R/W |
| 0005H | ChangeProtocol | VereinbarungWechseln设置 | int | 1 | R/W |
| 0006H | Addr | 此Adresse只有 Modbus-RTU 时Wirksam | int | 1 | R/W |
| 0007H | RESERVED | 保留 | int | 1 | R/W |
| 0008H | RESERVED | 保留 | int | 1 | R/W |
| 0009H | RESERVED | 保留 | int | 1 | R/W |
| 000AH | RESERVED | 保留 | int | 1 | R/W |
| 000BH | RESERVED | 保留 | int | 1 | R/W |
| 000CH | BAud | Porter Rate | int | 1 | R/W |
| 000DH | RESERVED | 保留 | int | 1 | R/W |
| 000EH | RESERVED | 保留 | int | 1 | R/W |
| 000FH | RESERVED | 保留 | int | 1 | R/W |
| 0010H | RESERVED | 保留 | int | 1 | R/W |
| 2000H | U | A 相电压 | float | 2 | R/W |
| 2002H | I | A 相电流 | float | 2 | R/W |
| 2004H | P | 瞬时总有功功率 | float | 2 | R/W |
| 2006H | Q | 瞬时总无功功率 | float | 2 | R/W |
| 2008H | S | 瞬时总视在功率 | float | 2 | R/W |
| 200AH | PF | 总功功率因数 | float | 2 | R/W |
| 200CH | RESERVED | 保留 | float | 2 | R/W |
| 200EH | Freq | 电网频率 | float | 2 | R/W |
| 2010H | RESERVED | 保留 | float | 2 | R/W |
| 4000H | Ep | 有功总电能 | float | 2 | R/W |
ChangeProtocol VereinbarungWechseln模式字,Daten为 2 为 Modbus-RTU Vereinbarung,Daten为 1 时为 DL/T 645-2007Vereinbarung;
CLr.E 电能清零写 1 Beseitigung总电能;
BAud Porter Rate: 0:1200bps; 1:2400bps; 2:4800bps; 3:9600bps;
通讯Beispiel
Funktionscode 03H:读Register.
主机要Lesen从机Adresse为 01H,Start-Register - Adresse为 0CH 的 2 个Registerdaten,主机Senden Sie:
| Adresse码 | Funktionscode | Start-Register - Adresse | Anzahl der Register | CRC-Prüfung码 |
| 01 | 03 | 00 0C | 00 02 | 04 08 |
如果从机Register. 0CH、0DH 的Daten为 0000H、1388H,从机返回:
| Adresse码 | Funktionscode | Anzahl der Bytes | Register. 0CH Daten | Register. 0DH Daten | CRC-Prüfung码 |
| 01 | 03 | 04 | 00 00 | 13 88 | F7 65 |
Funktionscode 10H:写多路Register.
例如:主机要把Daten 0002H、1388H、000AH 保存zu从机Adresse为 01H,Start-Register - Adresse为 00H的 3 ein Register.中。
主机Senden Sie:
| Adresse码 | Funktionscode | Start-Register - Adresse | Anzahl der Register | 写入Anzahl der Bytes | 00H Register.待写入Daten | 01H Register.待写入Daten | 02H Register.待写入Daten | CRC-Prüfung码 |
| 01 | 10 | 00 00 | 00 03 | 06 | 00 02 | 13 88 | 00 0A | 9B E9 |
从机返回:
| Adresse码 | Funktionscode | Start-Register - Adresse | Anzahl der Register | CRC-Prüfung码 |
| 01 | 10 | 00 00 | 00 03 | 80 08 |
16 位CRC-Test码
主机或从机可用Prüfcode判别Empfang信息是否Richtig.。由于电子Geräusche或一些其它干扰,信息在传
输过程中可能会发生Fehler.,Prüfcode可以检验主机或从机通讯信息是否有误。
16 位 CRC-Prüfung码由主机Berechnung,放置于Senden Sie信息帧的尾部。从机再重新BerechnungEmpfangzu的信息的CRC,比较Berechnung得zu的 CRC 与Empfangzu的 CRC 是否一致,如果不一致,则表明出错。在进行 CRC Berechnung时只用zu 8 个Datenplatz,Anfang位及Stoppen Sie Platz都不参与 CRC Berechnung。
CRC-Prüfung码Berechnung方法如下:
1) 预置 1 个 16 位的Register.为16. System FFFF(即全为 1),称此Register.为 CRC Register.;
2) 把Die一个 8 位BinärsystemDaten(通讯信息帧的Die 1 个Bytes)与 16 位 CRC Register.的低 8 位相Unterschiedlich oder,Ergebnis放于 CRC Register.;
3) 把 CRC Register.的内容右移一位(朝低位)并用 0 填补最高位,检查右移后的移出位;
4) 如果移出位为 0:重复Die 3)步(再次右移一位);
如果移出位为 1:CRC Register.与多项式 A001(1010 0000 0000 0001)进行Unterschiedlich oder;
5) 重复步骤 3)和 4),直zu右移 8 次,这样整个 8 位DatenAlles进行了处理;
6) 重复步骤 2)zu步骤 5),进行通讯信息帧下一个Bytes的处理;
7) 将该通讯信息帧所有Bytes(不包括 CRC-Prüfung码)按上述步骤Berechnungabgeschlossen.后,得zu的 CRC Register Inhalt即为:16 位 CRC-Prüfung码。
出错处理
当仪表检测zu了除 CRC-Prüfung码出错以外的其它Fehler.时,将向主机回送信息,Funktionscode的最高位置为 1,即从机返送给主机的Funktionscode是在主机Senden Sie的Funktionscode的基础上加 128。从机返回的Fehler.信息帧Das Format如下:
| Adresse码 | Funktionscode(最高位为 1) | Fehler.码 | CRC-Prüfung码 |
| 1 Byte | 1 Byte | 1 Byte | 2Bytes |
Fehler.码如下:
| 01H | 非法的Funktionscode | Empfangzu的Funktionscode仪表不支持 |
| 02H | 非法的Register-Adresse | Empfangzu的Register-Adresse超出仪表的Register-Adressenbereich |
| 03H | 非法的Daten值 | Empfangzu的Daten值超出相应Adresse的Daten范围 |
ModbusTechniken交流QQ群

Antwort veröffentlichen