-> Hier kostenlos registrieren
Hallo LibNoDave-User,
die Funktion daveListBlocksOfType von LibNoDave läuft bei mir problemlos mit einer 315er SPS,
auch bei einer 400er geht es prima, solange nicht mehr als 113 Bausteines eines Typs vorliegen.
Ist das aber der Fall muss die Lib ein 2. Paket von der SPS anfordern, dabei kommt bei der 400er CPU
allerdings immer ein Fehler zurück.
Ein bisschen nachforschen brachte das Problem zum Vorschein, die SPS vergibt bei ListBlocks-Anfragen eine
Sequenz-Nummer (bei den 300er scheint das immer die 1 zu sein, was in der Lib auch fest hinterlegt ist).
Wenn die Lib diese Nummer in das Paket für die 2. Anfrage übernimmt klappt es auch bei der 400er wieder.
Das Ganze ist nur eine kleine Änderung im Code der Funktion, bevor "daveBuildAndSendPDU" in Zeile 1102
aufgerufen wird muss dann eben noch eine Zuweisung mit rein:
pam[7]=p2.param[7];
mark_us
die Funktion daveListBlocksOfType von LibNoDave läuft bei mir problemlos mit einer 315er SPS,
auch bei einer 400er geht es prima, solange nicht mehr als 113 Bausteines eines Typs vorliegen.
Ist das aber der Fall muss die Lib ein 2. Paket von der SPS anfordern, dabei kommt bei der 400er CPU
allerdings immer ein Fehler zurück.
Ein bisschen nachforschen brachte das Problem zum Vorschein, die SPS vergibt bei ListBlocks-Anfragen eine
Sequenz-Nummer (bei den 300er scheint das immer die 1 zu sein, was in der Lib auch fest hinterlegt ist).
Wenn die Lib diese Nummer in das Paket für die 2. Anfrage übernimmt klappt es auch bei der 400er wieder.
Das Ganze ist nur eine kleine Änderung im Code der Funktion, bevor "daveBuildAndSendPDU" in Zeile 1102
aufgerufen wird muss dann eben noch eine Zuweisung mit rein:
pam[7]=p2.param[7];
mark_us