Hirdetés

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

  • Szirty

    őstag

    válasz szaki42 #1088 üzenetére

    Szevasz szaki42!

    "Egy S7-300-as PLC-t szeretnék összehozni egy CP340-es kártya segítségével PC-vel, majd egy másik PLC-vel sorosan...
    Van aki foglalkozott már ezzel a kártyával és esetleg tudna nekem segíteni?"

    CP440-el foglalkoztam. Úgy gondolom nem sok különbség van 340 és 440 között, ami a kezelését illeti. Én RS422-n keresztül Omron C1000H PLC-vel kommunikáltam rajta keresztül (Host Link).

    Alapvetően a forgalmazás elég egyszerű, ahogy Ákos is írta.
    A lényeg az, hogy fogsz egy adatblokkot, és beleteszed amit el akarsz küldeni, majd meghívod a P_SEND (FB3) blokkot.
    A vételhez vagy egy másik DB-t használsz, vagy ugyanabban a DB-ben kialakítasz egy vételi puffert a venni kívánt adatoknak. Meghívod a P_RCV (FB2) blokkot, ami a vett adatokat (ha vannak) beleteszi az általad megadott vételi pufferbe.

    A képen látható programrészletben az FB10 a küldés (P_SEND) és FB11 a vétel (P_RCV) mert át lett nevezve.
    Látható, hogy küldésnél és fogadásnál meg kell adni a blokkoknak a kommunikációs kártya logikai címét LADDR paraméterben.
    Ezt a címet a rendszer osztja ki, de át is lehet írni, mindenesetre a HW configban lehet megnézni mennyi:

    Küldésnek meg kell adni melyik DB- hanyadik byte-jától hány byte-ot küldjön el (DB_NO hogy melyik DB-ből, DBB_NO hogy a DB-n belül melyik címtől, A ELN-ben kell megadni hány byte-ot kell küldeni.
    Vételnél DB_NO-ban meg kell adni, hogy a vett adatokat melyik DB+-be tegye bele, DBB_NO-ban azt hogy a DB-n belül milyen kezdőcímre helyezze el a vett adatokat, A LEN-ben visszaadja hogy hány byte érkezett.

    Természetesen az adás puffert fel kell törteni a P_SEND hívása előtt és a vételi puffer tartalmát fel kell dolgozni a P_RCV hívása előtt, továbbá a venni kívánt adatok jó ha elférnek abban a DB-ben amit kijelöltünk a számára.

    Közben nem árt figyelni a blokkok hiba kimenetét, mert ha nem sikerül valami, akkor azt ott jelzik... A legtöbbet a hibakezeléssel fogsz játszani valószínűleg :)

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