Botimperator
Level-2
- Beiträge
- 648
- Reaktionspunkte
- 289
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe mich mal wieder an eine Lösung für folgendes Thema gemacht:
https://www.sps-forum.de/threads/tia-safety-diagnoseinfos-von-der-hardware-aufbereiten.112111/
SPS: S7-1515F-2 PN
F-DI Baugruppe: 6ES7 136-6BA01-0CA0
TIA V18 mit Safety advanced
Der Plan war einen kleinen Baustein zu schreiben, der mir alle Zustandsinformationen zu dem F-Di Modul liest & in einen UDT packt, den ich dann am HMI in einem Bildbaustein visualisieren kann.
So weit, so undramatisch...(könnte man meinen)
Die FC-Schnittstelle habe ich folgendermaßen aufgebaut:


Grundlegend funktioniert das Ganze.
- an "iFPeripherieDb" verschalte ich den Peripherie-DB der Baugruppe
- An "iPerData" das Wort mit den F-Inputs + deren Wertstatus
- Da ich noch keine Möglichkeit gefunden habe die Kanal-Konfiguration aus dem Anwenderprogramm heraus zu lesen, muss ich die Konfig über die "iHwKanal_..." manuell setzen. Ist nicht schön, aber immer noch schöner als die aktuelle Lösung.
- Die Daten werden also übergeben, zusammengefasst, etwas aufbereitet & dann über den UDT "ioDisplay" ans HMI geschickt.
Also war klein Botimperator erstmal glücklich, wollte den Baustein als Abschluss seines Freitags in seine Bibliothek packen & sich mit einem Bier in der Hand seinem Fabrik-Projekt in Satisfacory zuwenden.
Dann kam einer dieser "ach f*ck dich"-Momente, die wir Siemens-Programmierer so lieben.

Anscheinend, soweit ich das verstehe, ist "F_PS_IN_1_0_0_0_0_0_0_2_1_0_1_23" zwar der Datentyp des F-Peripherie-DBs, allerdings kein richtiger Systemdatentyp.
=> kann also nicht in einem Bibliotheksbaustein verwendet werden.
Der Fehlertext an sich sagt aber eigentlich etwas anderes. Andererseits gehören die F-Peripherie-DBs zu den automatisch generierten Programmteilen.
Sicherheitshalber habe ich auch noch einige Schreibzugriffe auf Input-Werte im Programm angelegt, verwendet wird der also auf jeden Fall.
Hat jemand von euch eine Idee wie ich diese Fehlermeldung umgehen kann bzw. wie ich einen F-DB lesen kann ohne den Datentyp zu verwenden?
Würde ungern das ganze geraffel in dem DB einzeln auf die Schnittstelle packen....

ich habe mich mal wieder an eine Lösung für folgendes Thema gemacht:
https://www.sps-forum.de/threads/tia-safety-diagnoseinfos-von-der-hardware-aufbereiten.112111/
SPS: S7-1515F-2 PN
F-DI Baugruppe: 6ES7 136-6BA01-0CA0
TIA V18 mit Safety advanced
Der Plan war einen kleinen Baustein zu schreiben, der mir alle Zustandsinformationen zu dem F-Di Modul liest & in einen UDT packt, den ich dann am HMI in einem Bildbaustein visualisieren kann.
So weit, so undramatisch...(könnte man meinen)
Die FC-Schnittstelle habe ich folgendermaßen aufgebaut:


Grundlegend funktioniert das Ganze.
- an "iFPeripherieDb" verschalte ich den Peripherie-DB der Baugruppe
- An "iPerData" das Wort mit den F-Inputs + deren Wertstatus
- Da ich noch keine Möglichkeit gefunden habe die Kanal-Konfiguration aus dem Anwenderprogramm heraus zu lesen, muss ich die Konfig über die "iHwKanal_..." manuell setzen. Ist nicht schön, aber immer noch schöner als die aktuelle Lösung.
- Die Daten werden also übergeben, zusammengefasst, etwas aufbereitet & dann über den UDT "ioDisplay" ans HMI geschickt.
Also war klein Botimperator erstmal glücklich, wollte den Baustein als Abschluss seines Freitags in seine Bibliothek packen & sich mit einem Bier in der Hand seinem Fabrik-Projekt in Satisfacory zuwenden.
Dann kam einer dieser "ach f*ck dich"-Momente, die wir Siemens-Programmierer so lieben.

Anscheinend, soweit ich das verstehe, ist "F_PS_IN_1_0_0_0_0_0_0_2_1_0_1_23" zwar der Datentyp des F-Peripherie-DBs, allerdings kein richtiger Systemdatentyp.
=> kann also nicht in einem Bibliotheksbaustein verwendet werden.
Der Fehlertext an sich sagt aber eigentlich etwas anderes. Andererseits gehören die F-Peripherie-DBs zu den automatisch generierten Programmteilen.
Sicherheitshalber habe ich auch noch einige Schreibzugriffe auf Input-Werte im Programm angelegt, verwendet wird der also auf jeden Fall.
Hat jemand von euch eine Idee wie ich diese Fehlermeldung umgehen kann bzw. wie ich einen F-DB lesen kann ohne den Datentyp zu verwenden?
Würde ungern das ganze geraffel in dem DB einzeln auf die Schnittstelle packen....
