Hirdetés

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

  • sryman

    csendes tag

    Sziasztok!

    Előre bocsátom, hogy szinte teljesen kezdő vagyok.

    Adott egy S7-1212C CPU hozzá egy CM1241 RS422/485 comm modul.
    A lényeg annyi lenne, hogy Modbus RTU kommunikációt használva kellene egy ABB ACS580 frekvenciaváltóról adatokat kiolvasni és írni valamint elindítani leállítani stb...
    Az olvasás teljesen jól megy, nincs vele probléma, leszámítva azt, hogy néha a PLC status-ként 8200-ás üzenetet dob mely : 'Port is busy processing transmit a request'. Sajnos viszonylag sokszor előjön ez és akkor nem is olvas adatokat, annyira nem zavaró mert folyamatosan olvasom az adatokat, pár kimarad nem vészes.
    Viszont amikor elindítani szeretném már gondba vagyok.
    Az indítási folyamat az alábbiak szerint néz ki ennél a frekiváltónál. Le kell küldeni meghatározott sorrendben a Control Wordot, hogy elinduljon a freki. Először 0x406 majd 0x407, 0x40F és végül 0x47F-re indul el. Ennek az egésznek egyszer kell lefutnia.
    Én ezt úgy próbáltam megoldani, hogyha egy digitális bemenet 1-be lendül, felfutó élre meghívok egy FC-t benne pedig egymás alatt 4 MB_MASTER. Az elsőbe 0x406 a másodikba 0x407 harmadikba 0x40F és a negyedikben 0x47F-et akarok írni a frekiváltóba. Azt hogy ne egyszerre érkezzen le az adat, úgy 'fűztem' fel őket, hogy amikor az első MB_MASTER done kimenete egybe kerül az az engedélyező jele a második MB_MASTER-nek és így tovább a 0x47F-es MB_MASTER-ig.
    A probléma az, hogy mikor meghívom ezt az FC-t már rögtön az első 0x406-os MB_MASTER 8200 hibára kiáll :(
    Nagyon sok mindent kipróbáltam már, késleltetés, időzítés stb... de nem akar sikerülni.
    Esetleg tudnátok segíteni, hogy miért lehet ez a 8200-s hiba?

    Köszönöm szépen.
    István

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