EB auslesen und transferieren

Toxicspeed

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin in Sachen SPS-Programmierung relativ neu und mach das ganze auch nur nebenher.
Bei meinem aktuellen Problem setze ich eine S7-1212C (6ES7 212-1HD30-0XB0) und das TIA Portal V11 ein.

Was ich machen möchte:
Über einen BCD Schalter soll eine Funktion (1-9) gewählt werden.

Der Schalter is wie folgt aufgelegt:
E0.0 = 1
E0.1 = 2
E0.2 = 4
E0.3 = 8

An den Bits 4-7 sind andere Funktionen angeschlossen.

Ich möchte nun die ersten 4 Bits des EB0 aulesen und in ein MB oder WORD schreiben.
So das ich danach auswerten kann welche Funktionsnummer gewählt ist und die dem entsprechende Aktion ausführen kann.
Ich weis nicht wie ich den Move - Befehl beschalten soll. Oder bin ich damit komplett auf dem Holzweg?

Code:
[URL="http://imageshack.us/photo/my-images/215/bild1cj.png/"][IMG]http://img215.imageshack.us/img215/4302/bild1cj.png[/IMG][/URL]
So hab ich das jetzt gemacht was aber für jede Programmnr. ein Netzwerk bedeutet.
Könnt ihr mir vielleicht helfen das ich das ganze einfacher auswerten kann.

Und dann hätte ich noch eine zweite Frage:
Gibt es irgendeine Möglichkeit die S7-1200 zu simulieren? Weil PLCSim funktioniert ja nicht mit den 1200er SPSen oder?

Vielen Dank
 
Wenn der Schalter wirklich BCD Codiert ist, kannst du die BCD_TO_INT Funktion nutzen.

Sonst finde ich da nichts schlimmes drann wenn du 4 solche Netzwerke programierst.. das ist einfach und übersichtlich.

Wegen Simulation.. kannst du kein Projekt mit einer 300er CPU anlegen und den Baustein damit testen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei 4 Bit ist es völlig egal, ob der Schalter BCD-codiert ist, der Wert ist der gleiche.
Die richtgie Funktion für Dich ist bei den wortweisen Verknüpfungen zu finden. Ich weiß gerade nicht ganz sicher, ob die S7-1200 das hat, was Du benötigat ist ein "Und wortweise", damit kannst Du Deine Eingangsbits ausmaskieren, so dass Du nur noch die 4 relevanten hast und kannst diesen Wert dann direkt ins MW (oder MB) übernehmen.
 
Auf die Schnelle kann ich dir das nur in AWL zeigen, aber ich mach es so, dass es ganz einfach in FUP umgeschrieben werden kann.

1. NW
eine Null in MW 100 mit einem Move

2. NW
U E 0.0 = M101.0

2. NW
U E 0.1 = M101.1

3. NW
U E 0.2 = M101.2

4. NW
U E 0.3 = M101.3

Nun kannst du mit Vergleichern abfragen, ob dein MW 100 die Werte 1-9 annimmt und entsprechend damit arbeiten.

Es gibt noch andere Möglichkeiten, indem man das EB0 in das MB100 schiebt (Move) und dann mit 2#1111 als Wort verundet.
Alle Bits werden Null, bis auf die kleinsten 4 Bit, falls diese jeweils 1 sind.
Ist schöner, aber in FUP evtl. nicht ganz so einfach schnell zu machen, wie Variante 1.
 
Zurück
Oben