OSCAT Forum
network.lib => Codesys 2 => Thema gestartet von: mormel am 16. Januar 2013, 08:59:57
-
Hallo,
ich habe hier einen 1-Wire-server, der die Daten der Sensoren als XML-File liefert (per http://ipadresse/details.xml) . Das Problem ist, dass ich momentan 3 Sensoren dran habe, und das gelieferte XML-File 3,5KB groß ist und ich vom HTTP_GET Baustein immer die Fehlermeldung FE auf B1, also Empfangsbuffer ist voll(Überlauf) bekomme.
Im Ernstfall können schon mal 50 Sensoren dran hängen, so dass das XML-File dann demenstprechend größer sein wird.
Kann ich das irgendwie umgehen und die XML-Datei verarbeiten, ohne dass sie komplett geladen wird bzw. während sie geladen wird?
Danke schon mal
mormel
-
hallo
der xml_server kann nur mit einem byte_array arbeiten, und der http_get ist standardmaessig auf ca. 4kb voreingestellt. ein möglicher weg ist nun das du die network.lib anpasst
VAR_GLOBAL CONSTANT
NETWORK_BUFFER_LONG_SIZE : UINT := 4095;
END_VAR
die änderungen haben aber eine auswirkung auf das ganze projekt, somit kann es sein das immens viel speicher benötigt wird.
eleganter wäre es wenn man die betroffenen bausteine kopiert und mit geänderten bausteinen arbeitet und eine eigene NETWORK_BUFFER_LONG variable definiert und verwendet, aber das wird dann schon anspruchsvoller
aber für erste test kann man die simple anpassung schon mal machen
ich vermute das die alleine schon mal reicht
-
Hallo,
der xml_server kann nur mit einem byte_array arbeiten, und der http_get ist standardmaessig auf ca. 4kb voreingestellt. ein möglicher weg ist nun das du die network.lib anpasst
VAR_GLOBAL CONSTANT
NETWORK_BUFFER_LONG_SIZE : UINT := 4095;
END_VAR
OK, da ist aber bei 32766 Schluss, momentan reicht es, falls es mehr Sensoren werden, kann es durchaus trotzdem eng werden...
die änderungen haben aber eine auswirkung auf das ganze projekt, somit kann es sein das immens viel speicher benötigt wird.
Aber doch nur, falls Funktionen verwendet werden, die darauf zurückgreifen, oder?
eleganter wäre es wenn man die betroffenen bausteine kopiert und mit geänderten bausteinen arbeitet und eine eigene NETWORK_BUFFER_LONG variable definiert und verwendet, aber das wird dann schon anspruchsvoller
Hmm, da ist aber auch bei 32766 Schluss?
Vielen Dank, jetzt bekomme ich erstmal alle Werte, danke!
VG mormel