Unterschiedliche Programmierbefehle

Programmierung, Parametrierung Tipps und Tricks
Antworten
Martin
Technische Beratung
 

Beiträge: 69
Registriert: Mi 27. Mai 2009, 17:10
Kontaktdaten:

Unterschiedliche Programmierbefehle

Beitrag von Martin »

Hallo!

Hatte in letzter Zeit öfter mal Anfragen zu verschiedensten Fehlern im Programm. Am Ende hat sich dann immer herausgestellt, dass einfach nur ein paar Regeln nicht beachtet wurden.
Man muss nämlich bei der Verwendung und Reihenfolge von Befehlen schon etwas aufpassen:

Dass das ISYGLT-System die Programmierung ja permanent von vorne bis zum Ende zyklisch abarbeitet ist ja bekannt, zusätzlich muss man bei den unterschiedlichen Befehlsarten/-typen aufpassen:

Grundbefehle
Typ 1: Statische Befehle
AND, OR (H-/L-)FLANKE, KOPIE, NEG, ORB, ANDB, NEGB, KOPIEB, SPLITB, SETKONST, AVZ, AVZHMS, EVZ, EVZHMS, TASTE_STEP, MULT_8, DIV_8, IMPULS, TAKTGEN, KOPIEAA, HYSTEIN, HYSTAUS, SETGL, .......

Diese Befehle werden permanent ausgeführt und man muss aufpassen, dass man Bits/Bytes nicht (ungewollt) mehrfach mit beschreibt, denn es würde dann nur der letzte Befehl ausgeführt.
Beispiel:
TOR A1.1 = M3.3 ;M3.3 hat keine Funktion
AND A1.1 = M1.1 ;da hier immer überschrieben, jedoch M1.1 hat auch keine Funktion
KOPIE A1.1 A1.2 = M2.2 ;da hier wieder überschrieben, jedoch M2.2 hat auch keine Funktion
OR A1.1 = M4.4 ;am Ende wird nur M4.4 auf den Ausgang geschrieben
;die ersten 3 Zeilen sind also völlig sinnlos.....
Man kann das aber auch ausnutzen um z.B. Merker zu sparen oder beim Kopieren ganzer Programmblöcke schneller zu sein
AND M255.1 = M1.1 E1.1
SET A1.1 = M255.1

AND M255.1 = M1.1 E1.2
SET A1.2 = M255.1

AND M255.1 = M1.1 E1.3
SET A1.3 = M255.1

--hier kann der M255.1 im Debugger nicht simuliert werden. Zur besseren Übersicht definieren wir gerne den temporären Merker mit TEMP_1:
DEF M255.1 = TEMP_1

AND TEMP_1 = M1.1 E1.2
SET A1.2 = TEMP_1

AND TEMP_1 = M1.1 E1.3
SET A1.3 = TEMP_1


Typ 2: Dynamische Befehle ohne Bedingung
TOR, TAND, TORB, SET, RST, SETB, DGBLE, DGBLA, LTB, .......

Diese Befehle werden nur bearbeitet wenn sich an den "Quellbits" was ändert. D.h. die Zielbits können im Programm mehrfach verwendet werden ohne, dass Sie sich gegenseitig überschreiben.
z.B.:
TOR A1.1 = E1.1
SET A1.1 = E1.2
RST A1.1 = E1.3
DGBLE A1.1 A1.2 A1.3 = E1.4



Spezialbefehle

Typ 3: Befehle mit Bedingung
a: Dynamisch wenn Bedingung gesetzt:
DIMMER, DIMMER_LL, ......
z.B.:
DIMMER M10 = E1.1 E1.2 , M1.1
DIMMER_LL M10 = E1.4 E1.3 #1 #255 , M1.
1

Diese Befehle werden nur ausgeführt wenn die Bedingung gesetzt ist UND sich an den Quellbits was ändert

b: Statisch wenn Bedingung gesetzt
TRFDA, TRFB, ZMINMAX, SVB, SVRB, PARALLEL, .....

Diese Befehle werden statisch ausgeführt wenn die Bedingung gesetzt ist

******************************************

Zusätzlich gibt es noch eine Reihe and weiteren Spezialbefehlen und Definitionen in denen umfangreiche und komplexe Funktionen enthalten sind und die nicht zu den anderen Typen zugeordnet werden können
Grüße

Martin Daller
Technik
Bild
https://www.seebacher.de/
Antworten

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast