TIA Auslesen der aktuellen Hardware-Konguration und gesteckter Module im Programm (1500)

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi zusammen

Ich arbeite aktuell für einen Hardware-Hersteller und entwickele Treiber für die Einbindung der Geräte in die Kundenapplikation. Die Treiber sollen dabei für eine ganze Produktreihe uneingeschränkt gültig sein. Es ist allerdings so, daß innerhalb dieser Produktpalette ziemliche Unterschiede zwischen den Komponenten gibt, deswegen muss der Treiber auslesen können, was denn nun in der HW-Configuration tatsächlich projektiert ist, und ob der gesteckte Typ dem geforderten / projektierten Gerätetyp entspricht. In der klassischen Welt hats ja eine SFC51, die über einen 0C96 Datensatz alle diese Informationen kompakt beisammenbringt.

Was mache ich allerdings in TIA auf ner CPU neueren Typs ?

Die einzige Funktion, die ich dafür ausfindig machen konnte, ist die "Read_IM_Data", diese ist allerdings allem Anschein nichts anderes als ein verdeckter azyklischer Zugriff. Das kann ich nicht gebrauchen, schon alleine deswegen weil ich damit nur am Bus aktive, korrekt konfigurierte Geräte ansprechen kann.

Hat hier Firma Siemens wieder mal essenziell wichtige Funktionalitäten kaputt optimiert ?

Danke für die Hilfe
 
Hast du mal getestet ob es den SFC51 nicht vielleicht doch noch gibt und du ihn wie gewohnt weiter verwenden kannst ...?

Gruß
Larry
 
Hallo zusammen,

laut dieser Beschreibung ist der SFC51 in der 1500ér nicht mehr verfügbar. Hier werden
die alternativen Bausteine angeboten, der 0C96 taucht dort allerdings nicht auf.

https://support.industry.siemens.co...from-s7-300-s7-400-to-s7-1500-?dti=0&lc=en-DE

Diesen sog. "Migrationsleitfaden" habe ich bereits kreuz und quer gelesen. Und er hilft mir ungefähr so weiter, wie der Versuch, ein Artilleriegeschütz mit einem Winkeldreieck auszurichten.
 
Ich denke, was du suchst sind die "Profinet IO Konfigurationsdatensätze", welche man mittels RDREC lesen kann.
Auf die Schnelle hab ich folgendes gefunden:
TIA-Hilfe: PLC-Programieren -> Anweisungen -> Anweisungen (S7-1200, S7-1500) -> Erweiterte Anweisungen -> Übersicht über die Typen von Datensätzen
unterster Abschnitt ("Diagnosedatensätze & Konfigurationsdatensätze")
Hier ist vom Lesen der Sollkonfiguration die Rede

Ein Klick auf "PROFINET-IO" führt dann zu
https://support.industry.siemens.com/cs/ww/de/view/19289930

Hier ist von den Datensätzen 16#8000 16#c000 und 16#e000 die Rede (Seite 5-9, pdf-Seite 33), welche die Sollkonfiguration auf verschiedenen Ebenen enthalten.
Weiter habe ich jetzt selber nicht nachgebohrt, ob diese Konfiguration direkt vom Teilnehmer gelesen wird oder ob diese in der CPU gespeichert ist weiß ich natürlich nicht.

Die hierarchischen Slot/Subslot-Infos sollten sich mittels LOG2GEO herausfinden lassen

lg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Link. Das Dokument ist mir bekannt.

Das Problem ist, daß RDREC wie bereits oben erwähnt, einen azyklischen Zugriff bedeutet.

Das hat folgende Schwierigkeiten zur Folge:

- Ich kann die Anweisung nicht in einem Zyklus abarbeiten;
- Die Zugriffszeiten sind je nach Peripherie 20-30mS;
- Die Anzahl der gleichzeitig / parallel stattfindenden Zugriffe ist je nach CPU Typ auf 4, 8 oder 12 Zugriffe beschränkt (Von den Hardwareeinheiten kann es aber deutlich mehr pro CPU geben);
- Ein Zugriff auf deaktivierte oder ausgesteckte Peripherie ist damit nicht möglich;

Die gleichen Probleme habe ich auch mit der Anweisung "Read_IM_Data". Die I&M Daten konnte ich vorher schon durch azyklischen Zugriff lesen, mit den gleichen Einschränkungen. Es nützt mir nichts, wenn Firma Siemens diesen Zugriff umetikettiert und unter einem anderen Namen in eine Systemfunktion verpackt, dabei aber das wichtigste Diagnosewerkzeug auf der Steuerung zur Hardwarediagnose überhaupt, kurzerhand abschafft und wegoptimiert. So dumm kann man doch gar nicht sein.

Systemfunktionen_1500.JPG
 
Zuletzt bearbeitet:
Das Problem ist, daß RDREC wie bereits oben erwähnt einen azyklischen Zugriff bedeutet.
Das sollte per se kein Ausschlusskriterium sein

- Ich kann die Anweisung nicht in einem Zyklus abarbeiten;
detto

- Die Zugriffszeiten sind je nach Peripherie 20-30mS;
Da du ja nur den Sollausbau lesen willst, und das i.d.R. nach dem Hochlauf nur ein mal notwendig ist, sollte das kein wirkliches Problem sein.

- Die Anzahl der gleichzeitig / parallel stattfindenden Zugriffe ist je nach CPU Typ auf 4, 8 oder 12 Zugriffe beschränkt (Von den Hardwareeinheiten kann es aber deutlich mehr pro CPU geben);
Diese Einschränkung galt so für S7-300, die Grenzen sind bei S7-1500 wesentlich höher. Zudem bleibt das oben gesagte gültig - da du ja nur den Sollausbau haben willst, und das nur ein mal notwendig ist, werden nach und nach schon alle dran kommen.

Die gleichen Probleme habe ich auch mit der Anweisung "Read_IM_Data". Die I&M Daten konnte ich vorher schon durch azyklischen Zugriff lesen, mit den gleichen Einschränkungen.
I&M-Daten enthalten per Definition auch so Dinge wie Seriennummern, Firmwareversionen usw. - diese Daten sind logischerweise direkt vom Modul zu lesen. Es gibt auch Datensätze, die in den Systemdaten der CPU gespeichert sind. Deine Aufgabe wird sein, herauszufinden, ob die genannten Daten auch ohne gesteckte Peripherie vorhanden sind.

Es nützt mir nichts, wenn Firma Siemens diesen Zugriff umetikettiert und unter einem anderen Namen in eine Systemfunktion verpackt, dabei aber das wichtigste Diagnosewerkzeug auf der Steuerung zur Hardwarediagnose überhaupt, kurzerhand abschafft und wegoptimiert. So dämlich kann man doch gar nicht sein.
Ja, sowas kann schon mal passieren - ich hab mich auch geärgert, als der Datensatz 40 von Siemens F-Modulen per Profinet nicht mehr gelesen werden konnte. Auf Siemens zu wettern, dass sie die einfachste Möglichkeit abgeschafft haben, wird dich nicht weiter bringen.

Ebenso kann man wettern, dass durch den ganzen Klimbim am Smartphone der Akku nur noch 2 Tage hielt statt 2 Wochen - und man die Telefonierfunktion suchen musste. Ändert es etwas daran?

lg
 
Diese Einschränkung galt so für S7-300, die Grenzen sind bei S7-1500 wesentlich höher. Zudem bleibt das oben gesagte gültig - da du ja nur den Sollausbau haben willst, und das nur ein mal notwendig ist, werden nach und nach schon alle dran kommen.

Das weiß ich nicht, die Bibliotheken sollen auf allen verfügbaren XXXX CPUs laufen. Also im Worst Case auch auf einer 1211 Quitsche-Ente.

Da du ja nur den Sollausbau lesen willst, und das i.d.R. nach dem Hochlauf nur ein mal notwendig ist, sollte das kein wirkliches Problem sein.

Geht so. Ich muss eigentlich auch noch den Istausbau lesen. Ich werds mal testen was bei dem E8000 rauskommt.

da du ja nur den Sollausbau haben willst, und das nur ein mal notwendig ist, werden nach und nach schon alle dran kommen.

Das funktioniert definitiv nicht, denn dafür bräuchte ich ja ein Management der azyklischen Aufträge im Programm mit Wartebuffer etc. Dies wiederspricht aber der Logik eines autarken Treiberbausteins. Das Kundenprogramm könnte ja auch parallel irgendwas lesen oder schreiben.
 
Also ganz unbedacht will ich mal einwerfen das die von dir gewünschte Funktion im TIA Portal integriert ist, ich kann dort ja foe angeschlossene Hardware auslesen und ins Projekt setzen - daher gehe ich davon aus das die Funktionalität für Siemens Komponenten gegeben ist.
Es scheint also einen Kommunikationsweg zu geben, wie Siemens das macht keine Ahnung.
Ja ich weiß gut mir leid der Beitrag war jetzt nicht sehr hilfreich :-(

Gesendet von meinem SM-G935F mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt auch von meiner Seite noch einen "unbrauchbaren" Kommentar dazu :

Ich hätte in jedem Fall auch mal bei Siemens einen Support-Request gestartet mit dem Inhalt : "Ich möchte gerne diese und jene Informationen (natürlich wären hier genaue Angaben hilfreich) von der CPU zur Laufzeit auslesen - geht das ? Und wenn ja - wie ?"
Im TIA-Portal sind sehr viele Funktionalitäten nicht mehr so schön (bzw. gar nicht) dokumentiert wie zur guten alten S7-Classic-Zeit. Dennoch sind sie möglicherweise vorhanden und abrufbar ... also : Versuch macht klug ...

Und noch einmal wegen synchron und asynchron : bei derartigen Funktionalitäten würde ich immer davon ausgehen, dass die Informationen asynchron zur Verfügung gestellt werden - ist auch erstmal nicht verwerflich denn so häufig ändert sich da nichts. Ich hätte jetzt sogar behauptet, dass das schon beim SFC51 so ist/war ...

Gruß
Larry
 
das ist wieder nen typischer Draco ;)
Auch mit dem SFC51 bekommst du über den 0c96 nicht alle der aufgelisteten gewünschten Daten!

Aber hauptsache erstmal meckern, das hilft dann auch sehr viel weiter.
 
das ist wieder nen typischer Draco ;)
Auch mit dem SFC51 bekommst du über den 0c96 nicht alle der aufgelisteten gewünschten Daten!

Aber hauptsache erstmal meckern, das hilft dann auch sehr viel weiter.

Laber nicht. Sollen wir jetzt um 10 000€ wetten, daß ich sie mit der SFC51 definitiv alle und definitiv zur Laufzeit bekomme ?
 
Deine Aufgabe wird sein, herauszufinden, ob die genannten Daten auch ohne gesteckte Peripherie vorhanden sind.

Nach 3/4h "Rausfinden" mit UDT zur Datenablage bauen und ausprobieren verschiedener HW-Komponenten bekomme ich die folgende Fehlermeldung

Code:
80B2
  • Der projektierte Steckplatz ist nicht belegt.
  • Für PROFINET IO und PROFIBUS DP: IO-Device / DP-Slave nicht erreichbar

War mir zwar auch vorher schon irgendwie klar, aber gewisse Leute haben bestimmt noch mehr tolle Ratschläge auf Lager, deswegen mache ich das jetzt einmal amtlich, und mit Fehlernummer.
Die zueghörige Fehlernummer ist im Übrigen die gleiche, die ich für einen azyklischen Zugriff auf den Datensatz 47 oder B02E oder bei I&M Data bekomme, wenn die BG ausgefallen oder nicht ansprechbar ist.
 
Zuletzt bearbeitet:
Jetzt auch von meiner Seite noch einen "unbrauchbaren" Kommentar dazu :

Ich hätte in jedem Fall auch mal bei Siemens einen Support-Request gestartet mit dem Inhalt : "Ich möchte gerne diese und jene Informationen (natürlich wären hier genaue Angaben hilfreich) von der CPU zur Laufzeit auslesen - geht das ? Und wenn ja - wie ?"
Im TIA-Portal sind sehr viele Funktionalitäten nicht mehr so schön (bzw. gar nicht) dokumentiert wie zur guten alten S7-Classic-Zeit. Dennoch sind sie möglicherweise vorhanden und abrufbar ... also : Versuch macht klug ...

Das werde ich wohl noch machen, weil es auch das einzige ist, was übrig bleibt. Viel Hoffnung habe ich allerdings nicht.

Was mich noch mehr verwundert - bin ich eigentlich der einzige, der überhaupt mal etwas mit der Diagnose auf der Hardware macht oder diese in irgendeiner Form braucht ? Programmieren die anderen Leute, die 1500 nutzen, heute nur noch bunte Animes und Quitschie-Enten auf Ihren Steuerungen ? Bei hinreichend vorhandenem Kundendruck wäre Siemens doch niemals auf die Idee gekommen, die Diagnosedatensätze abzuschaffen.


bei derartigen Funktionalitäten würde ich immer davon ausgehen, dass die Informationen asynchron zur Verfügung gestellt werden - ist auch erstmal nicht verwerflich denn so häufig ändert sich da nichts.
Naja, wenn ein TLG beim Gerät programmmäßig umkonfigurieren werden kann, sodaß nach dem Aufstarten da ein anderes TLG hinterlegt ist ? Oder Geräte, die CIR konguguriert sind ? Oder beides auf einmal ?

Ich hätte jetzt sogar behauptet, dass das schon beim SFC51 so ist/war ...
Dem ist nicht so. Aber dafür muss sich der Kollege Christoph mal äußern.
 
das ist wieder nen typischer Draco ;)
Auch mit dem SFC51 bekommst du über den 0c96 nicht alle der aufgelisteten gewünschten Daten!

Aber hauptsache erstmal meckern, das hilft dann auch sehr viel weiter.

So, jetzt mal Butter bei die Fische. Gibst Du zu, daß der obige Beitrag nicht dem Tatsachenstand entspricht und nicht von übermäßiger Sachkunde zeugt, oder soll ich dir schon mal vorsorglich meine Bankverbindung geben ?
 
Zurück
Oben