Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Tutorial #16: ARRAY und FOR-Schleife in CoDeSys - Berechnung von Mittelwerten in Structured Text

Der Automatisierungskanal23:01 5.376 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 135 Zeilen
Herunterladen
  1. hallo und schön dass ihr da seid mein name ist christian sie fast und ihr seht den automatisierungs kanal heute möchte ich mit euch über reyes und
  2. schleifen sprechen race das sind variablen listen von einem bestimmten datentyp das kann zum beispiel integer seien es keine rede sein es könnte aber
  3. auch ein pool sein und da könnt ihr dann die einzelnen elemente mit dem index ansprechen und natürlich könnt ihr auch die länge der liste festlegen das gucken
  4. muss dann gleich auch ein bisschen in der praxis noch mal an also keine sorge da möchte ich jetzt auch gar nicht zu tief in die details gehen und wenn wir
  5. schon über entsprechen dann macht es doch immer sehr viel sinn und gerade weil wir uns auch mit strukturieren text beschäftigen wollen uns mal einen
  6. einblick in schleifen zu erlauben denn schleifen und arrays das passt wirklich gut zusammen denn wir können praktisch mit einer schleife und einer index
  7. variable da sehr interessante kooperationen aus einer vielzahl von elementen gleichzeitig naja oder quasi gleichzeitig durchführen
  8. also von daher ist total sinnvoll das für uns ist auch eine kombination angucken und dann würde ich sagen auf gehts ja heute da möchte ich euch
  9. den datentypen etwas näher bringen und das ist heute wieder ein ganz normales programm ihr video es gibt also eigentlich nichts
  10. besonderes zu sehen deswegen verwende ich hier auch wieder die kulisse sweet plc also nicht die laufzeitumgebung auf dem rad barry bei so dass wir das alles
  11. direkt am rechner machen können kein hart verbrauchen und somit seht ihr den raspberry und die entsprechend angeschlossene hardware oben rechts
  12. nicht eingeblendet denn schlicht und ergreifend es existiert kein raspberry pi so und damit wollen wir auch schon gleich starten und dann möchte ich mit
  13. euch erstmal darüber sprechen was ist denn überhaupt so ein re nun seine ray das ist im prinzip etwas sehr ähnliches wie so eine struktur denn
  14. das ist eine variable man könnte vielleicht auch sagen datentyp die mehr als nur einzelnen wert enthält das hatten wir im letzten video schon
  15. bereits bei den strukturen gesehen dass da bestimmte datentypen gibt die im prinzip mehr als einen einzelnen wert erhalten
  16. bei der struktur da war das ja so dass wir dann die einzelnen werte festgelegt haben und bei mary ist es ein bisschen anders denn ein array besteht
  17. ausschließlich aus einem einzigen datentyp und das ist dann nicht nur eine einzelne variable von diesem laden typ sondern das ist eine naja nennen was man
  18. einfach liste von diesen einzelnen variablen und diese liste die ist dann durchnummeriert und da kommen wir ganz coole sachen mitmachen
  19. und das schauen bei uns jetzt auch mal an ich habe hier erst mal ein kleines programm eingefügt plc prg das seht ihr gerade vor euch und da möchte ich mit
  20. euch jetzt zunächst einmal in den deklarationen bereich einsteigen und da sehen wir ganz oben nämlich hier und hier sehen wir im prinzip schon zwei
  21. race das sind zwei rs von zwei verschiedenen datentypen das obere das ist ein integrer und das darunter ein [Musik]
  22. haben zehn werte und wir gucken uns jetzt erstmal einmal an wie die deklariert werden ich glaube dass es eine ganz gute idee da sehen wir hier
  23. wie bei einem ganz normalen variable zunächst einmal die möglichkeit der variable einen namen zu geben ich habe mich hier ganz kreativ für entega
  24. entschieden dann über das von normalen variablen auch schon kennen sehen wir hier unten ja zum beispiel normale variable die in dem areal
  25. variable doppelpunkt und dann schreibt ihr nicht direkt den datentyp dahinter sondern dann kommt er rein und dann liegt ihr die dimension von dem er fest
  26. denn bei kurses ist es so dass sich eine reihe von einem beliebigen wert aus starten lassen kann und bei einem beliebigen wert enden lassen
  27. mit einem programmiersprache ist das manchmal so dass ihr einfach nur die länge des arrays definiert und das immer automatisch bei null anfängt das balco
  28. tus ist ein bisschen anders also ihr definiert den staat wehrt oder doch die nehmen wir das mal den start fährt des arrays und ihr definiert den
  29. endwert und dann was sich dazwischen abspielt das dann entsprechend die länge von dem eric so und dann müssen wir natürlich noch den daten typ festlegen
  30. habe ich ja eingangs erwähnt dass eine rey in meine liste von einem spezifischen daten typ ist und hier in dem fall ist es ein integer und dann
  31. schreiben wir hierfür ein integer einfach auf inter hinter und dann für eine anderen datentyp zum beispiel da kann man dann zum beispiel oft viel
  32. dahinter schreiben kann natürlich aber auch in die in sein das ist auch alles möglich und was können wir jetzt hier mitmachen nun eine anwendung die sich so
  33. ein bisschen anbietet das wäre ja vielleicht mal die berechnung eines mittelwerts ich glaube es kann sich jeder vorstellen wir haben da vielleicht
  34. ein sensor der gibt uns in regelmäßigen abständen ein wert aus von sagen wir zum beispiel mal dem füllstand eines tanks und damit wollen wir jetzt was machen
  35. aber vielleicht im tank da bewegt sich die flüssigkeit und da wollen wir jetzt nicht wirklich mit den einzelnen werten arbeiten sondern wir wollen im prinzip
  36. mehrere samples haben und wollen dann auf basis dieser samples einem mittelwert berechnung machen und das habe ich euch unten
  37. in dem programm abgebildet seht ihr im prinzip hier das ist dann unsere formel nablus b + c durch entsprechend hier die anzahl mit
  38. dem fall dann 3 und das können wir jetzt mit dem airrail folgendermaßen machen ich habe hier meine ray vorbereitet auch ein sehr kreativer name array of mean
  39. well you worry elements das heißt also dieses rey hat drei elemente und aus diesen drei elementen wollen wir jetzt den mittelwert berechnen
  40. das heißt wir lassen dass wir mal bei 1 starten lassen uns bis drei gehen es könnten noch bei null starten und dann bei zwei enden lassen das dann
  41. vollkommen euch überlassen wie ihr das gerne hättet und dann habe ich hier schon mal die werte vorbereitet denn so könnt ihr hier wir das hier seht ein
  42. doppelpunkt eckige klammer auf oder ein entsprechend die werte reinschreiben so könnt ihr auch ein array initialisieren und ich glaube die
  43. mittelwert berechnung die kriegen wir alle hier auch noch im kopf hin zwei 2,5 und 3 er ist der mittelwert natürlich 2,5 und das wollen wir hier unten mal
  44. berechnen das ganze speichern wir dann hier in first mail value berechnung ab ich komme dann gleich noch zu warum ich noch einen
  45. second lien value habe keine sorge und wenn ihr jetzt die einzelnen elemente in einem array ansprechen wollt dann macht ihr das im prinzip einfach mit dem arena
  46. bist du dir dann hier und dann macht ihr eine eckige klammer auf und schreibt jetzt den indexwert also hier für die zwei ist dann der indexwert die einst
  47. weil wir starten ja hier bei der einst für die 2,5 ist dann natürlich hier die 2 und bei der 3 ist ein indexwert 3 nun können was ganz normales drei teilen das
  48. erstmal die einfachste art und weise wie ihr mit dem erarbeiten können das kann hier drin natürlich auch eine variable sein also ist es hier eine ein fixer
  49. wert weil ich weiss ja welche werte ich dafür benutzen muss aber ihr könntet da an der stelle zum beispiel auch hingehen und könnte da eine
  50. variable die ihr zum beispiel von einem h m ihr euch rein geben lasst verwenden um dann halt bestimmten werten zu arbeiten das dann entsprechend euch
  51. überlassen wie kreativ ihr da sein möchte so und jetzt legen wir uns mal einmal ein und schauen uns auch mal so ein
  52. bisschen an wie das ganze in der online ansicht aussieht und da es oft viel sie verwende muss ich natürlich die soft plc einmal hier auf meinem rechner starten
  53. das habe ich jetzt gemacht und dann gehen wir mal online so und jetzt sehen wir hier schon die mittelwert berechnung 2,5 das ergebnis
  54. das stimmt und dann gucken wir uns mal ein mal heben code an was wir jetzt hier haben wir haben jetzt hier gesagt okay wir wollen jetzt hier
  55. das element 1 verwenden da zeigt er uns hier den wert 2 an ich denke das hat noch jeder im kopf das ist hier der 22 war hierbei mary element
  56. 2 ist dann entweder 2,5 und beim dritten index ist dann der wert 3 also von daher würde ich sagen das passt hier oben hin variablen können wir uns das auch
  57. einfach mal angucken wie klappen hierfür noch einmal dass er auf und sehen hier entsprechend die einzelnen variablen plus hier ihren wert zu können wir jetzt
  58. hier auch machen hier sehen wir jetzt dieses array das fängt ja bei null an also ist hier natürlich der erste index 0
  59. und hier entsprechend wieder eine 1 und haben dann hier in datentyp also im großen und ganzen würde ich mal sagen nichts besonderes wir können eine rey
  60. auch in eine struktur packen das habe ich euch mal einmal hier gezeigt habe ich eine struktur wo ich einfach ein single buhl hier mal reingepackt habt
  61. und eine rallye von dann jetzt hier sogar mal 0 bis 99 pool variablen damit auch man sieht dass es ein bisschen größer werden kann
  62. gucken wir uns auch mal eben einmal fix an das habe ich nämlich wo habe ich denn jetzt habe ich hier einmal instanziert da seht ihr jetzt
  63. hier einmal die single variable ball und ihr seht hier das airrail und das können wir auch aufklappen und da seht ja schon da sind ein paar mehr werte drin als wir
  64. das hier in diesen doch verhältnismäßig kleinen arrays haben gut das sind also erstmal schon mal die grundlagen und da kann man natürlich noch ganz viele
  65. weitere coole sachen mitmachen und eine besonders interessante sache wie ich finde das ist es so eine rey auch mal mit einer schleife auszuwerten
  66. wir wollen uns ja jetzt auch mal diesem parallelstruktur ihren text angucken das war doch ein bisschen reinkommen und von daher macht da jetzt an meiner stelle
  67. auch sinn zu sagen ich stehe jetzt mal einfach ein paar schleifen nein ich ein paar genau eine schleife die vor schleife hier in strukturierten text vor
  68. und dafür habe ich den kleinen funktionsbausteine gemacht und da haben wir noch eine weitere coole funktion die ich euch zeigen möchte denn es könnte ja
  69. sein dass ihr so eine generelle funktion haben möchtet um euch eine mittelwert berechnung zu ermöglichen es kann ja sein dass man die an mehreren
  70. stellen verwenden möchte und dass man da vielleicht auch im vorfeld noch gar nicht so genau weiß wie viele werte möchte ich denn verwenden da kann ich
  71. natürlich immer ganz guten fixes array als übergabe der definieren kann dann sagen okay mit einem zweiten werk kann ich dann sagen okay wie viele werte
  72. sollst davon nehmen das kann man aber auch viel eleganter lösen und das ist dann nämlich mit einem essay von variabler länge und wie das funktioniert
  73. das seht ihr hier auf der seite da habe ich jetzt hier einmal das re angelegt und dann ist ganz wichtig ihr müsst das in dem bereich war in out von
  74. eurer funktionsbausteine deklaration packen denn sonst geht es nicht und dann ist es auch eigentlich gar kein großes problem wird es anzulegen
  75. liegt hier im prinzip in out value an vom datentyp array von der entsprechenden vom entsprechenden daten typ den wir verwenden wollte und dann
  76. gebe ich hier nur ein sternchen an also ihr sagt jetzt hier nicht es ist eine ray von 1 bis 20 oder von null bis hundert können ihr gebt ihr einfachen
  77. sternchen an und dann könnt ihr nach raise von beliebiger länge der anpacken es gar kein problem
  78. funktioniert auch relativ einfach ich habe das hier unten mal gemacht ich habe hier den funktions baustein in der termin value habe ich immer instanziert
  79. in unserem programm als fb me und da habe ich jetzt hier einfach mal dieses jahr mit the elements angepackt könnt ich jetzt hier oben aber auch dieses
  80. jahr anpacken auch kein problem das nur noch keine werte drin von daher macht das gerade wenig sind aber so würdet ihr das ganze dann auch
  81. dem funktionsbausteine entsprechend mit geben und dann haben wir aber auch eigentlich schon das nächste problem wir wissen ja noch gar nichts über das
  82. terrain wir wissen ja noch gar nicht wo wir anfangen können und wo wir enden müssen das ist ja natürlich auch noch mal
  83. relativ wichtig zu wissen und dafür bietet uns co das ist die funktionen abbauen und blaue band ihr seht ihr einmal hier und mit abbau- und
  84. da bekommen wir die obergrenze des arrays zurück und mit lauer bound da bekommen wir dann die untergrenze des arrays zurück und damit ist dann halt
  85. auch unser entsprechend definiert also wir wissen jetzt wirklich was wir vor uns haben und können jetzt alles mögliche damit machen ohne in
  86. irgendeiner art und weise den speicherbereich essays zu verletzen und dann kommen wir jetzt auch schon zuvor schleifen denn so eine vor schleife die
  87. bietet sich natürlich jetzt an um für unsere mittelwert berechnung mal die summe zu bilden wir müssen ja die summe über alle
  88. elemente bilden und das bedeutet wir summieren das element zum beispiel eins auf das segment 2 und nehmen dann im prinzip das ergebnis und summieren da
  89. noch mal das element 3 auf und so weiter und das ist ja immer so eine repetitive arbeit und das können wir wunderbar schneider machen und das möchte ich euch
  90. jetzt hier unten einmal zeigen nämlich hier ja kommen wir nun zur vor schleife und die vor schleife die ist natürlich ein ganz coole sache um jetzt unsere
  91. summen berechnung die wir für die mittelwert berechnung brauchen zu realisieren und dann möchte ich euch jetzt zunächst
  92. einmal zeigen wie die vor schleife funktioniert die vor schleife die seht ihr jetzt hier die beginnt immer mit vor und endet mit
  93. einem and vor ähnlich wie die abfrage die beginnt ja auch mal mit und endet mit einem and if und dann wird der code der sich jetzt hier drin befindet
  94. ausgeführt und er wird nicht nur einmal ausgeführt der wird mehrfach ausgeführt so lange bis ein definiertes ende erreicht ist
  95. das schöne bei der vorschlag ist einfach auch ihr definiert dieses ende direkt wenn ihr sie programmiert es gibt noch andere schleifen
  96. da machte das nicht und das ist natürlich bei einer sps immer so ein bisschen ein kleines problem denn wenn dieses ende aus irgendeinem grund nicht
  97. erreicht wird dann neuer stürzt die sps einfach ab der wirkstoff wird ausgeführt und das kann bei einer vor schleife ich sag mal nicht so schnell passieren
  98. natürlich könnt ihr vor schleife auch so parametrieren das ist einfach eine sehr lange vor schleife wird und dann eventuell auch wirklich diesen watchdog
  99. auslösen könnte aber das könnte im vorfeld schon einigermaßen gut ich würde mal sagen steuern könnte sagen okay bis hierhin und nicht weiter ist
  100. meiner meinung nach von da immer ein bisschen unproblematischer als zum beispiel weil schleife aber gut klar gucken wir uns mal an wie
  101. das ganze funktioniert also der code der wird jetzt mehrfach ausgeführt und der wird ausgeführt war eine bestimmte ziel variable die habe ich jetzt hier mal de
  102. la torre genannt und diese ziel variable die zählt jetzt im prinzip die schleifen durch läufe und die lassen wir jetzt mit einem bestimmten wert staaten und das
  103. ist in unserem fall jetzt einfach der minimum wert des arrays wir wollen ja bei der summe beim ersten wert anfangen und das sehen wir hier
  104. wir haben jetzt hier die literatur ist gleich die mini rae und das ist ja der wert der uns hier von la bund zurückgegeben wird
  105. dann müssen natürlich ein ende definieren da muss unsere ende natürlich sein dass ende des race und das sehen wir jetzt
  106. hier das ganze ist dann ihr verbunden über dieses wort to also vor die ira tor gleich die mini rae tue also zum de max
  107. dann kommt hier noch ein bei und das gibt uns die schritt größe an denn dieser etat tor der wird jetzt beginnt bei dem wert bei jedem durchlauf
  108. implementiert also hoch gezielt bis er den wert hier in de max er erreicht hat das ist im prinzip die art und weise wie diese vor schleife definiert ist so und
  109. dann wird der code hier ausgeführt und für die mittelwert berechnung der fusion berechnung da wollen wir jetzt auf die einzelnen elemente zu greifen und das
  110. können wir natürlich hier mit dem die literatur der wird in jedem fall hoch gezielt wunderbar machen und dafür eignen sich eher es dann auch wirklich
  111. sehr gut und bilden jetzt hier die summe und hier am ende geben wir hier den termin value zurück und das ist entsprechend
  112. hier unsere summe durch die größe des arrays und die größe des arrays die anzahl der elemente die er rechne ich hier ergibt sich dann aus dem maxi mini
  113. rae und dann immer noch mal +1 dann für das unterste element entsprechend und das schauen wir uns jetzt auch mal an wie das so funktioniert immer mal online
  114. für wunderbar und wir sehen jetzt hier schon in value ist 2,5 das hat man ja auch eben schon mal entsprechend berechnet und wir sehen jetzt hier
  115. entsprechend die maxi mini ist ab 3 jahre und ist 1 und dann haben wir hier die size von 3 und berechnen das ganze hier entsprechend wunderbar eigentlich
  116. ist eine ganz nette geschichte und so sind wir jetzt wirklich auch flexibel mit den größen ich will das noch mal abschließend
  117. einmal demonstrieren dafür gehe ich jetzt hier mal zurück in mein programm und werde jetzt hier das array mal vergrößern
  118. das heißt wir haben jetzt eine reihe von 1 bis 4 und mit dem wert 4 das heißt diese mittelwert berechnung die wir dies natürlich ein falsches
  119. ergebnis bringen denn entsprechend 2,5 da hat sich ja nichts daran geändert aber unser eigentlicher mittelwert ist jetzt 2,88
  120. und schauen bei uns hier auch mal ein mal im programm an da sehen wir jetzt hier wieder die ray ist gleich max airways gleich vier
  121. das heißt also unsere abbauen funktion die hat jetzt einen anderen wert bereitgestellt und da könnte da gibt es also auch sehen dass es funktioniert
  122. wirklich das hat da wirklich flexibel und damit würde ich doch mal sagen sind wir für heute soweit fertig ich denke da habe ich erst
  123. mal wieder ein bisschen was wo er auch mal ein bisschen was ausprobieren könnt ja wie ihr seht mit schleifen und air race in einer kombination da könnte
  124. wirklich große datenmengen bearbeiten und er braucht ja eigentlich nicht wirklich viel code dafür also wir haben jetzt eine auf summierung von einer
  125. beliebigen größe an daten programmiert im prinzip nur mit zwei zeilen code wenn ihr euch jetzt vorstellt werden das alles manuell programmiert also jede
  126. summierung kooperation untereinander und wir würden jetzt das ganze mal für nrw machen wollen mit 100 variablen dann haben wir schon
  127. ein stück produziert und vor allen dingen ihr habt ja auch gesehen wenn sich dann mal was ändert an den daten oder wenn die größer und wenn die
  128. kleiner werden dann müssen wir wieder dran dann müssen was wiederum programmieren und ich denke da haben wir halt möglich auch mit
  129. airways eine möglichkeit das sehr geschickt zu machen und es auch wirklich fehler toleranz zu machen denn am ende des tages stellt sich unser programm
  130. ich habe da ja eben alle gesehen auch automatisch ein und das ist meiner meinung nach eine ganz praktische und hilfreiche sache und von daher lohnt es
  131. sich da wirklich mal einen blick darauf zu werfen wenn ihr dieses video hier praktisch und hilfreich findet dann freue ich mich immer über einen daumen
  132. nach oben wenn du das video nicht so gut findet dann kein problem daumen nach unten steht euch auch frei dann freue ich mich aber auch über einen
  133. konstruktiven kommentar was sich in zukunft besser machen könnte denn so können wir alle zusammen den kanal hier auch ein bisschen weiter
  134. entwickeln und für all diejenigen unter euch die den kanal noch nicht abonniert haben jetzt ist eure chance klickt einfach mal
  135. auf die glocke und dann würde ich sagen bleibt dran

Zum Nachlesen