Autor Thema: Bit ADD für 12 Eingänge. Anzahl der Eingänge mit 1 Signal Zählen  (Gelesen 920 mal)

Offline Juergen

  • easy god
  • *****
  • Beiträge: 1653
  • Jürgen
Bit ADD für 12 Eingänge. Anzahl der Eingänge mit 1 Signal Zählen
« 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.
« Letzte Änderung: Januar 12, 2020, 12:37:04 Nachmittag von Juergen »
Mit freundlichem Gruß Juergen


Alle Programme sind nur Beispiele und Selber zu Testen.
Geprüft wurde nur in der Simulation der Software oder mit Simulator am Schreibtisch. Die Beispiele sind mit Sicherheitsschaltungen zu ergänzen.

Offline weiss_nix

  • Full Member
  • ***
  • Beiträge: 239
  • geht nicht? gibt's nicht!
Antw:Bit ADD für 12 Eingänge
« Antwort #1 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.
« Letzte Änderung: Januar 12, 2020, 00:03:24 Vormittag von weiss_nix »
HTH & HAND

Manchmal, mitten in der Nacht da schleiche Ich mich zu meinem Wecker wenn er schläft, und brülle : NA WIE FÜHLT SICH DAS AN HÄÄ???

Offline Juergen

  • easy god
  • *****
  • Beiträge: 1653
  • Jürgen
Antw:Bit ADD für 12 Eingänge
« Antwort #2 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
Mit freundlichem Gruß Juergen


Alle Programme sind nur Beispiele und Selber zu Testen.
Geprüft wurde nur in der Simulation der Software oder mit Simulator am Schreibtisch. Die Beispiele sind mit Sicherheitsschaltungen zu ergänzen.

Offline weiss_nix

  • Full Member
  • ***
  • Beiträge: 239
  • geht nicht? gibt's nicht!
Antw:Bit ADD für 12 Eingänge
« Antwort #3 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.
« Letzte Änderung: Januar 12, 2020, 00:22:14 Vormittag von weiss_nix »
HTH & HAND

Manchmal, mitten in der Nacht da schleiche Ich mich zu meinem Wecker wenn er schläft, und brülle : NA WIE FÜHLT SICH DAS AN HÄÄ???

Offline Juergen

  • easy god
  • *****
  • Beiträge: 1653
  • Jürgen
Antw:Bit ADD für 12 Eingänge
« Antwort #4 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?
« Letzte Änderung: Januar 12, 2020, 05:13:43 Vormittag von Juergen »
Mit freundlichem Gruß Juergen


Alle Programme sind nur Beispiele und Selber zu Testen.
Geprüft wurde nur in der Simulation der Software oder mit Simulator am Schreibtisch. Die Beispiele sind mit Sicherheitsschaltungen zu ergänzen.

Offline weiss_nix

  • Full Member
  • ***
  • Beiträge: 239
  • geht nicht? gibt's nicht!
Antw:Bit ADD für 12 Eingänge
« Antwort #5 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
 
HTH & HAND

Manchmal, mitten in der Nacht da schleiche Ich mich zu meinem Wecker wenn er schläft, und brülle : NA WIE FÜHLT SICH DAS AN HÄÄ???