Relativ Programmieren unter S7

markuscps

Level-1
Beiträge
59
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPSler

welche Strategie verfolgt ihr unter S7, programmiert ihr alles relativ oder auch absolut?

Ich kenne zwei Möglichkeiten relativ zu Programmieren, Symbolisch oder die I/Os in einen Baustein schreiben.
(Der Lösungsweg mit dem DB wird unter dem Weihenstephan / OMAC - Standard verwendet soweit ich weiß)
Kennt ihr weitere/bessere Möglichkeiten und welche Vor und Nachteile bieten diese?

Danke
 
Was bedeutet eigentlich in dem Zusammenhang "relativ" und "absolut" programmieren?

Ich stelle mir dabei vor, dass bei "absolut" die Adresse ohne Variable feststeht, z.B.

U "eingang_xx"
...
L "db_yy".something

und bei "relativ" zB ein Arrayzugriff erfolgt, also in SCL

store := 0;

FBs und ähnliches sind auch irgendwie "relativ", weil in Wirklichkeit eine Art Anfangsadresse übergeben wird und von da aus die Zugriffsadressen ermittelt werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ob du nun symbolisch oder absolut programmierst, ist reine Geschmackssache.
Verwendest du DBs als Abstraktionsschicht, so kann es bei modularen Anlagen (Prozesstechnik, HLK, modulare Serienmaschinen ...) Vorteile bieten. Du kannst quasi objektorientiert arbeiten und hast hohe Wiederverwendbarkeit von Code. Allerdings kann - abhängig von Programmierstil - die Fehlersuche erheblich komplexer sein.

Gruß
Dieter
FB_Addon_TelNo{ height:15px !important; white-space: nowrap !important; background-color: #0ff0ff;}
 
In einer vernünftigen Programmierumgebung definiert der Programmierer Variablen, in der SPS-Welt regelmäßig mit einer exakten Typdefinition.

Um Adressen kümmert sich der Compiler. Ist das jetzt relativ oder absolut?
 
Guten Abend,
vlt hilft hier der Begriff "symbolische" Adressierung statt relativer.

Z.B:
ist ein FB erstellt bleiben die Symbolbezeichnungen der Variablen, so wie sie sind.
Ist eine Zuordnung zu treffen, also die Adressierung mit der E/A-Ebene, Merker oder Peripherie wird in der Symbol-Tabelle einfach die Absolut-Adresse geändert, bzw. zugeordnet.

Relativ: erst während der Bearbeitung des Bausteins (zur Laufzeit) wird die Adresse erzeugt, bzw berechnet. (Zeiger, indirekt)

So, ich hoffe das ist nicht zu verwirrend.

MfG
jb
 
Zuviel Werbung?
-> Hier kostenlos registrieren
unter relativ stelle ich mir vor das ich keine Ein oder Ausgaenge in meinem Programm verwende oder ueberhaupt auf globale Daten in einem Baustein verzichte um ihn ein einem anderen Projekt wiederverwenden zu koennen.

In dem OMAC-Standard werden alle Ein und Ausgaenge in einem DB abgelegt, arbeiten viele von euch auf diese Art?
Es gibt sicherlich Vor und Nachteile so zu Programmieren aber in Serienmaschinen halte ich das fuer sinnvoll, vor allem um die Daten in einem BDE-System zu uebergeben, was haltet ihr davon?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
du wuerdest allo nicht mit den DBs arbeiten?
???? Ich verwende E, A, und DBs und IDBs. Merker und S5 Timer verwende ich nur als notlösung wenn ich etwas quick-and-dirty zusammenwerfen muss.

Z.B.: Ein Transportband kann ich mittels den Adresse "Item_213".cmd.start starten, und mittels den Adresse "Item_213".status.run kann ich sehen ob es läuft. Welche DB adressen dahinter liegen interssieren mich nicht.
 
Zurück
Oben