AG_Send & Ag_Recv in Step 7

motorguru

Level-1
Beiträge
23
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,

ich habe ein Beispiel von Siemens ueber die AG_Send und AG_Recv Funktion. Die Funktion sind wie folgt

A #ACT_SEND
= L 0.0
BLD 103
CALL "AG_SEND"
ACT :=L0.0
ID :=#ID
LADDR :=#LADDR
SEND :=P#DB201.DBX0.0 BYTE 100
LEN :=100
DONE :=#SND_DONE
ERROR :=#SND_ERR
STATUS:=#SND_STAT
NOP 0

AN #RCV_DISABLE
JNB _003
CALL "AG_RECV"
ID :=#ID
LADDR :=#LADDR
RECV :=P#DB201.DBX100.0 BYTE 100
NDR :=#RCV_NDR
ERROR :=#RCV_ERR
STATUS:=#RCV_STAT
LEN :=#RCV_LEN
_003: NOP 0

Kann jemand mir erklaeren? Was bedeutet diese Zeile P#DB201.DBX100.0 BYTE 100

Danke
 
Es handelt sich hierbei um einen Pointer

P#DB201.DBX100.0 BYTE 100

Sagt das vom Datenbaustein 201
ab dem Byte 100 die nächsten 100 Byte empfangen werden.
 
Genau das gleiche, nur das dort halt deine Sendedaten sind. Im Db sind also die ersten 100 Bytes Sendedaten und die letzten 100 Bytes Empfangsdaten.
 
Error 80D2 von AG_RECV Funktion

Guten morgen, ich moechte die AG_SEND und AG_RECV Funktion testen, dazu habe ich 2 s7-300 Stationen verwendet. Eine fuer Send und die andere fuer Recv. Fuer die Send Funktion is kein Problem, aber fuer Recv Funktion bekomme ich den Fehler 80D2 (Start address incorrect). Wie kann ich diesen Fehler beheben? Das Projekt is im Anhang
 

Anhänge

AG_Send
Ich würde mal mind. 2 Byte austauschen.
Der Puffer für die Sendedaten sollte auch min. so lang sein, wie die unter LEN angegebene Datenlänge!
Also eher P#M20.0 Byte 100 oder die Länge korrigieren.
Dann aber aufpassen, dass die anderen Merker nicht im Sendepuffer liegen.

AG_RECV
Auch hier, die Länge korrigieren.
Zusätzlich hast du an
RECV P#M10.0 Byte 1 und
STATUS MW10
Das überschneidet sich und geht natürlich so nicht.

Also RECV P#M10.0 Byte 2 mal versuchen und
STATUS MW300

Für den Sende- und Empfangspuffer lege ich mit immer einen Datenbaustein an, auch die anderen IN und OUT der Bausteine kann man dort ablegen, dann kommen solche Überschneidungen nicht so leicht vor.

Ob das mit PLCSIM geht, kann ich dir leider nicht beantworten.
 
Zurück
Oben