TIA Negative Flanke TIA funktioniert nicht in SCL bei ner 315er CPU

Bonsai32

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

wir haben ein kleines Problem in einem SCL Baustein mit ner Flankenauswertung.


#Pos_Plug := #Plug AND NOT #Flag;
#Neg_Plug := NOT #Plug AND #Flag;
#Flag := #Plug;


#Plug ist eine IN Variable, der Rest sind STAT Variablen.


die Positive Flanke funktioniert, die negative Flanke nicht.
Dieses Problem besteht nur bei einer 315er CPU, bei einer 317er CPU funktioniert es tadelos.

Hat jemand eine Idee?


Viele Grüße Sven
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist der SCL-Baustein ein FC oder ein FB?
Wird auf #Flag von außerhalb des Bausteins zugegriffen?

Mit "315er" meinst Du welche CPU genau? 315-2 DP oder 315-2 PN/DP? 6ES7315-.....?
Welche Firmware hat die 315 CPU?
Welche TIA-Version verwendest Du?

@MFreiberger
Negative Flanke: jetzt 0 und vorher 1
(Positive Flanke: jetzt 1 und vorher 0)

Harald
 
Moin Harald,

@MFreiberger
Negative Flanke: jetzt 0 und vorher 1
(Positive Flanke: jetzt 1 und vorher 0)

Das ist schon klar.

Positive Flanke:
#Pos_Plug := #Plug AND NOT #Flag;

Negative Flanke:
#Neg_Plug := NOT #Plug AND NOT #Flag;

Hilfsvariable merken:
#Flag := #Plug;

Mach ich immer so. Funktioniert auch immer so.
Hauptsache #Plug ist statisch/global.

VG

Mario
 


Negative Flanke:
#Neg_Plug := NOT #Plug AND NOT #Flag;

Hilfsvariable merken:
#Flag := #Plug;

Mach ich immer so. Funktioniert auch immer so.
Hauptsache #Plug ist statisch/global.

VG

Mario

Verstehe ich nicht ganz.

Wenn beides auf NOT steht, dann ist dein NEG_Plug ja permanent auf TRUE insofern das zu triggernde Bit nicht ansteht
 
Moin,

sorry!

Ich habe die flanken GETRENNT erzeugt und für die negative Flanke die Hilfsvariable mit
'NOT #Plug" beschrieben.

Also:
Positive Flanke:
#Pos_Plug := #Plug AND NOT #FlagPos;
#FlagPos := #Plug;

Negative Flanke:
#Neg_Plug := NOT #Plug AND NOT #FlagNeg;
#FlagNeg := NOT #Plug;

VG

Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

sorry!

Ich habe die flanken GETRENNT erzeugt und für die negative Flanke die Hilfsvariable mit
'NOT #Plug" beschrieben.

Also:
Positive Flanke:
#Pos_Plug := #Plug AND NOT #FlagPos;
#FlagPos := #Plug;

Negative Flanke:
#Neg_Plug := NOT #Plug AND NOT #FlagNeg;
#FlagNeg :=NOT #Plug;

VG

Mario

Dann erzeugst du aber z.B. auch mindestens beim Neustart der CPU schon einmal eine Flanke ( wie FirstRun )
 
Zuletzt bearbeitet:
Kommt der IN "Plug" von einer HMI, schreibt die direkt in die IDB-Variable? Und ist "priorisierte BuB-Kommunikation" aktiviert?

Versuche mal so:
Code:
[COLOR="#0000FF"]#tmp_Puls := #Plug;[/COLOR]

#Pos_Plug := [COLOR="#0000FF"]#tmp_Puls[/COLOR] AND NOT #Flag;
#Neg_Plug := NOT [COLOR="#0000FF"]#tmp_Puls[/COLOR] AND #Flag;
#Flag := [COLOR="#0000FF"]#tmp_Puls[/COLOR];

Harald
 
Dann erzeugst du aber z.B. beim auch mindestens beim Neustart der CPU schon einmal eine Flanke ( wie FirstRun )

Jau. Daran hatte ich bisher nicht gedacht, da ich damit noch keine Probleme hatte.

Sollte beim TE aber die negative Flanke funktionieren, oder? Also anscheinend tatsächlich ein Problem mit der CPU?

@Bonsai32 Was hast Du denn genau für eine 315? Bestellnummer/Ausgabestand? Siehe die Fragen von PN/DP in #3.

VG

MFreiberger
 
die Bestellnummer und der Firmwarestand lauten:


CPU 315F-2 PN/DP
6ES7 315-2FJ14-0AB0
V3.2
Geht die Firmware-Angabe auch genauer?
Aktuell wäre die Version 3.2.16

Was genau heißt "funktioniert nicht"? Geht es nie oder nur manchmal?
Warum meinst Du, daß das Problem in Deinem SCL-Code steckt? Wie sieht der Code aus, wo die Flanke verwendet wird und der anscheinend irgendwie nicht funktioniert, wo als Ursache der SCL-Code vermutet wird?

Laß Dir nicht alles einzeln aus der Nase ziehen. Die roten Fragen hast Du noch nicht beantwortet. Wie sollen wir Dir fundiert helfen bei fast ohne Informationen?
Ist der SCL-Baustein ein FC oder ein FB?
Wird auf #Flag von außerhalb des Bausteins zugegriffen?

Mit "315er" meinst Du welche CPU genau? 315-2 DP oder 315-2 PN/DP? 6ES7315-.....?
Welche Firmware hat die 315 CPU? (Anwort ist ungenau)
Welche TIA-Version verwendest Du?
Kommt der IN "Plug" von einer HMI, schreibt die direkt in die IDB-Variable? Und ist "priorisierte BuB-Kommunikation" aktiviert?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es handelt sich um einen FB

Bei der Firmware steht leider nur V3.2

Die Positive Flanke funktioniert wunderbar, die Negative nicht, die Variable #Flag wird nur im Baustein verwendet.

Die IN Variable ist ein Bit von eines ProfiBus Teilnehmers.

TIA V14 SP1 Update 9, auch getestet mit TIA V15.


Viele Grüße
 
...Die Positive Flanke funktioniert wunderbar, die Negative nicht...



Wie erkennst du dass #Neg_Plug nicht funktioniert ?
Vielleicht liegt das Problem nicht bei #Neg_Plug, sondern bei den Verwendung von #Neg_Plug.

Kommt der IN "Plug" von einer HMI, schreibt die direkt in die IDB-Variable? Und ist "priorisierte BuB-Kommunikation" aktiviert?

Versuche mal so:
Code:
[COLOR=#0000FF]#tmp_Puls := #Plug;[/COLOR]

#Pos_Plug := [COLOR=#0000FF]#tmp_Puls[/COLOR] AND NOT #Flag;
#Neg_Plug := NOT [COLOR=#0000FF]#tmp_Puls[/COLOR] AND #Flag;
#Flag := [COLOR=#0000FF]#tmp_Puls[/COLOR];

Harald

???........
 
Hallo Bonsei,

ist das Verhalten im Simulator nachvollziehbar, oder nur auf der Hardware? Es wäre schon echt bedenklich wenn einfachste Verknüpfungen plötzlich nicht mehr funktionieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der Firmware steht leider nur V3.2
schau in "Online & Diagnose"
Bei der Gelegenheit schau in den Diagnosepuffer, ob da vielleicht Fehler-Einträge vorhanden sind. Leuchten/blinken rote Fehler-LEDs?

Verwendest Du die Instanz mehrmals? Ist die Instanz ein eigener DB oder eine Multiinstanz?

Wie sieht der Code aus wo Du die Flanke verwendest?

Gibt es in dem Programm Schreibzugriffe auf die Adressen der Variablen #Neg_Plug und #Flag (IDB.DBX...), eventuell auch überlappend auf ein DBB/DBW/DBD, welche das DBX enthalten? Gibt es indirekte Adressierung, die ungewollt auf die Variablen oder deren Adressen schreibt? Gibt es in dem FB indirekte Adressierung auf die Static-Variablen? Oder selbstgebasteltete Pointer oder ANY auf Static Variablen?

Ändert sich das an "Plug" angeschaltete Bit auch mal oder ist es immer 0? Zu einer negativen Flanke gehört, daß das Signal im Zyklus vor der Flanke 1 sein muß.
Wenn Du den Code oder die Variable IDB.Flag beobachtest, folgt das #Flag dem #Plug (wird #Flag auch 1)?
Wenn Du das Signal negiert an den FB-Aufruf anschaltest, kommen dann Positive Flanken bei den real negativen Flanken?
Wie wird die FB-Instanz aufgerufen?


Kannst Du auch mal mit ein paar mehr Worten antworten? z.B. auch erwähnen, daß Du die Fragen, die Du nicht beantwortest, wenigstens gelesen und überprüft hast. Ich habe jetzt bestimmt schon 10 mal mehr Worte für Nachfragen investiert als Du hier für Dein Problem übrig hast ...

Harald
 
Für den Fall eines Firmware-Fehlers probiere mal:
Code:
#Pos_Plug := #Plug AND NOT #Flag;
[COLOR="#0000FF"]#irgendeine_Dummy_Bitvariable := #Neg_Plug OR (#Plug AND #Flag) OR #Pos_Plug;[/COLOR]
#Neg_Plug := NOT #Plug AND #Flag;
#Flag := #Plug;
Funktioniert so #Neg_Plug?
Oder so:
Code:
#Pos_Plug := #Plug AND NOT #Flag;
#Flag := #Plug;

#Neg_Plug := NOT #Plug AND [COLOR="#0000FF"]#Flag2[/COLOR];
[COLOR="#0000FF"]#Flag2 := #Plug;[/COLOR]

Harald
 
Hallo,

leider konnte ich erst jetzt antworten, da mir eine andere Baustelle dazwischen gekommen ist.

Ich habe alles soweit getestet und kann sagen das die Flankenauswertung generell auch auf meiner verbauten 315 CPU funktioniert.

Ich habe #Plug ( IN ) statt mit einem Eingang eines Profibusteilnehmers mit einem freien Merker beschaltet und diesen dann händisch gesetzt und rückgesetzt - dann funktioniert die Flankenauswertung perfekt

Liegt irgendwie an dem Eingangsbit..:confused:.


Viele Grüße
 
Zurück
Oben