Dobrý den,
Narazil jsem, že mi nefunguje funkce „ReadFromDataBox“ z knihovny DataBoxLib_V17_20201109.mlb v mém programu
Pokusem jsem zjistil, že funkce není funkční když chci vracet přečtené data do proměnné na pozici kolem %R65000 (%R65528). To je asi adresa rozhraní dvou paměťových bloku.
Proměnná „Sur_name at %R65000: array [0..200] of T_surovina“ je funkce nefunkční.
Pokud je %R40000 nebo %R100000 tak funkce bez problému funguje.
Přikládám zkušební program.
Odpovědi 2
Dobrý den,
v knihovně je opravdu chyba. Funkce kvůli zpětné kompatibilitě používá pro prvních 64kB starší verzi instrukce, která je dostupná napříč všemi systémy. Kopírování probíhá v cyklu po 250 bytech od konce zadané zóny. Chyba se projeví ve chvíli kdy kopírovaný blok 250 bytů začíná v prvních 64kB, ale svou velikostí tuto oblast přesahuje. V tu chvíl vrátí funkce chybu čtení/zápisu.
Než bude chyba opravena je možno použít novější funkce ReadFromDBx a WriteToDBx. Tyto funkce jsou obecně rychlejší a pracují s celou pamětí bez omezení velikostí kopírovaného bloku. Upravený projekt je přiložen.
Dobrý den,
děkuji za úpravu programu. Zítra vyzkouším u zákazníka. A děkuji za upozornění na novější funkce ReadFromDBx a WriteToDBx.
Vaše odpověď
Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.