EasyE4 Binärer Zähler

Jrlohni

Level-1
Beiträge
39
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

habe nun endlich die Easy E4 bekommen! Ein Erweiterungsmodul fehlt noch. Aber ansonsten scheint sie bisher nicht schlecht!
Nun habe ich mich direkt an die Programmierung gesetzt. Bisher hat alles mehr oder minder super geklappt. Bin doch schon sehr lange raus :D.

Ein, zwei Fragen hätte ich aber, da ich dazu echt überhaupt keine Idee habe.

Ich möchte einen Binären 4Bit Zähler bauen. Ich werde darüber zwei Multiplexer mit 16 Eingängen ansteuern, welche Temperatursensoren durchschalten sollen und dann die Temperaturen einlesen sollen. Die Temperaturen sollen gespeichert werden und später in der WebVisu abrufbar sein. Die Temperaturmessung soll nur 3 mal am Tag stattfinden und über einen Schalter deaktivierbar sein.
Meine Überlegung bisher: Eine Wochenschaltuhr mit täglich 3 Zeiten an welchen das Programm durchläuft, eingeschaltet über den Schalter. Diese Wochenschaltuhr muss dann die Temperaturmessung starten und den binären Zähler. Also einmal Sensor am AI1 und AI2 auslesen. In die Datenbank schreiben. Dann auf Sensor 3 und 4 Schalten, Sensorwerte in die Datenbank schreiben. Dann auf Sensor 5 und 6 schalten, Werte auslesen und in die Datenbank schreiben. Usw... bis alle noch 27 Sensoren ausgewertet wurden. Jemand eine Idee?

Nächstes "Problem" wäre das diese Sensoren immer zu 9. eine Gruppe Bilden. Auf einem Muxxer sind aber nur 16 Plätze. Also würden 2 Sensoren der ersten beiden Gruppen auf den anderen Muxxer treffen. Das muss in der Datenbank aber mit den Sensoren passen.... kann man das lösen?


Vielen Dank im Vorraus!

Johannes
 
Nächstes "Problem" wäre das diese Sensoren immer zu 9. eine Gruppe Bilden. Auf einem Muxxer sind aber nur 16 Plätze. Also würden 2 Sensoren der ersten beiden Gruppen auf den anderen Muxxer treffen. Das muss in der Datenbank aber mit den Sensoren passen.... kann man das lösen?
Z.B. durch eine "chaotische" Verdrahtung entsprechend:
2-16er-Muxe3Gruppen-à-10.jpg
Obiges geht davon aus, dass Du 3 Gruppen von je bis zu 10 (statt 9) Sensoren hast und grosszügig "2 MuxPlätze" ungenutzt lässt.
Alternativ wäre denkbar: 3 Gruppen mit 9 Sensoren und als Reserve oder spätere Ausbaustufe zusätzlich eine 4. Gruppe mit 5 Sensoren.
Die Easy ist mir leider unbekannt. Ich habe keine Ahnung, welche ProgrammierMöglichkeiten zur Verfügung stehen.
Schön wäre es, wenn Ganzzahl-Division und Modulo gehen sowie 1-dimensionale oder - optimal - 2-dimensionale Arrays (hier z.B. mit 10 Zeilen und 3 Spalten) möglich sind.

Ich möchte einen Binären 4Bit Zähler bauen. Ich werde darüber zwei Multiplexer mit 16 Eingängen ansteuern, welche Temperatursensoren durchschalten sollen und dann die Temperaturen einlesen sollen. Die Temperaturen sollen gespeichert werden und später in der WebVisu abrufbar sein.
Für die beiden parallel angesteuerten MUXe genügen 4 Bit, aber Du willst die 27 eingelesen Daten auf 27 verschiedenen SpeicherPlätzen ablegen und da sind wir schon ganz schnell bei 5 Bit für's 1-dimensionale Array bzw. bei 4 Bit (ZeilenNr=SensorNr) plus 2 Bit (SpaltenNr=GruppenNr) für's 2-dimensionale Array, also schon bei 6 Bit.
Was nun bei Deiner Easy sinnvoll wäre, was einfacher bzw. überhaupt machbar ist . . . keine Ahnung.
Ich hoffe, dass Du nicht darauf angewiesen bist, die Zähler auf BitEbene zu basteln.
Möglich wäre das vermutlich - anbei 2 LOGO!-Beispiele:
4BitZählerFürLOGO-sync-async.jpg
Zielführender wäre es wohl, einfach eine 1 auf eine Variable zu addieren, wenn Du mit dieser Variablen dann auch weiterrechnen bzw. die Elemente eines Arrays adressieren kannst.

Gruss, Heinileini
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh WOW! Erstmal danke für diese Ausführliche Antwort! Ich bin gerade noch dabei zu versuchen das alles zu verstehen :D...
Sehe ich es richtig das deine Lösung vorsieht, immer nur einen Sensor auszulesen oder auch zwei Gleichzeitig?
Und wie sieht es mit den Datenbausteinen aus? Kann man diese unterschiedlich ansprechen lassen? Also über den Zähler mit ansprechen lassen das immer der gleiche Sensor in den entsprechenden Baustein geschrieben wird?

LG Johannes!
 
Sehe ich es richtig das deine Lösung vorsieht, immer nur einen Sensor auszulesen oder auch zwei Gleichzeitig?
Immer nur 2 Sensoren gleichzeitig.
0 und 5 aus Gruppe 0, dann 0 und 5 aus Gruppe 1, dann 0 und 5 aus Gruppe 2,
1 und 6 aus Gruppe 0, dann 1 und 6 aus Gruppe 1, dann 1 und 6 aus Gruppe 2,
u.s.w. bis
4 und 9 aus Gruppe 0, dann 4 und 9 aus Gruppe 1, dann 4 und 9 aus Gruppe 2.
Dadurch liest Du aber auch immer 10 Sensoren aus 3 Gruppen. Der 10. ist "imaginär" oder Reserve - dann greifen die MUXe auf Eingänge, die nicht verdrahtet/belegt sind. Aber was soll's? Kostet nix. ;)
Es sind die Zahlen 3 (Gruppen) und 9 (Sensoren), die sich so schlecht mit dem BinärSystem vertragen - ich kann nix dafür.
Ginge es zum Beispiel um 4 (Gruppen) und um 8 (Sensoren), dann wäre die Situation viel "aufgeräumter" und somit übersichtlicher.
Bezüglich "DB": wie gesagt, ich kenne die Easy nicht - hättest Du vllt pdfs oder Links auf solche, dass ich mal einen Blick auf die ProgrammierMöglichkeiten riskieren könnte?

Gruss, Heinileini

PS:
Habe gerade gefunden:

"Mit dem Steuerrelais easyE4 kann die Steuerung und Regelung unterschiedlicher Anwendungen in der Industrie und im Gebäudebereich effizient,
flexibel und einfach umgesetzt werden!
Das neue easyE4-Sortiment ist wesentlich kompakter aufgebaut als die Vorgängerreihen easy500, easy700 und easy800 und lässt sich mit bis zu
11 Modulen auf maximal 188 Ein-/Ausgänge flexibel erweitern und bietet eine große Spannungsvielfalt. Zusätzliche Flexibilität ermöglicht die
intuitive Programmiersoftware easySoft 7 mit den
vier verfügbaren Programmiersprachen
- Funktionsplan (FUP),
- Strukturierter Text (ST),
- Kontaktplan (KOP) und
- easy Geräteprogrammierung (EDP).
In diesem Buch wird das breite Anwendungsspektrum der neuen Kleinsteuerung anhand zahlreicher Praxisbeispiele aufgezeigt.
Neben dem Gerät und seinen Erweiterungsmöglichkeiten wird die Programmierung in unterschiedlichen Programmiersprachen ausführlich vorgestellt.
Der erfahrene easy-Anwender kann in den gewohnten Arbeitsweisen verbleiben, vorhandene Programme importieren und auch mit der EDP-Programmierung
direkt am Gerät programmieren. Demonstriert wird auch die moderne Programmierung im Kontaktplan sowie im Funktionsplan.
Weiterhin wird die ST-Programmierung erläutert, die hier auf die Anforderung einer Kleinsteuerung optimiert ist.
Ferner werden u. a. die Modularisierung der Anwendersoftware, die Vernetzung, die Einbindung über die Ethernet-Schnittstelle in
IIoT-Architekturen (Industrial Internet of Things) bzw. Industrie 4.0, Aspekte der Visualisierung und das Datenlogging per Speicherkarte erörtert.
Damit zeigt dieses Buch anschaulich, wie das Elektrohandwerk mit dem kleinen und smarten Automatisierungssystem Kosten, Ausbildungszeiten und
Programmierzeiten sparen kann und wie der Maschinen- und Anlagenbau bei niedrigen Kosten und geringer Expertenabhängigkeit Ideen umsetzen kann."

pdf gibt's anscheinend für eBook zu 29,80 €
 
Zuletzt bearbeitet:
Danke Heinilein!

Echt super Antworten. Hab es mit dem Auslesen nun auch verstanden. Eventuell werden es sogar mal 4x8 Sensoren... Ich überlege schon ob man das nicht jetzt schon hinbekommt... :D

Super Danke! Werde ich mir mal angucken. Hab aber ansonsten auch keine Ahnung was man sonst als Literatur nutzen könnte...

LG Johannes

Edit:

Aber n Link hätte ich nun doch gefunden, falls das noch von Interesse ist?!
ftp://ftp.moeller.net/DOCUMENTATION/AWB_MANUALS/MN050009_DE.pdf

LG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Blumen und den Link!
Hab's pdf bisher nur überflogen. Multiplexer gibt es anscheinend, aber wir bräuchten Demultiplexer, um einen EingangsWert auf einen von mehreren Ausgängen/SpeicherPlätzen umzuleiten.
Die Beschreibung konzentriert sich anscheinend auf das, was man direkt an der Steuerung eingeben kann.
Wenn Du etwas Literatur über ST der Easy finden könntest . . . finden wir wahrscheinlich auch keine sich aufdrängende Lösung . . . (?)
Du hattest aber - so wie ich Dich verstanden habe - schon einen praktikablen Weg gefunden, die Daten aus den maximal 32 DB nach irgendwo zu übertragen.
Dann müssen wir "nur" noch einen Weg finden, die Daten auf die DB zu verteilen . . . könnte in viel "Handarbeit" ausarten und verhältnismässig viel ProgrammSpeicher "verbraten".
Muss mir die Beschreibung noch näher ansehen. Ist einfach noch zu früh für Prognosen!

Schönes WE! Gruss, Heinileini
 
Die Problematik mit den Gruppen verstehe ich nicht.

Wenn die Multiplexer einen Freigabeeingang haben, wie z.Bsp. die von RINCK, dann kann man mit sechs digitalen Ausgängen 32 Analogwerte auf einen einzigen Analogeingang durchschalten. Was man in der Easy programmtechnisch für Möglichkeiten hat, weiß ich nicht. In einer S7 lasse ich hierfür einen Integerwert von 0 bis 31 (langsam getaktet) hochzählen. die vier niederwertigsten Bits kommen über Ausgänge auf die Adresseingänge beider Multiplexer, das fünfte Bit wird einmal direkt auf den Freigabeeingang des ersten, und einmal negiert auf den
Freigabeeingang des zweiten Multiplexer geschaltet. Beim Wechsel von Kanal 15 auf Kanal 16 beginnt das Bitmuster der vier niederwertigsten Bits wieder bei Null. Den Zählerstand (0..31) kann man zum Adressieren der Messwertablage verwenden.

Was man natürlich generell beachten muss, ist die Wandlungszeit des Analogeingangs. Also im Programmablauf zu erst den bereits geschalteten Kanal weg speichern, direkt danach die nächste Kanaladresse ausgeben, und dann erst mal eine kleine Pause von mehreren Sekunden, dann wieder von vorne.

Um welche Art von Temperatursensoren handelt es sich denn?

 
Die Problematik mit den Gruppen verstehe ich nicht.
Kann man auch nicht verstehen, wenn man per FreigabeEingang einen 32:1 Multiplexer realisiert.
Wirklich problematisch ist auch unser Ansatz mit 2 x 16:1 Multiplexern und gleichzeitigem Einlesen zweier Sensoren nicht - er kann aber leicht ein wenig unübersichtlich werden, wenn man nicht von Anfang an ein Auge drauf hat, wie man die Daten anschliessend wieder in eine brauchbare Ordnung bringt.
Das Erzeugen der für die beiden MUXe identischen AdressBits und des ArrayIndex für das Abladen der Messwerte ist für uns auch kein Problem. Ob und wie wir mit dem ArrayIndex weiterverfahren können, steht auch für uns noch in den Sternen. Ein indirektes Speichern à la Array wäre optimal. Ein Demultiplexer auf BitEbene, um 27 festvorgegebene KopierVorgänge bedingt auszulösen, sollte auch kein Thema sein - schlimmstenfalls für Schreibfaule und/oder für knapp bemessene ProgrammSpeicher.
Ich vermute, dass sich der Zugriff auf einzelne Bits eines Zählers etwas widerborstig gestalten könnte - wie es heutzutage aber schon in vielen SPS-Sprachen "normal" ist.
Wir planen deshalb "von hinten nach vorne", womit genau wir zählen werden und lassen uns von den noch nicht ergründeten programmtechnischen Möglichkeiten der Easy überraschen und leiten.
Die Wandlungszeiten werden wir hoffentlich nicht im Eifer des Gefechts vergessen zu berücksichtigen - aber Danke für den Tipp.

Gruss, Heinileini

PS:
Die ohnehin einzuhaltenden Wandlungszeiten zerstreuen - nebenbei bemerkt - meine Bedenken, einen 5-Bit-AsynchronZähler statt eines erheblich aufwendigeren 5-Bit-SynchronZählers zu realisieren.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also... Es sind die Muxxer von Rinck. Den Freigabeeinang wollte ich eigentlich nicht unbedingt nutzen, da das wieder einen DO "verbraucht". Wenn es Programmtechnisch viel einfacher ist, machen wir das aber natürlich!
Die Ansteuerung der Muxxer ist aber auch für mich nicht das größte Problem. Hatte nur gedacht das jemand noch eine andere Idee hat. Wichtig wäre für mich wie ich die Werte ALLE für einen Zeitraum von z.B. einem Jahr speichern kann. Also 3 Werte am Tag pro Sensor. Am besten mit Angabe der Tageszeit und des Datums, Tabellarisch dargestellt. Oder wie ich bei der Logo begann, in einer Schönen Webvisu mit Max, Min und letzter Wert würden mir auch reichen. Jede Sensorgruppe einzeln Rücksetzbar, fertig! Aber leider ist Eaton noch nicht so weit das man sich die Webvisu selber bauen kann... Die Eaton ist es aber geworden weil sie 100€ günstiger war und ich meine Arbeitszeit NICHT mitrechne.

Also geht es mir eigentlich eher darum, wie ich es schaffe die Werte einzulesen und in die entsprechenden Bausteinen zu speichern.

Ich sehe es doch richtig, das die Analogwerte in Datenbausteine gespeichert werden um diese dann wieder anzuzeigen oder verwechsel ich da was? Mit Datenbausteinen hab ich noch nie gearbeitet...
Desweiteren möchte ich eine Meldeleuchte realisieren welche ab einer bestimmten Temperatur eines Sensors (egal welche Gruppe) Leuchtet. Dann müsste man nicht jeden Tag nach den Temperaturen gucken, sondern nur wenn die Leuchte leuchtet.

Verwendet werden PT1000 Kl.A als Zweidraht und eine analoge PT1000 Baugruppe von Eaton.

Gruß Johannes

P.S.
Es werden keine 1000 Werte pro Sensor sein (3*365)... Die Messung wird wohl eher nur 2 Monate laufen und den Rest der Zeit komplett oder wenigstens Zeitweise ruhen.
 
Oder wie ich bei der Logo begann, in einer Schönen Webvisu mit Max, Min und letzter Wert würden mir auch reichen.
Moin Johannes!
Das Stichwort LOGO nehme ich jetzt mal auf. Ich habe mich nämlich seit gestern mit einer Umsetzung in LOGO herumgeplagt, statt die Easy-Dokumentation in mich aufzusaugen.
Ich bin jetzt so weit, dass ich in meiner LOGO-Simulation 32 Werte von 2 imaginären HW-16:1-Muxen einlesen und in den AnalogMerkern AM1 .. AM32 abspeichern kann.
NICHT eingeplant ist, noch mehr Werte abzuspeichern. Nicht für 2 oder mehr Messungen pro Tag, geschweige denn für 365 bis 366 Tage.
Ich bin doch nur ein LOGO-Banause mit ohne Ahnung und ohne Erfahrung - da dürftest Du mir um Vieles voraus sein.
Ich hatte gehofft, dass es eine Möglichkeit gibt, die AM1 .. AM32 irgendwie irgendwo hin zu schicken oder von irgendwo abholen (auslesen) zu lassen und dann dort das Sammeln, Visualisieren und sonst was damit zu treiben. Ferner war ich davon ausgegangen, dass Du schon weisst, wie das geht.
Im Rahmen einer LOGO wüsste ich nicht, wie man die Daten von deutlich mehr als einer 32er (bzw. 27er) Messung sammeln sollte u.s.w..

Es ist etwas riskant, hier pauschal nach Erfahrungen mit DatenBausteinen zu fragen, denn anscheinend ist bei der Easy mit DatenBausteinen nicht das gemeint, was man von z.B. der S5 oder S7 so kennt.
Ich habe z.Z. den Eindruck, dass ein Easy-DB mit einem LOGO-AM vergleichbar ist.

Anhang anzeigen 3GruppenVon9SensorenO.pdf
Anhang anzeigen 3GruppenVon9SensorenM.pdf
Anhang anzeigen 3GruppenVon9Sensoren.lsc.pdf <-- dies ist eine lsc-Datei (LOGO) - '.pdf' muss nach dem Herunterladen aus dem Namen entfernt werden.

Gruss, Heinileini

PS:
Ich habe mir Mühe gegeben, die komplette Schaltung auf 1 Blatt unterzubringen.
Deswegen verlaufen etliche VerbindungsLinien mitten durch die ParameterListen der Blöcke und ich habe deshalb die 2 Ansichten der Schaltung hochgeladen, damit man wahlweise auch den Anblick ohne die AnalogVerbindungen etc. sehen kann.

PPS:
Die Schaltung benutzt nicht die FreigabeEingänge der MUX.
 
Zuletzt bearbeitet:
Sooo!

Danke Leute! Aber die Eaton E4 hat eine ganz nette Geschichte womit es deutlich leichter geht...! Eventuell hat die Logo das auch, das weiß ich aber nicht. Man kann "einfach in einem Merkerwort die Zahl des Zählers schreiben und dann den binären "Code" über die entsprechenden Merker ausgeben lassen.
Habe das Programm nun auch komplett (außer ein paar Min/Max Funktionen) fertig! Ich stelle euch das hier mal zur Verfügung, falls jemand das gerne in der Logo nachbauen möchte, kann man sich einfach die Demo der Easy Soft runterladen!

Die Muxxer und Temperaturgeschichte beginnt erst bei Netzwerk 22 davor sind nur Lichtsteuerungen :)

LG!
 

Anhänge

  • Programm_LichtundTemperaturen.zip
    10,1 KB · Aufrufe: 7
Zuviel Werbung?
-> Hier kostenlos registrieren
Man kann "einfach in einem Merkerwort die Zahl des Zählers schreiben und dann den binären "Code" über die entsprechenden Merker ausgeben lassen.
Das war mein Hintergedanke, als ich in #2 bzw. #8 von Array bzw. ArrayIndex gefaselt habe. Die indirekte Adressierung.
Bei der LOGO habe ich noch nichts entsprechendes entdeckt, was nicht bedeuten muss, dass es das nicht gibt.
Bei der LOGO muss man die Sonderfunktionen schon recht gut kennen, um zu erkennen, für welche anscheinend oder scheinbar fehlenden "Grundfunktionen" man sie "missbrauchen" kann. Beispiel: ich habe in meiner LOGO-Realisierung den Arithmetik-Block benutzt, um die nur vorübergehend anstehenden Werte "dauerhaft" in AM zu speichern - das dreimalige DraufAddieren einer Null dient nur dazu, dem verwirrten Leser ein KopfSchütteln zu entlocken. ;)
Danke für Deine Rückmeldung und weiterhin "frohes Schaffen"! :s12:

Gruss, Heinileini
 
Oh dann hab ich das so gar nicht verstanden... Bin ziemlicher Neuling, entschuldige bitte!!!
Vielen Dank!
 
Zurück
Oben