Einführung
Sicherlich hat jeder, der einmal angefangen hat oder gerade anfängt, STM32-Mikrocontroller zu studieren, ein in China hergestelltes Debugging-Board mit dem treffenden Spitznamen Blue Pill Foreign Tourists (blaue Tablette).
Eine solche Karte basiert auf dem STM32F103C8T6-Chip, einem 32-Bit-Prozessor, der auf dem Cortex-M3-Kern basiert. Das Bild unten zeigt die klassische Zuordnung von Platine und Pin.
Das Aussehen des klassischen Boards Wie macht man SPS aus improvisierten Mitteln in 5 Minuten?
Wie so oft haben Sie im Internet gelernt, wie man mit Timern, USART, Ausgangszuständen und sogar mit DMA arbeitet! Und nach all den Tests nimmt die Platine sicher einen Platz im Ersatzteilregal ein - eine gute Sache, aber bisher wurde keine anständige Anwendung gefunden.
Wenn Sie diesen Artikel lesen, ist es Zeit, die Platine aus dem Regal zu nehmen und Staub wegzublasen, da wir jetzt eine darauf basierende speicherprogrammierbare Steuerung herstellen, die der internationalen Norm IEC61131-3 entspricht.
Nachdem der Mikroprozessor mit der angehängten Firmware geflasht wurde (leider bis die Veröffentlichung der Quellcodes in den Plänen verfügbar ist), kann er bereits als SPS arbeiten. Das Interessanteste ist, dass die Karte mit der Standard-GX Developer FX-Software programmiert werden kann, die für die Programmierung von Mitsubishi FX2N-Controllern entwickelt wurde. Diese Software (und Russified) habe ich nach der Registrierung kostenlos von der offiziellen Mitsubishi-Website heruntergeladen.
Welche neuen Funktionen hat unser kleines blaues Board nach der Firmware erhalten?
Zunächst können Sie es jetzt über den Micro-USB-Anschluss an einen Computer anschließen. Um den Datenaustausch zwischen der Programmierumgebung und dem Controller zu ermöglichen, müssen Sie die virtuellen COM-Port-Treiber installieren. Sie können über den Link aus dem Dokument bluepill_update.pdf im Anhang heruntergeladen werden. Nach der Installation des Treibers und dem Anschließen der Karte an USB wird auf den Geräten des PCs ein neues Gerät angezeigt (siehe Abbildung).
Art der Controller-Hardwarekonfiguration nach der Installation der Treiber Jetzt können Sie den von uns installierten GX Developer FX ausführen. Nach dem Starten des Programms haben Sie folgendes Fenster:
Erster Start von GX Developer FX Der nächste Schritt ist das Erstellen eines neuen Projekts. Im Menü Projekt - Neues Projekt. Dieses Fenster wird für Sie geöffnet:
Neues Projekt bei GX Developer FX Sie können hier nichts ändern und klicken Sie auf OK. Also - wir haben ein leeres Projekt und müssen jetzt eine Online-Verbindung zum Board konfigurieren.
Wählen Sie dazu im Menü Online - Übertragungseinstellungen. Dieses Fenster wird für Sie geöffnet:
Einrichten der Konnektivität in GX Developer FX Sie können hier nichts ändern und klicken Sie auf OK. Also - wir haben ein leeres Projekt und müssen jetzt eine Online-Verbindung zum Board konfigurieren.
Wählen Sie dazu im Menü Online - Übertragungseinstellungen. Dieses Fenster wird für Sie geöffnet:
Einrichten der Konnektivität in GX Developer FX Wählen Sie in der PC-Schnittstellenserie Ordinal aus (hier ist es falsch übersetzt - es sollte sein
Seriell) und Sie sehen dieses Fenster:
Serielle Schnittstelle einrichten Hier wählen wir die COM-Port-Nummer aus, die der Nummer entspricht, die auf PCs angezeigt wird. In unserem Fall heißt es STMicroelectronics Virtual COM Port (COM2). Jetzt können wir prüfen, ob eine Verbindung besteht. Klicken Sie dazu im vorherigen Dialogfeld auf die Schaltfläche Verbindung testen. Wenn alles in Ordnung ist, erhalten Sie eine Meldung wie in der folgenden Abbildung:
Und jetzt können wir sicher mit dem Interessantesten fortfahren - der Programmierung des Controllers. Diese Version unterstützt drei Sprachen: IL - Anweisungssprache, Zeichenfolgentyp. KOP - Treppenlogiksprache, visueller Anzeigetyp. SFC - Sprache aufeinanderfolgender Blöcke, visuelle Art der Anzeige. Und Sie können jederzeit zwischen der Anzeige der Sprachen IL und LAD und umgekehrt wechseln. Das Folgende ist ein typisches LAD-Programm:
Management-Programm - KOP Und hier ist das gleiche Programm, aber in der IL-Sprache:
Das ist natürlich alles gut, aber ich möchte in die Programmlogik schauen - um zu verstehen, was dort passiert. Drücken Sie dazu die Taste F3 - und wenn das Programm in die Steuerung geschrieben wird, wird das Display in den Online-Überwachungsmodus geschaltet. Um das Programm aufzunehmen, müssen Sie im Menü Online - In die Steuerung schreiben auswählen.
Das folgende Fenster wird angezeigt:
Auswahl von Projektelementen zum Schreiben in die Steuerung Wählen Sie im Fenster die Aufnahmeoptionen aus (hier werden die gesamten Programm- und Steuerungsparameter ausgewählt) und klicken Sie auf die Schaltfläche Ausführen. Das Programm benachrichtigt Sie, dass der Controller für die Aufzeichnung in den STOP-Modus geschaltet wird (dies wird durch das Erlöschen der an PC13 angeschlossenen LED angezeigt). Es zeichnet den Controller auf und versetzt ihn in den RUN-Modus.
Und so wird der Quellcode für das LAD-Programm online angezeigt:
Typ eines Programmteils in LAD-Sprache im Online-Überwachungsmodus Und das gleiche Stück eines Online-IL-Programms:
Art des Programmteils bei der IL-Online-Überwachung Und hier ist der SFC-Quellcode:
SFC - das Erscheinungsbild des Programms Zur Vereinfachung des Testens verwende ich alte Testentwicklungen der Hardware des Controllers, die aus dem einen oder anderen Grund nicht verwendet wurden. Eine dieser Karten ist in der folgenden Abbildung dargestellt:
Debug Board - Intermediate Controller Diese Karte bietet eine galvanische Trennung für UART1, UART2 und 1-Draht-Bus. Diskrete Ein- und Ausgänge sind ebenfalls galvanisch getrennt. Die folgenden Mnemoniken werden für das Programm akzeptiert: X1 ist der Eingang mit der Adresse 1, Y2 ist der Ausgang mit der Adresse 2, M104 ist der Bitoperand mit der Adresse 104, D1000 ist das allgemeine Register mit der Adresse 1000. Die im Anhang enthaltene Firmware-Version unterliegt den folgenden Einschränkungen: Die Anzahl der Programmschritte beträgt 1000 (maximal 8000).
Anzahl der Register - 2000 (Bereich D0000-D1999). Anzahl der Bitvariablen - 3072 (Bereich M0-M3071). UART1 - Unterstützung für Modbus RTU Master / Slave, Anzahl der Slaves im Master-Modus -2 (maximal möglich - 128). UART2 - Unterstützung für Modbus RTU Master / Slave, die Anzahl der Slaves im Master-Modus -2 (maximal möglich - 128).
Standardmäßig sind die seriellen Kommunikationsparameter 57600, 8N1. UART1 - im Slave-Modus mit Adresse 1, UART2 - auch im Slave-Modus mit Adresse 2.
Für den 1-Draht-Bus werden derzeit nur Sensoren wie DS18B20 unterstützt, die Anzahl der Slaves beträgt -2 (maximal 128).
Das Entladen des Programms von der Steuerung und das Konvertieren in eine für Menschen lesbare Form wird ebenfalls unterstützt (ich bevorzuge LAD).
Das Programm wird mit dem Echtzeitbetriebssystem ChibiOS RT erstellt.
Die Kommunikationseinstellungen auf den Modbus RTU- und 1-Draht-Bussen werden mit dem Programm konfiguriert, das Sie im Anhang finden. Als Beispiel betrachten wir nun das Einrichten und Suchen von Sensoren mit unbekannten Adressen. Nach dem Starten des Programms haben Sie folgendes Fenster:
Aussehen des Konfiguratorprogramms nach dem Start Gehen Sie zur Registerkarte 1-Draht und wählen Sie 1-Draht-Master aus. Klicken Sie auf die Schaltfläche In SPS schreiben, um in die Steuerung zu schreiben:
1-Draht-Assistent einrichten Nachdem Sie auf die Schaltfläche Slave suchen geklickt haben, wird ein Fenster geöffnet, in dem Sie eine Adresse im Bereich D0000-D2000 auswählen können, ab der die von den Sensoren aufgezeichneten Temperaturwerte in Form einer Gleitkommazahl aufgezeichnet werden.
1-Draht-Bus-Slave-Suchfenster Das folgende Fenster wird nach einer erfolgreichen Suche nach allen an den Datenaustauschbus angeschlossenen Sensoren angezeigt.
Slave-Suchfenster - 3 angeschlossene Temperatursensoren gefunden Hier können wir die gefundenen Sensoren zur aktuellen Konfiguration hinzufügen oder die aktuelle vollständig durch eine neue ersetzen. In unserem Fall werden die Temperaturdaten unter den Adressen D1500, D1502 und D1504 in Form einer Gleitkommazahl an den Reglerregisterbereich übertragen. Sie müssen lediglich die Taste In SPS schreiben drücken und die Karte neu starten, um die neue Hardwarekonfiguration zu aktivieren.
Herunterladen einer neuen Konfiguration auf den Controller Was kann noch über das Konfigurationsprogramm hinzugefügt werden? Es gibt einen Punkt - dies ist die Darstellung von Gleitkommazahlen im FX2N-Controller. Um die Eingabe von Konstanten in diesem Format zu vereinfachen, mussten wir einen Konstantendatensatz mit dem Modifikator H verwenden. Sobald der Controller-Interpreter auf einen solchen Modifikator stößt, versteht er, dass eine Zahl im Gleitkommaformat damit übertragen wird, jedoch in Form eines IEE754-Datensatzes mit einfacher Genauigkeit. Das Programmfenster auf der Registerkarte Konverter wird unten angezeigt.
Konvertieren Sie Gleitkommazahlenformate Fazit - was haben wir bekommen:
Es ist an der Zeit, die Frage zu stellen - aber wie schnell ist ein solcher Controller tatsächlich? Hier ist alles einfach - wenn beide Kommunikationsports über Modbus RTU (Slave-Controller - beide Ports) mit einer Geschwindigkeit von 500 kbps und einer Abfragelänge von 122 Registern abgefragt werden, 17 Temperatursensoren abgefragt werden und das „schwerste“ Programm (bestehend aus Binäroperanden) von ausgeführt wird 7745 Schritte betrug der Ausführungszyklus 21 ms. Und natürlich hat eine solche Steuerung auch Nachteile. Das erste ist, dass sich die blauen Karten in der geringen Qualität der Komponenten unterscheiden. Daher empfehle ich, die Karte vor dem Anschließen von Mini-USB mit externer Energie zu versorgen. Das zweite ist natürlich, dass es keinen nichtflüchtigen Speicher gibt (genauer gesagt, es existiert - aber nur 9 Register in dem Bereich, der von der Batterie unterstützt wird). Und Sie selbst verstehen, dass ein solches Gerät am besten nicht für kritische Anwendungen oder in der Produktion verwendet werden darf. Aber zu Hause oder zum Training - das ist das billigste, erschwinglichste und verständlichste.
Ich habe versucht, die Rezension umfangreich zu gestalten - und wenn Sie Probleme haben, schreiben Sie. Ich freue mich besonders, wenn Sie Fehler bei der Umsetzung des Programms finden. Ich hoffe, der Artikel ist informativ und Sie haben Ihre Zeit nicht damit verschwendet, ihn zu lesen.
Downloads für diesen Artikel finden Sie unten.