DE102023101842A1 - Traffic tunnel control system with modular PLC program - Google Patents

Traffic tunnel control system with modular PLC program Download PDF

Info

Publication number
DE102023101842A1
DE102023101842A1 DE102023101842.6A DE102023101842A DE102023101842A1 DE 102023101842 A1 DE102023101842 A1 DE 102023101842A1 DE 102023101842 A DE102023101842 A DE 102023101842A DE 102023101842 A1 DE102023101842 A1 DE 102023101842A1
Authority
DE
Germany
Prior art keywords
program
tunnel
program modules
data
program module
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.)
Pending
Application number
DE102023101842.6A
Other languages
German (de)
Inventor
Günter Karallus
Patric Gutwasser
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.)
Land Hessen Hessen Mobil Strassen und Verkehrsmanagement
Original Assignee
Land Hessen Hessen Mobil Strassen und Verkehrsmanagement
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 Land Hessen Hessen Mobil Strassen und Verkehrsmanagement filed Critical Land Hessen Hessen Mobil Strassen und Verkehrsmanagement
Priority to DE102023101842.6A priority Critical patent/DE102023101842A1/en
Publication of DE102023101842A1 publication Critical patent/DE102023101842A1/en
Pending legal-status Critical Current

Links

Images

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/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

Die Erfindung betrifft ein Verkehrswegetunnelsteuerungssystem (100) für einen Verkehrswegetunnel (124), wobei das Verkehrswegetunnelsteuerungssystem umfasst:- eine speicherprogrammierbare Steuerung (101); und- mehrere Automatisierungsgeräte (126-138),wobei die speicherprogrammierbare Steuerung zur Erfassung eines Eingangsabbilds und zur Erzeugung eines Ausgangsabbilds durch Ausführung eines Programms (120) konfiguriert ist,wobei das Programm aus einer Sequenz von Programmmodulen besteht,wobei zumindest ein erstes der Programmmodule einem Adressbereich eines Zwischenergebnisspeichers (114) zugeordnet ist, um dort ein Zwischenergebnis zu speichern, undwobei zumindest einen zweites der Programmmodule demselben Adressbereich zugeordnet ist, um von dort das Zwischenergebnis im selben Zyklus weiterzuverarbeiten.The invention relates to a traffic tunnel control system (100) for a traffic tunnel (124), the traffic tunnel control system comprising:- a programmable logic controller (101); and- a plurality of automation devices (126-138),wherein the programmable logic controller is configured to capture an input image and to generate an output image by executing a program (120),wherein the program consists of a sequence of program modules,wherein at least a first of the program modules is assigned to an address range of an intermediate result memory (114) in order to store an intermediate result there, andwherein at least a second of the program modules is assigned to the same address range in order to further process the intermediate result from there in the same cycle.

Description

Technisches GebietTechnical area

Die vorliegenden Darstellungen betreffen die Steuerung von Verkehrswegetunneln wie beispielsweise Straßen- oder Eisenbahntunnel oder Schiffstunnel sowie entsprechende Automatisierungssysteme.The present presentations concern the control of traffic tunnels such as road or railway tunnels or ship tunnels as well as corresponding automation systems.

Stand der TechnikState of the art

Verkehrswegetunnel sind mit einer Vielzahl von Sensoren und anderen Gerätschaften ausgestattet, um einen möglichst sicheren, zuverlässigen Betrieb zu ermöglichen. Um eine passgenaue Orchestrierung der in einem Tunnel enthaltenen Geräte zu ermöglichen, werden verschiedene Steuerverfahren eingesetzt. Beispielsweise können Straßentunnel mit ihren vielfältigen sicherheitstechnischen Einrichtungen mittels Automatisierungstechniken überwacht, bedient und gesteuert werden.Traffic tunnels are equipped with a variety of sensors and other equipment to ensure that operations are as safe and reliable as possible. Various control methods are used to enable precise orchestration of the equipment contained in a tunnel. For example, road tunnels with their diverse safety equipment can be monitored, operated and controlled using automation technology.

Die Tunnelsteuerprogramme werden üblicherweise in Individualprogrammierung für jeden Tunnel erstellt. Hierbei kann es leicht zu Fehlern kommen, die schwer zu erkennen sind, da es angesichts der Vielzahl von Sensoren und Aktuatoren in einem Tunnel kaum möglich ist, alle denkbaren Zustandskombinationen und möglichen Randbedingungen vor dem tatsächlichen Einsatz der Steuersoftware zu testen. Dies kann ein Sicherheitsrisiko darstellen, da durch die stark begrenzte Testmöglichkeit im Vergleich zu den kombinatorisch möglichen Fallkonstellationen Risikosituationen und Gefahren für die Tunnelbenutzer nie ganz ausgeschlossen werden können.The tunnel control programs are usually created individually for each tunnel. This can easily lead to errors that are difficult to detect, since, given the large number of sensors and actuators in a tunnel, it is hardly possible to test all conceivable state combinations and possible boundary conditions before the control software is actually used. This can represent a safety risk, since the extremely limited testing options compared to the combinatorially possible case constellations mean that risky situations and dangers for tunnel users can never be completely ruled out.

Technisches Problem und grundlegende LösungenTechnical problem and basic solutions

Vor diesem Hintergrund besteht ein Bedarf an verbesserten Systemen zur Steuerung von Verkehrswegetunneln.Against this background, there is a need for improved systems for controlling traffic tunnels.

Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben. Die im Folgenden aufgeführten Ausführungsformen und Beispiele sind frei miteinander kombinierbar, sofern sie sich nicht gegenseitig ausschließen.The objects underlying the invention are each achieved with the features of the independent patent claims. Embodiments of the invention are specified in the dependent claims. The embodiments and examples listed below can be freely combined with one another, provided they do not exclude one another.

In einem Aspekt betrifft die Erfindung ein Verkehrswegetunnelsteuerungssystem für einen Verkehrswegetunnel. DerTunnel kann insbesondere als Straßen- oder Eisenbahntunnel oder Schiffstunnel ausgebildet sein. Das Verkehrswegetunnelsteuerungssystem umfasst eine speicherprogrammierbare Steuerung (SPS), und mehrere Automatisierungsgeräte, die über einen Feldbus oder ein Netzwerk mit der speicherprogrammierbaren Steuerung gekoppelt sind.In one aspect, the invention relates to a traffic tunnel control system for a traffic tunnel. The tunnel can be designed in particular as a road or rail tunnel or ship tunnel. The traffic tunnel control system comprises a programmable logic controller (PLC) and several automation devices that are coupled to the programmable logic controller via a field bus or a network.

Die speicherprogrammierbare Steuerung ist zur Erfassung eines Eingangsabbilds von den Automatisierungsgeräten, zur Verarbeitung des Eingangsabbilds und zur Erzeugung eines Ausgangsabbilds durch Ausführung eines Programms und zur Ausgabe des Ausgangsabbilds für die Ansteuerung der Automatisierungsgeräte konfiguriert. Die Erfassung des Eingangsabbilds, die Ausführung des Programms und die Ausgabe des Ausgangsabbilds erfolgt zyklisch wiederholend. Das Programm besteht aus einer Sequenz von Programmmodulen, wobei zumindest ein erstes der Programmmodule einem Adressbereich eines Zwischenergebnisspeichers zugeordnet ist, um dort ein Zwischenergebnis zu speichern. Zumindest ein zweites der Programmmodule ist demselben Adressbereich des Zwischenergebnisspeichers zugeordnet, um von dort das Zwischenergebnis zu lesen und weiterzuverarbeiten. Das Speichern des Zwischenergebnisses durch das erste Programmodul und das Lesen und die Weiterverarbeitung des Zwischenergebnisses durch das zweite Programmodul erfolgt in demselben Zyklus.The programmable logic controller is configured to capture an input image from the automation devices, to process the input image and to generate an output image by executing a program and to output the output image for controlling the automation devices. The capture of the input image, the execution of the program and the output of the output image are repeated cyclically. The program consists of a sequence of program modules, with at least a first of the program modules being assigned to an address range of an intermediate result memory in order to store an intermediate result there. At least a second of the program modules is assigned to the same address range of the intermediate result memory in order to read and further process the intermediate result from there. The storage of the intermediate result by the first program module and the reading and further processing of the intermediate result by the second program module take place in the same cycle.

Die Verwendung eines Zwischenergebnisspeichers kann vorteilhaft sein, da hierdurch zum einen ein Datenaustausch zwischen verschiedenen Programmmodulen des Programms (im Folgenden auch „SPS-Programm“ genannt) innerhalb des gleichen SPS Zyklus ermöglicht wird. Dadurch, dass z.B. einige Parameterwerte (wie z.B. die Temperatur, die von einem bestimmten Temperatursensor gemessen wird, die Windgeschwindigkeit in einem bestimmten Abschnitt des Tunnels, die aktuelle Geschwindigkeit eines bestimmten Lüfters etc.) in einem vorab festgelegten Adressbereich eines Zwischenergebnisspeichers gespeichert werden, sodass ein oder mehrere andere Programmmodule auf diese Parameterwerte zugreifen und diese ggf. noch im Zyklus ihrer Erfassung weiterverarbeiten können, wird eine Datenaustauschschnittstelle zwischen verschiedenen Programmmodulen geschaffen, die unabhängig vom Feldbus bzw. Netzwerk funktioniert. Es wird also unter Umgehung des Feldbusses bzw. Netzwerks eine Schnittstelle zur Speicherung und zum Austausch von Zwischenergebnissen durch bzw. zwischen verschiedenen Modulen des SPS Programms innerhalb des gleichen SPS Zyklus bereitgestellt. Hierdurch kann die Programmausführung beschleunigt werden, denn es ist nun nicht mehr nötig, dass jedes Programmodul einen Eingangswert aus dem Eingangsabbild liest und zur weiteren Verarbeitung im nächsten Zyklus aufbereitet, sondern alle Programmmodule können, ggf. noch im selben Zyklus, auf einen zwischengespeicherten, vorverarbeiteten und validierten Eingangswert zurückgreifen.The use of an intermediate result memory can be advantageous because it enables data exchange between different program modules of the program (hereinafter also referred to as the "PLC program") within the same PLC cycle. By storing some parameter values (such as the temperature measured by a specific temperature sensor, the wind speed in a specific section of the tunnel, the current speed of a specific fan, etc.) in a predetermined address range of an intermediate result memory so that one or more other program modules can access these parameter values and, if necessary, process them further during the cycle in which they are recorded, a data exchange interface is created between different program modules that functions independently of the field bus or network. An interface is therefore provided for storing and exchanging intermediate results by or between different modules of the PLC program within the same PLC cycle, bypassing the field bus or network. This can speed up program execution because it is no longer necessary for each program module to read an input value from the input image and prepare it for further processing in the next cycle. Instead, all program modules can access a buffered, preprocessed and validated input value, possibly in the same cycle.

Zumindest einige der von den einzelnen Programmmodulen berechneten Datenwerte werden in dem Datenspeicher nicht als Teil des Ausgangsabbilds, sondern als Zwischenergebnis in dem hierfür im jeweiligen Programmmodul hinterlegen Adressbereich des Zwischenergebnisspeichers gespeichert. SPS Programmmodule, die später innerhalb des gleichen Zyklus ausgeführt werden, berechnen dann aus einem oder mehreren dieser Zwischenergebnisse, ggf. unter Berücksichtigung weiterer Daten wie insbesondere Rohdaten, einen Teil des Ausgangsabbilds. Die Programmmodule können z.B. eine Zuweisungskonfiguration beinhalten, in welcher spezifiziert ist, aus welchem Zwischenergebnisspeicher-Adressbereich die zu einem bestimmten Parameter gehörenden Parameterwerte gelesen werden können bzw. wo die von dem Modul erzeugten, parameterbezogenen Ergebnisse im Zwischenergebnisspeicher gespeichert werden müssen.At least some of the data values calculated by the individual program modules are stored in the data memory not as part of the output image, but as an intermediate result in the address range of the intermediate result memory stored for this purpose in the respective program module. PLC program modules that are later executed within the same cycle then calculate part of the output image from one or more of these intermediate results, possibly taking into account other data such as raw data in particular. The program modules can, for example, contain an assignment configuration that specifies from which intermediate result memory address range the parameter values belonging to a specific parameter can be read or where the parameter-related results generated by the module must be stored in the intermediate result memory.

Das Schreiben und Auslesen der in den Adressbereichen des Zwischenergebnisspeichers gespeicherten Daten durch die Programmmodule erfolgt vorzugsweise ohne Verwendung des bzw. unter Umgehung des Feldbusses bzw. Netzwerks. Dies kann den Feldbus bzw. das Netzwerk entlasten, da nicht für jeden Berechnungsschritt die benötigten Daten über den Bus bzw. das Netzwerk gelesen werden müssen. Dies kann vorteilhaft für die Echtzeitfähigkeit der Steuerung sein.The writing and reading of the data stored in the address areas of the intermediate result memory by the program modules preferably takes place without using or bypassing the field bus or network. This can reduce the load on the field bus or network, since the required data does not have to be read via the bus or network for each calculation step. This can be advantageous for the real-time capability of the control system.

Die Verwendung eines Programms zur Tunnelsteuerung kann vorteilhaft sein, da Programme sicherstellen können, dass bei bestimmten festgelegten Ereignissen, z.B. einem Brand, festgelegte Reaktionen automatisch und zuverlässig (auch bei evtl. Störungen oder Teilausfällen) ausgeführt werden. SPS Programme zeichnen sich durch einen hohen Sicherheitsstandard, sehr kurze Zykluszeiten für die Programmabwicklung (typischerweise max. 100 ms) und eine sehr hohe Zuverlässigkeit aus.The use of a program for tunnel control can be advantageous because programs can ensure that in the event of certain specified events, e.g. a fire, specified reactions are carried out automatically and reliably (even in the event of possible malfunctions or partial failures). PLC programs are characterized by a high safety standard, very short cycle times for program execution (typically max. 100 ms) and a very high level of reliability.

Außerdem können speicherprogrammierbare Steuerungen bzw. SPS Programme gemäß Ausführungsformen der Erfindung aufgrund ihrer zyklischen und - innerhalb eines Zyklus vorzugsweise schleifenfreien - Natur sicherstellen, dass sich das Programm nicht in einer Endlosschleife verlieren kann oder aus anderen Gründen sich eine Blockade des Programmablaufs einstellt.In addition, programmable logic controllers or PLC programs according to embodiments of the invention can, due to their cyclical and - within a cycle preferably loop-free - nature, ensure that the program cannot get lost in an endless loop or become blocked in the program flow for other reasons.

Die Anmelderin hat beobachtet, dass die Programmerstellung gerade bei größeren Anlagen - wie z.B. einem Straßentunnel mit Vollausstattung - aufwendig, anspruchsvoll und sehr fehleranfällig sein kann. Aufgrund der großen Anzahl kombinierbarer Gerätetypen, Geräteanordnungen, der konfigurierbaren Abläufe und der möglichen Randbedingungen während des Betriebs ist das Testen eines Steuerprogramms für Verkehrswegetunnel sehr zeitintensiv und kann niemals 100%ige Sicherheit bezüglich der Fehlerfreiheit des Programms bieten. Tunnel unterscheiden sich teils erheblich im Hinblick auf deren Geräteausstattung, was teils den unterschiedlichen örtlichen Gegebenheiten (Länge, Wind- und Lichtverhältnisse, Breite, Art des Verkehrswegs), teils dem Baujahr, teils der Komponentenwahl des Betreibers, teils den jeweils geltenden Bauvorschriften geschuldet ist. Daher sind Verkehrswegetunnel in der Regel in technischer Hinsicht Unikate, für die bisher eine individuell zugeschnittene Steuerungssoftware programmiert werden musste. In praktisch jeder neu erstellten Software sind Fehler, die oftmals nicht sofort erkennbar sind, sondern erst durch aufwändige Simulations- und Testverfahren entdeckt und behoben werden müssen. Aufgrund der Komplexität der Möglichkeiten des Zusammenwirkens der verschiedenen Geräte und möglichen Rahmenbedingungen ist ein vollständiges Durchspielen aller möglichen Fallszenarien jedoch nicht möglich. Komplexe Programme sind zudem im Nachhinein oft schwer nachvollziehbar und analysierbar. Ab einer gewissen Komplexität der Software ist es nicht möglich, alle theoretisch möglichen Fallkonstellationen und Randbedingungen zu berücksichtigen und die Entwicklung ist aufwendig.The applicant has observed that programming can be complex, demanding and very error-prone, particularly for larger systems - such as a fully equipped road tunnel. Due to the large number of combinable device types, device arrangements, configurable processes and possible boundary conditions during operation, testing a control program for traffic tunnels is very time-consuming and can never offer 100% certainty that the program is error-free. Tunnels sometimes differ considerably in terms of their device equipment, which is partly due to the different local conditions (length, wind and light conditions, width, type of traffic route), partly to the year of construction, partly to the operator's choice of components and partly to the applicable building regulations. Traffic tunnels are therefore usually unique in technical terms, for which individually tailored control software had to be programmed. Practically every newly created software contains errors that are often not immediately recognizable but must first be discovered and corrected using complex simulation and testing procedures. However, due to the complexity of the possibilities of interaction between the various devices and possible framework conditions, it is not possible to fully play through all possible case scenarios. Complex programs are also often difficult to understand and analyze retrospectively. Once the software reaches a certain level of complexity, it is not possible to take all theoretically possible case constellations and boundary conditions into account and development is complex.

Oft kopieren Entwickler daher bereits bestehenden Quellcode von einem Steuerprogramm und passen den Quellcode manuell an vielen Stellen an einen neuen Tunnel an („copy and paste“ Ansatz). Dies führt dazu, dass in einem konventionellen Steuerungsprogramm für ein neues Tunnelprojekt Programmteile enthalten sind, die z.B. nicht verwendet werden, aber unter bestimmten Randbedingungen trotzdem negativen Einfluss auf andere Programmteile haben können. Durch den „copy and paste“ Ansatz können weiterhin falsche Bezeichnungen oder Zuordnungen von technischen Einrichtungen und Geräten erfolgen, die nur bei einem vollständigen Datenpunkttest auffallen, der wegen des hohen Aufwands häufig nur oberflächlich erfolgen kann. All diese Probleme können vermieden oder zumindest reduziert werden, indem ein Programm verwendet wird, welches aus einer Aneinanderreihung von vordefinierten, vorzugsweise in Form einer vordefinierten Bibliothek bereitgestellten, Programmmodulen besteht. Copy-Paste Fehler werden dadurch verhindert und die Entwicklungszeit einschließlich der Testzeit wird deutlich reduziert.Developers therefore often copy existing source code from a control program and manually adapt the source code in many places to a new tunnel (“copy and paste” approach). This means that a conventional control program for a new tunnel project contains program parts that are not used, for example, but can still have a negative influence on other program parts under certain conditions. The “copy and paste” approach can also lead to incorrect designations or assignments of technical facilities and devices that only become apparent during a complete data point test, which can often only be carried out superficially due to the high level of effort involved. All of these problems can be avoided or at least reduced by using a program that consists of a series of predefined program modules, preferably provided in the form of a predefined library. Copy-paste errors are thus prevented and development time, including testing time, is significantly reduced.

Außerdem kann durch die modulare Struktur des Programms die Betriebssicherheit des Tunnels deutlich erhöht werden. Da das Programm auf Programmmodulen beruht, die über vordefinierte Adressbereiche Daten austauschen, können die Programmmodule nach dem Baukastenprinzip aus einer Bibliothek ausgewählt und aneinandergereiht werden um das Programm dadurch spezifisch an die in einem Tunnel vorhandenen Geräte anzupassen, ohne dass hierfür eigens ein neues, für den jeweiligen Tunnel spezifisches Programm geschrieben werden müsste. Einzelne Programmmodule oder stark interoperable Programmmodulgruppen können intensiv getestet werden, und haben sich ggf. nach entsprechender Betriebszeit über Jahre erfolgreich in mehreren Verkehrswegetunnelsteuerungssystemen als sicher bewährt. Der modulare Aufbau erlaube es also, einzelne Programmmodule zu verwenden, die bereits (ggf. über eine lange Zeit, z.B. Jahre) in anderen Programmen für andere Tunnelsteuerungssysteme erfolgreich eingesetzt wurden. Daher kann ein Programm gemäß Ausführungen der Erfindung einen besonders sicheren Tunnelbetrieb ermöglichen.In addition, the modular structure of the program can significantly increase the operational reliability of the tunnel. Since the program is based on program modules that exchange data via predefined address ranges, the program modules can be selected from a library and strung together according to the modular principle in order to adapt the program specifically to the devices present in a tunnel. without having to write a new program specifically for the respective tunnel. Individual program modules or highly interoperable program module groups can be intensively tested and, after a corresponding period of operation over years, have proven to be safe in several traffic route tunnel control systems. The modular structure therefore allows the use of individual program modules that have already been used successfully (possibly over a long period of time, e.g. years) in other programs for other tunnel control systems. A program according to embodiments of the invention can therefore enable particularly safe tunnel operation.

Der für die Softwaretests benötigte Aufwand kann sich zudem dadurch erheblich reduzieren, dass bei der Erstellung des Programms für einen bestimmten Tunnel auf bereits intensiv getestete Programmmodule zurückgegriffen werden kann, die nicht nochmals in allen Einzelheiten getestet werden müssen. Zudem ist eine fehlerträchtige Individualprogrammierung nicht mehr erforderlich. Durch den geringeren Prüfaufwand verkürzt sich die Inbetriebnahme von Verkehrswegetunneln.The effort required for software testing can also be significantly reduced by the fact that when creating the program for a specific tunnel, it is possible to use program modules that have already been intensively tested and do not have to be tested again in every detail. In addition, error-prone individual programming is no longer necessary. The reduced testing effort shortens the commissioning time of traffic tunnels.

Die Verwendung von Adressbereichen eines Zwischenergebnisspeichers zum Austausch vordefinierter, z.B. gerätebezogener und/oder parameterbezogener, Daten, kann ebenfalls die Fehlersuche und das Testen erleichtern, denn die Verarbeitungsschritte des SPS Programms beziehen sich, was das Lesen und Schreiben von Daten angeht, auf vordefinierte Adressbereiche eines Datenspeichers. Vorzugsweise tauschen die Programmodule also nicht direkt über methodenbasierte Modul-zu-Modul-Schnittstellen Daten aus, sondern über die Programmodul-externen Speicherbereiche, sodass Abhängigkeiten zwischen den Modulen reduziert werden. Somit ist es möglich, im Kontext einer Tunnelsteuerung die Vorteile einer objektorientierten Programmierung zu nutzen, ohne dass die Freiheit zur Kombinierbarkeit der Module durch methodenbasierte Modul-zu-Modul-Schnittstellen für den Datenaustausch reduziert wird.The use of address areas of an intermediate result memory to exchange predefined data, e.g. device-related and/or parameter-related data, can also make troubleshooting and testing easier, because the processing steps of the PLC program refer to predefined address areas of a data memory when it comes to reading and writing data. The program modules therefore preferably do not exchange data directly via method-based module-to-module interfaces, but rather via the memory areas external to the program module, so that dependencies between the modules are reduced. This makes it possible to use the advantages of object-oriented programming in the context of a tunnel control without reducing the freedom to combine the modules through method-based module-to-module interfaces for data exchange.

In einem weiteren vorteilhaften Aspekt von Ausführungsformen der Erfindung wird die Latenzzeit der Steuerung auf das Eintreten von (Stör)ereignissen reduziert, denn das Programm mit all seinen Programmodulen befindet sich bei Eintritt des Ereignisses bereits im Arbeitsspeicher der Steuerung. Ein Laden eines Programms oder Programmoduls in Reaktion auf ein Störereignis ist also nicht erforderlich.In a further advantageous aspect of embodiments of the invention, the latency time of the controller is reduced when (disturbance) events occur, because the program with all its program modules is already in the controller's working memory when the event occurs. Loading a program or program module in response to a disturbance event is therefore not necessary.

Gemäß Ausführungsformen ist das Programm frei von Programmschleifen innerhalb eines SPS-Zyklus.According to embodiments, the program is free of program loops within a PLC cycle.

Das Programm kann also dazu konfiguriert sein, linear (keine Schleifen) ohne Unterbrechung (ohne Interrupt) ausgeführt zu werden. Es kann sich bei dem SPS Programm um ein nicht-unterbrechbares Programm handeln.The program can therefore be configured to run linearly (no loops) without interruption. The PLC program can be a non-interruptible program.

Dies kann vorteilhaft sein, da eine Überlastung der Steuerung bzw. das Auftreten von „Locks“ bzw. Verzögerungen der Programmabarbeitung von vorneherein verhindert werden. Das Programm kann sich also nicht in einer Endlosschleife verlieren oder aus anderen Gründen im Programmablauf blockiert werden. Dies kann es erlauben, die Steuerung als echtzeitfähige Steuerung zu implementieren.This can be advantageous because it prevents the controller from becoming overloaded or causing "locks" or delays in program execution. The program cannot get lost in an endless loop or be blocked for other reasons. This can make it possible to implement the controller as a real-time capable controller.

Nach Ausführungsformen beruht die Zuweisung des ersten, zweiten und vorzugsweise weiteren der Programmodule zu Adressbereichen des Zwischenergebnisspeichers auf einer in den jeweiligen Programmodulen enthaltenen Zuweisungskonfiguration. Eine Zuweisungskonfiguration weist dem sie umfassenden Programmodul jeweils ein oder mehrere Parameter zu. Die Parameter können gerätespezifische Parameter umfassen. Außerdem weist sie jedem dieser Parameter einen Adressbereich des Zwischenergebnisspeichers zu, der zur Speicherung mindestens eines dem Parameter entsprechenden Parameterwerts bestimmt ist. Die Zuweisungskonfiguration ermöglicht es zumindest einigen der Programmmodule jeweils, einen auf einen bestimmten Parameter bezogenen Parameterwert als Zwischenergebnis während der Ausführung eines Zyklus zu speichern, sodass es noch im gleichen Zyklus aus diesem Adressbereich durch ein anderes Programmodul gelesen werden kann.According to embodiments, the assignment of the first, second and preferably further program modules to address areas of the intermediate result memory is based on an assignment configuration contained in the respective program modules. An assignment configuration assigns one or more parameters to the program module comprising it. The parameters can include device-specific parameters. In addition, it assigns each of these parameters an address area of the intermediate result memory that is intended for storing at least one parameter value corresponding to the parameter. The assignment configuration enables at least some of the program modules to store a parameter value related to a specific parameter as an intermediate result during the execution of a cycle, so that it can be read from this address area by another program module in the same cycle.

Beispielsweise kann sich ein Parameter auf die Kombination eines bestimmten Geräts und eines bestimmten physikalischen oder chemischen Parameters beziehen wie z.B. Temperatur, Luftgeschwindigkeit, On/Off Zustand eines Geräts, etc. Der Parameter kann sich also auf einen von einem bestimmten Gerät erfassten Messparameter oder auf einen den Zustand eines Geräts spezifizierenden Zustandsparameter beziehen.For example, a parameter can refer to the combination of a specific device and a specific physical or chemical parameter such as temperature, air velocity, on/off state of a device, etc. The parameter can therefore refer to a measurement parameter recorded by a specific device or to a state parameter specifying the state of a device.

Gemäß einer Implementierungsvariante wird die Zuweisungskonfiguration als Bestandteil des Quellcodes eines Programmoduls spezifiziert. Gemäß einer anderen Implementierungsvariante wird die Zuweisungskonfiguration in Form von Metadaten implementiert, die zwar zusammen mit dem kompilierten Quellcode des Programmoduls ausgeliefert (deployed) werden, jedoch selbst nicht als Bestandteil des Quellcodes mitkompiliert werden. Diese Variante hat den Vorteil, dass die Zuweisungskonfiguration eines bereits kompilierten Programmoduls geändert werden kann, ohne dass es für das Wirksamwerden der Änderungen erforderlich ist, den Quellcode erneut zu kompilieren.According to one implementation variant, the assignment configuration is specified as part of the source code of a program module. According to another implementation variant, the assignment configuration is implemented in the form of metadata that is delivered (deployed) together with the compiled source code of the program module, but is not itself compiled as part of the source code. This variant has the advantage that the assignment configuration of a program module that has already been compiled can be changed without the source code having to be recompiled for the changes to take effect.

Somit kann ein Programmodul sehr einfach dadurch für einen anderen Tunnel verwendbar gemacht werden, dass nur die Zuweisungskonfiguration an den neuen Tunnel angepasst wird, nicht aber der Quellcode bzw. der sonstige Quellcode des Programmmoduls. In der Zuweisungskonfiguration kann also angegeben sein, für welchen einer Vielzahl in dem neuen Tunnel verwendeten Lüfter (oder sonstigen Geräte) dieses Programmodul eingesetzt wird, um beispielsweise die aktuell gemessene Drehzahl des Lüfters zu normalisieren, und in welchen Speicherbereich des Zwischenergebnisspeichers der Steuerung dieses neuen Tunnels die normalisierte Drehzahl gespeichert werden soll.This means that a program module can be made usable for another tunnel very easily by only adapting the assignment configuration to the new tunnel, but not the source code or other source code of the program module. The assignment configuration can therefore specify for which of a large number of fans (or other devices) used in the new tunnel this program module is used, for example to normalize the currently measured speed of the fan, and in which memory area of the intermediate result memory of the control of this new tunnel the normalized speed is to be stored.

Beispielsweise kann eine Zuweisungskonfiguration dadurch erstellt oder geändert werden, dass ein Nutzer ein bestimmtes Programmodul in einem Programmeditor öffnet und eine Änderung der Zuweisungskonfiguration und/oder eine Änderung des Quellcodes über den Editor vornimmt.For example, an assignment configuration can be created or modified by a user opening a specific program module in a program editor and making a change to the assignment configuration and/or a change to the source code via the editor.

Typischerweise überlappen die Parameter-Adressbereichszuweisungen der Zuweisungskonfigurationen mehrerer Programmmodule zumindest teilweise, was bedeutet, dass zwei oder mehr Module in ihrer Zuweisungskonfiguration einem bestimmten Parameter P einen bestimmten Speicherbereich B zuweisen. Das gemeinsame Wissen um die Zuweisung P→B ermöglicht es, dass mehrere Programmmodule dadurch untereinander Daten, insbesondere Zwischenergebnisse oder vorverarbeitete Rohdaten bezüglich des Parameters P, austauschen können.Typically, the parameter address range assignments of the assignment configurations of several program modules overlap at least partially, which means that two or more modules assign a specific memory area B to a specific parameter P in their assignment configuration. The shared knowledge of the assignment P→B enables several program modules to exchange data with each other, in particular intermediate results or preprocessed raw data regarding the parameter P.

Durch das sequenzielle Aneinanderreihen der einzelnen Programmmodule wird der Informationsfluss und die Informationsverteilung zwischen den Programmmodulen bei der Erstellung des Programms festgelegt.By arranging the individual program modules sequentially, the flow and distribution of information between the program modules is determined when the program is created.

Gemäß Ausführungsformen der Erfindung ist das SPS Programm dazu konfiguriert, auf definierte Weise innerhalb eines SPS Zyklus auch mehrfach in Sequenz Zwischenergebnisse zu erzeugen, zu speichern, wieder zu lesen und weiterzuverarbeiten kann, und dadurch deutlich mehr Datenverarbeitungsschritte pro Zyklus durchzuführen, als dies bei konventionellen, SPS-basierten Steuerungen möglich ist.According to embodiments of the invention, the PLC program is configured to generate, store, re-read and further process intermediate results in a defined manner within a PLC cycle, even multiple times in sequence, and thus to carry out significantly more data processing steps per cycle than is possible with conventional, PLC-based controls.

Nach Ausführungsformen enthält die Zuweisungskonfiguration von einem oder mehreren der Programmodule eine Zuweisung eines aus einer Vielzahl vordefinierter Datentypen an zumindest einen der Adressbereiche des Zwischenergebnisspeichers. Zumindest einige der Programmmodule sind jeweils dazu konfiguriert, beim Lesen eines Parameterwerts von einem Adressbereich des Zwischenergebnisspeichers zu prüfen, ob der Datentyp des gelesenen Datenwerts identisch ist zu dem Datentyp, der diesem Adressbereich gemäß der Zuweisungskonfiguration dieses Programmoduls zugewiesen ist. Falls diese Programmodule feststellen, dass die Datentypen nicht identisch sind, speichern sie das Ergebnis der Nicht-Identität in einen weiteren Adressbereich des Zwischenergebnisspeichers.According to embodiments, the assignment configuration of one or more of the program modules includes an assignment of one of a plurality of predefined data types to at least one of the address ranges of the intermediate result memory. At least some of the program modules are each configured to check, when reading a parameter value from an address range of the intermediate result memory, whether the data type of the read data value is identical to the data type assigned to this address range according to the assignment configuration of this program module. If these program modules determine that the data types are not identical, they store the result of the non-identity in another address range of the intermediate result memory.

Dies kann den Vorteil haben, dass die Verwendung nicht-autorisierter, ggf. nicht vertrauenswürdiger Programmmodule und/oder Programmfehler erkannt werden. Beispielsweise kann eine Debugging-Software die besagten Bereiche des Zwischenergebnisspeichers auslesen, um festzustellen, ob bei der Datentypprüfung im Zuge der normalen Programmausführung bei der Tunnelsteuerung ein oder mehrere Programmodule eine Abweichung vom erwarteten und in der Konfiguration dieser Programmodule festgelegten Datentyp bemerkt und dieses Ergebnis gespeichert haben. Eine Datentypabweichung kann z.B. daher resultieren, dass der Betreiber eines Tunnels ein nicht autorisiertes Programmodul eingesetzt hat, das der Betreiber z.B. selbst entwickelt hat oder von einem Gerätehersteller bezogen hat. Derartige unautorisierte Programmodule können Fehler enthalten, die dazu führen können, dass Werte von Parametern in Adressbereichen gespeichert werden, in welchen eigentlich Werte anderer Parameter gespeichert werden sollten (z.B. Speicherung eines Temperaturwerts in einem Speicherbereich, der der Ventilatordrehzahl vorbehalten ist).This can have the advantage that the use of unauthorized, possibly untrustworthy program modules and/or program errors can be detected. For example, debugging software can read the aforementioned areas of the intermediate result memory to determine whether, during the data type check during normal program execution in tunnel control, one or more program modules have noticed a deviation from the expected data type specified in the configuration of these program modules and have saved this result. A data type deviation can, for example, result from the fact that the operator of a tunnel has used an unauthorized program module that the operator has developed themselves, for example, or obtained from a device manufacturer. Such unauthorized program modules can contain errors that can lead to parameter values being saved in address areas in which values of other parameters should actually be saved (e.g. saving a temperature value in a memory area reserved for the fan speed).

Es ist auch möglich, dass bei der Anpassung der Zuweisungskonfiguration eines Programmmoduls zum Zweck des Einsatzes des Moduls in einer neuen Tunnelsteuerung für einen neuen Tunnel eine Referenz auf einen Adressbereich aus Versehen nicht angepasst wurde oder falsch angepasst wurde mit der Folge, dass Parameterwerte in Adressbereichen gespeichert werden, in welche eigentlich ein anderer Parameterwert gespeichert werden sollte. Eine andere mögliche Folge ist, dass ein Programmodul aufgrund einer fehlerhaften Zuweisungskonfiguration einen Wert eines Parameters aus einem Adressbereich liest, in welchem tatsächlich Werte eines anderen Parameters gespeichert sind. Derartige Fehler sind oft sehr schwer zu erkennen und können in bestimmten Konstellationen zu unvorhergesehenen Fehlern führen. Aufgrund der von den Programmodulen selbst ausgeführten Datentypprüfung können derartige Fehler jedoch erkannt werden, was die Sicherheit derTunnelsteuerung erhöht.It is also possible that when adjusting the assignment configuration of a program module for the purpose of using the module in a new tunnel control for a new tunnel, a reference to an address range was inadvertently not adjusted or was adjusted incorrectly, with the result that parameter values are stored in address ranges in which a different parameter value should actually be stored. Another possible consequence is that, due to an incorrect assignment configuration, a program module reads a parameter value from an address range in which values of a different parameter are actually stored. Such errors are often very difficult to detect and can lead to unforeseen errors in certain constellations. However, due to the data type check carried out by the program modules themselves, such errors can be detected, which increases the security of the tunnel control.

Gemäß Ausführungsformen ist das Steuerungssystem auf Basis einer CPU Baugruppe für Programmbasierte Steuerungen implementiert, in welcher ein Datenspeicher, der den Zwischenergebnisspeicher umfasst, eingebettet ist. Beispielsweise kann eine Siemens Simatic Baugruppe verwendet werden. Die Steuerungsfunktionen werden als Programm in einem Speicher der CPU-Baugruppe gespeichert, wobei dieser Speicher neben einem Programmspeicher für das SPS-Programm auch einen Datenspeicher für die vordefinierten Adressbereiche des Zwischenergebnisspeichers und den darin zu speichernden Daten enthält.According to embodiments, the control system is implemented on the basis of a CPU module for program-based controls, in which a data memory comprising the intermediate result memory is embedded. For example, a Siemens Simatic module can be used. The control functions are stored as a program in a memory of the CPU module, whereby this memory contains not only a program memory for the PLC program but also a data memory for the predefined address ranges of the intermediate result memory and the data to be stored therein.

Der Datenspeicher der Baugruppe kann z.B. einen als den Zwischenergebnisspeicher verwendeten Speicherbereich enthalten, der z.B. Messwerte (Rohdaten) und Zwischenergebnisse enthält. Der Datenspeicher kann optional auch Speicherbereiche für das Eingangsabbild, für das Ausgangsabbild, ggf. weitere Speicherbereiche für Testzwecke bzw. für ein im Testmodus erzeugtes Test-Eingangsabbild und Test-Ausgangsabbild, etc. enthalten. The module's data memory can, for example, contain a memory area used as the intermediate result memory, which contains, for example, measured values (raw data) and intermediate results. The data memory can optionally also contain memory areas for the input image, for the output image, possibly further memory areas for test purposes or for a test input image and test output image generated in test mode, etc.

Beispielsweise kann die Baugruppe eine Simatic Baugruppe von Siemens sein und das SPS Programm kann mittels der Programmiersoftware STEP 7 oder Software anderer Hersteller programmiert worden sein.For example, the module can be a Simatic module from Siemens and the PLC program can have been programmed using the STEP 7 programming software or software from other manufacturers.

Vorzugsweise werden Baugruppen verwendet, die robust gegenüber elektromagnetischen Störungen (entsprechend den Anforderungen der EMV-Richtlinie) und klimatischer Beanspruchung (z. B. von -20 bis +60 °C Umgebungstemperatur im Betrieb) sind und ausbaufähig sind. Die Simatic-S7 Steuerungen und deren Programmiersoftware STEP 7 sind Beispiele für derartige Baugruppen.Preferably, modules are used that are robust against electromagnetic interference (in accordance with the requirements of the EMC Directive) and climatic stress (e.g. from -20 to +60 °C ambient temperature during operation) and that can be expanded. The Simatic S7 controllers and their STEP 7 programming software are examples of such modules.

Gemäß Ausführungsformen werden neben den Sensor- und/oder Statusdaten auch Steuerbefehle für bestimmte Geräte in einem vordefinierten, einem bestimmten Gerät und einem bestimmten Geräte-Parameter zugewiesenen Adressbereich des Zwischenergebnisspeichers gespeichert.According to embodiments, in addition to the sensor and/or status data, control commands for specific devices are also stored in a predefined address range of the intermediate result memory assigned to a specific device and a specific device parameter.

Gemäß Ausführungsformen beinhaltet der Datenspeicher, der den Zwischenergebnisspeicher beinhaltet, einen weiteren Speicherbereich für das Eingangsabbild und/oder einen weiteren Speicherbereich für das Ausgangsabbild.According to embodiments, the data memory containing the intermediate result memory includes a further memory area for the input image and/or a further memory area for the output image.

Am Ende eines Zyklus steht ein komplettes, aktuelles Ausgangsabbild bereit, welches zur Steuerung der Automatisierungsgeräte verwendet werden kann. Da das Programm vorzugsweise keine Schleifen enthält, ist sichergestellt, dass das Programm innerhalb einer definierten Zykluszeit alle Berechnungen zur Bereitstellung des Ausgangsabbilds inklusive der Berechnung ggf. benötigter Zwischenergebnisse abgeschlossen hat. Dies stellt sicher, dass die Steuerung zuverlässig und sehr schnell auf verschiedene, insbesondere auch sicherheitskritische Situationen, reagieren kann.At the end of a cycle, a complete, current output image is available, which can be used to control the automation devices. Since the program preferably does not contain any loops, it is ensured that the program has completed all calculations to provide the output image, including the calculation of any intermediate results required, within a defined cycle time. This ensures that the control system can react reliably and very quickly to various situations, especially safety-critical ones.

Sowohl das Schreiben als auch das Lesen und Verarbeiten von Zwischenergebnissen können gemäß Ausführungsformen innerhalb der Ausführung eines einzigen SPS Zyklus erfolgen. Dies hat den Vorteil, dass die Steuerung erheblich beschleunigt wird und somit schneller auf verschiedene Ereignisse reagieren kann. Das System kann mit einer sehr geringen Latenzzeit auf einen Störfall reagieren, denn es ist nun möglich, innerhalb eines Zyklus ein oder mehrere Zwischenverarbeitungsschritte vorzusehen, z.B. zum Zweck der Datenaggregation oder Plausibilitätsprüfung. Teilprobleme können somit bereits während der Durchführung eines einzigen Zyklus vorberechnet und gelöst werden und die Ergebnisse den später im Zyklus ausgeführten Funktionen des Programms oder einer Kontrollsoftware, z.B. einer Leitstellenkontrollsoftware, zur Verfügung gestellt werden.According to embodiments, both the writing and the reading and processing of intermediate results can take place within the execution of a single PLC cycle. This has the advantage that the control is significantly accelerated and can therefore react more quickly to various events. The system can react to a fault with a very low latency, because it is now possible to provide one or more intermediate processing steps within a cycle, e.g. for the purpose of data aggregation or plausibility checks. Sub-problems can thus be pre-calculated and solved during the execution of a single cycle and the results can be made available to the functions of the program or a control software, e.g. a control center control software, that are executed later in the cycle.

Gemäß Ausführungsformen ist die Steuerung dazu konfiguriert, das gesamte Programm mit allen Programmmodulen in einem Arbeitsspeicher der Steuerung zu speichern. Zumindest eines der Programmmodule des Programms ist dazu konfiguriert, einen Wert eines Parameters von einem diesem Parameter zugeordneten Adressbereich des Zwischenergebnisspeichers zu lesen und zu verarbeiten, um das Vorliegen eines Ereignisses in dem Tunnel oder in einem der Automatisierungsgeräte zu erkennen. Das zumindest eine Programmmodul ist dazu konfiguriert, ein Ergebnis zu erzeugen, welches das Vorliegen dieses Ereignisses anzeigt und/oder welches zur Anpassung der Steuerung des Verkehrswegetunnels in Reaktion auf dieses Ereignis dient.According to embodiments, the controller is configured to store the entire program with all program modules in a working memory of the controller. At least one of the program modules of the program is configured to read and process a value of a parameter from an address range of the intermediate result memory assigned to this parameter in order to detect the presence of an event in the tunnel or in one of the automation devices. The at least one program module is configured to generate a result which indicates the presence of this event and/or which serves to adapt the control of the traffic route tunnel in response to this event.

Dies kann es erlauben, Latenzzeiten bis zur Reaktion auf einen Störfall zu reduzieren, da das SPS Programm bereits im Arbeitsspeicher der Steuerung läuft und geladen ist, wenn der Störfall eintritt, sodass die Steuerung sofort reagieren kann. Es ist also nicht notwendig, dass seitens der Leitstelle erst aktiv eingegriffen werden müsste oder dass erst zusätzliche Programme geladen und initialisiert werden müssen.This can make it possible to reduce latency times until a fault is responded to, as the PLC program is already running and loaded in the controller's memory when the fault occurs, so that the controller can respond immediately. It is therefore not necessary for the control center to actively intervene or for additional programs to be loaded and initialized.

Das besagte Ereignis kann z.B. eines der folgenden Ereignisse sein:

  • - eine Rauchentwicklung,
  • - ein Brand,
  • - eine Überschreitung eines festgelegten Kohlenmonoxidgrenzwerts,
  • - ein Stau,
  • - ein Falschfahrer,
  • - ein stehendes Fahrzeug in einer Pannenbucht,
  • - ein Hindernis oder Gegenstände auf der Fahrbahn,
  • - eine Person im Verkehrswegetunnel,
  • - das Öffnen einer Notrufnischentür,
  • - ein Verkehrsunfall-Notruf,
  • - das Betätigen eines Tasters für behinderte Personen,
  • - die Entnahme eines Feuerlöscher,
  • - das Öffnen einer Fluchttür,
  • - ein Ausfall oder eine Störung eines der Geräte im Verkehrswegetunnel,
  • - ein Ausfall eines Übertragungsweges zur ständig besetzten Stelle,
  • - ein Energieausfall im Verkehrswegetunnel.
The event in question can be one of the following events:
  • - smoke development,
  • - a fire,
  • - exceedance of a specified carbon monoxide limit value,
  • - traffic jam,
  • - a wrong-way driver,
  • - a stationary vehicle in a breakdown bay,
  • - an obstacle or objects on the road,
  • - a person in the traffic tunnel,
  • - opening an emergency call niche door,
  • - a traffic accident emergency call,
  • - pressing a button for disabled persons,
  • - the removal of a fire extinguisher,
  • - opening an escape door,
  • - a failure or malfunction of one of the devices in the traffic tunnel,
  • - a failure of a transmission path to the permanently manned location,
  • - a power failure in the traffic tunnel.

Beispielsweise kann das berechnete Ergebnis eine Spezifikation von Art, Ort und/oder Stärke des Ereignisses sein, also z.B. eine Quantifizierung der Größe bzw. Erstreckung eines Brandes, die Länge eines Staus, die Art oder der Grad der Störung eines Gerätes, etc.For example, the calculated result can be a specification of the type, location and/or severity of the event, e.g. a quantification of the size or extent of a fire, the length of a traffic jam, the type or degree of malfunction of a device, etc.

Gemäß weiterer Beispiele kann das berechnete Ergebnis ein Steuersignal beinhalten, das dazu konfiguriert ist, eines oder mehrere der Geräte in einen Betriebsmodus zu versetzen, der dazu geeignet ist, die Stärke des Ereignisses oder seine Folgen zu begrenzen und/oder abzuschwächen. Beispielsweise kann durch das Schließen von Brandschutztüren und/oder das automatische Öffnen von Fluchttüren das Risiko von Personenschäden bei einem Brand reduziert werden. Durch das Stoppen von Ventilatoren in der Nähe eines Brandes können Luftverwirbelungen und das Risiko einer weiteren Ausbreitung des Brandes vermieden oder reduziert werden. Das Signal kann z.B. als Zwischenwert oder Teil des Ausgangsabbilds in einen diesem Signal zugewiesenen Adressbereich des Datenspeichers gespeichert werden und/oder an die Leitstellenkontrollsoftware bereitgestellt werden.According to further examples, the calculated result may include a control signal configured to place one or more of the devices in an operating mode suitable for limiting and/or mitigating the severity of the event or its consequences. For example, closing fire doors and/or automatically opening escape doors may reduce the risk of personal injury in the event of a fire. Stopping fans near a fire may prevent or reduce air turbulence and the risk of further spread of the fire. The signal may, for example, be stored as an intermediate value or part of the output image in an address range of the data storage assigned to this signal and/or provided to the control center control software.

Nach Ausführungsformen sind die mehreren Programmmodule individuell kompilierbar und individuell einsetzbar (deploybar). Vorzugsweise kann dies auch im laufenden Betrieb des Tunnels geschehen.Depending on the embodiment, the multiple program modules can be compiled and deployed individually. Preferably, this can also be done while the tunnel is running.

Beispielsweise ist es möglich, mit der Programmiersprache AWL Programmmodule individuell zu definieren, kompilieren und zu deployen. AWL ist eine Step7 Programmiersprache in welcher einzelne Anweisungen in der Reihenfolge geschrieben wie die CPU diese dann abarbeiten soll. Die Programmiersprache AWL ist Bestandteil der Basissoftware SIMATIC Step7. Mit Hilfe von inkrementellen Editoren können in AWL Programmmodule bearbeitet werden. Mit einem quellorientierten Editor können AWL-Quellen erstellt und in -Programmmodule übersetzt werden. Die Programmiersprachen KOP und FUP können ebenfalls verwendet werden, jedoch ist AWL vorzuziehen, da hier kein weiterer Übersetzungsschritt anfällt.For example, it is possible to individually define, compile and deploy program modules using the AWL programming language. AWL is a Step7 programming language in which individual instructions are written in the order in which the CPU should then process them. The AWL programming language is part of the basic SIMATIC Step7 software. Program modules can be edited in AWL using incremental editors. AWL sources can be created and translated into program modules using a source-oriented editor. The LAD and FBD programming languages can also be used, but AWL is preferable because no additional translation step is required.

Die individuelle Kompilierbarkeit von Programmmodulen kann vorteilhaft sein, weil es hierdurch möglich ist, gezielt einzelne Aspekte eines Programms zu ändern, ohne dass hierdurch die Funktionalität der anderen Programmmodule beeinträchtigt ist.The individual compilability of program modules can be advantageous because it makes it possible to specifically change individual aspects of a program without affecting the functionality of the other program modules.

Beispielsweise kann ein Tunnel bereits 10 Lüfter eines bestimmten Typs umfassen und die Steuersoftware über 10 entsprechende Programmodule für die Verarbeitung von Statusdaten der jeweiligen Lüfter verfügen. Wenn dem Tunnel nun ein elfter Lüfter des gleichen Typs hinzugefügt wird, muss das SPS-Programm ggf. nur um eine weitere und leicht umkonfigurierte Instanz dieses Programmoduls erweitert werden, wobei eine Neukompilation der übrigen Programmodule nicht erforderlich ist.For example, a tunnel may already contain 10 fans of a certain type and the control software may have 10 corresponding program modules for processing status data from the respective fans. If an eleventh fan of the same type is now added to the tunnel, the PLC program may only need to be expanded to include another and slightly reconfigured instance of this program module, and recompiling the other program modules is not necessary.

Nach Ausführungsformen der Erfindung umfasst das Verkehrswegetunnelsteuerungssystem eine Anlagenleitebenen-Kontrollsoftware zur Visualisierung und/oder Kontrolle des Programmablaufs des Programms.According to embodiments of the invention, the traffic route tunnel control system comprises a system control level control software for visualizing and/or controlling the program flow of the program.

Nach Ausführungsformen umfassen ein oder mehrere der Programmmodule eine Schnittstelle zu einer Anlagenleitebenen-Kontrollsoftware in Form von vordefinierten und der Anlagenleitebenen-Kontrollsoftware bekannten Adressbereichen des Zwischenergebnisspeichers. Die Programmodule des SPS-Programms sind dazu konfiguriert, über die Schnittstelle einen von einem der Programmmodule berechneten Parameterwert an die Anlagenleitebenen-Kontrollsoftware zu übermitteln und/oder einen Steuerbefehl von der Anlagenleitebenen-Kontrollsoftware zu erhalten.According to embodiments, one or more of the program modules comprise an interface to a plant management level control software in the form of predefined address areas of the intermediate result memory known to the plant management level control software. The program modules of the PLC program are configured to transmit a parameter value calculated by one of the program modules to the plant management level control software via the interface and/or to receive a control command from the plant management level control software.

Dies kann vorteilhaft sein, da zumindest einige der Programmmodule auch die zum Datenaustausch mit einer Anlagenleitebenen-Kontrollsoftware benötigten Adressbereiche „kennen“, sodass auch die Anbindung an die Leitebene nicht für jeden Tunnel neu programmiert werden muss. Vielmehr ist auch der Datenaustausch mit der Leitebene modular aufgebaut und kann für jedes Programmmodul individuell einmal bei der Programmmodulentwicklung getestet werden, sodass auch in Bezug auf diesen Datenaustausch das Risiko von Fehlern in der Steuersoftware erheblich reduziert werden kann.This can be advantageous because at least some of the program modules also "know" the address ranges required for data exchange with a system control level control software, so that the connection to the control level does not have to be reprogrammed for each tunnel. Rather, the data exchange with the control level is also modular and can be tested individually for each program module once during program module development, so that the risk of errors in the control software can be significantly reduced with regard to this data exchange.

Beispielseise können die Schnittstellen zwischen einzelnen Programmmodulen und der Anlagenleitebenen-Kontrollsoftware auf standardisierten, für diese Schnittstelle fest definierten Datentypen (z.B. Float, Int, String, Boolean, etc.) beruhen.For example, the interfaces between individual program modules and the plant management level control software can be based on standardized data types that are specifically defined for this interface (e.g. Float, Int, String, Boolean, etc.).

Gemäß Ausführungsformen umfasst die Anlagenleitebenen-Kontrollsoftware mehrere Programmmodule. Zumindest einige der Programmodule der Anlagenleitebenen-Kontrollsoftware korrespondieren funktional zu jeweils einem der Programmmodule des SPS-Programms der Tunnelsteuerung („SPS-Programmmodul“). Die Korrespondenz bedeutet, dass das Programmodul der Anlagenleitebenen-Kontrollsoftware dazu konfiguriert ist, gerätebezogene Parameterwerte, die von dem zu diesem Modul korrespondierenden SPS-Programmmodul verarbeitet werden, graphisch zu repräsentieren und auf einer Anzeige auszugeben. Die Sequenz und/oder Natur der von der Anlagenleitebenen-Kontrollsoftware angezeigten gerätebezogenen Parameterwerte hängt somit von der Abfolge und Art der SPS-Programmmodule ab.According to embodiments, the plant control level control software comprises several program modules. At least some of the program modules of the plant control level control software correspond functionally to one of the program modules of the PLC program of the tunnel control (“PLC program module”). The correspondence means that the program module of the plant control level control software is configured to graphically represent device-related parameter values that are processed by the PLC program module corresponding to this module and to output them on a display. The sequence and/or nature of the device-related parameter values displayed by the plant control level control software thus depends on the sequence and type of the PLC program modules.

Beispielsweise kann es sich bei den Programmodulen der Anlagenleitebenen-Kontrollsoftware um Anzeigemodule handeln, die dazu konfiguriert sind, die von dem jeweils korrespondierenden Programmmodul empfangenen Daten (z.B. Messwerte, die über den Zustand oder Status eines Geräts und/oder des Tunnels Aufschluss geben) auf definierte Weise graphisch zu repräsentieren (z.B. mittels Symbolen, Messwerten, Meldungen, etc.) und die graphischen Repräsentationen auf einer Anzeige auszugeben. Bei den graphischen Repräsentationen kann es sich z.B. um Symbole, Farben, Warnmeldungen, Text, Auswahlmenüs oder Bedienfelder für das Erzeugen von Steuerbefehlen an Programmmodule oder dergleichen handeln.For example, the program modules of the plant management level control software can be display modules that are configured to graphically represent the data received from the corresponding program module (e.g. measured values that provide information about the condition or status of a device and/or the tunnel) in a defined manner (e.g. using symbols, measured values, messages, etc.) and to output the graphic representations on a display. The graphic representations can be, for example, symbols, colors, warning messages, text, selection menus or control panels for generating control commands to program modules or the like.

Dies kann den Vorteil haben, dass die Anlagenleitebenen-Kontrollsoftware nicht für den Zweck der Visualisierung des Tunnelzustands für jeden Tunnel neu angepasst werden muss, sondern dynamisch diejenigen Programmmodule bzw. Anzeigenmodule aktiviert werden, die für ein bereits bekanntes SPS Programmodul eines anderen Tunnels Leitstellen-seitig ohnehin bereits im Einsatz sind. Beispielsweise kann eine Vielzahl von Programmen zur Steuerung einer Vielzahl unterschiedlicher Tunnel verwendet werden, wobei die Programme alle auf Programmmodulen der gleichen Bibliothek beruhen. Jedes Programmmodul dieser Bibliothek, sofern es Daten mit der Kontrollsoftware austauscht, korrespondiert zu einem Programmodul der Kontrollsoftware. Bei der Ausführung der Kontrollsoftware können sämtliche Kontrollsoftware-Programmodule, die ein korrespondierendes SPS-Programmmodul in der Bibliothek besitzen, bereits instanziiert sei, sodass die Leitstelle nahtlos im laufenden Betrieb zur Visualisierung zusätzlicher, neu errichteter Tunnel verwendet werden kann, sofern das zur Tunnelsteuerung verwendete Programm ein Programm auf Basis der besagten Programmbibliothek ist. Auch dies erhöht die Flexibilität der Tunnelsteuerung und der Integration neuer Tunnel und entsprechender Steuersoftware erheblich.This can have the advantage that the system control level control software does not have to be adapted for each tunnel for the purpose of visualizing the tunnel status, but rather dynamically activates those program modules or display modules that are already in use for a known PLC program module of another tunnel on the control center side. For example, a large number of programs can be used to control a large number of different tunnels, with the programs all being based on program modules from the same library. Each program module in this library, provided it exchanges data with the control software, corresponds to a program module in the control software. When the control software is executed, all control software program modules that have a corresponding PLC program module in the library can already be instantiated, so that the control center can be used seamlessly during operation to visualize additional, newly constructed tunnels, provided the program used to control the tunnel is a program based on the program library in question. This also significantly increases the flexibility of the tunnel control and the integration of new tunnels and corresponding control software.

Gemäß manchen Ausführungsformen umfasst die Anlagenleitebenen-Kontrollsoftware auch vordefinierte Programmodule, die dazu konfiguriert sind, Steuerbefehle (die die Anlagenleitebenen-Kontrollsoftware generiert oder von einem menschlichen Operator in die Anlagenleitebenen-Kontrollsoftware eingegeben oder ausgelöst werden), an ein zu diesem Programmodul funktional komplementäres SPS-Programmmodul zu senden. Beispielswiese kann über ein Ventilator-Kontrollmodul der Anlagenleitebenen-Kontrollsoftware, die einem bestimmten Tunnel T1 zugewiesen ist, ein Befehl zum Einschalten oder Ausschalten dieses Ventilators an die Datenaustauschschnittstelle des für diesen Ventilator zuständigen SPS-Programmmoduls gesendet werden.According to some embodiments, the plant control level control software also comprises predefined program modules that are configured to send control commands (which are generated by the plant control level control software or entered or triggered by a human operator in the plant control level control software) to a PLC program module that is functionally complementary to this program module. For example, via a fan control module of the plant control level control software that is assigned to a specific tunnel T1, a command to switch this fan on or off can be sent to the data exchange interface of the PLC program module responsible for this fan.

Gemäß Ausführungsformen sind die Programmmodule des SPS-Programms dazu konfiguriert, untereinander Daten über vordefinierte Adressbereiche des Zwischenergebnisspeichers auszutauschen. Die Datenaustauschschnittstelle kann also z.B. aus einem vordefinierten Adressbereich bestehen.According to embodiments, the program modules of the PLC program are configured to exchange data with each other via predefined address ranges of the intermediate result memory. The data exchange interface can therefore consist of a predefined address range, for example.

Gemäß mancher Ausführungsformen ist die Anlagenleitebenen-Kontrollsoftware dazu konfiguriert, Parameterwerte von ein oder mehreren, den Status des Tunnels anzeigenden Parametern, aus vordefinierten Adressbereichen des Zwischenergebnisspeichers und/oder des Speichers, der das Ausgangsabbilds enthält, zu lesen.According to some embodiments, the plant management level control software is configured to read parameter values of one or more parameters indicating the status of the tunnel from predefined address ranges of the intermediate result memory and/or the memory containing the output image.

Zusätzlich oder alternativ dazu ist die Anlagenleitebenen-Kontrollsoftware dazu konfiguriert, Steuerbefehle zur Steuerung von einem oder mehreren der Automatisierungsgeräte in vordefinierte Adressbereiche des Zwischenergebnisspeichers und/oder des Speichers, der das Eingangsabbild enthält, zu schreiben.Additionally or alternatively, the plant management level control software is configured to write control commands for controlling one or more of the automation devices into predefined address ranges of the intermediate result memory and/or the memory containing the input image.

Die Anlagenebenen-Kontrollsoftware kann z.B. auf einem Standard-Computersystem implementiert sein. Vorzugsweise ist die Anlagenebenen-Kontrollsoftware jedoch Bestandteil eines SCADA-Systems (Supervisory Control and Data Acquisition, zu Deutsch: Überwachung, Steuerung und Datenerfassung). Derartige Systeme werden im Bereich der Industrial Control Systems (ICS, zu deutsch Industrielle Steuerungsanlagen) zur Überwachung und Steuerung technischer Prozesse verwendet. Die Architektur von Automationen wird in mehrere Ebenen gemäß der Automatisierungspyramide unterteilt. Dabei ist das Level 1 die prozessnahe Schicht mit Sensoren und Aktoren. Die 2. Ebene dient der Steuerung, insbesondere der Optimierung der Funktion der Level-1-Automation und der Ausgabe von Stellgrößen und Sollwerten. Das bzw. die Programme zur Steuerung entsprechender Verkehrswegetunnel können z.B. Bestandteil der zweiten Ebene sein. Die Kontrollsoftware kann auf der 3. Ebene, der Prozessleitebene zur Überwachung und Kontrolle der Prozesse, verortet sein. Durch Auswertung der Betriebsdatenerfassung (BDE) bzw. Maschinendatenerfassung (MDE) wird ermittelt, ob Werte einen bestimmten Schwellwert überschreiten. Wenn das passiert, schlägt die Kontrollsoftware Alarm, um den Nutzern die Möglichkeit zu geben durch Inspektion, Wartung bzw. Reparaturen oder Umplanung das Problem zu beheben. Die 4. Ebene repräsentiert die Betriebsleitebene. Die Kommunikation zwischen der Kontrollsoftware und dem Programm bzw. den Programmen erfolgt z.B. auf der Basis von TCPbasierten Internettechniken.The plant level control software can be implemented on a standard computer system, for example. Preferably, however, the plant level control software is part of a SCADA system (Supervisory Control and Data Acquisition). Such systems are used in the area of industrial control systems (ICS) to monitor and control technical processes. The architecture of automation is divided into several levels according to the automation pyramid. Level 1 is the process-related layer with sensors and actuators. The 2nd level is used for control, in particular for optimizing the function of level 1 automation and for issuing control signals. sizes and target values. The program(s) for controlling the corresponding traffic tunnels can be part of the second level, for example. The control software can be located on the third level, the process control level for monitoring and controlling the processes. By evaluating the operational data acquisition (BDE) or machine data acquisition (MDE), it is determined whether values exceed a certain threshold. If this happens, the control software sounds an alarm to give users the opportunity to solve the problem through inspection, maintenance, repairs or replanning. The fourth level represents the operational control level. The communication between the control software and the program(s) takes place, for example, on the basis of TCP-based Internet technology.

Nach Ausführungsformen sind zumindest einige der Programmmodule des Programms Geräte-Programmmodule. Ein Geräte-Programmmodul ist ein Programmmodul, das zumindest einem der Automatisierungsgeräte zugeordnet ist und dazu konfiguriert ist, einen oder mehrere auf dieses zumindest eine Automatisierungsgerät bezogene Parameter zu verarbeiten.According to embodiments, at least some of the program modules of the program are device program modules. A device program module is a program module that is assigned to at least one of the automation devices and is configured to process one or more parameters related to this at least one automation device.

Falls ein Geräte-Programmmodul mehreren Geräten zugewiesen ist, handelt es sich vorzugsweise um Geräte des gleichen Gerätetyps. Das Geräte-Programmmodul kann dann z.B. dazu dienen, einen von mehreren Geräten des gleichen Typs erhaltenen Parameterwert zu aggregieren, z.B. einen Mittelwert zu berechnen, zu normalisieren, oder auf andere Weise zu verarbeiten. Ein auf ein Gerät bezogener Parameter kann z.B. ein Parameter sein, dessen Wert von dem Automatisierungsgerät gemessen wird, dessen Wert Auskunft über den aktuellen Status des Automatisierungsgeräts gibt und/oder der Daten repräsentiert, welche die Arbeitsweise des Automatisierungsgeräts steuern oder auf andere Weise beeinflussen.If a device program module is assigned to several devices, these are preferably devices of the same device type. The device program module can then be used, for example, to aggregate a parameter value received from several devices of the same type, e.g. to calculate an average value, to normalize it, or to process it in another way. A parameter related to a device can, for example, be a parameter whose value is measured by the automation device, whose value provides information about the current status of the automation device and/or which represents data that controls or otherwise influences the operation of the automation device.

Beispielsweise kann das SPS Programm jeweils ein Lüftungs-Geräte-Programmmodul für jeden Lüfter, der in dem Tunnel verbaut ist, und ein Notausgangstür-Geräte-Programmmodul für jede Tür eines Notausgangs des Tunnels haben. Das Geräte-Programmmodul kann z.B. dazu dienen, Zustandsdaten des jeweiligen Geräts auszuwerten (z.B. Durchführung einer Plausibilitätsprüfung, Prüfung, ob ein Grenzwert überschritten ist, Aggregation oder Normierung eines entsprechenden Messwerts, etc.) und das Ergebnis als Zwischenergebnis in einen vordefinierten und festgelegten Adressbereich des Zwischenergebnisspeichers zu speichern.For example, the PLC program can have a ventilation device program module for each fan installed in the tunnel and an emergency exit door device program module for each door of an emergency exit in the tunnel. The device program module can be used, for example, to evaluate status data of the respective device (e.g. performing a plausibility check, checking whether a limit value has been exceeded, aggregating or normalizing a corresponding measured value, etc.) and saving the result as an intermediate result in a predefined and specified address range of the intermediate result memory.

Beispielsweise können ein oder mehrere der Programmmodule, insbesondere Geräte-Programmmodule, jeweils dazu konfiguriert sein, Sensor- und/oder Statusdaten mehrerer der Geräte von vordefinierten, diesen Geräten zugewiesenen Adressbereichen des Zwischenergebnisspeichers zu lesen, zu aggregieren und den aggregierten Wert als aggregiertes Zwischenergebnis in einen weiteren vordefinierten Adressbereich innerhalb des Zwischenergebnisspeichers zu speichern, dass während des Zyklus später ausgeführte Programmmodule das aggregierte Zwischenergebnis lesen und verarbeiten können.For example, one or more of the program modules, in particular device program modules, can each be configured to read sensor and/or status data of several of the devices from predefined address ranges of the intermediate result memory assigned to these devices, to aggregate them and to store the aggregated value as an aggregated intermediate result in another predefined address range within the intermediate result memory so that program modules executed later during the cycle can read and process the aggregated intermediate result.

Das Eingangsabbild kann z.B. mehrere Messwerte umfassen, die mindestens einmal pro Zyklus, ggf. auch mehrfach, gemessen, über einen Feldbus vom jeweiligen Gerät an den Datenspeicher, der den Zwischenergebnisspeicher enthält, oder einen anderen Datenspeicher, übertragen und dort in einem Pufferspeicherbereich gesammelt werden. Der Inhalt des Pufferspeichers wird vor jedem Beginn eines Zyklus in einen Eingangsabbildspeicherbereich kopiert. Es ist möglich, dass sich einige Werte in diesem Pufferspeicherbereich während eines einzelnen SPS Zyklus ändern, z.B. wenn der entsprechende Messwert mit höherer Frequenz gemessen wird als die Zyklusfrequenz. Der Inhalt des Pufferspeichers zum Beginn eines Zyklus dient als Eingangsabbild oder Teil des Eingangsabbilds. Während der Ausführung eines SPS Zyklus bleibt der Inhalt des Eingangsabbilds jedoch konstant. Dies stellt sicher, dass alle Programmmodule unabhängig davon, wann innerhalb eines SPS Zyklus sie ausgeführt werden, das gleiche Eingangsabbild als Ausgangspunkt verwenden können.The input image can, for example, include several measured values that are measured at least once per cycle, or several times if necessary, transferred via a fieldbus from the respective device to the data storage containing the intermediate result storage or another data storage, and collected there in a buffer memory area. The contents of the buffer memory are copied to an input image memory area before the start of each cycle. It is possible that some values in this buffer memory area change during a single PLC cycle, e.g. if the corresponding measured value is measured at a higher frequency than the cycle frequency. The contents of the buffer memory at the start of a cycle serve as the input image or part of the input image. However, during the execution of a PLC cycle, the contents of the input image remain constant. This ensures that all program modules can use the same input image as a starting point, regardless of when within a PLC cycle they are executed.

Vorzugsweise ist die Verkehrswegetunnelsteuerung dazu konfiguriert, zu Beginn eines jeden SPS-Zyklus das Eingangsabbild des Tunnels, das den aktuellen Zustand des Tunnels und der darin befindlichen Geräte beinhaltet, zu erfassen und diese in Form von Rohdaten in für das Eingangsabbild reservierte Adressbereiche eines Datenspeichers zu speichern. Dieses Eingangsabbild bleibt während des gesamten Zyklus unverändert erhalten. Der zur Speicherung des Eingangs- und Ausgangsabbilds verwendete Datenspeicher kann der gleiche Datenspeicher sein, der die Zwischenergebnisse enthält, oder ein anderer Datenspeicher.Preferably, the traffic route tunnel controller is configured to capture the input image of the tunnel, which contains the current state of the tunnel and the devices located therein, at the beginning of each PLC cycle and to store this in the form of raw data in address areas of a data storage device reserved for the input image. This input image remains unchanged throughout the entire cycle. The data storage device used to store the input and output images can be the same data storage device that contains the intermediate results or a different data storage device.

In dem Zyklus können sodann mehrere Programmmodule, in manchen Implementierungsvarianten ein einziges Programmodul des Programms, sodann die im Eingangsabbild enthaltenen Rohdaten (z.B. Leuchtdichtewerte, Temperaturen, etc.) einlesen, verarbeiten und in den Zwischenergebnisspeicher speichern. Ggf. werden gerätebezogene Zwischenergebnisse von verschiedenen Geräte-Programmmodulen mehrfach pro Zyklus gelesen, verarbeitet, und gespeichert, also z.B. gefiltert, geglättet, auf die Einhaltung vorgegebenen Grenzen hin geprüft, skaliert, usw., und die entstandenen Ergebnisdaten stehen anderen, zu einem späteren Zeitpunkt innerhalb des gleichen Zyklus ausgeführten Programmmodulen (z.B. andere Geräte-Programmmodule und/oder Funktions-Programmmodule) zur Weiterverarbeitung zur Verfügung.In the cycle, several program modules, in some implementation variants a single program module of the program, can then read the raw data contained in the input image (e.g. luminance values, temperatures, etc.), process them and save them in the intermediate result memory. If necessary, device-related intermediate results from different device program modules are read, processed and saved several times per cycle, e.g. filtered, smoothed, checked for compliance with specified limits, scaled, etc., and the resulting results The data are available for further processing by other program modules executed at a later point in time within the same cycle (e.g. other device program modules and/or function program modules).

Komplexere Datenverarbeitungsschritte, die mehrere Parameter verschiedener Gerätetypen verarbeiten, sind vorzugsweise in den sog. Funktions-Programmmodulen implementiert.More complex data processing steps that process several parameters of different device types are preferably implemented in the so-called functional program modules.

Nach Ausführungsformen sind zumindest einige der Programmmodule des Programms Funktions-Programmmodule. Ein Funktions-Programmmodul ist ein Programmmodul, das dazu konfiguriert ist:

  • - Parameterwerte, die in einem dem Parameter zugewiesenen Adressbereich innerhalb des Zwischenergebnisspeichers und/oder innerhalb eines Eingangsabbilds gespeichert sind, zu lesen;
  • - unter Verwendung der gelesenen Parameterwerte Steuerungsdaten zur Steuerung zumindest eines der Automatisierungsgeräte zu berechnen; und
  • - die berechneten Steuerungsdaten in einen dem zu steuernden Automatisierungsgerät zugewiesene Adressbereich innerhalb des Ausgangsabbilds zu speichern, um zumindest eine Funktion des dem Funktions-Programmmodul zugeordneten Automatisierungsgeräts zu steuern.
According to embodiments, at least some of the program modules of the program are functional program modules. A functional program module is a program module that is configured to:
  • - to read parameter values stored in an address range assigned to the parameter within the intermediate result memory and/or within an input image;
  • - to calculate control data for controlling at least one of the automation devices using the read parameter values; and
  • - to store the calculated control data in an address range assigned to the automation device to be controlled within the output image in order to control at least one function of the automation device assigned to the function program module.

Die Steuerungsdaten können z.B. Steuerungsbefehle beinhalten.The control data can, for example, contain control commands.

Beispielsweise kann ein Funktions-Programmmodul für jeden SPS Zyklus einen oder mehrere Steuerbefehle für ein oder mehrere von dem Funktionsbaustein kontrollierte Automatisierungsgeräte berechnen und diese in den Zwischenergebnisspeicher oder in einen das Ausgangsabbild beinhaltenden Speicher schreiben. Am Ende des Zyklus werden die im Ausgangsabbild enthaltenen Steuerbefehle an die Geräteperipherie übertragen und steuern das Verhalten der Automatisierungsgeräte.For example, a function program module can calculate one or more control commands for one or more automation devices controlled by the function block for each PLC cycle and write these into the intermediate result memory or into a memory containing the output image. At the end of the cycle, the control commands contained in the output image are transferred to the device periphery and control the behavior of the automation devices.

Durch die Erzeugung und Speicherung der Steuerbefehle können somit die von den Geräten erfassten Rohdaten direkt oder indirekt über Zwischenergebnisse durch die Funktions-Programmmodule in Teile des Ausgangsabbilds transformiert werden, um den Zustand der Geräte und damit auch den Zustand des Tunnels an die aktuellen Erfordernisse anzupassen.By generating and storing the control commands, the raw data recorded by the devices can be transformed directly or indirectly via intermediate results by the functional program modules into parts of the output image in order to adapt the state of the devices and thus also the state of the tunnel to the current requirements.

Manche Funktions-Programmmodule können auch Steuerbefehl-Zwischenergebnisse berechnen und in die hierfür reservierten Adressbereiche des Zwischenergebnisspeichers speichern. Weitere, innerhalb des gleichen SPS-Zyklus später ausgeführte Funktions-Programmmodule können aus mehreren Steuerbefehl-Zwischenergebnissen schließlich einen oder mehrere finale Steuerbefehle berechnen, die als Teil des Ausgangsabbilds gespeichert werden. Beispielsweise können drei Funktions-Programmmodule für drei Brandschutztüren jeweils als Zwischenergebnis den Steuerbefehl „Türe schließen“ erzeugen, falls die Funktions-Programmmodule das Vorliegen eines Brandes erkennen. Bevor die Steuerbefehle für die drei Türen jedoch ins Ausgangsabbild geschrieben werden, kann ein weiteres Funktions-Programmmodul eine weitere Berechnung anstellen, um die Reihenfolge der Türschließungen bzw. der ausgegebenen Steuerbefehle so zu orchestrieren, dass dabei möglichst wenig Zugluft entsteht oder andere Optimierungskriterien erfüllt werden.Some function program modules can also calculate intermediate control command results and save them in the address areas of the intermediate result memory reserved for this purpose. Other function program modules executed later within the same PLC cycle can then calculate one or more final control commands from several intermediate control command results, which are saved as part of the output image. For example, three function program modules for three fire doors can each generate the control command "close door" as an intermediate result if the function program modules detect the presence of a fire. However, before the control commands for the three doors are written to the output image, another function program module can perform another calculation to orchestrate the sequence of door closings or the control commands issued in such a way that as little draft as possible is created or other optimization criteria are met.

Nach Ausführungsformen sind mehrere Funktions-Programmmodule oder sonstigen Programmmodule des Programms dazu konfiguriert, dass sie zumindest teilweise die gleichen Daten lesen und verarbeiten. Beispielsweise kann eine Statusinformation „Türe geöffnet“ von einem ersten Funktions-Programmmodul dahingehend verarbeitet werden, dass es in Reaktion hierauf einen Steuerbefehl zum Anschalten der Beleuchtung erzeugt, und von einem weiteren Funktions-Programmmodul dahingehend verarbeitet werden, dass bei gleichzeitigem Vorliegen eines Brandes eine andere Tür automatisch geschlossen wird, um die Entstehung von den Brand anfachenden Durchzugs-Luftströmungen zu verhindern.According to embodiments, several functional program modules or other program modules of the program are configured to read and process at least some of the same data. For example, status information "door open" can be processed by a first functional program module in such a way that it generates a control command to switch on the lighting in response to this, and processed by a further functional program module in such a way that, if a fire is present at the same time, another door is automatically closed in order to prevent the formation of draft air currents that fan the fire.

Die Verwendung eines Programms mit Geräte- und Funktions-Programmmodulen, die innerhalb des gleichen Zyklus Daten und Zwischenergebnisse über die zugewiesenen Adressbereiche austauschen, kann den Vorteil haben, dass trotz der streng sequenziellen Ausführung der Programmmodule der Datenfluss nicht streng hierarchisch, sondern „innerhalb“ der SPS Schicht und innerhalb des gleichen Zyklus auch verzweigt möglich ist.The use of a program with device and function program modules that exchange data and intermediate results within the same cycle via the assigned address ranges can have the advantage that, despite the strictly sequential execution of the program modules, the data flow is not strictly hierarchical, but can be branched "within" the PLC layer and within the same cycle.

Nach Ausführungsformen sind zumindest zwei der Programmmodule dazu konfiguriert, auf zumindest einen gleichen Adressbereich des Zwischenwertspeichers zuzugreifen und die in diesem gespeicherten Daten während eines SPS-Zyklus zu verarbeiten und unterschiedliche Ergebnisse (Zwischenergebnisse oder Bestandteile des Ausgangsabbilds) zu erzeugen.According to embodiments, at least two of the program modules are configured to access at least one identical address range of the intermediate value memory and to process the data stored therein during a PLC cycle and to generate different results (intermediate results or components of the output image).

Nach Ausführungsformen umfassen die Geräte ein oder mehrere Geräte, die aus der folgenden Gruppe von Geräten ausgewählt sind:

  • - Tunnellüftungsgerät, insbesondere Strahlventilator, Axialventilator, Absaugklappe;
  • - Temperatursensor;
  • - Beleuchtung, insbesondere Einfahrtsbeleuchtung, Durchfahrtsbeleuchtung, Notbeleuchtung, Fluchtweghinweisbeleuchtung;
  • - Kamera;
  • - Beleuchtungssensor, insbesondere Leuchtdichtesensor, Helligkeitssensor;
  • - Sensor für die Sichttrübung im Tunnel;
  • - Sensor für die Rauchdetektion im Tunnel;
  • - Luftfeuchtigkeitssensor;
  • - Luftgeschwindigkeitssensor;
  • - Lautstärkemessgerät;
  • - Meßquerschnitt für die Verkehrsstärkeerfassung;
  • - Anzeigequerschnitt für die Darstellung von Verkehrszeichen nach StVO;
  • - Steuerungseinheit für das Öffnen und Schließen von Flucht- und Wartungstüren;
  • - Sensor bezüglich des geöffnet-geschlossen-Status von Türen und Toren;
  • - Sensor bezüglich des Status einer Beleuchtung;
  • - Einheit für die Erzeugung von Stör- und Betriebsmeldungen;
  • - Sicherheitstechnisches Gerät, insbesondere Feuerlöschanlage, Alarmanlage, Brandmeldeanlage;
  • - Stromverteilungs- und Überwachungsgerät.
According to embodiments, the devices comprise one or more devices selected from the following group of devices:
  • - Tunnel ventilation equipment, in particular jet fan, axial fan, extraction flap;
  • - Temperature sensor;
  • - lighting, in particular driveway lighting, passage lighting, emergency lighting, escape route lighting;
  • - Camera;
  • - illumination sensor, in particular luminance sensor, brightness sensor;
  • - Sensor for visibility in the tunnel;
  • - Sensor for smoke detection in the tunnel;
  • - Humidity sensor;
  • - Air speed sensor;
  • - Volume meter;
  • - Measuring cross-section for traffic volume recording;
  • - Display cross-section for the representation of traffic signs according to the StVO;
  • - Control unit for opening and closing escape and maintenance doors;
  • - Sensor regarding the open-closed status of doors and gates;
  • - Sensor regarding the status of a lighting;
  • - Unit for generating fault and operating messages;
  • - Safety equipment, in particular fire extinguishing system, alarm system, fire detection system;
  • - Power distribution and monitoring device.

Nach Ausführungsformen der Erfindung ist die Steuerung dazu konfiguriert, zumindest eines der Programmmodule nur bei der n-ten Programmausführung auszuführen, wobei n eine Ganzzahl größer 1 ist. Beispielsweise kann ein bestimmtes Programmodul nur in jedem dritten Zyklus und ein anderes nur in jedem vierten Zyklus ausgeführt werden, wobei die Mehrzahl der Programmodule einmal pro Zyklus ausgeführt wird.According to embodiments of the invention, the controller is configured to execute at least one of the program modules only on the nth program execution, where n is an integer greater than 1. For example, a certain program module may only be executed every third cycle and another only every fourth cycle, with the majority of the program modules being executed once per cycle.

Bestimmte Programmmodule werden also nicht in jedem Zyklus, sondern immer nur nach einer festgelegten Anzahl von Zyklen ausgeführt. Dies kann den Vorteil haben, dass eine Überlastung der SPS-CPU vermieden wird. Der Ressourcenverbrauch, insbesondere die Auslastung der SPS-CPU, wird reduziert, ohne die Leistungsfähigkeit der Steuerung zu reduzieren, da manche Sensoren mit einer Trägheit arbeiten bzw. sich manche Parameter nur vergleichsweise langsam ändern, sodass es oft ausreichend ist, z.B. den aktuellen Wert des Energieverbrauchs eines Geräts nur bei jedem zweiten oder dritten Zyklus auszulesen und zu verarbeiten. Das besagte Verhalten der SPS-Programmodule kann z.B. mittels des Zeitscheibenverfahrens (round-robin) implementiert sein. Hierbei wird den Programmmodulen entsprechend ihrer Position innerhalb der Modulsequenz im SPS-Programm Prozessorzeit zugewiesen, wobei die Steuerung vor der Zuweisung prüft, ob dieses Programmodul beim aktuell ausgeführten Zyklus ausgeführt werden soll oder nicht. Falls nicht, wird diesem Programmodul keine Prozessorzeit zugewiesen, sondern dem nachfolgenden Programmodul (sofern dieses nicht ebenfalls an diesem Zyklus übersprungen werden soll). Beispielsweise kann die Steuerung Metadaten jedes Programmoduls beinhalten, welche angeben, ob ein bestimmtes Programmodul bei jedem oder bei jedem n-ten Zyklusdurchlauf ausgeführt werden soll, wobei n für verschiedene Programmodule unterschiedliche Werte einnehmen kann.Certain program modules are therefore not executed in every cycle, but only after a set number of cycles. This can have the advantage of preventing the PLC CPU from becoming overloaded. Resource consumption, in particular the load on the PLC CPU, is reduced without reducing the performance of the controller, since some sensors work with inertia or some parameters change only relatively slowly, so that it is often sufficient, for example, to read out and process the current value of a device's energy consumption only every second or third cycle. The behavior of the PLC program modules can be implemented, for example, using the time slicing method (round-robin). In this method, processor time is assigned to the program modules according to their position within the module sequence in the PLC program, with the controller checking before the assignment whether this program module should be executed in the currently executed cycle or not. If not, no processor time is assigned to this program module, but to the subsequent program module (unless this should also be skipped in this cycle). For example, the controller may include metadata of each program module that specifies whether a particular program module should be executed every cycle or every nth cycle, where n may have different values for different program modules.

Nach Ausführungsformen umfasst das SPS Programm ein oder mehrere Programmmodule, die dazu konfiguriert sind, zu prüfen, ob die in einem oder mehreren der Adressbereiche gespeicherten Daten einen Datentyp haben, den diese gemäß der Zuordnung des Adressbereichs zu bestimmten Geräten und/oder Parametern haben müssten. Beispielsweise können die Programmmodule jeweils eine Zuweisungskonfiguration, z.B. in Form einer Zuweisungstabelle, beinhalten, die Adressbereiche des Zwischenergebnisspeichers jeweils einem von mehreren vordefinierten Datentypen zuweist. Bei dem Datentyp handelt es sich z.B. um einen Datentyp, von dem bekannt ist, dass die von dem Gerät stammenden Daten oder der Parameter, der in dem Adressbereich gespeichert werden soll, diesen Datentyp haben. Der Datentyp kann z.B. Float, Integer, Boolean, ein Zeitstempel oder dergleichen sein. Falls die Prüfung ergibt, dass der Datenwert nicht dem zugewiesenen Datentyp entspricht, wird ein Ergebnis oder Zwischenergebnis erzeugt und in einem diesem Ergebnis zugewiesenen Adressraum gespeichert. Aus dem Ergebnis geht hervor, dass der vorliegende Datentyp nicht valide ist. Dies kann vorteilhaft sein, da hierdurch Fehler, die durch das Verwenden eines inkompatiblen Geräts (falscher Hersteller, falsche Geräteversion, falsche Firmware, etc.) entstehen, sofort erkannt werden können.According to embodiments, the PLC program comprises one or more program modules that are configured to check whether the data stored in one or more of the address ranges has a data type that it should have according to the assignment of the address range to certain devices and/or parameters. For example, the program modules can each contain an assignment configuration, e.g. in the form of an assignment table, which assigns address ranges of the intermediate result memory to one of several predefined data types. The data type is, for example, a data type of which it is known that the data originating from the device or the parameter that is to be stored in the address range has this data type. The data type can be, for example, a float, integer, boolean, a time stamp or the like. If the check shows that the data value does not correspond to the assigned data type, a result or intermediate result is generated and stored in an address space assigned to this result. The result indicates that the data type in question is not valid. This can be advantageous because it allows errors caused by using an incompatible device (wrong manufacturer, wrong device version, wrong firmware, etc.) to be detected immediately.

Gemäß manchen Ausführungsformen sind ein oder mehrere der Programmmodule dazu konfiguriert, einen dem Programmodul bekannten, geheimen Datenwert in einem hierfür vorgesehenen Adressbereich im Zwischenergebnisspeicher verschlüsselt zu speichern. Hierfür verwenden sie einen Verschlüsselungsschlüssel, der vorzugsweise spezifisch für ein bestimmtes Programmodul oder eine Gruppe von Programmodulen ausgestellt wird, z.B. spezifisch für ein Geräte-Programmodul für ein Gerät eines bestimmten Gerätetyps. Ein oder mehrere weitere der Programmmodule beinhalten eine Kopie des geheimen Datenwerts und einen zu dem Verschlüsselungsschlüssel korrespondierenden, kryptographischen Entschlüsselungsschlüssel, der dazu konfiguriert ist, den verschlüsselten geheimen Datenwert zu entschlüsseln. Die weiteren Programmodule können den entschlüsselten Datenwert mit dem ihnen bekannten, geheimen Referenzwert vergleichen um festzustellen, ob das Programmodul, das den verschlüsselten Datenwert geschrieben hat, im Besitz des geheimen Datenwerts war. Beispielsweise kann es sich bei dem Referenzwert um eine Kopie des geheimen Datenwerts handeln und die Prüfung kann eine Identitätsprüfung des entschlüsselten Datenwerts und des Referenzwerts umfassen. Hierdurch werden die Programmodule in die Lage versetzt, festzustellen, ob sie den von anderen Programmodulen bereitgestellten Zwischenergebnissen vertrauen können oder nicht.According to some embodiments, one or more of the program modules are configured to store a secret data value known to the program module in an address area provided for this purpose in the intermediate result memory. To do this, they use an encryption key that is preferably issued specifically for a certain program module or a group of program modules, e.g. specifically for a device program module for a device of a certain device type. One or more further program modules contain a Copy of the secret data value and a cryptographic decryption key corresponding to the encryption key, which is configured to decrypt the encrypted secret data value. The other program modules can compare the decrypted data value with the secret reference value known to them in order to determine whether the program module that wrote the encrypted data value was in possession of the secret data value. For example, the reference value can be a copy of the secret data value and the check can include an identity check of the decrypted data value and the reference value. This enables the program modules to determine whether or not they can trust the intermediate results provided by other program modules.

Falls die Prüfung ergibt, dass das den verschlüsselten Wert bereitstellende Modul nicht im Besitz des geheimen Datenwerts war, also nicht vertrauenswürdig ist, kann das weitere Modul die Verwendung der von diesem Modul bereitgestellten Zwischenwerte verweigern oder einen Warnhinweis ausgeben, dass das den verschlüsselten Datenwert bereitstellende Modul nicht vertrauenswürdig ist. Die Prüfung hat den Vorteil, dass ein besonders hohes Maß an die Vertrauenswürdigkeit und Integrität der Programmodule ermöglicht wird, da ohne die Kenntnis des geheimen Datenwerts kein Programmodul geschaffen werden kann, welches mit den anderen Modulen interoperabel ist. Allerdings ist die Prüfung vergleichsweise aufwändig, sodass sie vorzugsweise auf besonders leistungsstarken SPS-CPUs durchgeführt wird.If the test shows that the module providing the encrypted value did not have the secret data value and is therefore not trustworthy, the other module can refuse to use the intermediate values provided by this module or issue a warning that the module providing the encrypted data value is not trustworthy. The test has the advantage of enabling a particularly high level of trustworthiness and integrity of the program modules, since without knowledge of the secret data value, no program module can be created that is interoperable with the other modules. However, the test is comparatively complex, so it is preferably carried out on particularly powerful PLC CPUs.

Beispielsweise kann es sich bei dem geheimen Datenwert um einen Hashwert, z.B. um eine CRC Prüfsumme, handeln, die aus dem Quellcode oder Maschinencode des jeweiligen Programmmoduls berechnet wurde. Die weiteren Programmmodule können z.B. eine Positivliste von Hashwerten beinhalten, die z.B. für verschiedene Versionen des ersten als valide angesehenen Moduls als valide geheime Datenwerte bzw. zur Prüfung derselben geeignete Referenzwerte verwendet werden. Bei Identität von entschlüsseltem geheimen Wert und einem der Referenzwerte der Positivliste stellt das weitere Programmodul die Validität des den verschlüsselten Datenwert bereitstellenden Programmmoduls fest. Die besagte Bereitstellung und Prüfung erfolgt gemäß manchen Ausführungsformen bei jedem SPS-Zyklus jeweils für einen, mehrere oder alle der Programmmodule des Programms.For example, the secret data value can be a hash value, e.g. a CRC checksum, which was calculated from the source code or machine code of the respective program module. The other program modules can, for example, contain a positive list of hash values which are used, for example, for different versions of the first module considered valid as valid secret data values or as suitable reference values for checking them. If the decrypted secret value and one of the reference values of the positive list are identical, the other program module determines the validity of the program module providing the encrypted data value. According to some embodiments, the said provision and checking takes place in each PLC cycle for one, several or all of the program modules of the program.

Der verschlüsselte Datenwert kann auch mit einer digitalen Signatur verknüpft gespeichert sein, und die Prüfung auf Validität kann eine Prüfung der Signatur mit Hilfe eines öffentlichen Signaturprüfschlüssels umfassen.The encrypted data value may also be stored associated with a digital signature, and the validity check may include checking the signature using a public signature verification key.

Die Prüfung kann den Vorteil haben, dass hierdurch erkannt und protokolliert werden kann, falls z.B. der Betreiber des Tunnels ein Programmmodul verwendet, welches nicht Bestandteil einer offiziell für den Tunnelbetrieb bereitgestellten und getesteten Programmmodulbibliothek enthalten ist. Somit wird sichergestellt, dass der Tunnelbetrieb nur auf Basis hinreichend getesteter Programmmodule möglich ist und ein Austausch oder eine Manipulation eines der Programmmodule erkannt wird. Ein Austausch eines Programmmoduls durch ein anderes, noch nicht getestetes Programmmodul mit ungültiger Kennung wird also auch im laufenden Betrieb sofort erkannt und kann an die Kontrollsoftware übermittelt werden, die in diesem Fall eine Warnmeldung ausgeben kann.The test can have the advantage that it can be detected and recorded if, for example, the tunnel operator uses a program module that is not part of an officially provided and tested program module library for tunnel operation. This ensures that tunnel operation is only possible on the basis of sufficiently tested program modules and that any replacement or manipulation of one of the program modules is detected. Replacing a program module with another, not yet tested program module with an invalid identifier is therefore immediately detected even during operation and can be transmitted to the control software, which can issue a warning message in this case.

Nach Ausführungsformen der Erfindung ist nur ein einziges der Programmmodule des Programms dazu konfiguriert, bei der Ausführung eines Zyklus das Eingangsabbild zu lesen („Eingangs-Programmmodul“). Nur ein einziges der Programmmodule des Programms ist dazu konfiguriert, bei der Ausführung des Zyklus das Ausgangsabbild zu schreiben („Ausgangs-Programmmodul“). Alle übrigen Programmmodule des Programms sind dazu konfiguriert, ihre Eingangsdaten aus vordefinierten Adressbereichen des Zwischenergebnisspeichers zu lesen und in vordefinierte weitere Adressbereiche des Zwischenergebnisspeichers zu schreiben.According to embodiments of the invention, only one of the program modules of the program is configured to read the input image when executing a cycle ("input program module"). Only one of the program modules of the program is configured to write the output image when executing the cycle ("output program module"). All other program modules of the program are configured to read their input data from predefined address areas of the intermediate result memory and to write them to further predefined address areas of the intermediate result memory.

Vorzugsweise umfasst das Verkehrswegetunnelsteuerungssystem eine Nutzerschnittstelle, die es einem Nutzer zur Laufzeit des Programms ermöglicht, den Betrieb des Programms vom einem Normalbetriebsmodus in den Testbetriebsmodus umzustellen. Im Testbetriebsmodus wird das einzige Programmodul, das im Normalbetriebsmodus das Eingangsabbild aus dem Eingangsabbildspeicherbereich liest, dazu veranlasst, Testeingangsabbilddaten aus einem anderen Speicherbereich des Datenspeichers zu lesen, und das einzige Programmodul, das im Normalbetriebsmodus das Ausgangsabbild in den Ausgangsabbildspeicherbereich schreibt, wird dazu veranlasst, das auf Basis der Testeingangsabbilddaten berechnete Testausgangsabbild in einen anderen Speicherbereich des Datenspeichers zu schreiben.Preferably, the traffic route tunnel control system comprises a user interface that enables a user, during runtime of the program, to switch the operation of the program from a normal operating mode to the test operating mode. In the test operating mode, the only program module that reads the input image from the input image storage area in the normal operating mode is caused to read test input image data from another storage area of the data storage, and the only program module that writes the output image to the output image storage area in the normal operating mode is caused to write the test output image calculated on the basis of the test input image data to another storage area of the data storage.

Beispielsweise kann dies dadurch geschehen, dass die beiden Programmmodule jeweils bei jeder Zyklusausführung eine Adresse, welcher dem Parameter „Betriebsmodus des Eingangs-Programmmodul“ bzw. dem Parameter „Betriebsmodus des Ausgangs-Programmmoduls“ zugewiesen ist, ausliest, und in Abhängigkeit von dessen Inhalt das Eingangsabbild entweder vom für das tatsächliche Eingangsabbild reservierten Adressbereich liest oder von einer anderen Adresse, der ein Test-Eingangsabbild enthält. Beispielsweise kann der Datenwert „0“ für den Normalbetrieb stehen und der Datenwert „1“ für den Testbetrieb. Das Umschalten des Ausgangs-Programmmoduls funktioniert in gleicher Weise. Dies kann vorteilhaft sein, da alle Abhängigkeiten vom Eingangsabbild auf einen einzigen Programmmodul beschränkt sind, und dieser Programmmodul zwei vom Nutzer zur Laufzeit steuerbare Betriebsmodi hat. Somit können bestimmte Szenarien im Tunnel simuliert und getestet werden, ohne dass zu befürchten ist, dass wegen weiterhin bestehender Abhängigkeiten anderer Stellen im Programmcode von dem bisher verwendeten Eingangsabbild Fehler beim Wechsel zwischen Normalbetriebsmodus und Testmodus auftreten.For example, this can be done by having the two program modules read out an address assigned to the parameter “Operating mode of the input program module” or the parameter “Operating mode of the output program module” at each cycle execution, and depending on its content, the input image is either copied from the actual Input image reads from the address range reserved for the input image or from another address that contains a test input image. For example, the data value "0" can stand for normal operation and the data value "1" for test operation. Switching the output program module works in the same way. This can be advantageous because all dependencies on the input image are limited to a single program module, and this program module has two operating modes that can be controlled by the user at runtime. This means that certain scenarios can be simulated and tested in the tunnel without having to worry about errors occurring when switching between normal operating mode and test mode due to continued dependencies of other parts of the program code on the previously used input image.

Nach Ausführungsformen der Erfindung umfasst zumindest eines der Programmmodule eine Ereignis-Wirk-Matrix („cause-effect-matrix“). Das zumindest eine Programmmodul, auch EWM-Programmmodul genannt, ist dazu konfiguriert, zumindest einen Teil des Ausgangsabbilds gemäß der Ereignis-Wirk-Matrix zu erzeugen, um ein oder mehrere der Geräte gemäß der Ereignis-Wirk-Matrix zu steuern.According to embodiments of the invention, at least one of the program modules comprises an event-effect matrix (“cause-effect matrix”). The at least one program module, also called EWM program module, is configured to generate at least a portion of the output image according to the event-effect matrix in order to control one or more of the devices according to the event-effect matrix.

Die Verwendung einer Ereignis-Wirk-Matrix kann vorteilhaft sein, weil hierdurch einfache wie auch komplexe Zusammenhänge z.B. zwischen mehreren verschiedenen Ereignissen und gewünschten Reaktionen bei mehreren verschiedenen Geräten auf diese in einer Weise in dem SPS Programm definiert werden können, sodass diese einfach erkannt und geändert werden können. Beispielsweise kann eine Ereignis-Wirkmatrix festlegen, ob und welche Türen im Brandfall geschlossen werden sollen, wie die Löschanlage in einem Brandfall gesteuert wird, etc.The use of an event-effect matrix can be advantageous because it allows simple as well as complex relationships, e.g. between several different events and desired reactions to these in several different devices, to be defined in the PLC program in such a way that they can be easily recognized and changed. For example, an event-effect matrix can determine whether and which doors should be closed in the event of a fire, how the extinguishing system is controlled in the event of a fire, etc.

Nach Ausführungsformen beinhaltet das zumindest eine Programmmodul mit der Ereignis-Wirkmatrix eine Schnittstelle zu der Anlagenleitebenen-Kontrollsoftware. Die Schnittstelle ermöglicht es der Anlagenleitebenen-Kontrollsoftware, zumindest eine Funktion des Programms mit zumindest einer Kontrollfunktion zu steuern. Die Ereignis-Wirk-Matrix ist dazu konfiguriert, die zumindest eine Kontrollfunktion der Anlagenleitebenen-Kontrollsoftware so zu überschreiben, dass eine tunnelspezifische Anpassung der Funktionalität der Anlagenleitebenen-Kontrollsoftware auf den Typ und die Anzahl der in dem Tunnel vorhandenen Geräte erfolgt. Bei der Schnittstelle kann es sich z.B. über vordefinierte Adressbereiche in dem Zwischenergebnisspeicher oder in einem weiteren zum Datenaustausch mit der Kontrollsoftware reservierten Speicherbereich eines Datenspeichers handeln.According to embodiments, the at least one program module with the event-effect matrix includes an interface to the system control level control software. The interface enables the system control level control software to control at least one function of the program with at least one control function. The event-effect matrix is configured to overwrite the at least one control function of the system control level control software in such a way that a tunnel-specific adaptation of the functionality of the system control level control software to the type and number of devices present in the tunnel takes place. The interface can, for example, be via predefined address ranges in the intermediate result memory or in another memory area of a data memory reserved for data exchange with the control software.

Eine Ereignis-Wirk-Matrix kann also auch deshalb vorteilhaft sein, weil bestimmte Steuerungsfunktionen auf der Ebene des Programms erfolgen und auf dieser Ebene an die Besonderheiten des jeweiligen Tunnels angepasst werden können. Es ist also möglich, mit der gleichen Anlagenleitebenen-Kontrollsoftware mehrere verschiedene Tunnel zu überwachen und/oder zu steuern. Falls die Tunnel Unterschiede bezüglich der Anzahl und Art der verwendeten Geräte aufweisen, kann es ggf. schon ausreichen, lediglich ein Programmmodul mit einer an den jeweiligen Tunnel angepassten Ereignis-Wirkmatrix zu verwenden. Falls beispielsweise die Kontrollsoftware (oder ein Operator mittels der Kontrollsoftware) einen Steuerbefehl zum Öffnen aller Türen in das Eingangsabbild zweier Programme zur Tunnelsteuerung schreibt, kann dieser für beide Tunnel identisch sein, auch wenn die beiden Tunnel über eine unterschiedliche Zahl an Türen verfügen. Die Ereignis-Wirk-Matrix für die Umsetzung dieses Befehls kann nämlich auf der Ebene des Programms so an die einzelnen Tunnel angepasst sein, dass dort die Anzahl der vorhandenen Türen berücksichtigt wird und der Befehl zum Öffnen in jeden der Adressbereiche speichert, die den im jeweiligen Tunnel vorhandenen Türen jeweils zugewiesen sind und von den jeweiligen Tür-bezogenen Programmmodulen zur Steuerung des Geöffnet-Status der jeweiligen Tür verwendet werden.An event-effect matrix can also be advantageous because certain control functions take place at the program level and can be adapted to the specific characteristics of the respective tunnel at this level. It is therefore possible to monitor and/or control several different tunnels using the same plant control level control software. If the tunnels have differences in terms of the number and type of devices used, it may be sufficient to use just one program module with an event-effect matrix adapted to the respective tunnel. If, for example, the control software (or an operator using the control software) writes a control command to open all doors into the input image of two tunnel control programs, this command can be identical for both tunnels, even if the two tunnels have a different number of doors. The event-effect matrix for the implementation of this command can be adapted to the individual tunnels at the program level in such a way that the number of existing doors is taken into account and the command to open is stored in each of the address ranges that are assigned to the doors present in the respective tunnel and are used by the respective door-related program modules to control the open status of the respective door.

Nach Ausführungsformen sind die Programmmodule dazu konfiguriert, untereinander Daten über die vordefinierten Adressbereiche des Datenspeichers, insbesondere über Adressbereiche in dem Zwischenergebnisspeicher, auszutauschen (also unter Umgehung des Feldbusses oder Netzwerks des die Steuerung beinhaltenden Automatisierungssystems).According to embodiments, the program modules are configured to exchange data with each other via the predefined address ranges of the data memory, in particular via address ranges in the intermediate result memory (i.e. bypassing the field bus or network of the automation system containing the controller).

Nach Ausführungsformen sind die Programmmodule und die Anlagenleitebenen-Kontrollsoftware dazu konfiguriert, untereinander Daten über vordefinierte Adressbereiche des Datenspeichers auszutauschen. Diese Adressbereiche können z.B. Bestandteil des Eingangsabbilds, des Zwischenergebnisspeichers, eines eigenen Kommunikationsdaten-Speicherbereiches oder des Ausgangsabbilds eines SPS Zyklus sein.According to embodiments, the program modules and the system management level control software are configured to exchange data with each other via predefined address ranges of the data memory. These address ranges can, for example, be part of the input image, the intermediate result memory, a separate communication data memory area or the output image of a PLC cycle.

Nach Ausführungsformen beinhaltet das Programm zumindest ein Programmmodul, z.B. das Eingangs-Programmmodul, welches dazu konfiguriert ist, das Eingangsabbild in Form binärer Daten ausschließlich aus dem Eingangsabbild zu lesen und zu verarbeiten. Das Programm beinhaltet zumindest ein weiteres Programmmodul, z.B. das Ausgangs-Programmmodul, welches dazu konfiguriert ist, verarbeitete Daten in Form binärer Daten in das Ausgangsabbild zu schreiben.According to embodiments, the program includes at least one program module, e.g. the input program module, which is configured to read and process the input image in the form of binary data exclusively from the input image. The program includes at least one further program module, e.g. the output program module, which is configured to write processed data in the form of binary data into the output image.

Die strikte Verwendung von binären anstatt von analogen Daten im Eingangs- und Ausgangsabbild kann den Vorteil haben, dass sowohl der pro Zyklus verwendete Dateninput wie auch der erzeugte Datenoutput an die Peripherie/an die Geräte eindeutiger und damit vergleichbarer ist. Bei den Zwischenrechnungen dagegen sind Analogwerte oft vorteilhaft, da sie den Abgleich mit Grenzwerten sowie verschiedene Aggregationsverfahren ermöglichen.The strict use of binary rather than analog data in the input and output image can have the advantage that both the data input used per cycle and the data output generated to the peripherals/devices are clearer and therefore more comparable. In the intermediate calculations, however, analog values are often advantageous because they enable comparison with limit values and various aggregation methods.

Gemäß manchen Ausführungsformen umfasst das Programm ein oder mehrere Programmmodule, insbesondere Funktions-Programmmodule, die dazu konfiguriert sind, Daten des Eingangsabbilds und optional auch Zwischenergebnisse aus dem Datenspeicher zu lesen, zu verarbeiten und in Form von Zwischenergebnissen in den Datenspeicher zu speichern.According to some embodiments, the program comprises one or more program modules, in particular functional program modules, which are configured to read data of the input image and optionally also intermediate results from the data memory, to process them and to store them in the form of intermediate results in the data memory.

Zusätzlich oder alternativ dazu kann das Programm ein oder mehrere Programmmodule, insbesondere Geräte-Programmmodule, beinhalten, die dazu konfiguriert sind, analoge Daten der Geräte in digitale Daten zu transformieren und die transformierten digitalen Daten in Adressbereiche des Datenspeichers zu speichern, die den jeweiligen Geräten zugeordnet sind. Diese digitalen Daten können einen Teil des Eingangsabbild des nächsten auszuführenden Zyklus bilden.Additionally or alternatively, the program may include one or more program modules, in particular device program modules, which are configured to transform analog data of the devices into digital data and to store the transformed digital data in address areas of the data memory assigned to the respective devices. These digital data may form part of the input image of the next cycle to be executed.

Nach Ausführungsformen umfasst das Verkehrswegetunnelsteuerungssystem eine Energieversorgung. Die Energieversorgung befindet sich in dem Tunnel und/oder in räumlicher Nähe zu dem Tunnel. Das Verkehrswegetunnelsteuerungssystem ist dazu konfiguriert, bei Notfallsituationen autonom und autark auch in Abwesenheit externer Steuerungskommandos und externer Energiequellen die Geräte so zu steuern, dass die Notfallsituation behoben oder begrenzt wird und die Funktionsfähigkeit des Tunnels über möglichst lange Zeit aufrecht erhalten wird.According to embodiments, the traffic route tunnel control system comprises a power supply. The power supply is located in the tunnel and/or in close proximity to the tunnel. The traffic route tunnel control system is configured to control the devices autonomously and independently in emergency situations, even in the absence of external control commands and external energy sources, so that the emergency situation is eliminated or limited and the functionality of the tunnel is maintained for as long as possible.

In einem weiteren Aspekt betrifft die Erfindung eine Verwendung eines Verkehrswegetunnelsteuerungssystems gemäß einer der hier beschriebenen Ausführungsformen zur Steuerung eines Verkehrswegetunnels.In a further aspect, the invention relates to a use of a traffic tunnel control system according to one of the embodiments described here for controlling a traffic tunnel.

In einem weiteren Aspekt betrifft die Erfindung ein System umfassend mehrere Verkehrswegesteuerungssysteme gemäß den hier beschriebenen Ausführungsformen, die jeweils ein Programm beinhalten. Die mehreren Programme beinhalten Kopien (Instanzen) von ein oder mehreren Programmmodulen einer Programmmodulbibliothek, wobei sich die mehreren Programme in der Anzahl der Programmmodule, der Auswahl der Programmmodule und/oder im Hinblick auf deren Anordnung innerhalb des jeweiligen Programms unterschieden. In manchen Ausführungsformen überwacht eine einzige Leitebenen-Kontrollsoftware die SPS-Steuerungsprogramme mehrerer Tunnel.In a further aspect, the invention relates to a system comprising a plurality of traffic route control systems according to the embodiments described here, each of which contains a program. The plurality of programs contain copies (instances) of one or more program modules of a program module library, wherein the plurality of programs differ in the number of program modules, the selection of the program modules and/or in terms of their arrangement within the respective program. In some embodiments, a single control level control software monitors the PLC control programs of several tunnels.

In einem weiteren Aspekt betrifft die Erfindung ein Verfahren zur automatischen oder halbautomatischen Erstellung eines Programms zur Steuerung eines Verkehrswegetunnels. Das Verfahren umfasst: eine Bereitstellung eines Ablaufplans für den Informationsfluss und die Informationsverarbeitung von Parameterwerten, insbesondere Messdaten, die von Geräten des Tunnels erfasst wurden, und von Steuerdaten, die den Zustand der Geräte im Tunnel steuern; eine Bereitstellung einer Zuweisung von Parametern, die sich auf die Geräte des Tunnels beziehen, und Adressbereichen eines Zwischenergebnisspeichers und optional auch von Adressbereichen des Ausgangsabbilds und/oder Eingangsabbilds. Das Verfahren umfasst eine automatische Aneinanderreihung vordefinierter Programmmodule gemäß des Ablaufplans, um ein Programm bereitzustellen, dessen Programmmodule gerätebezogene Parameterwerte gemäß dem Ablaufplan verarbeiten. Das Verfahren umfasst ferner eine automatische Konfiguration der aneinandergereihten Programmmodule so, dass diese zumindest die Teile der Zuweisung enthalten, die sich auf Parameter beziehen, die von dem Programmmodul verarbeitet werden, sodass die konfigurierten Programmmodule den Inputwert für einen von ihnen verarbeiteten Parameter von dem diesem Parameter zugewiesenen Adressbereich lesen und/oder den von ihnen berechneten Wert für einen von ihnen auszugebenden Parameter in den diesem Parameter zugewiesenen Adressbereich schreiben.In a further aspect, the invention relates to a method for automatically or semi-automatically creating a program for controlling a traffic tunnel. The method comprises: providing a flow chart for the information flow and information processing of parameter values, in particular measurement data recorded by devices in the tunnel, and control data that control the state of the devices in the tunnel; providing an assignment of parameters relating to the devices in the tunnel and address ranges of an intermediate result memory and optionally also address ranges of the output image and/or input image. The method comprises automatically arranging predefined program modules in accordance with the flow chart in order to provide a program whose program modules process device-related parameter values in accordance with the flow chart. The method further comprises an automatic configuration of the program modules arranged in series such that they contain at least the parts of the assignment that relate to parameters that are processed by the program module, so that the configured program modules read the input value for a parameter processed by them from the address range assigned to this parameter and/or write the value calculated by them for a parameter to be output by them into the address range assigned to this parameter.

Vorzugsweise umfassen die Adressbereiche auch solche, welche zum Speichern von Zwischenergebnissen, die während der Ausführung eines SPS-Zyklus geschrieben und dann gelesen und weiterverarbeitet werden, wobei die Adressbereiche für Zwischenergebnisse weder Teil der Adressbereiche des Eingangsabbilds noch des Ausgangsabbilds sind.Preferably, the address ranges also include those for storing intermediate results that are written during the execution of a PLC cycle and then read and further processed, wherein the address ranges for intermediate results are neither part of the address ranges of the input image nor of the output image.

In einem weiteren Aspekt betrifft die Erfindung eine Programmbibliothek für die Erzeugung eines Programms für die Steuerung eines Verkehrswegetunnels mit mehreren Geräten. Die Programmbibliothek umfass eine Vielzahl vordefinierter Programmmodule, die zu einem Programm zur Steuerung eines Verkehrswegetunnels assemblierbar sind.In a further aspect, the invention relates to a program library for generating a program for controlling a traffic tunnel with multiple devices. The program library comprises a plurality of predefined program modules that can be assembled into a program for controlling a traffic tunnel.

Ein oder mehrere der Programmodule sind zur Verarbeitung eines Eingangsabbilds der Automatisierungsgeräte und zur Erzeugung eines Ausgangsabbilds für die Ansteuerung der Automatisierungsgeräte konfiguriert. Zumindest ein erstes der Programmmodule ist einem Adressbereich eines Zwischenergebnisspeichers zugeordnet, um dort ein Zwischenergebnis zu speichern. Zumindest ein zweites der Programmmodule ist demselben Adressbereich des Zwischenergebnisspeichers zugeordnet, um von dort das Zwischenergebnis zu lesen und weiterzuverarbeiten. Das zumindest erste und das zumindest zweite Programmodul sind so assemblierbar, dass das Programm das zumindest eine zweite Programmodul nach dem zumindest einen ersten Programmodul ausführt, sodass das Ergebnis des zumindest einen ersten Programmoduls als Zwischenergebnis durch das zumindest eine zweite Programmodul in demselben Zyklus gelesen und verarbeitet werden kann, in dem es berechnet wurde.One or more of the program modules are configured to process an input image of the automation devices and to generate an output image for controlling the automation devices. At least a first of the program modules is assigned to an address range of a Intermediate result memory in order to store an intermediate result there. At least a second of the program modules is assigned to the same address range of the intermediate result memory in order to read the intermediate result from there and process it further. The at least first and the at least second program module can be assembled in such a way that the program executes the at least one second program module after the at least one first program module, so that the result of the at least one first program module can be read and processed as an intermediate result by the at least one second program module in the same cycle in which it was calculated.

Zumindest einige der Programmmodule sind jeweils einem der Geräte zugeordnet und dazu konfiguriert, bei der Ausführung jedes Zyklus des Programms einen Wert eines auf dieses eine Gerät bezogenen Parameters aus einem vordefinierten Adressbereich innerhalb des Eingangsabbildspeicherbereichs oder des Zwischenergebnisspeichers zu lesen, zu verarbeiten und ein Ergebnis der Verarbeitung in einen weiteren vordefinierten Adressbereich innerhalb des Zwischenergebnisspeichers oder des Ausgangsabbildspeicherbereichs zu speichern.At least some of the program modules are each associated with one of the devices and are configured to read a value of a parameter related to that one device from a predefined address range within the input image memory area or the intermediate result memory, process it, and store a result of the processing in another predefined address range within the intermediate result memory or the output image memory area during the execution of each cycle of the program.

DefinitionenDefinitions

Unter einem „Datenspeicher“ wird hier ein Medium zur flüchtigen oder permanenten Speicherung von Daten verstanden. Ein Datenspeicher kann eine Vielzahl von physischen Datenspeichervorrichtungen umfassen, deren Adressen mittels logischer und/oder physischer Adressen adressierbar sind. Insbesondere kann es sich um einen Datenspeicher handeln, der in ein Bauteil eines Automatisierungssystems integriert („embedded“) ist. Der Datenspeicher kann zur Speicherung elektronischer Daten jeglicher Art dienen, die von Computern oder Peripheriegeräten gelesen und/oder auch geschrieben werden können. Insbesondere kann es sich um einen elektronischen, auf Halbleitern basierenden Datenspeicher handeln, der als Arbeitsspeicher einer SPS dient.A "data storage device" is understood here to mean a medium for the volatile or permanent storage of data. A data storage device can comprise a large number of physical data storage devices whose addresses can be addressed using logical and/or physical addresses. In particular, it can be a data storage device that is integrated ("embedded") in a component of an automation system. The data storage device can be used to store electronic data of any kind that can be read and/or written by computers or peripheral devices. In particular, it can be an electronic, semiconductor-based data storage device that serves as the working memory of a PLC.

Unter einem „Adressbereich“ wird hier ein Bereich eines logischen oder physischen Datenspeichers verstanden, welcher über eine Adresse ansprechbar (adressierbar) ist und welcher einen oder mehrere Teilbereiche enthält, die jeweils ebenfalls über eine eindeutige Adresse ansprechbar sind. Beispielsweise kann eine Adresse aus einer absoluten Adresse bestehen oder aus einer Kombination einer absoluten Adresse und einem Offset. Insbesondere können gemäß Ausführungsformen der Erfindung die den Parametern zugeordneten Adressen einheitlich und eindeutig von allen Programmmodulen des Programms adressiert werden.An "address area" is understood here to mean an area of a logical or physical data memory that can be addressed via an address and that contains one or more sub-areas, each of which can also be addressed via a unique address. For example, an address can consist of an absolute address or a combination of an absolute address and an offset. In particular, according to embodiments of the invention, the addresses assigned to the parameters can be addressed uniformly and uniquely by all program modules of the program.

Unter einer „speicherprogrammierbaren Steuerung“ (SPS, englisch: programmable logic controller, PLC) wird hier ein Gerät verstanden, welches zur Steuerung oder Regelung einer Maschine oder Anlage eingesetzt und auf digitaler Basis programmiert wird. Die SPS arbeitet zyklisch: Sie liest die Werte aller Eingänge am Anfang eines Zyklus ein (man spricht in diesem Zusammenhang auch vom „Einlesen des Prozessabbildes“ bzw. des „Eingangsabbilds“) - führt dann das oder die gespeicherten Programme (auch „Programme“ genannt) aus und setzt am Ende die Ausgänge. Die Gesamtheit der von einer SPS bis zum Ende eines Zyklus erzeugten Datenwerte werden auch als „Ausgangsabbild“ bezeichnet. Dann startet der Zyklus von Neuem. Ein Programmende gibt es oftmals nicht. Es kann aber eine ereignisorientierte Verarbeitung auf der SPS-Ebene oder auf der Ebene einer übergeordneten Kontrollsoftware implementiert sein.A "programmable logic controller" (PLC) is a device that is used to control or regulate a machine or system and is programmed on a digital basis. The PLC works cyclically: it reads the values of all inputs at the beginning of a cycle (in this context, this is also referred to as "reading the process image" or the "input image") - then executes the stored program(s) (also called "programs") and sets the outputs at the end. The totality of the data values generated by a PLC up to the end of a cycle is also referred to as the "output image". The cycle then starts again. There is often no end to the program. However, event-oriented processing can be implemented at the PLC level or at the level of a higher-level control software.

Unter einem Programm einer speicherprogrammierbaren Steuerung, auch SPS-Programm genannt, wird hier ein Programm verstanden, welches einige oder alle Steuerungsfunktionen der Steuerung implementiert. Das Programm arbeitet nach Ausführungsformen der Erfindung nach dem EVA-Prinzip, es besitzt also einen Eingabe-, einen Verarbeitungs- und einen Ausgabeteil. Die E/A-Geräte (die an die Eingänge/Ausgänge, engl. Input/Output, angeschlossenen Geräte) sind mit dem Programm verbunden, z.B. über einen Feldbus oder ein Netzwerk. Das Peripherieabbild der Eingänge wird am Anfang eines Zyklus als sog. „Eingangsabbild“ des Zyklus eingelesen, dann erfolgt die Verarbeitung des Programms und die Übergabe der Ausgänge in das Peripherieabbild der Ausgänge („Ausgangsabbild“ des Zyklus).A program of a programmable logic controller, also called a PLC program, is understood here to be a program that implements some or all of the control functions of the controller. According to embodiments of the invention, the program works according to the EVA principle, i.e. it has an input, a processing and an output section. The I/O devices (the devices connected to the inputs/outputs) are connected to the program, e.g. via a field bus or a network. The peripheral image of the inputs is read in at the beginning of a cycle as the so-called "input image" of the cycle, then the program is processed and the outputs are transferred to the peripheral image of the outputs ("output image" of the cycle).

Unter einem „Eingangsabbild“ wird hier die Gesamtheit aller bereits am Anfang eines Zyklus vorliegenden Eingangswerte, die von einem Programm während eines Zyklus gelesen und verarbeitet werden, verstanden. Die Werte des Eingangsabbilds sind während der Zyklusausführung konstant.An "input image" is understood here as the totality of all input values already present at the beginning of a cycle, which are read and processed by a program during a cycle. The values of the input image are constant during the cycle execution.

Unter einem „Ausgangsabbild“ wird hier die Gesamtheit aller am Ende eines Zyklus vorliegenden Datenwerte, die von einem Programm während eines Zyklus berechnet und an die Geräte bereitgestellt wurden, verstanden.An “output image” is understood here to be the totality of all data values present at the end of a cycle that were calculated by a program during a cycle and made available to the devices.

Unter dem Begriff „steuern“ bzw. „Steuerung“ sollen hier sowohl Steuerungsprozesse im engeren Sinn, die keinen Abgleich der Stellgröße mit einer Sollgröße vorsieht, als auch Regelungsprozesse umfasst sein. Unter Regelung versteht man einen Vorgang, bei dem eine physikalische Größe fortlaufend gemessen, mit einem eingestellten Wert (Sollwert, Sollgröße) verglichen und an diesen angeglichen wird.The term "control" or "regulation" is intended to include both control processes in the narrower sense, which do not involve comparing the manipulated variable with a target value, and regulation processes. Regulation is a process in which a physical quantity is continuously measured, compared with a set value (target value, target size) and adjusted to this.

Unter einem Gerät wird hier jegliche Art von Bauteil oder Maschine oder Objekt verstanden, welches eine technische Funktion bei der Überwachung und/oder Steuerung eines Tunnels hat oder haben kann. Beispielsweise kann ein Gerät ein Objekt sein, welches einen oder mehrere Sensoren beinhaltet. Zu den Sensoren können zum Beispiel Temperatursensor, Drucksensor, Windgeschwindigkeitssensor, Helligkeitssensor, eine Kamera, ein Kohlenmonoxid-Sensor und dergleichen gehören. Ein Gerät kann aber auch ein Bauteil sein, zum Beispiel eine Tür, ein Verschluss von einem Belüftungsschacht oder dergleichen. Ein Gerät kann auch eine Maschine sein, zum Beispiel ein Ventilator, eine Feuerlöschanlage, eine Sirene, eine Beleuchtungsanlage, ein Lautsprecher oder dergleichen.A device is understood here to be any type of component, machine or object that has or can have a technical function in monitoring and/or controlling a tunnel. For example, a device can be an object that contains one or more sensors. The sensors can include, for example, a temperature sensor, pressure sensor, wind speed sensor, brightness sensor, a camera, a carbon monoxide sensor and the like. However, a device can also be a component, for example a door, a closure of a ventilation shaft or the like. A device can also be a machine, for example a fan, a fire extinguishing system, a siren, a lighting system, a loudspeaker or the like.

Unter einem Programmodul wird hier ein Baustein verstanden, welcher mit weiteren Programmodulen zu einem Programm aneinandergereiht werden kann und der eine bestimmte Funktion implementiert und hierzu Eingangsdaten liest, verarbeitet und ein Ergebnis der Verarbeitung ausgibt.A program module is understood here to be a building block which can be linked together with other program modules to form a program and which implements a specific function and reads input data, processes it and outputs the result of the processing.

Kurzbeschreibung der FigurenShort description of the characters

Im Folgenden werden Ausführungsformen der Erfindung nur exemplarisch näher erläutert, wobei auf die Zeichnungen verwiesen wird, in denen sie enthalten sind. Es zeigen:

  • 1 zeigt ein Automatisierungssystem zur Überwachung und Steuerung eines Verkehrswegetunnels,
  • 2 illustriert Schritte der Programmausführung zur Berechnung und Verarbeitung eines Zwischenergebnisses,
  • 3 den modularen Aufbau eines Programms zur Tunnelsteuerung,
  • 4 das Speichern gerätespezifischer Messwerte in vordefinierte Adressbereiche,
  • 5 die Zuweisung von Adressbereichen an mehrere Geräte-Programmmodule und an ein Funktions-Programmmodul,
  • 6 weitere Zuweisungen von Programmmodulen und Adressbereichen,
  • 7 einen Adressbereich mit allgemeinen Konfigurationsdaten, die von vielen verschiedenen Programmmodulen verwendet werden,
  • 8 den Ablauf eines Programms mit je nur einem einzigen Programmmodul für das Lesen des Eingangsabbilds und das Schreiben des Ausgangsabbilds,
  • 9 ein Funktions-Programmmodul zur Entprellung von Messwerten,
  • 10 ein Flussdiagramm eines Verfahrens zur Erstellung eines SPS-Tunnelsteuerungsprogramms,
  • 11 unterschiedliche Reaktion zweier Tunnel auf das gleiche Ereignis,
  • 12A die Verwendung eines Funktions-Programmmoduls mit einer Ereignis-Wirk-matrix,
  • 12B eine GUI einer Leitebenen-Kontrollsoftware,
  • 13 die Verwendung mehrerer Programmmodule eines Programms für die Steuerung einer Brandlüftungsanlage.
In the following, embodiments of the invention are explained in more detail by way of example only, with reference to the drawings in which they are included. They show:
  • 1 shows an automation system for monitoring and controlling a traffic tunnel,
  • 2 illustrates steps of program execution for calculating and processing an intermediate result,
  • 3 the modular structure of a tunnel control program,
  • 4 storing device-specific measured values in predefined address ranges,
  • 5 the allocation of address ranges to several device program modules and to a function program module,
  • 6 further assignments of program modules and address ranges,
  • 7 an address range with general configuration data that is used by many different program modules,
  • 8th the execution of a program with only one program module each for reading the input image and writing the output image,
  • 9 a functional program module for debouncing measured values,
  • 10 a flow chart of a procedure for creating a PLC tunnel control program,
  • 11 different reaction of two tunnels to the same event,
  • 12A the use of a function program module with an event-effect matrix,
  • 12B a GUI of a management level control software,
  • 13 the use of several program modules of a program for controlling a fire ventilation system.

Ausführliche BeschreibungDetailed description

Die 1 zeigt ein System 100 zur Überwachung und Steuerung eines Verkehrswegetunnels 124.The 1 shows a system 100 for monitoring and controlling a traffic tunnel 124.

Bei dem Verkehrswegetunnel 124 kann es sich zum Beispiel um einen Straßentunnel handeln, der eine Vielzahl verschiedener Geräte umfasst. Beispielsweise können die Geräte folgendes umfassen: ein oder mehrere Kameras 126 zur Erfassung der aktuellen Verkehrssituation, der Helligkeit oder der Lufttrübung. Ein oder mehrere Ventilatoren 128, 130 zur Belüftung des Tunnels bzw. zur Belüftung von Tunnelabschnitten. Ein oder mehrere Türen 136, 138, zum Beispiel Brandschutztüren oder Fluchttüren. Die Geräte können auch Sensoren umfassen wie zum Beispiel einen Temperatursensor 132 und/oder einen Sensor für die Kohlenmonoxidkonzentration 134.The traffic tunnel 124 can, for example, be a road tunnel that includes a variety of different devices. For example, the devices can include the following: one or more cameras 126 for recording the current traffic situation, brightness or air opacity. One or more fans 128, 130 for ventilating the tunnel or for ventilating tunnel sections. One or more doors 136, 138, for example fire doors or escape doors. The devices can also include sensors such as a temperature sensor 132 and/or a carbon monoxide concentration sensor 134.

Die Überwachung und Steuerung des Tunnels und seiner Geräte erfolgt in dem hier abgebildeten Beispiel mithilfe einer speicherprogrammierbaren Steuerungen (SPS) 101. Die SPS umfasst ein Programm 120, dass aus einer Vielzahl von sequenziell ausgeführten Programmmodulen besteht. Das Programm 120 kann zyklisch in Endlosschleife ausgeführt werden. Das Programm 120 befindet sich in einem Programmspeicher 110, der in diesem Kontext auch als Ladespeicher bezeichnet wird. Der Programmspeicher dient der Speicherung und Ausführung von Anwendungsprogrammen in Form von ausführbaren Objektcode. Beispielsweise kann der Programmspeicher aus RAM oder FlashEPROM (Speicherkarten) bestehen.In the example shown here, the tunnel and its devices are monitored and controlled using a programmable logic controller (PLC) 101. The PLC includes a program 120 that consists of a large number of sequentially executed program modules. The program 120 can be executed cyclically in an endless loop. The program 120 is located in a program memory 110, which in this context is also referred to as a load memory. The program memory is used to store and execute application programs in the form of executable object code. For example, the program memory can consist of RAM or FlashEPROM (memory cards).

Außerdem umfasst die Steuerung einen Datenspeicher 108, der zum Beispiel als Arbeitsspeicher ausgebildet sein kann. Der Datenspeicher enthält einen Speicherbereich, der als Zwischenergebnisspeicher 114 zur Speicherung der während der Zyklusausführung berechneten Zwischenwerte dient.The controller also includes a data memory 108, which can be designed as a working memory, for example. The data memory contains a memory area that serves as an intermediate result memory 114 for storing the intermediate values calculated during the cycle execution.

In dem hier gezeigten Beispiel enthält der Datenspeicher 108 zudem einen Eingangsabbildspeicherbereich 112, der das während des aktuell ausgeführten Zyklus geltende Eingangsabbild 112 enthält, und einen Ausgangsabbildspeicherbereich 116, der ein während des aktuell ausgeführten Zyklus berechnetes Ausgangsabbild 116 enthält. In anderen Implementierungsvarianten können das Eingangsabbild, die Zwischenergebnisse und das Ausgangsabbild jedoch auch in unterschiedlichen Datenspeichern gespeichert werden.In the example shown here, the data memory 108 also contains an input image storage area 112 that contains the input image 112 valid during the currently executing cycle and an output image storage area 116 that contains an output image 116 calculated during the currently executing cycle. In other implementation variants, however, the input image, the intermediate results and the output image can also be stored in different data memories.

Da das Eingangsabbild während der Zyklus-Ausführung nicht überschrieben werden darf, werden während der Zyklus-Ausführung erfasste, aktualisierte Messdaten, die als Bestandteil des Eingangsabbild des nächsten Zyklus verwendet werden, in einem Pufferspeicherbereich 118, hier als „Messwert-Puffer“ oder „Eingangswert-Puffer“ bezeichnet, gespeichert. Zudem kann das Ausgangsabbild, bevor es in die Peripherie geschrieben wird, in einem Pufferspeicherbereich 117, hier als „Ausgangs-Puffer“ bezeichnet, gespeichert werden. Der Pufferspeicherbereich 118 und/oder der Pufferspeicherbereich 117 kann z.B. in dem Datenspeicher 108 oder einem anderen Datenspeicher enthalten sein.Since the input image must not be overwritten during cycle execution, updated measurement data acquired during cycle execution, which are used as part of the input image of the next cycle, are stored in a buffer memory area 118, referred to here as the "measurement value buffer" or "input value buffer". In addition, the output image can be stored in a buffer memory area 117, referred to here as the "output buffer", before it is written to the peripherals. The buffer memory area 118 and/or the buffer memory area 117 can be contained, for example, in the data memory 108 or another data memory.

Außerdem kann die Steuerung einen Systemspeicher umfassen, in welchem sich das Betriebssystem und Systemprogramme befinden (hier nicht gezeigt). Hierfür kommen in der Regel RAM oder FlashEPROM (Speicherkarten) zum Einsatz.The controller can also include a system memory in which the operating system and system programs are located (not shown here). RAM or FlashEPROM (memory cards) are usually used for this.

Das SPS Programm 120 kann kontinuierlich in Endlosschleife oder bis zum Erreichen einer vordefinierten maximalen Zykluszahl wiederholt werden, meistens ohne Wartezeit zwischen den Durchläufen (Zyklen). Die Ausführung des Programms erfolgt gemäß dem sogenannten EVA-Prinzip:

  • E: Eingangsdaten (insbesondere Sensordaten) werden aus dem Pufferspeicher 118 ausgelesen und in das Eingangsabbild 112 kopiert. Dies geschieht zu einem festen Zeitpunkt vor Beginn des Zyklus. Damit wird sichergestellt, dass das Eingangsabbild eines Zyklus während der gesamten Zyklusdauer unverändert bleibt.
  • V: Verarbeiten bzw. Abarbeiten des Programmcodes: das Eingangsabbild bleibt während dieses Prozesses unverändert. Die vom Programm berechneten Ausgangssignale werden ins Ausgangsabbild 116 geschrieben und können dabei die veralteten Werte vom vorher ausgeführten Zyklus und auch während des aktuellen Zyklus geschriebene Werte überschreiben. Der letzte Schreibvorgang ist dominant. Dieses Prinzip gilt auch für den Inhalt der Adressbereiche 114, in welchem die Zwischenwerte gespeichert sind, die nicht als Ausgangsabbild dienen. Der Programmcode des Programms 120 darf keine Endlosschleifen enthalten und vorzugsweise überhaupt keine Arten von Schleifen oder Bedingungen, die zu einem Stillstand oder verzögerten Programmablauf führen können.
  • A: Ausgangssignale (insbesondere Aktuatorendaten) werden zunächst in den für das Ausgangsabbild reservierten Adressbereich 116 des Datenspeichers 108 geschrieben und von dort in den Ausgangspufferspeicher 117 kopiert. Die im vorhergehenden Zyklus berechneten Ausgangssignale werden hierbei überschrieben.
The PLC program 120 can be repeated continuously in an endless loop or until a predefined maximum number of cycles is reached, usually without waiting time between runs (cycles). The program is executed according to the so-called EVA principle:
  • E: Input data (in particular sensor data) are read from the buffer memory 118 and copied into the input image 112. This occurs at a fixed time before the start of the cycle. This ensures that the input image of a cycle remains unchanged throughout the entire cycle duration.
  • V: Processing or executing the program code: the input image remains unchanged during this process. The output signals calculated by the program are written to the output image 116 and can overwrite the outdated values from the previously executed cycle and also values written during the current cycle. The last write operation is dominant. This principle also applies to the content of the address areas 114 in which the intermediate values are stored that do not serve as an output image. The program code of the program 120 must not contain any endless loops and preferably no types of loops or conditions at all that can lead to a standstill or delayed program execution.
  • A: Output signals (in particular actuator data) are first written into the address area 116 of the data memory 108 reserved for the output image and from there copied into the output buffer memory 117. The output signals calculated in the previous cycle are overwritten in the process.

Ergänzend kann das Tunnelsteuerungssystem 100 beispielsweise noch Funktionen zur Initialisierung, zur Kommunikation mit den Peripheriegeräten über Datenbusse 122 oder Netzwerke und/oder für interne Überwachungsprozesse beinhalten.In addition, the tunnel control system 100 can, for example, also include functions for initialization, for communication with the peripheral devices via data buses 122 or networks and/or for internal monitoring processes.

Das Tunnelsteuerungssystem 100 kann über ein oder mehrere Prozessoren 106 verfügen, die zum Beispiel als Bestandteil spezieller Mikrocomputer ausgebildet sein können, deren spezielle Hardware- und Softwarekomponenten auf das jeweilige Einsatzszenario angepasst sind. Betriebssystem und Rechnerarchitektur können herstellerspezifisch sein. Das Programm 120 basiert auf einer Aneinanderreihung vordefinierter Programmmodule klar definierter Funktion, bei welchen die Adressbereiche derjenigen Speicherbereiche des Datenspeichers 108, von welchem das betroffene Programmmodul Daten einliest und/oder in welche das Programmmodul Daten schreibt, intern vorgegeben sind. Alle Programmmodule, die eine gleiche oder zumindest überlappende Zuweisung von Parametern und Adressbereichen des Datenspeichers enthalten, können also Daten miteinander austauschen, ohne dass hierfür eine direkte Programmmodul-zu-Programmmodul-Schnittstelle definiert werden müsste.The tunnel control system 100 can have one or more processors 106, which can be designed, for example, as part of special microcomputers whose special hardware and software components are adapted to the respective application scenario. The operating system and computer architecture can be manufacturer-specific. The program 120 is based on a series of predefined program modules with clearly defined functions, in which the address ranges of those memory areas of the data memory 108 from which the program module in question reads data and/or into which the program module writes data are internally specified. All program modules that contain an identical or at least overlapping assignment of parameters and address areas of the data memory can therefore exchange data with one another without a direct program module-to-program module interface having to be defined for this purpose.

Die Kommunikation zwischen dem Programm und den Peripheriegeräten im Tunnel kann zumindest teilweise über den Datenbus bzw. Feldbus 122 erfolgen. Damit die Steuerung mit Peripheriegeräten verschiedener Hersteller kommunizieren kann, handelt es sich bei dem Feldbus System vorzugsweise um ein genormtes Bussystem wie zum Beispiel AS-Interface (ASI), PROFIBUS, CANOpen, Devicenet, PROFINET, Ethercat, oder Powernet.The communication between the program and the peripheral devices in the tunnel can take place at least partially via the data bus or field bus 122. So that the controller can communicate with peripheral devices from different manufacturers, the field bus system is preferably a standardized bus system such as AS-Interface (ASI), PROFIBUS, CANOpen, Devicenet, PROFINET, Ethercat, or Powernet.

Die Programmmodule des Programms 120 können eine hierarchische Struktur und/oder lineare Struktur des Informationsflusses abbilden. Beispielsweise können die Programmmodule eine Aufrufhierarchie verschiedener Geräte oder Gerätegruppen implementieren oder eine Hierarchie zur Aggregation der Messwerte mehrerer Geräte in einen gemeinsamen aggregierten Wert.The program modules of the program 120 can map a hierarchical structure and/or linear structure of the information flow. For example, the program modules can implement a call hierarchy of different devices or device groups or a hierarchy for aggregating the measured values of several devices into a common aggregated value.

Für die Entwicklung des Programms 120 können beispielsweise verschiedene Softwaresysteme bzw. Frameworks verwendet werden wie zum Beispiel CoDeSys , Simatic STEP7, TiA-Portal.For the development of the program 120, various software systems or frameworks can be used, such as CoDeSys, Simatic STEP7, TiA-Portal.

Das Programm kann über ein Netzwerk mit einer übergeordneten Kontrollsoftware 104 der Leitebene 102 verbunden sein. Die Kontrollsoftware dient insbesondere der Visualisierung aktueller Vorgänge und Statusänderungen von Geräten in dem Tunnel und dazu, es dem Operator zu ermöglichen, über die Eingabe von Steuerbefehlen bei Bedarf einzugreifen.The program can be connected via a network to a higher-level control software 104 of the control level 102. The control software is used in particular to visualize current processes and status changes of devices in the tunnel and to enable the operator to intervene if necessary by entering control commands.

Die 2 illustriert einzelne Schritte der Programmausführung einschließlich der Berechnung und Weiterverarbeitung eines Zwischenergebnisses. Von den Peripheriegeräten, z.B. einer Kamera 126 und einem Ventilator 128, werden typischerweise mindestens einmal pro SPS Zyklus aktuelle Statusdaten des Geräts und/oder Messdaten, z.B. Bilder, Helligkeitswerte, etc. erfasst und in einem Bereich des Datenspeichers, der hier als Pufferspeicher 118 bezeichnet wird, gespeichert. Die Gesamtheit der zu Beginn der Ausführung des Programms vorliegenden und während eines Zyklus von dem Programm zu verarbeiteten Daten wird als Eingangsabbild bezeichnet und kann z.B. in einer Kopie der aktuellen Daten des Pufferspeichers bestehen, die im Speicherbereich 112 hinterlegt ist. Im Gegensatz zu den Werten im Pufferspeicher werden die Daten des Eingangsabbilds während eines SPS-Zyklus nicht überschrieben. Beispielsweise kann das zuerst ausgeführte Programmmodul BS1 drei Helligkeitswerte, die von drei Kameras in verschiedenen Abschnitten des Tunnels erfasst wurden, aus den diesen drei Geräten jeweils für den Parameter „Helligkeit“ zugewiesenen Adressbereichen des Eingangsabbilds 112 auslesen und verarbeiten. Die Verarbeitung kann z.B. darin bestehen, dass der kleinste der drei Helligkeitswerte (Minimalwert) ermittelt wird. Dieser Minimalwert wird als Zwischenergebnis in einen hierfür reservierten Adressbereich des Zwischenergebnisdatenspeichers gespeichert. Noch im gleichen Zyklus liest das nach BS1 ausgeführte Programmmodul BS3 dieses Zwischenergebnis wieder aus und gleicht dieses mit einem Referenzwert für die minimal erforderliche Helligkeit ab. Falls der Abgleich ergibt, dass der Minimalwert kleiner als der Referenzwert ist, wird dieses Ergebnis von BS3 als Teil des Ausgangsabbilds in einen Datenspeicher geschrieben. Das Ergebnis kann z.B. als Steuerbefehl in das Ausgangsabbild geschrieben und an die Geräte übermittelt werden und das Anschalten der Beleuchtung in dem Tunnelabschnitt, in dem der Minimalwert gemessen wurde, oder im gesamten Tunnel, bewirken. Der als Zwischenergebnis gespeicherte Minimalwert kann auch von anderen Programmmodulen, z.B. BS12, noch im gleichen Zyklus verwendet werden, um andere Aufgaben zu lösen. Z.B. kann ein plötzliches Abfallen der Helligkeit tagsüber ein Hinweis auf einen Brand mit Rauchentwicklung sein, dessen Auftreten das Programmmodul BS12 erkennen soll.The 2 illustrates individual steps of program execution, including the calculation and further processing of an intermediate result. Current status data of the device and/or measurement data, e.g. images, brightness values, etc., are typically recorded by the peripheral devices, e.g. a camera 126 and a fan 128, at least once per PLC cycle and stored in an area of the data memory, which is referred to here as buffer memory 118. The entirety of the data present at the start of the execution of the program and to be processed by the program during a cycle is referred to as the input image and can, for example, consist of a copy of the current data in the buffer memory, which is stored in the memory area 112. In contrast to the values in the buffer memory, the data in the input image are not overwritten during a PLC cycle. For example, the program module BS1, which is executed first, can read and process three brightness values recorded by three cameras in different sections of the tunnel from the address ranges of the input image 112 assigned to these three devices for the "brightness" parameter. The processing can, for example, consist of determining the smallest of the three brightness values (minimum value). This minimum value is stored as an intermediate result in an address area of the intermediate result data memory reserved for this purpose. In the same cycle, the program module BS3, which is executed after BS1, reads this intermediate result again and compares it with a reference value for the minimum required brightness. If the comparison shows that the minimum value is smaller than the reference value, this result is written by BS3 into a data memory as part of the output image. The result can, for example, be written into the output image as a control command and transmitted to the devices, causing the lighting to be switched on in the tunnel section in which the minimum value was measured, or in the entire tunnel. The minimum value stored as an intermediate result can also be used by other program modules, e.g. BS12, in the same cycle to solve other tasks. For example, a sudden drop in brightness during the day can be an indication of a fire with smoke development, the occurrence of which the program module BS12 should detect.

Die 3 zeigt den modularen Aufbau eines Programms zur Tunnelsteuerung gemäß einer Implementierungsvariante. Das Programm 120 umfasst mehrere unabhängig voneinander kompilier- und „deploybare“ Programmmodule. Art und Anzahl der Programmmodule können je nach Ausstattung des Tunnels, für welchen die Steuerung erstellt werden soll, aus einer Programmbibliothek mit umfassend getesteten Programmmodulen so gewählt werden, dass alle Geräte des Tunnels in das Tunnelsteuerungssystem integriert werden. Die Programmmodul-Bibliothek kann z.B. Geräte-Programmmodule für bestimmte Geräte bzw. Gerätetypen und/oder Funktions-Programmmodule für bestimmte Teilfunktionen der Tunnelsteuerung und/oder allgemeine Konfigurations-Programmmodule mit Konfigurationsdaten, die von mehreren anderen Programmmodulen verwendet werden und deren Arbeitsweise (mit)bestimmen, beinhalten.The 3 shows the modular structure of a program for tunnel control according to an implementation variant. The program 120 comprises several program modules that can be compiled and deployed independently of one another. Depending on the equipment of the tunnel for which the control is to be created, the type and number of program modules can be selected from a program library with extensively tested program modules so that all devices in the tunnel are integrated into the tunnel control system. The program module library can, for example, contain device program modules for specific devices or device types and/or function program modules for specific sub-functions of the tunnel control and/or general configuration program modules with configuration data that are used by several other program modules and (co-)determine their mode of operation.

In dem hier gezeigten Beispiel umfassen die Programmmodule, die aus der Programmmodulbibliothek ausgewählt und kombiniert wurden, mehrere Geräte-Programmmodule 304, z.B. ein Geräte-Programmmodul 330 für Leuchtdichtekameras LDK, ein Geräte-Programmmodul 332 fürTüren/Tore TT und ein Geräte-Programmmodul 334 für die Adaptionsbeleuchtung A. Jedes Gerät des Tunnels wird durch ein eigenes, unabhängiges Geräte-Programmmodul im SPS Programm repräsentiert (Instanz). Dies geschieht dadurch, dass ein für den Typ des Gerätes einmal vordefiniertes Geräte-Programmmodul in mehreren Kopien in das Programm integriert wird, sodass jede Geräte-Programmmodulinstanz instanzbezogene Eingangswerte vom jeweiligen Gerät erhält. Jedes Geräte-Programmmodul kann die von „seinem“ Gerät gelieferten Daten in Rohform oder in verarbeiteter Form in einen dem Gerät (hier: einer Gerätetypinstanz) für einen bestimmten Parameter zugewiesenen Adressbereich des Zwischenergebnisdatenspeichers speichern. Dadurch werden diese Daten anderen Programmmodulen zur Verfügung gestellt.In the example shown here, the program modules that were selected and combined from the program module library include several device program modules 304, e.g. a device program module 330 for luminance cameras LDK, a device program module 332 for doors/gates TT and a device program module 334 for adaptation lighting A. Each device in the tunnel is represented by its own, independent device program module in the PLC program (instance). This is done by integrating a device program module that has been predefined once for the device type into the program in several copies, so that each device program module instance receives instance-related input values from the respective device. Each device program module can store the data supplied by "its" device in raw form or in processed form in an address range of the intermediate result data memory assigned to the device (here: a device type instance) for a specific parameter. This makes this data available to other program modules.

Ein SPS Programm wie es hier gezeigt ist, kann ein oder mehrere Funktions-Programmmodule 302 enthalten. Dazu können beispielsweise ein Funktions-Programmmodul 322 gehören, das eine Ereignis-Wirkmatrix EWM enthält, ein Betriebsart-Beleuchtung BABE Funktions-Programmmodul 324 und ein Notbedientableau NBT Funktions-Programmmodul 326.A PLC program as shown here can contain one or more function program modules 302. This can include, for example, a function program module 322 that contains an event effect matrix EWM, an operating mode lighting BABE function program module 324 and an emergency control panel NBT function program module 326.

Vorzugsweise wird eine Teilfunktion der Tunnelsteuerung vollständig in einem Funktions-Programmmodul abgebildet. Beispielsweise kann in der Programmbibliothek für jeden Gerätetyp ein eigenes Funktions-Programmmodul existieren, das der Steuerung und insbesondere der Aktivierung oder Unterdrückung von einer Funktion des Gerätes dient. Vorzugsweise muss für jedes im Tunnel verbaute Gerät das zum Gerätetyp passende Geräte-Programmmodul und, optional, auch ein Funktions-Programmmodul, im Programm enthalten sein und verwendet werden. Manche der Funktions-Programmmodule können jedoch auch Funktionen implementieren, die mehrere Geräte im Verbund steuern und/oder welche Zustands- oder Messdaten mehrerer Geräte des gleichen oder unterschiedlichen Typs auswerten, um eine Gerätefunktion von einem oder mehreren Geräten zu steuern.Preferably, a sub-function of the tunnel control is completely implemented in a functional pro program module. For example, the program library can contain a separate function program module for each device type, which is used to control and in particular to activate or suppress a function of the device. Preferably, for each device installed in the tunnel, the device program module suitable for the device type and, optionally, also a function program module must be included in the program and used. However, some of the function program modules can also implement functions that control several devices in a network and/or which evaluate status or measurement data from several devices of the same or different type in order to control a device function of one or more devices.

In manchen Ausführungsformen ist das Steuerungssystem dazu konfiguriert, Steuerbefehle für Geräte eines bestimmten Typs ausschließlich von vordefinierten Funktions-Programmmodulen, die speziell für diesen Gerätetyp entwickelt und von einer vertrauenswürdigen Stelle bereitgestellt und/oder validiert wurden, auszuführen. Die Ansteuerung eines Geräts durch eine andere Entität als eines vorgefertigten, validen Funktions-Programmmoduls des SPS Programms ist also nicht möglich.In some embodiments, the control system is configured to execute control commands for devices of a certain type exclusively from predefined function program modules that have been specifically developed for this device type and have been provided and/or validated by a trusted authority. Controlling a device by an entity other than a pre-defined, valid function program module of the PLC program is therefore not possible.

Beispielsweise können ein oder mehrere der Programmmodule eine Prüffunktion enthalten, welche eine neben einem Steuerbefehl, den ein anderes Programmmodul in einen entsprechenden Adressbereich geschrieben hat, auch weitere Daten, z.B. Informationen zum Datentyp oder einen verschlüsselten Datenwert aus dem Zwischenergebnisspeicher auslesen. Bevor diese die Prüffunktion enthaltenden Programmmodule den Steuerbefehl in einen entsprechenden Adressbereich des Ausgangsabbilds schreiben, prüfen sie, ob der zu dem gelesenen Steuerbefehl gehörende Datentyp korrekt ist und/oder ob der Steuerbefehl verknüpft mit einem verschlüsselten geheimen Datenwert gespeichert wurde, der den Nachweis erbringt, dass der Steuerbefehl von einem Funktions-Programmmodul stammt, welches zur Steuerung des Geräts dieses Typs validiert wurde. Die Prüfung kann z.B. eine Entschlüsselung und eine Prüfung des geheimen verschlüsselten Werts, z.B. eines Hashwerts, einer Prüfsumme, und/oder eine Signaturprüfung umfassen. In letztgenannten Fall verfügt das Programmodul, das den Steuerbefehl bereitstellt, über einen privaten Signaturschlüssel zur Signierung des Steuerbefehls oder eines anderen Datenwerts, und das weitere Funktions-Programmmodul, das die besagte Validitätsprüfung vornimmt, verfügt über einen hierzu korrespondierenden Signaturprüfschlüssel. Das die Prüfung durchführende Programmmodul schreibt den Steuerbefehl nur dann in einen Adressbereich des Ausgangsabbilds und lässt damit die Ansteuerung des Geräts nur dann zu, wenn der Steuerbefehl von einem Funktions-Programmmodul kommt, für welches die Validitätsprüfung ergeben hat, dass dieses Programmmodul zur Steuerung eines Gerätes diesen Typs zugelassen ist. Die Validitätsprüfung kann einen Abgleich eines entschlüsselten geheimen Datenwerts mit einem Referenzwert umfassen.For example, one or more of the program modules can contain a check function which, in addition to a control command that another program module has written into a corresponding address range, also reads other data, e.g. information on the data type or an encrypted data value from the intermediate result memory. Before these program modules containing the check function write the control command into a corresponding address range of the output image, they check whether the data type associated with the read control command is correct and/or whether the control command has been stored linked to an encrypted secret data value that provides proof that the control command originates from a functional program module that has been validated to control the device of this type. The check can, for example, include decryption and a check of the secret encrypted value, e.g. a hash value, a checksum, and/or a signature check. In the latter case, the program module that provides the control command has a private signature key for signing the control command or another data value, and the other functional program module that carries out the validity check in question has a corresponding signature verification key. The program module that carries out the check only writes the control command into an address range of the output image and thus only allows the device to be controlled if the control command comes from a functional program module for which the validity check has shown that this program module is approved for controlling a device of this type. The validity check can include comparing a decrypted secret data value with a reference value.

Die Verwendung von Geräte-Programmmodulen hat den Vorteil, dass Programmbausteine für die einzelnen Geräte existieren, die nur einmal intensiv für Geräte eines bestimmten Typs getestet werden müssen und dann für eine Vielzahl von Geräteinstanzen des gleichen Typs wiederverwendet werden können. Vorzugsweise können die Geräte-Programmmodule mit Hilfe der Kontrollsoftware der Leitebene visualisiert und/oder kontrolliert werden. Da die Geräte-Programmmodule mit vielen anderen Geräte-Programmmodulen oder Funktions-Programmmodulen kombinierbar sind, ist das Programm dennoch sehr flexibel an den jeweiligen Tunnel anfassbar. Analoge Vorteile ergeben sich für Funktions-Programmmodule, die Funktionen von Geräten eines bestimmten Typs steuern.The use of device program modules has the advantage that program modules exist for the individual devices that only need to be intensively tested once for devices of a certain type and can then be reused for a large number of device instances of the same type. The device program modules can preferably be visualized and/or controlled using the control software of the control level. Since the device program modules can be combined with many other device program modules or function program modules, the program can still be very flexibly adapted to the respective tunnel. Similar advantages arise for function program modules that control the functions of devices of a certain type.

In 3 und mehreren der nachfolgend beschriebenen Figuren sind Geräte-Programmmodule mit einem „G“, Funktions-Programmmodule mit einem „F“ und Basis-Programmmodule mit einem „B“ gekennzeichnet.In 3 and several of the figures described below, device program modules are marked with a “G”, function program modules with an “F” and basic program modules with a “B”.

4 zeigt das Speichern gerätespezifischer Messwerte in vordefinierte Adressbereiche des Zwischenergebnisspeichers, die diesen Geräten jeweils zugewiesen sind. Bei den Geräten 402 kann es sich zum Beispiel um Helligkeitssensoren, zum Beispiel Kameras und Sensoren zur Erfassung der Windstärke im Tunnel handeln. In 4 sind beispielsweise vier Helligkeitssensoren des gleichen Typs und drei Windgeschwindigkeitssensoren in Form von Piktogrammen dargestellt. Diese Sensoren erfassen vorzugsweise mindestens einmal, gegebenenfalls auch mehrfach pro Zyklus, in manchen Ausführungsformen aber auch nur in Zeitintervallen, die länger als ein Zyklus sind, die aktuelle Helligkeit bzw. Windgeschwindigkeit in verschiedenen Abschnitten eines Tunnels. Die erfassten Messwerte werden zunächst in einen Messwertpuffer 118 und letztlich in Adressbereiche des Eingangsabbildspeicherbereichs gespeichert. Die Menge aller aktuellen Messwerte, die zu Beginn eines Zyklus vorliegt und beispielsweise in einem weiteren Speicherbereich 112 gespeichert ist, dient als Eingangsabbild des nun ausgeführten Zyklus. 4 shows the storage of device-specific measured values in predefined address ranges of the intermediate result memory, which are assigned to these devices. The devices 402 can be, for example, brightness sensors, for example cameras and sensors for detecting the wind strength in the tunnel. In 4 For example, four brightness sensors of the same type and three wind speed sensors are shown in the form of pictograms. These sensors preferably record the current brightness or wind speed in different sections of a tunnel at least once, possibly several times per cycle, but in some embodiments only at time intervals that are longer than one cycle. The recorded measured values are initially stored in a measured value buffer 118 and ultimately in address areas of the input image memory area. The set of all current measured values that is present at the start of a cycle and is stored, for example, in another memory area 112, serves as the input image of the cycle now being executed.

Jedem der in 4 gezeigten Geräte 402 ist ein entsprechendes Geräte-Programmmodul (also ein dem Gerät individuell zugewiesenes Programmmodul des Programms) zugewiesen. Die Zuweisung bedeutet, dass beispielsweise das Geräte-Programmmodul 410 selektiv den aktuellen Helligkeitswert des ihm zugewiesenen Helligkeitssensors als Eingangsdatenwert verwendet. Dem Helligkeitssensor-Geräte-Programmmodul 410 ist der Adressbereich 310 im Eingangsabbildspeicherbereich des Datenspeichers 108 zugewiesen, was in diesem Fall bedeutet, dass das Geräte-Programmmodul 410 den Helligkeitswert des entsprechenden Sensors im Eingangsabbild in den Adressbereich 310 des Eingangsabbildspeicherbereichs speichert. Optional kann hierbei eine Verarbeitung des Messwerts stattfinden, zum Beispiel eine Prüfung, ob der Messwert den für den Gerätetyp Helligkeitssensor erwarteten Datentyp hat. Falls dies nicht der Fall ist, kann in den Adressbereich 310 statt des aktuellen Helligkeitswerts eine Fehlermeldung geschrieben werden.Anyone who 4 A corresponding device program module (i.e. a program module of the program that is individually assigned to the device) is assigned to each device 402. The assignment means that, for example, the device program module 410 can selectively adjust the current brightness value of the brightness sensor assigned to it is used as the input data value. The brightness sensor device program module 410 is assigned the address range 310 in the input image memory area of the data memory 108, which in this case means that the device program module 410 stores the brightness value of the corresponding sensor in the input image in the address range 310 of the input image memory area. Optionally, the measured value can be processed here, for example a check to see whether the measured value has the data type expected for the brightness sensor device type. If this is not the case, an error message can be written to the address range 310 instead of the current brightness value.

In analoger Weise ist der Adressbereich 403 dem Geräte-Programmmodul 412 zugewiesen. Dem Geräte-Programmmodul 404 ist der Adressbereich 312 zugewiesen, usw. Jedes Geräte-Programmmodul kann also bei seiner Ausführung die Messwerte des ihm zugewiesenen Geräts nach einem Prüfschritt, Aggregationsschritt und/oder sonstigen Datenverarbeitungsschritten in einem diesem Gerät und diesem gerätebezogenen Parameter zugewiesenen Adressbereich speichern. Es ist auch möglich, dass ein Geräte-Programmmodul vom gleichen Gerät mehrere Messwerte für mehrere verschiedene Parameter erhält und diese entsprechend in mehrere verschiedene parameterbezogene Adressbereiche des Zwischenergebnisspeichers speichert.In an analogous manner, the address range 403 is assigned to the device program module 412. The device program module 404 is assigned the address range 312, etc. Each device program module can therefore, when executed, store the measured values of the device assigned to it after a test step, aggregation step and/or other data processing steps in an address range assigned to this device and this device-related parameter. It is also possible for a device program module to receive several measured values for several different parameters from the same device and store them accordingly in several different parameter-related address ranges of the intermediate result memory.

Der Zwischenergebnisspeicher kann als zentraler Ablageort für Daten und Zustände der in einem Tunnel enthaltenen Geräte dienen.The intermediate result store can serve as a central storage location for data and states of the devices contained in a tunnel.

Einem Programmmodul können nach einer Implementierungsvariante ein oder mehrere Adressbereiche für die Speicherung parameterspezifischer Datenwerte zum Beispiel dadurch zugewiesen werden, dass bereits vor der Programmausführung, also z.B. bei der Programmierung des Programmmoduls die Adressbereiche den jeweiligen Parametern in einer Zuweisungskonfiguration, die Bestandteil des Prorammquellcodes sein kann, fest zugewiesen werden. Diese Implementierungsvarianten erfordern jedoch Änderungen im Quellcode um die Zuweisung von Parametern und Adressbereichen zu ändern. Es ist auch möglich, die Zuweisungskonfiguration in Form von Metadaten des Programmmoduls bereitzustellen, die von dem kompilierten Modul zur Laufzeit genutzt und ausgelesen werden, jedoch nicht Teil des kompilierten Programmcodes sind.According to an implementation variant, one or more address ranges for storing parameter-specific data values can be assigned to a program module, for example by permanently assigning the address ranges to the respective parameters in an assignment configuration that can be part of the program source code before the program is executed, e.g. when programming the program module. However, these implementation variants require changes in the source code in order to change the assignment of parameters and address ranges. It is also possible to provide the assignment configuration in the form of metadata of the program module, which is used and read by the compiled module at runtime, but is not part of the compiled program code.

Ausführungsformen erlauben es, dass bei der Programmerstellung Kopien des gleichen Geräte-Programmmoduls, z.B. eines Ventilator-Programmmoduls, für jeden der Ventilatoren im Tunnel aneinandergereiht werden, wobei die verschiedenen Kopien mit unterschiedliche Adressbereichen initialisiert werden, damit sie Steuerdaten gezielt in diejenigen Adressbereiche schreiben können, von welchen die jeweiligen Ventilatoren ihre Steuerbefehle erhalten bzw. auslesen.Embodiments allow that during program creation, copies of the same device program module, e.g. a fan program module, are lined up for each of the fans in the tunnel, whereby the different copies are initialized with different address ranges so that they can write control data specifically into those address ranges from which the respective fans receive or read their control commands.

Dies hat den Vorteil, dass die Zuweisung von Parametern zu Adressbereichen geändert werden kann, ohne das Programmmodul neu kompilieren zu müssen. Auch andere Programmmodule, zum Beispiel Funktions-Programmmodule oder allgemeine Programmmodule, können über entsprechende Konfigurationsschnittstellen zur Zuweisung von Parametern und Adressbereiche im Datenspeicher verfügen. In den als Argument bei der Konfiguration eines Programmmoduls übergebenen Adressbereichen können je nach Programmmodul z.B. aktuelle Messwerte (Ist-Werte), Sollwerte, Meldungen oder Befehle enthalten sein.This has the advantage that the assignment of parameters to address ranges can be changed without having to recompile the program module. Other program modules, for example function program modules or general program modules, can also have corresponding configuration interfaces for assigning parameters and address ranges in the data memory. Depending on the program module, the address ranges passed as arguments when configuring a program module can contain, for example, current measured values (actual values), setpoints, messages or commands.

5 zeigt die Zuweisung von Adressbereichen des Datenspeichers 108 an mehrere Geräte-Programmmodule 304 und an ein Funktions-Programmmodul 508. Aus dem hier gezeigten Beispiel geht hervor, dass das unterste Geräte-Programmmodul dazu konfiguriert ist, den von seinem zugewiesenen Helligkeitssensor erfassten Helligkeitswert in den Adressbereich 314 zu speichern. Das zweitunterste Geräte-Programmmodul ist dazu konfiguriert, seinen entsprechenden Helligkeitswert in den Adressbereich 312 zu speichern. Das oberste der drei Geräte-Programmmodule ist dazu konfiguriert, den von seinem Gerät erfassten Helligkeitswert in den Adressbereich 310 zu speichern. 5 shows the allocation of address areas of the data memory 108 to several device program modules 304 and to a function program module 508. From the example shown here, it can be seen that the lowest device program module is configured to store the brightness value detected by its assigned brightness sensor in the address area 314. The second lowest device program module is configured to store its corresponding brightness value in the address area 312. The topmost of the three device program modules is configured to store the brightness value detected by its device in the address area 310.

Das Funktions-Programmmodul 508 empfängt bei seiner Konfiguration Referenzen auf sämtliche drei Adressbereiche innen 310, außen 312, außen2 314 und außerdem noch eine Referenz auf den weiteren Adressbereich 308. Das Funktions-Programmmodul kann nun beispielsweise im Zuge der Ausführung des Programms die Helligkeitswerte der drei Helligkeitssensoren aus den drei Adressbereichen 310, 312, 314 auslesen, verarbeiten, und das Ergebnis in den Adressbereich 308 speichern.During its configuration, the function program module 508 receives references to all three address ranges inside 310, outside 312, outside2 314 and also a reference to the further address range 308. The function program module can now, for example, read out the brightness values of the three brightness sensors from the three address ranges 310, 312, 314 during the execution of the program, process them and store the result in the address range 308.

6 zeigt weitere Zuweisungen von Programmmodulen und Adressbereichen. Die hier gezeigten Zuweisungen illustrieren, dass in manchen Ausführungsformen das Programm mehrere Programmmodule 508, 602 enthalten kann, welche die gleichen Parameterwerte aus einem für diese reservierten Adressbereich 310 lesen. Der Programmbaustein LDK schreibt einen Datenwert in die dem Parameter „LDK01“ (der von der Leuchtdichtekamera 01 gemessene Wert der Leuchtdichte) zugewiesene Adresse bzw. den Adressbereich 310. Die Programmbausteine 508, 602 beinhalten bzw. kennen die gleiche Zuweisung des Parameters „LDK01“ (der von der Leuchtdichtekamera 01 gemessene Wert der Leuchtdichte) an den Adressbereich 310 und lesen diesen Adressbereich aus, um den aktuellen Parameterwert dieses Parameters zu erhalten. 6 shows further assignments of program modules and address ranges. The assignments shown here illustrate that in some embodiments the program can contain several program modules 508, 602, which read the same parameter values from an address range 310 reserved for them. The program block LDK writes a data value into the address or address range 310 assigned to the parameter “LDK01” (the luminance value measured by the luminance camera 01). The program blocks 508, 602 contain or know the same assignment of the parameter “LDK01” (the luminance value measured by the luminance camera 01 measured value of luminance) to the address range 310 and read this address range to obtain the current parameter value of this parameter.

7 zeigt einen speziellen Konfigurations-Adressbereich 712 des Datenspeichers 108. Der Konfigurations- Adressbereich 712 enthält allgemeine Konfigurationsdaten 710, die von vielen verschiedenen Programmmodulen, zum Beispiel von Geräte-Programmmodulen, allgemeinen Programmmodulen und/oder Funktions-Programmmodulen, genutzt werden können. Hierdurch können wichtige Standardvariablen zentral und einfach für alle Programmmodule auf tunnelspezifische Weise gesetzt werden. Beispielsweise kann dort festgelegt werden, dass die Beleuchtung des Tunnels immer eine gewisse Mindesthelligkeit aufweisen muss und/oder das maximal eine bestimmte Kohlenmonoxid-Konzentration als akzeptabel gilt. Es ist nicht notwendig, diese allgemeinen Grenzwerte und Sollwerte für sämtliche Geräte einzelnen in den jeweiligen Geräte-Programmmodulen festzulegen. Dies kann insbesondere deshalb vorteilhaft sein, weil in einem Tunnel oftmals eine Vielzahl von Instanzen des gleichen Geräts (zum Beispiel eine bestimmte Leuchte, ein bestimmter Ventilator, ein bestimmter Sensor etc.) verwendet wird. Wenn eine modifizierte Kopie eines Programms gemäß Implementierungsvarianten der Erfindung zur Steuerung eines anderen Tunnels wiederverwendet wird, muss nur der Inhalt des Adressbereichs 712 angepasst werden, um verschiedene Sollwerte oder Grenzwerte auf den anderen Tunnel anzupassen. 7 shows a special configuration address area 712 of the data memory 108. The configuration address area 712 contains general configuration data 710 that can be used by many different program modules, for example device program modules, general program modules and/or function program modules. This allows important standard variables to be set centrally and easily for all program modules in a tunnel-specific manner. For example, it can be specified there that the lighting in the tunnel must always have a certain minimum brightness and/or that a maximum of a certain carbon monoxide concentration is considered acceptable. It is not necessary to specify these general limit values and setpoints for all devices individually in the respective device program modules. This can be particularly advantageous because a large number of instances of the same device (for example a certain light, a certain fan, a certain sensor, etc.) are often used in a tunnel. If a modified copy of a program according to implementation variants of the invention is reused to control another tunnel, only the contents of the address range 712 need be adjusted to adapt various setpoints or limits to the other tunnel.

8 zeigt den Ablauf eines Programms mit je nur einem einzigen Programmmodul für das Lesen des Eingangsabbilds und einem einzigen weiteren Programmmodul für das Schreiben des Ausgangsabbilds. 8th shows the flow of a program with only one program module for reading the input image and a single additional program module for writing the output image.

Das Eingangsabbild wird einmal pro SPS-Zyklus in den für das Eingangsabbild reservierten Speicherbereich 112 des Datenspeichers 108 übertragen. Entsprechend wird einmal pro SPS-Zyklus die Gesamtheit der Werte des Ausgangsabbilds in den entsprechend für das Ausgangsabbild reservierten Speicherbereich 116 gespeichert. Vorzugsweise wird das Eingangsabbild in einem einzigen Schritt von einem einzigen Programmmodul 802 des Programms, hier als Eingangs-Programmmodul bezeichnet, eingelesen und verarbeitet. Vorzugsweise wird das gesamte Ausgangsabbild in einem einzigen Schritt von einem einzigen Programmmodul 804 des Programms, hier als Ausgangs-Programmmodul bezeichnet, gespeichert. Die Berechnung des Ausgangsabbilds aus dem Eingangsabbild erfolgt durch all die anderen Programmmodule 806, 808, 810 des SPS Programms 120, wobei auch Zwischenwerte in dem Datenspeicher gespeichert und weiterverarbeitet werden.The input image is transferred once per PLC cycle to the memory area 112 of the data memory 108 reserved for the input image. Accordingly, once per PLC cycle, the entirety of the values of the output image are stored in the memory area 116 reserved for the output image. Preferably, the input image is read in and processed in a single step by a single program module 802 of the program, referred to here as the input program module. Preferably, the entire output image is stored in a single step by a single program module 804 of the program, referred to here as the output program module. The output image is calculated from the input image by all the other program modules 806, 808, 810 of the PLC program 120, with intermediate values also being stored in the data memory and further processed.

Gemäß Ausführungsformen der Erfindung ist das Programm somit dazu konfiguriert, dass die Datenwerte des Eingangsabbilds und des Ausgangsabbilds jeweils nur an einer einzigen Stelle (einem einzigen Programmmodul) im Programmcode des Programms 120 verarbeitet werden. Dies kann vorteilhaft sein, da hierdurch eine konsistente Simulation von Eingangswerten und Ausgangswerten und ein fehlerfreies Umschalten zwischen Normalbetriebsmodus und Testmodus des Tunnels ermöglicht wird. Dies kann z.B. dadurch erfolgen, dass in dem Eingangs-Programmmodul 802 eine Schnittstelle vorhanden ist, die es einem Nutzer ermöglicht, das Programmmodul 802 wahlweise im Testmodus oder Normalbetriebsmodus auszuführen. Im Normalbetriebsmodus liest das Programmmodul 802 das Eingangsabbild aus dem Speicherbereich 112, im Testmodus aus einem anderen Speicherbereich, in welchem andere, z.B. gezielt veränderte, Parameterwerte gespeichert sind. Das Ausgangs-Programmmodul 804 kann ebenfalls in Abhängigkeit von einer Eingabe vom Nutzer wahlweise im Testmodus oder im Normalbetriebsmodus ausgeführt werden. Im Normalbetriebsmodus speichert das Programmmodul 804 die während eines Zyklus des Programms erzeugten Daten des Ausgangsabbilds in den zur Speicherung des Ausgangsabbilds im Normalbetrieb vorgesehenen Speicherbereich 116, im Testmodus in einem anderen Speicher oder Speicherbereich. Vorzugsweise erlauben es die Schnittstellen also einem Nutzer, die beiden Programmmodule 802, 804, und damit das ganze SPS-Programm, wahlweise im Normalbetrieb oder Testbetrieb durchzuführen, sodass sehr einfach zwischen diesen Betriebsmodi hin- und her geschaltet werden kann. Vorzugsweise umfasst die Steuerung eine Schnittstelle, die es einem Nutzer auf der Ebene des Programms und/oder auf der Ebene der Leitstelle ermöglicht, zwischen einem Testbetrieb und einem Normalbetrieb hin und her zu schalten. Im Testbetrieb wird das Programm wie beschrieben ausgeführt, liest sein Eingangsabbild jedoch nicht vom hierfür normalerweise reservierten Speicherbereich 112, sondern von dem Test-Eingangsabbildspeicherbereich. Im Testmodus wird das berechnete Ausgangsabbild entsprechend auch nicht in den Speicherbereich 116 für das normalerweise erzeugte Ausgangsabbild beschrieben, sondern in einen separaten Speicherbereich für das Test-Ausgangsabbild.According to embodiments of the invention, the program is thus configured so that the data values of the input image and the output image are each processed only at a single location (a single program module) in the program code of the program 120. This can be advantageous because it enables consistent simulation of input values and output values and error-free switching between normal operating mode and test mode of the tunnel. This can be done, for example, by having an interface in the input program module 802 that allows a user to execute the program module 802 either in test mode or normal operating mode. In normal operating mode, the program module 802 reads the input image from the memory area 112, in test mode from another memory area in which other, e.g. specifically changed, parameter values are stored. The output program module 804 can also be executed either in test mode or in normal operating mode depending on an input from the user. In normal operating mode, the program module 804 stores the data of the output image generated during a cycle of the program in the memory area 116 provided for storing the output image in normal operation, and in test mode in another memory or memory area. Preferably, the interfaces therefore allow a user to run the two program modules 802, 804, and thus the entire PLC program, either in normal operation or test operation, so that it is very easy to switch back and forth between these operating modes. Preferably, the controller includes an interface that allows a user at the program level and/or at the control center level to switch back and forth between test operation and normal operation. In test operation, the program is executed as described, but does not read its input image from the memory area 112 normally reserved for this purpose, but from the test input image memory area. In test mode, the calculated output image is not written into the memory area 116 for the normally generated output image, but into a separate memory area for the test output image.

Der Datenspeicher 108 umfasst nach manchen Implementierungsvarianten also weitere Speicherbereiche und Adressbereiche, die für die Speicherung eines Testeingangsabbilds und eines Testausgangsabbilds im Testmodus des Programms vorgesehen sind. Ein Test-Eingangsabbild entspricht in Größe und im Hinblick auf die Datenorganisation dem Eingangsabbild 112. Allerdings sind ein oder mehrere Datenwerte des Test-Eingangsabbilds verändert, zum Beispiel um den Effekt dieser Änderungen auf die Programmausführung und Tunnelsteuerung nachvollziehen zu können.According to some implementation variants, the data memory 108 therefore comprises additional memory areas and address areas that are intended for storing a test input image and a test output image in the test mode of the program. A test input image corresponds to in size and in terms of data organization to the input image 112. However, one or more data values of the test input image are changed, for example in order to be able to understand the effect of these changes on program execution and tunnel control.

Dadurch, dass in diesen Implementierungsvarianten nur ein einziges Programmmodul das Eingangsabbild liest und nur ein einziges, weiteres Programmmodul das Ausgangsabbild in den entsprechenden Adressbereich schreibt, ist es möglich, sehr einfach zwischen Testbetrieb und Normalbetrieb hin und her zu schalten und das Verhalten der Steuerung tunnelspezifisch bei verschiedenen Szenarien zu testen, ohne dass hierdurch der gesamte Programmcode nach weiteren Referenzen auf Werte des Eingangsabbilds durchsucht werden müsste. Dies reduziert das Risiko von Fehlern beim Testen der Software und bei der Rückkehr in den Normalbetrieb.Because in these implementation variants only a single program module reads the input image and only a single, further program module writes the output image into the corresponding address range, it is possible to switch back and forth very easily between test mode and normal operation and to test the behavior of the control system in different scenarios for each tunnel without having to search the entire program code for further references to values in the input image. This reduces the risk of errors when testing the software and when returning to normal operation.

9 zeigt ein Funktions-Programmmodul, das zur Unterdrückung von kurzfristigen Statusänderungen von Geräten verwendet wird („Entprellung“). In manchen Fällen kann das häufige Wechseln des Status eines Geräts zu Fehlauslösungen von Störungsmeldungen und Alarmen führen. Falls beispielsweise der Status einer Tür mit einem Kontaktsensor zwischen „offen“ und „geschlossen“ unterscheidet, und falls diese Tür so gelagert ist, dass bereits kleinere Erschütterungen oder Windstöße zu Bewegungen des Türblatts führen, die eine Statusänderung der Tür auslösen, kann eine Propagation dieser Fehlfunktion der Türstatusmessung dadurch verhindert werden, dass das für diese Tür zuständige Geräte-Programmmodul anhand der Häufigkeit des Zustandswechsels oder anhand sonstiger Umstände und Parameter erkennt, dass der angebliche Zustandswechsel der Tür eine Falschmeldung ist. Eine ähnliche Situation kann eintreten, wenn zum Beispiel ein Ast mit Blattwerk über einen Helligkeitssensor am Eingang eines Tunnels gewachsen ist, der durch den Wind den Helligkeitssensor immer wieder überlagert. Anhand der Frequenz der Helligkeitsveränderung kann das dem Sensor zugeordnete Geräte-Programmmodul erkennen, dass es am Eingang des Tunnels wohl nicht wegen Rauch oder sinkendem Sonnenstand dunkler geworden ist, sondern die von dem Sensor gemeldeten Helligkeitswerte aus einem anderen Grund flackern. In dem Fall kann das Geräte-Programmmodul dieses Helligkeitssensors die empfangene Helligkeitsänderung ignorieren, und z.B. auf ein Überschreiben des aktuell in dem entsprechenden Adressbereich befindlichen Datenwerts verzichten, oder diesen Datenwert mit einem entsprechenden Warnhinweis versehen. Das Funktions-Programmmodul, welches die drei vorverarbeiteten Helligkeitswerte aus den entsprechenden drei Adressbereichen liest, kann zum Beispiel anhand des Datentyps oder des Dateninhalts der ausgelesenen Daten erkennen, dass die von dem besagten Helligkeitssensor gelieferten Werte problematisch sind und gegebenenfalls ignoriert oder korrigiert werden müssen. Digitale Eingänge, die eine schnelle Reaktion der Steuerung erfordern, werden vorzugsweise jedoch nicht entprellt. 9 shows a function program module that is used to suppress short-term status changes of devices ("debouncing"). In some cases, the frequent changing of the status of a device can lead to false triggering of fault messages and alarms. If, for example, the status of a door with a contact sensor distinguishes between "open" and "closed", and if this door is mounted in such a way that even small vibrations or gusts of wind lead to movements of the door leaf that trigger a status change of the door, propagation of this malfunction of the door status measurement can be prevented by the device program module responsible for this door recognizing, based on the frequency of the status change or other circumstances and parameters, that the alleged change of status of the door is a false report. A similar situation can occur if, for example, a branch with foliage has grown over a brightness sensor at the entrance to a tunnel, which repeatedly overlays the brightness sensor due to the wind. Based on the frequency of the brightness change, the device program module assigned to the sensor can recognize that it has not become darker at the entrance to the tunnel because of smoke or the setting sun, but that the brightness values reported by the sensor are flickering for another reason. In this case, the device program module of this brightness sensor can ignore the received brightness change and, for example, refrain from overwriting the data value currently in the corresponding address range, or provide this data value with an appropriate warning. The function program module, which reads the three pre-processed brightness values from the corresponding three address ranges, can recognize, for example, based on the data type or data content of the read data that the values supplied by the brightness sensor in question are problematic and may need to be ignored or corrected. Digital inputs that require a quick response from the controller are preferably not debounced.

Gemäß weiterer, hier nicht gezeigter, Implementierungsvarianten, kann das Programm 120 auch Programmmodule beinhalten, die als Sammler-Programmmodule bezeichnet werden. Diese sind dazu konfiguriert, die von mehreren Geräte-Programmmodulen (vorzugsweise des gleichen Gerätetyps) bereitgestellten Daten, die in entsprechenden, dem Sammler-Programmmodul bekannten Adressbereichen gespeichert sind, zu lesen und zu aggregieren. Beispielsweise kann die Aggregation darin bestehen, den Median oder das arithmetische Mittel oder einen Maximalwert, einen Minimalwert oder einen sonstigen abgeleiteten Wert zu berechnen. Dieser aggregierte Wert kann dann als Ergebnis des Sammler-Programmmoduls in einem entsprechenden, hierfür reservierten Adressbereich des Datenspeichers gespeichert werden. Bei der Aggregation werden vorzugsweise auch Datentypen oder sonstige gegebenenfalls in den von den Geräte-Programmmodulen bereitgestellten Daten enthaltenen Informationen berücksichtigt, die einen Hinweis darauf geben, ob der Datenwert valide ist (Gerät hat einen bestimmten Gerätetyp, der Messwert liegt innerhalb eines erwarteten, plausiblen Bereichs, der Messwert hat den erwarteten Datentyp, der Messwert weist keine ungewöhnlich hohe Fluktuationsrate auf, etc.).According to further implementation variants not shown here, the program 120 can also contain program modules, which are referred to as collector program modules. These are configured to read and aggregate the data provided by several device program modules (preferably of the same device type) that are stored in corresponding address ranges known to the collector program module. For example, the aggregation can consist of calculating the median or the arithmetic mean or a maximum value, a minimum value or another derived value. This aggregated value can then be stored as a result of the collector program module in a corresponding address range of the data memory reserved for this purpose. Aggregation preferably also takes into account data types or other information that may be contained in the data provided by the device program modules that provides an indication of whether the data value is valid (device has a certain device type, the measured value is within an expected, plausible range, the measured value has the expected data type, the measured value does not have an unusually high fluctuation rate, etc.).

10 zeigt ein Flussdiagramm eines automatischen oder halbautomatischen Verfahrens zur Erstellung eines SPS-Programms zur Verkehrswegetunnelsteuerung. 10 shows a flow chart of an automatic or semi-automatic procedure for creating a PLC program for traffic tunnel control.

In einem weiteren Aspekt betrifft die Erfindung eine automatische oder halbautomatische Erstellung eines SPS-Programms zur Steuerung eines Verkehrswegetunnels.In a further aspect, the invention relates to an automatic or semi-automatic creation of a PLC program for controlling a traffic tunnel.

In einem ersten Schritt 910 wird ein Ablaufplan für den Informationsfluss und die Informationsverarbeitung von Messdaten, die von Geräten des Tunnels erfasst wurden, bereitgestellt. Der Ablaufplan kann z.B. als XML Datei oder eine Datei anderen Formats bereitgestellt werden. Außerdem werden Steuerdaten, die angeben, wie der Zustand der Geräte im Tunnel - ggf. in Abhängigkeit verschiedener Parameter - gesteuert werden soll, bereitgestellt. Beispielsweise können die Steuerdaten bestimmte Sollwerte beinhalten oder spezifizieren, in welchen Betriebsmodus ein Gerät betrieben werden soll.In a first step 910, a flow chart is provided for the information flow and information processing of measurement data recorded by devices in the tunnel. The flow chart can be provided, for example, as an XML file or a file in another format. In addition, control data is provided that indicate how the state of the devices in the tunnel should be controlled - possibly depending on various parameters. For example, the control data can contain certain target values or specify in which operating mode a device should be operated.

In Schritt 912 wird eine Zuweisung bereitgestellt, z.B. in Form einer XML-Datei, einer Tabelle oder sonstigen Datenstruktur. In dieser Zuweisung werden Parameter, die sich auf die Geräte des Tunnels beziehen, und Adressbereiche eines Datenspeichers, die diese speichern sollen, einander zugewiesen.In step 912, an assignment is provided, e.g. in the form of an XML file, a table or other data structure. In this assignment, parameters relating to the devices of the tunnel and address ranges of a data storage device intended to store them are assigned to one another.

In Schritt 914 erfolgt eine automatische Aneinanderreihung vordefinierter Programmmodule gemäß des Ablaufplans. Beispielsweise kann die Aneinanderreihung von einer Software zur automatischen oder halbautomatischen Programmerstellung auf Basis einer vorhandenen Programmmodulbibliothek erfolgen. Hierdurch wird ein Programm bereitgestellt, dessen Programmmodule gerätebezogene Daten gemäß dem Ablaufplan verarbeiten.In step 914, predefined program modules are automatically arranged in accordance with the flow chart. For example, the arrangement can be carried out by software for automatic or semi-automatic program creation based on an existing program module library. This provides a program whose program modules process device-related data in accordance with the flow chart.

In Schritt 916 wird eine automatische Konfiguration der aneinandergereihten Programmmodule durchgeführt. Die Konfiguration erfolgt so, dass die konfigurierten Programmmodule zumindest die Teile der Zuweisung enthalten, die sich auf Parameter beziehen, die von dem Programmmodul verarbeitet werden. Die konfigurierten Programmmodule sind also dazu konfiguriert, den Inputwert für einen von ihnen verarbeiteten Parameter von dem diesem Parameter zugewiesenen Adressbereich zu lesen und/oder den von ihnen berechneten Wert für einen von ihnen auszugebenden Parameter in den diesem Parameter zugewiesenen Adressbereich zu schreiben.In step 916, an automatic configuration of the program modules arranged in series is carried out. The configuration is carried out in such a way that the configured program modules contain at least the parts of the assignment that relate to parameters that are processed by the program module. The configured program modules are therefore configured to read the input value for a parameter they process from the address range assigned to this parameter and/or to write the value they calculate for a parameter they are to output into the address range assigned to this parameter.

11 zeigt die unterschiedliche Reaktion der Steuerung zweier Tunnel auf das gleiche Ereignis (eine Tür wird geöffnet). In beiden Tunneln wird die Entscheidung über die Reaktion auf bestimmte Ereignisse von einem speziellen Programmmodul mit einer Ereignis-Wirkmatrix getroffen, wobei sich die Ereignis-Wirkmatrix dieses Programmmoduls in den beiden für die Steuerung der beiden Tunnel verwendeten Programme unterscheidet. 11 shows the different reaction of the control of two tunnels to the same event (a door is opened). In both tunnels, the decision on how to react to certain events is made by a special program module with an event-effect matrix, whereby the event-effect matrix of this program module differs in the two programs used to control the two tunnels.

In dem links dargestellten Tunnel meldet das für die Tür zuständige Geräte-Programmmodul 938 NN01 (Tür in der Notfallnische 01), dass die Tür NN01 geöffnet wurde, und speichert einen entsprechenden Datenwert in einen Adressbereich des Datenspeichers, von welchem das Programmmodul 934 mit der Ereignis-Wirkmatrix diesen Datenwert wieder liest. Das Programmmodul 934 verarbeitet außerdem weitere Zwischenergebnisse von verschiedenen Funktions-Programmmodulen und entscheidet, dass in Reaktion auf die geöffnete Tür Vollbeleuchtung aktiviert werden soll. Außerdem soll die Anzeige der erlaubten Höchstgeschwindigkeit auf 60 km/h reduziert werden. Das EWM-Programmmodul speichert entsprechende Steuerbefehle in entsprechende Adressbereiche des Datenspeichers, wo sie von den Geräte-Programmmodulen 930, 932 für die Tunnelbeleuchtung bzw. für die Höchstgeschwindigkeitsanzeige gelesen und zu Steuerbefehlen des Ausgangsabbilds weiterverarbeitet werden.In the tunnel shown on the left, the device program module 938 NN01 (door in emergency niche 01) responsible for the door reports that the door NN01 has been opened and stores a corresponding data value in an address area of the data memory, from which the program module 934 reads this data value again with the event effect matrix. The program module 934 also processes further intermediate results from various function program modules and decides that full lighting should be activated in response to the door being opened. In addition, the display of the maximum permitted speed should be reduced to 60 km/h. The EWM program module stores corresponding control commands in corresponding address areas of the data memory, where they are read by the device program modules 930, 932 for the tunnel lighting or for the maximum speed display and further processed into control commands of the output image.

Der Ablauf des Vorgangs für den in der rechten Hälfte der 11 dargestellten Tunnel erfolgt im Wesentlichen analog, mit dem Unterschied, dass das hier verwendete EWM-Programmmodul 958 gemäß seiner Ereignis-Wirkmatrix entscheidet, dass die Beleuchtung nicht aktiviert wird (zum Beispiel weil der Tunnel so kurz ist, dass dies zumindest tagsüber nicht erforderlich ist) und dass die Höchstgeschwindigkeit (wegen der besseren Sichtverhältnisse nur) auf 80 km/h reduziert wird.The process flow for the right half of the 11 The tunnel shown is essentially analogous, with the difference that the EWM program module 958 used here decides according to its event-effect matrix that the lighting is not activated (for example because the tunnel is so short that this is not necessary, at least during the day) and that the maximum speed is reduced to 80 km/h (only because of the better visibility).

In manchen Implementierungsvarianten können die Programme mehrerer Tunnel jeweils auch ein oder mehrere Programmmodule 960 zum Datenaustausch und zur Synchronisation der Steuerung der mehreren Tunnel umfassen. Dies kann z.B. vorteilhaft sein, wenn es sich bei den beiden Tunneln um zwei Röhren einer aus mehreren Röhren bestehenden Tunnelanlage handelt. Das Verhalten der Geräte in den zwei Tunneln wird durch die Programmmodule der jeweils verwendeten Programme vorgegeben.In some implementation variants, the programs of several tunnels can each also include one or more program modules 960 for data exchange and for synchronizing the control of the several tunnels. This can be advantageous, for example, if the two tunnels are two tubes of a tunnel system consisting of several tubes. The behavior of the devices in the two tunnels is specified by the program modules of the programs used.

Gemäß manchen, hier nicht visualisierten, Implementierungsvarianten, umfassen die Geräte des Verkehrswegetunnels mehrere Lüftungsanlagen, zum Beispiel Strahlenventilatoren oder andere Formen von Ventilatoren. Jeder Lüftungsanlage ist ein entsprechendes Geräte-Programmmodul zugewiesen. Das Programm umfasst ein weiteres, für den jeweiligen Tunnel spezifisches Programmmodul, das einem Adressbereich zugewiesen ist, in welchem tunnelspezifische Istwerte und Sollwerte für die Lüftung (Windgeschwindigkeit, Temperatur) gespeichert sind. Aufgrund der unterschiedlichen Sollwerte, die in dem Datenspeicher gespeichert sind, ist es möglich, dass mehrere Tunnel mit exakt der gleichen Sequenz an Programmmodulen unterschiedlich gesteuert werden, da ihre Sollwerte unterschiedlich sind.According to some implementation variants, not visualized here, the devices in the traffic tunnel include several ventilation systems, for example jet fans or other types of fans. Each ventilation system is assigned a corresponding device program module. The program includes another program module specific to the respective tunnel, which is assigned to an address range in which tunnel-specific actual values and setpoints for ventilation (wind speed, temperature) are stored. Due to the different setpoints stored in the data memory, it is possible that several tunnels with exactly the same sequence of program modules are controlled differently because their setpoints are different.

12A zeigt die Verwendung eines Funktions-Programmmoduls 984 („Betriebsart Haupttunnel“ - BAH) mit einer Ereignis-Wirkmatrix bei der Beleuchtungssteuerung in Abhängigkeit vom Öffnen einer Tür. Die in Kreisen enthaltenen Ziffern in den 12A und 13 stehen für die Reihenfolge verschiedener Arbeitsschritte, die im Zuge der Abarbeitung des Programms innerhalb eines SPS-Zyklus ausgeführt werden. Ein Schritt kann dabei der Ausführung eines oder mehrerer der Programmmodule entsprechen. So umfasst ein Übertragungsschritt von Daten von einem Modul zu einem anderen in der Regel die Ausführung des ersten Moduls, um den Datenwert zu schreiben, und die Ausführung des anderen Moduls, um die Daten zu lesen. Bei der Ausführung eines Programmoduls können ein oder mehrere Leseschritte und/oder ein oder mehrere Speicherschritte ausgeführt werden. 12A shows the use of a function program module 984 (“Main tunnel operating mode” - BAH) with an event matrix for lighting control depending on the opening of a door. The numbers in circles in the 12A and 13 represent the sequence of different work steps that are carried out during the execution of the program within a PLC cycle. A step can correspond to the execution of one or more of the program modules. For example, a step of transferring data from one module to another usually includes the execution of the first module to write the data value and the execution of the other module to read the data. When executing a program module, one or more read steps and/or one or more storage steps are executed.

Zunächst wird in Reaktion auf das Öffnen einer Notfallnischentür (NN) zu Beginn eines Zyklus von einem der Tür zugeordneten Geräte-Programmmodul 980 festgestellt, dass die Tür geöffnet wurde und z.B. der Parameterwert „geöffnet“ in den für den Parameter „Geöffnet-Status“ dieser Tür vorgesehenen Adressbereich des Datenspeichers gespeichert (Schritt „1“). Optional kann dieser Schritt die Durchführung von Plausibilitätsprüfungen oder Datenvorverarbeitungsschritten umfassen. Das Funktions-Programmmodul 984 liest in einem späteren Schritt „2“ innerhalb des aktuellen SPS-Zyklusdurchlaufs den Statuswert dieser Tür von dem diesem Statuswert und dieser Tür in einer Zuweisungskonfiguration zugewiesenen Adressbereich. Das Funktions-Programmmodul 984 beinhaltet eine Ereignis-Wirkmatrix, in welcher für das Ereignis „Tür ist offen“ die Reaktion „Aktiviere Vollbeleuchtung der Adaptionsbeleuchtung A, schalte die Durchfahrtsbeleuchtung D aus“, hinterlegt ist. Entsprechend dieser Matrix schreibt das Programmmodul 984 im gleichen Zyklus im Schritt „3“ einen Ergebniswert, der anzeigt, dass die Adaptionsbeleuchtung 100% aktiviert werden soll, in einen ersten Adressbereich und einen weiteren Ergebniswert, der anzeigt, dass die Durchfahrtsbeleuchtung ausgeschaltet werden soll, in einen diesem weiteren Ergebnis zugewiesenen zweiten Adressbereich. Im weiteren Verlauf des Zyklus liest das Programmmodul 986, welches der Adaptionsbeleuchtung A zugewiesen ist, in einem hier nicht dargestellten Schritt „4“ den ersten Adressbereich aus und schaltet die Adaptationsbeleuchtung entsprechend des Inhalts des ausgelesenen Adressbereichs an. Ebenfalls im gleichen Zyklus in einem hier nicht gezeigten Schritt „5“ liest das Programmmodul 988, welches der Durchfahrtsbeleuchtung D zugewiesen ist, den zweiten Adressbereich aus und schaltet die Durchfahrtsbeleuchtung entsprechend des Inhalts des ausgelesenen Adressbereichs aus. Noch im gleichen, Zyklus schreiben die beiden Programmmodule 986 und 988 eine Meldung über die vollzogene Statusänderung der jeweiligen Beleuchtungen A, D in weitere Adressbereiche des Datenspeichers 108, die vom Funktions-Programmmodul 984 (in einem hier nicht gezeigten Schritt „6“) ausgelesen werden können.First, in response to the opening of an emergency niche door (NN) at the beginning of a cycle, a device program module 980 assigned to the door determines that the door has been opened and, for example, the parameter value "opened" is stored in the address range of the data memory provided for the "open status" parameter of this door (step "1"). Optionally, this step can include the implementation of plausibility checks or data preprocessing steps. In a later step "2" within the current PLC cycle, the function program module 984 reads the status value of this door from the address range assigned to this status value and this door in an assignment configuration. The function program module 984 contains an event effect matrix in which the reaction "Activate full lighting of the adaptation lighting A, switch off the passage lighting D" is stored for the event "door is open". In accordance with this matrix, in the same cycle, in step “3,” the program module 984 writes a result value indicating that the adaptation lighting should be 100% activated into a first address range and another result value indicating that the passage lighting should be switched off into a second address range assigned to this further result. As the cycle continues, the program module 986, which is assigned to the adaptation lighting A, reads out the first address range in a step “4” not shown here and switches the adaptation lighting on according to the contents of the read address range. Also in the same cycle, in step “5” not shown here, the program module 988, which is assigned to the passage lighting D, reads out the second address range and switches the passage lighting off according to the contents of the read address range. In the same cycle, the two program modules 986 and 988 write a message about the completed status change of the respective lighting A, D into further address areas of the data memory 108, which can be read out by the function program module 984 (in a step “6” not shown here).

Das Programmmodul 984 wertet sodann diese beiden Statusänderungen aus und speichert einen Ergebniswert, dass nun beide Beleuchtungen A, D ihren Status geändert haben, in einen weiteren Adressbereich, dessen Inhalt von dem weiteren Programmmodul 982 („Betriebsart Beleuchtung Haupttunnel“ - BABEH) gelesen und verarbeitet wird. Dieses Programmmodul 982 verfügt über eine Schnittstelle zur Kontrollsoftware der Leitebene (z.B. in Form von einem Adressbereich des Datenspeichers 108, der sowohl der Kontrollsoftware als auch dem Programmmodul 982 bekannt ist und für den Datenaustausch verwendet wird). Die Statusänderung sowohl der Tür als auch der beiden Beleuchtungen A, D in Reaktion auf das Öffnen der Tür kann nun von der Kontrollsoftware der Leitstelle visualisiert werden.The program module 984 then evaluates these two status changes and saves a result value that both lights A, D have now changed their status in another address area, the content of which is read and processed by the other program module 982 (“Main tunnel lighting operating mode” - BABEH). This program module 982 has an interface to the control software of the control level (e.g. in the form of an address area of the data memory 108, which is known to both the control software and the program module 982 and is used for data exchange). The status change of both the door and the two lights A, D in response to the door being opened can now be visualized by the control software of the control center.

12B zeigt eine GUI 901 der Leitebenen-Kontrollsoftware, welche die von dem Modul 982 ausgegebenen Parameterwerte liest und anzeigt, wenn die Beleuchtung im Haupttunnel sich im Modus „Ereignisbetrieb“ befindet. In Abhängigkeit der von verschiedenen Programmodulen erzeugten Parameterwerte werden verschiedene Meldungen bzw. Boxen innerhalb der GUI 901 optisch hervorgehoben, z.B. mittels eines Häkchens oder eines dynamisch neu gesetzten Farbwerts, der die Box bzw. die Meldung von den anderen Boxen bzw. Meldungen abhebt. 12B shows a GUI 901 of the control level control software, which reads and displays the parameter values output by the module 982 when the lighting in the main tunnel is in "event operation" mode. Depending on the parameter values generated by various program modules, various messages or boxes are optically highlighted within the GUI 901, e.g. by means of a check mark or a dynamically newly set color value that distinguishes the box or message from the other boxes or messages.

13 zeigt die Verwendung mehrerer Programmmodule eines Programms 120 für die Steuerung einer Brandlüftungsanlage eines Tunnels. Durch die Verwendung von vordefinierten Programmmodulen ist es möglich, ein einheitliches Brandlüftungskonzept für eine Vielzahl verschiedener Tunnel zu implementieren auch dann, wenn die Tunnel unterschiedlich lang sind und daher eine unterschiedliche Anzahl von Geräten umfassen. 13 shows the use of several program modules of a program 120 for controlling a fire ventilation system in a tunnel. By using predefined program modules, it is possible to implement a uniform fire ventilation concept for a large number of different tunnels, even if the tunnels are of different lengths and therefore contain a different number of devices.

Beispielsweise können die Tunnel als eine Sequenz von Abschnitten vordefinierter Länge, zum Beispiel 10 m, angesehen werden. In jedem Abschnitt ist eine bestimmte Menge an Geräten, zum Beispiel Sensoren zur Erfassung von Temperatur, Helligkeit, Verkehrslage bzw. sonstiger Geräte wie z.B. Anzeigen, Lichtquellen, Lüftungsklappen, Ventilatoren etc., enthalten. Den einzelnen Geräten und den zu ihnen korrespondierenden Programmmodulen kann eine Tunnelabschnittsnummer zugewiesen sein, die implizit somit auch eine Positionsangabe für das entsprechende Gerät enthält. Wenn Sensoren innerhalb eines bestimmten Tunnelabschnitts Anzeichen für ein Feuer erkennen, kann somit anhand der Abschnittskennung ermittelt werden, wo der Brandherd in dem Tunnel ist. Die Steuerung kann somit ortsabhängig für verschiedene Abschnitte des Tunnels unterschiedliche Reaktionen der einzelnen Geräte vorsehen. Wenn ein Tunnel 100 Abschnitte mit je einem Ventilator umfasst, hat das Programm entsprechend 100 Geräte-Programmmodule für diese Ventilatoren, die einzeln an- und abschaltbar sind.For example, the tunnels can be viewed as a sequence of sections of predefined length, for example 10 m. Each section contains a certain number of devices, for example sensors for detecting temperature, brightness, traffic situation or other devices such as displays, light sources, ventilation flaps, fans, etc. The individual devices and the program modules corresponding to them can be assigned a tunnel section number, which implicitly also contains a position indication for the corresponding device. If sensors detect signs of a fire within a certain tunnel section, the section identifier can be used to determine where the fire is in the tunnel. The control system can therefore provide different reactions from the individual devices for different sections of the tunnel depending on the location. If a tunnel has 100 sections, each with a fan, the program has 100 device program modules for these fans, which can be switched on and off individually.

Beispielsweise ist das Programm gemäß manchen Implementierungsvarianten dazu konfiguriert, dass in einem Brandfall alle Lüfter, die in der Nähe des Brandherdes sind (also zum Beispiel von dem Brandherd weniger als eine Maximaldistanz entfernt liegen), abgeschaltet oder in ihrer Geschwindigkeit reduziert werden. Dies kann dabei helfen, Luftverwirbelungen und eine Zerstörung einer stabilen Rauchschicht zu verhindern. Lüfter, die weiter von den Brand entfernt sind, können im Brandfall jedoch weiter betrieben und gegebenenfalls sogar angeschaltet oder beschleunigt werden, um die Kohlenmonoxidkonzentration und das damit einhergehende Vergiftungsrisiko zu verringern und/oder die Rauchschichtung unterhalb der Tunneldecke sicher aufrecht zu erhalten.For example, according to some implementation variants, the program is configured so that in the event of a fire, all fans that are close to the source of the fire (for example, less than a maximum distance from the source of the fire away) can be switched off or their speed reduced. This can help to prevent air turbulence and the destruction of a stable smoke layer. However, fans that are further away from the fire can continue to operate in the event of a fire and can even be switched on or accelerated if necessary in order to reduce the carbon monoxide concentration and the associated risk of poisoning and/or to safely maintain the smoke layer below the tunnel ceiling.

In dem hier gezeigten Beispiel geben die in Kreisen angegebenen Arbeitsschrittnummern 1 bis 9 die Reihenfolge der Ausführung bestimmter Arbeitsschritte bzw. der diese Schritte ausführenden Programmmodule innerhalb eines Zyklus wider. Beispielsweise speichert in einem Arbeitsschritt „1“ ein Linienbrandmelder-Programmmodul 1302 (LMZ) Temperaturmessdaten, die in allen Abschnitten eines Tunnels gemessen wurden, in einen hierfür reservierten Adressbereich des Datenspeichers 108. Wenn die Temperatur in einem beliebigen Tunnelabschnitt eine maximal zulässige Temperatur überschreitet, kann der entsprechende Tunnelabschnitt als Brandort erkannt werden. Das LMZ-Programmmodul 1302 kann zudem ein Warnsignal in den besagten oder einen anderen Adressbereich schreiben, um anzuzeigen, dass und wo ein Brand vorliegt.In the example shown here, the work step numbers 1 to 9 indicated in circles reflect the order in which certain work steps are carried out or the program modules that carry out these steps are carried out within a cycle. For example, in a work step "1", a line fire detector program module 1302 (LMZ) stores temperature measurement data that was measured in all sections of a tunnel in an address range of the data memory 108 reserved for this purpose. If the temperature in any tunnel section exceeds a maximum permissible temperature, the corresponding tunnel section can be identified as the location of a fire. The LMZ program module 1302 can also write a warning signal in the said or another address range to indicate that and where a fire is occurring.

Weiterhin dürfen die Strömungsmessungen in der Nähe des Brandortes nicht für die Berechnung der Luftströmung herangezogen werden, um Fehlergebnisse zu vermeiden. Daher wird z.B. hier die Strömungsmessung des zu Programmmodul „STR 1318“ korrespondierenden Strömungsmessgeräts in der Nähe des Brandortes vom LMZ Programmmodul im Arbeitsschritt „1“ für ungültig erklärt (13 rechts unten). Die vom Geräte-Programmmodul 1316 in einem später ausgeführten Arbeitsschritt „5“ berechnete, aktuelle Strömungsgeschwindigkeit wird dadurch ermittelt, dass das Programmmodul 1316 die Strömungsdaten der einzelnen Sensor-Programmmodule 120-1322 liest und zu einem Gesamtwert verrechnet, der als aktuelle Strömungsgeschwindigkeit in einem entsprechenden Adressbereich gespeichert wird. Der in dem vom STR-Programmmodul 1318 beschriebenen Adressbereich enthaltene Datenwert wird ignoriert, da dieser ungültig ist. Beispielsweise wurde von dem LMZ Modul 1302 ein Fehlerwert oder ein Datenwert in einem falschen Datentyp gespeichert, sodass ein lesendes Programmodul anhand des Datenwerts oder des Datentyps erkennen kann, dass der Datenwert ungültig ist.Furthermore, the flow measurements near the fire site must not be used to calculate the air flow in order to avoid incorrect results. Therefore, for example, the flow measurement of the flow meter corresponding to program module “STR 1318” near the fire site is declared invalid by the LMZ program module in work step “1” ( 13 bottom right). The current flow velocity calculated by the device program module 1316 in a later work step "5" is determined by the program module 1316 reading the flow data from the individual sensor program modules 120-1322 and calculating them to a total value, which is stored as the current flow velocity in a corresponding address range. The data value contained in the address range described by the STR program module 1318 is ignored because it is invalid. For example, the LMZ module 1302 stored an error value or a data value in an incorrect data type, so that a reading program module can recognize from the data value or the data type that the data value is invalid.

Die Geräte-Programmmodule „Induktivschleifen“ IS 1304 und 1306 speichern verschiedene Daten, die Aufschluss über die Dichte und/oder Geschwindigkeit des Verkehrs geben, z.B. radarbasierte Geschwindigkeitsdaten von Fahrzeugen oder die Ergebnisse der Auswertung von Kamerabildern, als Zwischenergebnisse in hierfür reservierte weitere Adressbereiche. Ein Geräte-Programmmodul 1308 („Stau“) verarbeitet in einem Arbeitsschritt „2“ die von den Programmmodulen 1304 und 1306 gespeicherten Daten, um ein aggregiertes Gesamtergebnis bezüglich der Frage zu berechnen, ob ein Stau vorliegt oder nicht. Wenn ein Stau vorliegt, sich also viele Menschen im Tunnel befinden, muss dies Einfluss auf die Reaktion der Brandlüftungsanlage auf einen Brand haben.The device program modules "inductive loops" IS 1304 and 1306 store various data that provide information about the density and/or speed of traffic, e.g. radar-based speed data from vehicles or the results of the evaluation of camera images, as intermediate results in additional address areas reserved for this purpose. A device program module 1308 ("traffic jam") processes the data stored by the program modules 1304 and 1306 in a work step "2" in order to calculate an aggregated overall result regarding the question of whether or not there is a traffic jam. If there is a traffic jam, i.e. there are a lot of people in the tunnel, this must influence the reaction of the fire ventilation system to a fire.

Das Brandlüftungs-Funktions-Programmmodul 1310 kann auf die vom LMZ-Programmmodul 1302 gespeicherten Temperaturdaten und Brandorte zugreifen.The fire ventilation function program module 1310 can access the temperature data and fire locations stored by the LMZ program module 1302.

In einem späteren Arbeitsschritt „3“ erstellt das Funktions-Programmmodul 1310, das das Brandlüftungsprogramm enthält, eine Priorisierungsliste der Ventilatoren. Die Liste legt fest, welche Ventilatoren in Reaktion auf das Erkennen eines Brandes ausgeschaltet und welche angeschaltet bzw. weiterbetrieben werden sollen. Beispielsweise soll der Strahlenventilator (SV) Nr. 3 angeschaltet werden. Das Programmmodul 1310 gibt der Lüftungsregelung einen entsprechenden Priorisierungsscore vor, z.B. den Wert „1“ in der Spalte „PRIO“ des Ventilators SV Nr. 3, und schreibt diesen in einen diesem Parameter und diesem Ventilator zugewiesenen Adressbereich des Datenspeichers. Die Ventilatoren SV 1 und SV 2 in der Nähe des Brandortes dürfen nicht verwendet werden und werden mit dem Wert „99“ in der Spalte PRIO vorbelegt.In a later step "3", the function program module 1310, which contains the fire ventilation program, creates a prioritization list of the fans. The list specifies which fans should be switched off in response to the detection of a fire and which should be switched on or continued to operate. For example, the jet fan (SV) No. 3 should be switched on. The program module 1310 gives the ventilation control a corresponding prioritization score, e.g. the value "1" in the "PRIO" column of the fan SV No. 3, and writes this into an address range of the data memory assigned to this parameter and this fan. The fans SV 1 and SV 2 near the fire site must not be used and are pre-assigned the value "99" in the PRIO column.

Weiterhin wird das Funktions-Programmmodul 1310, das das Brandlüftungsprogramm enthält, die Sollströmung für den vorliegenden Brandlüftungsfall vorgeben. Im Fall eines Staus (die Informationen hierfür liefert das Modul 1308 in Schritt „2“) wird ein niedrigerer Strömungswert als Sollwert für die Lüftung vorgegeben um eine stabile Rauchschichtung zur Selbstrettung der Tunnelbenutzer zu erzeugen. Im Fall dass kein Stau vorliegt, wird ein höherer Strömungswert vorgegeben. Der von dem Programmmodul 1310 berechnete Sollwert wird in einem dem Ergebnis-Parameter in einer Zuweisungskonfiguration zugewiesenen Adressbereich des Datenspeichers gespeichert.Furthermore, the function program module 1310, which contains the fire ventilation program, will specify the target flow for the current fire ventilation case. In the case of a traffic jam (the information for this is provided by the module 1308 in step "2"), a lower flow value is specified as the target value for the ventilation in order to create a stable smoke layer for the self-rescue of the tunnel users. In the case of no traffic jam, a higher flow value is specified. The target value calculated by the program module 1310 is stored in an address range of the data memory assigned to the result parameter in an assignment configuration.

Damit nicht nur die Priorität, also die Reihenfolge der An- und -Abschaltung der Ventilatoren, sondern auch die Ventilationsstärke der aktuellen Brandsituation angepasst werden kann, liest im Arbeitsschritt „4“ das Funktions-Programmmodul 1312 für die Lüftungsregelung die im Schritt „3“ berechnete Priorisierungsliste (oder andere Daten, die direkt oder indirekt Aufschluss über die Position des Brandherds im Tunnel geben) aus der entsprechenden Adresse. Weiterhin wird der ermittelte Sollströmungswert vom Programmmodul gelesen.In order to be able to adapt not only the priority, i.e. the order in which the fans are switched on and off, but also the ventilation intensity to the current fire situation, in step “4” the function program module 1312 for ventilation control reads the prioritization list calculated in step “3” (or other data that directly or indirectly provides information about the position of the fire source in the tunnel) from the corresponding address. Furthermore, the determined target flow value is read by the program module.

Im Arbeitsschritt „6“ liest das Programmmodul 1312 zudem aktuelle Umweltdaten (z.B. Windeinfluss auf die Tunnelportale), die vom Geräte-Programmmodul 1314 bereitgestellt wurden, und aggregierte Strömungsdaten der Luftströmung im Tunnel, die vom Programmmodul 1316 berechnet wurden, aus den entsprechenden Adressbereichen. Aus all diesen Werten berechnet das Funktions-Programmmodul 1312 für jeden Strömungsventilator im Tunnel einen Sollwert für die Lüftungsstärke, wobei 100 die maximal mögliche Stärke angibt. Die berechneten Sollwerte der Ventilatoren werden im Arbeitsschritt „7“ in die entsprechenden Adressbereiche gespeichert und die Prioritätsliste dadurch vervollständigt.In step “6”, the program module 1312 also reads current environmental data (e.g. wind influence on the tunnel portals) provided by the device program module 1314 and aggregated flow data of the air flow in the tunnel calculated by the program module 1316 from the corresponding address ranges. From all of these values, the function program module 1312 calculates a setpoint value for the ventilation intensity for each flow fan in the tunnel, with 100 indicating the maximum possible intensity. The calculated setpoint values of the fans are saved in the corresponding address ranges in step “7”, thereby completing the priority list.

Beispielsweise berechnet das Funktions-Programmmodul 1312 für die Lüftungsregelung in Arbeitsschritt „7“ für den Strahlenventilator Nr. 3 einen entsprechenden Zielwert für die Belüftungsstärke von „100“. Dieser Wert (siehe Spalte „BF“ des Ventilators SV Nr. 3) wird in einen diesem Parameter und dem Ventilator Nr. 3 zugewiesenen Adressbereich des Datenspeichers 108 geschrieben.For example, the functional program module 1312 for ventilation control calculates in step “7” for the jet fan No. 3 a corresponding target value for the ventilation intensity of “100”. This value (see column “BF” of the fan SV No. 3) is written into an address range of the data memory 108 assigned to this parameter and to the fan No. 3.

In einem weiteren Arbeitsschritt „8“ des gleichen Zyklus wird der Sollwert „100“ für den Strahlenventilator SV Nr. 3 von dem Geräte-Programmmodul 1330 eben dieses Lüfters SV3 aus dem besagten Adressbereich gelesen und der Lüfter gestartet. Das Programmmodul 1330 schreibt im nächsten Arbeitsschritt „9“ sodann die tatsächlich erreichte Geschwindigkeit (Ist-Wert) in einen hierfür reservierten (zugewiesenen) weiteren Adressbereich. Wenn ein Lüfter gestartet wird, beginnt das entsprechende Geräte-Programmmodul 1330 zudem eine Zeiterfassung und schreibt und aktualisiert die bisher gemessene Laufzeit des Lüfters in einen weiteren, hierfür reservierten Adressbereich.In a further work step “8” of the same cycle, the target value “100” for the jet fan SV No. 3 is read from the said address range by the device program module 1330 of this same fan SV3 and the fan is started. In the next work step “9”, the program module 1330 then writes the speed actually achieved (actual value) into another address range reserved (assigned) for this purpose. When a fan is started, the corresponding device program module 1330 also begins time recording and writes and updates the previously measured running time of the fan into another address range reserved for this purpose.

Auch die Geräte-Programmmodule 1326, 1328 und 1332 lesen bei jedem Zyklus Steuerdaten bzw. Sollwerte aus den ihnen jeweils zugeordneten Adressbereichen und starten oder stoppen ihren jeweiligen Ventilator entsprechend.The device program modules 1326, 1328 and 1332 also read control data or setpoints from the address ranges assigned to them in each cycle and start or stop their respective fans accordingly.

BezugszeichenlisteList of reference symbols

100100
VerkehrswegetunnelsteuerungssystemTraffic tunnel control system
101101
SPS SteuerungPLC control
102102
LeitebeneManagement level
104104
KontrollsoftwareControl software
106106
Prozessor (en)Processor(s)
108108
DatenspeicherData storage
110110
ProgrammspeicherProgram memory
112112
EingangsabbildspeicherbereichInput image storage area
114114
ZwischenergebnisspeicherIntermediate result storage
116116
AusgangsabbildspeicherOutput image memory
118118
MesswertpufferspeicherMeasured value buffer memory
120120
SPS ProgrammPLC program
122122
FeldbusFieldbus
124124
Tunneltunnel
126126
Kameracamera
128128
Ventilatorfan
130130
Ventilatorfan
132132
TemperatursensorTemperature sensor
134134
Sensor für CO-KonzentrationSensor for CO concentration
136136
Türdoor
138138
Türdoor
302302
Funktions-ProgrammmoduleFunctional program modules
304304
Geräte-ProgrammmoduleDevice program modules
308308
Basis-ProgrammmoduleBasic program modules
309309
Adresseaddress
310310
Adresseaddress
312312
Adresseaddress
314314
Adresseaddress
316-320316-320
Basis-ProgrammmodulBasic program module
322-328322-328
Funktions-ProgrammmodulFunction program module
330-336330-336
Geräte-ProgrammmoduleDevice program modules
402402
GeräteDevices
403403
Adresseaddress
404-416404-416
Geräte-ProgrammmoduleDevice program modules
508508
Funktions-ProgrammmodulFunction program module
602602
Funktions-ProgrammmodulFunction program module
606606
Geräte-ProgrammmodulDevice program module
702702
Geräte-ProgrammmodulDevice program module
704-708704-708
Funktions-ProgrammmoduleFunctional program modules
710710
KonfigurationsdatenConfiguration data
712712
Konfigurations-ProgrammmodulConfiguration program module
802802
Eingangs-ProgrammmodulInput program module
804804
Ausgangs-ProgrammmodulOutput program module
806806
Geräte-ProgrammmoduleDevice program modules
901901
GUIGUI
930930
Geräte-Programmmodul VollbeleuchtungDevice program module full lighting
932932
Geräte-Programmmodul SignalanzeigeDevice program module signal display
934934
Funktions-Programmmodul mit EWMFunction program module with EWM
936936
Funktions-ProgrammmoduleFunctional program modules
938938
Geräte-Programmmodul für TürDevice program module for door
952952
Geräte-Programmmodul VollbeleuchtungDevice program module full lighting
954954
Geräte-Programmmodul SignalausgabeDevice program module signal output
956956
Funktions-ProgrammmoduleFunction program modules
958958
Funktions-Programmmodul mit EWMFunction program module with EWM
959959
Geräte-Programmmodul für TürDevice program module for door
980980
Geräte-Programmmodul für TürDevice program module for door
982982
Funktions-Programmmodul für Kommunikation mit KontrollsoftwareFunctional program module for communication with control software
984984
Funktions-Programmmodul mit EWMFunction program module with EWM
986986
Geräte-Programmmodul für AdaptationsbeleuchtungDevice program module for adaptation lighting
988988
Geräte-Programmmodul für DurchfahrtsbeleuchtungDevice program module for passage lighting
13021302
Geräte-Programmmodul für TemperaturmessungDevice program module for temperature measurement
13041304
Geräte-Programmmodul für StausensorDevice program module for traffic jam sensor
13061306
Geräte-Programmmodul für StausensorDevice program module for traffic jam sensor
13081308
Funktions-Programmmodul für StaudatenverarbeitungFunctional program module for traffic jam data processing
13101310
Funktions-Programmmodul für BrandlüftungFunctional program module for fire ventilation
13121312
Funktions-Programmmodul für LüftungsregelungFunction program module for ventilation control
13141314
Geräte-Programmmodul für UmweltdatensensorDevice program module for environmental data sensor
13161316
Geräte-Programmmodul für StrömungssensorenDevice program module for flow sensors
1318-13221318-1322
Geräte-Programmmodule für StrömungssensorenDevice program modules for flow sensors
13241324
Geräte-Programmmodul für Linienbrandmeldezentrale-Programmmodul (LMZ--Programmmodul)Device program module for line fire alarm control panel program module (LMZ program module)
1326-13321326-1332
Geräte-Programmmodule für VentilatorenDevice program modules for fans

Claims (22)

Verkehrswegetunnelsteuerungssystem (100) für einen Verkehrswegetunnel (124), insbesondere für einen Straßen- oder Eisenbahntunnel oder Schiffstunnel, mit: - einer speicherprogrammierbaren Steuerung (101); und - mehreren Automatisierungsgeräten (126-138), die über einen Feldbus (122) oder ein Netzwerk mit der speicherprogrammierbaren Steuerung gekoppelt sind, wobei die speicherprogrammierbare Steuerung zur Erfassung eines Eingangsabbilds von den Automatisierungsgeräten, zur Verarbeitung des Eingangsabbilds und zur Erzeugung eines Ausgangsabbilds durch Ausführung eines Programms (120) und zur Ausgabe des Ausgangsabbilds für die Ansteuerung der Automatisierungsgeräte konfiguriert ist, wobei die Erfassung des Eingangsabbilds, die Ausführung des Programms und die Ausgabe des Ausgangsabbilds zyklisch wiederholend erfolgt, wobei das Programm aus einer Sequenz von Programmmodulen besteht, wobei zumindest ein erstes der Programmmodule einem Adressbereich eines Zwischenergebnisspeichers (114) zugeordnet ist, um dort ein Zwischenergebnis zu speichern, und wobei zumindest ein zweites der Programmmodule demselben Adressbereich des Zwischenergebnisspeichers zugeordnet ist, um von dort das Zwischenergebnis zu lesen und weiterzuverarbeiten, wobei das Speichern des Zwischenergebnisses durch das erste Programmodul, und das Lesen und die Weiterverarbeitung des Zwischenergebnisses durch das zweite Programmodul in demselben Zyklus erfolgt.Traffic tunnel control system (100) for a traffic tunnel (124), in particular for a road or rail tunnel or ship tunnel, comprising: - a programmable logic controller (101); and - a plurality of automation devices (126-138) which are coupled to the programmable logic controller via a field bus (122) or a network, wherein the programmable logic controller is configured to capture an input image from the automation devices, to process the input image and to generate an output image by executing a program (120) and to output the output image for controlling the automation devices, wherein the capture of the input image, the execution of the program and the output of the output image are repeated cyclically, wherein the program consists of a sequence of program modules, wherein at least a first of the program modules is assigned to an address range of an intermediate result memory (114) in order to store an intermediate result there, and wherein at least a second of the program modules is assigned to the same address range of the intermediate result memory in order to read the intermediate result from there and to process it further, where the intermediate result is stored by the first program module, and the reading and the further processing of the intermediate result is carried out by the second program module in the same cycle. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, wobei das Programm frei ist von Programmschleifen innerhalb eines SPS-Zyklus.The traffic route tunnel control system according to one of the preceding claims, wherein the program is free of program loops within a PLC cycle. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei die Zuweisung des ersten, zweiten und vorzugsweise weiteren der Programmodule zu Adressbereichen des Zwischenergebnisspeichers auf einer in den jeweiligen Programmodulen enthaltenen Zuweisungskonfiguration beruht, - wobei eine Zuweisungskonfiguration dem sie umfassenden Programmodul jeweils ein oder mehrere Parameter zuweist und jedem dieser Parameter einen Adressbereich des Zwischenergebnisspeichers zuweist, der zur Speicherung mindestens eines dem Parameter entsprechenden Parameterwerts bestimmt ist, - wobei die Zuweisungskonfiguration es zumindest einigen der Programmmodule jeweils ermöglicht, einen auf einen bestimmten Parameter bezogenen Parameterwert als Zwischenergebnis während der Ausführung eines Zyklus zu speichern, sodass es noch im gleichen Zyklus aus diesem Adressbereich durch ein anderes Programmodul gelesen werden kann.The traffic route tunnel control system according to one of the preceding claims, - wherein the allocation of the first, second and preferably further program modules to address areas of the intermediate result memory is based on an allocation configuration contained in the respective program modules, - wherein an allocation configuration allocates one or more parameters to the program module comprising it and each of these parameters allocates an address range of the intermediate result memory which is intended for storing at least one parameter value corresponding to the parameter, - wherein the allocation configuration enables at least some of the program modules to store a parameter value related to a specific parameter as an intermediate result during the execution of a cycle, so that it can be read from this address range by another program module in the same cycle. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei die Zuweisungskonfiguration von einem oder mehreren der Programmodule eine Zuweisung eines aus einer Vielzahl vordefinierter Datentypen an zumindest einen der Adressbereiche enthält; - wobei zumindest einige der Programmmodule jeweils dazu konfiguriert sind: ◯ beim Lesen eines Parameterwerts von einem Adressbereich des Zwischenergebnisspeichers zu prüfen, ob der Datentyp des gelesenen Datenwerts identisch ist zu dem Datentyp, der diesem Adressbereich gemäß der Zuweisungskonfiguration dieses Programmoduls zugewiesen ist; und ◯ in Reaktion auf die Feststellung, dass die Datentypen nicht identisch sind, das Ergebnis der Nicht-Identität in einen weiteren Adressbereich des Zwischenergebnisspeichers zu speichern.The traffic route tunnel control system according to one of the preceding claims, - wherein the assignment configuration of one or more of the program modules contains an assignment of one of a plurality of predefined data types to at least one of the address ranges; - wherein at least some of the program modules are each configured to: ◯ when reading a parameter value from an address range of the intermediate result memory, check whether the data type of the read data value is identical to the data type assigned to this address range according to the assignment configuration of this program module; and ◯ in response to the determination that the data types are not identical, store the result of the non-identity in another address range of the intermediate result memory. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei die Steuerung so konfiguriert ist, dass das gesamte Programm mit allen Programmmodulen in einem Arbeitsspeicher der Steuerung gespeichert wird, - wobei zumindest eines der Programmmodule des Programms dazu konfiguriert ist, einen Wert eines Parameters von einem diesem Parameter zugeordneten Adressbereich des Zwischenergebnisspeichers zu lesen und zu verarbeiten, um das Vorliegen eines Ereignisses in dem Tunnel oder in einem der Automatisierungsgeräte zu erkennen, und - wobei das zumindest eine Programmmodul dazu konfiguriert ist, ein Ergebnis zu erzeugen, welches das Vorliegen dieses Ereignisses anzeigt und/oder welches zur Anpassung der Steuerung des Verkehrswegetunnels in Reaktion auf dieses Ereignis dient.The traffic route tunnel control system according to one of the preceding claims, - wherein the controller is configured such that the entire program with all program modules is stored in a working memory of the controller, - wherein at least one of the program modules of the program is configured to read and process a value of a parameter from an address range of the intermediate result memory assigned to this parameter in order to detect the presence of an event in the tunnel or in one of the automation devices, and - wherein the at least one program module is configured to generate a result which indicates the presence of this event and/or which serves to adapt the control of the traffic route tunnel in response to this event. Das Verkehrswegetunnelsteuerungssystem nach Anspruch 5, - wobei das Ereignis ausgewählt ist aus einer Gruppe umfassend: ◯ eine Rauchentwicklung, ◯ ein Brand, ◯ eine Überschreitung eines festgelegten Kohlenmonoxidgrenzwerts, ◯ ein Stau, ◯ ein Falschfahrer, ◯ ein stehendes Fahrzeug in einer Pannenbucht, ◯ ein Hindernis oder Gegenstände auf der Fahrbahn, ◯ eine Person im Verkehrswegetunnel, ◯ das Öffnen einer Notrufnischentür, ◯ ein Verkehrsunfall-Notruf, ◯ das Betätigen eines Tasters für behinderte Personen, ◯ die Entnahme eines Feuerlöschers, ◯ das Öffnen einer Fluchttür, ◯ ein Ausfall oder eine Störung eines der Geräte im Verkehrswegetunnel, ◯ ein Ausfall eines Übertragungsweges zur ständig besetzten Stelle, ◯ ein Energieausfall im Verkehrswegetunnel, - und/oder wobei das Ergebnis ausgewählt ist aus einer Gruppe umfassend: ◯ eine Spezifikation von Art, Ort und/oder Stärke des Ereignisses; ◯ ein Steuersignal, das dazu konfiguriert ist, eines oder mehrere der Geräte in einen Betriebsmodus zu versetzen, der dazu geeignet ist, die Stärke des Ereignisses oder seiner Folgen zu begrenzen und/oder abzuschwächen.The traffic tunnel control system according to Claim 5 , - where the event is selected from a group comprising: ◯ smoke development, ◯ a fire, ◯ an exceedance of a specified carbon monoxide limit, ◯ a traffic jam, ◯ a wrong-way driver, ◯ a stationary vehicle in a breakdown lane, ◯ an obstacle or objects on the road, ◯ a person in the traffic tunnel, ◯ the opening of an emergency call niche door, ◯ a traffic accident emergency call, ◯ the pressing of a button for disabled people, ◯ the removal of a fire extinguisher, ◯ the opening of an escape door, ◯ a failure or malfunction of one of the devices in the traffic tunnel, ◯ a failure of a transmission path to the permanently manned location, ◯ a power failure in the traffic tunnel, - and/or where the result is selected from a group comprising: ◯ a specification of the type, location and/or severity of the event; ◯ a control signal configured to place one or more of the devices in an operating mode suitable to limit and/or mitigate the severity of the event or its consequences. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, wobei die mehreren Programmmodule individuell kompilierbar und einsetzbar (deploybar) sind.The traffic route tunnel control system according to one of the preceding claims, wherein the plurality of program modules are individually compilable and deployable. Das Verkehrswegetunnelsteuerungssystem nach einem der Ansprüche, wobei ein oder mehrere der Programmmodule eine Schnittstelle zu einer Anlagenleitebenen-Kontrollsoftware (104) in Form von vordefinierten und der Anlagenleitebenen-Kontrollsoftware bekannten Adressbereichen des Zwischenergebnisspeichers haben und dazu konfiguriert sind, über die Schnittstelle einen von dem Programmmodul berechneten Parameterwert an die Anlagenleitebenen-Kontrollsoftware zu übermitteln und/oder einen Steuerbefehl von der Anlagenleitebenen-Kontrollsoftware zu erhalten.The traffic route tunnel control system according to one of the claims, wherein one or more of the program modules have an interface to a system control level control software (104) in the form of predefined address ranges of the intermediate result memory known to the system control level control software and are configured to transmit a parameter value calculated by the program module to the system control level control software via the interface and/or to receive a control command from the system control level control software. Das Verkehrswegetunnelsteuerungssystem nach einem der Ansprüche, wobei zumindest einige der Programmmodule Geräte-Programmmodule sind, wobei ein Geräte-Programmmodul ein Programmmodul ist, das zumindest einem der Automatisierungsgeräte zugeordnet ist und dazu konfiguriert ist, einen oder mehrere auf dieses zumindest eine Gerät bezogene Parameter zu verarbeiten, von dem Zwischenergebnisspeicher zu lesen und/oder in den Zwischenergebnisspeicher zu schreiben.The traffic route tunnel control system according to one of the claims, wherein at least some of the program modules are device program modules, wherein a device program module is a program module that is assigned to at least one of the automation devices and is configured to process, read from and/or write to the intermediate result memory one or more parameters related to this at least one device. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, wobei ein oder mehrere der Programmmodule jeweils dazu konfiguriert sind, Sensor- und/oder Statusdaten mehrerer der Geräte von vordefinierten, diesen Geräten zugewiesenen Adressbereichen des Zwischenergebnisspeichers zu lesen, zu aggregieren und den aggregierten Wert als aggregiertes Zwischenergebnis in einen weiteren vordefinierten Adressbereich innerhalb des Zwischenergebnisspeichers zu speichern, sodass während des Zyklus später ausgeführte Programmmodule das aggregierte Zwischenergebnis lesen und verarbeiten können.The traffic tunnel control system according to one of the preceding claims, wherein one or more of the program modules are each configured to receive sensor and/or status data from several of the devices from predefined address ranges of the intermediate result memory assigned to these devices, to aggregate them and to store the aggregated value as an aggregated intermediate result in another predefined address range within the intermediate result memory so that program modules executed later during the cycle can read and process the aggregated intermediate result. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, wobei zumindest einige der Programmmodule Funktions-Programmmodule sind, wobei ein Funktions-Programmmodul dazu konfiguriert ist: - Parameterwerte, die in einem dem Parameter zugewiesenen Adressbereich innerhalb des Zwischenergebnisspeichers und/oder eines Eingangsabbildspeicherbereichs gespeichert sind, zu lesen; - unter Verwendung der gelesenen Parameterwerte Steuerungsdaten zur Steuerung zumindest eines der Automatisierungsgeräte zu berechnen; und - die berechneten Steuerungsdaten in einen dem zu steuernden Automatisierungsgeräts zugewiesene Adressbereich innerhalb des Ausgangsabbilds zu speichern, um zumindest eine Funktion des dem Funktions-Programmmodul zugeordneten Automatisierungsgeräts zu steuern.The traffic route tunnel control system according to one of the preceding claims, wherein at least some of the program modules are function program modules, wherein a function program module is configured to: - read parameter values stored in an address range assigned to the parameter within the intermediate result memory and/or an input image memory area; - calculate control data for controlling at least one of the automation devices using the read parameter values; and - store the calculated control data in an address range assigned to the automation device to be controlled within the output image in order to control at least one function of the automation device assigned to the function program module. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei nur ein einziges (802) der Programmmodule des Programms dazu konfiguriert ist, bei der Ausführung eines Zyklus der Programmausführung das Eingangsabbild zu lesen; - wobei nur ein einziges (804) der Programmmodule des Programms dazu konfiguriert ist, bei der Ausführung des Zyklus der Programmausführung das Ausgangsabbild zu schreiben; - wobei alle übrigen Programmmodule des Programms ihre Eingangsdaten aus vordefinierten Adressbereichen des Zwischenergebnisspeichers lesen und in vordefinierte weitere Adressbereiche des Zwischenergebnisspeichers schreiben; und - wobei vorzugsweise das Verkehrswegetunnelsteuerungssystem eine Nutzerschnittstelle umfasst, die es einem Nutzer zur Laufzeit des Programms ermöglicht, den Betriebs des Programms vom einem Normalbetriebsmodus in den Testbetriebsmodus umzustellen, indem das einzige Programmodul, das im Normalbetriebsmodus das Eingangsabbild aus dem Eingangsabbildspeicherbereich (112) liest, dazu veranlasst wird, Testeingangsabbilddaten aus einem anderen Speicherbereich des Datenspeichers zu lesen, und indem das einzige Programmodul, das im Normalbetriebsmodus das Ausgangsabbild in den Ausgangsabbildspeicherbereich (116) schreibt, dazu veranlasst wird, das auf Basis der Testeingangsabbilddaten berechnete Testausgangsabbild in einen anderen Datenspeicher oder einen anderen Adressbereich des Datenspeichers zu schreiben als in den für die Speicherung des Ausgangsabbilds bestimmten Datenspeicher oder Speicherbereich.The traffic route tunnel control system according to one of the preceding claims, - wherein only a single one (802) of the program modules of the program is configured to read the input image when executing a cycle of the program execution; - wherein only a single one (804) of the program modules of the program is configured to write the output image when executing the cycle of the program execution; - wherein all other program modules of the program read their input data from predefined address areas of the intermediate result memory and write them to predefined further address areas of the intermediate result memory; and - wherein the traffic route tunnel control system preferably comprises a user interface which enables a user, during the runtime of the program, to switch the operation of the program from a normal operating mode to the test operating mode by causing the only program module which reads the input image from the input image storage area (112) in the normal operating mode to read test input image data from another storage area of the data memory, and by causing the only program module which writes the output image into the output image storage area (116) in the normal operating mode to write the test output image calculated on the basis of the test input image data into another data memory or another address area of the data memory than into the data memory or storage area intended for storing the output image. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, wobei die Geräte ausgewählt sind aus einer Gruppe umfassend: - Tunnellüftungsgerät, insbesondere Strahlventilator, Axialventilator, Absaugklappe; - Temperatursensor; - Beleuchtung, insbesondere Einfahrtsbeleuchtung, Durchfahrtsbeleuchtung, Notbeleuchtung, Fluchtweghinweisbeleuchtung; - Kamera; - Beleuchtungssensor, insbesondere Leuchtdichtesensor, Helligkeitssensor; - Sensor für die Sichttrübung im Tunnel; - Sensor für die Rauchdetektion im Tunnel; - Luftfeuchtigkeitssensor; - Luftgeschwindigkeitssensor; - Lautstärkemessgerät; - Meßquerschnitt für die Verkehrsstärkeerfassung; - Anzeigequerschnitt für die Darstellung von Verkehrszeichen nach StVO; - Steuerungseinheit für das Öffnen und Schließen von Flucht- und Wartungstüren; - Sensor bezüglich des geöffnet-geschlossen-Status von Türen und Toren; - Sensor bezüglich des Status einer Beleuchtung; - Einheit für die Erzeugung von Stör- und Betriebsmeldungen; - Sicherheitstechnisches Gerät, insbesondere Feuerlöschanlage, Alarmanlage, Brandmeldeanlage; - Stromverteilungs- und Überwachungsgerät.The traffic route tunnel control system according to one of the preceding claims, wherein the devices are selected from a group comprising: - tunnel ventilation device, in particular jet fan, axial fan, suction flap; - temperature sensor; - lighting, in particular entrance lighting, passage lighting, emergency lighting, escape route information lighting; - camera; - lighting sensor, in particular luminance sensor, brightness sensor; - sensor for visibility in the tunnel; - sensor for smoke detection in the tunnel; - humidity sensor; - air speed sensor; - volume meter; - measuring cross-section for traffic volume detection; - display cross-section for the display of traffic signs in accordance with the StVO; - control unit for opening and closing escape and maintenance doors; - sensor for the open-closed status of doors and gates; - sensor for the status of lighting; - unit for generating fault and operating messages; - safety device, in particular fire extinguishing system, alarm system, fire detection system; - Power distribution and monitoring device. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei die die Steuerung dazu konfiguriert sind, zumindest eines der Programmodule nur bei der n-ten Programmausführung auszuführen, wobei n eine Ganzzahl größer 1 ist.The traffic route tunnel control system according to one of the preceding claims, - wherein the controller is configured to execute at least one of the program modules only during the nth program execution, where n is an integer greater than 1. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei zumindest eines der Programmmodule eine Ereignis-Wirk-Matrix („causeeffect-matrix“) umfasst, - wobei das zumindest eine Programmmodul dazu konfiguriert ist, zumindest einen Teil des Ausgangsabbilds gemäß der Ereignis-Wirk-Matrix zu erzeugen, um ein oder mehrere der Geräte gemäß der Ereignis-Wirk-Matrix zu steuern.The traffic route tunnel control system according to one of the preceding claims, - wherein at least one of the program modules comprises an event-effect matrix (“cause-effect matrix”), - wherein the at least one program module is configured to generate at least a portion of the output image according to the event-effect matrix in order to control one or more of the devices according to the event-effect matrix. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, ferner umfassend eine Anlagenleitebenen-Kontrollsoftware (104) zur Visualisierung und/oder Kontrolle des Programmablaufs des Programms.The traffic route tunnel control system according to one of the preceding claims, further comprising a system control level control software (104) for visualizing and/or controlling the program flow of the program. Das Verkehrswegetunnelsteuerungssystem nach Ansprüchen 15 und 16, - wobei das zumindest eine Programmmodul mit der Ereignis-Wirkmatrix eine Schnittstelle zu der Anlagenleitebenen-Kontrollsoftware (104) beinhaltet, wobei die Schnittstelle es der Anlagenleitebenen-Kontrollsoftware ermöglicht, zumindest eine Funktion des Programms mit zumindest einer Kontrollfunktion zu steuern; - wobei die Ereignis-Wirk-Matrix dazu konfiguriert ist, die zumindest eine Kontrollfunktion der Anlagenleitebenen-Kontrollsoftware so zu überschreiben, dass eine tunnelspezifische Anpassung der Funktionalität der Anlagenleitebenen-Kontrollsoftware auf den Typ und die Anzahl der in dem Tunnel vorhandenen Automatisierungsgeräte erfolgt.The traffic tunnel control system according to Claims 15 and 16 , - wherein the at least one program module with the event effect matrix includes an interface to the plant control level control software (104), wherein the interface enables the plant control level control software to control at least one function of the program with at least one control function; - wherein the event effect matrix is configured to overwrite the at least one control function of the plant control level control software such that a tunnel-specific adaptation of the functionality of the plant control level control software to the type and number of automation devices present in the tunnel takes place. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche 16-17, - wobei die Anlagenleitebenen-Kontrollsoftware mehrere Programmmodule umfasst; - wobei zumindest einige der Programmodule der Anlagenleitebenen-Kontrollsoftware funktional zu jeweils einem der Programmmodule des Programms korrespondieren dahingehend, dass das Programmodul der Anlagenleitebenen-Kontrollsoftware dazu konfiguriert ist, gerätebezogene Parameterwerte, die von dem Programmmodul verarbeitet werden, graphisch zu repräsentieren und auf einer Anzeige auszugeben; - wobei die Sequenz und/oder Natur der angezeigten gerätebezogenen Parameterwerte von der Abfolge und Art der Programmmodule im Programm abhängt.The traffic tunnel control system according to one of the previous Claims 16 - 17 , - wherein the plant management level control software comprises a plurality of program modules; - wherein at least some of the program modules of the plant management level control software functionally correspond to one of the program modules of the program in that the program module of the plant management level control software is configured to graphically represent device-related parameter values that are processed by the program module and to output them on a display; - wherein the sequence and/or nature of the device-related parameter values displayed depends on the sequence and type of program modules in the program. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, - wobei die Programmmodule dazu konfiguriert sind, untereinander Daten über vordefinierte Adressbereiche des Zwischenergebnisspeichers auszutauschen; und/oder - wobei die Programmmodule und die Anlagenleitebenen-Kontrollsoftware des Verkehrswegetunnelsteuerungssystems nach einem der Ansprüche 16-18 dazu konfiguriert sind, untereinander Daten über vordefinierte Adressbereiche des Zwischenergebnisspeichers auszutauschen.The traffic route tunnel control system according to one of the preceding claims, - wherein the program modules are configured to exchange data with each other via predefined address ranges of the intermediate result memory; and/or - wherein the program modules and the system management level control software of the traffic route tunnel control system according to one of the Claims 16 - 18 are configured to exchange data with each other via predefined address ranges of the intermediate result memory. Das Verkehrswegetunnelsteuerungssystem nach einem der vorigen Ansprüche, ferner umfassend: - eine Energieversorgung; wobei sich die Energieversorgung in dem Tunnel und/oder in räumlicher Nähe zu dem Tunnel befindet und das Verkehrswegetunnelsteuerungssystem dazu konfiguriert ist, bei Notfallsituationen autonom und autark auch in Abwesenheit externer Steuerungskommandos und externer Energiequellen die Geräte so zu steuern, dass die Notfallsituation behoben oder begrenzt wird.The traffic route tunnel control system according to one of the preceding claims, further comprising: - a power supply; wherein the power supply is located in the tunnel and/or in spatial proximity to the tunnel and the traffic route tunnel control system is configured to control the devices autonomously and self-sufficiently in emergency situations, even in the absence of external control commands and external energy sources, so that the emergency situation is eliminated or limited. Verwendung eines Verkehrswegetunnelsteuerungssystem nach einem der Ansprüche 1-20 zur Steuerung eines Verkehrswegetunnels (124).Use of a traffic tunnel control system according to one of the Claims 1 - 20 for controlling a traffic tunnel (124). Eine Programmbibliothek für die Erzeugung eines Programms (120) für die Steuerung eines Verkehrswegetunnels (124) mit mehreren Automatisierungsgeräten, wobei die Programmbibliothek umfasst: - eine Vielzahl vordefinierter Programmmodulen, die zu einem Programm zur Steuerung eines Verkehrswegetunnels (124) assemblierbar sind, ◯ wobei ein oder mehrere der Programmodule zur Verarbeitung eines Eingangsabbilds der Automatisierungsgeräte und zur Erzeugung eines Ausgangsabbilds für die Ansteuerung der Automatisierungsgeräte konfiguriert ist, ◯ wobei zumindest ein erstes der Programmmodule einem Adressbereich eines Zwischenergebnisspeichers (114) zugeordnet ist, um dort ein Zwischenergebnis zu speichern, und ◯ wobei zumindest einen zweites der Programmmodule demselben Adressbereich des Zwischenergebnisspeichers zugeordnet ist, um von dort das Zwischenergebnis zu lesen und weiterzuverarbeiten, ◯ wobei das zumindest erste und das zumindest zweite Programmodul so assemblierbar sind, dass das Programm das zumindest eine zweite Programmodul nach dem zumindest einen ersten Programmodul ausführt, sodass das Ergebnis des zumindest einen ersten Programmoduls als Zwischenergebnisses durch das zumindest eine zweite Programmodul in demselben Zyklus gelesen und verarbeitet werden kann, in dem es berechnet wurde.A program library for generating a program (120) for controlling a traffic tunnel (124) with a plurality of automation devices, the program library comprising: - a plurality of predefined program modules that can be assembled into a program for controlling a traffic tunnel (124), ◯ wherein one or more of the program modules are configured to process an input image of the automation devices and to generate an output image for controlling the automation devices, ◯ wherein at least a first of the program modules is assigned to an address range of an intermediate result memory (114) in order to store an intermediate result there, and ◯ wherein at least a second of the program modules is assigned to the same address range of the intermediate result memory in order to read the intermediate result from there and process it further, ◯ wherein the at least first and the at least second program module can be assembled in such a way that the program executes the at least one second program module after the at least one first program module, so that the result of the at least one first program module is used as an intermediate result by that at least a second program module can be read and processed in the same cycle in which it was calculated.
DE102023101842.6A 2023-01-25 2023-01-25 Traffic tunnel control system with modular PLC program Pending DE102023101842A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102023101842.6A DE102023101842A1 (en) 2023-01-25 2023-01-25 Traffic tunnel control system with modular PLC program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102023101842.6A DE102023101842A1 (en) 2023-01-25 2023-01-25 Traffic tunnel control system with modular PLC program

Publications (1)

Publication Number Publication Date
DE102023101842A1 true DE102023101842A1 (en) 2024-07-25

Family

ID=91759869

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023101842.6A Pending DE102023101842A1 (en) 2023-01-25 2023-01-25 Traffic tunnel control system with modular PLC program

Country Status (1)

Country Link
DE (1) DE102023101842A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2224308B1 (en) 2009-02-26 2012-10-24 Siemens S.p.A. A system and a method for controlling the light intensity in a tunnel
US20140207254A1 (en) 2011-07-15 2014-07-24 Omron Corporation Cpu unit for plc, plc-use system program, recording medium in which plc-use system program is stored, plc system, plc support device, plc support program, and recording medium in which plc support program is stored

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2224308B1 (en) 2009-02-26 2012-10-24 Siemens S.p.A. A system and a method for controlling the light intensity in a tunnel
US20140207254A1 (en) 2011-07-15 2014-07-24 Omron Corporation Cpu unit for plc, plc-use system program, recording medium in which plc-use system program is stored, plc system, plc support device, plc support program, and recording medium in which plc support program is stored

Similar Documents

Publication Publication Date Title
DE102004003605B4 (en) Integrated diagnostic system in a process plant with a process control system and a safety system
EP3467597B1 (en) Method and system for commissioning and/or the maintenance of a control device for field devices for automation of buildings
EP3209996B1 (en) Method and device for carrying out a test process relating to a rail vehicle
DE102004003569B4 (en) Process plant, security system for use in a process plant and method of performing security procedures in a process plant
EP2980662B1 (en) Protection for an automation component against program manipulation by means of signature matching
DE10021698B4 (en) On a single computer implemented integrating functionality for a distributed process control system
EP0893746B1 (en) Process diagnosis system and method therefor
DE102020118259A1 (en) REAL-TIME CONTROL USING THE DIRECTIVE PREDICTION SIMULATION WITHIN A CONTROL SYSTEM OF A PROCESS PLANT
DE102004011162A1 (en) Automatic linking of process event data to a data archive system
DE10242917A1 (en) System for recording and displaying a secure status of devices
EP3079028A1 (en) Planning and engineering method, software tool, and simulation tool for an automation solution
DE112017005957T5 (en) Information processing system and information processing method
EP3637205A1 (en) Image activation on an operator station client
EP3296826A1 (en) Method and arrangement for putting into operation control and regulation devices for a building automation system
EP4150422A1 (en) System and method for determining a cause of an operating anomaly of a machine, computer program and electronically readable data storage device
EP2954534B1 (en) Device and method for detecting unauthorised manipulations of the system state of an open-loop and closed-loop control unit of a nuclear plant
DE102023101842A1 (en) Traffic tunnel control system with modular PLC program
EP2994801B1 (en) Programmable logic controller
EP4409366A1 (en) Method for providing data for operating a building
EP3486825A1 (en) Method and apparatus for the computer-aided determination of a severity of a breach in integrity
DE102009058518A1 (en) Method and device for monitoring a production control computer
WO2022248180A1 (en) Method and system for the secure execution of control applications, and inspection device
EP4176579A1 (en) Method for operating an automation system of a machine or an installation
WO2023186516A1 (en) Method for implementing an automation funcationality on an automation component with programmable automation functionality, and system
DE102004037687B4 (en) Assertions in physical model descriptions for functions and their use in generating code for microprocessor based controllers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication