[0001] Die Erfindung betrifft eine Softwareschutzvorrichtung für eine Textilmaschine sowie eine Textilmaschine, welche zum Zusammenwirken mit einer derartigen Vorrichtung ausgebildet ist. Die Vorrichtung kann als multifunktionales Gerät konzipiert bzw. realisiert werden, d.h. sie kann zusätzlich mit Software bzw. Vorrichtungen versehen werden, welche die Erfüllung anderer Anforderungen, z. B. die Speicherung bzw. Wiedergabe von maschinenspezifischen Daten, ermöglicht.
Stand der Technik
[0002] Praktisch jede Textilmaschine wird heute als eine Maschine mit einer programmierbaren Steuerung hergestellt, d.h. die Maschine ist mit mindestens einem (normalerweise mit mehreren) Rechner versehen und braucht Software, um diese(n) Rechner betreiben zu können. Mit der fortschreitenden Entwicklung dieser "intelligenten" Maschinen steigen ständig die Anforderungen an die Software, insbesondere an die Software, die eigens für die Maschine vorgesehen ist und vom Maschinenhersteller durch Eigenentwicklung und/oder Auftragsentwicklung ("proprietary" Software) zur Verfügung gestellt werden muss. Damit steigt auch die Versuchung, derartige Software zu kopieren bzw. ohne Befugnisse zu verwenden.
[0003] Diese Situation ist in der Software-Industrie allgemein schon lang bekannt und es sind für grössere Computer-Netzwerke Konzepte entwickelt worden, mittels eines sogenannten "Dongles", die nicht-autorisierte (Mit-)Benutzung zu unterbinden. Es sind aber keine Produkte käuflich erhältlich, die für den Softwareschutz in einzelnen industriellen Produkten, wie Textilmaschinen, konzipiert bzw. geeignet sind.
[0004] Weiter ist es bekannt, gewisse, einer bestimmten Maschine zugeordneten (Kennzeichnungs-)Daten in einem speziell dafür vorgesehenen Speicher abrufbar abzulegen. In der EP-A-1 194 887 ist z.B. vorgeschlagen worden, ein traditionelles Typenschild (Träger für schriftliche und/oder grafische Informationen) mit einer elektronischen Speichereinrichtung zusammenzufassen. Zu diesem Zweck soll das Typenschild mit einem Speicherchip versehen werden, welcher insbesondere dazu benutzt werden soll, Informationen über den Betrieb der Maschine nach deren Fertigstellung zu speichern, wie z.B. Laufzeit, Drehzahlen und Belastung.
[0005] Bei bekannten Textilmaschinen, bei denen maschinenspezifische Daten, wie etwa Seriennummer, Konfiguration, Softwareversion und/oder Betriebsstunden elektronisch gespeichert werden, erfolgt die Speicherung innerhalb der Steuerung bzw. einer Komponente der Steuerung der Textilmaschine. Bei einem Defekt der Steuerung sind diese maschinenspezifischen Daten häufig nicht mehr auslesbar. Nach einer Reparatur bzw. einem Austausch der Steuerung ist es dann sehr aufwendig, diese maschinenspezifischen Daten zu erneuern.
[0006] Weiterhin ist es üblich, Textilmaschinen mit Betriebsstundenzählern zu versehen. Die Betriebszeit kann beispielsweise als Grundlage für Wartungspläne oder, falls die Textilmaschine vermietet wird, für die Berechnung von Mietpreisen dienen. Die bisher bekannten, vorwiegend elektrisch oder mechanisch ausgebildeten Betriebsstundenzähler sind jedoch verhältnismässig leicht manipulierbar, da lediglich die Zufuhr des der Betriebsstundenzählung zugrunde liegende Eingangssignal des Betriebsstundenzählers unterbrochen werden muss.
[0007] Aufgabe der vorliegenden Erfindung ist es, die genannten Nachteile des Standes der Technik zu beseitigen. Insbesondere soll ein wirksamer Schutz der Software einer Textilmaschine erzielt werden. In bevorzugten Ausführungen der vorliegenden Erfindung werden elektronische "Typenschild"-Konzepte mit der vorerwähnten Softwareschutz-Funktion vorteilhaft kombiniert. Dabei soll eine steuerungsunabhängige Abspeicherung maschinenspezifischer Daten in Kombination mit einer Softwareschutzvorrichtung vorgeschlagen werden. Aufgabe einer weiteren Ausführungsform der vorliegenden Erfindung ist es, in Verbindung mit einer Softwareschutzvorrichtung eine verbesserte Betriebsstundenzählung bei einer Textilmaschine vorzuschlagen.
[0008] Die Aufgabe wird gelöst durch eine Softwareschutzvorrichtung mit den Merkmalen des Patentanspruches 1, eine Textilmaschine mit den Merkmalen des Anspruches 22 und durch ein Steuerungsverfahren mit den Merkmalen des Anspruches 29.
[0009] Die erfindungsgemässe Softwareschutzvorrichtung für eine Textilmaschine mit einer programmierbaren Steuerung weist einen Datenspeicher zur Aufnahme von Softwarefreigabedaten und eine Datenschnittstelle auf, welche zur Datenübertragung zwischen dem Datenspeicher und der Steuerung der Textilmaschine an die Steuerung der Textilmaschine verwendbar ist. Softwarefreigabedaten sind Daten, welche von einer programmierbaren Steuerung zum Aufrufen einer bestimmten Software erforderlich sind. Sofern die erfindungsgemässe Softwareschutzvorrichtung an die betreffende Textilmaschine angebunden ist, können die in dem Datenspeicher hinterlegten bzw. abgespeicherten Softwarefreigabedaten an die Steuerung übertragen werden, welche dann in der Lage ist, eine bestimmte Softwareoption aufzurufen bzw. zu starten.
[0010] Mittels der erfindungsgemässen Softwareschutzvorrichtung ist es möglich, verschiedene Programmversionen oder verschiedene Programmkomponenten der Textilmaschine selektiv freizugeben. Hierzu ist es lediglich erforderlich, im Datenspeicher selektive Softwarefreigabedaten zu hinterlegen. Die erfindungsgemässe Softwareschutzvorrichtung kann grundsätzlich in Verbindung mit jeder Textilmaschine eingesetzt werden, welche eine programmierbare Steuerung aufweist. Hierbei ist es unerheblich, ob die Steuerung zentral oder dezentral mit mehreren Steuerungskomponenten ausgebildet ist. Wesentlich ist lediglich, dass die Schutzvorrichtung und die Steuerung der Textilmaschine aufeinander abgestimmt sind.
[0011] Vorteilhafterweise weist die Softwareschutzvorrichtung einen Mikrocontroller zur Steuerung der Datenübertragung und/oder zur Verarbeitung von ein- oder abgehenden Daten auf. Mittels eines Mikrocontrollers lassen sich auf kostengünstige und einfache Weise eine Vielzahl von Funktionen der Softwareschutzvorrichtung verwirklichen. Der Mikrocontroller wird durch eine eigene Software der Softwareschutzvorrichtung gesteuert, welche derart gestaltet ist, dass es einem Dritten unmöglich ist, einen funktionstüchtigen Nachbau der Softwareschutzvorrichtung herzustellen. Auch ist die Software so zu gestalten, dass es einem Dritten unmöglich ist, hinterlegte Softwarefreigabedaten auszulesen.
[0012] Dabei ist es vorteilhaft, wenn die Software, welche die Mikrocontroller steuert, in einem OTP-Speicher abgelegt ist. Die Verwendung eines nur einmal beschreibbaren OTP-Speichers stellt sicher, dass Dritte in unbefugter Weise eine eigene Software in die Softwareschutzvorrichtung einspielen, welche einen Missbrauch, insbesondere das Auslesen der hinterlegten Softwarefreigabedaten, ermöglichen könnte.
[0013] Vorteilhafterweise sind die Softwarefreigabedaten und wenn gewünscht auch weitere Daten in dem Speicher der Softwareschutzvorrichtung verschlüsselt gespeichert bzw. hinterlegt. In diesem Fall können diese Daten auch dann nicht durch unberechtigte Dritte in Besitz gebracht werden, wenn diese den Speicher aus der Softwareschutzvorrichtung herausnehmen und durch ein entsprechendes Werkzeug auslesen.
[0014] Zur weiteren Verbesserung des Softwareschutzes ist es vorteilhaft, wenn der Mikrocontroller zur Verschlüsselung abgehender Daten, insbesondere von Freigabedaten und/oder zur Entschlüsselung verschlüsselt eingehender Daten ausgebildet ist. So ist es nicht möglich, dass Dritte den Datenverkehr zwischen der Softwareschutzvorrichtung und der Textilmaschine zum Zwecke des Missbrauchs analysieren können. Prinzipiell kann jedes bekannte Verschlüsselungsverfahren zum Einsatz kommen, wesentlich ist lediglich, dass die Verschlüsselungsverfahren von Textilmaschinen und Softwareschutzvorrichtung kompatibel sind.
[0015] Wenn es gewünscht ist, die Softwareschutzvorrichtung in einer räumlichen Distanz von der jeweils betroffenen Textilmaschine anzuordnen, beispielsweise also in einer Anlagenzentrale, von der aus mehrere Textilmaschinen überwacht werden, so kann die Softwareschutzvorrichtung so ausgebildet sein, dass sie über eine Punkt-zu-Punkt-Verbindung an die Textilmaschine anbindbar ist. Hierzu kann die Datenschnittstelle der Softwareschutzvorrichtung beispielsweise als Modem oder als ISDN-Schnittstelle ausgebildet sein.
[0016] Vorteilhafterweise kann die Anbindung über ein vorhandenes Datennetz erfolgen. Hierzu ist prinzipiell jedes Nahverkehrs- oder Weitverkehrsnetzwerk geeignet, wobei die Softwareschutzvorrichtung dann mit einer an das jeweilige Datennetz angepassten Datenschnittstelle ausgerüstet ist. In besonders vorteilhafter Weiterbildung ist die Softwareschutzvorrichtung derart ausgebildet, dass sie an eine intern bestehende Datenverbindung der Textilmaschine anbindbar ist. Hierbei ist insbesondere an einen Maschinenbus zu denken. Die Anbindung kann dann an einem beliebigen Punkt der Textilmaschine erfolgen, an dem der Maschinenbus zugänglich ist.
[0017] Wenn der Maschinenbus der Textilmaschine ein CAN-Bus ist, so ist es besonders vorteilhaft, wenn der Mikrocontroller der Softwareschutzvorrichtung einen integrierten CAN-Controller aufweist und die Datenschnittstelle ein CAN-Treiber ist. In diesem Fall kann die Datenverbindung zwischen Steuerung der Textilmaschine und der Softwareschutzvorrichtung in besonders einfacher und kostengünstiger Weise realisiert werden.
[0018] Vorteilhaft hierbei ist es, wenn die Datenschnittstelle zur galvanisch getrennten Einbindung in die Datenverbindung der Textilmaschine ausgebildet ist. Hierdurch können Probleme durch ein unterschiedliches elektrisches Potenzial zwischen Softwareschutzvorrichtung und Textilmaschine vermieden werden.
[0019] Grundsätzlich kann jeder bekannte Speichertyp zur Speicherung der Softwarefreigabedaten verwendet werden. Besonders vorteilhaft ist es jedoch, wenn ein nicht flüchtiger Speicher, insbesondere ein serieller FRAM verwendet ist. Ein FRAM (ferromagnetischer RAM) eignet sich insbesondere zur sicheren Langzeitspeicherung von Daten, da er zur Speicherung von Daten keine Energieversorgung benötigt, also nicht flüchtig ist.
[0020] Vorteilhafterweise sind der Datenspeicher, der Mikrocontroller und die Datenschnittstelle auf einer gemeinsamen Platine angeordnet. Hierdurch lässt sich eine besonders kompakte Bauform realisieren. Auch wird so eine erhöhte mechanische Stabilität der Softwareschutzvorrichtung gewährleistet.
[0021] Weiterhin ist es vorteilhaft, wenn ein Gehäuse mit Befestigungsmitteln zum Anbringen der Softwareschutzvorrichtung an der Textilmaschine vorgesehen ist. Das Gehäuse schützt die Elektronik der Softwareschutzvorrichtung vor äusseren Einflüssen, welche beim bestimmungsgemässen Gebrauch der Softwareschutzvorrichtung auftreten. Weiterhin bietet das Gehäuse einen gewissen Schutz vor Manipulationsversuchen Dritter. Zum Schutz der Softwareschutzvorrichtung kann das Gehäuse so ausgeführt sein, dass bei einem Öffnungsversuch die Softwareschutzvorrichtung zerstört wird. Zum selben Zwecke ist es möglich, die Elektronik im Inneren des Gehäuses zu vergiessen. Hierzu kann beispielsweise ein Giessharz verwendet werden.
[0022] Häufig wird es von Vorteil sein, die Softwareschutzvorrichtung in einem Steuerungsschrank der jeweiligen Textilmaschine anzuordnen. Dort kann die Softwareschutzvorrichtung an einer im Regelfall vorhandenen Hutschiene angeordnet werden. Dazu ist es von Vorteil, wenn die Befestigungsmittel des Gehäuses der Softwareschutzvorrichtung zur Montage an einer solchen Hutschiene ausgebildet sind.
[0023] Zur Versorgung der Elektronik der Softwareschutzeinrichtung kann diese ein Netzteil aufweisen, welches beispielsweise über eine Versorgungsleitung an ein Energieversorgungsnetz der Textilmaschine anschliessbar ist. Hierbei dient das Netzteil insbesondere zur Anpassung einer bereitgestellten elektrischen Spannung an die erforderliche Eingangsspannung der Softwareschutzvorrichtung.
[0024] Vorteilhafterweise ist dem Netzteil ein Überwachungsmodul zugeordnet, welches beispielsweise das Anliegen der externen Spannung und/oder die Funktion des Netzteils überwacht.
[0025] Weiterhin ist es vorteilhaft, wenn ein Mittel zur Anzeige von Betriebszuständen der Softwareschutzvorrichtung vorgesehen ist. Dieses Mittel, beispielsweise eine Leuchtdiode, kann beispielsweise Funktionszustände der Datenschnittstelle oder des Netzteiles anzeigen. Damit ist eine einfache Überwachungsmöglichkeit der Funktionen der Softwareschutzvorrichtung und somit eine Möglichkeit der schnellen Fehlerdiagnose gegeben.
[0026] Auch kann vorgesehen sein, dass Mittel zur Anpassung der Softwareschutzvorrichtung an physikalische Parameter der Textilmaschine vorgesehen sind. In Betracht kommen insbesondere Jumper, DIP-Schalter oder Lötbrücken. Damit ist es möglich, baugleiche Softwareschutzvorrichtungen an unterschiedliche Textilmaschinen anzupassen. So kann beispielsweise die Softwareschutzvorrichtung an die Baudrate der Datenverbindung der Textilmaschine ohne Eingriff in die Hardware oder Software angepasst werden.
[0027] Solche Mittel wie Jumper, DIP-Schalter oder Lötbrücken können ebenfalls zur Einstellung eines Parameters, welcher der Steuerung der Datenübertragung zwischen Softwareschutzvorrichtung und der Textilmaschine dient, vorgesehen sein. Beispielsweise kann der Softwareschutzvorrichtung mittels dieser Mittel eine Bus- oder Netzwerkadresse zugewiesen werden. Im Falle eines CAN- Busses kann hier ein Identifier eingestellt werden, anhand dessen die Softwareschutzvorrichtung für sie relevante Datenpakete auf dem CAN-Bus erkennt.
[0028] Wenngleich im Regelfall vorgesehen ist, dass eine Schutzvorrichtung für genau eine Textilmaschine vorgesehen ist, so kann es doch von Vorteil sein, wenn eine Softwareschutzvorrichtung zum Zusammenwirken mit mehreren Textilmaschinen ausgebildet ist. So ist es beispielsweise möglich, mit einer einzigen Softwareschutzvorrichtung die Software einer ganzen Produktionslinie, welche aus hintereinander angeordneten Textilmaschinen besteht, zu schützen. Auch ist es denkbar, eine gesamte Anlage mit mehreren parallel angeordneten Produktionslinien zu schützen. In diesem Fall ist die Softwareschutzvorrichtung so auszubilden, dass ein individueller Datenaustausch mit jeder anschliessbaren Textilmaschine möglich ist.
[0029] Besonders vorteilhaft ist es, wenn die Softwareschutzvorrichtung derart ausgebildet ist, dass maschinenspezifische Daten der Textilmaschine hinterlegbar sind. Maschinenspezifische Daten der Textilmaschine sind insbesondere der Maschinentyp, die Maschinenkonfiguration, die Seriennummer und die Softwareversion der Steuerungssoftware der Textilmaschine.
[0030] Daten wie Maschinentyp und Seriennummer sollen im Regelfall während der ganzen Lebenszeit der Textilmaschine erhalten bleiben. Andere Daten wie Maschinenkonfiguration oder Softwareversion können sich hingegen während der Lebenszeit einer Textilmaschine - gegebenenfalls mehrfach - verändern: Zwischen derartigen Veränderungen sollen diese Daten ebenfalls sicher gespeichert werden.
[0031] Die Speicherung dieser maschinenspezifischen Daten in der Softwareschutzvorrichtung bewirkt eine unabhängige Speicherung von der Steuerung der jeweilgen Textilmaschine. Bei einem Fehler in der Steuerung der Textilmaschine bleiben die Daten folglich erhalten. Dabei ist ein Ausfall der Softwareschutzvorrichtung relativ unwahrscheinlich, da diese im Vergleich zur Steuerung einer Textilmaschine eine wesentlich geringere Komplexität aufweist.
[0032] Die Ausbildung der Softwareschutzvorrichtung als externer Speicher für maschinenspezifischen Daten einer Textilmaschine erfordert keine oder nur geringe Anpassungen bzgl. der Hardware der Softwareschutzvorrichtung. Wesentliche Elemente, wie eine Datenschnittstelle zur Anbindung an die betreffende Textilmaschine sowie mindestens ein Speicher sind ohnehin an der Softwareschutzvorrichtung vorhanden und können für die Speicherung der Maschinendaten genutzt werden. Hierzu ist im Allgemeinen lediglich eine Anpassung der Software der Softwareschutzvorrichtung erforderlich. Sofern der Speicher der Softwareschutzvorrichtung zur Speicherung der Softwarefreigabedaten nicht flüchtig ist, können die maschinenspezifischen Daten langfristig und sicher abgelegt werden.
Denkbar ist jedoch auch, einen flüchtigen Speicher zu verwenden, welcher beispielsweise durch einen Akku mit Spannung versorgt wird, wenn die Softwareschutzvorrichtung vom Netz getrennt ist.
[0033] Die hinterlegten maschinenspezifischen Daten können überdies zur Verbesserung der Softwareschutzfunktion der Vorrichtung verwendet werden. So kann die Vorrichtung beispielsweise so ausgebildet sein, dass in Abhängigkeit von der Seriennummer bestimmte Softwarefreigabedaten abgegeben oder nicht abgegeben werden. Hierdurch kann eine missbräuchliche Verwendung der Softwareschutzvorrichtung wirkungsvoll verhindert werden.
[0034] Weiterhin ist es besonders vorteilhaft, wenn die Softwareschutzvorrichtung alternativ oder zusätzlich zur Berechnung der Betriebsstunden der Textilmaschine ausgebildet ist. Hierzu kann ein Signaleingang an der Softwareschutzvorrichtung vorgesehen sein, der über eine Signalanleitung derart mit der Textilmaschine verbindbar ist, dass an der Softwareschutzvorrichtung ein Betriebssignal anliegt, wenn die Textilmaschine in Betrieb ist. Zur Vermeidung von Manipulationen der Betriebsstundenzählung kann vorgesehen sein, dass Softwarefreigabedaten nur bei anliegendem Betriebssignal abgegeben werden können. Hierdurch kann verhindert werden, dass die Signalleitung des Betriebssignals einfach von der Softwareschutzvorrichtung getrennt wird und damit die Betriebsstundenzählung unterbrochen wird.
Die ermittelten Betriebsstunden der Textilmaschine können in gleicher Weise wie maschinenspezifische Daten in der Softwareschutzvorrichtung gespeichert werden. Maschinenspezifische Daten und Betriebsstunden können an der Softwareschutzvorrichtung selbst zur Anzeige gebracht werden, vorteilhafterweise können sie jedoch über die Datenschnittstelle an eine Anzeigeeinrichtung der Textilmaschine übertragen und dort zur Anzeige gebracht werden. Ebenso können sie an der Steuerung der Textilmaschine übertragen werden und dort zur Steuerung der Textilmaschine herangezogen werden.
[0035] Um die in der Softwareschutzvorrichtung hinterlegten Daten vor einem unbefugten Auslesen zu schützen, kann vorgesehen sein, dass die Daten passwortgeschützt sind. Dabei kann beispielsweise vorgesehen sein, dass ein entsprechendes Passwort in der Steuerung der Textilmaschine gespeichert ist. Sofern dann Softwarefreigabedaten angefordert werden, so wird das entsprechende Passwort zunächst von der Textilmaschine an die Softwareschutzvorrichtung übermittelt. Diese Übermittlung erfolgt dann vorzugsweise in verschlüsselter Form. Alternativ kann vorgesehen werden, dass geforderte Passwörter durch einen Bediener manuell an der Softwareschutzvorrichtung oder an einer Eingabeeinheit der zugeordneten Textilmaschine eingegeben werden müssen.
[0036] Es ist eine Vielzahl von Situationen denkbar, bei denen es erforderlich ist, eine Softwareschutzvorrichtung umzukonfigurieren. Dies ist beispielsweise bei einer Umkonfigurierung der Textilmaschine in softwaretechnischer oder hardwaretechnischer Hinsicht erforderlich. Ebenso kann es erforderlich sein, die gespeicherten Betriebsstunden an die tatsächlichen Betriebsstunden anzupassen, etwa wenn einer bestehenden Textilmaschine eine neue Softwareschutzvorrichtung zugewiesen werden soll. In solchen Fällen ist es zweckmässig, wenn die entsprechenden Daten im Datenspeicher der Softwareschutzvorrichtung nach Übertragung eines entsprechenden Passwortes veränderbar sind. Eine erforderliche Umkonfigurierung einer Softwareschutzvorrichtung erfolgt vorzugsweise mit einer Konfigurierungseinrichtung, an welche die Softwareschutzvorrichtung anbindbar ist.
Eine derartige Einrichtung kann beispielsweise in die Steuerung einer Textilmaschine integriert sein. Denkbar ist aber auch, dass ein portabler Rechner, beispielsweise ein Laptop, zur Umkonfigurierung von Softwareschutzvorrichtungen der erfindungsgemässen Art ausgebildet ist.
[0037] Eine Textilmaschine der erfindungsgemässen Art weist eine programmierbare Steuerung auf, welche geeignet ist, anhand mindestens einer vorgebbaren Softwareoption zu arbeiten. Sie ist zum Datenaustausch mit einer Softwareschutzvorrichtung ausgebildet, wobei die Softwareschutzvorrichtung einen Datenspeicher aufweist und im Datenspeicher Softwarefreigabedaten gespeichert werden können. Die Steuerung der Textilmaschine ist derart ausgebildet, dass sie eine Softwareoption erst dann zur Geltung bringen kann, wenn sie für diese Softwareoption entsprechende Softwarefreigabedaten aus dem Datenspeicher der Softwareschutzvorrichtung erhalten hat. Die Softwareschutzvorrichtung mit den gespeicherten Freigabedaten wird dem Betreiber der Textilmaschine von dem Hersteller der Textilmaschine zur Verfügung gestellt.
Hierdurch ist es dem Hersteller der Textilmaschine möglich, die Nutzung von Softwareoptionen, für welche dem Betreiber der Textilmaschine keine Lizenz eingeräumt wurde, zu unterbinden. Auch entfällt hierdurch ein Anreiz zur unberechtigten Erstellung von Kopien einer Software einer Textilmaschine.
[0038] Besonders vorteilhaft ist die Textilmaschine derart ausgebildet, dass der Datenverkehr zwischen der Textilmaschine und der Softwareschutzvorrichtung verschlüsselt erfolgt. Die Verschlüsselung umfasst insbesondere die Softwarefreigabedaten, ist aber nicht darauf beschränkt. Die Steuerung der Textilmaschine ist zum Verschlüsseln von an die Softwareschutzvorrichtung zu versendenden Daten und zum Auflösen der durch die Softwareschutzvorrichtung verschlüsselt versendeten Daten ausgebildet. Unabhängig vom Übertragungsweg ist so gewährleistet, dass Dritte nicht in den Besitz von Softwarefreigabedaten gelangen können, selbst wenn sie den Datenverkehr zwischen der Textilmaschine unter Softwareschutzvorrichtung überwachen.
[0039] Vorteilhafterweise ist die Steuerung der Textilmaschine derart ausgebildet, dass sie erforderliche Freigabedaten selbständig aus dem Datenspeicher der Softwareschutzvorrichtung anfordert. Vorteilhaft ist es auch, wenn die Steuerung der Textilmaschine zum Umkonfigurieren der Softwareschutzvorrichtung heranziehbar ist. Auf separate Mittel zum Konfigurieren einer Softwareschutzvorrichtung kann dann verzichtet werden.
[0040] Bevorzugt ist weiterhin, dass die Steuerung der Textilmaschine derart ausgelegt bzw. programmiert ist, dass der Aufruf von Softwarefreigabedaten während der Übertragung verschlüsselt ist. Dabei steht der Datenspeicher der Softwareschutzvorrichtung mit einem Mikroprozessor in Verbindung, der zum Auflösen der Verschlüsselung programmiert ist.
[0041] Wenn die Textilmaschine zur internen Datenübertragung während ihres Betriebes mit mindestens einer internen Datenverbindung, insbesondere mit einem Maschinenbus, versehen ist, so ist die Textilmaschine vorteilhafterweise so gestaltet, dass der Datenspeicher der Softwareschutzvorrichtung mit der internen Datenverbindung in Verbindung bringbar ist.
[0042] Dabei kann diese interne Datenverbindung insbesondere ein CAN-Bus sein. Dieser kann vorteilhafterweise zur Datenübertragung zwischen der Steuerung und dem Datenspeicher verwendet werden.
[0043] Um zu verhindern, dass nach der erfolgten Freigabe einer Softwareoption die Softwareschutzvorrichtung von der Textilmaschine getrennt wird und dann in missbräuchlicher Form mit einer anderen Textilmaschine verbunden wird, ist es vorteilhaft, die Steuerung derart auszubilden, dass die Freigabe beispielsweise periodisch wiederholt werden muss. Wird die wiederholte Freigabe nicht durchgeführt, weil beispielsweise die Softwareschutzvorrichtung entfernt wird, kann die Funktion der entsprechenden Softwareoptionen durch die Steuerung der Textilmaschine ausser Kraft gesetzt werden.
[0044] Vorteilhafterweise ist die Textilmaschine derart ausgebildet, dass die Softwareschutzvorrichtung mit der zentralen Maschinensteuerung der Textilmaschine zusammenwirkt. Dabei wird die Anwendungssoftware der Textilmaschine erst dann freigegeben, wenn die zentrale Maschinensteuerung entsprechende Softwarefreigabedaten erhalten halt. In vorteilhafter Weise ist die Textilmaschine zur Übermittlung eines betriebsindizierenden Signals an die Softwareschutzvorrichtung ausgebildet. Hierdurch ist es möglich, die Betriebsstundenerfassung durch die Softwareschutzvorrichtung durchzuführen.
[0045] Ebenfalls ist es von Vorteil, wenn die Textilmaschine zum Auslösen von maschinenspezifischen Daten aus dem Datenspeicher der Softwareschutzvorrichtung ausgebildet ist.
[0046] Ausführungsbeispiele der Erfindung sollen nun anhand der Figuren näher erläutert werden. Es zeigen:
<tb>Fig. 1<sep>eine Kopie der Fig. 1aus DE-A-10 153 457;
<tb>Fig. 2<sep>eine schematische Darstellung einer ersten Ausführung der Erfindung, wobei diese Darstellung auch zur Erläuterung verschiedener Softwaretypen in einer Textilmaschine verwendet wird;
<tb>Fig. 3<sep>eine Softwareschutzvorrichtung, welche mit mehreren Textilmaschinen zusammenwirkt.
[0047] Fig. 1 zeigt als schematisches Blockschaltbild die Kommunikationsstruktur einer Rotorspinnmaschine mit einer Vielzahl von Spinnstellen ("Längsteilmaschine"), wobei die Rotorspinnmaschine hier grundsätzlich bloss als Beispiel für eine Textilmaschine mit einer programmierbaren Steuerung dient. Praktisch alle Textilmaschinen, insbesondere
Ringspinnmaschinen z.B. gemäss EP-B-832 997
Luftspinnmaschinen
Strecken z.B. gemäss DE-A-10 153 999 und andere
Faserverarbeitungsmaschinen der Spinnereivorbereitung
Spulautomaten z. B. gemäss DE-A-19 907 684 weisen heutzutage eine derartige Steuerung auf, wobei auch diese Liste keineswegs vollständig zu verstehen ist.
[0048] Die Rotorspinnmaschine 10 in der Fig. 1hat eine zentrale Maschinensteuerung 20, die über eine externe Kommunikationsverbindung 11 mit einer Anlagesteuerung 12 in Verbindung steht. Auf die Anlagesteuerung 12 wird hier nicht näher eingegangen. Die Maschinensteuerung 20 steuert und überwacht die Produktion an der Spinnmaschine 10. Über eine interne Kommunikationsverbindung 21 ist die Maschinensteuerung 20 mit einem Bus-Verteiler 22 verbunden. Der Bus-Verteiler 22 treibt einen Maschinen-Bus 25 und übernimmt zur Datenkommunikation unter anderem Router-Funktionen. Zum Daten-Austausch mit dem Bus-Verteiler 22 ist ein Anspinnroboter 24 über eine Kommunikationsleitung 23 mit dem Maschinen-Bus 25 verbunden, wobei als Alternative eine direkte Kommunikationsleitung (gestrichelt angedeutet) zwischen dem Bus-Verteiler 22 und dem Anspinnroboter 24 vorgesehen werden kann.
[0049] Vom Maschinen-Bus 25 zweigt eine Kommunikationsverbindung 27 ab, die den Bus 25 mit einer Triebgestellsteuerung 26 verbindet. Die Triebgestellsteuerung 26 steuert auf an sich bekannte Weise die Hauptantriebe der Spinnmaschine 10. Die Spinnstellen der Maschine 10 sind zu Sektionen 30a-d zusammengefasst, wobei pro Sektion beispielsweise 16 oder 20 Spinnstellen vorhanden sind. Jede der Sektionen 30a-d weist einen zentralen Sektionscontroller 31a-d auf. Jeder Sektionscontroller 31a-d ist über eine Kommunikationsverbindung 32a-d mit dem Maschinen-Bus 25 verbunden. In Fig. 1sind beispielhaft vier Sektionscontroller 31a-d dargestellt, wobei bei einer Spinnmaschine in der Regel wesentlich mehr als vier Sektionscontroller vorgesehen sind.
[0050] Die Einzelheiten der Sektion 30a sind repräsentativ für die anderen Sektionen näher dargestellt. Der Sektionscontroller 31a arbeitet unter anderem als Kommunikationseinrichtung zwischen dem Maschinen-Bus 25 und einem Sektions-Bus 40, wobei der Sektionscontroller 31a als Treiber Routerfunktionen für den Sektions-Bus 40 übernimmt. Kommunikationsfähige Baueinheiten bzw. Baugruppen jeder Spinstelle 41a, 41b der Sektion 30a sind über Kommunikationsverbindungen 62, 63 ,64 ,65 mit dem Sektions-Bus 40 verbunden. So ist z. B. in der Sektion 30a ein Fadenwächter 42 über die Kommunikationsverbindung 62, ein Garnreiniger 43 über die Kommunikationsverbindung 63, eine Faserbandauflösevorrichtung 44 über die Kommunikationsverbindung 64 und eine Spinnstellensteuerung 45 über die Kommunikationsverbindung 65 mit dem Bus 40 verbunden.
[0051] Jede der Einheiten 42, 43, 44, 45 weist eine Kommunikationssteuereinrichtung 52, 53, 54, 55 auf, die die Kommunikation mit dem Bus 40 steuert. Die Kommunikationseinrichtungen können dabei als reine Empfangseinrichtungen ausgelegt sein, beispielsweise für ein Stellelement bzw. einen Aktor, das lediglich auf Informations- oder Steuerdaten reagiert. Oder die Kommunikationssteuereinrichtungen können als reine Sendeeinrichtungen ausgelegt sein, beispielsweise bei einer Sensoreinrichtung, die lediglich Informations- oder Steuerdaten an den Bus 40 sendet. Vorzugsweise sind jedoch die Kommunikationssteuereinrichtungen bidirektional, so dass sowohl Befehle oder Informationen empfangen als auch Informations- und Steuerdaten gesendet werden können. Für die Arbeitsweise des dargestellten Systems als Ganzes wird auf die Beschreibung in DE-A-10 153 457 hingewiesen.
[0052] In der bevorzugten Ausführung wird jeder Bus 25 bzw. 40 als CAN-Bus realisiert (CAN = Controller Area Network). Der CAN-Bus verbindet bekannterweise mehrere gleichberechtigte Komponenten (sogenannte Knoten bzw. Nodes) miteinander, z. B. mittels einer 2-Draht-Buseinrichtung oder mittels Lichtwellenleitern. Bei der Datenübertragung in einem CAN-Bus werden keine Knoten adressiert, sondern der Inhalt einer Nachricht wird innerhalb des Controller Area Networks durch einen eindeutigen "Identifier" gekennzeichnet. Neben der Inhaltskennzeichnung legt der Identifier auch die Priorität der Nachricht fest. Mittels einer Akzeptanzprüfung stellen alle Stationen nach korrektem Empfang der Nachricht anhand des Identifiers fest, ob die empfangenen Daten für sie relevant sind oder nicht.
Auf einem CAN-Bus darf jeder Teilnehmer Daten ohne besondere Aufforderung eines Masters verschicken. Sofern es zu Kollisionen kommt, werden diese per Hardware und durch Wiederholung behoben. Eine Kollision wird dadurch erkannt, dass ein Sender den gesendeten Identifier selbst zurückliest und vergleicht. Bei Ungleichheit war ein Teilnehmer mit höherer Priorität da, welcher die Leitung für sich beansprucht hat. Der vom Bus "ausgeschlossene" Sender versucht dann wieder, seine Botschaft zu übertragen, bis ihm dies gelingt.
[0053] Eine CAN-Nachricht wird in einer CAN-Bus-eigenen Form verpackt. Die Verpackung wird als eine "Frame" bezeichnet und besteht aus 7 Kennfeldern, je mit einer eigenen, fest zugeordneten Funktion (z.B. "Message Identifier").
[0054] Der Datenfluss auf einem CAN-Bus wird normalerweise mittels eines weitgehend standardisierten Zugriffsverfahrens (Protokolls) - "CANopen" - gesteuert. Die Zuordnung der Message-Identifier erfolgt hierbei automatisch anhand der am teilnehmenden Knoten eingestellten Knotennummer.
[0055] Die Erfindung ist nicht auf die Verwendung in Kombination mit einem CAN-Bus eingeschränkt. Der CAN-Bus ist aber für seine hohe Störsicherheit und geringe Kosten, z.T. wegen breiter Akzeptanz und entsprechenden Standardisierungsgrads, bekannt und wird dementsprechend häufig in Textilmaschinen eingesetzt. Gerade wegen des hohen Standardisierungsgrads ist es aber besonders leicht festzustellen, was jederzeit auf einem CAN-Bus vor sich geht - zu diesem Zweck sind sogar spezielle Einrichtungen ("CAN-Analyser") entwickelt und käuflich zur Verfügung gestellt worden. Dies erleichtert die "Aufgabe" des Software-Kopierens.
[0056] Im Beispiel der Fig. 1umfasst der Begriff Steuerung die Maschinensteuerung 20, die Triebgestellsteuerung 26 und die Sektionscontroller 31a bis 31d. Prinzipiell können auch weitere Steuerungskomponenten, etwa auf Arbeitsstellenebene, vorgesehen sein. Wenigstens eine Komponente der Steuerung ist programmierbar ausgebildet, umfasst also eine CPU (Central Processor Unit).
[0057] Eine moderne Textilmaschine mit einer programmierbaren Steuerung muss mit verschiedenen Software-Typen versehen werden, wie nun anhand der Fig. 2erläutert werden soll. In der Fig. 2ist zur besseren Übersicht von der Steuerung 28 nur die Maschinensteuerung 20 sowie ein Sektionscontroller 31 gezeigt, welche beide nach dem gleichen Prinzip aufgebaut sind und insbesondere eine CPU umfassen. Gleichwohl kann die Steuerung 28 weitere Komponenten umfassen, welche programmierbar oder nicht programmierbar sind. Zum Zweck der Erklärung werden in der Fig. 2verschiedene Datentypen (inkl. Software bzw. Programme) verschiedenen "Kästen" zugeordnet - dies ist aber nur zur Erleichterung der Darstellung bzw. Erklärung so gemacht worden.
Ob die Daten in der Praxis so getrennt verwaltet werden oder nicht, hängt vom gewählten Computer-System ab und hat mit der vorliegenden Erfindung prinzipiell nichts zu tun.
[0058] In der Fig. 2 werden drei Datentypen schematisch angedeutet, nämlich
ein Betriebssystem, das grundsätzlich für den Betrieb des Computer-Systems erforderlich ist und normalerweise vom Computer-Hersteller gewählt und spezifiziert wird. Das Betriebssystem wird aufgerufen und kommt dementsprechend zur Geltung, jedes Mal als erster Schritt, nachdem das Computer-System eingeschaltet wird:
Anwendungsprogramme (kollektiv Anwendungssoftware), die vom Maschinenhersteller gewählt und spezifiziert werden, und im Betrieb für das geordnete Steuern der Maschinenhardware nach einem vorgegebenen Konzept zuständig sind.
Arbeitsdaten, die im Betrieb quasi-kontinuierlich von der Maschine geliefert bzw. gewonnen werden, und die gemäss der Anwendungssoftware anhand vorgegebener Routinen (Schleifen) verarbeitet werden müssen, um das Aufrechterhalten der verschiedenen Maschinenfunktionen kontinuierlich zu gewährleisten.
[0059] Die Anwendungssoftware ist von speziellem Interesse im Zusammenhang mit dieser Erfindung. Die gesamte, in einer bestimmten Maschine gespeicherte Anwendungssoftware kann viele verschiedene Einzelprogramme umfassen, beispielsweise: a) verschiedene Versionen des gleichen Grundprogramms, beispielsweise um verschiedene Entwicklungsstufen der Maschine selbst zu berücksichtigen. Die DE-A-10 212 712 zeigt z.B. eine Weiterentwicklung der Anordnung, die in der DE-A-10 153 457 und in der Fig. 1 der vorliegenden Anmeldung beschrieben wird.
Es können beide Programme (d.h. sowohl ein Programm gemäss DE-A-10 153 456 als auch ein "Nachfolgerprogramm" gemäss DE-A-10 212 712) in der gleichen Anwendungssoftware vorhanden sein, wobei für eine gegebene Maschine nur eine Programmvariante zur Geltung gebracht werden soll, sei es, weil nur diese Variante für die gegebene Maschine geeignet ist, oder sei es, weil sich der Benutzer der Maschine diese Variante gewählt und sich verpflichtet hat, die Lizenzgebühren zu bezahlen (bzw. die Gebühren beim Kauf der Maschine pauschal bezahlt hat). Ohne Aufruf und Inkraftsetzen eines Grundprogramms ist eine moderne Textilmaschine 10 nicht effektiv lauffähig, d.h. der Benutzer muss sich für ein bestimmtes Grundprogramm entscheiden oder kann sogar seine Maschine nur anhand eines bestimmten Grundprogramms arbeiten lassen. Ein Grundprogramm für die ganze Maschine enthält z.B.
Start- bzw. Stopproutine und Routine für den Normalbetrieb, wobei die Routine für den Normalbetrieb verschiedene, vom Benutzer wählbare, Einstellmöglichkeiten vorsehen wird. Das gleiche Prinzip gilt aber für ein quasi-autonomes Arbeitsaggregat, wie ein Ansetzroboter für eine Rotorspinnmaschine.
[0060] (b) verschiedene Optionen (Ergänzungsprogramme), die nicht zur Grundausrüstung der Anwendungssoftware gehören, sondern zum Betreiben spezifischer technischer oder technologischer Funktionen erforderlich sind. Der Maschinenbenutzer kann dann wählen, ob er für seine Maschine eine derartige Funktion vorsehen will. Beispiele sind aus den folgenden Schriften zu entnehmen:
DE-A-10 153 999 "Simulationsverfahren für eine Spinnereimaschine";
DE-A-10 143 875 "Verfahren zum Einstellen von Betriebsparameter einer Textilmaschine";
DE-A-4 131 247 "Verfahren zum Unterstützen von Wartungsarbeiten";
DE-A-10 2004 014 257 "Rezeptverwaltung in einer Textilmaschine";
DE-A-10 340 234 "Fernbedienung in einer Textilmaschinenanlage", wobei dem Fachmann klar sein wird, dass diese Liste keineswegs vollständig ist.
Die effektiven Möglichkeiten in einem konkreten Fall hängen vom Maschinentyp und von seiner Ausrüstung ab. Die Maschine bzw. das autonome Aggregat ist grundsätzlich ohne diese Optionen lauffähig, wobei die der Option entsprechende Funktion nicht ausgeführt werden kann.
[0061] Es besteht nun oft Interesse seitens verschiedener Parteien (Maschinenbenutzer, Konkurrenten des Maschinenherstellers, Softwareentwicklungsfirmen ....), Anwendungssoftware unbefugt zu kopieren bzw. zum Laufen zu bringen, wobei der Maschinenhersteller daran interessiert ist, dies möglichst zu verhindern. Die vorliegende Erfindung befasst sich mit dieser Aufgabe.
[0062] Die bevorzugte Lösung der Aufgabe besteht nun darin, die Maschine 10 einerseits mit einer Softwareschutzvorrichtung, einem sogenannten "Dongle", bzw. mit einer "Dongle-Funktion" auszurüsten, wie dies schematisch in der Fig. 2 gezeigt ist, andererseits die Anwendungssoftware derart zu speichern, dass sie nur nach Freigabe durch den Dongle 100 steuerungswirksam gemacht werden kann. Der Dongle 100 gemäss der Fig. 2ist grundsätzlich als Datenspeicher realisiert, wobei diese Funktion in der Fig. 2mittels des Speichers 102 ausgeführt wird. Der Dongle 100 ist ein selbständiges Modul, welches innerhalb oder ausserhalb der Maschine 10 angeordnet sein kann. . Wesentlich ist lediglich, dass die Maschine 10 und der Dongle 100 zum Datenaustausch ausgebildet sind. Der Dongle 100 kann mit Daten geladen werden, welche Software-Freigabe-Codes darstellen.
Der Datenspeicher 102 soll daher für die nichtflüchtigen Langzeit-Speicherung der Freigabe-Daten ausgeführt sein und kann zu diesem Zweck beispielsweise in der Form eines ferromagnetischen RAMs realisiert werden.
[0063] Die Freigabe der Anwendungssoftware bzw. eines bestimmten Software-Programms erfolgt dann dadurch, dass die Maschinensteuerung 20 bzw. eine weitere Komponente der Steuerung 28, welche ein bestimmtes Programm braucht, um ihre Steuerroutinen arbeiten zu lassen, eine "Anfrage" an den Dongle 100 sendet und als Antwort darauf die im Dongle 100 gespeicherten Freigabecodes erhält. Sofern die vom Dongle 100 erhaltenen Daten plausibel sind und Programme entsprechen, die der abfragenden Steuerung 28 zur Verfügung stehen, ruft die Steuerung 28 selbst die entsprechenden Einzelprogramme aus dem Speicher auf und bringt sie zur Geltung. Die Steuerung 28 ist daher dazu programmiert, die vom Datenspeicher 102 erhaltenen Daten auf ihre Plausibilität zu kontrollieren.
Falls keine brauchbaren Freigabecodes vom Dongle 100 erhalten werden oder falls die erhaltenen Freigabecodes Programmen entsprechen, die der abfragenden Steuerungseinheit 20, 31 nicht zur Verfügung stehen, kann das Ausführen der entsprechenden Maschinenfunktion unterbrochen bzw. nicht eingeleitet werden. Sofern eine Komponente der Steuerung 28, also beispielsweise die zentrale Maschinensteuerung 20 (Fig. 1), eine Abfrage sendet und keine brauchbaren Angaben zurückerhält, kann der Hochlauf der Maschine als Ganzes unterbrochen bzw. unterbunden werden.
[0064] Der Dongle 100 ist daher mit einem eigenen Mikroprozessor (Controller) 117 und einem Datenport 104 versehen, womit der Mikroprozessor [micro]P117 für den bilateralen Austausch von Daten mit mindestens einer Steuerungseinheit 20, 31 der Maschine über einen Maschinenbus 106 (beispielsweise Bus 25 und/oder Bus 40, Fig. 1) angeordnet ist. Sofern der Dongle 100 zur Zusammenarbeit mit einem CAN-Bus 106 vorgesehen ist, kann der Mikroprozessor 117 mit einem CAN-Controller 105 und einem CAN-Treiber 104 versehen werden. Der Dongle 100 kann dadurch unmittelbar in den CAN-Bus 106 eingebunden werden, er wird also gleichberechtigter Teilnehmer bezüglich des Datenverkehrs auf dem Bus 106.
Dabei ist es vorteilhaft, wenn der CAN-Treiber 104 derart ausgebildet ist, dass eine galvanisch getrennte Einbindung in den CAN-Bus erfolgt, da sich so Unterschiede des elektrischen Potenzials zwischen Textilmaschine 10 und Dongle 100 nicht negativ auswirken können.
[0065] Zur Versorgung der Elektronik umfasst der Dongle vorzugsweise auch ein Netzteil 114, das über eine Versorgungsleitung 116 elektrische Energie von der Maschine aufnehmen kann und mit einem Wandler zur Anpassung der Maschinenspannung an die Arbeitsspannung der Dongle-Elektronik versehen ist. Vorzugsweise ist dem Netzteil 114 ein Überwachungsmodul 112 zugeordnet. Beim Fehlen der Netzspannung kann dann beispielsweise eine Alarmfunktion ausgelöst werden.
[0066] Der Abruf der Freigabedaten erfolgt vorzugsweise nach Inbetriebnahme des Betriebssystems, aber vor der Inbetriebnahme irgendwelcher Anwendungssoftware und führt auch vorzugsweise zum Abbruch der bzw. nicht Eintreten auf die Startroutine des Grundprogramms, falls die Freigabe vom Dongle nicht gegeben wird. Wenigstens eine der Steuerungseinheiten (21, 31) mit ihrem Rechner (CPU) kann entsprechend programmiert werden. Es kann aber mit Vorteil regelmässig während des Normalbetriebs nach einer Bestätigung der Freigabe gefragt werden - damit erfolgt eine Bestätigung, dass der die Software freigebende Dongle 100 noch mit dem Bus 106 gekoppelt ist.
[0067] Das Software-Freigabeverfahren wird vorzugsweise derart konzipiert, dass es nicht durch ein allgemein (standardmässig) verwendetes Verfahren zur Untersuchung vom Geschehen auf dem Bus 106 (z. B. an der Schnittstelle 104) analysiert werden kann. Um die Analyse des Verfahrens mittels eines mit dem Bus 106 gekoppelten Bus-Analysers zu erschweren, werden die Daten der Freigabe-Abfrage vorzugsweise auch durch die Steuerungseinheit 20, 31 verschlüsselt, wobei diese Daten vom Dongle 100 dekodiert werden müssen.
[0068] Die vom Dongle 100 gelieferten Softwarefreigabedaten werden daher vorzugsweise verschlüsselt abgegeben und die Programmierung des Dongles 100 kann einen entsprechenden Verschlüsselungsalgorithmus umfassen. Die Verschlüsselung kann z.B. mit Hilfe eines Zufallsgenerators erfolgen und der Dongle kann entsprechend programmiert werden. Die Steuerungseinheit 20, 31 der Maschine 10 muss derart programmiert sein, dass ihr Rechner CPU in der Lage ist, die Verschlüsselung aufzulösen und die Freigabedaten daraus zu gewinnen.
[0069] Soll nun eine Anwendungssoftware zum Betrieb der Textilmaschine 10 von einer programmierbaren Steuerungseinheit 20, 31 gestartet werden, so wird bevorzugt in dieser oder einer anderen Steuerungseinheit zunächst eine spezielle Abfrageprozedur (also ein Softwareprogramm) zum Abfragen von Softwarefreigabedaten, welche in der Softwareschutzvorrichtung 100 hinterlegt sind, aufgerufen. Diese Abfrageprozedur erstellt eine verschlüsselte (codierte) Abfrage, welche an den Dongle 100 übertragen und dort mittels einer Software, welche den Mikrocontroller 117 des Dongles 100 steuert, entschlüsselt (decodiert) wird. Die Verschlüsselung durch die Steuerungseinheit 20, 31 kann Elemente, beispielsweise Zahlen, umfassen, die jedes Mal neu innerhalb der Steuerung 28 (z.B. mittels eines Zufallsgenerators) erzeugt werden.
[0070] Die Software des Dongles 100 überprüft nun, welche Softwarefreigabedaten zurückgegeben werden sollen. Hierbei kann beispielsweise eine Berechtigungsüberprüfung anhand der bisherigen Betriebsdauer und/oder anhand von maschinenspezifischen Daten, etwa anhand des Maschinentyps, der Maschinenkonfiguration, der Seriennummer und/oder der Softwareversion der Textilmaschine 10 erfolgen. Sofern eine Softwarelizenz zeitlich befristet erteilt wurde, kann auch das jeweils aktuelle Datum bei der Berechtigungsüberprüfung herangezogen werden.
[0071] Um eine Umgehung der Berechtigungsüberprüfung zu verhindern, können beispielsweise die hierzu herangezogenen Daten von der Abfrageprozedur der Textilmaschine 10 verschlüsselt in die Abfrage integriert werden und dann mit in dem Datenspeicher 102 des Dongles 100 geschützt hinterlegten Daten verglichen werden.
[0072] Nach der Berechtigungsüberprüfung werden die ausgewählten Softwarefreigabedaten verschlüsselt und an die betroffene Steuerungseinheit übertragen, wo sie dann decodiert werden. Die Antwort des Dongles 100 kann Elemente enthalten, die sowohl aus der verschlüsselten Abfrage als auch aus zufällig erzeugten Daten entstammen. Nun kann die freigegebene Anwendungssoftware gestartet und genutzt werden.
[0073] Durch dieses Abfrageverfahren ist sichergestellt, dass es unberechtigten Personen nicht möglich ist, Softwarefreigabedaten ohne Kenntnis des Source-Codes der Abfrageprozedur auszulesen, um sie dann zum missbräuchlichen Freischalten von Softwareoptionen der Textilmaschine 10 zu nutzen.
[0074] Zur weiteren Erhöhung der Datensicherheit können die Softwarefreigabedaten in dem Datenspeicher 102 verschlüsselt hinterlegt, also abgespeichert werden.
[0075] Auch ist es sinnvoll, die Software des Dongles 100 in einem OTP-Speicher (One Time Programmable Memory) abzulegen. Ein OTP-Speicher kann nur einmal beschrieben werden, so dass die einmal aufgespielte Software des Dongles 100 nicht mehr veränderbar ist. Hierdurch kann eine Manipulation am Dongle 100, welche ein unberechtigtes Auslesen von Softwarefreigabeoptionen ermöglichen könnte, verhindert werden.
[0076] Das bei der Abfrage von Softwarefreigabedaten verwendete Verschlüsselungsverfahren kann prinzipiell frei gewählt werden, wesentlich ist nur, dass die jeweilige Steuerungseinheit 20, 31 und der Dongle 100 zur Durchführung desselben Verschlüsselungsverfahrens ausgebildet sind.
[0077] Die Softwareschutzvorrichtung ist vorteilhafterweise zusätzlich zur Berechnung der Betriebsstunden der Textilmaschine ausgebildet. Hierzu wird ihr über die Leitung 115 ein Signal zugeführt, sofern sich die Maschine im Betrieb befindet. Bei Verwendung der vom Bus 116 unabhängigen Leitung 115 wird der Datenverkehr auf dem Bus 106 nicht durch die Betriebsstundenerfassung beeinträchtigt. Grundsätzlich kann das Betriebssignal jedoch auch über den Bus 106 übertragen werden.
[0078] Das Betriebssignal gelangt über einen Signaleingang 113 zum Mikrocontroller 117. Dieser ruft bei Betriebsbeginn die bisher gespeicherte Betriebszeit aus dem Datenspeicher 102 ab und zählt die laufende Betriebszeit, beispielsweise im Sekundentakt, hinzu. Bei Betriebsende oder nach einer bestimmten Zeit wird die inkrementierte Betriebszeit im Datenspeicher 102 abgelegt.
[0079] Um Manipulationen an der Betriebsstundenzahl zu verhindern, kann die Übertragung von Softwarefreigabedaten von dem Anliegen des Betriebssignals abhängig sein.
[0080] Vorzugsweise ist der Dongle 100 zusätzlich zur Abspeicherung maschinenspezifischer Daten wie Maschinentyp, Maschinenkonfiguration, Seriennummer und/oder Softwareversion der Steuerungssoftware der Maschine 10 ausgebildet. Derartige Daten sollen langfristig, nämlich für die gesamte Lebenszeit der Maschine, gespeichert und auslesbar sein. Gegenüber Konzepten, bei denen derartige maschinenspezifische Daten in einer Komponente der Steuerung (20, 31) der Textilmaschine 10 gespeichert werden, bietet die Speicherung in dem Dongle 100 den Vorteil einer höheren Verlässlichkeit der Speicherung. Dies wiederum beruht auf der im Vergleich zur Steuerung der Textilmaschine geringen Komplexität des Dongles 100, was zu einer geringeren Fehleranfälligkeit des Dongles 100 führt.
Mit anderen Worten: Es ist wesentlich wahrscheinlicher, dass während der Lebensdauer der Textilmaschine 10 eine Komponente der Steuerung (20, 31) der Textilmaschine ausfällt, als dass eine Störung im verhältnismässig einfach aufgebauten Dongle 100 auftritt. Im Ergebnis ist die Verfügbarkeit der gespeicherten maschinenspezifischen Daten deutlich erhöht.
[0081] In einer Maschine 10 mit einem CAN-Bus 116 kann der Dongle 100 ohne weiteres mit diesem Bus 116 gekoppelt und abgefragt werden. Für die Abfrage kann ein entsprechender Message-Identifier definiert werden und im CAN-Message-Frame integriert werden, wobei der Abfrage vorzugsweise eine hohe Priorität zugeordnet wird. Wird eine Abfrage über den CAN-Bus 116 verschickt, so wird sie zwar von allen Bus-Teilnehmern empfangen, aber nur vom Dongle 100 als relevant erkannt und verarbeitet. Dieser Message-Identifier korrespondiert bei der Verwendung des CANopen-Protokolls mit der voreingestellten Knotennummer des Dongles 100. In anderen Fällen ist der Identifier individuell zu definieren.
[0082] Für Maschinen mit anderen Bus-Systemen muss dem Dongle 100 allenfalls eine eigene Adresse zugeordnet werden, die dann bei jedem Abrufvorgang von der abrufenden Steuerung gemäss dem jeweiligen Bus-Protokoll verwendet werden muss. Knotennummer, relevante Identifier oder Bus-Adresse, können vorzugsweise über ein Mittel 109, insbesondere über Jumper, DIP-Schalter oder Lötbrücken an dem Dongle 100 einstellbar sein, um so Konflikte mit Knotennummern, Identifiern oder Adressen anderer Bus-Teilnehmer zu lösen bzw. um eine eindeutige Zuordnung zwischen den auf dem Bus 116 verschickten Daten und dem als Empfänger vorgesehenen Teilnehmer sicherzustellen.
[0083] Ein Dongle 100 nach dieser Erfindung kann an jeder geeigneten Stelle in der Maschine 10 vorgesehen werden, wo die Datenkoppelung am Bus 106 möglich bzw. zweckmässig ist. Die Gestaltung des Dongles 100 muss prinzipiell nur die Anforderung der Datenspeicherung bzw. der Ankoppelung am Bus 106 erfüllen. In der bevorzugten Ausführung wird der Dongle 100 aber als ein separates Gerät gebildet und an der Maschine möglichst fest angebracht. Die Elektronik des Dongles kann auf einer geeigneten Leiterplatte 119 aufgebaut werden, die in einem Gehäuse 108 untergebracht wird, wobei das Gehäuse 108 selbst mit Mitteln 110 zur Befestigung des Dongles 100 an einer ausgewählten Stelle in der Maschine 10 versehen ist. Eine geeignete Stelle (in der Fig. 2nicht gezeigt) ist die Energieverteilstelle (der Schaltschrank) der Maschine (z.B. gemäss DE-A-4 316 999 oder DE-A-19 535 310).
Die Energieverteilstelle umfasst normalerweise mindestens einen Modulträger, z.B. mindestens einer sogenannten "Hutschiene" (Top-Hat Rail), der oft gemäss einer DIN- bzw. ISO-Norm gestaltet wird. Die Befestigungsmittel 110 am Gehäuse 108 kann zur Zusammenarbeit mit einem derartigen Modulträger gestaltet werden. Geräte dieser Art sind, für andere Aufgaben, prinzipiell bekannt - siehe z.B. DE-A-19 937 515, welche, für die Anlageüberwachung, einen "Einplatinen-Microcontroller" bestehend aus einer Prozessoreinheit, Speichermittel und Kommunikationsschnittstelle beschreibt, wobei dieses Modul zur Befestigung an einer Hutschiene vorgesehen ist.
[0084] Die Anordnung von Datenspeicher 102, Mikrocontroller 117 und Datenschnittstelle 104 auf einer gemeinsamen Platine 119 ermöglicht eine kompakte Bauform des Dongles. Vorteilhafterweise sind auch weitere Hardwarekomponenten, hier das Netzteil 114 mit Überwachungsmodul 112, das Mittel 107 zur Anzeige von Betriebszuständen des Dongles 100, das Mittel 109 zur Hardwareanpassung des Dongles 100 an die Textilmaschine 10 sowie das Mittel 111 zur Einstellung eines Parameters zur Datenübertragung auf der gemeinsamen Platine 119 angeordnet.
[0085] Die Softwarefreigabedaten (Codes) sind soweit praktisch möglich geheim zu halten, d.h. sie sollten nur einem möglichst kleinen Kreis von ausgewählten Personen zugänglich gemacht werden. Die Software eines Dongles 100 ist vorzugsweise in dem OTP-Speicher 120 unveränderlich abgelegt. Die vorzugsweise im FRAM-Speicher abgelegten Werte oder Daten, also insbesondere maschinenspezifische Daten wie Maschinentyp, Maschinenkonfiguration, Seriennummer und/oder Softwareversion der Steuerungssoftware der Maschine 10 oder die Softwarefreigabedaten können aber veränderbar sein, z.B. durch Servicepersonal mit besonderen Befugnissen unter Zuhilfenahme der Steuerung 28 der Textilmaschine 10 oder spezieller Einrichtungen.
Allenfalls erfordert die Änderung der hinterlegten Werte (Umkonfigurierung) den Zugang zum Speicher 102 mittels mehrerer Passwörter, die normalerweise verschiedenen Personen zugeordnet werden, d.h. es müssten normalerweise mehrere Personen gleichzeitig an der Umkonfigurierung beteiligt sein. Durch eine derartige Umkonfigurierung kann der Dongle 100 mit neuen Softwarefreigabedaten versehen werden, welche neue Softwarebefugnisse in einer bestehenden Maschine darstellen oder sogar die Wieder- bzw. Weiterverwendung auf einer anderen Maschine ermöglichen. Der Zugang zum Datenspeicher 102 zwecks Neubelegung kann über den Bus 106 oder über ein speziell dafür konzipiertes Datenaustauschmittel (nicht gezeigt) erfolgen.
[0086] Es kann weiterhin vorgesehen sein, dass zumindest ein Teil der im Datenspeicher (102) hinterlegten Daten, insbesondere der Softwarefreigabedaten, der maschinenspezifischen Daten und/oder der Betriebsstunden, gegen unbefugtes Auslesen passwortgeschützt ist. Hierzu kann vorgesehen sein, dass der Bediener vor dem Abrufen der betreffenden Daten zur Eingabe eines Passwortes an der Steuerung 28 aufgefordert wird.
[0087] So ist es beispielsweise möglich, dass bestimmte Softwareoptionen nur durch autorisierte Personen aktivierbar sind. Hierbei ist etwa an Softwarefunktionen zu denken, welche im normalen Betrieb der Maschine 100 nicht benötigt werden, jedoch für die Fehlerdiagnose und/oder Wartung durch speziell geschultes Servicepersonal erforderlich sind. Hierdurch kann beispielsweise eine unsachgemässe Wartung verhindert werden.
[0088] Fig. 3 zeigt einen Dongle, 100 der zum Zusammenwirken mit mehreren Textilmaschinen 10, 10, 10 ausgebildet ist. Hierzu ist der Dongle 100 über ein Datennetz 122 mit den Textilmaschinen 10, 10, 10 verbunden. Er umfasst eine Schnittstelle 104, welche an die Ausführung des Datennetzes 122 angepasst ist. Das Datennetz 122 kann beispielsweise ein LAN (Local Area Network) oder ein WAN (Wide Area Network) sein. Dann ist die Schnittstelle als entsprechende Netzwerkschnittstelle auszubilden.
[0089] Alternativ könnte der Dongle 100 über Punkt-zu-Punkt-Datenleitungen mit den Textilmaschinen 10, 10, 10 verbunden sein. Dann könnte die Schnittstelle 104 beispielsweise als Modem oder ISDN-Schnittstelle ausgeführt sein.
[0090] Die Textilmaschinen 10, 10 und 10 stehen ihrerseits über angepasste Schnittstellen 121, 121 und 121 mit dem jeweiligen Datennetz 122 oder entsprechenden Datenleitungen in Verbindung, wobei die Schnittstellen 121, 121 und 121 über Busse 106, 106 und 106 oder in anderer Weise mit den nicht dargestellten Steuerungen der Textilmaschinen verbunden sind.
[0091] Auf diese Weise ist es beispielsweise möglich, einen Dongle 100 für eine Maschinengruppe oder eine gesamte Anlage zu verwenden. Beispielsweise kann der Dongle 100 an einer zentralen Überwachungseinrichtung, beispielsweise an einer übergeordneten Anlagensteuerung angeordnet sein.
[0092] Die Erfindung ist nicht auf die dargestellten Ausführungsbeispiele beschränkt. Es sind zahlreiche Abwandlungen der Erfindung und insbesondere Kombinationen im Rahmen der Patentansprüche möglich.
The invention relates to a software protection device for a textile machine and a textile machine, which is designed to cooperate with such a device. The device can be designed as a multifunctional device, i. E. It may additionally be provided with software or devices which fulfill other requirements, such. As the storage or reproduction of machine-specific data allows.
State of the art
Virtually any textile machine today is manufactured as a machine with a programmable controller, i. The machine is equipped with at least one (usually several) computers and needs software to operate these computers. With the progressive development of these "intelligent" machines, the demands on the software are constantly increasing, in particular the software, which is specially provided for the machine and has to be made available by the machine manufacturer through proprietary development and / or proprietary software. This increases the temptation to copy such software or to use it without authority.
This situation has long been generally known in the software industry and concepts have been developed for larger computer networks by means of a so-called "dongle" to prevent unauthorized (co-) use. However, there are no commercially available products that are designed or suitable for software protection in individual industrial products, such as textile machines.
Further, it is known, certain, assigned to a specific machine (identification) data stored in a specially designated memory retrievable. In EP-A-1 194 887, e.g. has been proposed to summarize a traditional nameplate (support for written and / or graphical information) with an electronic storage device. For this purpose, the nameplate is to be provided with a memory chip which is to be used in particular to store information about the operation of the machine after its completion, e.g. Runtime, speeds and load.
In known textile machines in which machine-specific data, such as serial number, configuration, software version and / or operating hours are stored electronically, the storage takes place within the controller or a component of the control of the textile machine. In the event of a controller malfunction, this machine-specific data is often no longer readable. After a repair or replacement of the controller, it is then very expensive to renew this machine-specific data.
Furthermore, it is customary to provide textile machines with operating hours counters. The operating time can be used, for example, as the basis for maintenance plans or, if the textile machine is rented, for the calculation of rental prices. However, the previously known, mainly electrically or mechanically trained operating hours counter are relatively easy to manipulate, since only the supply of the operating hour count on the basis of the input signal of the operating hours counter must be interrupted.
The object of the present invention is to eliminate the disadvantages of the prior art. In particular, an effective protection of the software of a textile machine should be achieved. In preferred embodiments of the present invention, electronic "nameplate" concepts are advantageously combined with the aforementioned software protection function. In this case, a control-independent storage of machine-specific data in combination with a software protection device should be proposed. The object of a further embodiment of the present invention is to propose an improved operating hour count in a textile machine in conjunction with a software protection device.
The object is achieved by a software protection device having the features of claim 1, a textile machine having the features of claim 22 and by a control method having the features of claim 29.
The inventive software protection device for a textile machine with a programmable controller has a data memory for receiving software enabling data and a data interface, which is used for data transmission between the data memory and the control of the textile machine to the control of the textile machine. Software enable data is data required by a programmable controller to invoke a particular software. If the software protection device according to the invention is connected to the relevant textile machine, the software release data stored or stored in the data memory can be transmitted to the controller, which is then able to call or start a specific software option.
By means of the inventive software protection device, it is possible to selectively release different program versions or different program components of the textile machine. For this purpose, it is only necessary to store selective software release data in the data memory. The software protection device according to the invention can in principle be used in conjunction with any textile machine which has a programmable controller. It is irrelevant whether the controller is formed centrally or decentrally with multiple control components. It is only essential that the protective device and the control of the textile machine are coordinated.
Advantageously, the software protection device has a microcontroller for controlling the data transmission and / or for processing incoming or outgoing data. By means of a microcontroller can be realized in a cost effective and easy way a variety of functions of the software protection device. The microcontroller is controlled by its own software of the software protection device, which is designed such that it is impossible for a third party to produce a functional replica of the software protection device. The software must also be designed so that it is impossible for a third party to read stored software release data.
It is advantageous if the software that controls the microcontroller is stored in an OTP memory. The use of a write-once OTP memory ensures that third parties in an unauthorized manner their own software in the software protection device, which could allow misuse, especially the reading of the stored software release data.
Advantageously, the software release data and, if desired, further data in the memory of the software protection device are stored encrypted or deposited. In this case, these data can not be brought into possession by unauthorized third parties, even if they remove the memory from the software protection device and read out by an appropriate tool.
To further improve the software protection, it is advantageous if the microcontroller for encrypting outgoing data, in particular of release data and / or for decrypting encrypted incoming data is formed. Thus, it is not possible for third parties to analyze the traffic between the software protection device and the textile machine for the purpose of misuse. In principle, any known encryption method can be used, it is only essential that the encryption methods of textile machines and software protection device are compatible.
If it is desired to arrange the software protection device in a spatial distance from the particular textile machine concerned, for example, in a plant center, from which several textile machines are monitored, the software protection device can be designed so that it is a point-to Point connection to the textile machine is attachable. For this purpose, the data interface of the software protection device can be designed, for example, as a modem or as an ISDN interface.
Advantageously, the connection can be made via an existing data network. In principle, any local or wide area network is suitable for this purpose, the software protection device then being equipped with a data interface adapted to the respective data network. In a particularly advantageous embodiment, the software protection device is designed such that it can be connected to an internally existing data connection of the textile machine. This is especially to think of a machine bus. The connection can then take place at any point on the textile machine to which the machine bus is accessible.
If the machine bus of the textile machine is a CAN bus, then it is particularly advantageous if the microcontroller of the software protection device has an integrated CAN controller and the data interface is a CAN driver. In this case, the data connection between control of the textile machine and the software protection device can be realized in a particularly simple and cost-effective manner.
It is advantageous here if the data interface is designed for galvanically isolated integration into the data connection of the textile machine. As a result, problems can be avoided by a different electrical potential between software protection device and textile machine.
In principle, any known type of memory may be used to store the software enabling data. However, it is particularly advantageous if a nonvolatile memory, in particular a serial FRAM, is used. An FRAM (ferromagnetic RAM) is particularly suitable for the secure long-term storage of data, since it does not need a power supply for storing data, so it is not volatile.
Advantageously, the data memory, the microcontroller and the data interface are arranged on a common board. This makes it possible to realize a particularly compact design. Also, an increased mechanical stability of the software protection device is ensured.
Furthermore, it is advantageous if a housing is provided with fastening means for attaching the software protection device to the textile machine. The housing protects the electronics of the software protection device from external influences which occur during intended use of the software protection device. Furthermore, the case offers some protection against manipulation attempts by third parties. To protect the software protection device, the housing may be designed so that the software protection device is destroyed during an opening attempt. For the same purpose, it is possible to shed the electronics inside the case. For this purpose, for example, a casting resin can be used.
Often it will be advantageous to arrange the software protection device in a control cabinet of the respective textile machine. There, the software protection device can be arranged on a DIN rail usually available. For this purpose, it is advantageous if the fastening means of the housing of the software protection device are designed for mounting on such DIN rail.
To supply the electronics of the software protection device, this may comprise a power supply, which is connectable for example via a supply line to a power supply network of the textile machine. In this case, the power supply is used in particular for adapting a supplied electrical voltage to the required input voltage of the software protection device.
Advantageously, the power supply is assigned a monitoring module, which monitors, for example, the concern of the external voltage and / or the function of the power supply.
Furthermore, it is advantageous if a means for displaying operating states of the software protection device is provided. This means, for example a light-emitting diode, can indicate, for example, functional states of the data interface or of the power supply. This provides a simple possibility of monitoring the functions of the software protection device and thus a possibility of rapid fault diagnosis.
It can also be provided that means for adapting the software protection device to physical parameters of the textile machine are provided. In particular, jumpers, DIP switches or solder bridges are considered. This makes it possible to adapt identical software protection devices to different textile machines. For example, the software protection device can be adapted to the baud rate of the data connection of the textile machine without intervention in the hardware or software.
Such means as jumpers, DIP switches or solder bridges can also be provided for setting a parameter which serves to control the data transmission between the software protection device and the textile machine. For example, the software protection device can be assigned a bus or network address by means of this means. In the case of a CAN bus, an identifier can be set here, by means of which the software protection device recognizes relevant data packets on the CAN bus.
Although it is provided as a rule that a protective device is provided for exactly one textile machine, it may be advantageous if a software protection device is designed to interact with several textile machines. Thus, it is possible, for example, with a single software protection device, the software to protect a whole production line, which consists of successively arranged textile machines. It is also conceivable to protect an entire system with several parallel production lines. In this case, the software protection device is to be designed such that an individual data exchange with each connectable textile machine is possible.
It is particularly advantageous if the software protection device is designed such that machine-specific data of the textile machine can be stored. Machine-specific data of the textile machine are in particular the machine type, the machine configuration, the serial number and the software version of the control software of the textile machine.
Data such as machine type and serial number should be maintained as a rule during the entire lifetime of the textile machine. Other data such as machine configuration or software version, however, may change during the lifetime of a textile machine - possibly several times - between such changes, these data should also be stored safely.
The storage of this machine-specific data in the software protection device causes independent storage of the control of the respective textile machine. In the event of an error in the control of the textile machine, the data thus remains intact. In this case, a failure of the software protection device is relatively unlikely, since it has a much lower complexity compared to the control of a textile machine.
The design of the software protection device as an external memory for machine-specific data of a textile machine requires little or no adjustments with respect to the hardware of the software protection device. Essential elements, such as a data interface for connection to the relevant textile machine and at least one memory are already present at the software protection device and can be used for storing the machine data. For this purpose, generally only an adaptation of the software of the software protection device is required. If the memory of the software protection device for storing the software release data is not volatile, the machine-specific data can be stored long-term and secure.
However, it is also conceivable to use a volatile memory, which is supplied for example by a battery with voltage when the software protection device is disconnected from the mains.
The stored machine-specific data can also be used to improve the software protection function of the device. For example, the device may be designed in such a way that certain software release data are output or not output depending on the serial number. As a result, improper use of the software protection device can be effectively prevented.
Furthermore, it is particularly advantageous if the software protection device is designed alternatively or additionally to the calculation of the operating hours of the textile machine. For this purpose, a signal input to the software protection device can be provided, which can be connected to the textile machine in such a way via a signal instruction that an operating signal is applied to the software protection device when the textile machine is in operation. In order to avoid manipulation of the operating hours count, it may be provided that software release data can only be output when the operating signal is present. In this way, it can be prevented that the signal line of the operating signal is simply disconnected from the software protection device and thus the operating hours count is interrupted.
The determined operating hours of the textile machine can be stored in the same way as machine-specific data in the software protection device. Machine specific data and hours of operation may be displayed on the software protection device itself, but may advantageously be transmitted via the data interface to a display device of the textile machine and displayed thereon. Likewise, they can be transmitted to the control of the textile machine and used there to control the textile machine.
To protect the data stored in the software protection device against unauthorized reading, it can be provided that the data is password protected. It can be provided, for example, that a corresponding password is stored in the control of the textile machine. If then software release data is requested, the corresponding password is first transmitted from the textile machine to the software protection device. This transmission then preferably takes place in encrypted form. Alternatively it can be provided that required passwords have to be entered manually by an operator at the software protection device or at an input unit of the associated textile machine.
A variety of situations are conceivable in which it is necessary to reconfigure a software protection device. This is required, for example, in a reconfiguration of the textile machine in terms of software technology or hardware technology. Similarly, it may be necessary to adjust the stored operating hours to the actual operating hours, such as when an existing textile machine is to be assigned a new software protection device. In such cases, it is expedient if the corresponding data in the data memory of the software protection device can be changed after transmission of a corresponding password. A required reconfiguration of a software protection device preferably takes place with a configuration device to which the software protection device can be connected.
Such a device can be integrated, for example, in the control of a textile machine. It is also conceivable, however, for a portable computer, for example a laptop, to be configured for the reconfiguration of software protection devices of the type according to the invention.
A textile machine of the inventive type has a programmable controller, which is suitable to work on the basis of at least one predetermined software option. It is designed for data exchange with a software protection device, wherein the software protection device has a data memory and software release data can be stored in the data memory. The control of the textile machine is designed such that it can bring a software option to advantage only if it has received software release data corresponding to this software option from the data memory of the software protection device. The software protection device with the stored release data is made available to the operator of the textile machine by the manufacturer of the textile machine.
This makes it possible for the manufacturer of the textile machine to prevent the use of software options for which the operator of the textile machine has not been granted a license. This also eliminates an incentive to unauthorized creation of copies of a software of a textile machine.
Particularly advantageously, the textile machine is designed such that the data traffic between the textile machine and the software protection device is encrypted. The encryption particularly includes, but is not limited to, software release data. The control of the textile machine is designed for encrypting data to be sent to the software protection device and for resolving the data sent encrypted by the software protection device. Regardless of the transmission path, it is ensured that third parties can not acquire software release data, even if they monitor the data traffic between the textile machine under software protection device.
Advantageously, the control of the textile machine is designed such that it independently requests required release data from the data memory of the software protection device. It is also advantageous if the control of the textile machine for reconfiguring the software protection device can be used. Separate means for configuring a software protection device can then be dispensed with.
It is further preferred that the control of the textile machine is designed or programmed such that the call of software release data is encrypted during transmission. In this case, the data memory of the software protection device is connected to a microprocessor which is programmed to resolve the encryption.
If the textile machine is provided for internal data transmission during its operation with at least one internal data connection, in particular with a machine bus, then the textile machine is advantageously designed so that the data memory of the software protection device with the internal data connection can be brought into connection.
In this case, this internal data connection can be in particular a CAN bus. This can be advantageously used for data transmission between the controller and the data memory.
To prevent that after the successful release of a software option, the software protection device is separated from the textile machine and then connected in abusive form with another textile machine, it is advantageous to form the controller such that the release must be repeated, for example, periodically , If the repeated release is not performed because, for example, the software protection device is removed, the function of the corresponding software options can be overridden by the control of the textile machine.
Advantageously, the textile machine is designed such that the software protection device cooperates with the central machine control of the textile machine. The application software of the textile machine is only released when the central machine control receive appropriate software release data halt. In an advantageous manner, the textile machine is designed for the transmission of an operation-indicating signal to the software protection device. This makes it possible to perform the operating hours detection by the software protection device.
It is also advantageous if the textile machine is designed to trigger machine-specific data from the data memory of the software protection device.
Embodiments of the invention will now be explained in more detail with reference to the figures. Show it:
<Tb> FIG. 1 <sep> is a copy of Fig. 1 of DE-A-10 153 457;
<Tb> FIG. 2 <sep> is a schematic representation of a first embodiment of the invention, this representation also being used to explain various types of software in a textile machine;
<Tb> FIG. 3 <sep> a software protection device that interacts with multiple textile machines.
Fig. 1 shows a schematic block diagram of the communication structure of a rotor spinning machine with a plurality of spinning units ("slitting machine"), the rotor spinning machine basically only serves as an example of a textile machine with a programmable controller. Virtually all textile machines, in particular
Ring spinning machines, e.g. according to EP-B-832 997
Air spinning machines
Stretching e.g. according to DE-A-10 153 999 and others
Spinning mill preparation fiber processing machines
Automatic winder z. B. according to DE-A-19 907 684 nowadays have such a control, and this list is by no means completely understood.
The rotor spinning machine 10 in Fig. 1 has a central machine control 20, which is connected via an external communication link 11 with a system controller 12. The investment control 12 will not be discussed here. The machine controller 20 controls and monitors the production at the spinning machine 10. The machine controller 20 is connected to a bus distributor 22 via an internal communication link 21. The bus distributor 22 drives a machine bus 25 and undertakes, among other things, router functions for data communication. For data exchange with the bus distributor 22 a piecing robot 24 is connected via a communication line 23 to the machine bus 25, as an alternative, a direct communication line (indicated by dashed lines) between the bus distributor 22 and the piecing robot 24 may be provided.
From the machine bus 25 branches off a communication link 27, which connects the bus 25 to a drive frame controller 26. The drive frame control 26 controls the main drives of the spinning machine 10 in a manner known per se. The spinning stations of the machine 10 are combined to form sections 30a-d, with 16 or 20 spinning stations being present per section, for example. Each of the sections 30a-d has a central section controller 31a-d. Each section controller 31a-d is connected to the machine bus 25 via a communication link 32a-d. Four section controllers 31a-d are shown by way of example in FIG. 1, with substantially more than four section controllers being provided in a spinning machine.
The details of the section 30a are representative of the other sections shown in more detail. The section controller 31a operates inter alia as a communication device between the machine bus 25 and a section bus 40, wherein the section controller 31a takes over as a driver router functions for the section bus 40. Communication-capable units or assemblies of each spin point 41a, 41b of the section 30a are connected to the section bus 40 via communication links 62, 63, 64, 65. So z. B. in the section 30a a thread monitor 42 via the communication link 62, a yarn cleaner 43 via the communication link 63, a sliver disassembling device 44 via the communication link 64 and a spinning station control 45 via the communication link 65 to the bus 40.
Each of the units 42, 43, 44, 45 has a communication control device 52, 53, 54, 55 which controls the communication with the bus 40. The communication devices can be designed as pure receiving devices, for example for an actuator or an actuator that responds only to information or control data. Or the communication control devices may be designed as pure transmission devices, for example in a sensor device that sends only information or control data to the bus 40. Preferably, however, the communication controllers are bi-directional so that both commands or information can be received as well as information and control data sent. For the operation of the illustrated system as a whole, reference is made to the description in DE-A-10 153 457.
In the preferred embodiment, each bus 25 or 40 is implemented as a CAN bus (CAN = Controller Area Network). The CAN bus is known to connect several equal components (so-called nodes or nodes) with each other, eg. B. by means of a 2-wire bus device or by optical fibers. During data transmission in a CAN bus, no nodes are addressed, but the content of a message is identified within the Controller Area Network by a unique "identifier". In addition to the content tag, the identifier also determines the priority of the message. By means of an acceptance test, all stations determine after correct receipt of the message on the basis of the identifier whether the received data are relevant for them or not.
On a CAN bus, each participant may send data without a special request from a master. If there are collisions, they will be fixed by hardware and by repetition. A collision is detected by a transmitter reading back and comparing the sent identifier itself. In case of inequality there was a higher priority participant who claimed the leadership. The "excluded" from the bus transmitter then tries again to transmit his message until he succeeds.
A CAN message is packed in a CAN bus own form. The package is referred to as a "frame" and consists of 7 maps, each with its own dedicated function (e.g., "Message Identifier").
The data flow on a CAN bus is normally controlled by means of a largely standardized access method (protocol) - "CANopen". The assignment of the message identifier takes place here automatically based on the node number set on the participating node.
The invention is not limited to use in combination with a CAN bus. The CAN bus is, however, for its high interference immunity and low cost, z.T. because of wide acceptance and corresponding standardization degree, known and is therefore frequently used in textile machines. Precisely because of the high degree of standardization, it is particularly easy to determine what is going on at any time on a CAN bus - for this purpose, even special devices ("CAN analyzers") have been developed and made available for sale. This facilitates the "task" of software copying.
In the example of Fig. 1, the term control includes the machine controller 20, the engine rack controller 26 and the section controllers 31a to 31d. In principle, further control components, for example at the workstation level, may be provided. At least one component of the controller has a programmable design, that is to say comprises a CPU (Central Processor Unit).
A modern textile machine with a programmable controller must be provided with different types of software, as will now be explained with reference to FIG. 2. FIG. 2 shows, for a better overview of the controller 28, only the machine control 20 and a section controller 31, both of which are constructed on the same principle and in particular comprise a CPU. However, the controller 28 may include other components that are programmable or not programmable. For the purpose of explanation, in Fig. 2, various types of data (including software or programs) are assigned to different "boxes" - but this has been done so only to facilitate the illustration or explanation.
Whether or not the data is so separately managed in practice depends on the computer system chosen and in principle has nothing to do with the present invention.
In Fig. 2, three data types are indicated schematically, namely
an operating system that is basically required for the operation of the computer system and is usually chosen and specified by the computer manufacturer. The operating system is called up and is used accordingly, each time as a first step after the computer system is switched on:
Application programs (collectively, application software) selected and specified by the machine manufacturer, and in operation responsible for the orderly control of the machine hardware according to a predetermined concept.
Work data quasi-continuously supplied by the machine during operation, and which must be processed according to the application software by means of predetermined routines (loops) in order to continuously ensure the maintenance of the various machine functions.
The application software is of particular interest in the context of this invention. The entire application software stored in a particular machine may include many different individual programs, for example: a) different versions of the same basic program, for example, to take into account different stages of development of the machine itself. DE-A-10 212 712 shows e.g. a further development of the arrangement which is described in DE-A-10 153 457 and in Fig. 1 of the present application.
Both programs (ie both a program according to DE-A-10 153 456 and a "successor program" according to DE-A-10 212 712) can be present in the same application software, whereby only one program variant is brought to bear for a given machine It should be, if only because this variant is suitable for the given machine, or if it is because the user of the machine has chosen this variant and has committed to pay the license fees (or paid the fees when buying the machine flat rate Has). Without calling and enacting a basic program, a modern textile machine 10 is not effectively operable, i. the user must choose a particular basic program, or even have his machine work on a specific basic program. A basic program for the whole machine includes e.g.
Startup routine and routine for normal operation, where the normal operation routine will provide various user-selectable settings. However, the same principle applies to a quasi-autonomous working unit, such as a piecing robot for a rotor spinning machine.
(B) various options (supplementary programs) that are not part of the basic equipment of the application software but are required to operate specific technical or technological functions. The machine user can then choose whether he wants to provide such a function for his machine. Examples can be taken from the following documents:
DE-A-10 153 999 "Simulation Method for a Spinning Machine";
DE-A-10 143 875 "Method for setting operating parameters of a textile machine";
DE-A-4 131 247 "Method of supporting maintenance work";
DE-A-10 2004 014 257 "Prescription Management in a Textile Machine";
DE-A-10 340 234 "Remote control in a textile machine installation", it being clear to the person skilled in the art that this list is by no means complete.
The actual options in a specific case depend on the machine type and its equipment. The machine or the autonomous unit can basically run without these options, whereby the function corresponding to the option can not be executed.
There is now often interest on the part of various parties (machine users, competitors of the machine manufacturer, software development companies ....) to copy application software without authorization or to run, the machine manufacturer is interested in preventing this as possible. The present invention is concerned with this task.
The preferred solution of the task is now to equip the machine 10 on the one hand with a software protection device, a so-called "dongle", or with a "dongle function", as shown schematically in Fig. 2, on the other hand, the Store application software such that it can be made effective only after release by the dongle 100. The dongle 100 according to FIG. 2 is basically realized as a data memory, this function being carried out in FIG. 2 by means of the memory 102. The dongle 100 is an independent module which can be arranged inside or outside the machine 10. , It is only essential that the machine 10 and the dongle 100 are designed for data exchange. The dongle 100 can be loaded with data representing software release codes.
The data memory 102 is therefore intended to be designed for non-volatile long-term storage of the release data and can be realized for this purpose, for example in the form of a ferromagnetic RAM.
The release of the application software or a specific software program then takes place in that the machine control 20 or another component of the controller 28, which needs a particular program to operate their control routines, a "request" to the Dongle 100 sends and receives in response to the release code stored in dongle 100. If the data received from the dongle 100 is plausible and corresponds to programs available to the querying controller 28, the controller 28 itself retrieves and asserts the corresponding individual programs from memory. The controller 28 is therefore programmed to control the data received from the data memory 102 for plausibility.
If no usable release codes are received from the dongle 100 or if the released codes correspond to programs that are not available to the requesting control unit 20, 31, the execution of the corresponding machine function may be interrupted or not initiated. If a component of the controller 28, that is, for example, the central machine controller 20 (FIG. 1), sends a query and does not receive any useful information, the run-up of the machine as a whole can be interrupted or prevented.
The dongle 100 is therefore provided with its own microprocessor (controller) 117 and a data port 104, whereby the microprocessor [micro] P117 for the bilateral exchange of data with at least one control unit 20, 31 of the machine via a machine bus 106 (for example Bus 25 and / or bus 40, Fig. 1) is arranged. If the dongle 100 is provided for cooperation with a CAN bus 106, the microprocessor 117 can be provided with a CAN controller 105 and a CAN driver 104. The dongle 100 can be integrated directly into the CAN bus 106, so he is equal participants with respect to the traffic on the bus 106th
It is advantageous if the CAN driver 104 is designed such that a galvanically isolated integration into the CAN bus takes place, since so differences in the electrical potential between the textile machine 10 and dongle 100 can not adversely affect.
To supply the electronics, the dongle preferably also includes a power supply 114, which can receive electrical energy from the machine via a supply line 116 and is provided with a converter for adapting the machine voltage to the working voltage of the dongle electronics. The power supply unit 114 is preferably assigned a monitoring module 112. In the absence of mains voltage can then be triggered, for example, an alarm function.
The retrieval of the release data is preferably carried out after commissioning of the operating system, but before the start-up of any application software and also leads preferably to abort or not occur on the start routine of the basic program, if the release of the dongle is not given. At least one of the control units (21, 31) with its computer (CPU) can be programmed accordingly. However, it can be asked with advantage regularly during normal operation after confirmation of the release - this is a confirmation that the software releasing dongle 100 is still coupled to the bus 106.
The software release method is preferably designed so that it can not be analyzed by a generally (off-the-shelf) method of investigating what is happening on the bus 106 (eg, at the interface 104). In order to make the analysis of the method by means of a bus analyzer coupled to the bus 106 more difficult, the data of the release request is preferably also encrypted by the control unit 20, 31, wherein this data has to be decoded by the dongle 100.
The software release data provided by the dongle 100 are therefore preferably issued encrypted and the programming of the dongle 100 may include a corresponding encryption algorithm. The encryption can e.g. with the help of a random generator and the dongle can be programmed accordingly. The control unit 20, 31 of the machine 10 must be programmed such that its computer CPU is able to resolve the encryption and obtain the release data therefrom.
If now an application software for operating the textile machine 10 by a programmable control unit 20, 31 are started, it is preferred in this or another control unit first a special query procedure (ie a software program) for querying software release data, which in the software protection device 100th are deposited. This query procedure creates an encrypted (coded) query which is transmitted to the dongle 100 and decrypted (decoded) there by software controlling the microcontroller 117 of the dongle 100. The encryption by the control unit 20, 31 may include elements, such as numbers, that are newly generated each time within the controller 28 (e.g., by a random generator).
The software of the dongle 100 now checks which software release data should be returned. In this case, for example, an authorization check on the basis of the previous operating time and / or on the basis of machine-specific data, for example based on the machine type, the machine configuration, the serial number and / or the software version of the textile machine 10. If a software license has been granted for a limited period, the current date can also be used for the authorization check.
In order to prevent a circumvention of the authorization check, for example, the data used for this purpose can be encrypted by the query procedure of the textile machine 10 integrated into the query and then compared with stored in the data memory 102 of the dongle 100 data stored.
After the authorization check, the selected software release data is encrypted and transmitted to the affected control unit where it is then decoded. The response of the dongle 100 may include elements that derive from both the encrypted query and randomly generated data. Now the released application software can be started and used.
This query procedure ensures that it is not possible for unauthorized persons to read out software release data without knowledge of the source code of the query procedure, in order then to use it for abusive activation of software options of the textile machine 10.
To further increase data security, the software release data can be stored encrypted in the data memory 102, that is to say stored.
It also makes sense to store the software of the dongle 100 in an OTP memory (One Time Programmable Memory). An OTP memory can only be written once, so that the once loaded software of the dongle 100 is no longer changeable. As a result, manipulation of the dongle 100, which could allow unauthorized reading of software release options, can be prevented.
The encryption method used in the query of software release data can in principle be chosen freely, it is only essential that the respective control unit 20, 31 and the dongle 100 are designed to carry out the same encryption method.
The software protection device is advantageously designed in addition to the calculation of the operating hours of the textile machine. For this purpose, it is fed via the line 115, a signal, if the machine is in operation. Using bus 115 independent of bus 116, data traffic on bus 106 is not affected by the operation hours detection. In principle, however, the operating signal can also be transmitted via the bus 106.
The operating signal passes via a signal input 113 to the microcontroller 117. This calls at start of operation, the previously stored operating time from the data memory 102 and counts the current operating time, for example, in the second cycle, added. At the end of the operation or after a certain time, the incremented operating time is stored in the data memory 102.
To prevent manipulation of the number of operating hours, the transmission of software enabling data may be dependent on the concern of the operating signal.
Preferably, the dongle 100 is additionally configured for storing machine-specific data such as machine type, machine configuration, serial number and / or software version of the control software of the machine 10. Such data should be long-term, namely for the entire lifetime of the machine, stored and readable. Compared to concepts in which such machine-specific data is stored in a component of the controller (20, 31) of the textile machine 10, storage in the dongle 100 offers the advantage of greater reliability of storage. This in turn is based on the low complexity of the dongle 100 compared to the control of the textile machine, which leads to a lower susceptibility of the dongle 100 to error.
In other words, it is much more likely that during the life of the textile machine 10, a component of the control (20, 31) of the textile machine fails, as that a disturbance in the relatively simple dongle 100 occurs. As a result, the availability of the stored machine-specific data is significantly increased.
In a machine 10 having a CAN bus 116, the dongle 100 can be readily coupled to and polled by this bus 116. For the query, a corresponding message identifier can be defined and integrated in the CAN message frame, wherein the query is preferably assigned a high priority. If a query is sent via the CAN bus 116, it is indeed received by all bus users, but only recognized and processed by the dongle 100 as relevant. When using the CANopen protocol, this message identifier corresponds to the preset node number of the dongle 100. In other cases, the identifier must be defined individually.
For machines with other bus systems the dongle 100 must be assigned at most a separate address, which must then be used in each retrieval by the retrieving controller according to the respective bus protocol. Node number, relevant identifier or bus address may preferably be adjustable via a means 109, in particular via jumpers, DIP switches or solder bridges on the dongle 100, so as to solve conflicts with node numbers, identifiers or addresses of other bus participants to ensure a clear association between the data sent on the bus 116 and the intended recipient.
A dongle 100 according to this invention may be provided at any suitable location in the machine 10 where data coupling to the bus 106 is possible. The design of the dongle 100 basically only has to fulfill the requirement of data storage or coupling on the bus 106. In the preferred embodiment, however, the dongle 100 is formed as a separate device and attached to the machine as firmly as possible. The electronics of the dongle may be mounted on a suitable printed circuit board 119 housed in a housing 108, the housing 108 itself being provided with means 110 for mounting the dongle 100 at a selected location in the machine 10. A suitable location (not shown in Figure 2) is the power distribution point (the control cabinet) of the machine (e.g., according to DE-A-4 316 999 or DE-A-19 535 310).
The power distribution point normally comprises at least one module carrier, e.g. at least one so-called "DIN rail" (Top-Hat Rail), which is often designed according to a DIN or ISO standard. The attachment means 110 on the housing 108 may be designed to cooperate with such a module carrier. Devices of this type are known in principle for other purposes - see e.g. DE-A-19 937 515, which describes, for the plant monitoring, a "single-board microcontroller" consisting of a processor unit, memory means and communication interface, this module being provided for attachment to a DIN rail.
The arrangement of data memory 102, microcontroller 117 and data interface 104 on a common board 119 allows a compact design of the dongle. Advantageously, other hardware components, here the power supply unit 114 with monitoring module 112, the means 107 for displaying operating states of the dongle 100, the means 109 for hardware adaptation of the dongle 100 to the textile machine 10 and the means 111 for setting a parameter for data transmission on the common Board 119 arranged.
The software release data (codes) are as far as practically possible to keep secret, i. they should only be made accessible to the smallest possible number of selected people. The software of a dongle 100 is preferably stored invariably in the OTP memory 120. The values or data preferably stored in the FRAM memory, ie in particular machine-specific data such as machine type, machine configuration, serial number and / or software version of the control software of the machine 10 or the software release data, may, however, be variable, e.g. by service personnel with special powers with the aid of the controller 28 of the textile machine 10 or special facilities.
At best, changing the stored values (reconfiguration) requires access to the memory 102 by means of several passwords which are normally assigned to different persons, i. it would normally take several people to be involved in the reconfiguration at the same time. Such a reconfiguration allows the dongle 100 to be provided with new software release data representing new software capabilities in an existing machine or even allowing it to be reused or reused on another machine. Access to the data memory 102 for reassignment may be via the bus 106 or through a dedicated data exchange means (not shown).
It may further be provided that at least part of the data stored in the data memory (102), in particular the software release data, the machine-specific data and / or the operating hours, is password-protected against unauthorized read-out. For this purpose, it may be provided that the operator is prompted to input a password to the controller 28 before retrieving the relevant data.
For example, it is possible that certain software options can only be activated by authorized persons. This is to think about software functions, which are not required in normal operation of the machine 100, but are required for fault diagnosis and / or maintenance by specially trained service personnel. As a result, for example, improper maintenance can be prevented.
FIG. 3 shows a dongle 100, which is designed to cooperate with several textile machines 10, 10, 10. For this purpose, the dongle 100 is connected via a data network 122 to the textile machines 10, 10, 10. It comprises an interface 104, which is adapted to the execution of the data network 122. The data network 122 may be, for example, a Local Area Network (LAN) or a Wide Area Network (WAN). Then the interface is to be formed as a corresponding network interface.
Alternatively, the dongle 100 could be connected to the textile machines 10, 10, 10 via point-to-point data lines. Then, the interface 104 could be implemented, for example, as a modem or ISDN interface.
The textile machines 10, 10 and 10 in turn communicate via adapted interfaces 121, 121 and 121 with the respective data network 122 or corresponding data lines, the interfaces 121, 121 and 121 via buses 106, 106 and 106 or otherwise are connected to the controls of the textile machines, not shown.
In this way it is possible, for example, to use a dongle 100 for a machine group or an entire system. For example, the dongle 100 may be arranged at a central monitoring device, for example at a higher-level system control.
The invention is not limited to the illustrated embodiments. Numerous modifications of the invention and in particular combinations within the scope of the claims are possible.