OOP mit Step7

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich wollte fragen ob jemand eine Möglichkeit weiß, eine Art Objektorientiertes programmieren mit Step7 (winsps, simatic) zu verwirklichen. Ich beziehe mich dabei auf die Anwendung von Klassen.

Es wäre schön, wenn FCs auch Klassencharakter (parametrierbar und öfter aufrufbar) haben könnten.
Ich habe es bisher so probiert, dass ich dem FC nicht nur ein und ausgänge, sondern auch Merker zugewiesen habe, dadurch kann man einen FC öfter aufrufen (mit verschiedenen Ein,-und Ausgängen), jedoch muss man die Speicher für jeden seperat verlegen. Bei großen Programmen wird dies sehr unübersichlich und aufwendig.

Mit lokaldaten oder statischen Daten gehts leider auch nicht... die FCs benutzen alle die gleichen. :(
Vielen Dank schonmal,
Gruß, Ben
 
Vielleicht reicht Dir schon ein FB mit Instanz DBs.

Ein- und Ausgänge werden von Aussen vorgegeben und die Merker und Zwischenwerte etc. liegen im Instanz-DB (einen eigenen für jeden aufruf des FBs).

Oder habe ich deine Frage fallsch verstanden :?:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank!
hat alles geklappt :) wusste nicht, dass man bei FBs verschiedene Datenbanken für den selben FB angeben kann :/

Kann man, um sich die Sache noch zu vereinfachen auch als variablentyp ein byte angeben und dann auf die einzelnen bits zugreifen?


also z.B.: (in der Deklarationstabelle)

var: ME0 Typ: BYTE

u #ME0.0 klappt leider nicht :/
 
ME0 ist ja auch nur der symboliche Name. Leider kannst Du nur über pointer auf die einzelnen Bits zugreifen.
Code:
lar1 p##ME0
U[AR1,p#0.x]

pt
 
moin,

versuch mal dein me0 in die TEMP-vari zu kopieren..
(der temp-bereich hat lokale adressen)

var: ME0 Typ: BYTE (IN ??)
var temp : meo_local Typ: byte (TEMP)

L ME0 // dein Eingang
T ME0_local // in die lokalen Temp-Variablen

U L 1.0 // Adresse der einzelnen Bits steht in der Deklaration
U L 1.1
= M45.3

grüsse - andy 8)
 
Zurück
Oben