Vision2000.ini

| ALPHA-VISION® Laufzeit

# Vision2000.ini - Alpha-Vision Definitions-Datei

In der Vision2000.ini Datei sind Informationen die von AV-Visu Programmen genutzt werden eingetragen - die Einträge werden händisch, bzw. vom System vorgenommen.

Die Vision.ini Datei ist eine standard Text-Datei, die mit einem beliebigen Editor bearbeitet werden kann;

## Sektionen in Vision2000.INI

Laufzeitparameter sind unter Sektionen zusammengefasst, folgende Sektionen sind möglich:

- AAGRP
- AutoLogout
- AvMail
- Base_1 ... _n
- BUS
- CanDrvSettings
- ControlAccess
- Computer
- Debug
- Display
- DoArch
- EAS
- ObjHndl
- Ports
- Prcs
- Recv
- Send
- Settings
- SyncArchive
- TS
- Udp2Av
- NoriCan
- ZipArchives
- _PVPRSSTNT
- AddBusPvs
- Watchdog

### Sektion: Display

    [Display]
    DialogScrollbars=1 ;0

DialogScrollbars=
Definiert ob in dem in der Laufzeit aufgerufenen Dialogfenster die Bildlaufleiste zu sehen ist.

1 = vorhanden
0 = nicht vorhanden

### Sektion: Base_1 ... _n

    [Base_1]
    Name=
    Path=
    Tag=
    TagExpression=

Name=
Name der in SyncArchive abzugleichenden Tabelle (dbf-Format)

Path=
Pfad zum Verzeichnis dieser dbf (mit abschließendem Backslash)

Tag=
Name des Tags, der für diese Tabelle programmiert ist

TagExpression=
zum Tag gehörender Ausdruck (auch fest programmiert)

### Sektion: CanDrvSettings

    [CanDrvSettings]
    ScanCycle=

ScanCycle= Intervall (ms), in dem die Werte über den Can-Bus abgerufen werden

### Sektion: AutoLogout

    [AutoLogout]
    ChiefEng=

ChiefEng= Intervall (ms), nach dem der Bediener automatisch ausgeloggt wird wenn keine Bedienaktion statt fand.

### Sektion: TS

    [TS]
    DateDown=DAD
    UtcDown=UTD
    LtDown=LTD
    DateUp=DAU
    UtcUp=UTU
    LtUp=LTU
    station=3
    cycle=3600000
    correct=10  ;
    CompareTimeMin=
    TimeSpanInDays=

DateDown=
Objekt-ID des Datenobjekts zum Senden des Datums an die PLC (Programm Logic Controller)

UtcDown=
Objekt-ID des Datenobjekts zum Senden der Utc(Universal Time Correction) an die PLC

LtDown=
Objekt-ID des Datenobjekts zum Senden der Lt(Local Time) an PLC

DateUp=
Objekt-ID des Datenobjekts zum Empfangen des Datums von der PLC

UtcUp=
Objekt-ID des Datenobjekts zum Empfangen der Utc von PLC

LtUp=
Objekt-ID des Datenobjekts zum Empfangen der Lt von PLC

station=
die Stationsnummer der time-master PLC

cycle=
Intervall in ms, in dem die Zeiten im Telegrammkopf der time-master PLC automatisch ausgewertet werden

CompareTimeMin=
das Datum der ältesten gültigen in einem Telegramm empfangenen Zeit im Format YYYY-MM-DD

TimeSpanInDays=
die Zeitspanne in Tagen (Integer), die das Datum eines empfangenen Telegramms maximal in der Zukunft liegen darf

### Sektion: BUS

    [bus]
    buses=2
    connections=3
    1=101
    2=102
    3=103
    time=120
    OsOk1_1=SSKPLC3
    OsOk1_2=SSKPLC4
    OsOk1_3=SSKPLC5
    OsOk2_1=SSKPLC3
    OsOk2_2=SSKPLC4
    OsOk2_3=SSKPLC5
    OsOk3_1=SSKPLC3
    OsOk3_2=SSKPLC4
    OsOk3_3=SSKPLC5

buses=
die Anzahl der Busverbindungen

connections=
die Anzahl n der Bedienstationen

1 - n=
die Stationsnummer der Bedienstation(en)

time=
Wenn in diesem Intervall (s) kein PLC-Telegramme kommt, gilt die Verbindung zur Bedienstation als gestört

OsOk1_1=
Deklaration der Prozeßvariablen in vision2000.ini für 3 Os und 3 Plcs:
In der Kennung des Eintrags steht die Zahl vor dem Unterstrich für die Os (1 bis Anzahl der Os), die Zahl nach dem Unterstrich für die Plc (1 bis Anzahl Plc).

siehe auch: OS Status Rückmeldung an Plc

### Sektion: Settings

    [Settings]
    Sleep=1000
    Host=127.0.0.1
    ResetMasterObjIfNoMasterPresent=N

Sleep=
der Intervall zur Auswertung von Tastatureingaben (ms)

Host=
die IP-Adresse des PCs (am Besten: Host=localhost oder 127.0.0.1)

ResetMasterObjIfNoMasterPresent=
Wenn Y werden $MASTER und $MASTER_PV auf 0 gesetzt, wenn im Config-State-Telegramm des Multiserver kein Master angegeben ist.
Wenn N (default) zeigen $MASTER und $MASTER_PV die alten Werte an, bis es einen neuen Master gibt.

### Sektion: Ports

    [ports]
    port1=2100
    port2=2200
    port3=2301

port1=
die Nummer des PLC-Ports, default: 2100

port2=
die Nummer des OS-Ports, default:2200

port3=
die Nummer des Hoststate-Ports, default:2301

### Sektion: Prcs

    [Prcs]
    TimeDiffLimit=120
    AcknDelay=2000

TimeDiffLimit=
Wenn bei einer Uhrzeitverstellung diese Zeitdifferenz in Sekunden überschritten wird, erfolgt ein Eintrag ins Eventlog, default: 1140

AcknDelay=
Wartezeit für den Quittierjob MePo_Ackn. Nach jedem Quittieren wird der Quittierjob erst wieder ausgeführt, wenn die angegebene Zeitspanne (in Millisekunden) vergangen ist. Damit kann verhindert werden, daß bei großen Projekten durch schnell wiederholtes Drücken der Quittiertaste ein Speicherüberlauf ausgelöst wird. default: 0 (d.h. das Quittieren wird nicht blockiert)

### Sektion: Send

    [Send]
    Buffer=16384
    Sleep=50

Buffer=
die Größe des Sendepuffers in Byte

Sleep=
der Sendeintervall in ms

### Sektion: Recv

    [Recv]
    Buffer=16384

Buffer=
die Größe des Empfangspuffers in Byte

### Sektion: Debug

    [Debug]
    object=
    AciMemorySupervisor=1

object=
??????????????????????????????????????

AciMemorySupervisor=
Schaltet die Memory Leak - Überwachung in der ACI.DLL ein (1) oder aus (0). default: 1 (eingeschaltet)

### Sektion: AAGRP

    [aagrp]
    aagrp11=71A9A0B001
    aagrp31=
    aagrp41=
    aagrp51=
    aagrp61=
    aagrp71=71A9A0B001
    aagrp12=71A3B0B025
    aagrp22=71A9A0B004
    aagrp32=
    aagrp42=
    aagrp52=
    aagrp62=
    aagrp72=71A3B0B025

aagrp11=
Objekt-IDs der audible alarm group Objekte möglich sind:
;aagrp11 - 71 und aagrp12 - 72

### Sektion: Udp2Av

    [Udp2Av]
    PortPlcRead=2000
    PortPlcWrite=2000
    PortOsRead=2200
    PortOsWrite=2200
    Multicast=239.0.1.34
    Buses=1
    Stations=101, 1
    LifeSignCycle=1500
    LifeSignTimeOut=2500
    ReadQueueCycle = 50

PortPlcRead=
Nummer des Ports, auf dem Daten von den PLCs empfangen werden; default: 2100

PortPlcWrite=
Nummer des Ports, auf dem Daten an die PLCs gesendet werden; default: 2100

PortOsRead=
Nummer des Ports, auf dem Daten von andere OSen empfangen werden; default: 2200

PortOsWrite=
Nummer des Ports, auf dem Daten an andere OSen gesendet werden; default: 2200

Multicast=
Multicast-Adresse; existiert kein solcher Eintrag, wird automatisch Broadcast verwendet.

Buses=
Anzahl der verwendeten Busse (1 oder 2)

Stations=
Liste der Nummern aller im System vorhandenen OS- und Plc-Stationen, getrennt durch Komma. Auf Basis dieser Liste erfolgt die Anzeige der Busfehlermeßstellen.

LifeSignCycle=
In diesem Zyklus (in Millisekunden, default: 2000) werden Lebenszeichentelegramme gesendt, falls keine anderen Daten zu senden sind.

LifeSignTimeOut=
Ist dieses Intervall (in Millisekunden, default: 3000) abgelaufen, ohne daß von einer Station ein Telegramm empfangen wurde, so gilt diese Station als gestört.

ReadQueueCycle=
In diesem Zyklus (in Millisekunden, default: 100) werden die Daten aus der ACI-Queue ausgelesen

### Sektion: NoriCan

    [NoriCan]
    Multicast=239.1.2.3
    ProxyStations=1,3,5
    LifeSignCycle=1500
    LifeSignTimeOut=6000
    ProxyPlcPortRead=3000
    ProxyPlcPortWrite=2000
    ProxyReadInterval=500
    ProxyWriteInterval=500
    ConsoleOutput=1
    PcNode=30

    Boardtype=0x00020e00
    Baudrate=20
    ExtendedProtocol=0

    BoardNo_Line1=0
    CanNo_Line1=0
    RedBoardNo_Line1=0
    RedCanNo_Line1=1

    BoardNo_Line2=1
    CanNo_Line2=0
    RedBoardNo_Line2=1
    RedCanNo_Line2=1

    MSSync_Priority=1

Multicast=
Multicast-Adresse; existiert kein solcher Eintrag, wird automatisch Broadcast verwendet.

ProxyStations=
Bezeichner der Stationen, die als Proxystationen fungieren

LifeSignCycle=
In diesem Zyklus (in Millisekunden, default: 2000) werden Lebenszeichentelegramme gesendt, falls keine anderen Daten zu senden sind.

LifeSignTimeOut=
Ist dieses Intervall (in Millisekunden, default: 3000) abgelaufen, ohne daß von einer Station ein Telegramm empfangen wurde, so gilt diese Station als gestört.

ProxyPlcPortRead=
Nummer des Ports, auf dem Daten von den PLCs empfangen werden; default: 3000

ProxyPlcPortWrite=
Nummer des Ports, auf dem Daten an die PLCs gesendet werden; default: 2000

ProxyReadIntervall=
Intervall in Millisekunden, in dem Telegramme aus dem Lesepuffer abgeholt werden; default: 500

ProxyWriteIntervall=
Intervall in Millisekunden, in dem Telegramme aus dem Schreibpuffer abgesendet werden; default: 500

ConsoleOutput=
Aktivierung der Fehlerausgabe auf ein Konsolfenster, 0 = nein; default: 0

PcNode=
Nummer der Station, die als Projekt-Kommunikationsknoten auftritt; default=30

Boardtype=
IXXAT-Kartentyp, siehe IXXAT-Dokumentation

Baudrate=
CanBus-Übertragungsrate in kBd; default=20 (für 19200)

ExtendedProtocol=
Canbus-Objectidentifier, 11 bit = 0, 29 bit = 1; default=0

BoardNo_Line[1 bzw. 2]=
Boardnummer der ersten bzw. zweiten Can-Linie; default=0

CanNo_Line[1 bzw. 2]=
CanBusNummer der ersten bzw. zweiten Can-Linie; default=0

RedBoardNo_Line[1 bzw. 2]=
Boardnummer des redundanten Boards der ersten bzw. zweiten Can-Linie; default=0

RedCanNo_Line[1 bzw. 2]=
CanBusNummer des redundanten Boards der ersten bzw. zweiten Can-Linie; default=0

MSSync_Priority=
Priorität der Masterumschaltung bei min. zwei Gatewayrechnern; default=0 (höchste Priorität)
Alle weiteren möglichen Master müssen eine Priorität > 0 haben (niedrige Priorität)

### Sektion: EAS

Je nachdem, ob das Programm Av2Eas oder Av2SoftEas eingesetzt wird, müssen unterschiedliche Einträge vorgenommen werden:

    [EAS]

    ; Eintraege fuer Av2Eas:
    port=2100
    host=127.0.0.1
    sendbuf=8192
    rcvbuf=8192
    MaxNum=20
    SendSleep=1200
    Alive=20
    sttn=1
    db=21
    MpMin=1
    MpMax=25000

    ;Eintraege fuer Av2SoftEas:
    sendbuf=1472
    rcvbuf=1472
    MaxNum=10; Bei groesseren Werten wird MaxNum=10 genommen.
    Alive=10
    TimeOut=2000

    ;Eintraege fuer beide Programme:
    cycle=50
    SystemVoGroup=10
    exit=100
    clear=easclr
    duty=EASWACHE
    horn0=eashorn0
    horn1=eashorn1
    horn2=eashorn2
    s7test0=eass7test0
    s7test1=eass7test1
    s7test2=eass7test2
    tabl0=eastabl0
    tabl1=eastabl1
    s7able0=eass7able0
    s7able1=eass7able1

port=
der PLC-Port

host=
die IP-Adresse des PCs (siehe oben: Settings)

sendbuf=
die Sendepuffergröße für EAS in Byte

rcvbuf=
die Empfangspuffergröße für EAS in Byte

MaxNum=
die maximale Meldungszahl pro Telegramm

SendSleep=
Intervall zwischen dem Absenden der Telegramme

exit=
der Intervall (ms) für Tastatureingaben

cycle=
der Intervall (ms) für Sende- / Empfangs-thread schreiben / lesen

Alive=
der Intervall (s), in dem ein Lebenszeichen gesendet wird

sttn=
die Stationsnummer(n) der PLC(s), mit der/denen das EAS-Panel verbunden ist.
Ab Version 8.45.90.6180 ist ein Versenden der EAS-Telegramme an bis zu 10 vorhandenen PLCs möglich. Diese Funktionalität wird aktiviert, sobald der Eintrag 'sttn=' mit mehreren, durch Komma getrennten Stationen belegt wird (z.B. sttn=3, 1).

db=
die Datenbaustein-Nummer

SystemVoGroup=
die Nummer der SystemVoGruppe

MpMin=
die kleinste EAS-Objektnummer

MpMax=
die größte EAS-Objektnummer

TimeOut=
Anzahl Millisekunden, die Av2SoftEas maximal wartet, um den Shared Memory-Sendebereich zu beschreiben

clear=, duty=, ...
diese Einträge enthalten die Objekt-IDs der entsprechenden EAS-Objekte, möglich sind:
clear, duty,
horn0 - horn31,
s7test0 - s7test31,
tabl0 - tabl31,
s7able0 - s7able31

### Sektion: ObjHndl

    [ObjHndl]
    RcvBuf=1472
    Station=99
    Host=localhost
    Port=2400
    SendBuf=1472
    SendSleep=100
    KeySleep=2000

RcvBuf=
Empfangspuffer in Bytes

Station=
Stationsnummer des ObjHndl

Host=
Hostname, typischerweise wird hier "localhost" angegeben

Port=
Port für die Verbindung zum Multiserver

SendBuf=
Sendepuffer in Bytes

SendSleep=
Wartezeit zwischen Sende-Aufrufen (ms)

KeySleep=
Wartezeit für Tastaturabrfragen (ms)

### Sektion: _PVPRSSTNT

    [_PVPRSSTNT]
    count=2
    1=ZAHLER_1
    2=ZAHLER_2

count=
die Anzahl der ObjHndl-Objekte, die bei Programmende dauerhaft abgespeichert werden

1 - n=
PointIds der Objekte

### Sektion: ControlAccess

    [ControlAccess]
    BufSize=8192
    CaFile=sa.ca

BufSize=
die Puffergröße für ControlAccess in Bytes

CaFile=
der Name des ControlAccess-Files

### Sektion: AvMail

    [AvMail]
    Directory=VISION
    projekt=sa.do
    UnreadMessages=AVMURM
    NewMailNotify=AVMNMN

Directory=
Name des Mail-Verzeichnisses

projekt=
Name des Projekts

UnreadMessages=
ObjektID des Objekts das die Anzahl ungelesener Nachrichten als Value speichert

NewMailNotify=
;ObjektID, das auf neue Nachrichten hinweist

### Sektion: COMPUTER

    [COMPUTER]
    101=Os1
    102=Os2
    103=Os3

101=
die von AvMail benötigte durchgehende Auflistung aller Bedienstationsnummern und der zugehörigen Stations-Namen

### Sektion: ZipArchives

    [ZipArchives]
    DestDrv=c:\Tests\zipfiles\
    ZipDrv=
    CheckTimeInterval=30
    WriteInterval=2
    Dbf_1=_archive
    Dbf_2=_eventlog
    Path_1=c:\bin\archives
    Path_2=c:\bin\archives
    ErrorObjId=MOD_ERROR
    ProjectObjId=ID_TEXT
    DestDrvFullFlagObjId=
    DestDrvMbUsedObjId=
    DestDrvPercentUsedObjId=
    ZipDrvPercentUsedObjId=
    UseObjNoInArchive=
    DeleteZipsAfterCopy=

    (Siehe auch ZIPARCHIVES)

DestDrv=
Sicherungsverzeichnis für die dauerhafte Speicherung der Tagesarchive, das die Unterverzeichnisse "_ARCHIVE", "_EVENTLOG" bzw. "_DCLOG" enthält.
(Abhängig von der Definition, welche Archive gezippt werden sollen)
Ist DestDrv nicht mit ZipDir identisch, werden die gezippten Tagesarchive von ZipDir nach DestDrv kopiert.
Vor Version 8.46.104 hieß der entsprechende Eintrag MoDrv=

ZipDrv=
Zip-Verzeichnis, in das die Tagesarchive komprimiert werden. Wird hier kein Pfad eingetragen, befindet sich das Verzeichnis standardmäßig dort, wo ZipArchives.exe liegt.
Vor Version 8.46.104 hieß der entsprechende Eintrag ZipDir=

CheckTimeInterval=
Gibt an in welchen Abständen geprüft werden soll, ob der WriteIntervall erreicht ist.
(in Minuten, mögliche Werte: 1 - 30)

WriteInterval=
Gibt an in welchen Zeitabschnitten gesichert werden soll
(in Stunden, mögliche Werte: 1, 2, 4, 6, 8, 12, 24)

Dbf_n=
Welches Archiv soll gesichert werden

Path_n=
Wo steht das zu sichernde Archiv

ErrorObjId=
Name des ACI-Objekts (Typ: Zahl), das den Rückgabewert (Errorcode) der Zip-Dll enthält

ProjectObjId=
Wenn hier der Name eines ACI-Objekts (Typ: Text) angegeben wird, wird dessen Inhalt beim erstmaligen Schreiben eines Zip-Files in ein Textfile eingetragen wird, das den gleichen Namen wie das Zipfile, jedoch mit der Erweiterung .txt, trägt. Ebenso wird bei jedem Zip-Vorgang ein UT-LT-Wertepaar in die Textdatei geschrieben.

DestDrvFullFlagObjId=
Ab Version 8.46.104, davor immer Verwendung der Default-Id '$MOFULL'
Name des ACI-Objekts (Typ: Bool), das bei einer Speicherbelegung von über 90% auf dem DestDrv-Datenträger auf true gesetzt wird. Wird hier keine Objekt-Id eingetragen, wird in der ACI nach der Default-Id '$MOFULL' gesucht.

DestDrvMbUsedObjId=
Ab Version 8.46.104, davor immer Verwendung der Default-Id '$MOGB'
Name des ACI-Objekts (Typ: Zahl), das die Speicherbelegung (in MB) des DestDrv-Datenträger enthält. Wird hier keine Objekt-Id eingetragen, wird in der ACI nach der Default-Id '$MOGB' gesucht.

DestDrvPercentUsedObjId=
Ab Version 8.46.104, davor immer Verwendung der Default-Id '$MOPROCENT'
Name des ACI-Objekts (Typ: Zahl), das die Speicherbelegung (in Prozent) des DestDrv-Datenträger enthält. Wird hier keine Objekt-Id eingetragen, wird in der ACI nach der Default-Id '$MOPROCENT' gesucht.

ZipDrvPercentUsedObjId=
Name des ACI-Objekts (Typ: Zahl), das die Speicherbelegung (in Prozent) des Datenträgers enthält, auf dem sich das Zip-Verzeichnis befindet. Wird hier keine Objekt-Id eingetragen, entfällt die Anzeige.
Vor Version 8.46.104 hieß der entsprechende Eintrag ZipDrvPcObjId=

UseObjNoInArchive=
Ab Version 8.46.107; ist hier eine 1 eingetragen, wird beim Schreiben des Tagesarchives in der _archive.dbf die PointId durch die Objektnummer ersetzt
Default: 0

DeleteZipsAfterCopy=
Ab Version 8.46.107; ist hier eine 0 eingetragen, wird das automatische Löschen der Tagesarchive im Zip-Verzeichnis abgeschaltet
Default: 1

### Sektion: DoArch

    [DoArch]
    Directory=.\ ;Laufzeitumgebung
    NumArchRecords=20000
    AllObjsHaveArchive=0
    SampleInt=0 ;Eintrag wird ignoriert
    PointIdAsFilename=1

Directory=
gibt an, wo die Datei "_archive.dbf" liegen soll.

NumArchRecords=
gibt die max. Größe der Datei "_archive.dbf" in Datensätzen an. (ist max Größe erreicht, wird der erste Satz wieder überschrieben)

AllObjsHaveArchive=
0 - es werden nur die in der Datei "_doarch.dbf" definierten archiviert 1 - es werden alle Datenobjekte archiviert

SampleInt=
definiert den Sample Intervall in Sekunden, wenn "AllObjsHaveArchive=1"

PointIdAsFilename=
?????????????????????????????????????????????????

### Sektion: SyncArchive

    [SyncArchive]
    MaxRecPerTele=25

MaxRecPerTele=
definiert die maximale Anzahl an records pro Telegramm (Systembelastung)

### Sektion: AddBusPvs

Hier werden zusätzliche Busfehler-PVs definiert, mit denen die Anzeige der Quittierung von Fehlern auf Bus1 und Bus2 getrennt erfolgen kann. Die PV bekommt den Value 1, wenn die entsprechende Busverbindung funktioniert und der Value 2, wenn die Busverbindung gestört ist.

    [AddBusPvs]
    <Stationsnr.>_<Bus>=<PointId>

Beispiel:

    [AddBusPvs]
    1_1=BUS1_UST1
    1_2=BUS2_UST1
    103_1=BUS1_OS3
    103_2=BUS2_OS3

### Sektion: Watchdog

    [Watchdog]
    Prcs=PrcsWatchdog, 10
    Udp2Av=DatenObj1, 25
    ...

Prcs=, Udp2Av=, ...
Einträge für die zu überwachenden Prozesse (mögliche Prozesse siehe Watchdog -> Liste der überwachbaren Prozesse)
Als Keyword für einen Prozesseintrag dient der Name (ohne die Dateinamenerweiterung), unter dem das Programm im bin-Verzeichnis zu finden ist.
Als Wert wird der Name des für diesen Prozeß hochzuzählenden Datenobjekts und, durch ein Komma getrennt, die Zykluszeit der Inkrementierung in Sekunden (min. 5 Sekunden) eingetragen.

### Sektion: AddBusPvs

Hier werden zusätzliche Busfehler-PVs definiert, mit denen die Anzeige der Quittierung von Fehlern auf Bus1 und Bus2 getrennt erfolgen kann. Die PV bekommt den Value 1, wenn die entsprechende Busverbindung funktioniert und der Value 2, wenn die Busverbindung gestört ist.

    [AddBusPvs]
    <Stationsnr.>_<Bus>=<PointId>

Beispiel:

    [AddBusPvs]
    1_1=BUS1_UST1
    1_2=BUS2_UST1
    103_1=BUS1_OS3
    103_2=BUS2_OS3