-
        

Ergebnis 1 bis 10 von 10

Thema: Kommunikation SPS <-> Mega8 1Bit

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Beiträge
    63

    Kommunikation SPS <-> Mega8 1Bit

    Anzeige

    Hallo,
    habe eine SPS. Diese soll Informationen an einen Mega8 senden (insgesamt ca. 35 Bytes).

    Gleichzeitig soll die SPS Informationen vom Mega8 erhhalten ca. 10 Bytes.
    Bisher noch einfach aber:

    Die SPS hat nur einen digitalen Ausgang und einen digitalen Eingang.

    Jetzt muß ich die Bytes nach und nach seriell rausschieben und einlesen. Hab aber keinen Takt oder eine Syncronisation. Wie mach ich das am besten ???

    Danke CAS

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.10.2006
    Ort
    Hamburg
    Alter
    37
    Beiträge
    105
    Hi!
    hat deine SPS keine BUS-Anbindung?

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.07.2006
    Ort
    Kassel
    Beiträge
    264
    Eine richtige SPS? Einfach noch ein Ausgabemodul dazustecken und den Takt auf einem zusätzlichen Ausgang übertragen.

    Spielzeug SPS? Die Daten im Manchestercode übertragen: http://de.wikipedia.org/wiki/Manchestercode

    Florian
    Atomstrom nein danke, mein Strom kommt aus der Steckdose.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    375
    Da hast du schlechte Karten. Am ersten sind die Pegel unterschiedlich (Mega 8 5VDC, SPS meistens 24 VDC), lass sich losen mit opticoupler. Am zweiten sind die Ein/ausgange von einer SPS recht langsam. Die werde cyclisch eingelesen/angesteuert, cycluszeit je nach dem bon 1 bis 50 mS. Ueber so eine Schnittstelle 35 bytes schicken kan lange daueern. Auch must du dan selbst eine art von Protokoll machen. Vorschlag :SPS erweiteren so das du mehr Ein/ausgange hat, und das ganse Parallel machen.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Beiträge
    63
    Hallo,
    also 24V und 5 V sind kein Problem, hab ich mit einem Optok. gelöst.

    Ich mache mit der Übertragung natürlich schon einige Experimente.
    Ich erzeuge einen ständigen Takt mit der SPS. Dieser Ist 3 Taktzyklen der SPS lang. Leider ist ein SPS Takt 1ms lang.
    Zur Zeit ist das Protokoll so:
    Start : 111110 (5ms langer Impuls) danach wird übertragen..
    bit0 bit1 bit2 ... bit8
    Der reine Takt sieht so aus :
    1000 1000 1000 1000 das sind 4 Takte mit je 4xlow also 0 0 0 0
    1110 1110 1110 1110 das sind 4 Takte mit je 4xhight also 1 1 1 1
    1000 1110 1000 1110 das sind 4 Takte mit je 4xhight also 0 1 0 1
    usw...
    das bedeutet 40 Bytes a 8 bit = 40x8x4 + 6=1,286 Sekunden lang

    Leider muß ich 1110 statt nur 110 übertagen um sauber unterscheiden zu können, ob eine 0 oder eine 1 übertragen wird, da die SPSje nach Auslastung mal mal 1,1ms bracht und mal 0,9ms braucht.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    26
    Beiträge
    802
    Hast du auf der SPS keine serielle Schnittstelle?
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Beiträge
    63
    Hallo,

    je nch Modell ja und nein.

    Es geht aber darum, mit möglichtst einem billigem digitalem Ausgang ein Textdisplay (LCD 2x16) anzusteuern.

    Wenn ich eine RS232/ oder RS485 kaufen müßte, ist das Thema wegen der Kosten schon erledigt.

    MfG CAS

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    26
    Beiträge
    802
    Also bei 4 bit Anszeuerung ohne busy flag brauchst du 6 ausgänge..

    aber warum, nicht gleich ein HMI Panel hernehmen?? Oder ist das für privat?
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    04.01.2007
    Ort
    Lübeck
    Beiträge
    52
    Hallo,

    ich weiß, ich grade grade ein altes Thema aus, doch ich finde die Herausforderung sehr interessant. Ich habe damit mal ein wenig experimentiert und bin auch zum Erfolg gekommen. Jedoch, ist es natürlich klar, das die Kommunikation sehr langsam und fehleranfällig ist.

    Die Idee: Der Takt für die Daten wird jeweils durch den Empfänger vorgenommen.

    Datenrichtung µC->SPS
    1. Startsignal: Die SPS wechselt seinen Ausgangspegel von low nach high
    2. Der µC gibt das erste Bit auf seinen Ausgang aus
    3. im nächsten SPS-Zyklus wird der Eingang gelesen und der Zustand gespeichert
    4. Die SPS wechselt seinen Ausgang von high auf low
    5. Der µC gibt das zweite Bit auf seinen Ausgang aus
    6. im nächsten SPS-Zyklus wird der Eingang gelesen und entsprechend gespeichert
    7. Sprung zu Punkt1

    So müssen jedoch immer alle Bytes gesendet werden, da beide Steuerungen die Taktsignale abzählen. Nach dem letzten Bit wird der Ausgang durch die SPS auf low gelegt und die Schnittstelle ist wieder frei.

    In umgekehrter Richtung schaut das ähnlich aus, nur das der mC seinen Ausgangswechsel künstlich verlängern muss, damit die SPS Daten bereit stellen kann (ca. 30ms).

    Bei dem ganzen gehe ich davon aus, dass die SPS eine maximale Zykluszeit von 20ms besitzt. Mehr ist ja eh nicht üblich. Eher tauscht man die SPS.

    Nach dieser Methode muss natürlich permanent abwechselnd der Takt vorgegeben werden, da niemand auf vorhandene Daten hinweisen kann.

    Das ganze habe ich mit einen PIC16F876A im Zusammenspiel mit einer S7-300 (CPU 315-2DP) getestet. Auf der SPS ist der Code in AWL, da ich nur da sinnvoll mit Zeigern durch die Datenbereiche navigieren kann ohne gleich den Zyklus unnötig zu erhöhen.

    Die Methode ist aber ausschließlich für Privat zu verwenden. In der Industrie wird jedem der Kopf abgerissen.

    Gruß
    Rico

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Wenn man in der Industrie zwischen SPS und µC kommunizieren muss wird eher RS232 oder eine ähnliche Schnittstelle verwendet.

    Für den privaten Bereich könnte man es so machen wie oben. Ich würde aber mit gesamt 4 oder 5 Pins arbeiten.
    Die einzelnen Pins sind:
    SPS => µC (Takt)
    SPS => µC (Daten)
    SPS => µC (Daten vorhanden)
    µC => SPS (Daten)
    µC => SPS (Daten vorhanden)

    MfG Hannes

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •