TIA Pushbenachrichtigung / Snap7 / ioBroker

wevin

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin neu hier und auch relativ unerfahren in der Siemens Welt. Ich komme aus der Automatisierungsbranche, Erfahrung hab ich jedoch nur mit der Firmeneigenen Steuerung und Beckhoff.
Siemens hatte ich nur wenig in der Ausbildung (da war es noch Step 7) und jetzt gerade in der Technikerschule (E/Automatisierung). Aufgrund der aktuellen Lage durch Covid-19 haben wir wenig praktische Erfahrung.

Nun zu meinem Problem, ein bekannter von mir hat eine Dezentrale Heizungssteuerung, diese wurde mit einer Siemens S7 CPU1510SP-1 PN realisiert. Wie ich mir schon dachte ist die Konfiguration und Programmierung mit einem Passwort geschützt. Ebenso denke ich das Optimierter Datenbaustein aktiviert ist. Die Heizung geht öfters mal in Störung und da die Steuerung in einem separatem Gebäude ist, wird der Fehler meist erst bemerkt wenn's Kalt wird. Der Hersteller des Schaltschranks (und auch Programmierer) ist da nicht sehr kooperativ und möchte natürlich ein teures GSM Modul verkaufen (was eher schwierig ist da es in dem Raum keinen Mobilfunkempfang gibt).

Zuhause hab ich mir mal eine ältere S7 zur Hand genommen und per Ethernet mit einem Raspberry Pi mit installiertem ioBroker verbunden. Mit dem S7 Adapter, Pushover Adaper und dem Asterisk Adapter ist es mir relativ einfach möglich, Fehlermeldungen und Störungen aus der SPS zulesen und die Meldungen (mit Fehlertext/Sprachausgabe) an Smartphones zuschicken und auch auf Festnetztelefonen anzurufen. Ich hab das zuhause jetzt schon mehrere Wochen am laufen und löse random Störungen mit verschiedenen Meldungen die aus der SPS lese aus. Läuft bisher sehr zuverlässig.

Welche möglichkeiten hab ich um heruaszufinden in welchem Array in welchem DB die Fehlermeldung liegt?
Wie kann ich herausfinden auf welchem AB das Signal für den Störmeldeausgang liegt?


Oder gibt es keine möglichkeiten?

Vielen Danke für eure Hilfe
-wevin-
 
Moin wevin,

wenn Du Pech hast, gibt es kein Bitarray für die Fehlermeldungen. Ggf. werden die Meldungen mit einem Program_Alarm erzeugt.

Wie kann ich herausfinden auf welchem AB das Signal für den Störmeldeausgang liegt?

In den Schaltplan gucken :ROFLMAO:.

VG

MFreiberger
 
Moin wevin,

um an die Alarme zu kommen, benötigst Du entweder eine S7-Verbindung oder OPC UA (wobei ich nur weiß DAS Alarms auf dem S7-1500 Server implementiert werden sollen, aber nicht WANN).

Realistisch betrachtet wird es in der Steuerung, die Du auslesen willst, wahrscheinlich Meldebits geben. Wenn Du sie auslesen und danach zuordnen kannst, solltest Du doch am Ziel sein?!


Zum Störmeldeausgang noch eine Frage: Wieso sollte er auf einem Byte (AB) liegen? Geht es nicht um EINE Sammelstörung, also ein Bit? Wenn Du kein Hardwareplan hast, hilft wohl nur die Verdrahtung nachverfolgen.

VG

MFreiberger
 
Wenn die Alarmierung per GSM-Modem erfolgt, dann stehen die Chancen gut, dass Störmeldebits entweder auf einem Ausgangsbyte liegen oder dass es doch einen nicht optimierten DBs für Störungen gibt.
Da du ja mit Snap7 vertraut bist, kannst du ja mal eine Schleife über die DBs von z.B. DB0 - DB1024 laufen lassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst auch ein WinCC ab 7.4 hernehmen, und die Steuerung mal durchsuchen lassen. Dort bekommst du den kompletten Variablenhaushalt mit Symbolik und auch ggf. angelegte Programm-Alarme angezeigt. Je nach eingestelltem Zugriffsschutz ist das auch ohne Passwort möglich. Es gibt auch Treiber wie der von Softing oder Tani mit dem das möglich wäre.
 
WinCC Lizenz wäre vorhanden. Jedoch hab ich WinCC bestimmt 10 Jahre nicht mehr benutzt. Was genau soll ich da machen?
Alamierung über GSM Modul ist möglich. Zusätzlich gibt es eine Email Benachrichtigung die einfach über eine Ethernet/Internetverbindung funktioniert.

Mit Snap7 selbst bin ich nicht so sehr vertraut. Ich benutze den Siemens S7 Adapter in ioBroker, der jedoch nutzt snap7.

Grüße
-wevin-
 
Zuviel Werbung?
-> Hier kostenlos registrieren
WinCC Lizenz wäre vorhanden. Jedoch hab ich WinCC bestimmt 10 Jahre nicht mehr benutzt. Was genau soll ich da machen?
Du benötigst mindestens WinCC 7.3. Ab dieser Version gibt es einen eigenen Kanaltreiber für die 1200/1500. Du kannst dich ohne Projekt online mit der Steuerung verbinden, und dann den Variablenhaushalt browsen und die angelegten Alarme auslesen. Bei diesen Steuerungen sind ja alle Informationen dazu in der SPS gespeichert. Es kann aber sein, dass du auch dafür ein Passwort der CPU benötigst.
 
Du benötigst mindestens WinCC 7.3. Ab dieser Version gibt es einen eigenen Kanaltreiber für die 1200/1500. Du kannst dich ohne Projekt online mit der Steuerung verbinden, und dann den Variablenhaushalt browsen und die angelegten Alarme auslesen. Bei diesen Steuerungen sind ja alle Informationen dazu in der SPS gespeichert. Es kann aber sein, dass du auch dafür ein Passwort der CPU benötigst.

Vielen Dank, werd ich die Tage mal versuchen :)
 
Mit Iobroker (bzw. snap 7) wirst du aber wenn es optimierte Bausteine sind nicht zugreifen können. Des weiteren muss auf der CPU Put/Get Zugriff in der Hardware aktiv sein, damit du mit Snap7(Iobroker überhaupt etwas auslesen kannst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau, ich hoffe dass es kein optimierter DB ist. Eine Verbindung mit dem Adapter bekomm ich zwar hin allerdings sobald ich ein EB oder AB zu Abfrage angebe wird die instanz Gelb. Ich denke es ist gesperrt. Bleibt mir wohl nicht viel übrig als mit ioBroker auf eine Email zu lauern und diese zu parsen.
 
Hast Du mal den Hersteller gefragt, ob die Dir eine Software-Schnittstelle (DB) zur externen Abfrage der aktiven Meldungen einbauen können? (also einen nicht optimierten DB mit Kopien aller relevanten Bits)

Harald
 
[FONT=&quot]Im ersten Telefonat waren die nicht wirklich bereit irgendwelche Infos zugeben oder Möglichkeiten zu besprechen. Ich denke, wenn dann nur gegen eine saftige Rechnung. Ich frag nochmal an, vielleicht erwische ich einen anderen Kundenberater/Techniker.

Danke

Edit: Noch eine Frage zu optimierten Bausteinen - ich meine mal gelesen zu haben das alle Bausteine optimiert sein müssen damit es funktioniert. Wenn nur einer nicht optimiert ist hat man keine Verbesserung gegenüber der Standard Bausteine. [/FONT]
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
[FONT=&quot]Noch eine Frage zu optimierten Bausteinen - ich meine mal gelesen zu haben das alle Bausteine optimiert sein müssen damit es funktioniert. Wenn nur einer nicht optimiert ist hat man keine Verbesserung gegenüber der Standard Bausteine. [/FONT]
Das ist quatsch.
Man sollte nur nicht andauernd zwischen optimiertem und nicht optimiertem Speicher hin und her kopieren.

Harald
 
[FONT="]Edit: Noch eine Frage zu optimierten Bausteinen - ich meine mal gelesen zu haben das alle Bausteine optimiert sein müssen damit es funktioniert. Wenn nur einer nicht optimiert ist hat man keine Verbesserung gegenüber der Standard Bausteine. [/FONT]

Funktionieren tut das völlig problemlos. Allerdings geht die Zykluszeit durch den Einsatz von nicht optimerten Bausteinen hoch.
 
Hab nochmal Kontakt zum Hersteller aufgenommen. Es gibt keinen DB zum Austausch über eine S7-Verbindung. Sie bieten noch die möglichkeit über Modbus TCP. In ihrem Prospekt zur Anlage steht geschrieben das standardmäßig ein Modbus-TVP-Server auf Port 502 läuft. In der eMail schreibt der Hersteller man muss es Software- und Hardwarmäßig nachrüsten. Ein Angebot kann man anfragen.

Leider hab ich noch nie mit Modbus-TCP gearbeitet. Kann ich testen ob ein solcher Server läuft? Im Prospekt ist auch eine Tabelle aufgelistet mit Funktionscode 03, den Adressen und welches Bit für was steht.

Danke für eure Hilfe
-wevin-

Edit: Ich werde mich mal in die Grundlagen von Modbus einlesen. Einen Adapter hab ich hier gefunden: https://github.com/ioBroker/ioBroker.modbus
Zum Testen hab ich eine 315-2DP mit einem CP343-1 Advanced hier, kann ich hier einen solchen Server installieren? Möchte mich vorher erstmal damit beschäftigen bevor ich an die Anlage gehe.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider hab ich noch nie mit Modbus-TCP gearbeitet. Kann ich testen ob ein solcher Server läuft? Im Prospekt ist auch eine Tabelle aufgelistet mit Funktionscode 03, den Adressen und welches Bit für was steht.
Es gibt kostenlose Modbus Test Clients, einen ganz einfachen z.B. von Janitza das Tool Modbus Diagnose


Zum Testen hab ich eine 315-2DP mit einem CP343-1 Advanced hier, kann ich hier einen solchen Server installieren? Möchte mich vorher erstmal damit beschäftigen bevor ich an die Anlage gehe.
Von Siemens gibt es für S7-300/400 kostenpflichtige Modbus TCP Bausteine.

Hier im Anhang die AWL-Quelle für einen einfachen Modbus TCP Server für CP343-1 ohne Fehlerbehandlung. Der Quelltext stammt ursprünglich von Lars Weiß, ich habe ihn etwas überarbeitet und Fehler beseitigt. Du musst nur noch in NetPro eine passive TCP-Verbindung anlegen (üblicherweise Port 502; Partner-IP und -Port freilassen, oder Deinen Client eintragen). Und einen "Register"-DB anlegen, z.B. mit einem ARRAY [0..199] OF WORD, oder irgendeine sinnvolle Struktur. Länge und Struktur ist nicht relevant, Hauptsache groß genug für die Client-Anfragen.

Harald
 

Anhänge

  • ModbusTCP_Server_CP_HW.awl.txt
    22,3 KB · Aufrufe: 17
Zuletzt bearbeitet:
Hallo, ist NetPro in TIA v16 enthalten? Was ist eine "passive" Verbindung? Ich hätte jetzt versucht unter Netze & Geräte -> Netzsicht noch eine TCP-Verbindung hinzuzufügen. Ist das so richtig?

konfig.jpg

Baustein hab ich über Externe Quellen hinzugefügt und dann Baustein generieren, Register DB hab ich angelegt.

modbus.jpg

Sieht nach einigen Fehler aus.
 
Zuletzt bearbeitet:
Zurück
Oben