bschraud - 2024-05-06

Aufgrund einer SchnittstellenĂ€nderung muss ich meine Messagebuffer erheblich vergrĂ¶ĂŸern.
U.g. Konstante bestimmt die GrĂ¶ĂŸe einer Byte-Array-Definition, die in einer Struktur fĂŒr 9 Botschaften verwendet wird.
Ich benötige also 177372byte zusÀtzlichen Speicher in dem Modul in dem die Struktur als lokale Variable angelegt wird.

Dynamisches Allokieren zur Laufzeit möchte ich vermeiden, damit ich nicht wÀhrend des Betriebes Fehler
aus dem Allokieren behandeln muss.
FĂŒr ein Reservieren des Speicherbereiches habe ich in Codesys keine Einstellmöglichkeiten gefunden.
Die Applikation lĂ€ĂŸt sich ohne weitere Modifikation kopilieren, scheitert aber bei der AusfĂŒhrung.
Welche Lösungs- oder Einstellmöglichkeiten gibt es?

Bei
c_w_process_result_content_len_max: WORD := 292;

[INFORMATION] GrĂ¶ĂŸe des lizenzierten Benutzercodes: 363304 Bytes
[INFORMATION] Speicherverbrauch auf dem GerĂ€t, nicht fĂŒr Lizenzierung verwendet:
[INFORMATION] Speicherbereich 0 enthĂ€lt Daten, Eingang, Ausgang, Speicher und Nicht-sichere Daten: GrĂ¶ĂŸe: 2807632 Bytes , höchste verwendete Adresse: 2159712, grĂ¶ĂŸte zusammenhĂ€ngende SpeicherlĂŒcke: 647920 Bytes (23 %)
[INFORMATION] Speicherbereich 3 enthĂ€lt Code: GrĂ¶ĂŸe: 7267784 Bytes , höchste verwendete Adresse: 5590600, grĂ¶ĂŸte zusammenhĂ€ngende SpeicherlĂŒcke: 1677184 Bytes (23 %)
Übersetzung abgeschlossen -- 0 Fehler, 10 Warnungen : Bereit fĂŒr Download

SpeicherprĂŒfung:
[WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers fĂŒr Eintrag GVL.htFactory._itfInstList.__Interface in Area 0, Offset 0x000033BC (0x71C15414)
[WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers fĂŒr Eintrag __datasourcesInstancesGVL.__datasourcesInstances.dsInst._allItemsHashtable._ht.__Interface in Area 0, Offset 0x00128904 (0x71D3A95C)
[WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz fĂŒr Eintrag IoConfig_Globals.PiXtend_V2_L_Instance._IIoDrv.__Interface in Area 0, Offset 0x0018EC00 (0x71DA0C58)
[WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz fĂŒr Eintrag IoConfig_Globals.PiXtend_V2_S_DAC_Instance._IIoDrv.__Interface in Area 0, Offset 0x0018F090 (0x71DA10E8)
[INFORMATION] PAC: ÜberprĂŒfter Speicher fĂŒr 21336 Objekte. 4 PrĂŒfung(en) fehlgeschlagen.
[INFORMATION] PAC: Check took 00:00:13.9743220.

Applikation lÀsst sich downloaden und funktioniert auf dem GerÀt.

Nach der VergrĂ¶ĂŸerung:
c_w_process_result_content_len_max: WORD := 20000;

[INFORMATION] GrĂ¶ĂŸe des lizenzierten Benutzercodes: 363304 Bytes
[INFORMATION] Speicherverbrauch auf dem GerĂ€t, nicht fĂŒr Lizenzierung verwendet:
[INFORMATION] Speicherbereich 0 enthĂ€lt Daten, Eingang, Ausgang, Speicher und Nicht-sichere Daten: GrĂ¶ĂŸe: 4114264 Bytes , höchste verwendete Adresse: 3164816, grĂ¶ĂŸte zusammenhĂ€ngende SpeicherlĂŒcke: 949448 Bytes (23 %)
[INFORMATION] Speicherbereich 3 enthĂ€lt Code: GrĂ¶ĂŸe: 7267832 Bytes , höchste verwendete Adresse: 5590640, grĂ¶ĂŸte zusammenhĂ€ngende SpeicherlĂŒcke: 1677192 Bytes (23 %)
Übersetzung abgeschlossen -- 0 Fehler, 10 Warnungen : Bereit fĂŒr Download

SpeicherprĂŒfung: (gleiches Ergebnis wie vorher)
[WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers fĂŒr Eintrag GVL.htFactory._itfInstList.__Interface in Area 0, Offset 0x000033BC (0x71C15414)
[WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers fĂŒr Eintrag __datasourcesInstancesGVL.__datasourcesInstances.dsInst._allItemsHashtable._ht.__Interface in Area 0, Offset 0x0021DF38 (0x71E2FF90)
[WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz fĂŒr Eintrag IoConfig_Globals.PiXtend_V2_L_Instance._IIoDrv.__Interface in Area 0, Offset 0x00284238 (0x71E96290)
[WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz fĂŒr Eintrag IoConfig_Globals.PiXtend_V2_S_DAC_Instance._IIoDrv.__Interface in Area 0, Offset 0x002846C8 (0x71E96720)
[INFORMATION] PAC: ÜberprĂŒfter Speicher fĂŒr 21336 Objekte. 4 PrĂŒfung(en) fehlgeschlagen.
[INFORMATION] PAC: Check took 00:00:14.0491831.

Applikation lĂ€sst sich downloaden. AusfĂŒhren mĂŒndet in Ausnahmefehler

Die Applikation lÀuft auf der Runtime CODESYS Control for Raspberry Pi MC SL.
Die Codesys Version ist 3.5 SP20 mit allen Updates.

Kennt jemand eine Speichergrenze fĂŒr lokale Variablen bzw. eventuelle Einstellmöglichkeiten?
Vielen Dank