Základem je buffer, do kterého se vkládají požadavky na přenos po síti. Požadavky se řadí za sebou, v jakém přišly od procesů a je jedno, jakou mají procesy periodu běhu.
Při přenášení hodně proměnných je výhodné, uložit je do matic a komunikovat jen tyto matice. Režie pro přenos jedné proměnné je 20B a pro přenos jedné matice 24B. Z toho vyplívá, že při přenosu více proměnných mi narůstá režie na počet přenášených proměnných, ale při zadání proměnných do matice - přenesu stejná data jen s režií jedné matice.
U důležitých proměnných (mělo by se u všech, ale je to dost pracné) hlídat příznak vkladu požadavku na přenos dat do bufferu a stav vyřízení požadavku. Tímto víme, že byl požadavek vyřízen, komunikuje se, nebo skončil chybou.
Pro zabezpečení nepřetečení vysílacího bufferu je dobré u poslední přenášené proměnné monitorovat stav vyřízení požadavku a do nevykomunikování neposílat znova data na síť.
Příklad: Chci posílat 3 proměnné po síti (pp1,pp2,pp3).
IF stav3
ELSE
RegDbDir pp1
RegDbDir pp2
RegDbDir pp3 stav3
ENDIF
U poslední přenášené proměnné pp3 monitoruji stav vyřízení požadavku a dokud není splněná podmínka, že je vyřízen tak nepustím komunikaci dále. STAV== 0-probíhá, 1-poslední komunikace OK, 2-poslední komunikace ERROR.
Více v Programátorské příručce ,,man_ii.pdf" str.313 -- Stavy sériové komunikace.
Poslední komentáře