FLProg - Lektion Zwei: Arbeiten mit analogen Signalen


In der vorherigen Lektion wurden die Grundprinzipien der Arbeit mit dem FLProg-Programm sowie der Arbeit mit diskreten Signalen beschrieben. In dieser Lektion werden die Funktionen von FLProg für die Arbeit mit analogen Signalen beschrieben.
Während des Unterrichts wird ein Steuerprogramm für die LED-Pegelanzeige erstellt und die Helligkeitseinstellung der LED über den PWM-Ausgang angezeigt.

Schema des Prüfstands.



Wie in der letzten Lektion werden wir das Projekt in zwei Sprachen erstellen: FBD und LAD. Erst jetzt wird es parallel gemacht.

Wir erstellen ein neues Projekt.

Für LAD

  • Der erste Weg - wir ziehen den Analogeingang A0 aus dem Baum der installierten Geräte auf die Schaltung
  • Die zweite Möglichkeit besteht darin, den Block „Analog Controller Input“ aus der Elementbibliothek zu ziehen, dann auf den neuen Block zu doppelklicken und ihn an den Null-Analogeingang der Karte anzuschließen


Für die FBS-Sprache erstellen wir einen neuen Analogeingang, indem Sie im Tag-Baum auf das Element „Input hinzufügen“ doppelklicken oder auf die entsprechende Schaltfläche klicken.



Geben Sie im geöffneten Fenster mit den Eingangseigenschaften den Eingangsnamen ein, wählen Sie den Analogtyp und die Kontaktnummer 0 aus und



ziehen Sie den neuen Eingang aus dem Tag-Baum in den Schaltkreisbereich.

Die analogen Eingangsblöcke in FLProg an ihrem Ausgang geben einen Wert an, der proportional zur Spannung am realen Eingang der an sie angeschlossenen Karte ist. Bei 0 V am Eingang der Karte beträgt der Ausgang des Blocks 0, und bei 5 V am Eingang der Karte beträgt der Ausgang des Blocks 1023.


Dann erstellen wir einen analogen Ausgang.

Ziehen Sie für die KOP-Sprache den Block „Analogausgang des Controllers“ aus der Blockbibliothek, und fügen Sie ihn im Eigenschaftseditor des Blocks (Doppelklick auf den Block) an den Ausgang der D3-Karte an. Doppelklicken Sie



in der FBS-Sprache auf den Eintrag „Ausgang hinzufügen“ im Tag-Baum, um einen Analogausgang zu erstellen oder klicken Sie auf die entsprechende Schaltfläche.



Geben Sie im folgenden Fenster mit den Ausgabeeigenschaften den Namen des Ausgangs ein, wählen Sie den PWM-Typ und die Ausgangsnummer D3 aus und



ziehen Sie den neuen Ausgang in den Arbeitsbereich der Schaltung.

Tatsächlich haben Arduino-Karten keine echten analogen Ausgänge (ohne das Arduino Duo, aber bisher werden diese Karten vom FLProg-Programm nicht unterstützt). Die analogen Ausgänge der Karte arbeiten im PWM-Modus.

Pulsweitenmodulation
- (, . pulse-width modulation (PWM)) — , , , . .

, . — . , . 50 %, ( ) . . - , , . 75%, 3 , :

, 0 100 %. , . — () . Arduino 256 .

Im FLProg-Programm steuert die analoge Ausgabeeinheit das Tastverhältnis des damit verbundenen PWM-Ausgangs. Wenn auf den Seiteneingang ein Wert von 0 am Ausgang des Pfads angewendet wird, beträgt das Tastverhältnis 0%, und wenn ein Wert von 255 - 100% angewendet wird.
Aufgrund der Tatsache, dass die Signalgrenzen am Ausgang des analogen Eingangsblocks der Steuerung 0 bis 1023 und die Grenzen des zulässigen Signals am Eingang des analogen Ausgangsblocks der Steuerung 0 bis 255 betragen, stellt sich die Frage, ob sie auf den gleichen Wert gebracht werden sollen. Die Skalierungseinheit hilft.
In der LAD-Sprache befindet es sich im Ordner „Analog Blocks“ der Elementbibliothek.



In FBD befindet sich derselbe Block im Ordner Special Blocks der Elementbibliothek.



Die Skalierungseinheit überträgt den am Eingang empfangenen Wert proportional in einen anderen Wertebereich und gibt diesen Wert an den Ausgang weiter. Die Parameter der Eingabe- und Ausgabewertebereiche werden in den Blockeigenschaften festgelegt. Durch Doppelklick auf den Block können wir den Blockparameter-Editor öffnen und diese Werte einstellen.



Die Berechnung im Block erfolgt nach folgender Formel
Q = (I - I_min) * (Q_max - Q_min) / (I_max - I_min) + Q_min
Wobei:
  • Q - Wert am Ausgang des Blocks
  • I - Wert am Eingang des Blocks
  • I_max - Obergrenze des Eingabewerts
  • I_min - untere Grenze des Eingabewerts
  • Q_max - Obergrenze des Ausgabewerts
  • Q_min - untere Grenze des Ausgabewerts

Infolge der im Screenshot gezeigten Blockeinstellung ändert sich der Wert am Ausgang proportional von 0 auf 255, wenn sich der Wert am Eingang des Blocks von 0 auf 1023 ändert, was erforderlich ist. Jetzt müssen Sie alle Blöcke gemäß dem Diagramm verbinden.

LAD


FBD


Das erste Board ist fast fertig. Wir nennen es "Helligkeitsregelung" und erstellen eine neue, die wir sofort "Füllstandsanzeige" nennen.
In der zweiten Karte benötigen wir auch den Wert vom Controller-Eingang. Im Prinzip können Sie den Blockeingang wieder auf die zweite Karte ziehen und verwenden. Dies führt jedoch dazu, dass während der Ausführung des Programms in der Steuerung der Wert von der Eingabe erneut gelesen wird. Das Verfahren zum Lesen des analogen Signals vom Eingang ist sehr ressourcenintensiv und langwierig. Daher verwenden wir einen analogen Anschluss für LAD und eine Variable für FBD.
In FLProg können variable und analoge Anschlüsse als Klemmenverbindungen auf der Karte dargestellt werden. Mit ihrer Hilfe tauschen die Boards Werte aus und verbinden sich miteinander.

Ziehen Sie im LAD-Projekt den Block „Analog Connector Input“ auf die FIRST-Projektplatine.



Es erhält automatisch den Namen AC1. Dann verbinden wir seinen Eingang mit dem Ausgang des analogen Eingangsblocks.



Ziehen Sie auf der zweiten Karte den Block „Analog Connector Output“.



Wir doppelklicken darauf und weisen es dem AC1-Connector im

Blockeditor zu. Erstellen Sie in einem Projekt in der FBD-Sprache eine neue Variable, indem Sie auf die entsprechende Schaltfläche klicken oder auf das Element "Variable hinzufügen" im Tag-Baum doppelklicken.



Geben Sie im Fenster des sich öffnenden Blockeditors den Variablennamen ein, wählen Sie den Typ (Integer) aus und setzen Sie den Standardwert auf 0



Dann ziehen wir die neue Variable zuerst auf eine Karte und dann auf eine andere. Wir verbinden auch den variablen Eingang mit dem Ausgang des analogen Controller-Eingangsblocks auf der ersten Karte.



Da die Füllstandsanzeige 10 Werte hat, ist es erforderlich, dass sich der Steuerwert von Null auf 10 ändert, wenn sich der Wert von Null auf Maximum ändert. Die Skalierungseinheit hilft erneut. Ziehen Sie es auf die zweite Karte und konfigurieren Sie es wie folgt.



Verbinden Sie nun seinen Eingang bei LAD mit dem Ausgangsblock des Analogsteckers und bei FBD mit dem Ausgang der Variablen.

LAD


FBD


Betrachten Sie die Logik der Füllstandsanzeige.
  • Die LED „Level 1“ sollte aufleuchten, wenn der Signalwert größer als 0 ist
  • Die LED „Level 2“ sollte aufleuchten, wenn der Signalwert größer als 1 ist
  • « 3» , 2
  • « 4» , 3
  • « 5» , 4
  • « 6» , 5
  • « 7» , 6
  • « 8» , 7
  • « 9» , 8
  • « 10» , 9

Um diese Logik zu implementieren, verwenden wir ein Vergleichsrelais bei der LAD-Sprache und einen Komparator bei der FBD-Sprache.

LAD


FBD


In einem Projekt in der LAD-Sprache ziehen wir 10 Vergleichsrelais auf der zweiten Karte heraus und weisen sie den Ausgängen zu, an die der Füllstandsmesser angeschlossen ist ( siehe erste Lektion ), und setzen den Vergleichstyp auf "Mehr".



Durch Klicken mit der rechten Maustaste auf den Eingang „B“ jedes Blocks des Vergleichsrelais rufen wir das Kontextmenü auf und wählen den Punkt „Konstante einfügen“. Lassen Sie im geöffneten Fenster für die konstante Bearbeitung den Typ „Integer“ und geben Sie für jede Ausgabe einen Wert ein, der der Logik des Indikators entspricht.



Die Eingänge "A" aller Blöcke der Relaisrelais sind mit dem Ausgang der Skaliereinheit verbunden. Ein solches Schema sollte erhalten werden.



In einem Projekt in der FBD-Sprache ziehen wir 10 Komparatorblöcke auf der zweiten Karte heraus und setzen sie auf die Vergleichsansicht „Mehr“ (doppelklicken Sie auf den Block, um den Blockeditor aufzurufen). Wie in LAD-e werden wir Konstanten an den Eingängen der I2-Blöcke einfügen und die Eingänge I1 mit dem Ausgang des Skalierungsblocks verbinden.



Erstellen Sie anschließend 10 digitale Ausgänge, die mit den Ausgängen der Karte verbunden sind, an die der Füllstandsmesser angeschlossen ist (siehe erste Lektion), und ziehen Sie sie auf die zweite Karte. Und wir werden jeden mit seinem eigenen Komparator verbinden.



Alles - die Programme sind fertig, Sie können sie kompilieren und auf den Controller hochladen ( siehe erste Lektion ).

Source: https://habr.com/ru/post/de389781/


All Articles