Hirdetés

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

  • Szirty
    őstag

    Sziasztok!

    Még csak most tanulgatom a Step7-et, de egy kicsit el vagyok veszve.
    Van egy PLC, amiben egy merker indít egy időzítőt, de azt nem találom, hogy mi írja a merkert. A keresztreferenciáknál csak az olvasás látszik, viszont ha megpróbálom átírni (mondjuk VAT táblába felvéve), akkor azonnal visszaíródik. Szóval valahol, valami írja.
    Miért nem találom? Van valakinek valami ötlete?
    A PLC egy S7-315.

    Köszi előre is mindenki segítségét!

    Ennek több oka is lehet. Annyiból amennyi infót közöltél, csak találgatni lehet.

    Leírok a lehetséges okok közül néhányat abban a sorrendben amelyikben szerintem legvalószínűbbek a te esetedben.

    1.
    Az illető merker bitet nem abszolút bit címre hivatkozva írja, hanem byte, word, dword címre hivatkozva.
    Pl. ha az illető bit az M7.2, de a go to location nem talál erre írást, csak olvasást, de valahol írja az alábbiak közül valamelyiket: MB7, MW6, MW7, MD4, MD5, MD6, MD7 akkor mivel nincs bit címre hivatkozás írással ezért nem teszi a listába. De ha bekapcsolod a go to location ablakban az Overlapping access to memory areas kapcsolót, akkor azokat is megjeleníti.
    Itt egy példa erre:

    2.
    A bitet indirekt módon írja valahol. Vagyis nem közvetlen címmel hivatkozik rá, hanem kiszámítja a címet. Az ilyen hivatkozásokat sem tartalmazza az xref, hiszen csak futás közben derül ki mi is lesz az a cím, és még akkor is a körülményektől függhet.

    3.
    Rendszerfunkció is írhatja, amit szintén nem talál a keresztreferencia.
    Pl. ha az illető bitet tartalmazó byte be van állítva mint clock memory byte.
    Vagy akkor ha az illető bit egy olyan területen van amit érint egy BLKMOV vagy FILL rendszerhívás célterülete.

    4.
    Valami más eszköz írja "kívülről)
    Pl. terepi buszon keresztül ciklikusan írja egy periféria, egy másik PLC, egy HMI eszköz, stb.

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