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

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

Thema: Analogwert Ausgabe 0-10V

  1. #11
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    naja. so richtig nachgedacht hast du nicht

    wenn du nur 2 je zyklus dazuzählst benötigst du 13500 zyklen.
    daraus folgt, dass du eine zykluszeit von 0,37ms haben müsstest um das in 5 sek zu schaffen.
    doch wohl nicht wirklich realischtisch.

    Code:
          L     27000
          L     #OB1_PREV_CYCLE
          /I    
          T     MW   122                    //wertänderung je zyklus
          UN    E      0.0                  //up
          SPB   up0
          L     MW   120
          L     MW   122
          +I    
          T     MW   120
          L     27000
          <=I   
          SPB   up0
          L     27000
          T     MW   120
    up0:  NOP   0
          UN    E      0.1                  //down
          SPB   dwn0
          L     MW   120
          L     MW   122
          -I    
          T     MW   120
          L     0
          >=I   
          SPB   dwn0
          L     0
          T     MW   120
    dwn0: NOP   0
          UN    E      0.2                  //reset
          SPB   res0
          L     0
          T     MW   120
    res0: NOP   0
          L     MW   120
          T     PAW  272
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  2. #12
    Registriert seit
    26.09.2006
    Ort
    Köln / Bonn
    Beiträge
    41
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erstmal vielen Dank!

    Ich habe noch gar nicht an die 5 Sekunden gedacht.

    Mir ging es erstmal darum überhaupt was mit der Analogen Ausgangskarte hin zu bekommen.

    Ich werde den script bei gelegenheit sofort ausprobieren!

    DANKE!!!!

    P.S.

    Ich bin auch erst ein Azubi im 2. Lehrjahr (Zur eigenverteidigung)
    Geändert von Nickel (14.10.2006 um 16:09 Uhr)
    Hoch lebe die Automatisierung

  3. #13
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    Zitat Zitat von Nickel Beitrag anzeigen
    Ich werde den script bei gelegenheit sofort ausprobieren!
    das ist kein script sondern ein s7 programm in awl.

    Ich bin auch erst ein Azubi im 2. Lehrjahr (Zur eigenverteidigung)
    wir haben alle mal angefangen

    da dort eine temp variable aus dem ob1 benutzt wird musst du dieses dort reinschreiben.
    wenn du den code in einem anderen baustein nutzen möchtest (was sinn macht, da man im ob1 eigentlich kein programm schreibt) musst du die variable #OB1_PREV_CYCLE in z.b. ein mw transferieren und im entsprechendem fc benutzen.
    Geändert von volker (14.10.2006 um 17:32 Uhr)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  4. #14
    Registriert seit
    26.09.2006
    Ort
    Köln / Bonn
    Beiträge
    41
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie meinst du das mit der Variable das verstehe ich nicht ganz.

    Ich nehme mir den Ob1 schreibe da Call FC1 rein...

    im FC1 ein schreibe ich nicht das Script sondern das S7 Programm.

    Wie mache ich das jetzt mit der variable und wofür ist die?!

    Danke
    Hoch lebe die Automatisierung

  5. #15
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    eben.
    und in der fc1 gibt es die varibale #OB1_PREV_CYCLE (ist die zykluszeit des letzten zyklus) nicht.
    dann würde die berechnung nicht funktionieren.

    also schreibe im ob1 zusätzlich

    L #OB1_PREV_CYCLE
    T MW 124

    in der fc1 ersetze
    L #OB1_PREV_CYCLE
    durch
    L Mw 124

    is klar ?
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  6. #16
    Registriert seit
    26.09.2006
    Ort
    Köln / Bonn
    Beiträge
    41
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von volker Beitrag anzeigen
    eben.
    und in der fc1 gibt es die varibale #OB1_PREV_CYCLE (ist die zykluszeit des letzten zyklus) nicht.
    dann würde die berechnung nicht funktionieren.

    also schreibe im ob1 zusätzlich

    L #OB1_PREV_CYCLE
    T MW 124

    in der fc1 ersetze
    L #OB1_PREV_CYCLE
    durch
    L Mw 124

    is klar ?


    JO soweit ganz klar.

    was meinst du mit dem "durch" ?

    l #ob1_prev_cycle
    DURCH
    l mw 124


    oder habe ich da was falsch verstanden!

    Ich weis das ich die Variable im ob1 und im FC1 aufrufen muss
    Hoch lebe die Automatisierung

  7. #17
    Registriert seit
    26.09.2006
    Ort
    Köln / Bonn
    Beiträge
    41
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    okay vergess was ich gesagt habe das war doof!

    Wenn ich dein S7 Programm mir kopiere und mir in meinen FC 1 lade streicht er mir

    L #OB1_PREV_CYCLE

    Rot an warum?
    Hoch lebe die Automatisierung

  8. #18
    Registriert seit
    11.08.2005
    Beiträge
    44
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Nickel,


    wenn Du in Deinem FC 1 L #OB1_PREV_CYCLE benutzt, wird es natürlich rot, da Du versuchst auf Lokaldaten ( #OB1_PREV_CYCLE ) vom OB 1 zuzugreifen.
    Volker versucht Dir mit einer Engelsgeduld zu erklären,
    dass die temp Variable #OB1_PREV_CYCLE nur im OB 1 vorkommt.
    Das bedeutet; wenn man diese Variable in einem anderen Baustein benutzen möchte, z.B. in deinem FC 1, muß man sie übergeben.
    Also im OB1 durch Lade #OB1_PREV_CYCLE und Transferiere in MW 100
    zwischenspeichern/ ablegen. Im FC1 oder wo auch immer in deinem Programm, steht Dir diese Variable nun im MW 100 zur Verfügung.
    Zitieren Zitieren Temp Variable #OB1_PREV_CYCLE  

  9. #19
    Registriert seit
    26.09.2006
    Ort
    Köln / Bonn
    Beiträge
    41
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hey, und dafür bin ich dem Volker auch richtig dankbar.

    Ich werde auf einmal mit einer Analogkarte konvrontiert und habe überhauptkeine Ahnung wie das geht.

    Ich bin ja schon froh das ich die Karte ein wenig ansteuern kann.
    In AWL zu schreiben ist für mich auch noch neuland.
    Und dann kommt noch eine Variable dazu wo ich überhaupt nicht weis das es sowas gibt und wie ich die anwende.

    Entschuldigt meine dummen Fragen aber ich weis da wirklich nicht weiter.

    Es ist ja auch nicht so das ich versuche alles hier zu erfahren, ganz im gegenteil ich google und wältze die SPS Bücher durch.

    Auf der S7 400er version ist das alles kein Problem da es da die richtigen Bausteine für gibt aber bei der 300er steh ich vor einem Buch mit 7 Siegel.

    Bitte nehmt mir die Fragen nicht übel!

    Dank

    Gruß
    Nickel
    Hoch lebe die Automatisierung

  10. #20
    Registriert seit
    03.04.2004
    Beiträge
    132
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    DATA_BLOCK DB 1
    TITLE =
    VERSION : 0.1

    STRUCT
    DB_VAR : BOOL ; //vorläufige Platzhaltervariable
    END_STRUCT ;
    BEGIN
    DB_VAR := FALSE;
    END_DATA_BLOCK
    DATA_BLOCK "Globaler DB10"
    TITLE =
    AUTHOR : 'Kleißler'
    VERSION : 0.1

    STRUCT
    DB_VAR : INT ; //vorläufige Platzhaltervariable
    ANALOGWERT : REAL ; //Analogwert
    ANALOGWERT_BEARB : REAL ; //Analogwert nach Bearbeitung
    Zykluszeit : REAL ; //Zykluszeit
    FC_105_Fehlerinfo : WORD ; //Fehlerinformationen zum FC 105
    FC_106_Fehlerinfo : WORD ; //Fehlerinformationen zum FC 106
    END_STRUCT ;
    BEGIN
    DB_VAR := 0;
    ANALOGWERT := 0.000000e+000;
    ANALOGWERT_BEARB := 0.000000e+000;
    Zykluszeit := 0.000000e+000;
    FC_105_Fehlerinfo := W#16#0;
    FC_106_Fehlerinfo := W#16#0;
    END_DATA_BLOCK
    FUNCTION "Anlage EIN/AUS" : VOID
    TITLE =Allgemeine Funktionen
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =HM Anlage EIN_AUS
    U "S1 Anlage EIN";
    S "HM Anlage EIN_AUS";
    UN "S0 Anlage AUS";
    R "HM Anlage EIN_AUS";
    U "HM Anlage EIN_AUS";
    = DB1.DBX 0.0;
    NETWORK
    TITLE =
    U "HM Anlage EIN_AUS";
    SPB M001;
    NETWORK
    TITLE =Abfrage n = 0
    L "Globaler DB10".ANALOGWERT_BEARB;
    L 0.000000e+000;
    ==R ;
    = "HM_N=0";
    NETWORK
    TITLE =Anlage aus bei n = 0
    M001: UN "S0 Anlage AUS";
    S "HM Anlage gegen n=0";
    U "HM_N=0";
    R "HM Anlage gegen n=0";
    NOP 0;
    END_FUNCTION
    FUNCTION "Ramp_up" : VOID
    TITLE =
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =Anlage EIN / AUS
    UN "HM Anlage EIN_AUS";
    SPB M100;

    NETWORK
    TITLE =Vergleich Istwert = Sollwert

    L "Globaler DB10".ANALOGWERT_BEARB;
    L "Globaler DB10".ANALOGWERT;
    >=R ;
    SPB M100;
    NETWORK
    TITLE =Addition für Rampe

    L "Globaler DB10".ANALOGWERT_BEARB;
    L 1.000000e+000;
    +R ;
    T "Globaler DB10".ANALOGWERT_BEARB;
    NOP 0;
    NETWORK
    TITLE =Bausteinende

    M100: NOP 0;
    END_FUNCTION
    FUNCTION "Ramp_down" : VOID
    TITLE =
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =Abfrage n = 0
    L "Globaler DB10".ANALOGWERT_BEARB;
    L 0.000000e+000;
    <=R ;
    SPB M100;


    NETWORK
    TITLE =Abfrage Anlage EIN
    U "HM Anlage EIN_AUS";
    SPB M100;


    NETWORK
    TITLE =Subtrahiere den Istwert
    L "Globaler DB10".ANALOGWERT_BEARB;
    L 1.000000e+000;
    -R ;
    T "Globaler DB10".ANALOGWERT_BEARB;
    NOP 0;

    NETWORK
    TITLE =Bausteinende

    M100: NOP 0;

    END_FUNCTION
    FUNCTION "Ramp_down_folgen" : VOID
    TITLE =
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =Abfrage Anlage ist EIN
    UN "HM Anlage EIN_AUS";
    U "HM Anlage gegen n=0";
    SPB M001;

    NETWORK
    TITLE =Abfrage Sollwert ist größer gleich Istwert
    L "Globaler DB10".ANALOGWERT;
    L "Globaler DB10".ANALOGWERT_BEARB;
    >=R ;
    SPB M001;


    NETWORK
    TITLE =Subtraktion
    L "Globaler DB10".ANALOGWERT_BEARB;
    L 1.000000e+000;
    -R ;
    T "Globaler DB10".ANALOGWERT_BEARB;
    NOP 0;

    NETWORK
    TITLE =Bausteinende
    M001: BE ;

    END_FUNCTION
    FUNCTION "Analog einlesen" : VOID
    TITLE =Analog einlesen
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =Umschaltung Einrich,- Normalbetrieb
    U "Einrichtbetrieb";
    SPB M001;
    NETWORK
    TITLE =Analogwert normieren auf 0...100 für Normalbetrieb
    U "immer low";
    = L 0.0;
    BLD 103;
    U "immer high";
    SPBNB _001;
    CALL "SCALE" (
    IN := PEW 800,
    HI_LIM := 1.000000e+002,
    LO_LIM := 0.000000e+000,
    BIPOLAR := L 0.0,
    RET_VAL := "Globaler DB10".FC_105_Fehlerinfo,
    OUT := "Globaler DB10".ANALOGWERT);
    _001: NOP 0;
    NETWORK
    TITLE =Bausteinende im Normalbetrieb
    BEA ;
    NETWORK
    TITLE =Analogwert normieren auf 0...50 für Einrichtbetrieb
    M001: U "immer low";
    = L 0.0;
    BLD 103;
    U "immer high";
    SPBNB _002;
    CALL "SCALE" (
    IN := PEW 800,
    HI_LIM := 5.000000e+001,
    LO_LIM := 0.000000e+000,
    BIPOLAR := L 0.0,
    RET_VAL := "Globaler DB10".FC_105_Fehlerinfo,
    OUT := "Globaler DB10".ANALOGWERT);
    _002: NOP 0;
    END_FUNCTION
    FUNCTION "Analog ausgeben" : VOID
    TITLE =Analogwert ausgeben
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =Analogwert normiert (0...100) ausgeben auf PAW 820
    U "immer low";
    = L 0.0;
    BLD 103;
    U "immer high";
    SPBNB _001;
    CALL "UNSCALE" (
    IN := "Globaler DB10".ANALOGWERT_BEARB,
    HI_LIM := 1.000000e+002,
    LO_LIM := 0.000000e+000,
    BIPOLAR := L 0.0,
    RET_VAL := "Globaler DB10".FC_106_Fehlerinfo,
    OUT := PAW 820);
    _001: NOP 0;
    END_FUNCTION
    FUNCTION "ML steuern" : VOID
    TITLE =ML Steuern
    AUTHOR : 'Kleißler'
    VERSION : 0.1
    BEGIN
    NETWORK
    TITLE =HM n=0 anfahren
    U "HM Anlage gegen n=0";
    U "Takt 1s (1Hz)";
    = "HM_n=0_anf";


    NETWORK
    TITLE =HM_Anlage EIN
    U "HM Anlage EIN_AUS";
    = "HM_Anlage EIN";


    NETWORK
    TITLE =ML Anlage EIN (GN)
    O "HM_n=0_anf";
    O "HM_Anlage EIN";
    = "ML Anlage EIN (GN)";

    NETWORK
    TITLE =ML Anlage AUS (RD)
    UN "HM Anlage EIN_AUS";
    UN "HM Anlage gegen n=0";
    = "ML Anlage AUS (RD)";

    END_FUNCTION
    ORGANIZATION_BLOCK "Programmstruktur"
    TITLE = "Main Program Sweep (Cycle)"
    AUTHOR : 'Kleißler'
    VERSION : 0.1

    VAR_TEMP
    OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
    OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
    OB1_PRIORITY : BYTE ; //Priority of OB Execution
    OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
    OB1_RESERVED_1 : BYTE ; //Reserved for system
    OB1_RESERVED_2 : BYTE ; //Reserved for system
    OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
    OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
    OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
    OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
    END_VAR
    BEGIN
    NETWORK
    TITLE =Hilfsmerker immer low/high
    //CLR setzt das VKE auf den Signalzustand "0"
    //SET setzt das VKE auf den Signalzustand "1"
    CLR ;
    = "immer low";
    SET ;
    = "immer high";
    NETWORK
    TITLE =Aufruf allgemeiner Funktionen
    CALL "Anlage EIN/AUS" ;
    CALL "Analog einlesen" ;
    CALL "Analog ausgeben" ;
    CALL "ML steuern" ;
    NETWORK
    TITLE =Zeitgesteuerte Aufrufe der Rampenbausteine
    //Anstatt des anspringen der Zeitgesteuerten FC´s 2+3+4 über den HW Takt kann auch
    //der OB35 (Weckalarm OG) über die HW Projektierung verwendet werden.
    U "Takt 0,1s (10Hz)";
    FP "HM Flanke M1.1";
    = "FM 1.1";
    O "FM 1.1";
    CC "Ramp_up";
    O "FM 1.1";
    CC "Ramp_down";
    O "FM 1.1";
    CC "Ramp_down_folgen";
    END_ORGANIZATION_BLOCK
    Zitieren Zitieren Kompl Rampenprogr.  

Ähnliche Themen

  1. .exf Ausgabe in E-Plan
    Von #2p im Forum E-CAD
    Antworten: 2
    Letzter Beitrag: 30.03.2011, 12:57
  2. Ausgabe Analogwert
    Von PCT im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.02.2009, 11:15
  3. Analog Ausgabe
    Von Lex_78 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 26.11.2008, 22:42
  4. Ausgabe am OP7
    Von perez im Forum HMI
    Antworten: 5
    Letzter Beitrag: 20.11.2007, 18:40
  5. Analogwert in nicht gleich Analogwert aus ?
    Von Dilbert im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 16.03.2007, 08:24

Lesezeichen

Berechtigungen

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