S5 Ausgänge

JeremySky

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

Ich versuche eine 7. Segment Anzeige, bestehend aus LED´s, mit der S5 anzusteuern.
Doch wenn ich im Programmablauf z.b zwei Funktionen für einen Ausgang verwende läuft nichts.
Ich arbeite mich grad selber ein und habe noch nicht so vierl Erfahrung mit der S5.

Hier noch ein beispiel:

U E 1.0
= A 2.0
U E 1.1
= A 2.0
__________
Selbst wenn ich diese noch gegeneinander verriegel z.b UN E x läuft es nicht.

Ist das ev. eine sicherheits Ding von der SPS?

Bräucht da dringend einen guten Rat. Sonst kann ich mein Projekt in die Tonne hauen.

Danke! :-D
 
Hallo,
In deinem Beispiel
Code:
U  E  1.0
=  A  2.0
U  E  1.1
=  A  2.0
wird A2.0 nur 1 wenn E1.1 1 ist.

Code:
U E 1.0
O E 1.1
= A 2.0

sollte deiner Vorstellung entsprechen.
Die SPS Arbeitet das Programm seriell ab und liest am Anfang das Prozeßabbild der Eingänge und schreibt am Ende erst die Ausgänge

Thomas


Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok etwas genau beschrieben.

Ich habe timer laufen die jeweils nach einer sek einen andern Merker setzten.

M1.0 1.sek
M2.0 2.sek
.
u.s.w.
Wenn M1.0 1 ist so sind die anderen aus. bei M2.0 ebenso... u.s.w

7 Segmente = 7 Ausgänge = A1.0 / A1.1 ... A1.6

Wenn eine Sekunde angezeigt werden soll sind zwei Ausgänge gesetzt

U M 1.0 Anzeige 1
= A 1.0
= A 1.1
***

U M 2.0 Anzeige 2
= A 1.0
= A 1.1
= A 1.2
= A 1.3
= A 1.4
***

Wobei die belegung der Ausgänge hier nicht stimmen. Denke nun sollte es verständlich sein was ich meine...

Danke für die Hilfestellung
 
... du musst deine Aufgabe mal "andersrum" sehen "Mit welchen Bedingungen soll der Ausgang geschalten werden?"

Für dich würde es so aussehen:

Code:
U M 1.0       /Anzeige 1
O M 2.0       /Anzeige 2
O M 3.0       /Anzeige 3
.
.
.
= A 1.0       /Segment oben rechts

***

U M 1.0     /Anzeige 1
O M 3.0     /Anzeige 3
.
.
.
= A 1.1     /Segment unten rechts

***
.
.
.
immer die "letzte" Zuweisung auf einen Operanden ist ausschlaggebend, was die Hardware dann macht. Alle vorherigen Zuweisungen werden "überschrieben". Die SPS arbeitet das Prog von "oben" nach "unten" ab.

Thomas
 
Code:
U E 1.0
O E 1.1
= A 2.0
sollte deiner Vorstellung entsprechen.
Die SPS Arbeitet das Programm seriell ab und liest am Anfang das Prozeßabbild der Eingänge und schreibt am Ende erst die Ausgänge

Das ist schon der richtige Ansatz.

Du solltest mal etwas umdenken und das Pferd von Hinten besteigen, sprich:
von den Ausgängen her denken.
Bei welcher Darstellung (Anzeige) muss welches Segment (welcher Ausgang) angesteuert werden?
Ein Ausgang sollte nur 1x zugewiesen werden (Beispiel CODE).

z.B.
Code:
U M1.0  // Zeige Ziffer 1
O M2.0  // Zeige Ziffer 2
O ...
= A2.0  // Segment 1

U M2.0  // Zeige Ziffer 2
O M3.0  // Zeige Ziffer 3
O ...
= A2.1  // Segment 2

usw
Die Merker und Ausgänge sind natürlich frei erfunden.
Ich hoffe, ich konnte dir weiterhelfen.

Edit: Thomas war schneller

Gruß Roland
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
anderer Ansatz,

ich gehe mal davon aus, das die Einzelled's gesamt an einem Ausgangsbyte angeschlossen sind. Von daher würde es doch Sinn machen, die Ausgänge Byteweise anstelle von Bitweise zu beschreiben. 7 Segmente + Dezimalpunkt = 1Byte

also z.B. (sorry, S5 ist soooo lange her, falls die Syntax nicht stimmt)

L KB 7 (Lade Bytekonstante 7)
T AB 0 (Transferiere in Ausgabsbyte 0)

oder
L KM 01011010 (Lade Bitmuster .....)
T AB .....

Viele 7-Segm. Anzeigen werden auch im BCD Code angesteuert, haben so 4 Anschlüsse (+ GND). So Kannst du 2 Anzeigen pro Byte ansteuern mit einer Hexkonstante. L KH 65 - T AB ....

Ist doch viel einfacher, als da Bitweise die Ausgänge zu beschreiben

gruss, o.s.t.
 
Zuletzt bearbeitet:
anderer Ansatz,

ich gehe mal davon aus, das die Einzelled's gesamt an einem Ausgangsbyte angeschlossen sind. Von daher würde es doch Sinn machen, die Ausgänge Byteweise anstelle von Bitweise zu beschreiben. 7 Segmente + Dezimalpunkt = 1Byte

Klar, ist die elegantere Lösung. Hätte ich auch SO gelöst.

Ich wollte den TE bei dem (vermuteten) Wissensstand nicht überfordern und bei "seinem" Lösungsansatz bleiben bzw. das "Problem" mit den nichtfunktonierenden Ausgängen hinweisen.

Nix für ungut, o.s.t.

Gruß Roland
 
Hallo,

ich habe mal so was ähnliches gebastelt für einen Kumpel von mir, waren allerdings 5!! elemente die ich multiplexen musste. habe mir damals für jedes der zahlen das Byte auf einen schlag transferiert in das Prozessabbild.
Das befehl welche zahl angezeigt werden musste habe ich als befehl welches byte ( aus einen DB ) geladen werden musste verwendet.
Aber ich glaub das wir da in eine andere Liga spielen, folge den Pfälzer seinen Rat, und dann klappt es.
Viel spass mit dein projekt.
 
Zuletzt bearbeitet:
Zurück
Oben