Wie findet man eigentlich einen Fehler mit Core Dump?`

Zuviel Werbung?
-> Hier kostenlos registrieren
Das macht durchaus Sinn. fbMessageListener kann eine Instanz vom Typ FB_MessageListener sein. Zumindest den Typ FB_MessageListener kann man nicht direkt aufrufen.
Ach so ja. Ich kenne Twincat nicht.

Es scheitert bei stMsgEventInfo := fbMessageListener.stEventByIdx(i_nIndex := i);
Vielleicht liegt das Problem bei .stEventByIdx.
Und dies ist hier deklariert: stEventByIdx : ST_MessageEventInfo
Dann Frage ich, wie ist die Typ ST_MessageEventInfo deklariert ?
 
Der Compiler hätte hier schon mächtig dazwischen gegrätscht, wenn bei den Deklarationen was falsch ist. Ausschließen kann man nicht, dass es zwei ähnlich lautende Typen gibt und eine Verwechselung stattgefunden hat. Aber auch da gibt es Übersetzungsfehler, wenn man irgendwo eine falsche Deklaration richtig weiterverwenden will.

Natürlich hat der TE nicht alle Deklarationen gezeigt, aber die Übersetzungsfähigkeit des Projekts schließt schon mal 95% dieser Art von Fehler aus.
 
Der Compiler hätte hier schon mächtig dazwischen gegrätscht, wenn bei den Deklarationen was falsch ist.
Vielleicht gibt es nicht falsches bei den Deklarationen, aber es wird zum Laufzeit eine ungültigen Wert an einen Parameter übergeben.
Vielleicht versteckt irgendwo eine Verschiebung um 1.
Die Konstante MAX_NO_OF_MESSAGES lautet für mich als ob die Arrays entweder mit [0..(MAX_NO_OF_MESSAGES-1)] oder [1..MAX_NO_OF_MESSAGES] deklariert werden muss.

Passt es dass hier crascht es:
1764678978263.png

Und hier nicht:
1764679062715.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Konstante MAX_NO_OF_MESSAGES lautet für mich als ob die Arrays entweder mit [0..(MAX_NO_OF_MESSAGES-1)] oder [1..MAX_NO_OF_MESSAGES] deklariert werden muss.
Vom Namen her hast Du Recht.

Aber der TE hat die Deklaration gepostet:
// FB_MessageListener FUNCTION_BLOCK FB_MessageListener EXTENDS FB_ListenerBase2 VAR // .. _astActiveEvents : ARRAY[0..Param_General.MAX_NO_OF_MESSAGES] OF ST_MessageEventInfo; // List of active events // .. END_VAR
Also ist die reale Anzahl der Arrayfelder MAX_NO_OF_MESSAGES+1

Passt es dass hier crascht es:
1764678978263.png


Und hier nicht:
1764679062715.png
Es scheint eher anders herum zu sein, wenn ich den Postings glauben soll. So als ob die Deklaration wäre:

Code:
_astActiveEvents : ARRAY[0..0] OF ST_MessageEventInfo; // List of active events

Warten wir mal ab, ob der TE noch Unterstützung braucht.
 
Ich war kurz bei einem anderen Termin. Danke für die vielen Beiträge.

CheckBounds habe ich hinzugefügt. Der Ablauf springt nicht in die Bedinungen für die Über- bzw. unterschrittene Grenze.

Doppelte Deklaration gibt es auch nicht.
 
Zurück
Oben