FB gesucht:In1=1(real)/In2=2(real),usw...

egro

Level-1
Beiträge
211
Reaktionspunkte
24
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich suche einen Funktionsblock der folgendes kann:
In 1 = True = Out = 1(real)
In 2 = True = Out = 2(real)
In 3 = True = Out = 3(real)
.
.
.
In 10 = True = Out = 10(real)

Aber:
Wenn ein Eingang True ist, hat dieser Priorität und die anderen Eingänge werden ignoriert (also immer nur Eingang gleichzeitig).
Wenn ein zweiter Eingang True wird, während ein anderer schon True ist, gibt der Ausgang den Wert vom zweiten erst raus, wenn der Erste wieder False ist.

Kennt jemand einen solchen Funktionsblock?

Ja, ich könnte das selber programmieren, aber Zeit und Lust sind beschränkt!!!
 
Wenn ich Deine Erklärung richtig verstanden habe, dann so:
Code:
[FONT=courier new]FUNCTION "REAL_Select" : Bool

VAR_INPUT
    Sel_0: BOOL;
    Sel_1: BOOL;
    ...
    Sel_9: BOOL;
    In_0: REAL;
    In_1: REAL;    
    ...    
    In_9: REAL;    
END_VAR

VAR_OUTPUT
    Out: REAL;
END_VAR


    "REAL_Select" := false;

    Out:= 0.0;
    Out:= SEL (G:= Sel_9, In1:= In_9, In0:= Out);
    ...
    Out:= SEL (G:= Sel_1, In1:= In_1, In0:= Out);
    Out:= SEL (G:= Sel_0, In1:= In_0, In0:= Out);

    "REAL_Select" := true;


END_FUNCTION[/FONT]
Aber mehr Zeit als für Deinen Eintrag hättest Du dafür auch nicht benötigt!
:wink:



PS: Ich seh' gerad, dass die Anfrage bei CoDeSys steht, aber sollte in ST sicher (zumindest fast) genauso aussehen, wie unter SCL.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, ich könnte das selber programmieren, aber Zeit und Lust sind beschränkt!!!

Das kenne ich auf meiner Suche nach einen Gärtner der regelmäßig meine Hecke schneidet,
Rasen mäht und Unkraut zupft. Dann suche ich noch einen Handwerker, der meine Küche streicht,
einen der das Pakett schleift und Ölt. Aber die Vögel wollen alle Geld für ihre Arbeit, obwohl ich jedes
mal sage das Zeit Und Lust auf meiner Seite knapp ist.

Ansonsten finde ich deine Anfrage, nur ein wenig als unverschämt.

@Hucki, Rasenmäher und Heckenschere stelle ich.
 
Zuletzt bearbeitet:
@Hucki, Rasenmäher und Heckenschere stelle ich.
Ich seh' jetzt nicht den Riesenunterschied, ob er einen fertigen Baustein in der Oscat-Bibliothek findet oder hier ein paar schnell runter getippte ungetestete Zeilen. Außer dass da wahrscheinlich mehr dran gesessen haben.

Und ich find's auch nicht verwerflich, zuzugeben, mal lieber was Fertiges im Netz zu suchen, als sich selbst hinzusetzen. Obwohl das meistens schneller gehen würde, wenn man ehrlich ist.
Andere verpacken das vlt. in schönere Worte, aber das Ergebnis ist letztendlich das Gleiche. Und da wurde hier im Forum schon mit professionelleren Programmteilen kostenlos geholfen.


PS: Übrigens wärst Du da nicht wirklich glücklich drüber. Aber Dein Haus würde ich mir gern mal in natura ansehen.
 
Zuletzt bearbeitet:
Nur um meine angebliche Faulheit zu rechtfertigen...

1. Geht es darum einen fertigen Funktionsblock zu finden. ST gehört nicht zu meinen Stärken. Das heisst einfach in ein FUP oder CFC einzufügen.
2. Geht es um eine externe Anfrage. Wie RN schon schrieb, möchte jeder für seine Arbeiten Geld bekommen. Ich verdiene mein Geld dann, wenn ich die (von extern verursachten) Fehler versuche auszubügeln.
3. Warum sollte ich mir die Mühe machen, einen FB zu designen, auszutesten und dann zu verschicken, wenn es schon etwas gibt? Wieso das Rad neu erfinden?!?
4. Hätte es ja sein können, dass jemand einen solchen FB kennt. Hucki versuchte wenigstens zu helfen. Danke, für die Hilfe.
 
Nur um meine angebliche Faulheit zu rechtfertigen...
Angeblich? :rolleyes:
3. Warum sollte ich mir die Mühe machen, einen FB zu designen, auszutesten und dann zu verschicken, wenn es schon etwas gibt? Wieso das Rad neu erfinden?!?

Stimmt, es ist bestimmt richtig, wenn du dir die Arbeit machen lässt, dafür bezahlt wirst und dann der große Maker bist.

Wenn ich so etwas lese bekomme ich Pickel. :rolleyes:
Sollte ich nicht einen besonderen Baustein dir zur Verfügung stellen?


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dieser Programmcode liefert die REAL-Werte entsprechend dem niedrigsten True-Eingang:
Code:
IF In_1 THEN
  Out := 1.0 ;
ELSIF In_2 THEN
  Out := 2.0 ;
ELSIF ...

...

ELSIF In_9 THEN
  Out := 9.0 ;
ELSIF In_10 THEN
  Out := 10.0 ;
ELSE
  Out := 0.0 ;
END_IF;
Das könnte ungefähr der Aufgabenbeschreibung entsprechen, doch ich kann mir kaum vorstellen, daß Du diesen simplen Code gesucht hast...

Aber:
Wenn ein Eingang True ist, hat dieser Priorität und die anderen Eingänge werden ignoriert (also immer nur Eingang gleichzeitig).
Wenn ein zweiter Eingang True wird, während ein anderer schon True ist, gibt der Ausgang den Wert vom zweiten erst raus, wenn der Erste wieder False ist.
Das läßt Spielraum für unterschiedlichste Interpretationen...
Vermutlich muß der FB da auf gespeicherte Zustände von vorher zurückgreifen.

Was soll passieren, wenn der zweite Eingang wieder False wird, bevor der erste Eingang false wird?
Was soll passieren wenn mehr als 2 Eingänge True sind - welcher wird der nächste?
Was soll passieren wenn kein Eingang True ist?

Vielleicht ergibt sich Deine Zeitnot und Unlust daraus, daß Du nicht in der Lage bist, Deine Aufgabe eindeutig zu beschreiben? Da brauchst Du aber auch nicht suchen ob es schon einen fertigen Baustein gibt, wenn Du eigentlich gar nicht weißt was Du suchst. Und wenn ein anderer Programmierer Dir den Code liefern soll, dann wird der die meiste Zeit damit verbringen (müssen), Dir aus der Nase zu ziehen, was Du wirklich willst bzw. brauchst.

Alternativ versuche mal zu beschreiben, wozu Du den Baustein brauchst. Dann kommt man vielleicht eher drauf, wie er funktionieren muß.

Harald
 
Stimmt, es ist bestimmt richtig, wenn du dir die Arbeit machen lässt, dafür bezahlt wirst und dann der große Maker bist.

Wenn ich so etwas lese bekomme ich Pickel.
Das ist doch bekloppt.

Wir benutzen doch alle Bibliotheken und Grundbausteine, die auch irgend jemand anders programmiert hat.
Ich finde es legitim, danach zu fragen, ob es vlt. eine solche Bibliothek oder Systemfunktion schon von Haus aus oder anderswo frei verfügbar, z.B. Oscat, gibt.
Flankenmerker kann man z.B. auch selbst programmieren, aber die vom System zur Verfügung gestellte Funktion ist doch viel bequemer.

Und auch die Hardware hat jemand anders entwickelt und wird dann vom Programmierer als Teil des Gesamtprojekt weiter verkauft.


Gebe es z.B. eine SFC, der er nur nicht kannte, würde hier kein Hahn nach dieser Anfrage krähen.
"Nimm die und die SFC!" als Antwort und gut.
Auch nicht selbst programmiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Hucki

Manchmal macht der Ton die Musik.
Wenn jemand so argumentiert wie der TE (keine Zeit und keine Lust aber Geld dafür bekommen will), dann stimme ich bike zu.
Ich frag mich dann nämlich, warum ich Zeit und Lust haben soll, den entsprechenden Baustein aus einem meiner Projekte herauszusuchen.

Gruß
Dieter
 
Das ist doch bekloppt.

Wir benutzen doch alle Bibliotheken und Grundbausteine, die auch irgend jemand anders programmiert hat.
Ich finde es legitim, danach zu fragen, ob es vlt. eine solche Bibliothek oder Systemfunktion schon von Haus aus oder anderswo frei verfügbar, z.B. Oscat, gibt.
Flankenmerker kann man z.B. auch selbst programmieren, aber die vom System zur Verfügung gestellte Funktion ist doch viel bequemer.

Und auch die Hardware hat jemand anders entwickelt und wird dann vom Programmierer als Teil des Gesamtprojekt weiter verkauft.


Gebe es z.B. eine SFC, der er nur nicht kannte, würde hier kein Hahn nach dieser Anfrage krähen.
"Nimm die und die SFC!" als Antwort und gut.
Auch nicht selbst programmiert.

Ist das wirklich so?
Okay, dann schreibe ich das Nächstemal, wenn ich eine Funktion brauche:
Schreibt mir mein Programm, ich habe keine Lust will es aber verkaufen.

Mir kommen solche geistigen T......eger immer wieder unter.
Schön wenn du für andere die Arbeit machst, ich finde es beschissen, was der Kollege hier schreibt.


bike
 
Okay, dann schreibe ich das Nächstemal, wenn ich eine Funktion brauche:
Schreibt mir mein Programm, ich habe keine Lust will es aber verkaufen.
Ersten ist keiner verpflichtet, Dir, ihm oder sonstwem was kostenlos zu schreiben und zweitens -
er hat überhaupt nicht danach gefragt, ob das wer macht!
Kennt jemand einen solchen Funktionsblock?
Das war die Frage. Nicht mehr!

Und nur weil mal einer die Wahrheit sagt, das ihm seine Zeit zu schade ist, um das Fahrrad nochmal zu erfinden, wenn es das schon gibt, heißt das ja noch lange nicht, dass das wer anders machen soll, wenn's noch keiner bisher getan hat.


Ich frag mich dann nämlich, warum ich Zeit und Lust haben soll, den entsprechenden Baustein aus einem meiner Projekte herauszusuchen.
Und auch das hat keiner von Dir verlangt!
Er wollte nur wissen "Nimm Baustein sowieso (z.B. aus der Oscat-Bibliothek)" oder "Auch wenn Du keine Lust hast, gibt's nicht, also selber machen".
(Oder meinetwegen auch: "Ich hab vom Bruder des Schwagers des Arbeitskollegen gehört, in Timbuktu soll's sowas geben, aber suchen mußt Du selbst." :ROFLMAO:)
Lest alles bevor Ihr auf die Leute eindrescht, sonst ist nämlich irgendwann keiner mehr hier im Forum, mit dem Ihr das machen könnt.


PS: Und wenn ich lieber ein bißchen auf meiner Tastatur rum klimpere, als in irgendwelchen Bibliotheken nach zu sehen, ist das auch mein Problem. Verlangt hat er weder das eine noch das andere von mir.
Doch danach fragen kann jeder bei mir, auch ein bike. Aber was ich dann mache oder nicht, ist ganz allein meine Entscheidung!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
So ich muss mal einiges klarstellen.

Ich will kein Geld kassieren für Arbeit die ein anderer für mich macht.
Die Anfrage kommt von einem Kunde der einen Controller von uns gekauft hat mit einem Programm von mir drauf. Dieser Kunde probiert aber selber gerne Sachen aus und manchmal geht's gut aus und manchmal eben nicht. Wenn es mit dem Backup nicht mehr klappt, oder er nur knapp neben dem Ziel vorbei geschossen ist, helfe ich ihm. Je nach Aufwand bezahlt er dies auch... und tut das gerne!

Jetzt möchte er etwas programmieren (Er arbeitet nur mit CFC, weil es am übersichtlichsten ist). Darum hat er mich nach dem gesuchten FB gefragt.
Ich weiss, dass er häufig am Weekend am rumbasteln ist und mein Terminplan ist ziemlich voll.

Aus diesen Gründen, dachte ich mir, dass mir hier vielleicht jemand einen Tipp geben kann.
Ich habe von Niemandem verlangt, dass er mir einen FB programmieren soll!

Wenn Jemand ein Problem mit meiner einfachen Frage hat. Lest es, ignoriert es und geht zum nächsten Thema!
Lesen können heisst nicht nur die Buchstaben zu einem Wort zusammensetzen... Man sollte die Wörter und Sätze auch verstehen!!!

@Harald (und alle anderen, die wirklich helfen möchten):
So wie ich es verstanden habe, geht es um einen Fehleranzeige.
Mit dem ausgegebenen Real-Wert will er dann eine Lampe blinken lassen (ähnlich dem Fehlercode auf dem Wagon-Controller).
4 mal blinken = Eingang 4, 8 mal blinken = Eingang 8, usw...
Das Blinken mit dem Real-Wert hat er im Griff. Er hat auch die Funktion des gesuchten FB's im Griff. Doch bei ihm besteht dieser Teil wohl aus hundert AND-Bausteinen.
Das heisst z.B: Eingang 5 ist das Wärmepaket der Abwasserpumpe. Wenn dieser auf True geht, soll beim Ausgang 5 ausgegeben werden.
Wenn ein zweiter Eingang kommt, während der Erste noch True ist, bleibt die 5 am Ausgang.
Wenn der Zweite vor dem Ersten auf False geht ist es egal. Also keine Speicherung oder Fehlerreihenfolge.

Er (und ich eigentlich auch) dachte nur, dass es vielleicht viel einfacher geht.
Und ja ich gebe es zu. Ich kenne nicht ganz alle Funktionsblöcke auf dieser Welt auswendig...
 
Zuletzt bearbeitet:
Das habe ich bemerkt.

Eigentlich wollte ich mich nur kurz halten. Wenn ich am Anfang einen riesen Roman schreibe, nehmen sich die meisten nicht die Zeit alles zu lesen.

Für alle, die nicht den selben Ton gehört haben, wie den freundlichen, den ich gemeint habe...

Sorry, war wirklich nicht böse gemeint.
 
Zurück
Oben