<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/</id><updated>2020-02-28T06:21:26.319000Z</updated><subtitle>Recent posts to Masseneingänge (Inputs) verarbeiten</subtitle><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#2fb6" rel="alternate"/><published>2020-02-28T06:21:26.319000Z</published><updated>2020-02-28T06:21:26.319000Z</updated><author><name>stonix</name><uri>https://forge.codesys.com/u/stonix/</uri></author><id>https://forge.codesys.comc3afbdcf038aa8dc8dabefa4cde097fec6387a29</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Das sieht ja noch besser aus. Werde mich am Montag da gleich ran machen.&lt;/p&gt;
&lt;p&gt;Vielen Dank!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#07bf" rel="alternate"/><published>2020-02-28T06:21:24.149000Z</published><updated>2020-02-28T06:21:24.149000Z</updated><author><name>gravieren</name><uri>https://forge.codesys.com/u/gravieren/</uri></author><id>https://forge.codesys.comf431a7350487b1b0fa8b903115a2974533dac066</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Mit dem Code wäre man in der Lage 8 Bit, bzw. 16 Bit gleichzeitig abzufragen. &lt;br/&gt;
Sicherheitshalber nochmals:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hier der Steuerungsablauf schematisch.&lt;/p&gt;
&lt;p&gt;NEXT:&lt;/p&gt;
&lt;p&gt;PAE  --&amp;gt; Prozess Abbild Eingang   Einlesen aller Eingänge (Automatisch) ca. 15 uS&lt;/p&gt;
&lt;p&gt;PLC-Progi abarbeiten   (Zykluszeit z.b.  ca. 100 mS)&lt;/p&gt;
&lt;p&gt;PAA --&amp;gt; Protess Abbild Ausgänge schreiben aller Ausgänge (Automatisch) ca. 15 uS&lt;/p&gt;
&lt;p&gt;GOTO NEXT&lt;/p&gt;
&lt;p&gt;Hier ein Link siehe die &lt;span style="color: underline;"&gt;Seite 25&lt;/span&gt; an&lt;/p&gt;
&lt;p&gt;(Auch die Seite 51 ist interessant)&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://books.google.de/books?id=b1e-ELWnNhIC&amp;amp;pg=PA51&amp;amp;lpg=PA51&amp;amp;dq=abarbeiten+plc+zykluszeit&amp;amp;source=bl&amp;amp;ots=X8AuOsmC96&amp;amp;sig=pdydQQilbvtWZEmKZHTQfwK1uFM&amp;amp;hl=de&amp;amp;ei=zlAESsC1CYyHsAbJuMTACA&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=4" rel="nofollow"&gt;http://books.google.de/books?id=b1e-ELW ... t&amp;amp;resnum=4&lt;/a&gt; m &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#9d5f" rel="alternate"/><published>2020-02-28T06:21:21.992000Z</published><updated>2020-02-28T06:21:21.992000Z</updated><author><name>stonix</name><uri>https://forge.codesys.com/u/stonix/</uri></author><id>https://forge.codesys.com84f29d98ed211ce219b29865f6caa9485f644e3a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Jup ich hab mir alles durch den Kopf gehen lassen. Das mit den gleichen Interrups kann in der tat etliche weitere Probleme verursachen.&lt;/p&gt;
&lt;p&gt;Ich hab schon eine Lösung gefunden, zumindest einen Lösungsansatz. Wer will, der kann hier posten, ich stell dann den Code rein. Mit dem Code wäre man in der Lage 8 Bit, bzw. 16 Bit gleichzeitig abzufragen.&lt;/p&gt;
&lt;p&gt;Vielen Dank für die Wegweisung. Es ist wirklich hilfreich zu wissen, in welcher Richtung eine Lösung liegt, die besser zu verarbeiten ist.&lt;/p&gt;
&lt;p&gt;Ein schönes Wochenende &lt;em&gt;freu&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Stefan&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#b80f" rel="alternate"/><published>2020-02-28T06:21:15.913000Z</published><updated>2020-02-28T06:21:15.913000Z</updated><author><name>gravieren</name><uri>https://forge.codesys.com/u/gravieren/</uri></author><id>https://forge.codesys.com1ee1a702060cb05b72b7658fd46ea1100ae51b92</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Ein Programm hat ja bekanntlich ein Anfang und ein Ende. Es wird zyklisch durchlaufen und kann, je nach dem wie komplex der Code ist, eine bestimmte Anzahl an Zyklen pro Sekunde durchlaufen werden. &lt;br/&gt;
O.K.  Die Zykluszeit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Jetzt kommen die 150 Eingänge ins Spiel. An jedem Eingang liegen kurze Impulse mit einer Impulsdauer von 240 Millisekunden an. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;O.K.  Bei einer Zykluszeit von z.b.  100 ms KEIN Problem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Ein Impuls kann auf jedem Eingang pro Minute etwa 1 bis 70 mal auftreten. &lt;br/&gt;
O.K.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Angenommen "worst case": &lt;br/&gt;
Es tritt auf einmal an jedem Eingang ein Impuls auf. &lt;br/&gt;
Ist der Controller schnell genug um die 150 Eingänge zu erkennen? &lt;br/&gt;
 Prizipiell:&lt;br/&gt;
- ALLE EIngänge werden erst eingelesen&lt;br/&gt;
- Das PLC-Programm durchlaufen&lt;br/&gt;
- ALLE Ausgänge gesetzt.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Und das alles geschieht bei jedem PLC-Zyklus.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Wieviel Zeit darf ein Unterprogramm maximal brauchen, damit für die restlichen Eingänge auch die Chance beilbt erkannt zu werden? &lt;br/&gt;
(Hab's schon ausgerechnet, das wären max. 1,6 ms, eher 1,5 ms). &lt;br/&gt;
Wie schnell arbeitet der Controller? &lt;br/&gt;
 Siehe oben.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Am liebsten würde ich für jeden Eingang einen Interrupt erzeugen lassen, welche alle die gleiche Priorität haben. &lt;br/&gt;
Und was dann ?&lt;br/&gt;
Sodann das PLC-Programm abarbeiten ?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Was aber passiert, wenn bei der Abarbeitung sich wieder und wieder ein Eingang ändert  ?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Somit hätte ich das Problem nicht mit dem zeitlichen Ablauf. &lt;br/&gt;
Jedoch etliche andere Probleme   &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Lass dir das noch mal durch den Kopf gehen.&lt;/p&gt;
&lt;p&gt;Wenn du z.b.  einen Zähler benötigst, dessen Zykluszeit zu gross ist, kann du so was brauchen.&lt;/p&gt;
&lt;p&gt;Z.b.  Bei Änderung eines Eingangs wird nur z.b.&lt;/p&gt;
&lt;p&gt;wert := Wert + 1;&lt;/p&gt;
&lt;p&gt;ausgeführt.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#fd15" rel="alternate"/><published>2020-02-28T06:21:13.730000Z</published><updated>2020-02-28T06:21:13.730000Z</updated><author><name>stonix</name><uri>https://forge.codesys.com/u/stonix/</uri></author><id>https://forge.codesys.come8712ccdf9f99a2f12552bd069199694b7654dd0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ja, das wär auch eine Möglichkeit. Allerdings sehe ich dort eventuell ein Problem des zeitlichen Ablaufs.&lt;/p&gt;
&lt;p&gt;Ein Programm hat ja bekanntlich ein Anfang und ein Ende. Es wird zyklisch durchlaufen und kann, je nach dem wie komplex der Code ist, eine bestimmte Anzahl an Zyklen pro Sekunde durchlaufen werden.&lt;/p&gt;
&lt;p&gt;Jetzt kommen die 150 Eingänge ins Spiel. An jedem Eingang liegen kurze Impulse mit einer Impulsdauer von 240 Millisekunden an. Ein Impuls kann auf jedem Eingang pro Minute etwa 1 bis 70 mal auftreten.&lt;/p&gt;
&lt;p&gt;Angenommen "worst case":&lt;/p&gt;
&lt;p&gt;Es tritt auf einmal an jedem Eingang ein Impuls auf.&lt;/p&gt;
&lt;p&gt;Ist der Controller schnell genug um die 150 Eingänge zu erkennen? Wieviel Zeit darf ein Unterprogramm maximal brauchen, damit für die restlichen Eingänge auch die Chance beilbt erkannt zu werden?&lt;/p&gt;
&lt;p&gt;(Hab's schon ausgerechnet, das wären max. 1,6 ms, eher 1,5 ms).&lt;/p&gt;
&lt;p&gt;Wie schnell arbeitet der Controller?&lt;/p&gt;
&lt;p&gt;Am liebsten würde ich für jeden Eingang einen Interrupt erzeugen lassen, welche alle die gleiche Priorität haben. Somit hätte ich das Problem nicht mit dem zeitlichen Ablauf. Ist sowas möglich?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#eda1" rel="alternate"/><published>2020-02-28T06:21:07.636000Z</published><updated>2020-02-28T06:21:07.636000Z</updated><author><name>gravieren</name><uri>https://forge.codesys.com/u/gravieren/</uri></author><id>https://forge.codesys.com61615cc71b36db24430a57b171a543dfbb03c870</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Ich verstehe dein Problem nicht.&lt;/p&gt;
&lt;p&gt;Schreibe doch ein Zyklisches Programm.&lt;/p&gt;
&lt;p&gt;Alle z.b.  150 Eingange werden sodann abgearbeitet.&lt;/p&gt;
&lt;p&gt;Oder verstehe ich etwas falsch  ?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Masseneingänge (Inputs) verarbeiten</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/155cdf32e6/?limit=25#80df" rel="alternate"/><published>2020-02-28T06:21:05.471000Z</published><updated>2020-02-28T06:21:05.471000Z</updated><author><name>stonix</name><uri>https://forge.codesys.com/u/stonix/</uri></author><id>https://forge.codesys.com04e0b48e2a52209250eda384e21e61f693f656c1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo an alle CoDeSysler,&lt;/p&gt;
&lt;p&gt;habe mich eben als "neuling" hier im Forum angemeldet und bin selbst auch neu auf diesem Gebiet.&lt;/p&gt;
&lt;p&gt;Stehe vor einem Problem und weis nicht, ob dieses Problem ganz einfach oder auch überhaupt nicht zu lösen ist. Hier die Beschreibung:&lt;/p&gt;
&lt;p&gt;Ich habe einen programmierbaren Controller (WAGO 750-841) und die all bekannte CoDeSys V2.3. Wir wollen an diesen Controller eine Vielzahl an Eingängen verarbeiten. Maximal 150 digitale Inputs (mehrere 8 DI - WAGO 750-400 Module) an einem Controller.&lt;/p&gt;
&lt;p&gt;In den Resourcen finden wir die Taskkonfiguration. Allerdings lassen sich maximal 32 Prioritäten einstellen (0-31). Gleiche Prioritäten lässt die Programmierung nicht zu.&lt;/p&gt;
&lt;p&gt;Gibt es noch andere Möglichkeiten Ereignisse "Interrrupt-Ähnlich" abzuarbeiten? Alle Eingänge können gleiche Prioritäten haben, ist aber nicht zwingend notwendig. Da nach dem Verlassen eines Interrupts sowieso dort weiter gemacht wird wo unterbrochen wurde, ist die Reihenfolge der Abarbeitung egal.&lt;/p&gt;
&lt;p&gt;Für weitere Fragen, einfach posten, mailen oder per ICQ. Würde mich sehr auf einen Lösungsansatz freuen.&lt;/p&gt;
&lt;p&gt;Zusatzinfo: Der Controller macht sonst nichts weiter. Es läuft kein aufwendiges Hauptprogramm oder ähnliches. Es geht nur hauptsächlich um die Massenabfertigung der Eingänge.&lt;/p&gt;
&lt;p&gt;Vielen Dank an alle. Hoffe bald auf Antwort &lt;em&gt;anfleh&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>