Narazil jsem na divné chování WebMakeru, když jsem v jednom projektu omylem inicializoval String[20] řetězcem délky 21 končícím mezerou.
Přikládám ořezaný projekt a obrázek, který to demonstruje.
Děje se to v softwarovém PLC i na fyzické CP-2090, ale ne přímo v simulátoru stránek přímo v Mosaicu.
Odpovědi 2
Problém způsobuje chyba v překladači, která povoluje inicializaci delší, než je prostor vyhrazený na data textového řetězce. Řetězce jsou v PLC ukončovány binární nulou. Aby bylo možné řetězec ukončit i v případě, že má maximální délku, je v registrech vyhrazen prostor o jeden bajt větší. V tomto případě překladač chybně vyhodnotil maximální délku inicializace a přepsal i bajt vyhrazený na koncovou nulu. Chybějící koncová nula, pak způsobuje špatné zobrazení řetězce na webových stránkách (jsou vypsáno data, která leží v paměti za řetězcem, až do místa, kde se narazí na binární nulu nebo se dosáhne 255 znaků). V simulaci se problém neprojevuje jen díky tomu, jakým způsoben Mosaic získává z PLC data.
Omlouváme se za způsobené potíže, chybu se pokusíme co nejdříve odstranit.
Díky. My to samozřejmě nepotřebujeme asap, naše stringy jsem zkrátil...
Tento dotaz je vyřešený.