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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 29

Thema: Das Vergleichen von Werten funktioniert einfach nicht?!

  1. #11
    Registriert seit
    28.10.2010
    Ort
    36205 Sontra
    Beiträge
    111
    Danke
    14
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    in der Onlineansicht wird ein Wert doch immer erst in HX angezeigt. Erst wenn ich mit der rechten Maustaste umstelle, kann ich den Wert mir auch als DEZ oder Gleitpunkt anzeigen lassen.
    (Ich hoffe, ich liege richtig)

    Gruß

  2. Folgender Benutzer sagt Danke zu kliebisch.m für den nützlichen Beitrag:

    S7Sync (23.11.2011)

  3. #12
    S7Sync ist offline Benutzer
    Themenstarter
    Registriert seit
    15.11.2010
    Beiträge
    76
    Danke
    21
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von kliebisch.m Beitrag anzeigen
    in der Onlineansicht wird ein Wert doch immer erst in HX angezeigt. Erst wenn ich mit der rechten Maustaste umstelle, kann ich den Wert mir auch als DEZ oder Gleitpunkt anzeigen lassen.
    Hallo,
    es wird immer erst Hex angezeigt? Selbst wenn ein INT Wert an der IN Variable anliegt?
    Seltsam ist aber, dass bei der #Uhrzeit Variable (IN) mit Word Deklaration ein Dez Wert im Onlinestatus angezeigt wird. Nur bei der #Einschalten_1 (_2,_3) wird der INT Wert als Hex angezeigt/gewandelt?! - warum auch immer.

    Der sch... Hexcode muss doch ind dez zu bekommen sein - verdammt

    Ich danke für jeden Hinweis und werde diesem Tipp nachgehen - ich bin gespannt.

    Für weitere Tipps bin ich offen.
    danke im Voraus.

    mfg

  4. #13
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    wenn dich die Darstellung stört (es handelt sich hier wirklich nur um eben die) dann mach die Eingangsvariable zu einem INT und sie wird dir dezimal angezeigt.
    Was mir bei deinen Code-Versuchen so auffällt ist das generelle Zuweisen, das du betreibst.
    Wenn du hinter einem Vergleich eine Variable mit "=" zuweisst und eben nicht setzt ober rücksetzt dann hat sie den gewünschten Zustand nur zu dem Zeitpunkt - eine Minute später nicht mehr. Ist das das was du willst ?
    Auf der Basis hatte ich auch deinen Code korrigiert ... (siehe meine Beitrag von Gestern)

    Gruß
    Larry

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

    S7Sync (23.11.2011)

  6. #14
    S7Sync ist offline Benutzer
    Themenstarter
    Registriert seit
    15.11.2010
    Beiträge
    76
    Danke
    21
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Was mir bei deinen Code-Versuchen so auffällt ist das generelle Zuweisen, das du betreibst.
    Wenn du hinter einem Vergleich eine Variable mit "=" zuweisst und eben nicht setzt ober rücksetzt dann hat sie den gewünschten Zustand nur zu dem Zeitpunkt - eine Minute später nicht mehr. Ist das das was du willst ?
    gut, wenn es sich lediglich um die Darstellung handelt muss es an etwas anderem leigen das der Vergleich nicht VKE1 wird. Ja es reicht das die Variable zugewiesen wird, der Ausgang des FB wird in einem anderen NW in Abhängigkeit einiger anderer Verknüpfungen gesetzt.

    Ich habe eine weitere Erkenntnis:
    es muss irgendwie an dem FB liegen, da ich den Vergleich mal in einem FC gemacht habe (Uhrzeit [WORD] gleich Einschaltzeit [WORD]) und siehe da - es funktioniert....
    ich werde mal den FB hochladen, viellleicht könntest du mal drauf gucken

    Anbei der FB mit dem IDB und dem FB aufruf in einem FC (die Ein- Ausschaltzeiten kommen aus einer WinCCflex RT)

    Vielen Dank.

    mfg
    Angehängte Dateien Angehängte Dateien
    Geändert von S7Sync (23.11.2011 um 12:36 Uhr)

  7. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Könntest du vielleicht auch einfach den besagten FB (z.B. als AWL-Quelle) hier mal einstellen ...?

    Wird der FB in einem anderem FB aufgerufen ?

  8. #16
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    upps. war auf erster seite

  9. #17
    Registriert seit
    01.11.2007
    Beiträge
    1.239
    Danke
    91
    Erhielt 407 Danke für 368 Beiträge

    Standard

    Ist deine Uhrzeit möglicherweise BCD-codiert?

    Grüße von HaDi

  10. #18
    S7Sync ist offline Benutzer
    Themenstarter
    Registriert seit
    15.11.2010
    Beiträge
    76
    Danke
    21
    Erhielt 0 Danke für 0 Beiträge

    Beitrag

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Könntest du vielleicht auch einfach den besagten FB (z.B. als AWL-Quelle) hier mal einstellen ...?

    Wird der FB in einem anderem FB aufgerufen ?
    der FB Aufruf wird in einem FC realisiert

    Hier die AWL-Quelle (die ersten drei NW musste ich wegen Beitragslänge löschen, aber da gab es keine Probleme):

    FUNCTION_BLOCK "FB_Schaltuhr"
    TITLE =Dreikanal Wochen Zeitschaltuhr
    AUTHOR :
    VERSION : 0.1


    VAR_INPUT
    Uhrzeit : WORD ;
    Wochentag : BYTE ;
    Mo_bis_Fr : BOOL ;
    Sa_bis_So : BOOL ;
    Mo_bis_So : BOOL ;
    Einschalten_1 : WORD ;
    Ausschalten_1 : WORD ;
    Einschalten_2 : WORD ;
    Ausschalten_2 : WORD ;
    Einschalten_3 : WORD ;
    Ausschalten_3 : WORD ;
    END_VAR
    VAR_OUTPUT
    Schaltuhr_aktiviert : BOOL ;
    END_VAR
    VAR
    Funktion_MoFr_T1_Ein : BOOL ;
    Funktion_MoFr_T1_Aus : BOOL ;
    Funktion_MoFr_T2_Ein : BOOL ;
    Funktion_MoFr_T2_Aus : BOOL ;
    Funktion_MoFr_T3_Ein : BOOL ;
    Funktion_MoFr_T3_Aus : BOOL ;
    Funktion_SaSo_T1_Ein : BOOL ;
    Funktion_SaSo_T1_Aus : BOOL ;
    Funktion_SaSo_T2_Ein : BOOL ;
    Funktion_SaSo_T2_Aus : BOOL ;
    Funktion_SaSo_T3_Ein : BOOL ;
    Funktion_SaSo_T3_Aus : BOOL ;
    Funktion_MoSo_T1_Ein : BOOL ;
    Funktion_MoSo_T1_Aus : BOOL ;
    Funktion_MoSo_T2_Ein : BOOL ;
    Funktion_MoSo_T2_Aus : BOOL ;
    Funktion_MoSo_T3_Ein : BOOL ;
    Funktion_MoSo_T3_Aus : BOOL ;
    Schaltzeit1_aktiviert : BOOL ; //Schaltzeit 1 Zeiten eingestellt
    Schaltzeit2_aktiviert : BOOL ; //Schaltzeit 2 Zeiten eingestellt
    Schaltzeit3_aktiviert : BOOL ; //Schaltzeit 3 Zeiten eingestellt
    Montag : BOOL ;
    Dienstag : BOOL ;
    Mittwoch : BOOL ;
    Donnerstag : BOOL ;
    Freitag : BOOL ;
    Samstag : BOOL ;
    Sonntag : BOOL ;
    Woche : BOOL ; //Wochentag liegt zwischen Montag bis Freitag
    Wochenende : BOOL ; //Wochentag liegt auf einem Samstag/Sonntag
    END_VAR
    BEGIN


    NETWORK
    TITLE =Schaltzeit nach gewählter Funktion
    //Abfrage welche Funktion gewählt ist, danach die Istzeit mit der eingestellten
    //Schaltzeit vergleichen und mit VKE=1 eine Variable auf "1" setzen.
    //================================================Funktion 1
    U( ;
    U #Mo_bis_Fr; //Funktion Montag bis Freitag
    UN #Sa_bis_So;
    UN #Mo_bis_So;
    U #Woche;
    ) ;
    SPB MoFr;
    SPA FKT2;
    //--------------------------------------
    MoFr: U( ;
    U #Schaltzeit1_aktiviert;
    SPB ON2;
    SPA NXT3;
    ON2: L #Uhrzeit;
    L #Einschalten_1;
    ==I ;

    ) ;
    = #Funktion_MoFr_T1_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_1;
    ==I ;
    ) ;
    = #Funktion_MoFr_T1_Aus;
    //--------------------------------------
    NXT3: U( ;
    U #Schaltzeit2_aktiviert;
    SPB ON3;
    SPA NXT4;
    ON3: L #Uhrzeit;
    L #Einschalten_2;
    ==I ;

    ) ;
    = #Funktion_MoFr_T2_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_2;
    ==I ;
    ) ;
    = #Funktion_MoFr_T2_Aus;

    //--------------------------------------
    NXT4: U( ;
    U #Schaltzeit3_aktiviert;
    SPB ON4;
    SPA NXT5;
    ON4: L #Uhrzeit;
    L #Einschalten_3;
    ==I ;
    ) ;
    = #Funktion_MoFr_T3_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_3;
    ==I ;
    ) ;
    = #Funktion_MoFr_T3_Aus;
    NXT5: NOP 0;

    //================================================Funktion 2
    FKT2: U( ;
    U #Sa_bis_So;
    UN #Mo_bis_Fr;
    UN #Mo_bis_So;
    U #Wochenende;
    ) ;
    SPB SaSo;
    SPA FKT3;
    //--------------------------------------
    SaSo: U( ;
    U #Schaltzeit1_aktiviert;
    SPB ON5;
    SPA NXT6;
    ON5: L #Uhrzeit;
    L #Einschalten_1;
    ==I ;
    ) ;
    = #Funktion_SaSo_T1_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_1;
    ==I ;
    ) ;
    = #Funktion_SaSo_T1_Aus;
    //--------------------------------------
    NXT6: U( ;
    U #Schaltzeit2_aktiviert;
    SPB ON6;
    SPA NXT7;
    ON6: L #Uhrzeit;
    L #Einschalten_2;
    ==I ;
    ) ;
    = #Funktion_SaSo_T2_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_2;
    ==I ;
    ) ;
    = #Funktion_SaSo_T2_Aus;
    //--------------------------------------
    NXT7: U( ;
    U #Schaltzeit3_aktiviert;
    SPB ON7;
    SPA NXT8;
    ON7: L #Uhrzeit;
    L #Einschalten_3;
    ==I ;
    ) ;
    = #Funktion_SaSo_T3_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_3;
    ==I ;
    ) ;
    = #Funktion_SaSo_T3_Aus;
    NXT8: NOP 0;
    //================================================Funktion 3
    FKT3: U #Mo_bis_So;
    UN #Mo_bis_Fr;
    UN #Sa_bis_So;
    SPB MoSo;
    SPA NX11;
    //--------------------------------------
    MoSo: U( ;
    U #Schaltzeit1_aktiviert;
    SPB ON8;
    SPA NXT9;
    ON8: L #Uhrzeit;
    L #Einschalten_1;
    ==I ;
    ) ;
    = #Funktion_MoSo_T1_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_1;
    ==I ; // gleich?
    ) ;
    = #Funktion_MoSo_T1_Aus;
    //--------------------------------------
    NXT9: U( ;
    U #Schaltzeit2_aktiviert;
    SPB ON9;
    SPA NX10;
    ON9: L #Uhrzeit;
    L #Einschalten_2;
    ==I ;
    ) ;
    = #Funktion_MoSo_T2_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_2;
    ==I ;
    ) ;
    = #Funktion_MoSo_T2_Aus;
    //--------------------------------------
    NX10: U( ;
    U #Schaltzeit3_aktiviert;
    SPB ON10;
    SPA NX11;
    ON10: L #Uhrzeit;
    L #Einschalten_3;
    ==I ;
    ) ;
    = #Funktion_MoSo_T3_Ein;

    U( ;
    L #Uhrzeit;
    L #Ausschalten_3;
    ==I ;
    ) ;
    = #Funktion_MoSo_T3_Aus;
    NX11: NOP 0;

    NETWORK
    TITLE =Schaltuhrausgang Einschalten

    U #Mo_bis_Fr;
    U( ;
    O #Funktion_MoFr_T1_Ein;
    O #Funktion_MoFr_T2_Ein;
    O #Funktion_MoFr_T3_Ein;
    ) ;
    O ;
    U #Sa_bis_So;
    U( ;
    O #Funktion_SaSo_T1_Ein;
    O #Funktion_SaSo_T2_Ein;
    O #Funktion_SaSo_T3_Ein;
    ) ;
    O ;
    U #Mo_bis_So;
    U( ;
    O #Funktion_MoSo_T1_Ein;
    O #Funktion_MoSo_T2_Ein;
    O #Funktion_MoSo_T3_Ein;
    ) ;
    S #Schaltuhr_aktiviert;
    NETWORK
    TITLE =Schaltuhrausgang Ausschalten

    U #Mo_bis_Fr;
    U( ;
    O #Funktion_MoFr_T1_Aus;
    O #Funktion_MoFr_T2_Aus;
    O #Funktion_MoFr_T3_Aus;
    ) ;
    O ;
    U #Sa_bis_So;
    U( ;
    O #Funktion_SaSo_T1_Aus;
    O #Funktion_SaSo_T2_Aus;
    O #Funktion_SaSo_T3_Aus;
    ) ;
    O ;
    U #Mo_bis_So;
    U( ;
    O #Funktion_MoSo_T1_Aus;
    O #Funktion_MoSo_T2_Aus;
    O #Funktion_MoSo_T3_Aus;
    ) ;
    R #Schaltuhr_aktiviert;
    END_FUNCTION_BLOCK

  11. #19
    S7Sync ist offline Benutzer
    Themenstarter
    Registriert seit
    15.11.2010
    Beiträge
    76
    Danke
    21
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von HaDi Beitrag anzeigen
    Ist deine Uhrzeit möglicherweise BCD-codiert?

    Grüße von HaDi
    nein, die Uhrzeit schreibe ich in ein Byte
    z.B.

    db200.dbb28 [BYTE] = Stunde (Anzeigewert 0 bis 23)
    db200.dbb29 [BYTE] = Minute (Anzeigewert 0 bis 59)

    wenn ich dann db200.dbw28 aufrufe erhalte ich z.B. 1315 für 13:15Uhr angezeigt, diesen Wert möchte ich in dem besagten FB vergleichen....

  12. #20
    Registriert seit
    01.11.2007
    Beiträge
    1.239
    Danke
    91
    Erhielt 407 Danke für 368 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von S7Sync Beitrag anzeigen
    nein, die Uhrzeit schreibe ich in ein Byte
    z.B.

    db200.dbb28 [BYTE] = Stunde (Anzeigewert 0 bis 23)
    db200.dbb29 [BYTE] = Minute (Anzeigewert 0 bis 59)
    ...
    Die Stelle würd ich gern mal sehen.
    Wenn du Dezimalwerte in die DBB´s schreibst dann würd ich im DBW für 13:15 den Inhalt 0D0F erwarten.
    Ruf doch das DBW mal in einer VAT auf und spiel mit dem Anzeigeformat rum ...

    Grüße von HaDi

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 27.05.2010, 20:27
  2. Ich weis einfach nicht weiter...!!
    Von HelpMe im Forum Stammtisch
    Antworten: 21
    Letzter Beitrag: 19.05.2009, 21:26
  3. Auswertfunktion will einfach nicht funktionieren :(
    Von DunkDream im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 25.03.2009, 20:17
  4. Timer läuft einfach nicht...
    Von slma im Forum Simatic
    Antworten: 42
    Letzter Beitrag: 16.07.2007, 08:21
  5. abhängiges Zuweisen von Werten.Vergleichen
    Von ElektronikJack im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 17.11.2006, 10:10

Lesezeichen

Berechtigungen

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