Technical Forum

Prozessleitsystem SIMATIC PCS 7

PCS7 V7.1 SP3 Treibergenarator

Erstellt von zero am 02.12.2011 16:06 (6 Antworten)

« Vorheriges Thema Nächstes Thema »
Seite 1 von 1 (7 Objekte)
  02.12.2011, 16:06
Beigetreten am: 20.07.2007
Letzter Besuch: 25.04.2013
Beiträge: 40
Bewertung:
Bewertung: Herausragend [4 von 5 / 3 mal bewertet]. (3) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 

Hallo,

wir möchten selbst erstellte technologische Funktionsbausteine, für Profibus DP Slaves automatisch (mit Hilfe des Treibergenarator) mit dem übergeordneten Diagnosebaustein (OB_DIAG1) im CFC verschalten lassen.

Das funktioniert auch sehr gut, wenn in der  HW Konfig für den jeweiligen Slave nur ein Modul gesteckt wurde.

Leider gibt es Probleme so bald mehrere Module "gesteckt" wurden. Die Verschaltung funkktioniert dann häufig nicht.

Die .xml Dateien für das Treibergenerator Metawisssen wurden mit Hilfe der "PCS7 Programmieranleitung für Treiberbausteine" erstellt. 

Im Anhang der code Schnipsel aus der "Action List" in der wir das Problem vermuten. Hier wird nur ein Modul bearbeitet und scheinbar wird das erste in der HW Konfig gesteckte Modul hier nicht immer als erstes bearbeitet. Für die Zuordnung zwischen unserem Baustein und dem übergeordneten Treiberbaustein würde aber die Adresse des ersten in der   HW Konfig gesteckten Moduls ausreichen.

Wie kan man die "Action List" für die Module so ändern, das  immer die Adresse des ersten in der  HW Konfig gesteckten Modul in die Variable eingetragen wird.

Oder wo kann ich weiterführende Information für den Treibergenerator finden.

Mit freundlichen Grüßen

p.s. hoffentlich kann einer mit der oben stehenden Buchstabensuppe etwas anfangen

 

 

 


Dateianhang: xml_code_schnipsel.GIF  (24 Downloads)

Top
  06.12.2011, 13:47
Beigetreten am: 26.10.2011
Letzter Besuch: 25.04.2013
Beiträge: 264
Bewertung:
Bewertung: Exzellent [4,63 von 5 / 41 mal bewertet]. (41) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 

Hallo Zero,

im "SIMATIC Prozessleitsystem PCS 7 Kompendium Teil A - Projektierungsleitfaden" steht im Kapitel 5.1.3:
"...Analog zur Erstellung technologischer Bausteine können Sie mit PCS 7 auch
Treiberbausteine erstellen.
... Für die Erstellung verwenden Sie das Handbuch "PCS 7 – Programmieranleitung Bausteine"
für die entsprechende PCS 7 Version. Hier werden alle Aspekte zur Erstellung "PCS 7
konformer" Treiberbausteine behandelt.
 
Für die Erstellung von Treiberbausteinen sollten Sie gegebenenfalls eine entsprechende
SIEMENS Fachabteilung beauftragen."

Link für "SIMATIC Prozessleitsystem PCS 7 Kompendium Teil A - Projektierungsleitfaden":
http://support.automation.siemens.com/WW/view/de/35016996

Link für das Handbuch "PCS 7 – Programmieranleitung Bausteine":
http://support.automation.siemens.com/WW/view/de/24449702

Grüße
Thunderstorm



With best regards,
Thunderstorm
Top
  03.05.2012, 10:13
Beigetreten am: 03.05.2012
Letzter Besuch: 05.10.2012
Beiträge: 3
Bewertung:
Bewertung: Exzellent [5 von 5 / 1 mal bewertet]. (1) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Hallo zero,

ist schon eine Weile her, hast du dein Problem gelöst? Ich würde einfach in Zeile 327 statt OBJINDEX auf SLOT NE 0 abfragen. Genauso in Zeile 336.

Aber ich vermute eh, dass das mittlerweile nicht mehr aktuell ist.

Gruß,
mattsches
Top
Für diesen Beitrag bedankt sich:
  03.05.2012, 10:56
Beigetreten am: 20.07.2007
Letzter Besuch: 25.04.2013
Beiträge: 40
Bewertung:
Bewertung: Herausragend [4 von 5 / 3 mal bewertet]. (3) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 

Hallo mattsches,

danke für deinen Beitrag. Nein, das Problem ist noch nicht gelöst. Auch die Hotline konnte  nach mehreren Wochen keine Lösung finden, sondern bot dann eine kostenpflichtige Fehlersuche an.Rnf:lblSmileyTooltip_

Meine Suche nach nach einer detailierten Dokumentation blieb ebenfalls erfolglos.

Natürlich habe ich gleich mal statt "OBJINDEX"  "SLOT" eingetragen. Leider kommt dann die Fehlermeldung "der Wert SLOT ist nicht definiert".

Vielleicht hast noch einen Tip für mich. Ich greife hier nach jedem Strohhalm!

 

mfg zero 

Top
  03.05.2012, 11:16
Beigetreten am: 03.05.2012
Letzter Besuch: 05.10.2012
Beiträge: 3
Bewertung:
Bewertung: Exzellent [5 von 5 / 1 mal bewertet]. (1) 
Bewertung: Exzellent [5 von 5 / 1 mal bewertet]. (1) 
Hallo zero,

sorry, ja, ich hatte übersehen, dass in Deinem Codeschnipsel der Steckplatz ja gar nicht ausgewertet (und die Variable SLOT gebildet) wird. Füg' mal die beiden rot markierten Abschnitte von meinem Anhang ein, dann sollte SLOT zur Verfügung stehen.

Die verwendete AUTATTRVAL-Funktion liefert immer einen um 4 versetzten Wert, also SLOT_NO = 4 entspricht in der Realität Steckplatz 0. Warum das so ist, weiß ich nicht, nicht fragen, nur wundern. Mit der zweiten Variable SLOT wird das korrigiert, dann arbeitet es sich etwas bequemer (meine Datei ist etwas umfangreicher).

Übrigens ist es ungemein hilfreich, beim Erzeugen der Baugruppentreiber ein Protokoll mitschreiben zu lassen. Wie du das machst, findest du in Kap. 6.4.4. der Programmieranleitung Treiberbausteine.

Übrigens scheint es so, als würde der Treibergenerator die Module in der zeitlichen Reihenfolge ihrer Konfiguration bearbeiten. Wenn also z. B. das Modul in Steckplatz 0 nach dem in 1 gelöscht und wieder eingefügt wird, kommt (zeitlich gesehen) wohl zuerst 1 und dann 0 an die Reihe. Ist mir auch schon auf die Füße gefallen.

Gruß,
mattsches
Top
  03.05.2012, 11:53
Beigetreten am: 20.07.2007
Letzter Besuch: 25.04.2013
Beiträge: 40
Bewertung:
Bewertung: Herausragend [4 von 5 / 3 mal bewertet]. (3) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 

Hallo mattsches,

der Tip war genau Richtig.

Für die Variable "SLOT" ist folgender Eintrag erforderlich:

<AUTATTRVAL ATTR="111241" AUTTYPE="LONG">
<VAR>SLOT</VAR>
<EXP_RET>GE 0</EXP_RET>
 </AUTATTRVAL>

Der Steckplatz kann dann über:

<IGNORE>(SLOT NE 1)</IGNORE>

ermittelt werden und das Problem ist gelöst.

 

Vielen Dank!

 

mfg zero

 

 

Top
  03.05.2012, 12:19
Beigetreten am: 03.05.2012
Letzter Besuch: 05.10.2012
Beiträge: 3
Bewertung:
Bewertung: Exzellent [5 von 5 / 1 mal bewertet]. (1) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Hallo zero,

prima, dann habe ich auch gleich noch was gelernt.

Schau dir vielleicht sicherheitshalber noch das Verhalten an, wenn der DP-Mode der Schnittstelle auf dem Master von DPV1 auf S7-kompatibel gestellt wird. Das ändert die Nummerierung der Steckplätze aller Slaves, sie beginnt dann nicht mehr mit 1, sondern mit 0. Wenn dann die Funktion 111241 auch mit 0 zurückkommt, würde deine XML erst beim zweiten Modul anschlagen. In dem Fall wäre vielleicht doch die 110683 minus 4 besser.

Frohes Schaffen noch und viele Grüße,

mattsches
Top
Seite 1 von 1 (7 Objekte)
Aktionen