oliverlauta
Level-1
- Beiträge
- 7
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Leute,
ich bin neu hier und auch relativ neu in der SPS-Thematik (beschäftige mich seit ca. 1 Jahr damit).
Ich habe folgendes Problem und ich hoffe, dass Ihr mir da helfen könnt.
Meine Aufgabe ist es, ein Wägeterminal (DISOMAT von Schenck) mit einer SIEMENS S7-400-Steuerung zu verbinden.
Das Wägeterminal hat einen seriellen Ausgang, dieser wird per Seriell-Ethernet-Wandler an den CP (CP 443-1) meiner Steuerung angeschlossen. Die CPU ist eine CPU 414-2 DP. Da ich hauptsächlich in der Planung bin, habe ich leider nicht so schnell eine Möglichkeit, das ganze Ding in echt zu testen, kann also nur auf PLCSIM zurückgreifen.
Die Kommunkation möchte ich mit dem FC6 (AG_RECV) basteln. Das Wägeterminal sendet seine Daten über UDP an die SPS. Diese soll die Daten entgegennehmen und in einen DB (DB200) schreiben. Die Hardware ist im HWKonfig korrekt konfiguriert und die Ethernetverbindung (UDP) ist im Netpro projektiert (da habe ich auch die Daten für ID und LADDR her).
Zunächst will ich den Code testweise aufbauen. Dazu nutze ich einen Taktmerker, mit dem ich im OB1 den FC6 aufrufe. Anders gesagt, mein FC6 wird immer nur dann aufgerufen, wenn Bit 7 meines Taktmerkerbytes MB0 TRUE ist. Desweiteren zeigt der FC6 auf M20.0 an, ob Daten angekommen sind, auf M20.1 ob ein Fehler vorliegt, auf dem MW21 den Status und auf MW22 die Länge der Daten. So ist es zumindest geplant.
Hier der Code dazu:
Wenn ich das Ding nun in mein PLCSIM lade, funktinoniert das soweit auch. Dabei tritt jedoch im FC6 ein Fehler auf und als Status wird mir der HEX-Wert 8F24H ausgegeben. In der Hilfe meines S7 ist dieser Code nicht vorhanden, allerdings habe ich anderswo hier im Forum einen Beitrag mit Fehlercodes gefunden. Da ist dieser zu finden. Laut der Tabelle aus diesem Forum bedeutet der Fehler: "Bereichsfehler beim Lesen eines Parameters".
Damit kann ich aber leider nichts anfangen. Habe schon versucht, verschiedene übergebene Parameter zu ändern, hat aber leider alles nicht funktioniert.
Könnt ihr mir da weiterhelfen?
Vorab, ich bin für jede Hilfe dankbar!
Viele Grüße
oliverlauta
PS: Sorry, wenn das im Endeffekt nur ein ganz dummer Anfängerfehler ist, bin halt wie gesagt noch relativ neu in dem Gebiet
ich bin neu hier und auch relativ neu in der SPS-Thematik (beschäftige mich seit ca. 1 Jahr damit).
Ich habe folgendes Problem und ich hoffe, dass Ihr mir da helfen könnt.
Meine Aufgabe ist es, ein Wägeterminal (DISOMAT von Schenck) mit einer SIEMENS S7-400-Steuerung zu verbinden.
Das Wägeterminal hat einen seriellen Ausgang, dieser wird per Seriell-Ethernet-Wandler an den CP (CP 443-1) meiner Steuerung angeschlossen. Die CPU ist eine CPU 414-2 DP. Da ich hauptsächlich in der Planung bin, habe ich leider nicht so schnell eine Möglichkeit, das ganze Ding in echt zu testen, kann also nur auf PLCSIM zurückgreifen.
Die Kommunkation möchte ich mit dem FC6 (AG_RECV) basteln. Das Wägeterminal sendet seine Daten über UDP an die SPS. Diese soll die Daten entgegennehmen und in einen DB (DB200) schreiben. Die Hardware ist im HWKonfig korrekt konfiguriert und die Ethernetverbindung (UDP) ist im Netpro projektiert (da habe ich auch die Daten für ID und LADDR her).
Zunächst will ich den Code testweise aufbauen. Dazu nutze ich einen Taktmerker, mit dem ich im OB1 den FC6 aufrufe. Anders gesagt, mein FC6 wird immer nur dann aufgerufen, wenn Bit 7 meines Taktmerkerbytes MB0 TRUE ist. Desweiteren zeigt der FC6 auf M20.0 an, ob Daten angekommen sind, auf M20.1 ob ein Fehler vorliegt, auf dem MW21 den Status und auf MW22 die Länge der Daten. So ist es zumindest geplant.
Hier der Code dazu:
Code:
U M0.7
SPBNB _001
CALL "AG_RECV"
ID :=1
LADDR := W#16#1FFD
RECV := P#DB200.DBX0.0 BYTE 10
NDR := M20.0
ERROR := M20.1
STATUS := MW21
LEN := MW22
_001: NOP 0
Damit kann ich aber leider nichts anfangen. Habe schon versucht, verschiedene übergebene Parameter zu ändern, hat aber leider alles nicht funktioniert.
Könnt ihr mir da weiterhelfen?
Vorab, ich bin für jede Hilfe dankbar!
Viele Grüße
oliverlauta
PS: Sorry, wenn das im Endeffekt nur ein ganz dummer Anfängerfehler ist, bin halt wie gesagt noch relativ neu in dem Gebiet
Zuletzt bearbeitet: