Wie Flanken benennen?

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Hi Ihr,

habe eine Frage - wie benennt ihr eindeutig pos. u. neg. Flanken in FUP in der Symboltabelle?

FP30.0

FN30.1

Oder auch noch das M (für Merker) mit rein?

Hier gehts grad spez. um das TIA-Portal...

Lieben Dank!
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
So etwas mache ich immer rein symbolisch mit Suffix und Zweck:

Für den deutschen Markt verwende ich manchmal fp... oder fn...
Für den Internationalen Markt schreibe ich RisTrig... und FalTrig...

... ist der Zweck.

Ich verwende dafür so gut wie nie Merker sondern meistens Stat-Variablen in FB's und "normale" Datenbausteinbits in FC's.
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Ich verwende dafür so gut wie nie Merker sondern meistens Stat-Variablen in FB's und "normale" Datenbausteinbits in FC's.

Hm, aber wenn man Stat-Variablen verwendet, so muss man die doch durchnummerieren (also z.B. fp1, fp2, usw...) oder? Beim Aufruf des FB's werden diese ja dann zugeordnet... Und was vergibst du dann für die fp's beim Aufruf?
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
Ich verstehe die Frage nicht. Durchnummerieren? Das kann man machen, aber wofür?

Ich verwende die Statischen Variablen oder Datenbausteine, weil man die im Gegensatz zu Merkern durchstrukurieren kann. Da könnten Flankentrigger z.B. heißen: CTRL.RisTrigStart oder CTRL.RisTrigCycleEnd oder CTRL.FalTrigFailureState usw.

Ich arbeit sehr viel mit Instanzen und Multi-Instanzen. Damit spare ich mir eine ganze Menge an Deklarationen, weil einmal deklariert kann ich alles für gleichartige Antriebe mehrfach verwenden.

Woher hast Du das mit dem durchnummerieren, und was meist Du mit

Und was vergibst du dann für die fp's beim Aufruf?

?
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Also ich muss doch für jede Flanke einen eigenen Flankenmerker nehmen. Wenn ich nun z.B. #fp als Stat-Variable deklariere, so kann ich #fp doch nicht an jeder Flanke als Flankenmerker verwenden oder? Dann würde die Steuerung ja für jede Flanke den gleichen Merker verwenden...
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
Zuviel Werbung?
->Hier kostenlos registrieren
Ja, und? Du kannst doch so viele boolsche Stat-Variablen deklarieren, wie Du Flanken hast.

Nochmal zum Verständnis, ich benutze Stat-Variablen nicht nur als Flankenmerker. Ich benutze die für alles was so anfällt. Ich habe selbst in hochkomplexen Anlagen maximal 5 echte Merker: True, False, IBN-Test, und 1-2 Taktmerker.

Merker stammen noch aus der guten alten S5-Zeit. Ich finde die heute nicht mehr zeitgemäß, bei allen Vorteilen, die die merkerlose Programmierung mit sich bringt. Die hat man nämlich bei der Verwendung von Merkern nicht. Ich sage nur: Instanzen. Oder: globale und nichtglobale Deklarationen. Das sind wichtige Elemente, wenn man sein Programm gut strukturieren will.
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Ja, und? Du kannst doch so viele boolsche Stat-Variablen deklarieren, wie Du Flanken hast.

Sorry, aber das verstehe ich nicht ganz... Wie sieht denn dann der statische Deklarationsteil aus? Ich muss doch für jede im Programm verwendete Flanke eine boolsche Stat-Variable als "Flankenmerker" deklarieren, oder etwa nicht? Und dann kann ich doch nicht für jede Flanke einfach nur #fp deklarieren... sondern für Flanke1 z.B. #fp1, für Flanke2 #fp2, usw.
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
Du kannst die doch nennen wie Du willst. (z.B. CTRL.RisTrigStart oder CTRL.RisTrigCycleEnd oder CTRL.FalTrigFailureState usw.)

Das was Du meinst ist der Befehl FP, der hat aber nichts mit der Deklaration der Variablen zu tun.
Das eine ist die Deklaration (oben), das andere ist der Programmteil (unten). Das musst Du auseinanderhalten.
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
... aber ich muss doch für jede Flanke eine eigene boolsche statische Variable deklarieren... wie ich sie nenne ist egal, richtig - aber dennoch müssen sich die Namen für jede verwendete Flanke unterscheiden. Oder stehe ich jetzt völlig auf dem Schlauch?

Nun den Befehl FP gibts ja in FUP nicht... hier muss ich ja für jede Flanke einen Flankenmerker angeben... das meine ich!
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
... aber ich muss doch für jede Flanke eine eigene boolsche statische Variable deklarieren... wie ich sie nenne ist egal, richtig - aber dennoch müssen sich die Namen für jede verwendete Flanke unterscheiden.

Genau, das versuche ich Dir grade zu erklären, aber die müssen nicht #fp1, #fp2 usw heißen. Die kannst Du nennen wie Du willst. Aber Du brauchst für jede Flanke einen eigenen Flankenmerker. Soweit richtig.

Die Frage zu Merker oder nicht Merker ist: Warum willst Du Merker verbraten, wenn Du einen FB verwendest, für den Du sowieso einen DB je Aufruf deklarieren musst, der das auch übernehmen kann. Aber das war ja nicht das Thema.
 

bike

Well-known member
Beiträge
6.464
Punkte Reaktionen
794
Ich finde die heute nicht mehr zeitgemäß, bei allen Vorteilen, die die merkerlose Programmierung mit sich bringt. Die hat man nämlich bei der Verwendung von Merkern nicht. Ich sage nur: Instanzen. Oder: globale und nichtglobale Deklarationen. Das sind wichtige Elemente, wenn man sein Programm gut strukturieren will.

Also ich sehe den Vorteil von einem vollqualifiziereenden Datenbausteinzugriff gegenüber einem Merker nicht wirklich, außer dass der Zugriff auf Merker schneller ist.
Warum Struktur und Merker sich ausschließen, muß mir mal einer erklären.

Was geschieht wenn der DB zu klein ist?
Man nicht ausschalten kann?
Also das erinnert mich an einen Zulieferer, der hat die DB nahezu alle auf 16k aufgebaut, selbst wenn nur 2 oder drei Worte benötigt werden.
So kann man auch den Ruf nach immer größeren CPU begründen.

Wir verwenden M_PI für den positiven Impuls bzw M_FLM für den Speicher, mit einer sinnvollen Erweiterung des Symbols, dann braucht man fast keinen Kommentar mehr.
Wenn sinnvoll mit Symbolen programmiert wird, kann ein Programm gut strukturiert und modular aufgebaut werden.


bike
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Ok, danke - dann kommen wir der Sache langsam näher...

Meine Ursprungsfrage bezog sich ja auch eine sinnvolle Benennung dieser statischen boolschen Variablen. Und da kam ja von dir die Antwort, dass du diese manchmal eben fp bzw. fn nennst - was ja auch nicht abwägig ist, da es sich um eine Flanke positiv oder negativ handelt.

Wenn man aber dieses Beispiel weiterspinnt und diese "Flankenmerker" in der Deklaration #fp nennt, so wäre es doch naheliegend, diese für jede im Programm verwendete Flanke durchzunummerieren, oder nicht?
 

bike

Well-known member
Beiträge
6.464
Punkte Reaktionen
794
Ok, danke - dann kommen wir der Sache langsam näher...

Meine Ursprungsfrage bezog sich ja auch eine sinnvolle Benennung dieser statischen boolschen Variablen. Und da kam ja von dir die Antwort, dass du diese manchmal eben fp bzw. fn nennst - was ja auch nicht abwägig ist, da es sich um eine Flanke positiv oder negativ handelt.

Wenn man aber dieses Beispiel weiterspinnt und diese "Flankenmerker" in der Deklaration #fp nennt, so wäre es doch naheliegend, diese für jede im Programm verwendete Flanke durchzunummerieren, oder nicht?

Kannst du dann erkennen, wofür #fp1 verwendet wird?
Eine sinnvolle Symbolik unabhängig ob DB oder M, E oder A oder T, macht das Programm besser lesbar.


bike
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
Mit dem Durchnummerieren, wenn Du möchtest, kannst Du das tun. Das habe ich auch schon mal mit einem Array of Bool gemacht.

Ich würde es aber für nützlicher halten, die Variable nach ihrer Funktion zu benennen. Das ist aber Deine Entscheidung.

@bike:

Lässt Du also jetzt endlich mal die Hosen runter...

Ich würde Dich jetzt mal in die Richtung Instanthalter bei einem größeren Produktionsbetrieb stecken. Das heißt für mich, Du hast wahrscheinlich noch keine komplexe Anlage so richtig alleine von Anfang zum Ende gebracht so mit allem was dazugehört: SPS, Safety, Visualisierung, Datembanken. Soweit meine Einschätzung...

Warum sich Struktur und Merker ausschließen? Habe ich nicht geschrieben. Ich sprach von Strukuren, und die kriegst Du in Merker nicht rein. Das hast Du eben eine Strukturbegrenzung.

DB zu klein? Dann trennt man das eben ein wenig auf...
Warum manche DB auf Maximalgröße stemmen obwohl das nicht erforderlich wäre? Ganz einfach, weil man bei einer DB-Erweiterung im Programm den nicht mehr übertragen muss. Und so gefärdet man nicht die Aktual-Werte, wenn mal vergessen wurde den DB ins PG zu laden, bvor man eine Änderung macht (z.B Offline im Büro).

Wenn Du gerne mit Merkern arbeiten willst, von mir aus. Du wirst dabei aber nie über über eine flache Strukur hinauskommen. Kennst Du dich mit Hochsprachen aus? Mit Objektorientierung? Das kann man nämlich in die SPS-Programmierung übernehmen und siehe da, wenn man das beherrscht, ergibt sich plötzlich ein genialer Überblick über ein Programm, egal wie groß es ist. Dann hast Du sozusagen eine mehrdimensionale Struktur - und die will ich nicht mehr missen. Das verkürzt die IBN-Zeiten enorm. Besonders dann, wenn der Kunde mit Sonderwünschen glänzt.
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Ich würde es aber für nützlicher halten, die Variable nach ihrer Funktion zu benennen. Das ist aber Deine Entscheidung.

Danke asci25, aber nach welcher Fkt. soll man die Variable eines Flankenmerkers benennen? Hier gibt es halt doch nur Flanke positiv und Flanke negativ...
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.228
Punkte Reaktionen
2.433
Also ihr habt Sorgen ... :p

U "St4_belegt_LS"
FP #St4_belegt_FHM
= "St4_belegt_FP"
= #St4_belegt_FP"

Suffix_FHM = Flankenhilfsmerker (muss aber kein Merker sein, ich nehme meist statische Variablen)
Suffix_FP = Positive Flanke
Suffix_FN = Negative Flanke

Durchnummerieren find ich persönlich zu unübersichtlich. Bei mir gibt es nur sprechende Symbole und Bezeichnungen.

Gruß
Dieter
 

bike

Well-known member
Beiträge
6.464
Punkte Reaktionen
794
Lässt Du also jetzt endlich mal die Hosen runter...

Ich würde Dich jetzt mal in die Richtung Instanthalter bei einem größeren Produktionsbetrieb stecken. Das heißt für mich, Du hast wahrscheinlich noch keine komplexe Anlage so richtig alleine von Anfang zum Ende gebracht so mit allem was dazugehört: SPS, Safety, Visualisierung, Datembanken. Soweit meine Einschätzung...

Also noch habe ich die Hose an.
Und es tut mir fast leid, dass ich dich enttäuschen muss.
Ich bin Entwickler bei dem weltweit größten Werkzeugmaschinenhersteller.
Kann also das was du mir absprechen willst und dazu vermutlich schon länger alswie du.
Nimm es leicht, irren ist menschlich. :)



bike
 

asci25

Well-known member
Beiträge
611
Punkte Reaktionen
81
Zuviel Werbung?
->Hier kostenlos registrieren
@Bike: dann frag ich mich, warum kommst Du immer so teenyhaft um die Ecke?

Stellst immer wieder Verfahrensweisen in Frage, die durchaus Ihren Sinn haben - aber halt nicht in Deine Welt passen? Durchdenkst Du die Gedanken der Anderen nicht? Oder warum ist das, was die Anderen machen immer Falsch?

"Entwickler beim dem weltweit größten Werkzeugmaschinenhersteller" - beeindruckt mich nicht im Geringsten. Da gibt es Standardisierungen und Kollegen - Stillstand eben. Mach mal Sondermaschinenbau als Einzelkämpfer. Jedes Projekt mit anderen Anforderungen und SPS'en von verschiedenen Herstellern. Jedesmal eine andere Visualisierung. Jedes mal andere Komponenten von verschiedenen Herstellern. Und ich meine nicht Transport- oder Handlingsysteme, sondern Prozesstechnik bis hin zur Weltraumforschung.

Glaub mir, da lernst Du mehr als in 20 oder mehr Jahren immer mit dem gleichen System.

PS. Auch als Einzelkämpfer arbeite ich hin und wieder in Teams. So lernt man auch wieder Neues und was am wichtigsten ist: Teamarbeit.
 

M-Ott

Well-known member
Beiträge
1.768
Punkte Reaktionen
365
Mal zurück zum Thema: Es ist doch völlig egal, wie man den Merker bzw. das Datenbausteinbit hinter dem FP oder FN nennt.
Das entsprechende Bit wird sowieso nur an dieser einen Stelle verwendet, ansonsten hat man definitiv etwas falsch gemacht. Da man dann sowieso an der einzigen Verwendungsstelle dieses Bits ist, wenn man es betrachtet, halte ich in diesem Fall eine aussagefähige Symbolik für völlig unnötig und nummeriere meine Flankenhilfsmerker auch nur mit "HM_Flanke_xx" durch.
 
OP
P

petzi

Well-known member
Beiträge
255
Punkte Reaktionen
1
Da man dann sowieso an der einzigen Verwendungsstelle dieses Bits ist, wenn man es betrachtet, halte ich in diesem Fall eine aussagefähige Symbolik für völlig unnötig und nummeriere meine Flankenhilfsmerker auch nur mit "HM_Flanke_xx" durch.

Danke für die Antwort Michael; ja stimmt! Daher kam ich ja auf die Idee mit durchnummerieren... ist zwar nicht aussagekräftig; muss es in diesem Fall ja aber auch nicht unbedingt sein.
 
Oben