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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 32

Thema: SCL Anfängerfehler??

  1. #21
    Licht9885 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.12.2009
    Ort
    Dielmissen
    Beiträge
    299
    Danke
    98
    Erhielt 18 Danke für 17 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der tiefer Sinn ist ein Ventil zu Schalten und zwar nicht mit einem Boolschen Signal sondern mit einem String sprich wenn der Benutzer das Ventil öffnen will soll er in die Visu den satz V1 auf oder zu oder aber Ventil öffnen oder Schließen eingeben können.

    Dieser String soll dann in dem FB 1 zerlegt und auf die Wörter V1 und Ventil und zu und auf usw geprüft werden.
    MFG Sebastian Licht


    Step 7 Prof. ,WinCC
    Codesys, Beckhoff Twincat 2
    EZTouchPLC
    EZPLC
    EZTextPLC

  2. #22
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ich glaube ich habe verstanden was der TE vor hat, auch wenn sich mir der Sinn dahinter nicht erschließt. Ein Ventil über eine Texteingabe zu steuern ist .... naja etwas merkwürdig.
    Nichts desto trotz, hier mal eine Idee von mir:

    Code:
    FUNCTION_BLOCK FB1
    VAR_INPUT
    Eingabetext: STRING; //* Steuertext von WinCC*//
    Start: BOOL; //* Start Varibale von WINCC*//
    END_VAR
    
    VAR_OUTPUT
    Ventil: BOOL; //*Ausgangsvariable für das Ventil*//
    END_VAR
    VAR
    Ventil_Ok: BOOL; //*Interne Hilfsvariable nur zur interne Verwendung*//
    
    Ventil_oeffnen: BOOL;
    Ventil_schließen: BOOL;
    
    Text_2: STRING :='V1'; //*Auswahltext_1*//
    Text_3: STRING :='auf'; //*Auswahltext_2*//
    Text_4: STRING :='zu'; //*Auswahltext_3*//
    Text_5: STRING :='Ventil'; //*Auswahltext_4*//
    Text_6: STRING :='öffne'; //*Auswahltext_5*//
    Text_7: STRING :='schließe'; //*Auswahltext_6*//
    END_VAR
    
    Ventil_OK := (FIND(IN1:=Eingabetext,IN2:=Text_2) > 0) or (FIND(IN1:=Eingabetext,IN2:=Text_5) > 0);
    Ventil_oeffnen := (FIND(IN1:=Eingabetext,IN2:=Text_3) > 0) or (FIND(IN1:=Eingabetext,IN2:=Text_6) > 0);
    Ventil_schliessen := (FIND(IN1:=Eingabetext,IN2:=Text_4) > 0) or (FIND(IN1:=Eingabetext,IN2:=Text_7) > 0);
    
    IF Start and Ventil_OK THEN
       IF Ventil_oeffnen and not Ventil_schliessen THEN
         Ventil := TRUE;
      ELSIF Ventil_schliessen and not Ventil_oeffnen THEN
         Ventil := false;
      END_IF;
    END_IF;
    Geändert von MasterOhh (14.05.2013 um 16:03 Uhr) Grund: ß im Code verwendet ... wie peinlich

  3. Folgende 2 Benutzer sagen Danke zu MasterOhh für den nützlichen Beitrag:

    ducati (14.05.2013),Licht9885 (14.05.2013)

  4. #23
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.640
    Danke
    377
    Erhielt 805 Danke für 645 Beiträge

    Standard

    Zitat Zitat von Licht9885 Beitrag anzeigen
    Der tiefer Sinn ist ein Ventil zu Schalten und zwar nicht mit einem Boolschen Signal sondern mit einem String sprich wenn der Benutzer das Ventil öffnen will soll er in die Visu den satz V1 auf oder zu oder aber Ventil öffnen oder Schließen eingeben können.
    Also tatsäglich ein Text Parser.
    Ist FIND Case empfindlich ?
    Gibt "zu", "Zu" und "ZU" denselbe ergebnis ?

    Wenn der Operator dann den Falschen Ventil geöffnet hat, wie kann er sehr schnell es wieder zu machen ?
    Ich kann mir vorstellen dass wenn er eine Text eintippen muss kann es sehr panisch werden.
    Jesper M. Pedersen

  5. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    Licht9885 (14.05.2013)

  6. #24
    Registriert seit
    09.08.2006
    Beiträge
    3.642
    Danke
    915
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Jo,

    die Verriegelung zwischen "auf" und "zu" find ich wichtig, hier nochmal meine Lösung

    Code:
    FUNCTION_BLOCK FB999
    VAR_INPUT
    Eingabetext: STRING; //* Steuertext von WinCC*//
    Start: BOOL; //* Start Variable von WINCC*//
    END_VAR
    
    VAR_OUTPUT
    Ventil: BOOL; //*Ausgangsvariable für das Ventil*//
    END_VAR
    
    VAR
    A2: BOOL; //*Text2 vorhanden*//
    A3: BOOL; //*Text3 vorhanden*//
    A4: BOOL; //*Text4 vorhanden*//
    A5: BOOL; //*Text5 vorhanden*//
    A6: BOOL; //*Text6 vorhanden*//
    A7: BOOL; //*Text7 vorhanden*//
    Text_2: STRING :='V1';       //*Auswahltext_2*//
    Text_3: STRING :='auf';      //*Auswahltext_3*//
    Text_4: STRING :='zu';       //*Auswahltext_4*//
    Text_5: STRING :='Ventil';   //*Auswahltext_5*//
    Text_6: STRING :='öffne';    //*Auswahltext_6*//
    Text_7: STRING :='schließe'; //*Auswahltext_7*//
    END_VAR
    
    // Textsuche
    A2:=FIND(IN1:=Eingabetext,IN2:=Text_2)<>0;
    A3:=FIND(IN1:=Eingabetext,IN2:=Text_3)<>0;
    A4:=FIND(IN1:=Eingabetext,IN2:=Text_4)<>0;
    A5:=FIND(IN1:=Eingabetext,IN2:=Text_5)<>0;
    A6:=FIND(IN1:=Eingabetext,IN2:=Text_6)<>0;
    A7:=FIND(IN1:=Eingabetext,IN2:=Text_7)<>0;    
    
    // Ventil schalten
    IF START AND (A2 OR A5) AND (A3 OR A6) AND NOT (A4 OR A7) THEN
        VENTIL := 1;
    ELSIF START AND (A2 OR A5) AND (A4 OR A7) AND NOT (A3 OR A6) THEN
        VENTIL := 0;
    END_IF;
    
    END_FUNCTION_BLOCK

  7. Folgender Benutzer sagt Danke zu ducati für den nützlichen Beitrag:

    Licht9885 (14.05.2013)

  8. #25
    Registriert seit
    09.08.2006
    Beiträge
    3.642
    Danke
    915
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Also tatsäglich ein Text Parser.
    Ist FIND Case empfindlich ?
    Gibt "zu", "Zu" und "ZU" denselbe ergebnis ?

    Wenn der Operator dann den Falschen Ventil geöffnet hat, wie kann er sehr schnell es wieder zu machen ?
    Ich kann mir vorstellen dass wenn er eine Text eintippen muss kann es sehr panisch werden.
    Jo, meiner Meinung nach auch nur eine "akademische" Lösung! Für Industrieanwendungen nicht geeignet!

    Gruß.

  9. Folgender Benutzer sagt Danke zu ducati für den nützlichen Beitrag:

    Licht9885 (14.05.2013)

  10. #26
    Registriert seit
    16.07.2007
    Beiträge
    61
    Danke
    13
    Erhielt 16 Danke für 16 Beiträge

    Standard

    was soll eigentlich passieren, wenn der bediener in das Textfeld dann den String 'V 2' eingibt?

    Der baustein funktioniert ja nur für ein Ventil, oder lieg ich da falsch?

  11. Folgender Benutzer sagt Danke zu m_w für den nützlichen Beitrag:

    Licht9885 (14.05.2013)

  12. #27
    Licht9885 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.12.2009
    Ort
    Dielmissen
    Beiträge
    299
    Danke
    98
    Erhielt 18 Danke für 17 Beiträge

    Standard

    ich Danke euch vielmals erstmal für die schnelle Hilfe das man die Findbausteine so verwenden kann war mir nicht bewusst deswegen habe ich diesen If Then Else Horror da aufgezogen.
    Und ja Ducati du hast recht aber nicht nur in IF then else kriege ich Schweissausbrüche ganz generell wenn es heißt SCL ich bin mehr der KOP bzw FUP Mensch hat warscheinlich damit zutun das ich eigentlich nur Instandhalter bin und kein richtiger Programmiere aber leider muss ich in diesen Zeiten auch alles andere mit machen.

  13. #28
    Registriert seit
    09.08.2006
    Beiträge
    3.642
    Danke
    915
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von m_w Beitrag anzeigen
    was soll eigentlich passieren, wenn der bediener in das Textfeld dann den String 'V 2' eingibt?

    Der baustein funktioniert ja nur für ein Ventil, oder lieg ich da falsch?
    Wie gesagt, alles nur akademisch... In der Praxis gibt's ja auch noch x andere Befehle HAND/AUTO ORT/FERN Quittierung ... das ganze dann in deutsch/englisch/türkisch in allen möglichen Schreibweisen... und dann noch solche Eingaben " V1 V2 Hand ORT schliessen automatisch opening sofort jetzt aber zack zack" das wird lustig

  14. #29
    Licht9885 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.12.2009
    Ort
    Dielmissen
    Beiträge
    299
    Danke
    98
    Erhielt 18 Danke für 17 Beiträge

    Standard

    @m_w Nichts der Baustein soll nur ein Ventil Bearbeiten

  15. #30
    Registriert seit
    09.08.2006
    Beiträge
    3.642
    Danke
    915
    Erhielt 661 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Licht9885 Beitrag anzeigen
    ich Danke euch vielmals erstmal für die schnelle Hilfe das man die Findbausteine so verwenden kann war mir nicht bewusst deswegen habe ich diesen If Then Else Horror da aufgezogen.
    Und ja Ducati du hast recht aber nicht nur in IF then else kriege ich Schweissausbrüche ganz generell wenn es heißt SCL ich bin mehr der KOP bzw FUP Mensch hat warscheinlich damit zutun das ich eigentlich nur Instandhalter bin und kein richtiger Programmiere aber leider muss ich in diesen Zeiten auch alles andere mit machen.
    Naja, aber vielleicht solltet Ihr nochmal überdenken, ob das mit der Texteingabe solch eine gute Idee ist... Normalerweise macht man das mit mehreren Bedienbuttons, für jede Aktion einen Button.

    Gruß.

Ähnliche Themen

  1. SCL: FB Aufruf unter SCL mit Variablen DB
    Von ThorstenK im Forum Programmierstrategien
    Antworten: 32
    Letzter Beitrag: 10.02.2011, 19:15
  2. Antworten: 4
    Letzter Beitrag: 07.10.2006, 00:34
  3. Anfängerfehler beim Anschluss??
    Von Max-Schulz im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 27.06.2006, 07:49
  4. Brauche Hilfe bei SCL.SFC Aufrufen in SCL
    Von Gerold im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.10.2005, 10:47
  5. Anfängerfehler oder was
    Von andretus im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 16.02.2005, 15:29

Lesezeichen

Berechtigungen

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