[go: up one dir, main page]

DE102007062915A1 - Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information - Google Patents

Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information Download PDF

Info

Publication number
DE102007062915A1
DE102007062915A1 DE200710062915 DE102007062915A DE102007062915A1 DE 102007062915 A1 DE102007062915 A1 DE 102007062915A1 DE 200710062915 DE200710062915 DE 200710062915 DE 102007062915 A DE102007062915 A DE 102007062915A DE 102007062915 A1 DE102007062915 A1 DE 102007062915A1
Authority
DE
Germany
Prior art keywords
function block
key information
function
executable
external
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200710062915
Other languages
German (de)
Inventor
Richard Heyne
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Endress and Hauser Process Solutions AG
Original Assignee
Endress and Hauser Process Solutions AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Endress and Hauser Process Solutions AG filed Critical Endress and Hauser Process Solutions AG
Priority to DE200710062915 priority Critical patent/DE102007062915A1/en
Publication of DE102007062915A1 publication Critical patent/DE102007062915A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13099Function block, OOP, various functions grouped, called by name as servo
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24165Use codes to activate features of controller

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

The method involves inputting an external key information by an input (22) of a functional block (2). A verification is made in the functional block that the inputted external key information corresponds to an associated internal key information (18), where the internal key information is provided in the functional block such that the internal key information is not accessible by externally accessible interfaces of the functional block. The functional block is switched at a feasible state only if the external key information corresponds to the internal key information. An independent claim is also included for a user program for controlling an automation system.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer Speicherprogrammierbaren Steuerung gemäß dem Oberbegriff des Anspruchs 1 sowie ein Anwenderprogramm zur Steuerung einer Anlage gemäß dem Oberbegriff des Anspruchs 11.The The present invention relates to a method of operating a programmable logic controller according to the generic term of claim 1 and a user program for controlling a system according to the generic term of claim 11.

Speicherprogrammierbare Steuerungen (SPS) werden zur Steuerung und/oder Regelung (im Folgenden allgemein als „Steuerung" bezeichnet) einer Maschine oder Anlage (im Folgenden allgemein als „Anlage" bezeichnet) eingesetzt. Eine Speicherprogrammierbare Steuerung ist dabei ein digital arbeitendes, elektronisches System, das einen programmierbaren Speicher zur internen Speicherung von anwenderorientierten Steuerungsanweisungen (Anwenderprogramm) aufweist. Durch solche Anwenderprogramme können verschiedene Funktionen, wie beispielsweise eine Ablaufsteuerung, eine Zählfunktion, eine arithmetische Funktion, eine Verknüpfungssteuerung, etc. implementiert werden, um durch digitale oder analoge Eingangs- und Ausgangssignale der Speicherprogrammierbaren Steuerung eine Anlage zu steuern. Neben den eigentlichen Steuerungsfunktionen führen Speicherprogrammierbare Steuerungen oftmals auch noch weitere Funktionen, wie beispielsweise das Anzeigen von Alarmmeldungen und/oder Statusmeldungen, die Dokumentation des zeitlichen Ablaufs von Meldungen (z. B. Status- und/oder Alarmmeldungen) der Anlage und/oder die Abwicklung der Kommunikation mit den Komponenten der Anlage, aus.Programmable Controllers (PLC) are used for control and / or regulation (hereafter commonly referred to as "controller") Machine or plant (hereinafter generally referred to as "plant") used. A programmable logic controller is a digitally working, electronic system that has a programmable memory for internal Storage of user-oriented control instructions (user program) having. Such application programs allow various functions, such as a sequencer, a counting function, an arithmetic Function, a link control, etc. can be implemented by digital or analogue input and outputs of the programmable logic controller a Control system. In addition to the actual control functions lead programmable Controls often also other functions, such as the display of alarm messages and / or status messages, the documentation the chronological sequence of messages (eg status and / or alarm messages) the installation and / or the handling of communication with the components the plant, off.

Beispielsweise ist die Speicherprogrammierbare Steuerung beim Einsatz in einer Anlage mit Sensoren und Aktoren mit diesen Sensoren und Aktoren über eine Kommunikationsverbindung (analog oder digital) verbunden. Solche Sensoren und Aktoren können insbesondere als Feldgeräte ausgebildet sein, die über einen Feldbus (z. B. Profibus®, HART®, Foundation® Fieldbus, etc.) mit der Speicherprogrammierbaren Steuerung verbunden sind. Sensoren, wie beispielsweise Füllstandsmessgeräte, Temperaturmessgeräte, etc., dienen zur Erfassung von Werten bzw. Variablen einer Anlage. Aktoren, wie beispielsweise Ventile oder Pumpen, dienen zur Beeinflussung von Werten einer Anlage. Die Sensoren dienen dabei als Geber von Signalen und sind dementsprechend mit einem Eingang der Speicherprogrammierbaren Steuerung verbunden. Die Aktoren bzw. Stellglieder werden von der Speicherprogrammierbaren Steuerung in Abhängigkeit von den erfassten Sensorsignalen gesteuert und sind dementsprechend mit einem Ausgang der Speicherprogrammierbaren Steuerung verbunden.For example, when used in a system with sensors and actuators, the programmable logic controller is connected to these sensors and actuators via a communication link (analog or digital). Such sensors and actuators may be designed as field devices via a field bus (z. B. ® Profibus, HART ®, ® Foundation Fieldbus, etc.) are connected to the programmable logic controller in particular. Sensors, such as level gauges, temperature measuring devices, etc., are used to record values or variables of a system. Actuators, such as valves or pumps, are used to influence the values of a system. The sensors serve as encoders of signals and are accordingly connected to an input of the programmable logic controller. The actuators or actuators are controlled by the programmable logic controller in response to the detected sensor signals and are accordingly connected to an output of the programmable logic controller.

Speicherprogrammierbare Steuerungen weisen ein Betriebssystem auf, das in der Regel von dem Hersteller der Speicherprogrammierbaren Steuerung mitgeliefert wird. Ferner ist auf der Speicherprogrammierbaren Steuerung ein Anwenderprogramm implementiert, durch das eine Steueranweisungen ausgeführt werden. Daneben können durch das Anwenderprogramm, wie oberhalb erläutert wird, noch weitere Funktionen ausgeführt werden. Diese Steueranweisungen sind in dem Anwenderprogramm entsprechend der jeweiligen Anwendung implementiert. Das Betriebssystem sorgt dafür, dass die Eingänge, die von den Gebern (von Signalen) bereitgestellt werden, dem Anwenderprogramm zur Verfügung stehen, was auch als Lesen der Eingänge bezeichnet wird. Das Anwenderprogramm führt dann in Abhängigkeit von den Eingangswerten die Steueranweisungen aus. Hierbei verknüpft es die Eingangswerte und intern in der Speicherprogrammierbaren Steuerung gespeicherte Werte nach der im Anwenderprogramm gegebenen Logik und liefert als Ergebnis die Ausgangswerte. Das Schreiben der Ausgänge erfolgt dann wiederum durch das Betriebssystem. Das Lesen und Schreiben der Eingänge und Ausgänge durch das Betriebssystem erfolgt in der Regel zyklisch, es kann jedoch auch ereignisorientiert erfolgen.Programmable Controls have an operating system that is usually of the type Manufacturer of the Programmable Logic Controller is included. Further, on the programmable logic controller is a user program implemented by which a control statements are executed. In addition, you can through the user program, as explained above, even more functions accomplished become. These control statements are corresponding in the user program implemented by the respective application. The operating system provides for this, that the entrances, provided by the encoders (signals), the user program to disposal what is also called reading the inputs. The user program then leads in dependence from the input values the control statements. Here it links the Input values and internally in the programmable logic controller stored values according to the logic given in the user program and returns the output values as a result. The writing of the outputs takes place then again through the operating system. The reading and writing the entrances and outputs The operating system is usually cyclical, it can but also event-oriented.

Je nach Einsatzbereich und Anwendung müssen entsprechende Anwenderprogramme, durch welche die gewünschten Steuerungsfunktionalitäten ausführbar sind, bereitgestellt werden. Solche Anwenderprogramme werden von verschiedenen Herstellern angeboten. In den Anwenderprogrammen sind in der Regel jeweils eine Mehrzahl von einfachen Funktionen in Funktionsblöcke gruppiert. Insbesondere werden einfache Funktionen, wie beispielsweise UND-Funktionen, ODER-Funktionen, etc., derart miteinander verknüpft und in Funktionsblöcke gruppiert, dass durch die einzelnen Funktionsblöcke jeweils eine oder mehrere Steuerungsfunktion(en), wie beispielsweise eine PID-Funktion, oder auch anderweitige Funktionen bereitgestellt wird/werden. Ein Anwender kann dann die von dem Anwenderprogramm bereitgestellten Funktionen nutzen und je nach Anwendung in geeigneter Weise kombinieren.ever according to application and application, corresponding user programs, through which the desired Control functionalities are executable, to be provided. Such application programs are of various types Offered to manufacturers. In the user programs are usually each group a plurality of simple functions in function blocks. In particular, simple functions, such as AND functions, OR functions, etc., linked together in such a way and grouped into function blocks, that each of the individual function blocks one or more Control function (s), such as a PID function, or Other functions are / will be provided. A user can then use the functions provided by the user program use and combine according to the application in a suitable manner.

Das Erstellen von Anwenderprogrammen und von Funktionsblöcken der oben angegebenen Art ist mit Kosten und Aufwand verbunden. Um zu verhindern, dass die in einem Funktionsblock enthaltenen Funktionen und deren interne Verknüpfung für unbefugte Dritte einsehbar sind, werden Funktionsblöcke teilweise derart gekapselt, dass diese Informationen für Dritte nicht einsehbar sind. Dritte können dann beispielsweise nur Informationen über die Anzahl und Art der Eingänge und Ausgänge eines Funktionsblockes erhalten. Werden solche Funktionsblöcke durch einen unbefugten Dritten kopiert, so können sie trotz dieser Kapselung in eine andere Anwendung eingebunden und genutzt werden. Denn die oberhalb angegebene Kapselung verhindert nicht, dass der kopierte Funktionsblock in den Ablauf eines Programms einer Speicherprogrammierbaren Steuerung eingebunden und ausgeführt wird. Demnach besteht kein ausreichender Schutz davor, dass das Anwenderprogramm selbst oder einzelne Funktionsblöcke durch einen unbefugten Dritten aus dem Anwenderprogramm kopiert und ohne Berechtigung genutzt werden.The creation of user programs and function blocks of the type mentioned above is associated with costs and effort. In order to prevent the functions contained in a function block and their internal link being visible to unauthorized third parties, function blocks are partially encapsulated in such a way that this information is not visible to third parties. For example, third parties can only receive information about the number and type of inputs and outputs of a function block. If such function blocks are copied by an unauthorized third party, they can be integrated and used in another application despite this encapsulation. Because the above-mentioned encapsulation prevents not that the copied function block is involved in the execution of a program of a programmable logic controller and executed. Accordingly, there is insufficient protection against copying the user program itself or individual functional blocks by an unauthorized third party from the user program and used without authorization.

Demgemäß besteht die Aufgabe der vorliegenden Erfindung darin, eine unbefugte Weiterverbreitung und Nutzung von Funktionsblöcken, die in einem Anwenderprogramm vorgesehen sind, zu verhindern oder zumindest zu erschweren.Accordingly, there is the object of the present invention therein, an unauthorized retransmission and use of function blocks, which are provided in a user program to prevent or at least to complicate.

Die Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und durch ein Anwenderprogramm gemäß Anspruch 11 gelöst. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.The The object is achieved by a method according to claim 1 and by a User program according to claim 11 solved. Advantageous developments of the invention are specified in the subclaims.

Gemäß der vorliegenden Erfindung wird ein Verfahren zum Betreiben einer Speicherprogrammierbaren Steuerung bereitgestellt, wobei auf der Speicherprogrammierbaren Steuerung ein Anwenderprogramm zur Steuerung einer Anlage implementiert ist und wobei das Anwenderprogramm mindestens einen Funktionsblock, durch den mindestens eine Funktion ausführbar ist, aufweist. Der Funktionsblock weist dabei einen Zustand, in dem er ausführbar ist, und einen Zustand, in dem er nicht ausführbar ist, auf. Zur Schaltung des Funktionsblockes von dem nicht ausführbaren Zustand in den ausführbaren Zustand werden nachfolgende Schritte durchgeführt:

  • A) Eingeben mindestens einer externen Schlüsselinformation über mindestens einen Eingang des Funktionsblockes;
  • B) Verifizieren in dem Funktionsblock, ob die eingegebene mindestens eine externe Schlüsselinformation mindestens einer zugehörigen internen Schlüsselinformation entspricht, wobei die interne Schlüsselinformation in dem Funktionsblock derart hinterlegt ist, dass sie nicht über extern zugängliche Schnittstellen des Funktionsblockes zugänglich ist; und
  • C) Schalten des Funktionsblockes in den ausführbaren Zustand nur dann, falls die externe Schlüsselinformation der internen Schlüsselinformation entspricht.
According to the present invention, there is provided a method of operating a programmable logic controller, wherein the memory programmable controller implements a user program for controlling a system, and wherein the user program comprises at least one functional block through which at least one function is executable. The function block has a state in which it can be executed and a state in which it can not be executed. For switching the function block from the non-executable state to the executable state, the following steps are performed:
  • A) inputting at least one external key information via at least one input of the function block;
  • B) verifying in the function block whether the entered at least one external key information corresponds to at least one associated internal key information, wherein the internal key information is stored in the function block such that it is not accessible via externally accessible interfaces of the function block; and
  • C) switching the function block into the executable state only if the external key information corresponds to the internal key information.

Dabei kann insbesondere vorgesehen sein, dass sich der Funktionsblock als Ausgangs- oder Grundzustand in dem nicht ausführbaren Zustand befindet und folglich nicht ausführbar bzw. nutzbar ist. Ein nicht ausführbarer Zustand bedeutet dabei, dass der Funktionsblock die darin vorgesehene(n) Funktion(en) nicht oder nicht korrekt ausführen kann. In dem ausführbaren Zustand hingegen wird/werden die in dem Funktionsblock enthaltene(n) Funktion(en) in korrekter Weise ausgeführt. Ein Anwender oder auch ein Programmteil, der oder das den Funktionsblock nutzen möchte, muss dann, je nach Ausgestaltung des Anwenderprogramms, vor der erstmaligen Ausführung (des Funktionsblockes), vor jeder Ausführung oder in vorbestimmten Zeitabständen die korrekte externe Schlüsselinformation eingeben (Schritt A)), um den Funktionsblock freizuschalten und in den ausführbaren Zustand zu setzen. Es kann insbesondere vorgesehen sein, dass die Schritte A) bis C) immer dann auszuführen sind, wenn ein Anwender oder ein Programmteil eine Ausführungsanfrage an den Funktionsblock stellen. Unter einer einmaligen Ausführung des Funktionsblockes wird dabei verstanden, dass dessen Programmschleife einmal durchlaufen wurde. Für den Fall, dass der Funktionsblock von einem Programmteil genutzt werden soll, d. h. dass ein Programmteil während dessen Ausführung eine Ausführungsanfrage an den Funktionsblock stellt, muss der Programmteil entsprechend angepasst sein, dass durch diesen Programmteil der Schritt des Eingebens (Schritt A)) ausführbar ist.there may be provided in particular that the function block as the initial or default state in the non-executable State is and therefore not executable or usable. One not executable State means that the function block has the function (s) provided therein. do not or do not execute correctly can. In the executable State, on the other hand, will / will be contained in the function block (s) Function (s) performed correctly. A user or too a part of the program that wants to use the function block must then, depending on the configuration of the user program, before the first time execution (of the functional block), before each execution or in predetermined intervals the correct external key information (step A)) to unlock the function block and in the executable Condition. In particular, it can be provided that the Steps A) to C) are always to be executed when a user or a program part, an execution request to the function block. Under a one-time execution of the Function block is understood that the program loop once was passed through. For the case that the function block is used by a program part should be, d. H. that a program part during its execution a execution request to the function block, the program part must be adapted accordingly be that through this program part the step of entering (step A)) executable is.

Ein berechtigter Benutzer, der über die externe Schlüsselinformation verfügt, kann den Funktionsblock folglich nutzen. Hingegen ist die externe Schlüsselinformation einem unbefugten Dritten in der Regel nicht bekannt, so dass dieser den Funktionsblock nicht in den ausführbaren Zustand schalten und nutzen kann. Vorzugsweise ist die mindestens eine, in dem Funktionsblock enthaltene Funktion eine Steuerungsfunktion bezüglich der Anlage.One authorized user who over the external key information features, can therefore use the function block. On the other hand, the external key information an unauthorized third party usually not known, so this one Do not switch the function block to the executable state and use it can. Preferably, the at least one is in the functional block contained function a control function with respect to the system.

Bei der vorliegenden Erfindung kann vorgesehen werden, dass die externe und/oder die interne Schlüsselfunktion spezifisch für einen bestimmten Funktionsblock eines bestimmten Anwenderprogramms gewählt wird. In diesem Fall kann, selbst wenn einem unbefugten Dritten die externe Schlüsselfunktion bekannt ist und er den Funktionsblock in einer Anwendung unbefugt nutzt, anhand der spezifischen Schlüsselfunktion identifiziert werden, aus welchem Anwenderprogramm der betreffende Funktionsblock kopiert wurde.at The present invention can provide that the external and / or the internal key function specific for a specific function block of a specific user program chosen becomes. In this case, even if an unauthorized third party the external key function is known and he the function block in an application without authorization uses, identified by the specific key function become from which user program the relevant function block was copied.

Die (externen und internen) Schlüsselinformationen können bei der vorliegenden Erfindung auf verschiedene Weise ausgestaltet sein. Sie müssen lediglich ermöglichen, dass bei dem Schritt des Verifizierens eine Prüfung dahingehend möglich ist, ob die eingegebene externe Schlüsselinformation korrekt ist und damit eine Berechtigung zur Nutzung des Funktionsblockes vorliegt. Der Schritt des Verifizierens kann dabei, wie auch aus der nachfolgenden Erläuterung hervorgeht, unter Anwendung von weiteren Operationen, insbesondere Funktionen, durchgeführt werden. Insbesondere können die Schlüsselinformationen in Form von Werten, insbesondere Signalen oder gespeicherten Daten, oder auch in Form von Funktionen ausgestaltet sein.The (external and internal) key information can configured in various ways in the present invention be. You only have to enable, that in the step of verifying a check is possible to whether the entered external key information is correct and thus an authorization to use the function block is present. The step of verifying can be, as well as the following explanation using further operations, in particular Functions to be performed. In particular, you can the key information in the form of values, in particular signals or stored data, or be configured in the form of functions.

Die Bedingung, dass die mindestens eine externe Schlüsselinformation der mindestens einen internen Schlüsselinformation entspricht, bedeutet nicht zwangsläufig, dass diese identisch sein müssen. Sie müssen lediglich derart in vorher festgelegter Weise zueinander passen, dass bei dem Schritt des Verifizierens feststellbar ist, ob die korrekte externe Schlüsselinformation eingegeben wurde. Dabei werden die externe und die interne Schlüsselinformation bei dem Schritt des Verifizierens in vorher festgelegter Weise miteinander verarbeitet bzw. kombiniert, was beispielsweise unter Durchführung einer weiteren Operation, insbesondere unter Anwendung einer Funktion, etc., erfolgen kann. Der Schritt des Verifizierens und die externe und die interne Schlüsselinformation sind dabei vorzugsweise derart ausgestaltet, dass dann, wenn die korrekte externe Schlüsselinformation eingegeben wird, der Schritt des Verifizierens zu einem vorbestimmten Ergebnis führt, während der Schritt des Verifizierens bei einer falschen Eingabe zu einem anderen als dem vorbestimmten Ergebnis führt. Folglich wird dann, wenn der Schritt des Verifizierens zu dem vorbestimmten Ergebnis führt, bestätigt, dass die korrekte externe Schlüsselinformation eingegeben wurde. In diesem Fall wird dann der Schritt des Schaltens des Funktionsblockes in den ausführbaren Zustand (Schritt C)) ausgeführt.The Condition that the at least one external key information of at least an internal key information does not necessarily mean that these are identical have to be. You need to just fit together in a predetermined way, that in the step of verifying it is possible to determine whether the correct external key information was entered. Thereby the external and the internal key information become in the step of verifying in a predetermined manner with each other processed or combined, which, for example, by performing a further surgery, in particular using a function, etc., can be done. The step of verifying and the external and the internal key information are preferably configured such that when the correct external key information is entered, the step of verifying at a predetermined Result leads, while the step of verifying a wrong entry to a other than the predetermined result. Consequently, if the step of verifying leads to the predetermined result, confirms that the correct external key information was entered. In this case, then the step of switching of the functional block in the executable Condition (step C)).

Die interne Schlüsselinformation ist in dem Funktionsblock derart hinterlegt, dass sie nicht über extern zugängliche Schnittstellen des Funktionsblockes zugänglich ist. Dadurch kann ein unbefugter Dritter diese interne Schlüsselinformation nicht einsehen oder darauf zugreifen. Beispielsweise kann die interne Schlüsselinformation in einem Speicher, der dem Funktionsblock zugeordnet ist, gespeichert sein. Vorzugsweise ist dabei zusätzlich vorgesehen, dass die interne Schlüsselinformation auch nicht über extern zugängliche Schnittstellen des Anwenderprogramms zugänglich ist.The internal key information is stored in the function block such that it does not have an external connection accessible Interfaces of the function block is accessible. This can be a unauthorized third parties do not see this internal key information or access it. For example, the internal key information stored in a memory associated with the function block. Preferably, this is additional provided that the internal key information also not via external accessible Interfaces of the user program is accessible.

Gemäß der vorliegenden Erfindung kann die Speicherprogrammierbare Steuerung auch mehrere Funktionsblöcke aufweisen. In diesem Fall können diese Funktionsblöcke jeweils unterschiedliche Schlüsselmechanismen (das heißt interne und externe Schlüsselinformationen und Prüfmechanismus für den Schritt des Verifizierens) oder auch jeweils gleiche Schlüsselmechanismen aufweisen. Ferner besteht die Möglichkeit, dass zwei oder mehrere Funktionsblöcke einen gemeinsamen Schlüsselmechanismus aufweisen. Ferner können auch mehrere externe und/oder mehrere interne Schlüsselinformationen für einen Funktionsblock vorgesehen sein, wie dies in den Schritte A) und B) durch die Pluralform angegeben ist. Auf diese Möglichkeit wird in dem Schritt C) und auch in den erläuterten Weiterbildungen der Erfindung nicht jedesmal explizit durch Verwendung der Pluralform hingewiesen.According to the present Invention, the programmable logic controller may also have a plurality of functional blocks. In this case, these can function blocks each different key mechanisms (this means internal and external key information and testing mechanism for the Step of verifying) or the same key mechanisms exhibit. It is also possible to that two or more functional blocks have a common key mechanism exhibit. Furthermore, can also multiple external and / or multiple internal key information for one Function block be provided, as in the steps A) and B) is indicated by the plural form. At this possibility is in the step C) and also in the described developments of Invention not always explicit by using the plural form pointed.

Gemäß einer vorteilhaften Weiterbildung weist die interne Schlüsselinformation eine interne Schlüsselfunktion auf, die innerhalb des Funktionsblockes implementiert ist. Die externe Schlüsselinformation wird dabei an einem Eingang der internen Schlüsselfunktion angelegt. Dies ist programmtechnisch auf einfache Weise realisierbar, da die interne Schlüsselfunktion lediglich zu der/den weiteren in dem Funktionsblock vorgesehenen Funktion(en) hinzugefügt werden muss. Bei dieser Weiterbildung kann auf besonders einfache Weise vorgesehen werden, dass jedesmal dann, wenn der Funktionsblock ausgeführt wird, auch die interne Schlüsselfunktion ausgeführt und die erfindungsgemäße Abfrage der externen Schlüsselinformation durchgeführt wird. Damit gelingt eine besonders einfache Einbindung des erfindungsgemäßen Verfahrens in den normalen Ablauf des Anwenderprogramms in der Speicherprogrammierbaren Steuerung.According to one advantageous development has the internal key information an internal key function which is implemented within the function block. The external one key information is created at an input of the internal key function. This is technically feasible in a simple manner, since the internal key function only to the / further provided in the function block Added function (s) must become. In this development can be particularly simple Be provided that each time the function block is executed, also executed the internal key function and the query according to the invention the external key information carried out becomes. This allows a particularly simple integration of the method according to the invention in the normal course of the user program in the programmable logic controller Control.

Gemäß einer vorteilhaften Weiterbildung wird die externe Schlüsselinformation dauerhaft an einen Eingang der internen Schlüsselfunktion angelegt. Nach einer einmaligen Eingabe der externen Schlüsselinformation muss diese nicht für jede Ausführung des Funktionsblockes erneut eingegeben werden. Alternativ kann vorgesehen sein, dass die externe Schlüsselinformation nur für einen vorbestimmten Zeitraum an einem Eingang der internen Schlüsselfunktion angelegt wird. Nach Ablauf des vorbestimmten Zeitraums wird der Funktionsblock dann wieder in den nicht ausführbaren Zustand geschaltet.According to one advantageous development is the external key information permanently applied to an input of the internal key function. To a one-time entry of the external key information must this not for every execution of the function block are entered again. Alternatively, it can be provided be that external key information only for a predetermined period of time at an input of the internal key function is created. After the predetermined period of the Function block then switched back to the non-executable state.

Die interne Schlüsselfunktion kann derart in dem Funktionsblock implementiert sein, dass die Anwendung derselben nur dann ein vorbestimmtes Ergebnis an deren Ausgang liefert, wenn die korrekte externe Schlüsselinformation an dem entsprechenden Eingang der internen Schlüsselfunktion eingegeben wurde. Nur in diesem Fall wird dann der Funktionsblock in den ausführbaren Zustand geschaltet. Das heißt, der Funktionsblock wird in Abhängigkeit von dem Ausgang der internen Schlüsselfunktion in den ausführbaren Zustand bzw. in den nicht ausführbaren Zustand geschaltet.The internal key function may be implemented in the functional block such that the application it only supplies a predetermined result to its output, if the correct external key information was entered at the corresponding input of the internal key function. Only then is the function block in the executable State switched. This means, the function block is dependent on the output of the internal key function in the executable State or in the non-executable State switched.

Diese Funktionalität kann beispielsweise auf einfache Weise erreicht werden, wenn gemäß einer vorteilhaften Weiterbildung ein Ausgang der internen Schlüsselfunktion mit einem Ausgang der mindestens einen Funktion des Funktionsblockes verknüpft wird. Eine Verknüpfung bedeutet dabei, dass eine (oder auch mehrere) Funktion(en) auf diese beiden Ausgänge angewendet wird. Der Ausgang dieser Verknüpfung beziehungsweise Funktion bildet dann vorzugsweise den Ausgang des Funktionsblockes. Beispielsweise können die beiden Ausgänge an die Eingänge einer UND-Funktion oder einer ODER-Funktion angelegt werden. Wenn der Ausgang der internen Schlüsselfunktion „0" ist, wird bei Verwendung einer UND-Funktion deren Ausgang unabhängig von dem Ausgang der mindestens einen Funktion des Funktionsblockes immer auf den Wert „0" gesetzt. Der Funktionsblock liefert folglich nur dann einen korrekten Ausgangswert und ist damit ausführbar, wenn der Ausgang der internen Schlüsselfunktion „1" ist. In entsprechender Weise wird bei Verwendung einer ODER-Funktion deren Ausgang unabhängig von dem Ausgang der mindestens einen Funktion des Funktionsblockes immer auf den Wert „1" gesetzt, wenn der Ausgang der internen Schlüsselfunktion „1" ist. In diesem Fall liefert der Funktionsblock folglich nur dann einen korrekten Ausgangswert und ist damit ausführbar, wenn der Ausgang der internen Schlüsselfunktion „0" ist.This functionality can be achieved, for example, in a simple manner if, according to an advantageous development, an output of the internal key function is linked to an output of the at least one function of the function block. A link means that one (or more) function (s) is applied to these two outputs. The output of this link or function then preferably forms the output of the function block. For example, the two outputs can be applied to the inputs of an AND function or an OR function. When the off If the internal key function is "0", the output is always set to the value "0" when an AND function is used, independent of the output of the at least one function of the function block. The function block consequently only supplies a correct output value and can therefore be executed if the output of the internal key function is "1." In a corresponding manner, when an OR function is used, its output is always assigned to the output independently of the output of the at least one function of the function block Value "1" is set if the output of the internal key function is "1." In this case, the function block thus only supplies a correct output value and can therefore be executed if the output of the internal key function is "0".

Alternativ kann der Funktionsblock auch in Abhängigkeit von dem Ausgang der internen Schlüsselfunktion in den ausführbaren Zustand bzw. in den nicht ausführbaren Zustand geschaltet werden, wenn ein Ausgang der internen Schlüsselfunktion einen Eingang der mindestens einen Funktion des Funktionsblockes bildet und die mindestens eine Funktion des Funktionsblockes nur dann korrekt ausgeführt wird, wenn an diesem Eingang ein gewünschtes Signal, wie beispielsweise „0", anliegt.alternative The functional block can also be used depending on the output of the internal key function in the executable State or in the non-executable State are switched when an output of the internal key function an input of the at least one function of the function block forms and the at least one function of the function block only then executed correctly, if at this entrance a desired Signal, such as "0", is present.

Gemäß einer vorteilhaften Weiterbildung ist der Funktionsblock derart gekapselt, dass über extern zugängliche Schnittstellen des Funktionsblockes, abgesehen von Informationen über dessen Eingänge und Ausgänge, keine oder nur begrenzte Informationen über den Funktionsblock zugänglich sind. Informationen über die Eingänge und Ausgänge des Funktionsblocks sind beispielsweise die Anzahl und Art der Eingänge und Ausgänge. Dadurch kann insbeson dere verhindert werden, dass unbefugte Dritte Informationen über den Programmcode des Funktionsblockes und damit über dessen detaillierte Funktionsweise erhalten. Ferner kann damit verhindert werden, dass unbefugte Dritte die interne Schlüsselinformation aus dem Funktionsblock auslesen und damit den Funktionsblock unbefugt nutzen können. Diese „Kapselung", die einen Zugriff auf Informationen über den Funktionsblock verhindert, ist dabei bevorzugt speziell für den Funktionsblock vorgesehen. Alternativ oder zusätzlich kann sie auch das gesamte Anwenderprogramm oder auch einen Teil des Anwenderprogramms, der den Funktionsblock enthält, umfassen.According to one Advantageous development of the function block is encapsulated such that over externally accessible Interfaces of the function block, apart from information about its inputs and outputs, No or limited information about the function block is accessible. information about the entrances and outputs of the Function blocks are, for example, the number and type of inputs and Outputs. This can be prevented in particular that unauthorized third parties information about the program code of the function block and thus its detailed functionality receive. It can also be used to prevent unauthorized third parties the internal key information read out of the function block and thus the function block unauthorized to be able to use. This "encapsulation" that gives access on information about prevents the functional block is preferred especially for the function block intended. Alternatively or in addition It can also be the entire user program or even a part of the user program containing the function block.

Gemäß einer vorteilhaften Weiterbildung ist in dem Funktionsblock eine Mehrzahl von internen Schlüsselinformationen hinterlegt und bei dem Schritt des Eingebens wird eine entsprechende Mehrzahl von zugehörigen externen Schlüsselinformationen eingegeben. Dabei wird der Funktionsblock nur dann in den ausführbaren Zustand geschaltet, falls die externen Schlüsselinformationen jeweils den zugehörigen internen Schlüsselinformationen entsprechen. Dabei kann/können die Anzahl und/oder die Art der internen Schlüsselinformationen unterschiedlich zu der Anzahl und/oder Art der externen Schlüsselinformationen sein. Beispielsweise kann eine interne Schlüsselinformation durch eine interne Schlüsselfunktion mit mindestens zwei Eingängen gebildet werden, wobei an zwei Eingängen zwei externe Schlüsselinformationen in Form von bestimmten Werten angelegt werden müssen. Durch die Vorsehung einer Mehrzahl von internen und externen Schlüsselinformationen sind mehrere Schlüssel parallel vorgesehen, so dass dadurch der Schutz vor einer unberechtigten Nutzung des Funktionsblockes weiter erhöht wird. Dabei können auch verschiedene Arten von Schlüsselmechanismen parallel vorgesehen sein.According to one advantageous development is in the function block a plurality from internal key information and in the step of inputting a corresponding plurality from associated external key information entered. In this case, the function block is only in the executable State switched if the external key information respectively the corresponding internal key information correspond. It can / can the number and / or type of internal key information is different to the number and / or type of external key information. For example can be an internal key information by an internal key function formed with at least two inputs being, being at two entrances two external key information must be created in the form of specific values. By the providence of a The majority of internal and external key information is multiple key provided in parallel, thereby protecting against unauthorized Use of the function block is further increased. It also can different types of key mechanisms be provided in parallel.

Gemäß einer vorteilhaften Weiterbildung weist der Funktionsblock einen innerhalb des Funktionsblockes vorgesehenen inneren Funktionsblock auf, durch den mindestens eine Funktion ausführbar ist. Der innere Funktionsblock weist dabei einen Zustand, in dem er ausführbar ist, und einen Zustand, in dem er nicht ausführbar ist, auf. Zur Schaltung des inneren Funktionsblockes von dem nicht ausführbaren Zustand in den ausführbaren Zustand werden nachfolgende Schritte durchgeführt:

  • D) Eingeben mindestens einer externen zweiten Schlüsselinformation über mindestens einen Eingang des inneren Funktionsblockes;
  • E) Verifizieren in dem inneren Funktionsblock, ob die eingegebene mindestens eine externe zweite Schlüsselinformation mindestens einer zugehörigen internen zweiten Schlüs selinformation entspricht, wobei die interne zweite Schlüsselinformation in dem inneren Funktionsblock derart hinterlegt ist, dass sie nicht über extern zugängliche Schnittstellen des inneren Funktionsblockes zugänglich ist; und
  • F) Schalten des inneren Funktionsblockes in den ausführbaren Zustand nur dann, falls die externe zweite Schlüsselinformation der internen zweiten Schlüsselinformation entspricht.
According to an advantageous development, the function block has an inner function block provided within the function block, by means of which at least one function can be executed. The inner function block has a state in which it can be executed and a state in which it can not be executed. For switching the inner function block from the non-executable state to the executable state, the following steps are carried out:
  • D) inputting at least one external second key information via at least one input of the inner function block;
  • E) verifying in the inner function block whether the input at least one external second key information corresponds to at least one associated internal second key information, wherein the internal second key information is stored in the inner function block such that it is not accessible via externally accessible interfaces of the inner function block ; and
  • F) Switching the inner function block in the executable state only if the external second key information corresponds to the internal second key information.

Gemäß dieser Weiterbildung kann der Funktionsblock einen oder mehrere innere Funktionsblöcke aufweisen, die wiederum durch einen Schlüsselmechanismus gesichert sind. Auf diese Weise können die verschiedenen Funktionen eines Anwenderprogramms gestaffelt durch entsprechende Schlüsselmechanismen gegen eine unbefugte Nutzung derselben gesichert werden. In entsprechender Weise kann auch eine mehr als nur zweistufige Staffelung realisiert werden. Vorzugsweise ist die interne zweite Schlüsselinformation in dem inneren Funktionsblock derart hinterlegt, dass sie auch nicht über extern zugängliche Schnittstellen des Funktionsblockes oder des Anwenderprogramms zugänglich ist.According to this Further, the function block may have one or more inner function blocks which in turn are secured by a key mechanism. That way you can staggered the various functions of a user program through appropriate key mechanisms secured against unauthorized use thereof. In appropriate In this way, more than just two-tier staggering can be realized become. Preferably, the internal second key information is in the inner one Function block stored in such a way that they are not via external accessible Interfaces of the function block or the user program is accessible.

Gemäß einer vorteilhaften Weiterbildung wird die externe Schlüsselinformation bei dem Schritt des Eingebens in einen dem Funktionsblock zugeordneten Speicher geschrieben. Ein „dem Funktionsblock zugeordneter Speicher" bedeutet dabei, dass der Funktionsblock auf diese externe Schlüsselinformation in dem Speicher zugreifen kann. Dabei wird die externe Schlüsselinformation vorzugsweise derart in dem Speicher gespeichert, dass sie für den Funktionsblock dauerhaft verfügbar ist. Es kann auch vorgesehen sein, dass die externe Schlüsselinformation nur während der Betriebsdauer der Speicherprogrammierbaren Steuerung dauerhaft verfügbar ist und bei einem Neustart erneut eingegeben werden muss. In beiden Fällen muss die externe Schlüsselinformation nach einer einmaligen Eingabe nicht bei jeder Ausführung des Funktionsblockes erneut eingegeben werden.According to one advantageous development is the external key information at the step of entering into a function block associated with Memory written. A "the Function block allocated memory "means that the function block to this external key information can access the memory. Thereby the external key information becomes preferably stored in the memory such that they are for the function block permanently available is. It can also be provided that the external key information only during the operating life of the programmable logic controller permanently available is and must be entered again when restarting. In both make must be the external key information after a single entry not every time you run the Function block are entered again.

Weist die interne Schlüsselinformation eine interne Schlüsselfunktion auf, so ist diese vorzugsweise derart implementiert, dass an deren Eingang dauerhaft die korrekte externe Schlüsselinformation anliegen muss, um den Funktionsblock in dem ausführbaren Zustand zu halten. Beispielsweise wird immer dann, wenn an dem Eingang der internen Schlüsselfunktion nicht die korrekte externe Schlüsselinformation anliegt, der Funktionsblock in den nicht ausführbaren Zustand geschaltet und in diesem gehalten. Insbesondere bei solch einer Implementierung ist die oberhalb erläuterte dauerhafte Speicherung der externen Schlüsselinformation in einem dem Funktionsblock zugeordneten Speicher vorteilhaft. Dadurch kann auf einfache Weise realisiert werden, dass nach einer einmaligen Eingabe der externen Schlüsselinformation diese dauerhaft an dem Eingang der internen Schlüsselfunktion anliegt und der Funktionsblock somit in dem ausführbaren Zustand gehalten wird. Daneben besteht auch die Möglichkeit, den Eingang der internen Schlüsselfunktion auf eine Hardware-Komponente zu legen, durch welche ein Signal bereitgestellt wird, das der korrekten externen Schlüsselinformation entspricht. Dabei kann auch ein sich zeitlich änderndes Signal, beispielsweise in Form eines Sägezahnsignals, als externe Schlüsselinformation realisiert werden. Beispielsweise können die interne Schlüsselfunktion und solch eine Hardware-Komponente derart ausgebildet sein, dass die Hardware-Komponente an einen externen Anschluss der Speicherprogrammierbaren Steuerung anschließbar ist und über diesen Anschluss das entsprechende Signal an den Eingang der internen Schlüsselfunktion bereitstellt.has the internal key information an internal key function on, it is preferably implemented such that at the Input must permanently bear the correct external key information, to keep the function block in the executable state. For example, whenever is at the entrance of the internal key function not the correct external key information is present, the function block switched to the non-executable state and kept in this. Especially with such an implementation is the above explained permanent storage of the external key information in one Function block associated memory advantageous. This can be up Simple way be realized that after a single input the external key information this is permanently applied to the input of the internal key function and the Function block thus in the executable Condition is maintained. In addition, there is also the possibility the receipt of the internal key function to lay a hardware component through which a signal is provided which corresponds to the correct external key information. It can also be a time-varying signal, for example in the form of a sawtooth signal, as external key information will be realized. For example, the internal key function and such a hardware component be designed such that the Hardware component to an external port of the programmable logic controller connectable is and about this connection the appropriate signal to the input of the internal key function provides.

Gemäß einer vorteilhaften Weiterbildung wird der Funktionsblock nach einer vorbestimmten Anzahl von Ausführungen, insbesondere nach einer einmaligen Ausführung, wieder zurück in den nicht ausführbaren Zustand geschaltet. Das Zurückschalten nach einer einmaligen Ausführung oder nach einer geringen Anzahl von Ausführungen ist insbesondere dann vorteilhaft, wenn die externe Schlüsselinformation von einem anderen Programmteil, und damit automatisiert, eingegeben wird. Alternativ zu der Umschaltung nach einer vorbestimmten Anzahl von Ausführungen kann die Umschaltung auch nach einer vorbestimmten Zeitdauer erfolgen. Diese Variante kann insbesondere dann vorteilhaft sein, wenn der Anwender nur für einen vorbestimmten Zeitraum zur Nutzung des Funktionsblockes berechtigt ist.According to one advantageous development of the function block after a predetermined number of executions, especially after a single execution, back in the not executable State switched. The switchback after a single execution or after a small number of executions is particular then advantageous if the external key information from another Program part, and thus automated, is entered. alternative to the switchover after a predetermined number of executions the switching can also take place after a predetermined period of time. This variant can be particularly advantageous if the user only for entitles a predetermined period of time to use the function block is.

Gemäß einer vorteilhaften Weiterbildung ist der Funktionsblock dann, wenn das Anwenderprogramm in die Speicherprogrammierbare Steuerung geladen und erstmalig gestartet wird, in dem nicht ausführbaren Zustand. Für eine Schaltung des Funktionsblockes in den ausführbaren Zustand sind dann die Schritte des Eingebens, des Verifizierens und des Schaltens (Schritte A) bis C)) durchzuführen. Dadurch wird beim Laden und erstmaligen Starten des Anwenderprogramms überprüft, ob der betreffende Anwender berechtigt ist, den Funktionsblock zu nutzen. Die Prüfung zu diesem Zeitpunkt ist sinnvoll, da das Anwenderprogramm in der Regel auf einem separaten Programmiergerät programmiert wird und anschließend von dem Programmiergerät über eine hierfür an der Speicherprogrammierbaren Steuerung vorgesehene Schnittstelle auf die Speicherprogrammierbare Steuerung geladen wird. Folglich kann auf diese Weise direkt bei dem erstmaligen Starten des Anwenderprogramms die Berechtigung zur Nutzung des Funktionsblockes geprüft werden. Vorzugsweise wird der Funktionsblock anschließend für eine vorbestimmte Zeitdauer während der Laufzeit des Anwenderprogramms in dem ausführbaren Zustand gehalten. Insbesondere kann hierbei vorgesehen werden, dass der Funktionsblock während der gesamten Laufzeit des Anwenderprogramms in dem ausführbaren Zustand gehalten wird.According to one Advantageous development is the function block when the User program loaded in the programmable logic controller and is first started in the non-executable state. For a circuit of the functional block in the executable State are then the steps of entering, verifying and switching (steps A) to C)). This will when loading and first launching the application program checks to see if the user in question is authorized to use the function block. The exam too This time is useful because the user program usually is programmed on a separate programmer and then from the programming device via this one s.der Programmable logic controller provided interface the programmable logic controller is loaded. Consequently, can in this way directly at the first start of the user program the authorization to use the function block is checked. Preferably, the functional block is subsequently for a predetermined period of time while the runtime of the user program held in the executable state. Especially can be provided here that the function block during the entire runtime of the user program in the executable Condition is maintained.

Gemäß einer vorteilhaften Weiterbildung stellt das Anwenderprogramm dann, wenn das Anwenderprogramm in die Speicherprogrammierbare Steuerung geladen und erstmalig gestartet wird, eine Anfrage an einen Benutzer bzw. Anwender, dass dieser den Schritt des Eingebens durchführt. Vorzugsweise wird hierzu durch das Anwenderprogramm auf einer Anzeige eine Bedienoberfläche mit einer entsprechenden Menüführung bereitgestellt. Für die Eingabe der externen Schlüsselinformation kann der Anwender Eingabeelemente, die an der Speicherprogrammierbaren Steuerung vorgesehen sind, verwenden. Dies ermöglicht eine für den Anwender bequeme und übersichtliche Eingabe der externen Schlüsselinformation.According to one advantageous development, the user program then, if the user program is loaded into the programmable logic controller and is first started, a request to a user or User that he performs the step of inputting. Preferably For this purpose, a user interface is displayed on a display by the user program provided an appropriate menu. For input the external key information the user can input elements connected to the programmable logic Control are provided use. This allows one for the user comfortable and clear Enter the external key information.

Neben den oberhalb erläuterten Weiterbildungen, die verschiedene Schlüsselmechanismen betreffen, können bei der vorliegenden Erfindung auch andere Schlüsselmechanismen eingesetzt werden. Diese Schlüsselmechanismen müssen lediglich die oberhalb beschriebene Funktionalität erfüllen, dass der Schritt des Verifizierens bei einer Eingabe der korrekten externen Schlüsselinformation zu einem vorbestimmten Ergebnis führt, während er bei Eingabe einer falschen externen Schlüsselinformation nicht zu dem vorbestimmten Ergebnis führt, so dass eine korrekte Eingabe der externen Schlüsselinformation verlässlich überprüft werden kann.In addition to the above-mentioned developments, which relate to various key mechanisms, other key mechanisms can be used in the present invention the. These key mechanisms need only fulfill the above-described functionality that the step of verifying on input of the correct external key information leads to a predetermined result, while it does not lead to the predetermined result upon input of a wrong external key information, so that a correct input of the external Key information can be reliably checked.

Die vorliegende Erfindung betrifft ferner ein Anwenderprogramm zur Steuerung einer Anlage, wobei das Anwenderprogramm auf einer Speicherprogrammierbaren Steuerung implementierbar ist oder darauf implementiert ist. Das Anwenderprogramm weist mindestens einen Funktionsblock, durch den mindestens eine Funktion ausführbar ist, auf. Der Funktionsblock weist einen Zustand, in dem er ausführbar ist, und einen Zustand, in dem er nicht ausführbar ist, auf. Das Anwenderprogramm ist dabei derart angepasst, dass der Funktionsblock nur dann von dem nicht ausführbaren Zustand in den ausführbaren Zustand geschaltet wird, falls mindestens eine externe Schlüsselinformation, die über mindestens einen Eingang des Funktionsblockes eingegeben wird, mindestens einer zugehörigen internen Schlüsselinformation entspricht, wobei die mindestens eine interne Schlüsselinformation in dem Funktionsblock derart hinterlegt ist, dass sie nicht über extern zugängliche Schnittstellen des Funktionsblockes zu gänglich ist. Ferner betrifft die vorliegende Erfindung eine Speicherprogrammierbare Steuerung für eine Anlage, auf der solch ein Anwenderprogramm implementiert ist. Die in Bezug auf das erfindungsgemäße Verfahren erläuterten Vorteile, Varianten und Weiterbildungen sind in entsprechender Weise auch bei dem erfindungsgemäßen Anwenderprogramm und bei der Speicherprogrammierbaren Steuerung realisierbar.The The present invention further relates to a user program for control a plant, the user program on a programmable logic Control is implementable or implemented. The User program has at least one function block through which at least one function executable is on. The function block has a state in which it is executable, and a state in which it is not executable on. The user program is adapted so that the function block of only the non-executable State in the executable State is switched if at least one external key information, the above at least one input of the function block is input, at least an associated one internal key information corresponds, wherein the at least one internal key information is stored in the function block such that they do not have external accessible Interfaces of the function block is accessible. Further concerns the present invention is a programmable logic controller for one Plant on which such a user program is implemented. The in relation to the method according to the invention explained Advantages, variants and developments are in a corresponding manner also in the user program according to the invention and realized in the programmable logic controller.

Weitere Vorteile und Zweckmäßigkeiten der Erfindung ergeben sich anhand der nachfolgenden Beschreibung von Ausführungsbeispielen unter Bezugnahme auf die beigefügten Figuren. Von den Figuren zeigen:Further Advantages and expediencies The invention will become apparent from the following description of exemplary embodiments with reference to the attached Characters. From the figures show:

1: eine schematische Darstellung eines einfachen Feldbus-Netzwerkes mit einer Speicherprogrammierbaren Steuerung; 1 a schematic representation of a simple fieldbus network with a programmable logic controller;

2: eine schematische Darstellung der Programmstruktur eines Anwenderprogramms einer Speicherprogrammierbaren Steuerung zur Erläuterung einer ersten Ausführungsform der vorliegenden Erfindung; und 2 : a schematic representation of the program structure of a user program of a programmable logic controller for explaining a first embodiment of the present invention; and

3 eine schematische Darstellung der Programmstruktur eines Anwenderprogramms einer Speicherprogrammierbaren Steuerung zur Erläuterung einer zweiten Ausführungsform der vorliegenden Erfindung. 3 a schematic representation of the program structure of a user program a programmable logic controller for explaining a second embodiment of the present invention.

1 zeigt einen möglichen Einsatz einer Speicherprogrammierbaren Steuerung in einer Automatisierungsanlage. In dieser Anlage sind vier Feldgeräte FG0, FG1, FG2 und FG3 und eine Speicherprogrammierbare Steuerung SPS an einem Feldbus F angeschlossen. In dem vorliegenden Ausführungsbeispiel sind die Feldgeräte FG0, FG1 und FG2 Füllstandssensoren, wobei die Feldgeräte FG0 und FG1 den Füllstand in einem ersten (nicht dargestellten) Behälter parallel messen und das Feldgerät FG2 den Füllstand in einem zweiten (nicht dargestellten) Behälter misst. Das Feldgerät FG3 ist eine Pumpe, durch welche Flüssigkeit von dem ersten Behälter in den zweiten Behälter förderbar ist. 1 shows a possible use of a programmable logic controller in an automation system. In this system, four field devices FG0, FG1, FG2 and FG3 and a programmable logic controller PLC are connected to a fieldbus F. In the present exemplary embodiment, the field devices FG0, FG1 and FG2 are level sensors, the field devices FG0 and FG1 measuring the level in a first container (not shown) in parallel and the field device FG2 measuring the level in a second container (not shown). The field device FG3 is a pump through which liquid can be conveyed from the first container into the second container.

In der Speicherprogrammierbaren Steuerung ist ein Anwenderprogramm implementiert, durch das in Abhängigkeit von den Füllständen, die von den drei Füllstandssensoren FG0, FG1 und FG2 gemessen werden, die Pumpe FG3 angesteuert wird. Im vorliegenden Fall soll dabei die (einfache) Steuerungsfunktionalität bereitgestellt werden, dass der Füllstand in dem ersten Behälter einen vorbestimmten ersten Grenzwert nicht übersteigt. Nähert sich der Pegel in dem ersten Behälter dem vorbestimmten ersten Grenzwert, so muss die Pumpe FG3 angesteuert werden, so dass Flüssigkeit von dem ersten in den zweiten Behälter gefördert wird. Damit ein Überlaufen des zweiten Behälters verhindert wird, muss die Pumpe FG3, falls der Pegel in dem zweiten Behälter einen vorbestimmten zweiten Grenzwert übersteigt, gestoppt werden.In The programmable logic controller is a user program implemented by that in dependence from the levels, the from the three level sensors FG0, FG1 and FG2 are measured, the pump FG3 is driven. In the present case, the (simple) control functionality should be provided be that level in the first container does not exceed a predetermined first limit. Approaches the level in the first container the predetermined first limit, the pump FG3 must be controlled, so that liquid is conveyed from the first to the second container. So an overflow of the second container is prevented, the pump FG3, if the level in the second container a exceeds the predetermined second limit, being stopped.

2 zeigt die Speicherprogrammierbare Steuerung SPS, wobei darin die Programmstruktur des Anwenderprogramms schematisch dargestellt ist. Das Anwenderprogramm weist mehrere Funktionsblöcke 2, 4 und 6 auf. Der Funktionsblock 2 weist eine Steuerungsfunktion 8 auf, durch welche die oberhalb erläuterte Steuerungsfunktionalität realisiert wird. Hierzu weist die Steuerungsfunktion 8 drei Eingänge 10, 12 und 14 auf, an denen die Sensorsignale der drei Füllstandssensoren FG0, FG1 und FG2 anliegen. Der Verlauf der Signale, die Eingänge und Ausgänge des Funktionsblockes 2 bilden, ist in 2 nur schematisch dargestellt. Die Steuerungsfunktion 8 verarbeitet die eingegangenen Sensorsignale entsprechend der darin vorgesehenen Logik und liefert an einem Ausgang 16 der Steuerungsfunktion 8 ein Signal, durch welches die Pumpe FG3 angesteuert werden soll. 2 shows the programmable logic controller PLC, wherein therein the program structure of the user program is shown schematically. The user program has several function blocks 2 . 4 and 6 on. The function block 2 has a control function 8th on, by which the above-explained control functionality is realized. This is indicated by the control function 8th three entrances 10 . 12 and 14 on which abut the sensor signals of the three level sensors FG0, FG1 and FG2. The course of the signals, the inputs and outputs of the function block 2 form is in 2 shown only schematically. The control function 8th processes the received sensor signals according to the logic provided therein and delivers them to an output 16 the control function 8th a signal through which the pump FG3 is to be controlled.

Ferner ist in dem Funktionsblock 2 eine interne Schlüsselfunktion 18 vorgesehen, die zwei Eingänge 20 und 22 aufweist. An dem einen Eingang 20 liegt ein im Funktionsblock 2 hinterlegter Wert, der beispielsweise durch eine Zahlenfolge gebildet wird, an. Der hinterlegte Wert und die interne Schlüsselfunktion 18 bilden dabei interne Schlüsselinformationen des Funktionsblockes 2. Über den anderen Eingang 22 kann durch einen Benutzer eine externe Schlüsselinformation eingegeben werden. Im vorliegenden Ausführungsbeispiel wird die interne Schlüsselfunktion 18 durch eine COMPARE-Funktion (Vergleichs-Funktion) gebildet. Die COMPARE-Funktion setzt nur dann eine „1" an ihrem Ausgang 24, falls die externe Schlüsselinformation identisch zu dem im Funktionsblock 2 hinterlegten Wert ist. Andernfalls wird durch die COMPARE-Funktion eine „0" an dem Ausgang 24 gesetzt.Further, in the functional block 2 an internal key function 18 provided, the two entrances 20 and 22 having. At the one entrance 20 is located in the function block 2 stored value, which is formed for example by a sequence of numbers to. The deposited value and the internal key function 18 form internal key information of the function block 2 , Over the other entrance 22 an external key information may be entered by a user. In the present embodiment, the internal key function 18 formed by a COMPARE function (comparison function). The COMPARE function only sets a "1" at its output 24 if the external key information is identical to that in the function block 2 deposited value is. Otherwise, the COMPARE function will make a "0" on the output 24 set.

Der Ausgang 16 der Steuerungsfunktion 8 und der Ausgang 24 der Schlüsselfunktion 18 werden über eine UND-Funktion 26 miteinander verknüpft, wobei die beiden Ausgänge 16 und 24 jeweils Eingänge der UND-Funktion 26 bilden. Der Ausgang 28 der UND-Funktion 26 bildet gleichzeitig den Ausgang des Funktionsblockes 2 und dient zur Ansteuerung der Pumpe FG3. Das Ausgangssignal des Funktionsblockes 2 wird dabei über den Feldbus F zu der Pumpe FG3 weitergeleitet. Wird an dem Ausgang 24 der COMPARE-Funktion 18 eine „1" gesetzt, so wird der Ausgang 16 der Steuerungsfunktion 8 unverändert durch die UND-Funktion 26 zu der Pumpe FG3 weitergeleitet. In diesem Zustand ist der Funktionsblock 2 ausführbar. Wird hingegen an dem Ausgang der COMPARE-Funktion 18 eine „0" gesetzt, so wird der Ausgang des Funktionsblockes 2 unabhängig von dem Ausgang 16 der Steuerungsfunktion 8 immer auf „0" gesetzt. In diesem Zustand ist der Funktionsblock 2 nicht ausführbar. Der Funktionsblock wird folglich in Abhängigkeit von dem Ausgangswert der COMPARE-Funktion 18 und damit in Abhängigkeit davon, ob die externe Schlüsselinformation korrekt eingegeben wurde, zwischen dem ausführbaren und dem nicht ausführbaren Zustand umgeschaltet. In 2 ist die Programmstruktur der Funktionsblöcke 4 und 6 nicht im Detail dargestellt. Diese können jedoch in entsprechender Weise aufgebaut sein.The exit 16 the control function 8th and the exit 24 the key function 18 be via an AND function 26 linked together, with the two outputs 16 and 24 each input of the AND function 26 form. The exit 28 the AND function 26 simultaneously forms the output of the function block 2 and serves to control the pump FG3. The output signal of the function block 2 is forwarded via the fieldbus F to the pump FG3. Will be at the exit 24 the COMPARE function 18 set a "1", so will the output 16 the control function 8th unchanged by the AND function 26 forwarded to the pump FG3. In this state is the function block 2 executable. On the other hand, it will be at the output of the COMPARE function 18 a "0" is set, then the output of the function block 2 regardless of the output 16 the control function 8th always set to "0." In this state, the function block is 2 not executable. The function block thus becomes dependent on the output value of the COMPARE function 18 and thus switched between the executable and the non-executable state, depending on whether the external key information was entered correctly. In 2 is the program structure of the function blocks 4 and 6 not shown in detail. However, these can be constructed in a corresponding manner.

In 3 ist eine schematische Darstellung der Programmstruktur eines weiteren Anwenderprogramms einer Speicherprogrammierbaren Steuerung SPS' dargestellt. Für gleiche Teile werden die gleichen Bezugszeichen wie in 2 verwendet. Im Folgenden wird vorwiegend auf die Unterschiede gegenüber der in 2 dargestellten Ausführungsform eingegangen. Das Anwenderprogramm gemäß dieser zweiten Ausführungsform weist die gleichen Funktionsblöcke 2, 4 und 6 auf, diese sind jedoch anders als in der ersten Ausführungsform miteinander verknüpft bzw. kombiniert. Dadurch ergibt sich auch eine unterschiedliche Steuerungsfunktionalität. Im Unterschied zu der Ausführungsform der 2 wird der Ausgang 28 der UND-Funktion 26 nicht als Steuersignal zu einem entsprechenden Stellglied weitergeleitet.In 3 is a schematic representation of the program structure of another user program of a programmable logic controller PLC 'shown. For the same parts, the same reference numerals as in 2 used. The following is mainly on the differences from in 2 illustrated embodiment received. The user program according to this second embodiment has the same functional blocks 2 . 4 and 6 however, they are linked or combined with each other unlike in the first embodiment. This also results in a different control functionality. In contrast to the embodiment of the 2 will be the exit 28 the AND function 26 not forwarded as a control signal to a corresponding actuator.

Vielmehr bildet das Ausgangssignal der UND-Funktion 26 und damit des Funktionsblockes 2 einen Eingang 32 für eine Steuerungsfunktion 30, die in dem weiteren Funktionsblock 4 vorgesehen ist. Die Steuerungsfunktion 30 weist ferner einen zweiten Eingang 34 auf, an dem im vorliegenden Ausführungsbeispiel ein Sensorsignal eines weiteren (nicht dargestellten) Sensors anliegt. Die Steuerungsfunktion 30 verarbeitet die eingegangenen Signale entsprechend der in der Steuerungsfunktion 30 vorgesehenen Logik und liefert an dem Ausgang 36 der Steuerungsfunktion 30 ein Signal, durch welches ein entsprechendes (nicht dargestelltes) Stellglied angesteuert werden soll.Rather, the output signal forms the AND function 26 and thus the function block 2 an entrance 32 for a control function 30 in the further functional block 4 is provided. The control function 30 also has a second input 34 on, in the present embodiment, a sensor signal of another (not shown) sensor is applied. The control function 30 processes the incoming signals according to the control function 30 provided logic and supplies at the output 36 the control function 30 a signal by which a corresponding (not shown) actuator to be controlled.

Ferner sind in dem Funktionsblock 4 zwei interne Schlüsselfunktionen 38 und 40 vorgesehen, die jeweils zwei Eingänge 42 und 44 bzw. 46 und 48 aufweisen. An dem einen Eingang 42 bzw. 46 liegt ein im Funktionsblock 4 hinterlegter Wert, der beispielsweise durch eine Zahlenfolge gebildet wird, an. Der hinterlegte Wert der ersten Schlüsselfunktion 38 unterscheidet sich dabei von dem hinterlegten Wert der zweiten Schlüsselfunktion 40. Die hinterlegten Werte und die internen Schlüsselfunktionen 38 und 40 bilden dabei interne Schlüsselinforma tionen des Funktionsblockes 4. Über die beiden anderen Eingänge 44 und 48 können durch einen Benutzer jeweils externe Schlüsselinformationen eingegeben werden. Im vorliegenden Ausführungsbeispiel werden die internen Schlüsselfunktionen 38 und 40 jeweils wieder durch eine COMPARE-Funktion (Vergleichs-Funktion) gebildet. Demgemäß setzen die COMPARE-Funktionen nur dann eine „1" an ihren jeweiligen Ausgängen 50 bzw. 52, falls jeweils die eingegebenen externen Schlüsselinformationen identisch zu den jeweils zugehörigen, im Funktionsblock 4 hinterlegten Werten sind. Andernfalls wird/werden durch die betreffende(n) COMPARE-Funktion(en) 38 bzw. 40 jeweils eine „0" an ihrem jeweiligen Ausgang 50 bzw. 52 gesetzt. Demgemäß sind in dem Funktionsblock 4 zwei Schlüsselmechanismen zur Sicherung des Funktionsblockes 4 gegen eine unbefugte Nutzung vorgesehen.Further, in the functional block 4 two key internal functions 38 and 40 provided, each with two inputs 42 and 44 respectively. 46 and 48 exhibit. At the one entrance 42 respectively. 46 is located in the function block 4 stored value, which is formed for example by a sequence of numbers to. The stored value of the first key function 38 differs from the deposited value of the second key function 40 , The stored values and the internal key functions 38 and 40 form internal key information of the function block 4 , About the other two inputs 44 and 48 For example, external key information may be entered by a user. In the present embodiment, the internal key functions 38 and 40 again formed by a COMPARE function (comparison function). Accordingly, the COMPARE functions only set a "1" at their respective outputs 50 respectively. 52 , if in each case the entered external key information identical to the respectively associated, in the function block 4 stored values are. Otherwise, the relevant COMPARE function (s) will / will be 38 respectively. 40 each a "0" at their respective output 50 respectively. 52 set. Accordingly, in the functional block 4 Two key mechanisms for securing the function block 4 provided against unauthorized use.

Der Ausgang 36 der Steuerungsfunktion 30 und die Ausgänge 50 und 52 der Schlüsselfunktionen 38 und 40 werden über eine UND-Funktion 54 miteinander verknüpft, wobei die drei Ausgänge 36, 50 und 52 jeweils Eingänge der UND-Funktion 54 bilden. Der Ausgang 56 der UND-Funktion 54 bildet gleichzeitig den Ausgang des Funktionsblockes 4 und dient zur Ansteuerung eines (nicht dargestellten) Stellgliedes. Dabei wird immer dann, wenn in mindestens einer der internen Schlüsselfunktionen 38 und 40 deren Ausgang auf „0" gesetzt wird, auch der Ausgang des Funktionsblockes 4 unabhängig von dem Ausgang 36 der Steuerungsfunktion 30 auf „0" gesetzt und der Funktionsblock 4 ist in einem nicht ausführbaren Zustand. Werden hingegen in den beiden internen Schlüsselfunktionen 38 und 40 die zugehörigen Ausgänge 50 und 52 auf „1" gesetzt, so wird der Ausgang 36 der Steuerungsfunktion 30 unverändert durch die UND-Funktion 54 zu dem Stellglied weitergeleitet. Der Funktionsblock 4 ist folglich in einem ausführbaren Zustand.The exit 36 the control function 30 and the outputs 50 and 52 the key functions 38 and 40 be via an AND function 54 linked together, the three outputs 36 . 50 and 52 each input of the AND function 54 form. The exit 56 the AND function 54 simultaneously forms the output of the function block 4 and serves to control a (not shown) actuator. It is always when in at least one of the key internal functions 38 and 40 whose output is set to "0", also the output of the function block 4 regardless of the output 36 the control function 30 set to "0" and the function block 4 is in an unexecutable state. However, in the two internal key features 38 and 40 the associated outputs 50 and 52 set to "1", so will the output 36 the control function 30 unchanged by the AND function 54 forwarded to the actuator. The function block 4 is therefore in an executable state.

Claims (12)

Verfahren zum Betreiben einer Speicherprogrammierbaren Steuerung (SPS; SPS'), wobei auf der Speicherprogrammierbaren Steuerung (SPS; SPS') ein Anwenderprogramm zur Steuerung einer Anlage implementiert ist und wobei das Anwenderprogramm mindestens einen Funktionsblock (2; 4), durch den mindestens eine Funktion (8; 30) ausführbar ist, aufweist, dadurch gekennzeichnet, dass der Funktionsblock (2; 4) einen Zustand, in dem er ausführbar ist, und einen Zustand, in dem er nicht ausführbar ist, aufweist und dass zur Schaltung des Funktionsblockes (2; 4) von dem nicht ausführbaren Zustand in den ausführbaren Zustand nachfolgende Schritte durchgeführt werden: A) Eingeben mindestens einer externen Schlüsselinformation über mindestens einen Eingang (22; 44, 48) des Funktionsblockes (2; 4); B) Verifizieren in dem Funktionsblock (2; 4), ob die eingegebene mindestens eine externe Schlüsselinformation mindestens einer zugehörigen internen Schlüsselinformation (18; 38, 40) entspricht, wobei die interne Schlüsselinformation (18; 38, 40) in dem Funktionsblock (2; 4) derart hinterlegt ist, dass sie nicht über extern zugängliche Schnittstellen (10, 12, 14, 22, 28; 34, 44, 48, 56) des Funktionsblockes (2; 4) zugänglich ist; und C) Schalten des Funktionsblockes (2; 4) in den ausführbaren Zustand nur dann, falls die externe Schlüsselinformation der internen Schlüsselinformation (18; 38, 40) entspricht.Method for operating a programmable logic controller (PLC), wherein a user program for controlling a system is implemented on the programmable logic controller (PLC) and the user program has at least one function block ( 2 ; 4 ), by which at least one function ( 8th ; 30 ) Is executable, characterized in that the function block ( 2 ; 4 ) has a state in which it is executable, and a state in which it is not executable, and that for switching the function block ( 2 ; 4 ) from the non-executable state to the executable state, the following steps are performed: A) inputting at least one external key information via at least one input ( 22 ; 44 . 48 ) of the function block ( 2 ; 4 ); B) verify in the function block ( 2 ; 4 ), whether the entered at least one external key information of at least one associated internal key information ( 18 ; 38 . 40 ), the internal key information ( 18 ; 38 . 40 ) in the function block ( 2 ; 4 ) is stored in such a way that it does not have externally accessible interfaces ( 10 . 12 . 14 . 22 . 28 ; 34 . 44 . 48 . 56 ) of the function block ( 2 ; 4 ) is accessible; and C) switching the function block ( 2 ; 4 ) in the executable state only if the external key information of the internal key information ( 18 ; 38 . 40 ) corresponds. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, dass die interne Schlüsselinformation eine interne Schlüsselfunktion (18; 38, 40) aufweist, die innerhalb des Funktionsblockes (2; 4) implementiert ist, wobei die externe Schlüsselinformation, vorzugsweise dauerhaft, an einem Eingang (22; 44, 48) der internen Schlüsselfunktion (18; 38, 40) angelegt wird.Method according to claim 1, characterized in that the internal key information has an internal key function ( 18 ; 38 . 40 ) within the functional block ( 2 ; 4 ), wherein the external key information is stored, preferably permanently, at an input ( 22 ; 44 . 48 ) of the internal key function ( 18 ; 38 . 40 ) is created. Verfahren gemäß Anspruch 2, dadurch gekennzeichnet, dass ein Ausgang (24; 50, 52) der internen Schlüsselfunktion (18; 38, 40) mit einem Ausgang (16; 36) der mindestens einen Funktion (8; 30) des Funktionsblockes (2; 4) verknüpft wird.Method according to claim 2, characterized in that an output ( 24 ; 50 . 52 ) of the internal key function ( 18 ; 38 . 40 ) with an output ( 16 ; 36 ) of at least one function ( 8th ; 30 ) of the function block ( 2 ; 4 ) is linked. Verfahren gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der Funktionsblock (2; 4) derart gekapselt ist, dass über extern zugängliche Schnittstel len (10, 12, 14, 22, 28; 34, 44, 48, 56) des Funktionsblockes (2; 4), abgesehen von Informationen über dessen Eingänge (10, 12, 14, 22; 34, 44, 48) und Ausgänge (28; 56), keine oder nur begrenzte Informationen über den Funktionsblock (2; 4) zugänglich sind, insbesondere dass der Programmcode der mindestens einen Funktion (8; 30) und/oder Informationen über die interne Schlüsselinformation (18; 38, 40) nicht zugänglich sind.Method according to one of the preceding claims, characterized in that the functional block ( 2 ; 4 ) is encapsulated in such a way that externally accessible interfaces ( 10 . 12 . 14 . 22 . 28 ; 34 . 44 . 48 . 56 ) of the function block ( 2 ; 4 ), except for information about its inputs ( 10 . 12 . 14 . 22 ; 34 . 44 . 48 ) and outputs ( 28 ; 56 ), no or limited information about the function block ( 2 ; 4 ), in particular that the program code of the at least one function ( 8th ; 30 ) and / or information about the internal key information ( 18 ; 38 . 40 ) are not accessible. Verfahren gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass in dem Funktionsblock (2; 4) eine Mehrzahl von internen Schlüsselinformationen (18; 38, 40) hinterlegt ist und dass bei dem Schritt des Eingebens eine entsprechende Mehrzahl von zugehörigen externen Schlüsselinformationen eingegeben wird, wobei der Funktionsblock (2; 4) nur dann in den ausführbaren Zustand geschaltet wird, falls die externen Schlüsselinformationen jeweils den zugehörigen internen Schlüsselinformationen (18; 38, 40) entsprechen.Method according to one of the preceding claims, characterized in that in the functional block ( 2 ; 4 ) a plurality of internal key information ( 18 ; 38 . 40 ) and in the step of inputting a corresponding plurality of associated external key information is input, wherein the function block ( 2 ; 4 ) is switched to the executable state only if the external key information in each case corresponds to the associated internal key information ( 18 ; 38 . 40 ) correspond. Verfahren gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der Funktionsblock einen innerhalb des Funktionsblockes vorgesehenen inneren Funktionsblock aufweist, durch den mindestens eine Funktion ausführbar ist, dass der innere Funktionsblock einen Zustand, in dem er ausführbar ist, und einen Zustand, in dem er nicht ausführbar ist, aufweist und dass zur Schaltung des inneren Funktionsblockes von dem nicht ausführbaren Zustand in den ausführbaren Zustand nachfolgende Schritte durchgeführt werden: D) Eingeben mindestens einer externen zweiten Schlüsselinformation über mindestens einen Eingang des inneren Funktionsblockes; E) Verifizieren in dem inneren Funktionsblock, ob die eingegebene mindestens eine externe zweite Schlüsselinformation mindestens einer zugehörigen internen zweiten Schlüsselinformation entspricht, wobei die interne zweite Schlüsselinformation in dem inneren Funktionsblock derart hinterlegt ist, dass sie nicht über extern zugängliche Schnittstellen des inneren Funktionsblockes zugänglich ist; und F) Schalten des inneren Funktionsblockes in den ausführbaren Zustand nur dann, falls die externe zweite Schlüsselinformation der internen zweiten Schlüsselinformation entspricht.Method according to one of the preceding claims, characterized in that the functional block has an inside having the function block provided inner function block, by the at least one function is executable that the inner Function block a state in which it is executable, and a state in which he is not executable is, and that for switching the inner function block from the non-executable State in the executable State subsequent steps are performed: D) Enter at least one external second key information about at least an input of the inner function block; E) Verify in the inner function block, whether the entered at least one external second key information at least one associated internal second key information corresponds, wherein the internal second key information in the inner Function block is stored such that they do not have external accessible Interfaces of the inner function block is accessible; and F) switching of the inner function block in the executable state only if the external second key information the internal second key information equivalent. Verfahren gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die externe Schlüsselinformation bei dem Schritt des Eingebens in einen dem Funkti onsblock (2; 4) zugeordneten Speicher geschrieben wird, wobei die externe Schlüsselinformation vorzugsweise derart in dem Speicher gespeichert wird, dass sie für den Funktionsblock (2; 4) dauerhaft verfügbar ist.Method according to one of the preceding claims, characterized in that the external key information in the step of entering into the function block ( 2 ; 4 ), wherein the external key information is preferably stored in the memory in such a way that for the function block ( 2 ; 4 ) is permanently available. Verfahren gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der Funktionsblock (2; 4) nach einer vorbestimmten Anzahl von Ausführungen, insbesondere nach einer einmaligen Ausführung, wieder zurück in den nicht ausführbaren Zustand geschaltet wird.Method according to one of the preceding claims, characterized in that the functional block ( 2 ; 4 ) after a predetermined number of executions, in particular after a once gen execution, is switched back to the non-executable state. Verfahren gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass dann, wenn das Anwenderprogramm in die Speicherprogrammierbare Steuerung (SPS; SPS') geladen und erstmalig gestartet wird, der Funktionsblock (2; 4) in dem nicht ausführbaren Zustand ist und für eine Schaltung des Funktionsblockes (2; 4) in den ausführbaren Zustand die Schritte des Eingebens, des Verifizierens und des Schaltens durchzuführen sind, wobei vorzugsweise der Funktionsblock (2; 4) anschließend für eine vorbestimmte Zeitdauer während der Laufzeit des Anwenderprogramms in dem ausführbaren Zustand gehalten wird.Method according to one of the preceding claims, characterized in that, when the user program is loaded into the programmable logic controller (PLC) and started for the first time, the function block ( 2 ; 4 ) in the non-executable state and for a circuit of the function block ( 2 ; 4 ) in the executable state, the steps of inputting, verifying and switching are to be performed, wherein preferably the function block ( 2 ; 4 ) is then held in the executable state for a predetermined period of time during the runtime of the user program. Verfahren gemäß Anspruch 9, dadurch gekennzeichnet, dass dann, wenn das Anwenderprogramm in die Speicherprogrammierbare Steuerung (SPS; SPS') geladen und erstmalig gestartet wird, das Anwenderprogramm eine Anfrage an einen Benutzer stellt, dass dieser den Schritt des Eingebens durchführt.Method according to claim 9, characterized in that when the user program loaded into the programmable logic controller (PLC) for the first time is started, the user program makes a request to a user provides that it performs the step of inputting. Anwenderprogramm zur Steuerung einer Anlage, wobei das Anwenderprogramm auf einer Speicherprogrammierbaren Steuerung (SPS; SPS') implementierbar ist oder darauf implementiert ist und wobei das Anwenderprogramm mindestens einen Funktionsblock (2; 4), durch den mindestens eine Funktion (8; 30) ausführbar ist, aufweist, dadurch gekennzeichnet, dass der Funktionsblock (2; 4) einen Zustand, in dem er ausführbar ist, und einen Zustand, in dem er nicht ausführbar ist, aufweist und dass das Anwenderprogramm derart angepasst ist, dass der Funktionsblock (2; 4) nur dann von dem nicht ausführbaren Zustand in den ausführbaren Zustand geschaltet wird, falls mindestens eine externe Schlüsselinformation, die über mindestens einen Eingang (22; 44, 48) des Funktionsblockes (2; 4) eingegeben wird, mindestens einer zugehörigen internen Schlüsselinformation (18; 38, 40) entspricht, wobei die mindestens eine interne Schlüs selinformation (18; 38, 40) in dem Funktionsblock (2; 4) derart hinterlegt ist, dass sie nicht über extern zugängliche Schnittstellen (10, 12, 14, 22, 28; 34, 44, 48, 56) des Funktionsblockes (2; 4) zugänglich ist.User program for controlling a system, wherein the user program can be implemented on or implemented on a programmable logic controller (SPS ') and wherein the user program has at least one function block ( 2 ; 4 ), by which at least one function ( 8th ; 30 ) executable, characterized in that the functional block ( 2 ; 4 ) has a state in which it is executable and a state in which it is not executable, and that the user program is adapted such that the function block ( 2 ; 4 ) is switched from the non-executable state to the executable state only if at least one external key information is received via at least one input ( 22 ; 44 . 48 ) of the function block ( 2 ; 4 ), at least one associated internal key information ( 18 ; 38 . 40 ), the at least one internal key information ( 18 ; 38 . 40 ) in the function block ( 2 ; 4 ) is stored in such a way that it does not have externally accessible interfaces ( 10 . 12 . 14 . 22 . 28 ; 34 . 44 . 48 . 56 ) of the function block ( 2 ; 4 ) is accessible. Speicherprogrammierbare Steuerung für eine Anlage, auf der ein Anwenderprogramm gemäß Anspruch 11 implementiert ist.Programmable logic controller for a system, on the one user program according to claim 11 is implemented.
DE200710062915 2007-12-21 2007-12-21 Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information Withdrawn DE102007062915A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200710062915 DE102007062915A1 (en) 2007-12-21 2007-12-21 Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200710062915 DE102007062915A1 (en) 2007-12-21 2007-12-21 Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information

Publications (1)

Publication Number Publication Date
DE102007062915A1 true DE102007062915A1 (en) 2009-06-25

Family

ID=40689935

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200710062915 Withdrawn DE102007062915A1 (en) 2007-12-21 2007-12-21 Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information

Country Status (1)

Country Link
DE (1) DE102007062915A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469367A3 (en) * 2010-12-24 2013-10-09 Yokogawa Electric Corporation Wireless field device, device management system, and device management method
US10867077B2 (en) 2014-11-18 2020-12-15 Schneider Electric Automation Gmbh Method of accessing functions of an embedded device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001033768A2 (en) * 1999-10-29 2001-05-10 Broadcom Corporation Apparatus and method for secure field upgradability
DE10038779A1 (en) * 2000-08-09 2002-03-07 Schneider Automation Gmbh Method for transferring data into or from a control device such as a programmable logic controller and control device
DE10128829A1 (en) * 2000-06-16 2002-04-25 Fisher Rosemount Systems Inc Security process control system for medicine management, has security module to analyze security information collected in relation to authentication function start, to judge regarding execution of security function
DE10126451A1 (en) * 2001-05-31 2002-12-05 Bosch Gmbh Robert Method for activation or deactivation of microcomputer system storage arrangement, e.g. for motor vehicle control device, involves initially verifying identifier signature at start-up of computer
DE10131579A1 (en) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Process for programming a memory of a microcomputer with data especially for a motor vehicle control program uses protective keys
US20050105738A1 (en) * 2003-09-24 2005-05-19 Kabushiki Kaisha Toshiba On-chip multi-core type tamper resistant microprocessor
EP1582950A2 (en) * 2004-03-31 2005-10-05 Rockwell Automation Technologies, Inc. Digital rights management system and method
WO2007036178A1 (en) * 2005-09-29 2007-04-05 Siemens Aktiengesellschaft Method for carrying out a protected function of an electrical field device, and an electrical field device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001033768A2 (en) * 1999-10-29 2001-05-10 Broadcom Corporation Apparatus and method for secure field upgradability
DE10128829A1 (en) * 2000-06-16 2002-04-25 Fisher Rosemount Systems Inc Security process control system for medicine management, has security module to analyze security information collected in relation to authentication function start, to judge regarding execution of security function
DE10038779A1 (en) * 2000-08-09 2002-03-07 Schneider Automation Gmbh Method for transferring data into or from a control device such as a programmable logic controller and control device
DE10126451A1 (en) * 2001-05-31 2002-12-05 Bosch Gmbh Robert Method for activation or deactivation of microcomputer system storage arrangement, e.g. for motor vehicle control device, involves initially verifying identifier signature at start-up of computer
DE10131579A1 (en) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Process for programming a memory of a microcomputer with data especially for a motor vehicle control program uses protective keys
US20050105738A1 (en) * 2003-09-24 2005-05-19 Kabushiki Kaisha Toshiba On-chip multi-core type tamper resistant microprocessor
EP1582950A2 (en) * 2004-03-31 2005-10-05 Rockwell Automation Technologies, Inc. Digital rights management system and method
WO2007036178A1 (en) * 2005-09-29 2007-04-05 Siemens Aktiengesellschaft Method for carrying out a protected function of an electrical field device, and an electrical field device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469367A3 (en) * 2010-12-24 2013-10-09 Yokogawa Electric Corporation Wireless field device, device management system, and device management method
US8981960B2 (en) 2010-12-24 2015-03-17 Yokogawa Electric Corporation Wireless field device, device management system, and device management method
US10867077B2 (en) 2014-11-18 2020-12-15 Schneider Electric Automation Gmbh Method of accessing functions of an embedded device

Similar Documents

Publication Publication Date Title
DE69719479T2 (en) Data processing system security
DE102008010864A1 (en) Method for operating a field device
EP2422244B1 (en) Safety-related control unit, and method for controlling an automated system
EP3607405B1 (en) Method for parameterizing a field device, and field device that can be parameterized
DE102015120314A1 (en) Method of programming a safety controller
WO2011042318A1 (en) Method for controlling and operating a production cell, and a control device
EP4235323A2 (en) Method and device for automatically validating security functions on a modular security system
DE102011088236A1 (en) Method for operating field device using process automation technique, involves determining test value based on characteristic properties of field device and providing field device present state, after restart of field device
EP1947568A1 (en) Method for observing a control device
DE19963208A1 (en) Manipulation detection of programmable memory device in digital controller involves checking information about programming/reprogramming process stored in separate memory area
DE10002204B4 (en) Method for protecting a microcomputer of a control device against manipulation of a program and device for carrying out the method
DE102007062395A1 (en) Automatic parameterizing method for field device i.e. modular four-wire field device, involves providing selection possibility to user when parameter values are transferred in accordance with parameterization implementation
EP3380981B1 (en) Safety control device and method for changing a range of functions of a safety control device
DE102007062915A1 (en) Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information
DE102009051808A1 (en) Securing end-user program changes through formal contracts and program verification in automation technology
EP1563358B1 (en) Method for the secure checking of a memory region of a microcontroller in a control device and control device with a protected mikrocontroller
DE102014016819A1 (en) Method and device for managing and configuring field devices of an automation system
EP1093039A1 (en) Programmable field mounted sensor
EP1800193B1 (en) Method for operating a modularly constructed automation technology field device
EP2482148B1 (en) Method for projecting and/or programming a multi-functional component of an industrial automation assembly
DE102008023873A1 (en) Drive system operating method, involves using buffer for exchanging data between drive component and drive regulation unit, initializing buffer by drive regulation unit, and temporizing initialization of buffer by control unit
WO2006069763A1 (en) Method for configuring field devices
DE102018202626A1 (en) Method for the computer-aided parameterization of a technical system
EP3757688B1 (en) Method for configuring an industrial machine
EP1495381A1 (en) Measuring device for process engineering and operating method for a measuring device

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed
R012 Request for examination validly filed

Effective date: 20141205

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee