Ethernetkommunikation mit Wägeterminal

oliverlauta

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> 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:
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
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 ;)
 
Zuletzt bearbeitet:
Hallo oliverlauta,

ich vermute es sind die Parameter Status und Len, die die Probleme verursachen:
Status ist ein Word
Len ist ein INT.
Wenn Du aber MW 21 und MW 22 benutzt überschneiden sich die beiden Parameter.
Versuchs mal mit MW 22 und MW 24.

Grüße
Gebs
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@Gebs:
die Bereichs-Überscheidung ist zwar ein fehler - führt m.E. aber nicht zu dieser Meldung. Ich würde hier eher auf den Any-Pointer (P#DB200.DBX0.0 BYTE 10) tippen ... und zwar dass der DB entweder nicht existiert oder nicht groß genug ist ...

@Oliver:
Hast du den dort deklarierten DB200 (in ausreichender Größe) mit in deinem Projekt ? Er wird nicht automatisch angelegt ...

Gruß
Larry
 
Hallo Larry,

Ich würde hier eher auf den Any-Pointer (P#DB200.DBX0.0 BYTE 10) tippen ... und zwar dass der DB entweder nicht existiert oder nicht groß genug ist ...
Würden dann nicht andere Fehlemeldungen zurückkommen?
z. BSP.:
8F3A: Zielbereich nicht geladen (DB)
8F23: Berich im DB nicht vorhanden

Grüße
Gebs
 
Danke erstmal für eure Antworten!
Der DB200 ist in meinem Projekt vorhanden und auch ausreichend groß dimensioniert (umfasst 100 leere Worte).
Die Merkerbytes habe ich auch geändert, hat leider nichts bewirkt.

Kann es daran liegen, dass im DB Worte sind, ich aber über den FC6 Bytes reinschreiben will?
 
Welchen FC 6 benutzt Du denn?
Stell hier doch mal rein, was unter Eigenschaften, Allgemein Teil 2 steht.

Grüße
Gebs
 
Beim FC6 unter Eigenschaften -> Allgemein Teil 2 steht folgendes:

Name (Header): AG_RECV || Version (Header): 1.1
Familie: CP_400 || Autor: SIMATIC

Dann 4 Speicherplatzangaben, und bei den 6 Ankreuzkästchen unten ist nur "KNOW HOW Schutz" aktiviert.

Falles es noch wichtig sein sollte, meine Step7-Version ist V5.4 + SP4, Ausgabestand: K5.4.4.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo oliver,

ich habe mir nochmal das Handbuch angesehen. Ist schon irgendwie komisch, denn für den
FC 6 gibt es diesen Fehler dort nicht nur für den FC 5. Beim FC 6 wäre es 8F25H.
Lt. Siemens soll man bei neueren Baugruppen immer die neuesten FC's verwenden.
Es gibt ein Update für die Net-Bibliothek:
http://support.automation.siemens.com/WW/view/de/8797900

vllt. hilft das.

Grüße
Gebs
 
Hallo Gebs,

danke für den Hinweis mit dem Update, hab es mal draufgezogen, allerdings besteht der Fehler nach wie vor. Und auch im (neuen) Handbuch findet sich dieser Fehler leider nach wie vor nicht verzeichnet.

Ist schon merkwürdig, ich bekomme einen Fehler, den es eigentlich gar nicht gibt. Hab nochmal HWKonfig und Netpro überprüft, konnte da allerdings keine Fehler feststellen (lässt sich auch alles ohne Probleme speichern und übersetzen).

Kann es vielleicht im E-Fall am PLCSIM liegen?

Grüße
 
Hallo Oliver,

ich habe leider noch nie mit PLCSLIM gearbeitet und kann dazu also auch nichts sagen.
Aber es gibt hier ein paar Leute die sich damit auskennen. Vllt. haben sie ja eine Lösung.

Grüße
Gebs
 
Zurück
Oben