Sequentiële controller

Met de functie bouwsteen Sequentiële besturing kunnen functiesequenties in tekstvorm worden geprogrammeerd.
Diverse processen die sequentiële besturing vereisen, kunnen op deze wijze worden geautomatiseerd.

De functie bouwsteen kan deze processen vereenvoudigen, waarvoor vaak meerdere conventionele functie bouwstenen met complexe programmering nodig zijn.

De afzonderlijke stappen worden regel voor regel geprogrammeerd; een groep regels die een specifieke functie vervult, wordt een sequentie genoemd.

Inhoudsopgave


Ingangen

Contractie Korte beschrijving Beschrijving Waardebereik
S1-8 Activeert sequentie 1-8 -
AI1-8 Analoge ingangen 1-8 -
AIS Analoge ingang start sequentie 0...8
R Reset Zet de bouwsteen terug en vergrendelt deze. -




Uitgangen

Contractie Korte beschrijving Beschrijving Waardebereik
AQ1-8 Analoge uitgangen 1-8 -
AQs Huidige sequentie Huidige actieve sequentie
AQl Huidige regel Huidige programmaregel van de actieve sequentie
TQ Tekst uitgang Tekst uitgang die kan worden ingesteld door de sequentie -




Eigenschappen

Korte beschrijving Beschrijving Standaard waarde
Configuratie Editor programma code -
Interval [ms] Interval in milliseconden waarmee programmaregels worden uitgevoerd. Lage waarden kunnen de CPU-belasting beïnvloeden. 500




Toepassingsvoorbeeld

Het volgende voorbeeld toont een eenvoudige toepassing voor sanitair waterverwarming, waarbij twee warmwaterreservoirs achtereenvolgens worden verwarmd door een centrale verwarming.

De temperaturen van het verwarmingselement, de twee warmwaterreservoirs en de gewenste temperatuur voor het warme water worden via de ingangen van het functieblok verstrekt.$BR$$Sequentie 1 wordt via de ingang S1 gestart, in dit voorbeeld door een puls op een bepaald tijdstip.$BR$$$Het verwarmingselement, de pompen en de kleppen worden via de uitgangen aangestuurd:

Dubbelklik op de functiebouwsteen om het programmeervenster te openen.
In de bibliotheek aan de linkerkant van het venster staan de beschikbare ingangen, uitgangen, commando's en variabelen.
Dubbelklik op een van deze objecten zal het invoegen in het editorvenster aan de rechterkant waar het verder kan worden aangepast:

Elke regel moet beginnen met een commando, zoals te zien is in het voorbeeld hierboven.
De groene commentaren zijn niet vereist voor de werking van de sequentie, maar maken het mogelijk de afzonderlijke stappen te documenteren.

Opmerking: Dit voorbeeld is bedoeld om een overzicht te geven van de functiebouwsteen en de functionaliteit ervan. Het kan slechts in beperkte mate op een specifieke toepassing worden toegepast.


Functie beschrijving

De sequenties worden regel voor regel met een regelbaar interval uitgevoerd. Specifieke secties kunnen worden overgeslagen met behulp van condities of vertraagd met behulp van tijdcommando's.
Het is mogelijk meerdere sequenties te creëren, elke sequentie kan afzonderlijk worden gestart of er kan met een commando naar worden overgeschakeld.

Deze functie bouwsteen bevat ook een syntaxcontrole, die fouten in de syntax aangeeft tijdens het bewerken van een sequentie. Ongeldige of lege regels worden overgeslagen als de sequentie wordt uitgevoerd.

Een programmeerregel begint altijd met de gewenste functie, gevolgd door de vereiste parameters en operatoren, telkens gescheiden door een spatie.

De in de bibliotheek van het blok gespecificeerde in- en uitgangen kunnen worden ingesteld of opgevraagd.
Als een ingang verbonden is met de logica, is de laatst ingestelde waarde geldig. Wijzigingen aan de ingang overschrijven de door een sequentie ingestelde waarde.

De commando's die worden ondersteund door de Formule functiebouwsteen kunnen worden gebruikt om uitgangen in te stellen en te vergelijken (bijv. SET AQ1 = AI2 * 3).


Operatoren, Ingangen/Uitgangen (IO's) en Variabelen

Beschikbare operatoren zijn =, >=, >, <=, <, !=

Beschikbare ingangen: AI1 - AI8. De ingangsnamen kunnen in het dialoogvenster worden aangepast.

Beschikbare uitgangen: AQ1 - AQ8. De uitgangsnamen kunnen worden aangepast in het dialoogvenster.

Variabelen: waarde1 - waarde5. De variabele namen kunnen in het dialoogvenster worden aangepast.
Variabelen worden gebruikt om waarden te verwerken die niet beschikbaar zijn op de IO's. Ze kunnen zoals IO's worden ingesteld, in berekeningen of als geheugen worden gebruikt.


Commando's

Sleep $BR$$Wacht gedurende de opgegeven tijd
Syntax: sleep [waarde] [s: seconden, m: minuten]
Voorbeelden:$$$$sleep 300 s (wacht 300 seconden en gaat dan verder met de volgende regel)$$$sleep 10 m (wacht 10 minuten en gaat dan verder met de volgende regel)

Waitcondition
Wacht tot aan voorwaarde is voldaan
Syntax: waitcondition [IO] [operator] [waarde]
Voorbeelden: $$$waitcondition AI1 > AQ1 (wacht tot AI1 groter is dan AQ1, dan verder met volgende regel)$$$waitcondition AI1 + 3 > value1 (wacht tot AI1 + 3 groter is dan de variabele value1, dan verder met volgende regel)

Set
Zet een ingang, uitgang of variabele op een waarde
Syntax: set [IO] = [waarde]
Voorbeelden:
set AQ1 = AI1 - AI2 (trekt AI2 af van AI1 en zet het resultaat op AQ1)$$$set value1 = AI2 + AI3 (telt AI2 en AI3 op en zet de variabele value1 op het resultaat)

Setpulse
Pulseert een ingang of uitgang
Syntax: setpulse [IO]
Voorbeelden:
setpulse AQ1 (geeft een korte puls aan AQ1)$$$setpulse AI2 = 4 (geeft een korte puls met waarde 4 aan AI2)

Startsequence
Start een specifieke sequentie
Syntax: startsequence [nummer] of startsequence [naam van sequentie]
Voorbeelden:$$$$startsequence 2 (start de tweede sequentie)$$$$startsequence Alarm (start de sequentie met de naam "Alarm")

Return
Indien de huidige sequentie werd gestart door een andere sequentie met [startsequence], keert dit commando terug naar de aanroepende sequentie en gaat verder naar de volgende regel
Syntax: return

Goto
Ga naar specifieke regel
Syntax: goto [waarde]
Voorbeelden:
goto 1 (start de reeks vanaf het begin)$$$goto 23 (springt naar regel 23 en gaat van daar verder)

If $BR$$"If" controleert eerst of een voorwaarde waar is. Alleen als de voorwaarde waar is, worden de volgende commando's tot "endif" uitgevoerd.
Syntaxis: if [left term] [operator] [right term] ... endif
Voorbeeld:
if AQ3 >= 4
set AQ1 = AQ3
endif

Opmerkingen en teksten

Comment
Een opmerking aan de huidige regel toevoegen of de rest van de regel uitschakelen
Syntax: //$$$Examples:$$$$waitcondition AI2 > AI4 // wacht tot AI2 groter is dan AI4 (commentaar wordt gebruikt om de regel te beschrijven)$$$// waitcondition AI2 > AI4 (commentaarstreepjes worden aan het begin gebruikt om de hele regel uit te schakelen)

Text uitvoer TQ
Charakters tussen aanhalingstekens worden als tekst uitgevoerd, anders worden ze behandeld als analoge waarden
Syntax: set TQ = "..."
Voorbeelden:
[set TQ = AQ2] geeft als uitvoer "27.5"
[set TQ = "Waarde van AQ2 is" AQ2] geeft als uitvoer "Waarde van AQ2 is 27.5"