Hi,
ja du hast recht der WR_REC läuft asynchron, also wird das mit der Schleife nicht so funktionieren wie ich mir das gedacht habe.
Aber das ist ja nicht so schlimm wenn er mehrere Zyklen braucht.
Habe mir das mal ganz simpel so vorgestellt:
IF NOT #WRREC_Instance.DONE THEN
#WRREC_Instance(REQ := TRUE,
ID := 266,
INDEX := "MC_Data".Send.SDO[#i].INDEX,
LEN := "MC_Data".Send.LEN,
DONE => "MC_Data".Send.Done,
BUSY => "MC_Data".Send.Busy,
ERROR => "MC_Data".Send.Error,
STATUS => "MC_Data".Send.Status,
RECORD := "MC_Data".Send.SDO[#i].Data);
ELSE
#WRREC_Instance.REQ := FALSE;
#i := #i + 1;
END_IF;
Errorhandling würde ich dann später natürlich auch noch machen ist aber jetzt für mich noch uninteressant.
mfg Michl