Elektroda.pl
Elektroda.pl
X
Elektroda.pl
SterControl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Komunikacja AVR i Siemens S7-200 - daję punkty

Ravender 28 Mar 2009 10:23 1754 2
  • Poziom 18  
    Problem jest następujący.
    Ja programuję AVR. Kolega programuje S7-200 (lub 300.. nie pamiętam dokładnie). Moja i jego znajomość S7 ogranicza się do styków i timerów.

    Potrzebujemy zrobić prostą transmisję danych między AVR i S7. Pod pojęciem 'prosta" mam na myśli coś w stylu... on wstawia bloczek "TRANSMISJA" i każe wysłać tym bloczkiem liczbę np. 123.

    Ja na AVR odbieram tą liczbę, przetwarzam i jeśli mam ochotę, odsyłam do S7 również jakąś liczbę (raczej nie większą niż FFFF). W trakcie wyszukiwania rozwiązania natrafiłem na słowo Freeport, lecz nie mogę znaleźć żadnych szczegółów na ten temat.

    Do tej pory po prostu wysyłaliśmy liczbę 123 jako sygnał prostokątny ze 123 zboczami, które zliczały przerwania bądź szybkie liczniki. No ale tak dłużej być nie może :).

    Czy mógłby ktoś zaproponować bądź narysować kod takiej komunikacji?

    Zasadniczo chodzi mi o to, żebym w S7 po prostu wstawił jakiś bloczek komunikacji i w sumie analogicznie żeby sytuacja wyglądała po stronie AVR (tutaj np. fajnie się sprawdza RS232). Oczywiście w grę wchodzą dodatkowe scalaki pomiędzy tymi urządzeniami.

    Od razu mówię.. nie jestem biegły w programowaniu S7 dlatego interesują mnie gotowe rozwiązania (rysunki, kod ladder itp.). AVR programuję w C.

    Pula punktów które mogę rozdać to 100 (dzięki uprzejmości jednego kolegi janbernat)
  • SterControl
  • Poziom 13  
    Na tej zasadzie - pytanie/odpowiedź działa protokół MODBUS.
    Trzeba by do AVR dołożyć układ 485 i na COM-ie zaimplementować ten protokół.
  • SterControl
  • Pomocny post
    Poziom 10  
    Proponuję nie wnikać aż tak bardzo w modbusa bo musiałbyś zrobić wtedy 2 rzeczy:zaimplementować w Twoim AVR protokuł np.Modbus RTU master a w sterowniku to slave lub kupić gotową bibliotekę.Obecnie kończę pisać na owy protokuł właśnie na ATMEGA1280 lecz zdecydowanie odradzam Ci walkę z tym tematem tylko zrób tak:na liście komend S7 są 2 komendy do odbioru i wysyłania RCV i XMT podajesz z którego portu wysyłasz i bufor z danymi.No i oczywiście nie zapomni o zrobieniu sobie konwertera w AVR z TTL na RS485 ale to jest akurat mega proste.
    Powinno dla Ciebie wystarczyć.Jak byś coś więcej chciał wiedzieć to napisz:
    isienka1(malpa)wp.pl