# Trick digitale Eingänge zwischen schliesser und öffner zu unterscheiden? NC NO?



## davbei (22 Juni 2015)

Trick digitale Eingänge zwischen schliesser und öffner zu unterscheiden? NC NO?

Guten Tag die Herren und Damen,

bin jetzt seit einiger Zeit in der Programmierung tätig und bekomme immer wieder bei den Inbetriebnahmen Probleme
zwischen Schliesser und Öffnern auf den Eingängen und bei internen Variablen in dem Programm.

Aktueller Fall: 3x Not_Aus Relais (NC), 5x Sicherheitsabschaltungen im Schrank( NC), ca. 40 Feldgerätestörungen sind Öffner, Pumpenstörung und mehrere interne Störmeldungen von Funktionsbausteinen werden jedoch "true" sobald Sie auftreten (symbolisch NO). 

Wenn ich nun alle Störungen auf meinem Alarmbaustein auswerte (kein Störfall) sind daher manche Eingänge true und andere false!
Nun fange ich die Schließer Kontakt an zu negieren.
In der HMI das selbe Spiel.
Jetzt ist die Verwirrung beim Aktorentest schon Perfekt und beim Kollegen noch viel mehr.

Gibt es einen Trick, auch wenn er noch so simpel ist welcher mir da die nächsten Jahre weiterhelfen wird???

Vielen Dank, freue mich auf eure Antworten.


----------



## Verpolt (22 Juni 2015)

Einen Kommentar zum Ein-Ausgang könnte nicht schaden.

-Temperaturregler XYZ,  1= Störung; 0=Betriebsbereit
-Sicherheitstüre offen,  0= offen; 1=geschlossen.



> In der HMI das selbe Spiel.



Machst du da mit Ein-Ausgängen rum?
Könntest ja auf einen DB kopieren und zum HMI schicken.


----------



## silverfreaky (22 Juni 2015)

Ist ganz einfach.Hardwaremässig muss so geplant werden das der sichere Zusand 1 ist.
Bsp. Überfüllung eines Behälter=0-Signal!Falls der Draht bricht sicherer Zustand.

Gut=1/Schlecht= 0!Wenn das nicht so ist, ist es nicht drahtbruchsicher.
Du musst natürlich Vorort schauen in welchem Zustand die Anlage ist.Ist der Behälter leer muss der Überfüllkontakt auf 1 sein.
Der Leerkontakt auf Null.(Trochenlaufschutz)


----------



## davbei (24 Juni 2015)

silverfreaky schrieb:


> Ist ganz einfach.Hardwaremässig muss so geplant werden das der sichere Zusand 1 ist.
> Bsp. Überfüllung eines Behälter=0-Signal!Falls der Draht bricht sicherer Zustand.
> 
> Gut=1/Schlecht= 0!Wenn das nicht so ist, ist es nicht drahtbruchsicher.
> ...



Für was ich NC/NO verwenden muss ist mir klar, es ging um die Umsetzung im Programm. 
Erste Antwort ist schonmals ein guter Tipp was gerne vernachlässigt wird


----------



## winnman (24 Juni 2015)

Ich lese alle Eingänge ein und schieb die dann in einen DB, dabei werden dann ev. einzelne Eingänge invertiert.

Dadurch kann dann in der SPS mit einheitlicher Logik gearbeitet werden.

Also wie beim Beispiel oben: HW geht beim überfüllen von 1 nach 0. Im Programm arbeite ich dann mit dem invertierten Wert -> Leer = 0, Überfüllung = 1 (dann bei mir Symbolisch zB Pegel_H20_MAXMAX


----------



## silverfreaky (24 Juni 2015)

Ja das ist gut so.Die Störung hat dann immer 1 Signal.Und der Eingang wird entsprechend angepasst.
Wichtig ist das der Text dann immer auf Störung lautet.Also Behälter ist überfüllt oder Behälter ist leer, u.s.w


----------



## Alamo (13 Dezember 2015)

Bei mir ist der Signalstatus anhand der Symbolik ersichtlich.

z.B. 
"Produkt_in_Lichtschranke" = bei "0" ist kein Produkt vorhanden, bei "1" schon
 "Produkt_in_Lichtschranke/" = bei "1" ist kein Produkt vorhanden, bei "0" schon

Ich mache das am letzten Zeichen fest "/" steht für negierten Signalstatus.

Letztens hatte ich eine Anlage mit verschiedenen Sensoren zur Erkennung Produkte vorhanden/nicht vorhanden, welche fast zur Hälfte mal so oder so geschaltet haben. Da das Programm schon fertig war und ich bei der IB fast irre geworden bin, habe ich die "nicht passenden Eingänge" im OB1 gedreht.

      UN   "Produkt_in_Lichtschranke"
      =     "Produkt_in_Lichtschranke"

Ja, ich weis, nicht schön. Es wurde aber in der Sybolik eindeutig dokumentiert


----------



## PN/DP (13 Dezember 2015)

Alamo schrieb:


> Da das Programm schon fertig war und ich bei der IB fast irre geworden bin, habe ich die "nicht passenden Eingänge" im OB1 gedreht.
> 
> UN   "Produkt_in_Lichtschranke"
> =     "Produkt_in_Lichtschranke"
> ...


Da kann man erst recht irre werden, wenn beim Programm-beobachten der Ex.y als True angezeigt wird und in der Variablentabelle sowie in HW Konfig Baugruppe beobachten als False  (jedenfalls solange der Triggerpunkt für Beobachten wie von Siemens empfohlen auf "Zyklusbeginn" steht)
Falls eine HMI direkt auf Ex.y schaut, dann wird es je nach SPS-Familie und B&B-Einstellungen lustig...

Ist das Umkopieren in einen Rangier-Bereich (ggf. mit negieren) wirklich ein so unzumutbar hoher Aufwand, so daß bewußt die "nicht schöne" faule Variante vorgezogen wird?

Harald


----------



## Larry Laffer (14 Dezember 2015)

Alamo schrieb:


> UN   "Produkt_in_Lichtschranke"
> =     "Produkt_in_Lichtschranke"



So etwas kann eigentlich nur jemand vorschlagen, der in seinen Programmen nie einen Fehler suchen muss (siehe Beitrag und Erklärung von Harald).
Vorschläge, wie man es vernünftig machen kann wurden ja schon gemacht.
Das NC als Text mit in den Operanden-Kommentar und/oder die Symbolik zu übernehmen macht auf jeden Fall Sinn - egal, wie man sonst weiter macht.

Gruß
Larry


----------



## Alamo (15 Dezember 2015)

PN/DP schrieb:


> Da kann man erst recht irre werden, wenn beim Programm-beobachten der Ex.y als True angezeigt wird und in der Variablentabelle sowie in HW Konfig Baugruppe beobachten als False
> Harald



Hallo Harald,

danke für Deine Antwort. Das man das so nicht macht ist mir klar, war auch das erste Mal. Es war eher aus Zeitnot, die Anlage mußte unbedingt laufen.

Da ich gerade vor Ort bin und eh ein schlechtes Gewissen hatte, habe ich den Rangierbereich gestern vorbereitet und Abends nach Feierabend eingespielt.

Und das Gewissen ist nun auch beruhigt.


----------



## nutellahase (15 Dezember 2015)

Was mich viel mehr stört ist, dass man in der Anzahl an Zeichen für das Symbol (24) relativ beschränkt ist. Lieber einen aussagekräftigen Namen als immer irgendwelche Abkürzungen erfinden zu müssen. Dadurch erspart man sich in den meisten Fällen dann den Kommentar. Ich schreibe bei boolschen Variablen im Kommentar meist immer eine Erklärung was 1 oder 0 bedeutet. Und wenn es aktuelle Pläne gibt das BMK bei Ein- und Ausgängen.


----------



## SPS-freak1 (15 Dezember 2015)

Ich versuche meine Symbole immer so anzulegen wie es im 1 Zustand auch ist. Also zum Beispiel LS Rollenbahn frei wenn die Lichtschranke hellschaltend ist. Andersrum wäre es auch dann Rollenbahn belegt


----------



## MasterOhh (16 Dezember 2015)

SPS-freak1 schrieb:


> Ich versuche meine Symbole immer so anzulegen wie es im 1 Zustand auch ist. Also zum Beispiel LS Rollenbahn frei wenn die Lichtschranke hellschaltend ist. Andersrum wäre es auch dann Rollenbahn belegt



So mache ich das auch. Störmeldungen die als NO reinkommen heißen dann bei mir im Programm nicht x_Stoer sondern x_OK.


----------



## norustnotrust (16 Dezember 2015)

Ich kenne das auch so wobei das Thema schon etwas verwirrend sein kann.

Wir bezeichnen das Signal nach den logischen Anlagenzuständen. Also zum beispiel "XXNYYNN_GS01_nBot" für einen Signal das 1 ist so lange XXNYYNN eben nicht unten ist. Allerdings sagt das nicht gezwungenermaßen etwas über die Schaltlogic (NC oder NO) aus. In dem Fall könnte es sich um einen NO handeln der eben nur unten betätigt wird oder um einen NC der über den ganzen Verfahrweg betätigt wird nur unten nicht mehr (durchgehende Betätigungsleiste). Letzterer Fall wird bei Sicherheitsendschaltern angewendet da in dem Fall sowohl Drahtbruch als auch ein mechanisches Problem (Betätigerleiste wird abgerissen, Endschalter wird mechanisch lose, usw) in den sicheren Zustand führt.

In der Visu wiederum zeigen wir den Zustand "Betätigt" an, was eben wahlweise 0, oder 1 sein kann. Signaldreher werden nicht im Programm gedreht sondern konsequent in der HW richtig gestellt oder wenn es wirklich anders sein soll wird eben die Symbolik geändert. Von eienr zentralen Umschalterei beim Rangieren halte ich gar nichts. Erstens ist das zwar schnell gemacht aber eben ein bißchen zu schnell gemacht.


----------

