8887 COLBAS - Siemens Building Technologies
8887 COLBAS - Siemens Building Technologies
8887 COLBAS - Siemens Building Technologies
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
8 887<br />
VISONIK ®<br />
<strong>COLBAS</strong><br />
Funktionsblatt<br />
<strong>COLBAS</strong> ist die Programmiersprache von Landis & Staefa für die VISONIK BPS.<br />
Die Abkürzung <strong>COLBAS</strong> steht für:<br />
Control Oriented Language for <strong>Building</strong> Automation Systems<br />
<strong>COLBAS</strong> basiert auf der Programmiersprache BASIC, besitzt aber zusätzlich<br />
spezielle Funktionen zur Lösung von Mess-, Steuer- und Regelaufgaben.<br />
Anwendung<br />
Implementation<br />
<strong>COLBAS</strong> ist in der <strong>Building</strong> Process Station (BPS) und im Data and Communication<br />
Server (DCS) implementiert. <strong>COLBAS</strong> im DCS wird jedoch nur für spezielle Anforderungen<br />
und Kopplungen zu andern Systemen verwendet und deshalb im Folgenden<br />
nicht weiter behandelt.<br />
Programmierung<br />
Bedienung<br />
DCS<br />
B<br />
<strong>8887</strong>Z01de<br />
T<br />
Start<br />
T<br />
Stop<br />
PC<br />
BPS<br />
Aufgaben<br />
Die BPS soll verschiedenste betriebstechnische Anlagen steuern, regeln und überwachen<br />
– gleichzeitig und in Echtzeit. Der Aufgabenbereich wird oft noch erweitert<br />
durch Anforderungen wie: Optimierter Anlagenbetrieb, Protokollierungen, Störbehandlung<br />
und Alarmierung, Datenerfassung, usw.<br />
Realisierung<br />
Alle genannten Aufgaben werden mit <strong>COLBAS</strong>-Programmen definiert und realisiert.<br />
<strong>COLBAS</strong> besitzt dazu gegenüber BASIC folgende Erweiterungen:<br />
– Zugriff auf Prozesswerte per Bedienung oder Programm (Immediate Mode oder<br />
Deferred Mode).<br />
– Parallele Verarbeitung von Programmen (Multitasking), unabhängig voneinander<br />
oder gegenseitig synchronisiert.<br />
– Echtzeit-Verhalten, d.h. Programme reagieren unmittelbar auf äussere Ereignisse<br />
und können synchron zur realen Zeit ablaufen (Realtime).<br />
Die Erstellung der <strong>COLBAS</strong>-Programme wird unterstützt durch PC-Software mit<br />
Programmbibliotheken für die gebräuchlichsten Anwendungen. Spezielle Aufgaben<br />
können mit individuellen <strong>COLBAS</strong>-Programmen gelöst werden.<br />
<strong>Siemens</strong> <strong>Building</strong> <strong>Technologies</strong> CM2N<strong>8887</strong>de / 26.02.01<br />
Landis & Staefa Division 1/4
Programm-Aufbau<br />
Prinzip-Skizze<br />
Die folgende Skizze zeigt vereinfacht den Programm-Aufbau in der BPS:<br />
TSK 203<br />
TSK n (200 .. 255)<br />
TSK 255<br />
TSK n (1 .. 199)<br />
Kopf<br />
.......................................<br />
Programmteil<br />
10 .........................................<br />
20 .........................................<br />
.. .........................................<br />
.. .........................................<br />
... .........................................<br />
Variablentabelle<br />
........................................<br />
........................................<br />
PROC X<br />
PROC Y<br />
10 ......................<br />
20 ......................<br />
... ......................<br />
Variablentabelle<br />
.......................<br />
Prozeduren<br />
<strong>8887</strong>Z02de<br />
Tasks<br />
Elemente des<br />
Programms<br />
Die oben gezeigten Elemente des Programms sind:<br />
Element<br />
Task allgemein<br />
TSK 1 .. 199<br />
TSK 200 .. 255<br />
Prozedur<br />
Erklärung<br />
Ein Task (TSK) ist eine selbständige Programmeinheit in einem<br />
<strong>COLBAS</strong>-Programm. Tasks können:<br />
– einzeln generiert, editiert und gelöscht werden<br />
– parallel und unabhängig voneinander verarbeitet und von andern<br />
Tasks gestartet und gestoppt werden<br />
– untereinander und mit dem Prozess Daten austauschen.<br />
Jeder <strong>COLBAS</strong>-Task enthält folgende Teile:<br />
– Kopf mit den allgemeinen Angaben zum Task und der Variablen-<br />
Deklaration<br />
– Programmteil mit den einzelnen Instruktionen<br />
– Variablentabelle mit den Variablen des Tasks (aktuelle Werte)<br />
Tasks zur freien Verfügung für Anlagen-Betriebsprogramme, wobei<br />
gewisse Tasknummern für bestimmte Aufgaben verwendet werden<br />
sollen, wie z.B.:<br />
– TSK 5 für die Anlagenkoordination<br />
– TSK 10, TSK 20, TSK 30, etc. für die einzelnen Anlagen<br />
– TSK 160 für die Ausgabe der lokalen Störmeldungen<br />
Reservierte Tasks für: Datenaustausch und Protokolle, Zeitschaltprogramm<br />
und -kataloge, Telefonie, Bedienung über POP Cards,<br />
<strong>COLBAS</strong>-Prozeduren (TSK 255).<br />
Auf diese Tasks ist kein Zugriff möglich – mit wenigen Ausnahmen,<br />
wie z.B.: Basistasks TSK 201 .. 203 zur Bedienung der BPS mit<br />
<strong>COLBAS</strong>-Instruktionen im Immediate Mode über TTY1 .. TTY3.<br />
Eine <strong>COLBAS</strong>-Prozedur ist eine selbständige Programmeinheit mit<br />
eigener Variablentabelle. In der <strong>COLBAS</strong>-Prozedurbibliothek sind<br />
Prozeduren für eine grosse Zahl von Routineaufgaben verfügbar,<br />
wie z.B.:<br />
– Ventilatorsteuerung<br />
– Regelung von Umluftklappen<br />
– Raum-Zuluft-Kaskadenregelung für Temperatur oder Feuchte<br />
– Ausdruck von Störmeldungen<br />
– etc.<br />
Prozeduren müssen vom übergeordneten Task aufgerufen werden.<br />
CM2N<strong>8887</strong>de / 26.02.01<br />
<strong>Siemens</strong> <strong>Building</strong> <strong>Technologies</strong><br />
2/4 Landis & Staefa Division
Instruktionen<br />
Aufbau der Instruktion<br />
Eine <strong>COLBAS</strong>-Instruktion beginnt in der Regel mit einem Schlüsselwort, meist gefolgt<br />
von einem Zusatzelement. Das Schlüsselwort besagt, welche Aktion durchgeführt werden<br />
soll, das Zusatzelement macht ergänzende Angaben.<br />
Beispiel: RUN 3 (Starte den Task 3)<br />
RUN = Schlüsselwort 3 = Zusatzelement, hier die Tasknummer<br />
Verfügbare<br />
Instruktionen<br />
<strong>COLBAS</strong> kennt drei Gruppen von Instruktionen wie folgt:<br />
Gruppe<br />
Statements<br />
(Anweisungen)<br />
Funktionen<br />
Bedienbefehle<br />
Definition / Beispiele<br />
Schlüsselwörter für den Deferred Mode (Eingabe mit Zeilennummer):<br />
– Variablen und I/O-Punkten Werte zuweisen: LET<br />
– Ausgabe Statements: PRINT, PLOT<br />
– Eingabe Statements: INPUT, INKEY<br />
– Verzweigungen: GOTO, IF .. THEN .. ELSE<br />
– Programmschlaufen: FOR/NEXT, GOSUB/RETURN<br />
– Zugriff auf Datenlisten: DATA, READ<br />
– Echtzeitanweisungen: WAIT, WAIT UNTIL, WAIT FOR<br />
Vorschriften zur Berechnung eines neuen Werts aus vorgegebenen<br />
Werten:<br />
– Arithmetische Funktionen: MOD, EXP, LOG<br />
– Trigonometrische Funktionen: SIN, COS<br />
– Logische und boolesche Funktionen: AND, OR, x < y<br />
– Stringfunktionen: A$ + B$<br />
– Regel- und Steuerfunktionen (DDC): CONTROL<br />
– Überwachungsfunktionen: IF MW > 20 THEN<br />
– Kalenderfunktionen: DAY, DDAY, YEAR<br />
Schlüsselwörter für den Immediate Mode (Eingabe ohne Zeilennummer).<br />
Zusätzlich zu den BASIC-Befehlen, wie COPY, DEL, DIR, END, LIST,<br />
RUN, STOP usw., sind in <strong>COLBAS</strong> weitere Befehle implementiert.<br />
Sie dienen vor allem der Systemkonfiguration, dem Editieren in Tasks<br />
und Prozeduren, sowie dem Zugriff auf die Prozessgrössen.<br />
<strong>COLBAS</strong> Programme können online, d.h. direkt in der BPS oder vom DCS aus editiert<br />
(erstellt, geändert, gelöscht) werden. In der BPS werden die Programme im batteriegepufferten<br />
RAM Speicher abgelegt.<br />
Beispiel für einen<br />
Task<br />
Ein Task besteht aus max. 350 Zeilen. Jede Zeile beginnt mit einer Zeilennummer<br />
(1 .. 32767), gefolgt von einer oder mehreren <strong>COLBAS</strong>-Instruktionen. Mit dem Task im<br />
nachstehend gezeigten Beispiel wird folgende Aufgabe gelöst:<br />
– Der Messwert am I/O-Punkt $022 wird in einem Abstand von 15 Min während 24 Std<br />
erfasst.<br />
– Zusätzlich werden Zeit und Datum der Erfassung abgespeichert.<br />
TSK 33<br />
5 REM "TEMPERATUR $022.MW ERFASSEN"<br />
10 DIM M(97)<br />
20 DIM T(97); DIM D(97)<br />
1000 FOR J=1 TO 97<br />
1100 M(J) := $022.MW<br />
1200 T(J) := TIME; D(J) := DATE<br />
1300 WAIT DURING 00:15<br />
1400 NEXT J<br />
2000 END<br />
Die erfassten Daten könnten nun mit einem weiteren Programm ausgewertet werden.<br />
<strong>Siemens</strong> <strong>Building</strong> <strong>Technologies</strong> CM2N<strong>8887</strong>de / 26.02.01<br />
Landis & Staefa Division 3/4
Prozess-Zugriff<br />
Adressen und Parameter<br />
der I/O-Punkte<br />
Der Zugriff auf die Prozessgrössen bzw. I/O-Punkte per Bedienung oder Programm ist<br />
eine wesentliche Anforderung zur Steuerung und Regelung betriebstechnischer Anlagen.<br />
In <strong>COLBAS</strong> geschieht dieser Zugriff über Adressen und Parameter:<br />
BPS<br />
$d011<br />
<strong>8887</strong>Z03de<br />
ML<br />
$031<br />
SB<br />
$052<br />
SB<br />
$053<br />
Parameter<br />
Adressen<br />
Beispiel<br />
Erklärungen zum<br />
Beispiel<br />
Hinweis<br />
INPUT-Punkte und<br />
OUTPUT-Punkte<br />
Zugriff im ganzen<br />
System<br />
Weitere Informationen<br />
Dieses Beispiel zeigt den Zugriff auf die oben dargestellten I/O-Punkte per Programm:<br />
....<br />
3000 Mz:=$031.ML<br />
4000 IF Mz=1 THEN GOTO 8000 ELSE GOTO 9000<br />
....<br />
....<br />
....<br />
....<br />
....<br />
8000 $052.SB:=1<br />
9000 $053.SB:=0<br />
In den einzelnen Zeilen werden folgende Instruktionen gegeben:<br />
Zeile Erklärung<br />
3000 Vom I/O-Punkt mit der Adresse $031 (Meldepunkt) wird der Zustand von Parameter<br />
ML gelesen und der Variablen Mz zugewiesen.<br />
4000 Wenn (IF) die Variable Mz=1, dann gehe zu (THEN GOTO) Zeile 8000, sonst<br />
gehe zu (ELSE GOTO) Zeile 9000.<br />
8000 Dem I/O-Punkt mit der Adresse $052 (Schaltbefehl) wird der Wert 1 zugewiesen,<br />
d.h. Schaltbefehl auf EIN.<br />
9000 Dem I/O-Punkt mit der Adresse $053 (Schaltbefehl) wird der Wert 0 zugewiesen,<br />
d.h. Schaltbefehl auf AUS.<br />
Beachte den Unterschied zwischen einer Zuweisung mit ":=" (Zeilen 3000, 8000 und<br />
9000) und dem logischen Vergleich auf Gleichheit mit "=" (Zeile 4000).<br />
Beim Zugriff ist zu unterscheiden zwischen INPUT-Punkten und OUTPUT-Punkten:<br />
– Melde-, Messwert- und Zählwertpunkte sind INPUT-Punkte. Der Hauptwert dieser<br />
Punkte ist nur lesbar. Dieser Hauptwert kann nicht durch manuelle Eingaben und<br />
auch nicht per Programm überschrieben werden (ausser, der betreffende Punkt ist<br />
zu Testzwecken auf "fiktiv" gesetzt).<br />
– Schaltbefehls- und Stellbefehlspunkte sind OUTPUT-Punkte. Der Hauptwert dieser<br />
Punkte ist vom Bediener und Programm immer lesbar und schreibbar.<br />
Mit <strong>COLBAS</strong> können die Zustände bzw. Parameterwerte aller im VISONIK System konfigurierten<br />
Punkte gelesen werden. Bei I/O-Punkten ausserhalb der "eigenen" BPS<br />
muss die Adresseingabe aber nicht nur die Punktadresse, sondern auch die BPS-Nr.<br />
beinhalten, also z.B. $d011'031 für den Aufruf des oben gezeigten Meldepunkts.<br />
Weitere Informationen zu diesem Thema finden Sie in folgenden Dokumenten:<br />
Dokument-Nr. Titel<br />
CM2Z8387de Sprachbeschreibung <strong>COLBAS</strong><br />
CM2T8567de VISONIK Systemgrundlagen<br />
© 2001 <strong>Siemens</strong> <strong>Building</strong> <strong>Technologies</strong> AG<br />
CM2N<strong>8887</strong>de / 26.02.01<br />
<strong>Siemens</strong> <strong>Building</strong> <strong>Technologies</strong><br />
4/4 Landis & Staefa Division