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...
Vaše odpověď
Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.