Share this

Miniatur-Programmierbare Steuerung, gesteuert durch einen AT89C51-Mikrocontroller

2026-02-21 13:00:27 · · #1
Zusammenfassung: Dieser Artikel stellt das Designkonzept, die Hardwarekonfiguration und die Softwareentwicklungsmethode einer mikroprogrammierbaren Steuerung (SPS) vor, die mit dem Mikrocontroller AT89C51 realisiert wurde. Abschließend wird ein Anwendungsbeispiel dieser Mikro-SPS zur Füllstandsregelung eines Wasserturms vorgestellt. Schlüsselwörter: SPS, Mikrocontroller, Abtaststeuerung. Eine programmierbare Steuerung (SPS) ist, im Gegensatz zu einem PC, ein Mikrocontroller, der mithilfe fortschrittlicher Mikrocontroller-Technologie Echtzeit-E/A-Erkennung und -Steuerung auf Basis bewährter und effektiver Relaissteuerungskonzepte und -designideen ermöglicht. Sie zeichnet sich durch hohe Zuverlässigkeit, einfache Programmierung und leichte Erlernbarkeit aus und findet daher breite Anwendung. Die Integration der SPS-Technologie in die Elektrotechnik und die Antriebstechnik ist eine wichtige Maßnahme zur Modernisierung der Lehrpläne. Trotz begrenzter Lehrmittel haben wir eine LD-Mikro-SPS mit dem Mikrocontroller AT89C51 als Kern entwickelt und in Relaissteuerungsexperimenten erfolgreich eingesetzt. Eine mit einem Mikrocontroller realisierte SPS ist im Wesentlichen ein mikrocontrollerbasiertes Mess- und Steuerungssystem. Die Ausführung eines Kontaktplanprogramms zur Relaissteuerung mittels eines computergesteuerten Systems stellt eine Herausforderung dar. Da die im Kontaktplan gesteuerten elektrischen Geräte parallel arbeiten, die im Computerprogramm jedoch sequenziell, sind die beiden Ansätze inkompatibel. Die einfache sequentielle und Echtzeit-Erfassung der Eingangszustände, wie sie in mikrocontrollerbasierten Steuerungssystemen üblich ist, führt nicht zum gewünschten Ergebnis. Daher müssen alle Eingangszustände gleichzeitig erfasst und in einem Eingabepuffer gespeichert werden. Anschließend werden, entsprechend der logischen Beziehung der Kontaktplanzeilen, die entsprechenden Eingangszustände aus dem Eingabepuffer gelesen, verarbeitet und die Ergebnisse im Ausgabepuffer gespeichert. Nach Ausführung aller Kontaktplanzeilen werden die Werte im Ausgabepuffer gleichzeitig an die entsprechenden Ausgänge ausgegeben, wodurch ein Programmzyklus abgeschlossen ist. Dieser Prozess wiederholt sich automatisch für die nächste Erfassungsrunde der Eingangszustände. Dieses Verfahren wird als Scanmodus bezeichnet und koordiniert den sequentiellen Programmablauf mit dem parallelen Betrieb der elektrischen Geräte. Die Ausführungszeit eines einzelnen Mikrocontroller-Befehls liegt im Mikrosekundenbereich, während die Ausführungszeit eines Scanzyklus mehrere Millisekunden oder sogar einige zehn Millisekunden beträgt. Verglichen mit der Betriebsdauer elektrischer Geräte ist der Scanzyklus kurz. Es kann davon ausgegangen werden, dass der Zustand der Eingangsanschlüsse innerhalb eines Scanzyklus unverändert bleibt und die Erfassung und Verarbeitung ihrer Zustandsänderungen in Echtzeit erfolgt, wodurch die Anforderungen der Echtzeitsteuerung erfüllt werden. Die Systemhardware basiert auf dem Mikrocontroller AT89C51 (im Folgenden als 51 bezeichnet), wie in Abbildung 1 dargestellt. Dieser Mikrocontroller verfügt über 4 KB Flash-Speicher, wodurch ein erweiterter Programmspeicher überflüssig wird. Seine vier I/O-Ports mit insgesamt 32 I/O-Pins stehen dem Benutzer zur Verfügung. Die Pins P0.7–0.0 und P2.4–2.0 (insgesamt 13 Pins) sind nach optokopplerischer Trennung mit den entsprechenden Eingangsanschlüssen X07–X00 und X14–X10 verbunden. Eingaben können über Endschalter, Pegelschalter, Hall-Schalter und manuelle Taster erfolgen. Ist ein Schalter eingeschaltet, ist der entsprechende Pin auf „0“ gesetzt, was invertiert und im Eingangspuffer gespeichert wird. Acht Pins, P1.7 bis P1.0, dienen der Ausgangssteuerung: Ist P1.i auf „0“ gesetzt, wird der zugehörige PNP-Transistor eingeschaltet, die Spule des Relais Ji erregt und dessen Kontakt Y5i geschlossen. Dadurch kann eine Last von 220 V/3 A angesteuert werden. Zur Kommunikation mit einem PC ist das System mit einer RS-232C-Schnittstelle ausgestattet. Die RXD- und TXD-Signale des Mikrocontrollers 51 werden nach der RS-232C-Pegelwandlung an eine 9-polige Buchse angeschlossen. Dies ermöglicht die serielle Kommunikation mit einem PC. Im Programmiermodus kann das System den OBJ-Befehlscode vom Ladder-Diagramm-Assembler des PCs empfangen und im Programmspeicher ablegen. Im Betriebsmodus sendet es den Status der I/O-Ports und die Verarbeitungsergebnisse in Echtzeit an den Host-Computer. Der Programmspeicher verwendet einen X25045-Chip mit SPI-Schnittstelle. Dieser E2PROM verfügt über einen programmierbaren Watchdog und eine Leistungsüberwachungsfunktion. Er bietet 512 Byte Speicherkapazität, wobei jedes Byte 100.000 Mal gelöscht und beschrieben werden kann. Die Daten können für 100 Jahre gespeichert werden. Beim Einschalten wird automatisch ein 200 ms langer High-Pegel-Reset-Impuls ausgegeben. Der E2PROM verfügt über drei programmierbare Watchdog-Zyklen und gibt automatisch einen Reset-Impuls aus, wenn die Versorgungsspannung unter den kritischen Wert fällt (VCC). Durch die Verwendung der seriellen Peripherieschnittstelle SPI (dreiadrig) werden I/O-Leitungen und Platinenplatz gespart, was die Systemkosten senkt. Daher bietet dieser Chip ein hervorragendes Preis-Leistungs-Verhältnis. Die Softwareentwicklung ist in zwei Teile gegliedert: eine Software zur Kompilierung des PC-Leiterdiagramm-Assemblerprogramms und eine Mikrocontroller-Software. Erstere ist in IBM-PC-Assemblersprache geschrieben und wird daher als SPS-Kompilierungssoftware bezeichnet. Wir haben ein eigenes SPS-System mit Kontaktplan-Assemblersprache entwickelt. Dieses umfasst 16 Basisbefehle wie LD/LDI, AN/ANI, OR/ORI, TM/TMI, CN/CNI, MA/MAI, OUT, JP/JE und END sowie Geräte wie X00–07, X10–14, Y00–07, CN0–1, TM00–07, MA00–07 und 10–17. Mit diesen Befehlen wird der Kontaktplan beschrieben, d. h. das Kontaktplan-Assemblerprogramm erstellt. Die Quellprogrammdatei wird mithilfe einer Vollbild-Editorsoftware am PC erstellt. Anschließend wird sie von der SPS-Kompilierungssoftware in eine SPS-Zielprogrammdatei (OBJ-Datei) kompiliert und über die serielle Schnittstelle an den Mikrocontroller gesendet. Dieser schreibt sie in den E2PROM. Die Mikrocontroller-Software besteht aus Programmier- und Laufzeitsoftware. Die Programmiersoftware besteht im Wesentlichen aus zwei Modulen: serieller Kommunikation und dem Beschreiben des E2PROMs. Der manuelle Schalter auf dem Bedienfeld muss auf P2.7="0" gestellt sein, um den Mikrocontroller in den Programmiermodus zu versetzen. Bei P2.7="1" befindet sich der Mikrocontroller im Betriebsmodus. Die wichtigsten Programme im Betriebsmodus sind: (1) Eingabeerfassungsmodul: Dieses Modul erfasst den Status der Ports P0 und P1 zweimal. Sind beide Ergebnisse gleichzeitig gültig, werden sie im Eingabepuffer gespeichert. Andernfalls werden sie erneut erfasst. Die Störfestigkeit wird durch Softwarefilterung verbessert. (2) Befehlsanalysemodul: Dieses Modul beginnt an Adresse 000H und liest den Byte-Inhalt des E2PROMs sequenziell. Zuerst wird der Opcode gelesen, analysiert und anschließend zum entsprechenden Verarbeitungsprogramm gesprungen. Danach wird der Operand für die Ausführung des Verarbeitungsprogramms gelesen, wodurch die Ausführung eines Kontaktplan-Assemblerbefehls abgeschlossen wird. Anschließend liest es den Opcode des nächsten Befehls. Sobald es auf den OUT-Befehl stößt, speichert es die auszugebenden Daten im entsprechenden Ausgabepuffer. (3) Ausgabemodul: Wenn die CPU den Binärcode des END-Befehls aus dem E2PROM liest, ist ein Scanzyklus abgeschlossen. Der Inhalt des Ausgabepuffers wird sofort an Port P1 ausgegeben, wodurch die Aktualisierung des Ausgabeanschlusses abgeschlossen ist. Die Anwendung dieser SPS lässt sich am Beispiel der Wasserstandsregelung eines Wasserturms veranschaulichen. Abbildung 2(a) zeigt den Hardware-Schaltplan. SB1/SB2 sind Start-/Stopp-Taster; SAC ist der Wasserstandsschalter: Er ist eingeschaltet, wenn Wasser im Tank ist, und ausgeschaltet, wenn kein Wasser vorhanden ist; SAH und SAL sind die Hoch- bzw. Niedrigpegelschalter des Wasserturms; M ist der Wasserpumpenmotor. Abbildung 2(b) zeigt das Relais-Leiterdiagramm und Abbildung 2(c) das Relais-Programm, d. h. das Quellprogramm der SPS vom Typ TD. Y50 ist der SPS-Ausgangsanschluss. Wir verwenden den Softwarekontakt Y50 als Marker für den Anstieg oder Abfall des Wasserstands: Y50 = „0“ bedeutet, dass der Motor gestoppt hat und der Wasserstand gesunken ist. In diesem Fall ist der Motor trotz angeschlossener SAL-Verbindung nicht in Betrieb. Y50 = „1“ bedeutet, dass der Motor Wasser pumpt und der Wasserstand steigt. In diesem Fall wird SAL angeschlossen, der Motor eingeschaltet und pumpt weiter, bis der Wasserstand einen hohen Wert erreicht hat. Referenzen: 1. Zhu Shanjun et al. Principles, Applications, and Maintenance of Programmable Control Systems. Beijing: Tsinghua University Press. 2. Wang Furui. Complete Design of Single-Chip Microcomputer Measurement and Control Systems. Beijing: Beijing University of Aeronautics and Astronautics Press, 1998. Technische Daten übernommen von:
Read next

Produktionsautomatisierungs-Überwachungssystem der Hunan Tianlong Rice Industry Co., Ltd.

Zusammenfassung: Dieser Artikel beschreibt die automatische Steuerung einer Reisraffinerieanlage mithilfe der speicherpr...

Articles 2026-02-20