Step 7 Logische Basisadresse auslesen anhand der DP-Adresse

Kaewien

Level-1
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum,

Um ein Slave zu de-/aktivieren mit Hilfe des SFC12 benötigt man eine beliebige logische Basisadresse.
Ist es möglich eine solche anhand der Profibusadresse im Programm auszuwerten/auszulesen?

Ziel ist es über eine eingestellte Profibusadresse den Slave zu de-/aktivieren OHNE den Diagnose FB125/126.

Im OB86 bekomme ich die Adresse zwar, aber nur bei einem kommenden oder gehenden Erieignis.

Mit freundlichen Grüßen
Kevin
 
Dafür gibt's den SFC5 "GADR_LGC", mit dem kannst du anhand der Profibus SUBNETID und der Stationsnummer logische Basisadresse ermitteln.
 
Hallo Kevin,

ich hoffe, ich bin nicht der einzige Dumme der sich diese Frage stellt, aber wofür benötigt man denn so etwas? Die Basisadressen werden doch normalerweise schon mit der Projektierung festgelegt?


Gruß, Onkel
 
Hi Onkel Dagobert,

mein Ziel ist es einzelne Slaves über ein übergeordnetes Prozessleitsystem zu de-/aktivieren. Wir haben sehr viele Frequenzumrichter in der Anlageund die werden gelegentlich mal getauscht. Weiterhin wird in unserer Anlage viel ausprobiert (neue Umrichter hier, weniger Umrichter da :ROFLMAO:)
HW-Konfig bearbeiten und Laden geht nur im Stop - selten habe ich die Möglichkeit.
Damit die Steuerung immer Sauber da steht möchte ich die deaktivieren, möglichst über die Profibusadresse und nicht über die logische Basisadresse.

Damit mein Meister das auch kann :ROFLMAO:

Ich weiß, man kann die Steuerung auch einfach mit einem Busfehler stehen lassen, aber man muss sein können ja auch festigen mit Projekten.

Gruß Kevin
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Kevin,

ok verstehe, so einen Meister habe ich auch ;) . Aber warum du die Basisadresse auslesen musst, kapiere ich immer noch nicht. Wenn die Adressen für Frequenzumrichter mit DP-Nr. 28 beispielsweise bei 198 beginnt, dann ist das doch in der HW-Konfig fest definiert und man muss es nicht noch einmal auslesen? Oder verstehe ich das irgendwie total falsch?

Gruß, Onkel
 
Hi,

Du meinst ich könnte die Basisadressen gleich von Anfang an in meinen Programm fest zu den jeweiligen DP-Adressen deklarieren?

Mein Programm soll nur mit den DP-Adressen umgehen können und kennt die Basisadressen nicht. Die kennt nur die HW-Konfig.

Wenn ich neue Slaves hinzufügen würde, müsste ich die Basisadressen dann in meinen Programm wieder definieren.

Input zum deaktivieren soll sein: 1. DP-Adresse (3-126) + 2. aktivieren/deaktivieren? + 3. Auftrag absenden

Gruß Kevin
 
Na ja, im Prinzip wird die LADDR/Diag-Adrresse schon durch das Einfügen des TNs in der HW Konfig definiert (auch wenn vom System autom. vorgegeben).

Hier macht es ja auch Sinn da ein System sich zu Überlegen ...
Also zB feste Startadresse + PB-Adr. des TNs (also z.B. ab Start 8000 -> PB3 = 8003).

Ist halt auch so, das diese Adresse ja erst einmal vom System automatisch vergeben wird (wie geschrieben).
Somit kann man schon via SFC12 arbeiten und sich neben Diagnose- auch die E/A Adressen der Slots raus holen ...
Ist zB Vorteilhaft wenn man auch einen entsprechenden FB schreibt, der benötigt dann nur die PB-Adr. sowie aktivieren oder deaktivieren!
Du liest halt den Slot 0 aus und hast die Diag-Adresse (im Slot 1, wäre dann auch die Start E- oder A-Adresse).

Ist aber schon so in der Art, kann man muss man aber nicht machen, aber weil wir es können machen wir es :rolleyes:
Bringt aber zB dann Vorteile wenn Du viele verschiedene Anlagen hast und dann kannst leichter bei Nachrüstungen oder so ein Optionshandling gestallten!
Das ganze geht dann nur über die PB-Nr des TNs, Rest macht die PLC automatisch!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Boxy,

Es ist richtig, dass die Adressen von Siemens schon vordefiniert werden. Diagnoseadresse eines Slave's benötige ich allerdings für mein vorhaben nicht.

Da mein Funktionsbaustein nur die PB-Adressen kennt und die Basisadressen nicht (die ich benötige), lese ich die aus. Der Vorteil ist, dass ich den FB auch in andere Steuerungen reinschmeissen kann.
 
Zuletzt bearbeitet:
Hallo Boxy,

Es ist richtig, dass die Adressen von Siemens schon vordefiniert werden. Diagnoseadresse eines Slave's benötige ich allerdings für mein vorhaben nicht.

Du benötigst diese (Diagnoseadresse) schon, den das ist die Adresse welche Du am SFC12 unter LADDR angibst, nur Du ermittelst diese über den SFC5 (Slot 0). Mache ich ja auch teils so, bzw ich hole mir die E-/A Startadressen um mit diesen zu arbeiten.

Schaue doch einmal in die HW-Konfig was da unter Adressen steht (Diagnoseadresse) :rolleyes:
 
Du benötigst diese (Diagnoseadresse) schon, den das ist die Adresse welche Du am SFC12 unter LADDR angibst, nur Du ermittelst diese über den SFC5 (Slot 0). Mache ich ja auch teils so, bzw ich hole mir die E-/A Startadressen um mit diesen zu arbeiten.

Schaue doch einmal in die HW-Konfig was da unter Adressen steht (Diagnoseadresse) :rolleyes:

Beispiel: Der Slave mit der Profibus-Adresse 6 hat eine Diagnoseadresse '2042' und eine logische Basisadresse beginnend bei 328.

Bei dem SFC 12 gebe ich unter LADDR die im Beispiel genannte logische Basisadresse von '328' an.

Wo sollte ich die Diagnoseadresse zum deaktivieren eines Slaves verwenden?
Oder gibt es noch eine weitere Möglichkeit?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss am Montag nochmals genau bei mir schauen.
Habe hier nix von der Firma Zuhause :).
Bin mir aber eigentlich sicher, ich mache es über die Diagonseadresse welche in der HW Konfig eingetragen ist!
 
Ja es wäre interessant zu wissen ob es auch mit der Diagnoseadresse ginge.
Ich habe es bisher nur erfolgreich mit der logischen Basisadresse programmiert.
 
Zurück
Oben