Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 32 von 32

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

  1. #31
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    In CFC würde das aber auch keiner aus den verfügbaren Einzelementen aufbauen. Das würde alleine schon die 6 Blätter eines Teilplans einnehmen, und dann ist der ganze Vorteil mit der Übersichtlichkeit von CFC dahin.
    In CFC sollte nur die Gesamtlogik zu sehen sein, sodass man eigentlich nicht unbedingt in die dort aufgerufenen Bausteine hineinschauen muss.
    Vom Prinzip her gibt es in der CFC-Bibliothek schon einen ähnlichen Baustein, nämlich MUX8_I bzw. MUX8_R für Real-Zahlen.

    Damit man keinen Wildwuchs an Bausteinen hat, würde ich es folgendermaßen machen:
    - Einen Baustein MUX10_R erstellen, der von den Parameternamen und der Funktion her wie der MUX8_R aussieht, nur eben mit 10 Eingängen.
    - Einen Vorschaltbaustein mit 10 BOOL Eingängen, und einem Ausgang K. K gibt die Nummer des zuerst gesetzten Eingangs aus. Am besten gucken ob es einen ähnlichen Baustein in der CFC Bibliothek gibt an dem man sich von der Bezeichnung orientieren kann, wahrscheinlich mit weniger Eingängen.

    Diese beiden Bausteine kann man schön in CFC hintereinanderschalten.

    Edit: Wir sind ja garnicht bei Step7...aber ich würde das bei anderen Programmierumgebungen ähnlich handhaben. Nachsehen was es in der mitgelieferten Bibliothek gibt, und sich auch an diesem Stil orientieren.
    Geändert von Thomas_v2.1 (31.08.2014 um 13:50 Uhr)

  2. #32
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.177
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn man eh' noch einen (selbstgeschriebenen) Vorschaltbaustein nehmen muß, dann braucht man keinen MUX-Baustein mehr, man braucht doch nur K zu REAL konvertieren. Oder der "Vorschalt"-Baustein gibt K gleich als REAL aus - so wie mein Code in #25.


    Der TE müßte sich nun nur noch die klitzekleine Mühe machen, FUNCTION_BLOCK ... und die INPUT/OUTPUT-Deklarationen dazu zu schreiben - schon hat er einen FB, den er in ein FUP- oder CFC-Programm einfügen kann. Das geht schneller, als ich hier brauche um diesen Hinweis zu geben ... da kann ich das auch gleich noch nachliefern:
    Code:
    FUNCTION_BLOCK SEL10_R
    VAR_INPUT
      In_1 : BOOL ;
      In_2 : BOOL ;
      In_3 : BOOL ;
      In_4 : BOOL ;
      In_5 : BOOL ;
      In_6 : BOOL ;
      In_7 : BOOL ;
      In_8 : BOOL ;
      In_9 : BOOL ;
      In_10 : BOOL ;
    END_VAR
    
    VAR_OUTPUT
      Out : REAL ;
    END_VAR
    
      CASE REAL_TO_INT(Out) OF
         1 : IF NOT In_1 THEN Out := 0.0 ; END_IF ;
         2 : IF NOT In_2 THEN Out := 0.0 ; END_IF ;
         3 : IF NOT In_3 THEN Out := 0.0 ; END_IF ;
         4 : IF NOT In_4 THEN Out := 0.0 ; END_IF ;
         5 : IF NOT In_5 THEN Out := 0.0 ; END_IF ;
         6 : IF NOT In_6 THEN Out := 0.0 ; END_IF ;
         7 : IF NOT In_7 THEN Out := 0.0 ; END_IF ;
         8 : IF NOT In_8 THEN Out := 0.0 ; END_IF ;
         9 : IF NOT In_9 THEN Out := 0.0 ; END_IF ;
        10 : IF NOT In_10 THEN Out := 0.0 ; END_IF ;
      ELSE : Out := 0.0 ;
      END_CASE ;
    
      IF Out = 0.0 THEN
        IF    In_1 THEN Out := 1.0 ;
        ELSIF In_2 THEN Out := 2.0 ;
        ELSIF In_3 THEN Out := 3.0 ;
        ELSIF In_4 THEN Out := 4.0 ;
        ELSIF In_5 THEN Out := 5.0 ;
        ELSIF In_6 THEN Out := 6.0 ;
        ELSIF In_7 THEN Out := 7.0 ;
        ELSIF In_8 THEN Out := 8.0 ;
        ELSIF In_9 THEN Out := 9.0 ;
        ELSIF In_10 THEN Out := 10.0 ;
        END_IF ;
      END_IF ;
    
    END_FUNCTION_BLOCK
    (das ist jetzt getestetes Siemens-SCL, sollte aber auch als Codesys-ST richtig sein)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Step 7 [SCL] IN1, IN2, .., INX indirekt adressieren ?
    Von Flux im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 04.02.2014, 21:52
  2. Step 7 REAL im DB
    Von DerMatze im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 05.12.2013, 12:50
  3. DT-> real
    Von siqo im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 20.06.2011, 23:10
  4. Addieren Real
    Von Emilio im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 21.12.2007, 13:37
  5. S7 REAL Datenformat
    Von cidex im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.08.2007, 19:37

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •