logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[C] komunikacja S7-300<-->AVR

jo_666 21 Kwi 2010 01:26 2934 3
  • #1 7985642
    jo_666
    Poziom 10  
    Witam,

    Od pewnego czasu piszę w C/VB programy obsługujące wymianę danych pomiędzy PC a sterownikiem s7-300 po MPI. Korzystam przy tym z libnodave.dll. Otóż pora podnieść poprzeczkę wyżej :D Kolega nocapukaktos w wątku https://www.elektroda.pl/rtvforum/topic89248.html napisał
    Cytat:
    (Po) MPI [...] Sama wymiana danych nie jest skomplikowana i do obsłużenia nawet przez AVR(małpa)16MHz...
    Siemens milczy w tym temacie, google też nie okazał się wielce pomocny. Chcę do tego wykorzystać USART ATmegi, który poprzez PC Adapter podłączony jest do PLC. Czy któryś z forumowiczów mógłby podzielić się swoją wiedzą i doświadczeniem w tym temacie? Głównie interesuje mnie inicjalizacja połączenia avr z plc.
  • #2 7987699
    poczitamagoczi
    Poziom 14  
    Rzeczywiście pewnie wymiana danych nie jest skomplikowana ale moim zdaniem najistotniejszą kwestią jest protokół komunikacyjny... Skoro s7-300 to pewnie PROFIBUS - ogólnie nie ma wiele projektów z mikronontrolerami na internecie prezentujących wykorzystanie tego protokołu z jednej przyczyny - jest on płatny. A materiałów np. o MODBUSIE ze sto razy więcej. Ale tak na szybko znalazłem jeden projekt z profibusowym slavem na AT90S8535 na niemieckiej stronie http://www.htw-dresden.de/fe/labor/mikror/projects/pb_slave/PB_Text.html
    jest nawet kod w assemblerze.
  • #3 7988187
    acid12
    Poziom 21  
    jezeli komunikacja pomiedzy PLC a uC, stawiałbym na tak jak kolega wyzej pisze na jakiś protokol o otwartej znajomej budowie. ani MPI ani PROFIBUS, wedlug mnie MODBUS jest idealny zeby nawiazac polaczenie, jednak do S7 SIEMENSa MODBUSa nie tak latwo podpiąć (da sie wiem, ale nie wprost) ...

    możesz zrobić jakis wlasny protokół na PPI, albo cos po TCP np, MODBUS TCP ale to juz nie UART niestety.

    ogólnie wszystko co chodzi na rs232 lub rs485 może być, tylko potrzeba znajomości dokładnie protokołu transmisji
  • #4 8410415
    jo_666
    Poziom 10  
    Witam po dość długiej nieobecności,
    pomimo proponowanego przez kolegów MODBUSA kontynuowałem projekt w oparciu o libnodave. W załączniku umieszczam niedziałającą, okrojoną przeze mnie wersję, z napisanymi przeze mnie funkcjami stdwrite i stdread która myślałem, że zadziała na uP. Na PC, gdzie wykorzystane były oryginalne funkcje stdwrite i stdread, struktura _daveOSserialType dla BCCWIN oraz załączony plik setPort projekt działał. Program powinien nawiązać połączenie z PLC przez MPI i przełączyć sterownik w stan stop.
    Wydaje mi się, że napisane przeze mnie funkcje nie działają oraz nie jestem pewien czy uP (w moim przypadku ATmega162) radzi sobie z takimi funkcjami jak daveNewInterface czy daveNewConnection. Z góry dzięki za wszystkie pomysły i propozycje.
REKLAMA