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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Move Befehl, Wert wird nicht sofort übernommen

  1. #1
    Registriert seit
    04.09.2014
    Beiträge
    85
    Danke
    43
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    S7 318i und einen Siemens Posmo A Servomotor

    ich habe mir die dazugehörigen Bausteine für Step7 und das HMI-Projekt von der Siemens Seite geladen.

    ich kann im simulierten Panel vorwärts, rückwärts und Position fahren, aber wenn ich Referenzieren/ auf 0 Setzten möchte muss ich ca 10-20 mal auf den Button(M20.1) Referenzieren drücken bis er 0 setzt
    ich habe es auch schon über einen Eingang(E0.1) versucht um die Übertragungszeit des Panels zu umgehen, aber es hat nichts gebracht.

    im Baustein wird die Reverenz mit einem Move befehl übertragen

    M20.1--- MOVE
    out --- DB11.DBD10
    0--- in


    wenn ich mir die Variable simuliert ansehe und ich den Button drücke ist der Wert 0 aber wenn ich vom Butten runtergehe ist wieder der alte Wert (Position) drin.
    wie gesagt wenn ich öfter drauf drücke funktioniert´s

    hätte jemand eine Idee warum er den Wert nicht sofort übernimmt?
    Zitieren Zitieren Move Befehl, Wert wird nicht sofort übernommen  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    wo ist der M20.1 und der DB11.DBD10 noch verwendet?
    Das klingt jedenfalls nach Programmierfehler.

  3. #3
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Vllcht ist der DB11.DBD10 ein in/out beim PosmoBaustein

  4. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    B1798 (19.12.2015)

  5. #4
    B1798 ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2014
    Beiträge
    85
    Danke
    43
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Netzwerk1
    U "Start Posmo"
    UN "Antrieb fährt"
    UN "Fehler"
    SPBN M1
    L MW 110
    T MW 112
    M1: NOP 0

    NW2
    I_O_adress: Dezimale Adresse aus Step7 HW Konfig hier: 256
    Initialization: ständige 1
    Jogging_1: Tippen Schlitten auf
    Jogging_2: Tippen Schlitten ab
    Jogging override: optional auf 20 %
    Start: Start Posmo MDI Schrittmaßfahrt absolut ( Flanke z.B. vom Starttaster)
    No_intermediate_stop: immer 1
    No_stop: immer 1
    Quittieren: Flanke z.B. über Taster wenn Fehler
    Override: optional 100 %
    MDI velocityptional 100 %
    MDI acceleration: optional 100 %
    MDI Position: Vorgabe der Zielposition als Real Format
    Timer for wait: Freier Timer hier: T1
    Koordination: Ein gleicher Merker für FB10 un FB11 ( wird von Bausteine
    verändert)
    Fault: Ausgang wenn Fehler = 1

    U "VKE=1"
    = L 12.0
    BLD 103
    U "Jog +"
    = L 12.2
    BLD 103
    U "Jog -"
    = L 12.3
    BLD 103
    U "Start Posmo"
    = L 12.4
    BLD 103
    U "VKE=1"
    = L 12.5
    BLD 103
    U "VKE=1"
    = L 12.6
    BLD 103
    U "Quittieren"
    = L 13.3
    BLD 103
    U "VKE=0"
    = L 13.4
    BLD 103
    CALL FB 10 , DB10
    I_O_adresss :=256
    Initialization :=L12.0
    Referencing :=
    Jogging_1 :=L12.2
    Jogging_2 :=L12.3
    Jogging_override :=10
    Start :=L12.4
    No_intermediate_stop :=L12.5
    No_stop :=L12.6
    automatic_operation :=
    external_blockchange :=
    Read_in_enable :=
    Brake_release :=
    Fault_acknowledgement :=L13.3
    Block_number :=B#16#3
    Override :=100
    Start_byte :=
    MDI_type :=L13.4
    MDI_velocity :="Geschw."
    MDI_acceleration :=100
    MDI_position :=DB10.DBD16
    Timer_for_wait :="FB10_Timer"
    Warning :=
    Fault :="Fehler"
    Ready :=
    Data_transfer_ready :=
    Status_word :=
    Actual_block :=
    Check_back_signal_byte:=
    Warn_number :=
    Warn_info :=
    Fault_number :=
    FB_coordination :="Koordinations_Merker"
    NOP 0


    NW3

    Aufbereitung des Sollwertes vom Panel
    Der Sollwert wird Dezimal(Integer) im Panel eingegeben, da Real zB. 999,99
    nicht
    möglich ist.
    Umwandlung von Integer nach Double-Integer und dann Wandlung in Real.
    Wert wurde mit Faktor 10 in Panel skaliert ( multipliziert) daher Division
    durch 10 ( wegen Genauigkeit ) und dann Transfer in DB 10 MDI_position
    Sollwert

    U(
    U(
    L "Sollwert_Posmo"
    ITD
    T #Soll_DINT
    SET
    SAVE
    CLR
    U BIE
    )
    SPBNB _001
    L #Soll_DINT
    DTR
    T #Soll_Real
    SET
    SAVE
    CLR
    _001: U BIE
    )
    SPBNB _002
    L #Soll_Real
    L 1.000000e+001
    /R
    T DB10.DBD 16
    _002: NOP 0


    NW4
    Wenn Referenzierungsbit vom Panel auf 1, dann Wert 0 Position in Parameterwert
    schreiben.Damit wird die Achse bei der gewünschten Position auf 0 gesetzt

    U "Start_Referenzierung"
    SPBNB _003
    L 0
    T DB11.DBD 10
    _003: NOP 0


    NW 5
    Durch den FB11 wird
    1. Der Istwert der Position ständig gelesen
    2. Der Sollwert 0 für die Referenzierung geschrieben


    "I_O_adress" : Dezimale Adresse aus Step7 HW Konfig hier: 256


    "Number" : Auftrag Nummer 40 bedeutet die Istposition oder Sollposition zum
    Posmo lesen oder schreiben


    "Read" : Wenn nicht refernziert wird, dann nur lesen. Dies muß verriegelt
    werden, da ein gleichzeitiges lesen und schreiben nicht möglich ist


    "value" :Speicherbereich für die Ist und Sollwerte


    "Koordination" : Ein gleicher Merker für FB10 un FB11 (wird von den Bausteinen
    verändert)

    UN "Start_Referenzierung"
    = L 12.0
    BLD 103
    U "Start_Referenzierung"
    = L 12.1
    BLD 103
    CALL FB 11 , DB11
    I_O_adress :=256
    Number :=40
    Index :=
    Read :=L12.0
    Write :=L12.1
    Factory_default:=
    Parameter_save :=
    fault_present :=
    task_completed :=
    Fault_number :=
    value :=DB11.DBD10
    FB_coordination:="Koordinations_Merker"
    NOP 0


    NW6
    Der Istwert im Realformat wird mit 100 multipliziert ( wegen Genauigkeit )und
    dann
    zur Double Integer gewandelt um am Panel angezeigt werden zu können.

    U(
    L DB11.DBD 10
    L 1.000000e+002
    *R
    T #Ist_Real
    UN OV
    SAVE
    CLR
    U BIE
    )
    SPBNB _004
    L #Ist_Real
    RND
    T "Istwert_Panel"
    _004: NOP 0


    NW 7
    Rückmeldung Antrieb fährt =1 / steht=0 ( Bit aus Statuswort und kann zur
    Weiterverabeitung im Programm genutzt werden. Weiterleitung zur Anzeige an
    Panel

    U DB10.DBX 24.5
    = "Antrieb fährt"

  6. #5
    B1798 ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2014
    Beiträge
    85
    Danke
    43
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ja es ist ein in-out

    er ist an einem in out am Baustein bei -value

    DB11.DBD10 -value

    muss ich den umstellen?
    Geändert von B1798 (18.12.2015 um 18:59 Uhr)

  7. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    DB11 ist ein Instanz-DB des FB11, DB11.DBD10 eine Instanz-Variable, die außerhalb der Instanz manipuliert wird (in NW4) und zu allem Überfluß auch noch an die Instanz übergeben wird (in NW5). Was für ein Parameter ist FB11.value - ein OUT? Wie ist der FB11 deklariert (was liegt im IDB an Adresse DBD10)?

    Vermutlich wird die Variable, die im IDB an Adresse DBD10 liegt, im FB11 beschrieben. Da hat sie aber den FB-internen Name und nicht den Name DB11.DBD10.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    B1798 (19.12.2015)

  9. #7
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    und.... wenn der DB11.DBD10 ein Real ist, dann ist der Move mit einem Integer 0 (statt 0,0) seltsam.

  10. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    B1798 (19.12.2015)

  11. #8
    B1798 ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2014
    Beiträge
    85
    Danke
    43
    Erhielt 1 Danke für 1 Beitrag

    Standard

    value ist ein Datentyp: DWord an der IN_Out Schnittstelle des FB11 an dem hängt der DB11.DBD10

    U #Write // Auswertung Schreibauftrag
    FP #FL_S
    S #A_Schr
    U #A_Schr
    UN #FB_coordination
    FP #Fl_Schreiben
    SPBN schr
    SET
    R #fault_present
    R #task_completed
    S #FB_coordination
    L #Number //--------------------------------------------------
    SPL JUMP
    SPA G10 //MD0 Schreibauftrag
    SPA G5 //MD1 C4
    SPA G5 //MD2 C4
    SPA G5 //MD3 C4
    SPA G9 //MD4 I2 Maßeinheit
    SPA G5 //MD5 C4
    SPA G5 //MD6 C4
    SPA G5 //MD7 C4
    SPA G5 //MD8 C4
    SPA G7 //MD9 T2
    SPA G6 //MD10 I4
    SPA G5 //MD11 C4
    SPA G5 //MD12 C4
    SPA G10 //MD13 T4
    SPA G5 //MD14 C4
    SPA G5 //MD15 C4
    SPA G5 //MD16 C4
    SPA G6 //MD17 I4
    SPA G9 //MD18 T2 1ms
    SPA G5 //MD19 C4
    SPA G5 //MD20 C4
    SPA G5 //MD21 C4
    SPA G5 //MD22 C4
    SPA G10 //MD23 T4
    SPA G8 //MD24 N2
    SPA G8 //MD25 N2
    SPA G8 //MD26 N2
    SPA G8 //MD27 N2
    SPA G5 //MD28 C4
    SPA G10 //MD29 T4
    SPA G9 //MD30 I2
    SPA G9 //MD31 I2
    SPA G9 //MD32 I2
    SPA G6 //MD33 I4
    SPA G9 //MD34 I2
    SPA G9 //MD35 N2
    SPA G6 //MD36 I4
    SPA G9 //MD37 I2
    SPA G9 //MD38 N2
    SPA G5 //MD39 C4
    SPA G5 //MD40 C4
    SPA G5 //MD41 C4
    SPA G5 //MD42 C4
    SPA G5 //MD43 C4
    SPA G5 //MD44 C4
    SPA G10 //MD45 T4
    SPA G5 //MD46 C4
    SPA G5 //MD47 C4
    SPA G9 //MD48 I2
    SPA G9 //MD49 I2
    SPA G6 //MD50 I4
    SPA G6 //MD51 I4
    SPA G6 //MD52 I4
    SPA G6 //MD53 I4
    SPA G6 //MD54 I4
    SPA G5 //MD55 C4
    SPA G9 //MD56 V2
    SPA G6 //MD57 I4
    SPA G10 //MD58 T4
    SPA G5 //MD59 C4
    SPA G10 //MD60 T4
    SPA G10 //MD61 T4
    // ------------------------------------- Schreibaufträge
    JUMP: L 80 //Parameter > 52
    -I
    L 0
    <I
    SPB G10 //--> Sprung wenn Parameter < 80
    TAK
    SPL JM80
    SPA G4 //MD 80
    SPA G1 //MD 81
    SPA G3 //MD 82
    SPA G3 //MD 83
    SPA G2 //MD 84
    SPA G1 //MD 85
    SPA G4 //MD 86
    SPA G4 //MD 87
    JM80: L #Number
    L 97 // Power On Reset neu ab V 1.4
    ==I
    SPB G9
    L #Number // Referenzpunkt gesetzt zurücksetzen neu ab V 1.4
    L 98
    ==I
    SPB G9
    L #Number
    L 99 // Bei MD 99 andere Kennung
    ==I
    SPB G4
    L #Number
    L 100
    ==I
    SPB G9
    L #Number
    L 101
    ==I
    SPB G4 // mit Index keine Wandlung
    L #Number
    L 970 // Werksvorseinstellung laden
    ==I
    SPB G9 // keine Wandlung
    L #Number
    L 971 // Übernahme in den nichtflüchtigen Speicher
    ==I
    SPB G9 // keine Wandlung
    SPA G10 // Parameter > 87 keine Umwandlung
    // Gruppe 1: Index; Real-C4; Doppelwort // MD 81 u. MD 85
    G1: L #value // wert in Real
    L 1.000000e+004 // mal 10000
    *R
    RND // Nach DINT wandeln
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#8000 //Auftragskennung schreiben
    SPA s
    // Gruppe 2: Index; DINT-T4; Doppelwort,keine Wandlung MD 84
    G2: L #value
    L 10
    /D
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#8000 //Auftragskennung schreiben
    SPA s
    // Gruppe 3: Index; Int-N2; Doppelwort MD 82 / MD 83
    G3: L #value
    ITD
    DTR
    L 1.638400e+002
    *R // S7--> DV
    RND
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#7000 //Auftragskennung schreiben
    SPA s
    // Gruppe 4: Index; WORD/INT-V2; Wort; keine Wandlung MD 80
    G4: L #value
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#7000 //Auftragskennung schreiben
    SPA s
    // Gruppe 5: Kein Index; REAL-C4; Doppelwort
    G5: L #value // wert in Real
    L 1.000000e+004 // mal 10000
    *R
    RND // Nach DINT wandeln
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#3000 //Auftragskennung schreiben
    SPA s
    // Gruppe 6: Kein Index; DINT-T4; Doppelwort; Wandlung 10ms
    G6: L #value // wert in Real
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#3000 //Auftragskennung schreiben
    SPA s
    // Gruppe 7: Kein Index; INT-/T2; Wort; Wandlung 10 ms
    G7: L #value // wert in Real
    L 10
    /D
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#2000 //Auftragskennung schreiben
    SPA s
    // Gruppe 8: Kein Index; INT-N2; Wort;
    G8: L #value // wert in Real
    ITD
    DTR
    L 1.638400e+002
    *R // S7--> DV
    RND
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#2000 //Auftragskennung schreiben
    SPA s
    // Gruppe 8: Kein Index; INT-N2; Wort;
    G9: L #value // wert in Real
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#2000 //Auftragskennung schreiben
    SPA s


    // Gruppe 10: Kein Index; T4 Wandlung 10ms ;
    G10: L #value // wert in Real
    L 10
    /D
    T #PKWschreiben.PKW // und als Wert eintragen
    L W#16#3000 //Auftragskennung schreibeL
    SPA s
    // Gruppe 11: Index; keine Wandlung; Para = 99
    L W#16#6000 //Auftragskennung schreiben
    s: L #Number
    OW
    T #PKWschreiben.PKE
    L #Index
    SLW 8
    T #PKWschreiben.IND


    CALL SFC 15 // Daten schreiben
    LADDR :=#Anfangsadresse
    RECORD :=#PKWschreiben
    RET_VAL:=#hmw
    SPA ende
    schr: NOP 0

  12. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    wieso verwendest Du dann ein DWORD als Real?

    also ich schau mir jetzt nicht den code an, einige Hinweise hast Du ja schon.
    Der DB11.DBD10 ist eine in_out variable und Bestandteil einer Instanz und wird von aussen beschrieben.

    Das ist jedenfalls zumindest "unsauber" programmiert.
    Harald hat das schon erläutert.

    Dort wirds halt ecken...

  13. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    B1798 (19.12.2015)

  14. #10
    B1798 ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2014
    Beiträge
    85
    Danke
    43
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja mach ich, naja das ist der von Siemens!

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 07.09.2015, 10:53
  2. Antworten: 2
    Letzter Beitrag: 17.08.2015, 10:07
  3. Hardwarekonfig wird nicht übernommen?!
    Von Chefselber81 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 22.10.2012, 14:24
  4. cp 343-1 Tsap wird nicht übernommen
    Von Sir_Mortimer im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 16.03.2012, 18:33
  5. Name von Datenbaustein Element wird nicht übernommen
    Von Nordischerjung im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 08.10.2009, 10:55

Lesezeichen

Berechtigungen

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