joergflorian
Level-1
- Beiträge
- 19
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen... Ich bin gerade neu hier im Forum und habe noch wenig Erfahrung mit Step7.
Ich möchte einen Funktionsbaustein programmieren, um den Controller eines Motors anzusteuern.
Ich habe eine CPU 313C-2 DP, Step7 (V5.4 + SP1) und S7-SCL (V5.3 + SP1)
Im HW Konfig sieht das Mapping für den Controller folgendermassen aus:
A 10...11 // Control
E 10...11 // Status
E 20...21 // Get StateVar
E 22...25 // Get Actual Position
A 20...39 // Command Interface
Nun meine Frage:
Ist es irgendwie möglich, dass ich dem Funktionsblock nur die Anfangsadresse von "Status" als Eingang übergeben kann (nenne ihn mal Startadresse), und anschliessend innerhalb des FB die verschiedenen Daten einlesen bzw schreiben kann?
Zum Beispiel: Status (WORD) := Startadresse (und 2 Byte lesen)
StateVar (WORD):= Startadresse + 10 Bytes (und 2 Byte lesen)
ActualPosition (DWORD):= Startadresse + 12 Bytes (und 4 Bytes lesen)
also die Startadresse inkrementieren und eine gewisse Byteanzahl auslesen.
Ausserdem möchte ich dann abhängig von der Startadresse direkt auf die Peripherieausgänge schreiben können.
Der Grund: Der Baustein sollte mit möglichst wenigen Ein und Ausgängen auskommen. Ich fände dies eine elegante Möglichkeit, leider ist mein Wissen noch zu eingeschränkt.
Habt ihr irgendwelche Tipps, wie ich das anpacken könnte? Beispiele oder Hinweise auf was ich schauen muss. Ist es überhaupt möglich?
PS: Am Besten mit SCL
Besten Dank für eure Mühe
Florian
Ich möchte einen Funktionsbaustein programmieren, um den Controller eines Motors anzusteuern.
Ich habe eine CPU 313C-2 DP, Step7 (V5.4 + SP1) und S7-SCL (V5.3 + SP1)
Im HW Konfig sieht das Mapping für den Controller folgendermassen aus:
A 10...11 // Control
E 10...11 // Status
E 20...21 // Get StateVar
E 22...25 // Get Actual Position
A 20...39 // Command Interface
Nun meine Frage:
Ist es irgendwie möglich, dass ich dem Funktionsblock nur die Anfangsadresse von "Status" als Eingang übergeben kann (nenne ihn mal Startadresse), und anschliessend innerhalb des FB die verschiedenen Daten einlesen bzw schreiben kann?
Zum Beispiel: Status (WORD) := Startadresse (und 2 Byte lesen)
StateVar (WORD):= Startadresse + 10 Bytes (und 2 Byte lesen)
ActualPosition (DWORD):= Startadresse + 12 Bytes (und 4 Bytes lesen)
also die Startadresse inkrementieren und eine gewisse Byteanzahl auslesen.
Ausserdem möchte ich dann abhängig von der Startadresse direkt auf die Peripherieausgänge schreiben können.
Der Grund: Der Baustein sollte mit möglichst wenigen Ein und Ausgängen auskommen. Ich fände dies eine elegante Möglichkeit, leider ist mein Wissen noch zu eingeschränkt.
Habt ihr irgendwelche Tipps, wie ich das anpacken könnte? Beispiele oder Hinweise auf was ich schauen muss. Ist es überhaupt möglich?
PS: Am Besten mit SCL
Besten Dank für eure Mühe
Florian