# S7 und Wicc flexible 2005 Fehlergenerierung



## Werwennnichich (28 August 2010)

Hallo Wissende!!

Habe folgendes Problem:
In einem SPS- Projekt befinden sich Vatiablen, welche in einem Instanzdatenbaustein eine definierte Adresse haben z.B: DB500.DBX0.0

Diesem Bit wollte ich in WinCC eine Fehlermeldung zuordnen, also in WinCC ein Symbol zur Variablen erstellt und diese Variable in die Meldeliste integriert,
und da fings an--
falscher Datentyp muss word oder int sein

jetzt meine Frage: ich kann selbstverständlich ein Datenword mit der Variablen verknüpfen und dies dann ausgeben, muss dies aber dann zusätzlich zum Variablenbit als Variablenword ausgeben und den DB neu erstellen
bei mehreren Fehlerausgaben Arbeitaufwand, muss doch bestimmt einfacher gehen oder??


----------



## Dr.M (31 August 2010)

Also ich leg immer einen extra DB an, in dem nur Fehlerbits stehen. Dann kannst du durch einen Fehler-FC deine ganzen Meldungen setzen und rücksetzen lassen und den DB WORD für WORD in flexible benutzen. Kannst natürlich auch jedes Bit aus deinen einzelnen Bausteinen raus setzen.

Ausserdem kann man dann auch einen kleinen FC schreiben, der LowByte und HighByte dreht damit das ganze im flexible übersichtlicher wird.​


----------



## Werwennnichich (1 September 2010)

*Ja danke*

wie gesagt, ich bin nicht der allwissende:neutral: hab das wie folgt probiert:
Die Variablen (Fehlerbit) an den EN - Eingang eines Move - Bausteins => an IN W#16#0...(0,2,4,8,10,20,40,80)und an den Ausgang die Fehlervariable als Word, soo Instanz - DB generiert und da dacht ich alles klar- Irrtum weil wie durch dich schon gesagt aus dem DB dann das gesetzte Bit zu kriegen isses wohl nich, dachte wie war's denn Akku 1, Lowbyte, highbyte, ich muss da nochmal nachlesen.


----------



## Dr.M (2 September 2010)

Wenn ich das richtig sehe, wolltest du eine Fehlernummer ausgeben. Die Idee ist gut, aber so nicht machbar. Was ist, wenn du in einem Zyklus zwei Fehler hättest, die dann ja auf das gleiche WORD geschrieben werden? Dann ist der erste weg. Und wenn du für jede Meldung ein eigenes WORD nehmen wolltest, dann macht die Fehlernummer keinen Sinn mehr. Dann setzt du besser einzelne Bits.


Und:


Werwennnichich schrieb:


> Lowbyte, highbyte



Sollte nur ne Anmerkung sein. 
Wenn du deinen Fehler-DB WORD-weise ins flexible reinholst, dann dreht flexible die Bytes (warum auch immer).

Was in deinem DB so steht: Byte 0,1,2,3,4,5
sieht dann in den flexible Bitmeldungen so aus: Byte 1,0,3,2,5,4

Hab da halt immer nen Baustein, der das wieder richtig dreht damit man die Meldungsnummer einfach so runtertippen kann.


----------



## PN/DP (2 September 2010)

Dr.M schrieb:


> Wenn du deinen Fehler-DB WORD-weise ins flexible reinholst, dann dreht flexible die Bytes (warum auch immer).


WinCC flexible vertauscht die Bytes NICHT beim Lesen, die liegen schon so im DB: zuerst High-Byte dann Low-Byte (Big-Endian).
Daher auch die gewöhnungsbedürftige Zuordnung der Meldungsnummern zu den DBX.

Gruß
Harald


----------



## Werwennnichich (2 September 2010)

Ja, ich habs nun aufgegeben mit dem Word, setze einfach die bits im DB und generiere einen Ausgabetext als Warnung oder Fehler.
Trotzdem Danke, aber da wäre ein Wissender an der rechten oder linken Schulter wohl angebracht, so mit do it yourself und keine Zeit krieg ich's nicht gebacken.

Danke 
Christian


----------

