TIA UPS 1600 Meldungen

Turbohesse

Level-2
Beiträge
58
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche gerade erfolglos die Fehlerdaten aus einer UPS1600 zu lesen. Diese ist per Profinet mit der CPU verbunden. Das HMI Faceplate etc. läuft - Alarme kommen an, ich würde die Alarme aber auch gerne an ein Leitsystem weiterleiten.Dazu müsste ich diese Bitweise Filtern. Und das bekomme ich aktuell nicht hin. Mein erster Versuch geht in diese Richtung:
Code:
"LUPS1600_Fehler_DB"(ADR:=259,                     Störung_Ladestand=>"07_DB_Meldungen".USV.Störung_Ladestand,
                     Störung_Netzausfall=>"07_DB_Meldungen".USV.Störung_Netzausfall,
                     Störung_Akkubetrieb_aktiv=>"07_DB_Meldungen".USV.Störung_Akkubetrieb_aktiv,
                     Störung_Akku_nicht_Bereit=>"07_DB_Meldungen".USV.Störung_Akku_nicht_Bereit,
                     Störung_Akku_nicht_geladen=>"07_DB_Meldungen".USV.Störung_Akku_nicht_geladen,
                     Störung_Akku_muss_getauscht_werden=>"07_DB_Meldungen".USV.Störung_Akku_muss_getauscht_werden,
                     Störung_Keine_Verbindung_zu_Akku=>"07_DB_Meldungen".USV.Störung_Keine_Verbindung_zu_Akku);

IF (PEEK_BYTE(area := 16#81, dbNumber := 0, byteOffset := #ADR)) >= 255 THEN
    #Störung_Netzausfall := TRUE;
ELSE
    #Störung_Netzausfall := FALSE;
END_IF;


IF (PEEK_BYTE(area := 16#81, dbNumber := 0, byteOffset := #ADR+1)) >= 255 THEN
    #Störung_Akkubetrieb_aktiv := TRUE;
ELSE
    #Störung_Akkubetrieb_aktiv := FALSE;
END_IF;
usw....

Ich kenne bisher die Bytes nicht (daher fortlaufend) - habe mir aber sagen lassen, diese seien >=255 auszuwerten. Die Bytes sollen in der Doku stehen. Da komme ich aber irgendwie nicht weiter mit. Daher ist hier erstmal eine Sackgasse. Meine Struktur in der SPS hat letztlich folgendes zu bieten:

Code:
orderNumberserialNumber
deviceName
versionNumber
batteryCapacity
endOfChargeVolt
chargeCur
maxOutCur
inputVolt
inputCur
outputVolt
loadCur
measuredChargeCur
batteryVolt
outputCur
chargeVolt
bufferMode
readyForBuffering
batteryChargeLevel
totCalcBatCap
totCalcBatHealth
bufferTime
bufferThreshold
bufferingAllowed
commandID
parameter1
parameter2
deviceHwRevision
deviceSwRevision1
deviceSwRevision2
deviceSwRevision3

Viel mehr ist es dann wohl nicht was ich bekommen kann... Hat jemand von euch eine Idee oder ggf. schon die Lösung parat wie man die Meldungen Bitweise empfangen kann?

Danke für's lesen bis hierher und eure Bemühungen. =)
 
Hi, ich kenn das Ding zwar nicht, hab aber kurz ins Handbuch geschaut:
https://cache.industry.siemens.com/...6-6-00_MANUAL_SITOP-UPS1600-UPS1100_de-DE.pdf
Auf Seite 121 werden die Eingangsdaten erklärt.

Grundsätzlich sieht dein Ansatz ja gut aus, kommt mir aber umständlich vor. Bei sowas lege ich mir einen PLC-Datentyp an der die Eingangsdaten wiedergibt und lege ihn direkt als PLC Variable auf die erste Eingangsadresse laut HW-Konfig.

Dann kannst du die Variablen symbolisch ansprechen und auswerten.

Also z.B.

UDT_UPS1600_INPUT:

INPUT_VOLTAGE : BYTE
BUFFER_MODE: BYTE
READY_FOR_BUFFERING : BYTE

usw.

Dann lege ich auch E259.0 den UDT_UPS1600_INPUT mit Namen: UPS1600_INPUT

Code:
Störung_Unterspannung := UPS1600_INPUT.INPUT_VOLTAGE <> 255;

usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo TP-Inc,

danke für deine Antwort. Dieser Bereich im Handbuch ist mir durchgegangen. Vielleicht habe ich zu versteift darauf gehofft, in der Datenstruktur, welche sich der Baustein im Demoprojekt abholt, diese Daten zu finden. Ich werde das gleich Montag auf der Anlage erneut testen. Den Pointer auf dei Adresse finde ich ganz nett, da ich das gleiche bei 10 weiteren Anlagen im Projekt benötige und so leichtes Spiel habe ;-) Die Struktur war schon von einem Anwendungsfall mit einem PAC3200 gegeben. Daher ggf. der ersteinmal "zu hohe" Aufwand.

Vielen Dank und schönes Wochenende =) Ich berichte am Montag ;-)
 
Ich hatte mir das Faceplate mal auf WinCC Prof. im TIA angeschaut. Das verbraucht ca. 640 Powertags, da hab ich es wieder disqualifiziert.
Also falls deine Panels mal meckern, dann ...
 
Zurück
Oben