-
Die Erfindung betrifft ein Verfahren zum Abgleich eines berührungslos arbeitenden induktiven Näherungsschalters gemäß dem Oberbegriff des Anspruchs 1.
-
Berührungslos arbeitende Näherungsschalter werden als elektronische Schaltgeräte vor allem in der Automatisierungstechnik eingesetzt. Sie sind seit langem bekannt und werden u. a. auch von der Anmelderin hergestellt und vertrieben.
-
Sie bestehen im Wesentlichen aus einem Sensor zur Erfassung von vorzugsweise elektrischen, aber auch optischen oder sonstigen physikalischen Eigenschaften von beweglichen Objekten, wobei die Änderung der betreffenden physikalischen Größe als Maß für die Annäherung eines Objekts dient, und einer Steuereinheit, die bei Erreichen eines Schwellwertes ein vorzugsweise binäres Schaltsignal erzeugt.
-
Induktive Näherungsschalter weisen mindestens eine Sensorspule auf und können sowohl mit Stromimpulsen als auch mit kontinuierlichem, meist sinusförmigen Wechselstrom betrieben werden. Dabei kann die Spule Bestandteil eines Oszillators sein und so die Frequenz bestimmen. Andernfalls kann sie pulsförmig oder auch sinusförmig von einem Generator mit Strom versorgt werden.
-
Der Sensor kann auch als Transformator, insbesondere als Differentialtransformator aufgebaut sein und somit weitere Sende- oder Empfangsspulen aufweisen.
-
Ausgewertet wird die Änderung der Induktivität und/oder die Impedanz einer Spule, bzw. der Koppelfaktor zwischen zwei oder mehreren Spulen.
-
Wenn die Näherungsschalter bei ihrer Auslieferung einen bestimmten Schaltabstand aufweisen sollen, ist ein Abgleich unumgänglich. Um alle Einflussfaktoren, d. h. auch die bei der Endmontage und/oder der Hermetisierung durch Verguss auftretenden zu berücksichtigen, geschieht das vorteilhaft erst am Ende des Fertigungsprozesses, meistens mit einem im Näherungsschalter ohnehin vorhandenen Mikrocontroller.
-
Die
DE 198 22 744 C1 offenbart ein Verfahren zur Einstellung eines mit einer Überstrom-Überwachungseinrichtung ausgestatteten Näherungsschalters, wobei eine bestimmte Stellung eines Bedienelements in Verbindung mit einem simulierten Überstrom am Lastanschluss einen Lernvorgang auslöst, bei dem ein erster oder zur Festlegung einer Schalthysterese auch noch ein zweiter erfasster Objektabstand als Schaltgrenze (Schaltabstand) gespeichert wird, was jedoch auch unbeabsichtigt geschehen kann.
-
Aus der
DE 10 2008 024 398 A1 ist ein Verfahren zum Abgleich eines induktiven Näherungsschalters bekannt, bei dem über eine Schlüsselwortabfrage und ein Freigabesignal ein Abgleichmodus aktiviert werden kann.
-
In der
DE 10 2009 046 812 B3 wurde dieses Verfahren um ein weiteres Kriterium in Form einer Überstromabfrage ergänzt.
-
Aus der
EP 1 119 743 B1 ist ein Verfahren bekannt, das einen Näherungssensor mittels eines aus der Ferne steuerbaren digitalen Potentiometers nach dem Versiegeln des Gehäuses mit einem Epoxidharz eicht und anschließend eine Überspannung anwendet, um eine Sicherung durchzubrennen, so dass der Wert des digitalen Potentiometers nicht mehr versehentlich geändert werden kann.
-
Aus der
EP 1 806 675 A2 ist ein Verfahren bekannt, das in einem Datenspeichergerät eine im nichtflüchtigen Datenspeicher gespeicherte Datenmanipulations-Befehlssequenz beispielsweise durch „no-operation“-Befehle überschreibt und damit fähig ist, unautorisierte Datenmanipulationen sicher zu vermeiden.
-
Nachteilig am genannten Stand der Technik ist, dass eine im Gerät verbliebene, funktionsfähige Abgleich-Software auch unbeabsichtigt gestartet werden kann, was zur Änderung des Schaltabstandes oder zum Systemabsturz führen kann.
-
Die Aufgabe der Erfindung besteht darin, unbeabsichtigte oder auch böswillige Änderungen der eingestellten Parameter, insbesondere des Schaltabstandes vollständig auszuschließen, d. h. nahezu unmöglich zu machen.
-
Diese Aufgabe wird mit den kennzeichnenden Schritten des Verfahrensanspruchs 1 gelöst. Die Unteransprüche betreffen die vorteilhafte Ausgestaltung der Erfindung.
-
Der wesentliche Erfindungsgedanke besteht darin den betreffenden Speicherbereich nach dem erfolgreichen Abgleich zu löschen, insbesondere zu überschreiben.
-
Zu diesem Zweck wird die ermittelte Abgleichschwelle in einem nichtflüchtigen Speicher abgelegt, und der Code des Programmspeichers anschließend durch den Mikrocontroller modifiziert. Hierbei werden Teile des Codes überschrieben, so dass ein an den neuen Programmablauf angepasster Code entsteht.
-
Das kann entweder durch Modifikation eines bedingten Sprunges oder durch sukzessives Löschen von Teilen des Programmablaufcodes geschehen.
-
Bei einem bedingten Sprung wird normalerweise der Inhalt eines Speichers (RAM) mit einem Wert verglichen, und anhand dieses Vergleichs die Entscheidung gefällt, welcher Programmzweig im weitern Programmablauf genutzt werden soll. Erfindungsgemäß wird der Teil des Codes, der die Entscheidung der Verzweigung trifft, so modifiziert, dass keine Verzweigung zu mehreren Programmteilen, sondern nur noch ein spezifischer Programmzweig vorhanden ist. Bei der Modifikation ist ein Sicherheitsaspekt zu beachten. Es darf niemals ein undefinierter Codezustand generiert werden, insbesondere, wenn die Modifikation nicht korrekt abgeschlossen ist. Es ist dafür zu sorgen, dass immer ein definierter Programmablauf bestehen bleibt. Genau das gewährleistet der erfindungsgemäße Modifikationsvorgang.
-
Je nach der Architektur des Controllers lassen sich nur Blöcke von mehreren Flash-Wörtern im Ganzen bearbeiten. Dazu wird zunächst der gesamte Block gelöscht (alle Bits zu 1) und anschließend die Daten geschrieben (notwendige Bits zu 0). Wird ein solcher Schreibzugriff durch unvorhergesehene Einflüsse nicht korrekt beendet, kann der Speicherblock in einem undefinierten Zustand zwischen gelöscht bis teilweise geschrieben sein. Um das zu vermeiden wird der Umstand genutzt, dass durch den Schreibvorgang nur Bits von logisch 1 zu logisch 0 geändert werden können. Nun wird der Block selbst, ausgenommen das zu modifizierende Wort, ohne eine vorhergehende Löschung mit 0xFF beschrieben (alle Bits mit 1). Dadurch bleiben die Daten aller Wörter des Blockes über den gesamten Schreibvorgang erhalten. Lediglich bei dem zu ändernden Wort werden ein oder mehrere Bit von logisch 1 zu logisch 0, wodurch natürlich der Befehl geändert wird. Ziel ist es den Befehl zu einer „No Operation (NOP)“ zu modifizieren, welcher zwar ausgeführt wird, aber keine Änderungen am Speicher/Register durchführt, und somit auch keinen Einfluss auf den Programmablauf hat. Hier ein Bespiel für einen „Pseudo-Code bedingten Sprung”:
Line | Code |
1. | State_Machine_Var – State_X0 |
2. | SKIP_NEXT_COMMAND_IF_FLAG_ZERO_CLR |
3. | Call funcState_X0 |
4. | Call funcState_X1 |
-
Dieses Beispiel zeigt einen bedingten Sprung der zwischen den Programmzweigen State_X0 und State_ X1 entscheidet. Unter Berücksichtigung eines immer definierten Programmablaufes muss zunächst die Zeile 2 modifiziert werden. Die Zeilen 1, 3 und 4 werden nicht verändert. So bleibt selbst bei einem nicht beendeten Schreibvorgang ein gültiger Programmablauf bestehen, weil die Bedingung entweder noch nicht modifiziert ist, oder zu einem NOP geändert wurde. Damit ist sicher, dass der Zweig funcState_X0 angesprungen wird.
-
Ein weiterer Aspekt bei bedingten Sprüngen ist, dass die Werte zunächst von einem nichtflüchtigen Speicher in den RAM übertragen werden. Je nach Architektur des Mikrocontrollers, muss zur Prüfung des Datums dieser Wert nochmals vom RAM in ein Arbeitsregister kopiert werden. Erfindungsgemäß wird stattdessen der Wert mit einem Load-Befehl direkt in das Arbeitsregister/RAM geschrieben, so dass weniger Kopiervorgänge notwendig sind, was die Anzahl der Fehlerquellen reduziert. Dazu wird die bereits oben beschriebene Verfahrensweise angewandt. Nun wird im Originalcode ein Wert 0xFF mit einem „direkt Load“ Befehl in das Arbeitsregister/Ram (State0) geschrieben. Durch Kippen der einzelnen Bits können so bis zu 8 Werte (bei einer 8 Bit Architektur) generiert werden (State0 = 0xFF zu State7 = 0x00). Das lässt sich auch auf Architekturen mit mehr als 8 Bit anwenden, wodurch auch mehr Zustände möglich sind.
-
Beim sukzessiven Löschen ist der Programmablauf von Anfang an vollständig auf die eigentliche Näherungsschalter-Funktionalität ausgelegt. Die für den Abgleich notwendigen Programmteile werden als zusätzliche Segmente angefügt und nach dem erfolgreichen Abgleichvorgang gelöscht, so dass am Ende nur noch die gewünschte Software vorhanden ist. Hier ein Bespiel für sukzessives Löschen:
Line | Code |
1. | Initialisiere Peripherie |
2. | Call funcTemperaturReferenz |
3. | Call funcAbgleich |
4-x. | Näherungsschalterbetrieb |
-
In diesem Beispiel wird nicht anhand einer Variablen entschieden, welcher Programmzweig angesprungen werden soll, sondern es werden Funktionen nach einander abgearbeitet. Durch sukzessives Überschreiben der Zeile 2 und 3 startet das Gerät letztlich immer als Näherungsschalter. Dabei ist natürlich auch der o. g. Sicherheitsaspekt zu beachten. Aus diesem Grund werden die zum Abgleich notwendigen Programmteile in Funktionen gekapselt. Im Programmablauf gibt es nur noch Funktionsaufrufe (Call-Befehle). Durch sukzessives Überschreiben der Call-Befehle wird sichergestellt, dass zusätzlicher Programmcode nicht mehr ausgeführt wird. Nun kann in einem zweiten Schritt der nicht mehr benötigte Funktionscode gefahrlos gelöscht werden. Diese Verfahrensweise erlaubt die Einbindung nahezu beliebig vieler zusätzlicher, jeweils in einer Funktion gekapselter Programmteile, die sukzessiv wieder aus dem Ablauf ausgeschlossen werden können.
-
Beide Verfahrensweisen erlauben das gefahrlose Überschreiben von essentiellen Teilen des Programmspeichers unter Ausschluss weiterer Modifikationen durch den Mikrocontroller. Das Verfahren ist prinzipiell für alle Mikrocontrollertypen geeignet, insbesondere für den PIC12LF1501, den PIC16LF1503 und auch den PIC16F1704.
-
Die Erfindung wird anhand der Zeichnung näher erläutert.
-
1 zeigt das Schaltbild eines erfindungsgemäßen induktiven Näherungsschalters,
-
2 zeigt den Programmablauf bei Modifikation eines bedingten Sprunges,
-
3 zeigt den Programmablauf bei sukzessiver Löschung.
-
Die
1 zeigt die wesentlichen Baugruppen des induktiven Näherungsschalters
1 in einem Blockschaltbild. Die Sensorspule
2 bildet mit dem Kondensator C einen Schwingkreis, der von einer als negativer Widerstand wirkenden Oszillatorschaltung
3 gespeist, d. h. entdämpft wird. Dargestellt ist eine Stromspiegelschaltung, die keine Spulenanzapfung benötigt und im unteren Stromspiegel eine komfortable Abgleichmöglichkeit durch einen Widerstand RA bietet. Der obere Stromspiegel dient zur Rückkopplung. Näheres ist in der
DE 196 50 793 C1 offenbart.
-
Die Auswerteschaltung 4 steuert die Oszillatorschaltung 3, insbesondere deren Amplitude über den Abgleichwiderstand RA, beispielsweise in einem elektronischen Potentiometer 7, oder auch einer vom ASIC 8 gesteuerten Widerstandsmatrix.
-
Die Oszillatorschaltung 3 und die Auswerteschaltung 4 sind gemeinsam in einem kundenspezifischen Schaltkreis (ASIC) untergebracht, ohne die Erfindung darauf zu beschränken. Der ASIC enthält neben dem dargestellten Trigger mindestens noch ein Gleichrichter, einen Tiefpass und einen Logikbaustein zur Steuerung.
-
Da der Oszillatorstrom durch den Abgleichwiderstand RA festgelegt ist, fällt die Amplitude bei Anwesenheit einer Schaltfahne im Überwachungsbereich, was bei Unterschreitung einer vorgegeben Schaltschwelle zur Erzeugung eines binären Schaltsignals führt. Das Schaltsignal wird über die Schaltausgänge 9 ausgegeben, die als antivalente Schaltausgänge dargestellt sind, ohne die Erfindung darauf zu beschränken.
-
Darüber hinaus können mit Hilfe verschiedenfarbiger LEDs Lichtsignale erzeugt werden, die den Schaltzustand, einen Fehler, oder den erfolgten Abgleichvorgang signalisieren.
-
Die zur Auswertung der Amplitude und zur Erzeugung eines binären Schaltsignals mit dem dargestellten Schwellwertschalter und im ASIC 8 notwendigen Schritte werden als dem Fachmann bekannt vorausgesetzt.
-
Das zum erfindungsgemäßen Abgleich notwendige (Programm-)Segment 6 ist im Speicher 5 abgelegt, und wird entweder beim erstmaligen Zuschalten der Betriebsspannung oder durch einen Befehl am Steuer-Ein- und Ausgang S gestartet.
-
Beschreibung eines erfindungsgemäßen Abgleichvorgangs:
-
Der fertige Näherungsschalter 1 wird mit einer im gewünschten Schaltabstand SA befindlichen, hier nicht dargestellten Norm-Schaltfahne konfrontiert.
-
Der im elektronischen Potentiometer 7 befindliche Abgleichwiderstand RA wird nun auf seinen Maximalwert eingestellt, und so lange verkleinert, bis die gleichgerichtete Amplitude an der Sensorspule 2 den Schwellwert des dargestellten Triggers erreicht. Natürlich kann dieser erste Schritt auch mit dem kleinsten Abgleichwiderstand RA beginnen oder als Intervallschachtelung ablaufen.
-
Das Erreichen der Schaltschwelle wird entweder einem Bediener mit einer der LEDs angezeigt, oder über den Steuer-Ein- und Ausgang S an einen Abgleichautomaten gemeldet, der für die Entfernung der Schaltfahne sorgt, was mit einer Erhöhung der Amplitude verbunden ist.
-
Anschließend wird der Abgleichwiderstand RA auf die o. g. Weise bis zum erneuten Erreichen der Schaltschwelle verändert.
-
Nun wird geprüft, ob der Abstand zwischen den Abgleichwerten am Potentiometer 7 für den sicheren Betrieb ausreicht. Falls das so ist, wird der erfolgreiche Abgleich über eine LED und/oder den Steuer-Ein- und Ausgang S signalisiert.
-
Erfindungsgemäß wird das oben beschriebene, als Datei im Speicher 5 abgelegte (Programm-)Segment 6 nun unbrauchbar gemacht, um einen erneuten Abgleich unmöglich zu machen, was nach den verschiedenen Ausgestaltungen der Erfindung durch ein teilweises Überschreiben der Datei, optional erst nach Eingabe eines Codewortes über den Steuer-Ein- und Ausgang S geschehen kann. Die dazu notwendige Software kann im Speicher 5 oder in einem Mikrocontroller abgelegt sein. Der Speicher 5 kann auch Bestandteil eines Mikrocontrollers sein.
-
Natürlich wird auch eine Schalthysterese H festgelegt, die das bekannte „Flattern“ des Schaltausgangs A bei einer im Schaltabstand SA befindlichen Schaltfahne verhindert, wobei der mit dem Erreichen der Schaltschwelle verbundene Abstand eines Norm-Targets als Schaltabstand SA definiert ist.
-
Die 2 zeigt den Programmablauf bei der Modifikation eines bedingten Sprunges. Vor der Modifikation des Programmcodes (links) wird anhand eines (Datums-)Werts entschieden, welcher Modus ausgeführt (angesprungen) wird. Nach der Modifikation (rechts) ist diese Bedingung aufgelöst, so dass der Programmablauf nun gezwungen ist, den Näherungsschalter-Betrieb auszuführen. Die restlichen State-Machine Verzweigungen können je nach Sicherheitsaspekt ebenfalls modifiziert werden, oder auch im Speicher verbleiben, da dieser Code nun nicht mehr ausgeführt werden kann. Für den Fall, dass so etwas aus unvorhersehbaren Gründen dennoch geschieht, werden essentielle Teile der Schreib-Funktion zusätzlich gelöscht, so dass der Inhalt des nichtflüchtigen Speichers nicht mehr verändert werden kann. Somit wird erfindungsgemäß jede wie auch wie immer geartete, oft durch massive elektromagnetische Störungen EMV verursachte fehlerhafte Verzweigung des Programms beim Neustart des Gerätes korrigiert.
-
Die 3 zeigt den Programmablauf bei sukzessiver Löschung, wobei sich der nicht modifizierte Code auf der linken Seite befindet. Während des Starts, oder auch im laufenden Näherungsschalterbetrieb werden die symbolisch dargestellten Funktionen aufgerufen. Dem Erfindungsgedanken folgend, werden nicht mehr benötigte Aufrufe durch Löschung der zugehörigen Verzweigungen unbrauchbar gemacht (rechts). Je nach Sicherheitsaspekt kann auch hier, nachdem der Aufruf modifiziert wurde, die gesamte Funktion noch zusätzlich geändert werden, so dass selbst bei fehlerhaften Aufrufen des Programmcodes durch äußere Einflüsse wie elektromagnetische Störungen der Programmablauf immer kontrolliert in den Näherungsschalterbetrieb zurückgeführt wird.
-
Bezugszeichenliste
-
- 1
- Induktiver Näherungsschalter
- 2
- Sensorspule
- 3
- Oszillatorschaltung
- 4
- Auswerteschaltung
- 5
- Speicher, Datenspeicher, EPROM, µC
- 6
- Programm-Segment zur Einstellung des Schaltabstandes, Datei, Algorithmus
- 7
- Elektronisches Potentiometer zur Einstellung des Schaltabstandes
- 8
- Auswerteschaltkreis mit Oszillator, Trigger und Logikteil, optional ein ASIC
- 9
- Elektronische Schalter zur Erzeugung des (antivalenten) binären Schaltsignals
- A
- Binärer Schaltausgang
- RA
- Abgleichwiderstand
- S
- Steuer-Ein- und Ausgang, (Steuerpin, Steuerport)