Adatcsere S7 PLC-k között MPI buszon keresztül (2. rész)


Az eleső rész itt olvasható

Előfordulhat, hogy két olyan S7 PLC között akarunk MPI buszos adatcserét létrehozni, amelyek közül az egyik nem rendelkezik a megfelelő gyári beépített kommunikációs blokkal. Pl. nem ismeri az X_SEND és X_RCV blokkokat. Ez ugyanis CPU függő, nincs benne minden blokk minden típusú CPU-ban. Ilyenkor az X_SEND, X_RCV nem használható, mert ezek csak párban működnek. Az X_SEND által küldött adatokat a másik PLC-ben az X_RCV fogadja.
Ekkor használhatjuk az X_PUT és/vagy X_GET rendszerhívásokat.


X_PUT: Adatot küld a kommunikációs partnernek. A vevő PLC-ben az adatok fogadásához nincs szükség funkcióhívásra vagy program módosításra. Az adatok fogadását a vevő PLC operációs rendszere elvégzi.



X_GET: Adatokat olvas ki a kommunikációs partner meghatározott adatterületéről. A kiolvasott PLC-ben itt sincs szükség funkcióhívásra.


Az SFC67 és SFC68 paraméterezése hasonló az SFC65, SFC66 paraméterezéséhez.

Paraméterek
REQ Küldés kérése. Logikai 1 hatására az SFC68 elküldeni az adatokat
CONT Folyamatos kapcsolat (continue).
Ha a CONT=0, akkor küldés végén bontja a kapcsolatot a kommunikációs partnerrel, újabb adatküldéskor a kapcsolatot újra felveszi minden alkalommal. Ha egy hívással akarunk felváltva különböző című S7 CPU-nak adatokat küldeni, akkor ezt a módszert használjuk.
Ha CONT=1, akkor a kapcsolatot fenntartja a küldés után is. Ha ciklikusan akarunk adatot küldeni ugyanannak az MPI buszos S7-nek, akkor használjuk ezt a módot, mert így gyakrabban tudunk adatot küldeni, mint ha minden küldés után újra és újra felépítené a majd lebontaná a kapcsolatot (a kapcsolat felépítése és bontása időt vesz igénybe).
DEST_ID A címzett (cél) azonosítója (Destination identifier), vagyis az MPI címe. A paraméter WORD típusú, ne feledjük, hogy ezért a címet hexadecimális alakban kell megadni. Pl. ha a 17-es MPI címet kell megadni, akkor ide 11-et, pontosabban 1W#16#11-et kell írni! (mivel 17 decimális = 11 hexa). Ide tehát azt a címet kell beírni, ami a buszon lévő másik eszköz hardver konfigban beállított MPI címe:
VAR_ADDR X_PUT-nál
A partner (cél) CPU adatterülete, ahova a küldendő adatokat írni kell
X_GET-nél
A partner (cél) CPU adatterülete, ahonnan ki kell olvasni az adatokat
SD Csak X_PUT-nál
A küldő CPU adatterülete, ahol a küldendő adatok vannak.
RET_VAL Visszatérési érték. Az SFC hívás ebben a kimenő paraméterben adja vissza az adatküldéssel kapcsolatos állapot információt és hibakódot
BUSY Logikai kimenő érték. Állapota 1, amikor az adatküldés folyamatban van (foglaltság jelzés)
RD Csak X_GET-nél
A vett adatokat az X_GET az itt megadott területre helyezi el. Maximális adathossz 76 byte.
Az RD paraméterben megadott adathossznak azonosnak kell lennie a VAR_ADDR-ben megadott hosszal.

A REQ bemenet 1-be állításakor megkezdődik az adatküldés/adatkérés. A blokkot mindaddig újra és újra meg kell hívni, amíg a BUSY kimenete 0 nem lesz. BUSY=0 jelzi, hogy az adatküldés nincs folyamatban.
A RET_VAL értéke 0 lesz, ha az adatküldése vagy adat fogadása sikeres.
Természetesen a VAR_ADDR és SD/RD paraméterben megadott adatterület lehet eltérő. Kiolvashatjuk pl. a partner CPU merkereit, amiket a local CPU DB blokkjába másolunk. Csak az adathossznak kell megegyeznie.

Az X_GET-et vagy X_PUT-ot futtató PLC akkor is képes az adatok küldésére illetve fogadására, amikor a partner CPU STOP módban van.

Vissza a főoldalra



Szirty