Aus reiner Neugierde habe ich mir den SDB210 mal angesehen. Ich denke es sollte möglich sein die Projektierung daraus wieder zurückzuübersetzen. Zumindest wenn die Konfiguration nicht allzu komplex ist.
Ich habe mal als Beispiel eine GD-Kommunikation zwischen zwei Stationen angelegt.
Station 1 ist immer Sender, Station 2 ist immer Empfänger.
Zeile 1: MW100 -> MW200
Zeile 2: DB123.DBD20 -> DB456.DBD40
Die Adressangaben werden im üblichen Format codiert. Wie das aussieht kann man z.B. im Quellcode von libnodave nachsehen. Ich habe die Adressangaben durch Unterstreichung markiert:
Hexdump vom SDB210 in Station 1 (Sender):
Code:
00000 7b 02 00 44 00 00 00 00 00 00 00 00 00 00 00 00 {..D............
00010 00 01 00 34 01 02 02 00 00 01 00 28 01 00 00 00 ...4.......(....
00020 00 00 00 00 00 00 00 00 17 00 00 02 00 01 10 04 ................
00030 00 01 [U]00 00 83 00 03 20[/U] 00 02 10 06 00 01 [U]00 7b[/U] ....... .......{
00040 [U]84 00 00 a0[/U] 00 00 00 00 01 00 e0 43 3a 5c 50 72 ...........C:\Pr
00050 6f 67 72 61 6d 6d 65 5c 53 69 65 6d 65 6e 73 5c ogramme\Siemens\
00060 53 74 65 70 37 5c 73 37 70 72 6f 6a 5c 53 69 6e Step7\s7proj\Sin
00070 61 75 74 54 65 5c 4d 50 49 28 31 29 2e 67 64 74 autTe\MPI(1).gdt
00080 00 53 69 6e 61 75 74 54 65 73 74 2f 2f 53 74 61 .SinautTest//Sta
00090 74 69 6f 6e 20 31 2f 2f 43 50 55 20 31 00 00 02 tion 1//CPU 1...
000a0 22 13 24 00 01 00 00 00 9e 10 14 00 01 00 00 00 ".$.............
000b0 01 20 11 00 3f 00 00 00 00 00 00 00 53 69 6e 61 . ..?.......Sina
000c0 75 74 54 65 73 74 2f 2f 53 74 61 74 69 6f 6e 20 utTest//Station
000d0 31 2f 2f 43 50 55 20 31 00 22 13 24 00 02 00 00 1//CPU 1.".$....
000e0 00 9e 10 14 00 03 00 00 00 01 20 11 00 3f 00 00 .......... ..?..
000f0 00 00 00 00 00 53 69 6e 61 75 74 54 65 73 74 2f .....SinautTest/
00100 2f 53 74 61 74 69 6f 6e 20 32 2f 2f 43 50 55 20 /Station 2//CPU
00110 32 00 00 17 54 68 69 73 20 69 73 20 61 20 74 65 2...This is a te
00120 73 74 20 63 6f 6d 6d 65 6e 74 00 00 st comment..
Hexdump vom SDB210 in Station 2 (Empfänger):
Code:
00000 7b 02 00 46 00 00 00 00 00 00 00 00 00 00 00 00 {..F............
00010 00 01 00 36 01 02 02 00 00 00 00 01 00 2a 01 00 ...6.........*..
00020 00 00 00 00 00 00 00 00 00 00 17 00 00 01 00 02 ................
00030 00 01 10 04 00 01 [U]00 00 83 00 06 40[/U] 00 02 10 06 ...........@....
00040 00 01 [U]01 c8 84 00 01 40[/U] 00 00 01 00 e0 43 3a 5c .......@.....C:\
00050 50 72 6f 67 72 61 6d 6d 65 5c 53 69 65 6d 65 6e Programme\Siemen
00060 73 5c 53 74 65 70 37 5c 73 37 70 72 6f 6a 5c 53 s\Step7\s7proj\S
00070 69 6e 61 75 74 54 65 5c 4d 50 49 28 31 29 2e 67 inautTe\MPI(1).g
00080 64 74 00 53 69 6e 61 75 74 54 65 73 74 2f 2f 53 dt.SinautTest//S
00090 74 61 74 69 6f 6e 20 32 2f 2f 43 50 55 20 32 00 tation 2//CPU 2.
000a0 00 02 22 13 24 00 02 00 00 00 9e 10 14 00 03 00 ..".$...........
000b0 00 00 01 20 11 00 3f 00 00 00 00 00 00 00 53 69 ... ..?.......Si
000c0 6e 61 75 74 54 65 73 74 2f 2f 53 74 61 74 69 6f nautTest//Statio
000d0 6e 20 32 2f 2f 43 50 55 20 32 00 22 13 24 00 01 n 2//CPU 2.".$..
000e0 00 00 00 9e 10 14 00 01 00 00 00 01 20 11 00 3f ............ ..?
000f0 00 00 00 00 00 00 00 53 69 6e 61 75 74 54 65 73 .......SinautTes
00100 74 2f 2f 53 74 61 74 69 6f 6e 20 31 2f 2f 43 50 t//Station 1//CP
00110 55 20 31 00 00 17 54 68 69 73 20 69 73 20 61 20 U 1...This is a
00120 74 65 73 74 20 63 6f 6d 6d 65 6e 74 00 00 test comment..
Die Adressangabe:
00 00 83 00 03 20
bedeutet dabei:
00 00 = Datenbaustein Nummer 0 (wird bei Merkerbereich nicht verwendet)
83 = Merkerbereich
00 03 20 = Adresscodierung in byte/bit, die 3 Bits ganz rechts sind die Bits
also 0x0320 >> 3 = 0x64 = 100 Dez
Das wäre also das MW100.
Die Größe - also ob Byte/Word/DWord - wird dort auch noch irgendwo codiert sein.
Die andere Adresse:
00 7b 84 00 00 a0 00
00 7b = Datenbaustein Nummer 123
84 = Datenbereich DB
00 00 a0 = Adresscodierung wie oben beschrieben.
Schade dass der Globaldatenkonfigurator das nicht wieder zurücküberstzen kann, denn die Daten dazu sollten ja so wie es aussieht alle im SDB vorhanden sein.