easy-forum

Downloadbereich => easySoft => Anwenderbausteine - Beispiele => Thema gestartet von: Juergen am Januar 11, 2020, 23:19:24 Nachmittag

Titel: Bit ADD für 12 Eingänge. Anzahl der Eingänge mit 1 Signal Zählen
Beitrag von: Juergen am Januar 11, 2020, 23:19:24 Nachmittag
Hallo zusammen,
ich habe meinen ersten Baustein in ST geschrieben.
Es werden 12 Eingänge überwacht und die Summe der  geschalteten Eingänge berechnet.

In diesem Beispiel werden die Eingänge als Öffner gezählt. Das liegt jedoch nur an Anforderungen der User  Anfrage. Der Userbaustein Zählt die  Anzahl der Eingänge mit 1 Signale am Baustein Eingang

Erstellt zum Thema im Forum
http://easy-forum.net/index.php?topic=8060.0

Bitte erst Testen ob es bei euch Funktioniert.
Gundlage war ein Easy 800er oder MFD Pogramm im Forum, was ich nicht mehr finde.
Danke an einen unbekannten User für die Grundlage.
Titel: Antw:Bit ADD für 12 Eingänge
Beitrag von: weiss_nix am Januar 11, 2020, 23:50:32 Nachmittag
Hi Jürgen,
nicht ganz resourcenschonend aber TOP kreativ!
man muss sich über ST nur drübertrauen und ein wenig zeit investieren,
die codeoptimierung kommt mit zunehmender praxis von alleine.
Titel: Antw:Bit ADD für 12 Eingänge
Beitrag von: Juergen am Januar 12, 2020, 00:03:30 Vormittag
Hallo weiss_nix,
ich benötige 12 Merker für 12 Eingänge.
Das ist bei jeder Lösung nötig.
Ich habe dann zur Auswertung nur eine Zeile.
Braucht die  so viel  Ressourcen? für die Rechnung
Titel: Antw:Bit ADD für 12 Eingänge
Beitrag von: weiss_nix am Januar 12, 2020, 00:20:28 Vormittag
hi,
die rechnung sehe ich keinesfalls als problem, aber mit jedem merker (in deiner lösung) blockierst du z.B. ein byte (12 MB = 3 MD)
ich kenne zwar die interne architektur und speicheraufteilung der E4 nicht und bei minimalanwendungen ist es durchaus vernachlässigbar,
aber wenn die programme komplexer werden, führt dies (zumindest bei anderen systemen) zu speicher und performance problemen.
aber bitte nicht als kritik verstehen, ich finde die lösung tatsächlich kreativ und wäre selbst vermutlich nicht auf die idee gekommen.
Titel: Antw:Bit ADD für 12 Eingänge
Beitrag von: Juergen am Januar 12, 2020, 00:46:21 Vormittag
Hallo weiss_nix,
da jeder Userbaustein seine eigenen MB, MW und MD hat, kommt mann hier kaum an die Grenzen.
Mit 12 Eingängen bin ich da schon an der Grenze vom User Baustein. Viel mehr Programm ist so kaum Möglich.
Der Baustein hat ja nur die eine Aufgabe
Im Hauptprogramm und weiteren User Bausteinen stehen ja wieder alle MB ... zur Verfügung.
Bei der 800 war die Lösung in der Grafischen Programierung möglich. Da gingen die MB vom eigendlichen Programm ab.




Hast du das easy Handbuch
https://www.vde-verlag.de/buecher/484880/steuerung-und-regelung-mit-easye4.html
Steht da mehr zu ST wie in der Easy Hilfe?
Titel: Antw:Bit ADD für 12 Eingänge
Beitrag von: weiss_nix am Januar 12, 2020, 01:41:19 Vormittag
... wie du schreibst ist der Anwenderbaustein für deine anwendung ausreichend und nicht annähernd voll!
die steuerungswelt besteht auch aus anderen systemen, da gibt es andere einschränkungen und erfordern ein anderes augenmerk.
im hintergrund werden da pro funktionsaufruf auch noch daten (stack, parameter, rücksprungadressen, speicherinhalte, etc.) hin und her geschoben,
dieser overhead ist uu. zykluszeitrelevant. wenn du nur mit E4 oder ähnlichem arbeitetest -> vergiss das alles da es vmtl. nicht wirklich relevant ist

ich würde z.b. pro eingang bis zu 32 bit zählen wollen, bei 8 möglichen AI pro UF wären theoretisch 256 bit möglich  ;) und 64 byte pro UF sind bald voll
und da ich prinzipiell faul bin würde ich versuchen den programmcode so modular wie möglich zu halten um den tippaufwand zu minimieren  8)

schönen angebrochenen vormittag