Darf ich mich vorstellen - FLProg-Projekt



Guten Tag.

Mein Name ist Sergey Glushenko und ich bin der Autor des FLProg- Projekts . Dieser Blog ist diesem Projekt gewidmet, und hier werde ich über die Neuigkeiten des Projekts und die Erfolge von Mitgliedern der Community der Benutzer des Programms sprechen. Das Projekt widmet sich der Erstellung einer visuellen Programmierumgebung für Arduino-Boards. Bevor ich über das FLProg-Programm spreche, möchte ich einen kurzen Überblick über vorhandene Programme geben, die für die Programmierung dieser Boards entwickelt wurden.

Die Programmierumgebungen von Arduino-Karten können in die folgenden Typen unterteilt werden:
  1. Gepumpte Notizblöcke
  2. Textentwicklungsumgebungen
  3. Grafische Umgebungen, die die Struktur des Codes visualisieren.
  4. Grafische Umgebungen, in denen Code in Form von Grafiken angezeigt wird.
  5. Visuelle Programmierumgebungen, die keinen Code verwenden.


Betrachten Sie jeden Typ.

Pumped "Notepads"

Dieser Typ enthält die ursprüngliche Programmierumgebung Arduino-IDE sowie viele seiner Klone.



Der Entwurf des Programms für den Controller erfolgt in der Sprache Processing / Wiring, die ein Dialekt der Sprache C ist (eher C ++). Diese Umgebung ist in der Tat eine regelmäßige Texteditor mit der Fähigkeit geschriebenen Code in die Steuerung zu laden.

Text Entwicklungsumgebungen

Eine Alternative zu dem Arduino IDE ist die Entwicklungsumgebung von Atmel - Mikrocontroller Herstellern - AVRStudio.



Die Programmierung erfolgt in reinem C, hat bereits viel mehr Funktionen und ähnelt eher seriösen IDEs für „echte“ Programmiersprachen.

Diese beiden Arten von Programmen richten sich an erfahrene Programmierer, die die Sprache gut kennen und mit ihnen ernsthafte Projekte erstellen können.

Grafische Umgebungen, die die Struktur des Codes visualisieren.

Dies sind Programme, die tatsächlich eine Formatierungserweiterung für einen normalen Textcode-Editor darstellen. Darin ist das Programm ebenfalls in C geschrieben, jedoch auf bequemere Weise. Jetzt gibt es viele solcher Umgebungen, die auffälligsten Beispiele: Scratch, S4A, Ardublock. Sie eignen sich sehr gut für das elementare Lernen in der C-Programmierung, da sie die Struktur und Syntax der Sprache perfekt zeigen. Bei großen, ernsthaften Projekten ist das Programm jedoch umständlich.



Grafische Umgebungen, in denen Code in Form von Grafiken angezeigt wird

Dies sind Programme, die den Code verbergen und durch grafische Gegenstücke ersetzen. Die Struktur der Sprache wiederholt sich auch in ihnen, Zyklen, Übergänge, Bedingungen werden gebildet. Sie eignen sich auch sehr gut zum Erlernen des Erstellens von Algorithmen, gefolgt von einem Übergang zur Programmierung in klassischen Sprachen. Und sie sind aufgrund der Umständlichkeit der resultierenden Anzeige auch nicht für den Bau großer Projekte geeignet. Ein Beispiel für ein solches Programm: MiniBlog, Algorithm Builder, Flowcode



Die oben beschriebenen Programmtypen sind für Programmierer oder für diejenigen gedacht, die sich für das Studium der klassischen Programmierung entscheiden. Für die Herstellung des Endgeräts ist jedoch neben der direkten Programmierung der Steuerung in der Regel die Entwicklung einer externen Leiterplatte, die Entwicklung und Berechnung des Leistungsteils, der Eingangsübergänge und vieles mehr erforderlich. Programmierer haben oft Probleme damit. Aber Elektriker und Elektronikingenieure leisten hier hervorragende Arbeit. Aber unter ihnen gibt es nur wenige Programmierer, die ein Programm für die Steuerung erstellen könnten. Die Kombination eines Programmierers und eines Elektronikingenieurs ist ein eher seltener Fall. Infolge dieser Situation real realisierte Projekte, die auf Arduino-Boards (und tatsächlich anderen Controllern) basieren. Um dieses Problem zu lösen, werden Programme des letzteren Typs verwendet.

Visuelle Programmierumgebungen, die keinen Code verwenden.

Diese Programme implementieren das Prinzip, das seit fast allen Herstellern industrieller Steuerungen seit vielen Jahren angewendet wird. Es besteht darin, Programme für die Steuerung in den Sprachen FBD oder LAD zu erstellen. Tatsächlich sind sie als solche keine Sprachen. Sie sind vielmehr grafische Umgebungen zum Zeichnen schematischer oder logischer Schaltungen. Denken Sie daran, dass Prozessoren nicht immer Mikroprozessoren waren, sondern auf der Grundlage digitaler Mikroschaltungen erstellt wurden. Daher werden diejenigen, die an die Arbeit mit digitaler Technologie gewöhnt sind, mehr Spaß daran haben, daran zu arbeiten, als Code in klassischen Programmiersprachen zu schreiben. Ein Beispiel für solche Programme sind die Projekte Horizont und FLProg. Programme dieser Art eignen sich sowohl zum Studium des Aufbaus der Impuls- und Relaistechnologie als auch zur Erstellung seriöser Projekte.


Und schließlich der Held dieses Blogs, das FLProg- Projekt .

Da ich seit vielen Jahren als Entwickler von Prozessleitsystemen arbeite, habe ich versucht, alles, was mir in den Umgebungen am besten gefallen hat, von führenden Herstellern von Industrieanlagen (Tia-Portal, Zelio Soft, Logo Soft Comfort) im FLProg-Programm zu sammeln.
Mit dem Programm können Sie Schaltungen in zwei Formen herstellen: Funktionsschaltungen (FBD) und Relaisschaltungen (LAD).



FBD (Function Block Diagram) – 61131-3. , . . () — , (, , , , , , , .). , . , . . .


Ladder Diagram (LD, LAD, ) – () . , . , . , , . - , , . ( — ; — ). , . , — . , .

Diese Programmiermethode erwies sich als sehr praktisch für den einfachen Einstieg in die Entwicklung von ACS-Systemen für Elektrotechniker und Elektronikingenieure. Bei der Entwicklung von Gerätedesigns können sie den Betrieb dieser Installationen leicht an die Steuerungsbetriebsalgorithmen binden.

Basierend auf diesen Ansichten arbeitet FLProg mit Arduino zusammen. Warum?
Das Board ist sehr praktisch für die schnelle Entwicklung und das Debuggen seiner Geräte, was nicht nur für Funkamateure wichtig ist, sondern auch sehr nützlich ist, beispielsweise in Schulkreisen und in Ausbildungslabors von Hochschulen. Einer der Vorteile - Sie brauchen keinen Programmierer. Sie verbinden das Arduino-Board mit dem Computer und laden das fertige Programm aus der Entwicklungsumgebung herunter. Derzeit gibt es eine große Auswahl an Arduino-Modulen, zusätzlichen Modulen, die mit Arduino arbeiten, Sensoren und ausführenden Geräten.

Derzeit unterstützt das Programm die folgenden Versionen von Arduino: Arduino Diecimila, Arduino Duemilanove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro ( ATmega168), Arduino Pro (ATmega328), Arduino UNO. Darüber hinaus wurde das Intel Galileo gen2-Board kürzlich in die Liste der unterstützten Controller aufgenommen. In Zukunft soll diese Liste aufgefüllt und möglicherweise Karten hinzugefügt werden, die auf STM-Controllern basieren.



Ein Projekt im FLProg-Programm besteht aus einer Reihe einzigartiger Karten, von denen jede ein vollständiges Modul der allgemeinen Schaltung enthält. Der Einfachheit halber hat jedes Board einen Namen und Kommentare. Außerdem kann jedes Board minimiert (um Platz im Arbeitsbereich zu sparen, wenn die Arbeit daran abgeschlossen ist) und bereitgestellt werden.

Die Zusammensetzung der Elementbibliothek für die FBD-Sprache im Moment.

  • [OR]
  • [AND]
  • [Bounce]
  • [XOR]

  • [Scale]

  • [SR]
  • [TT]
  • [Rtrig]
  • [RS]

  • [Timer]
  • [Generator]

  • [SpeedCounter]
  • [Counter]

  • [SUM(+)]
  • [MUL(*)]
  • [SUB(-)]
  • [DIV(/)]

  • [COS]
  • [ABS]
  • [MAX]
  • [POW]
  • [SQRT]
  • [TAN]
  • [MIN]
  • [SQ]
  • [RANDOM]
  • [SIN]

  • [Comparator]

UART
  • UART
  • UART
  • UART
  • UART

  • [SWITCH]
  • [MUX]
  • [DMS]

  • ServoMotor
  • StepMotor

  • [Alarm]
  • [GetTime]
  • [SetTime]

  • D44780
  • D44780 I2C

  • Char


  • [DS18x2x]
  • [IR Ressive]
  • [Ultrasonic HC-SR04]
  • [DHT11, DHT21, DHT22]
  • [BMP-085]
  • [BH1750LightMeter]

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • RessiveVariableFromCommunication
  • WebServerPage
  • SendVariableFromCommunication
  • WebClient

  • narodmon.ru
  • goplusplatform.com
  • RemoteXY


Die Zusammensetzung der Elementbibliothek für die KOP-Sprache im Moment.



  • SIN
  • COS
  • TAN
  • ABS
  • MAX
  • MIN
  • SQ
  • SQRT
  • POW
  • RANDOM


UART
  • UART
  • UART
  • UART
  • UART



  • HD44780
  • HD4480 I2C

  • Char


  • HC-SR04
  • DHT11 (DHT21, DHT22)
  • DS18x2x
  • IR Ressive
  • BMP-085
  • BH1750 Light Meter

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • Web
  • Web

  • narodmon.ru
  • RemoteXY



Ich werde Ihnen in den folgenden Beiträgen mehr über das Projekt erzählen und schließlich ein kurzes Video, das die Prinzipien der Arbeit im Programm und die Möglichkeit zeigt, das Board über die Anwendung auf dem Smartphone zu steuern.

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


All Articles