Enkeltbit programmer

Programeditor for og virkemåde af enkeltbit programmer, som har generel anvendelse under SYSTEM OPSÆTNING
Som eksempel anvendes programmering under Nødstyring.
Programmet består af en simpel enkeltbit proces, hvis resultat (0 eller 1) overføres direkte til den aktuelle niveau-udgang. De 4 niveau udgange er blot 4 interne flag, hvis status altid kan aflæses på de 4 niveau lamper på frontpladen. Hvis PS4 er sat i drift (drift lampen blinker), overføres disse niveau udgange, gennem alternerings kontrollen, til pumpe udgangene. Nødstyrings betingelserne indlæses ved hjælp af. en program editor, som anvendes flere andre steder i SYSTEM SET-UP. Her følger derfor en kort beskrivelse for betjening af denne. Ved valg af NØDSTYR.PROGRAM kan display f.eks. se således ud.
Linie 1: NIVEAU NR. 1
Linie 2: PC:000 KODE:END
PC står for Program Counter, og indikerer linie nummeret for den viste kode. Første linie hedder 0, og der er for hver proces plads til maximalt 16 linier. Sidste linie hedder altså linie 15. Efter 'KODE:' vises den talkode, som er lagt ind på den pågældende program linie. Et tal fra og med 0 til 249 peger på et internt flag, hvis status aflæses, når programmet gennemløbes, hvilket sker en gang hvert sekund.
 
Talkode
Flagenes betydning
Interne flag
000-031
Digitale indgange 1 - 32
032-047
Digitale udgange 1 - 16
048-079
Digitale alarm flag 1 - 32
080-095
Analoge alarm flag 1 - 16
096-103
System alarm flag 1 - 8
104-107
Niveau status 1 - 4
108
Dybdepumpning
109
Alternering
110
Simulering
111
Drift
112-115
Niveau udkobling 1 - 4
116
Transducer min. alarm
117
Transducer maks. alarm
118
Flag=0 (aldrig sat)
119
Flag=1 (altid sat)
120-127
Fjernudkobling 1 - 8
128-143
SRO styring 1 - 16
144
Tilbagekald
145
Overløb
146
Pausetid overskredet
147
½Hz puls
148
Fjernudkobling mislykket
149-151
reserverede
152-175
Tæller 1 - 24 overløb
176-183
TT:MM periode 1 - 8
184-249
reserverede
Et tal fra 250 til og med 255 angiver en funktion. Tabellen angiver sammenhængen mellem talkoder og funktioner:
Talkode
Funktion
250
NOT funktion
251
AND funktion
252
OR funktion
253
XOR funktion
254
CHN funktion
255
END funktion
Programmet udføres som en kombination af at lægge værdien af de valgte flag på en stak og udførelsen af de valgte funktioner på de 'stakkede' flag. Når programmet læser en END instruktion, hentes det øverste flag som resultat af processen.
Som eksempel vises en simpel programstump for nødstyring, som aktiverer det pågældende niveau, når digital alarm nr. 16, som kan være tilsluttet en højvands elektrode, er aktiv, samtidig med, at digital alarm nr. 15, som kan være tilsluttet en lavvands elektrode, IKKE er aktiv - forudsat, der er transducer alarm (minimum eller maksimum).
PC:000 KODE:063 status for digital alarm 16
PC:001 KODE:062 status for digital alarm 15
PC:002 KODE:253 sidste flag inverteres (NOT dig.al.15)
PC:003 KODE:251 de 2 flag på stakken AND'es
PC:004 KODE:116 status for transducer minimum alarm
PC:005 KODE:117 status for transducer maksimum alarm
PC:006 KODE:252 de 2 sidste flag på stakken OR'es
PC:007 KODE:251 (da.16 AND (NOT da.15)) AND (minal OR maxal)
PC:008 KODE:255 END - resultat overføres til niveau.
Hvis vi antager, at dig.al.16 er aktiv, dig.al.15 ikke er aktiv, og der er transducer minimum alarm, vil stakken se således ud under program udførelsen:
PC: 000 001 002 003 004 005 006 007 008
KODE: 063 062 NOT AND 116 117 OR AND END
            0      
STAK:   0 1   1 1 1    
  1 1 1 1 1 1 1 1 1
Flagets værdi Flagets forrige værdi Resultat til stakken
0 0 0
0 1 1
1 0 1
1 1 0
Alarmer skal have OFF→ON filtreringen sat til 0 S for at denne funktion virker tilfredsstillende!
END henter øverste flag på stakken, og returnerer dette som resultat af programmet. I tilfældet med nødstyring, vil dette flag overføres til den pågældende niveau udgang.
Man blader frem og tilbage i programmet ved hjælp af. pil tasterne ↑ eller ↓. Dog kun frem til en END funktion eller program linie 15. En ny kode indtastes som 1, 2 eller 3 cifre efterfulgt af ENTER. Herved overskrives den kode, som tidligere var indlagt på den pågældende programlinie, og visning på display springer frem til næste program linie, med mindre der er tale om en END.

bak