-
-
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
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen