Keresés

Új hozzászólás Aktív témák

  • Szirty

    őstag

    válasz wertick #139 üzenetére

    Hali wertick!

    First Error Word: F F F F ez az ASCII karakter. Ez hex-ban: 4D 4D 4D 4D.
    Ebből, hogy lesz 2*8 bit,


    Már a kérdést se értem. FFFFh az eleve 16 bit! 16 darab 1-es bit.

    ahogy a PDF 71.oldalán az ábra mutatja,ugyanis az egyes bitek kiolvasásával lehet hibákat olvasni.

    Beolvasod az összes karaktert egty pufferbe, amit a PLC a parancsodra válaszol.
    Először is fogod a 8, 9, 10, 11.-edik karaktert. Ezt a 4 karaktert hexa számként értelmezve átalakítod bináris számmá valahogy így:
    Fogod a 4 karakter egyikét, mondjuk az elsőt (bal oldalit). Kivonsz belőle 48-at (dec), majd megnézed nagyobb-e mint 9. ha nem, akkor elrakod. Ha igen, akkor kivonsz belőle még 7-et és akkor rakod el. Ezt megismétled mind a 4 további karakterrel.
    Majd fogod a kapott 4 byte-ot, és a bal oldalit eltolod balra 4 bittel, úgy, hogy azt az eltolást alkalmazod, amelyik 0 biteket léptet be balról, majd ezt a byte-ot OR műveletnek veted alá a következő helyiértékből kapott byttal, majd a kapott értéket elrakod.
    Ugyanezt a műveletet elvégzed a maradék két helyiértékből kapott byte-al, (vagyis a kettő közül a magasabb helyiértékűt, azaz balról a 3 karakterből kapott eredményt) megint eltolod 4 bittel balra ahogy az előbb, majd hozzá OR-olod az utolsót, majd eltárolod.
    Most van két byte-od. Amit elsőként saqkkoztál össze az a magasabb, amit másodikként az az alacsonyabb. Ez a kettő most már binárisan tartalmazza azt az értéket, amit a PLC ASCII-ba kódolva küldött neked, Ezek bitjei pontosan azt jelentik, amiket a 71. oldalon látsz a PDF-ben.
    A másik (second error word) szóval ugyanezt eljátszod, hogy abból is megkapd a bináris értéket és kész.
    Célszerű egy rutint írni az ASCII->Bin konverzióra és utána csak azt hívogatni.

Új hozzászólás Aktív témák