60870-5-104 Unterstation, Befehle initError

Mattin81

Level-1
Beiträge
96
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich versuche derzeit eine Unterstation mit der Beckhoff Library aufzubauen.
Das funktioniert auch soweit echt super. Ich kann Einzelmeldungen, Doppelmeldungen usw versenden und empfange die auch in einer Testsoftware am PC.
Nun würde ich gerne vom PC aus Befehle an die SPS senden, natürlich auch viá -104er Protokoll.
Das funktioniert mit dem Einzel- und Doppelbefehl auch einwandfrei. Jedoch wenn ich zusätzlich zum Beispiel noch den Abfragebefehl mit einbauen mächte bekomme ich einen initError (33037).
weiß jemand warum? Initialisierung siehe unten.

Code:
    (* Einzelbefehl *)
    initError := F_iecInitAOEntry( C_SC_NA_1, 10, 0, 0, MAP_AREA_MEMORY, 2100, 0, AODB[8] );
    (*Doppelbefehl*)
    initError := F_iecInitAOEntry( C_DC_NA_1, 20, 0, 0, MAP_AREA_MEMORY, 2200, 0, AODB[9] );
    (*Stationsabfragebefehl*)
    initError := F_iecInitAOEntry( C_IC_NA_1, 30, 0, 0, MAP_AREA_MEMORY, 2300, 0, AODB[10] );

ohne den Stationsabfragebefehl bekomme ich keinen Initerror und es läuft auch einwandfrei.

Vielen Dank schonmal für eure Mühe und Gruß

Martin
 
also ich hab jetzt mal raus gefunden, dass der Fehlercode folgendes bedeutet:

IEC870_COMMERR_INVALIDTYPE 33037 0x0000810D Invalid asdu (object) type

aber warum ist der Typ invalid? C_IC_NA_1 ist doch in der Library definiert.!??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
für alle, die es interessiert:
[FONT=&quot]
Ich[/FONT]
[FONT=&quot] benutz[/FONT][FONT=&quot]en[/FONT][FONT=&quot] die „Ein-Baustein-Lösung“ (High-Level-Lösung). Dort braucht [/FONT][FONT=&quot]man[/FONT][FONT=&quot] diesen Abfragebefehl nicht. Der Baustein macht dies schon automatisch.[/FONT][FONT=&quot] Zeile einfach weg lassen und dann funktioniert es.[/FONT]
 
Hi Martin,
das hängt von deinem Programm-Code ab. Soweit ich weiß hat Beckhoff zwei Lösungen für die IEC 60870-5-10x. Eine "Komplett-Lösung" und eine "Low-Level-Lösung". Bei der "Komplett-Lösung" brauchst du diesen Abfragebefehl nicht, da die Beckhoff-Bausteine dies automatisch machen. Mit der "Low-Level-Lösung" hat man sehr viel mehr Freiheiten, aber auch mehr zu programmieren ;-) Da musst du den Befehl dann verwenden.

Zumindest gab es diese beiden Lösungen als wir bei uns die -101 implementiert haben. Aber das war glaube ich bei -101 und -104 gleich. Kann also sein das du den Befehl gar nicht brauchst. Je nach verwendeter Lösung.

Hoffe das es dir weiterhilft.
Grüße...
 
Hätte ich mal zwischendurch nicht telefoniert ;-)
Hört sich ja gut an... "High-Level" statt "Komplett" :-D
 
Zurück
Oben