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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Fup -> As

  1. #11
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Hartmut Lux Beitrag anzeigen
    -sehr umständlich,
    -speicherfressend
    und durch ausschließlich kommentarfreie, indirekte Adressierung unübersichtlich.

    Fazit: Nicht konvertieren sondern löschen und neu schreiben!
    Das is schon richtig. Aber der AWL - Code von z.B. S7-Graph oder SCL enthält keine IMHO keine indirekte Adressierung mehr, bei S5 war das noch anders. Auch hinsichtlich des Speicherplatzes ist SCL (im Gegensatz zu S7-Graph) eigendlich recht genügsam. der Code scheint mir doch schon ziemlich optimiert, aber unleserlich ists natürlich.

    Mann soll halt die Quelle lesen, nicht das "kompilat"

  2. #12
    Registriert seit
    12.08.2006
    Beiträge
    67
    Danke
    0
    Erhielt 69 Danke für 6 Beiträge

    Standard

    Mal langsam: Graph undSCL sind etwas komplett verschiedenes. SCL ist ähnlich AWL nur in anderer Schreibweise. Bei Graph sollte man es gleich neu schreiben wenn man eine andere Programmiertechnik bevorzugt. Es sieht d in AWL etwa so aus (Auszug aus einem Projekt, 1.Netzwerk):

    TAR2 #C_AR2
    CLR
    UN #SQ_FLAGS.CYC_OP
    SPB CYC0
    CYCN: U #SQ_FLAGS.SQ_BUSY
    SPB ROLL
    BACK: NOP 0
    U #INIT_SQ
    FP #MOPEDGE.INIT
    S #MOP.INIT
    CALL "TIME_TCK"
    RET_VAL:=#TICKS.NEW
    U #MOP.TMS_HALT
    SPB ZAUS
    L #TICKS.NEW
    L #TICKS.OLD
    -D
    T #TICKS.DELTA
    SRD 12
    NEGD
    SPZ ZEIN
    ZAUS: L B#16#0
    T #TICKS.DELTA
    ZEIN: L #TICKS.NEW
    T #TICKS.OLD
    LAR1 P#1171.0
    L #SAX[0]
    SPA ZTST
    ZNXT: T #S_IDX
    L DIB [AR1,P#0.0]
    SLW 7
    LAR2 P#338.0
    +AR2
    +AR2
    L DID [AR2,P#4.0]
    L #TICKS.DELTA
    +D
    <=D
    SPB T_OK
    L DW#16#7FFFFFFF
    T_OK: T DID [AR2,P#4.0]
    O DIX [AR2,P#1.1]
    O DIX [AR2,P#1.2]
    SPB ZSTO
    L DID [AR2,P#8.0]
    L #TICKS.DELTA
    +D
    <=D
    SPB U_OK
    L DW#16#7FFFFFFF
    U_OK: T DID [AR2,P#8.0]
    ZSTO: +AR1 P#1.0
    L #S_IDX
    ZTST: LOOP ZNXT
    LAR1 P#1233.0
    L #S0X[0]
    SPA RE0T
    RE0X: L DIB [AR1,P#0.0]
    SLW 7
    LAR2 P#338.0
    +AR2
    +AR2
    TAK
    L B#16#0
    T DIB [AR2,P#0.0]
    +AR1 P#1.0
    TAK
    RE0T: LOOP RE0X
    LAR1 P#1171.0
    L #SAX[0]
    SPA REAT
    REAX: L DIB [AR1,P#0.0]
    SLW 7
    LAR2 P#338.0
    +AR2
    +AR2
    TAK
    L B#16#0
    T DIB [AR2,P#0.0]
    +AR1 P#1.0
    TAK
    REAT: LOOP REAX
    L B#16#1
    T #SMX[0]
    T #S0X[0]
    T #S1X[0]
    SET
    S #SQ_FLAGS.SQ_BUSY
    LAR1 P#1170.0
    L B#16#0
    SPA SMA
    SMA0: NOP 0
    UN #MOP.OFF
    SPB AEND
    R #MOP.OFF
    R #MOP.INIT
    LAR1 P#1170.0
    L B#16#0
    SPA S0A
    S0A0: NOP 0
    SPA SLTA
    AEND: NOP 0
    UN #MOP.INIT
    SPB IEND
    R #MOP.INIT
    R #SQ_FLAGS.NO_SNO
    R #SQ_FLAGS.NF_OFL
    R #SQ_FLAGS.SA_OFL
    R #SQ_FLAGS.TV_OFL
    R #SQ_FLAGS.MSG_OFL
    R #SQ_FLAGS.RT_FAIL
    LAR1 P#1170.0
    L B#16#1
    SPA S0A
    S0A1: LAR1 P#1372.0
    L B#16#0
    SPA S1A
    S1A0: LAR1 P#1232.0
    L B#16#4
    SPA REO
    REO4: LAR1 P#1258.0
    L B#16#3
    SPA REO
    REO3: LAR1 P#1258.0
    L B#16#1
    SPA SMA
    SMA1: SPA SLTA
    IEND: NOP 0
    UN #MOP.MAN
    R #MOP.S_ON
    UN #MOP.S_ON
    SPB SERT
    R #MOP.S_ON
    L #S_DISPLAY
    L B#16#0
    SPA NRX
    NRX0: TAK
    L B#16#0
    <>I
    SPB SEIN
    SERT: LAR1 P#1160.0
    L B#16#1
    SPA S1A
    S1A1: NOP 0
    UN #MOP.MAN
    R #MOP.S_OFF
    UN #MOP.S_OFF
    SPB SART
    R #MOP.S_OFF
    L B#16#1
    L #SAX[0]
    ==I
    S #SQ_FLAGS.NF_OFL
    SPB SART
    L #S_DISPLAY
    L B#16#1
    SPA NRX
    NRX1: TAK
    L B#16#0
    <>I
    INC 1
    SPB SAUS
    SART: LAR1 P#1150.0
    L B#16#2
    SPA S0A
    S0A2: NOP 0
    SLTA: L B#16#1
    T #SONX[0]
    T #SOFFX[0]
    SWIT: SET
    LAR1 P#1107.0
    L #TVX[0]
    SPA XTST
    XNXT: L DIB [AR1,P#0.0]
    SLW 7
    LAR2 P#2.0
    +AR2
    R DIX [AR2,P#0.0]
    R DIX [AR2,P#0.1]
    R DIX [AR2,P#0.2]
    +AR1 P#1.0
    TAK
    XTST: LOOP XNXT
    L B#16#1
    T #TVX[0]
    T #TTX[0]
    T #TSX[0]
    L P#1207.0
    T #S_PTR
    L B#16#1
    T #S_IDX
    MTST: L #SMX[0]
    ==I
    SPB MEND
    L DIB [#S_PTR]
    T #S_START
    ASSJ: SLW 7
    LAR1 P#338.0
    +AR1
    +AR1
    ON DIX [AR1,P#24.0]
    O DIX [AR1,P#0.5]
    SPB MNXT
    SRW 4
    LAR2 P#1492.0
    +AR2
    L #S_START
    L DIB [AR2,P#0.0]
    <>I
    SPB ASSJ
    SLW 3
    LAR1 P#1564.0
    +AR1
    L DIB [AR1,P#0.0]
    T #TV_POT
    SLW 7
    LAR1 P#2.0
    +AR1
    U DIX [AR1,P#0.0]
    SPB MNXT
    SRW 7
    ATAB: T #T_TMP
    SLW 3
    LAR1 P#1470.0
    +AR1
    LAR2 P#1382.0
    +AR2
    L DIB [AR2,P#0.0]
    L DIB [AR1,P#0.0]
    <>I
    SPB NOJP
    SLW 7
    LAR1 P#338.0
    +AR1
    +AR1
    U DIX [AR1,P#24.0]
    SPB MNXT
    SPA ISJP
    NOJP: T #S_START
    ASSB: SLW 7
    LAR1 P#338.0
    +AR1
    +AR1
    U DIX [AR1,P#24.0]
    SPB MNXT
    SRW 4
    LAR2 P#1516.0
    +AR2
    L #S_START
    L DIB [AR2,P#0.0]
    <>I
    SPB ASSB
    ISJP: L #T_TMP
    SLW 3
    LAR2 P#1426.0
    +AR2
    L #TV_POT
    L DIB [AR2,P#0.0]
    <>I
    SPB ATAB
    ATB2: T #T_TMP
    L #MAX_TVAL
    L #TVX[0]
    <I
    S #SQ_FLAGS.TV_OFL
    SPB MEND
    SLW 3
    LAR1 P#1106.0
    +AR1
    SRW 3
    INC 1
    T #TVX[0]
    L #T_TMP
    T DIB [AR1,P#0.0]
    SLW 7
    LAR1 P#2.0
    +AR1
    S DIX [AR1,P#0.0]
    SRW 4
    LAR2 P#1426.0
    +AR2
    L #TV_POT
    L DIB [AR2,P#0.0]
    <>I
    SPB ATB2
    MNXT: L #S_PTR
    + L#8
    T #S_PTR
    L #S_IDX
    INC 1
    T #S_IDX
    SPA MTST
    MEND: NOP 0
    L #TVX[0]
    SLW 3
    LAR1 P#1106.0
    +AR1
    L B#16#0
    T DIB [AR1,P#0.0]
    L P#1107.0
    TVNX: T #T_PTR
    L B#16#0
    T DID 1356
    U L 0.0
    UN L 0.0
    O
    SET
    L DIB [#T_PTR]
    T #T_IDX
    SPL SPL0
    SPA TEND
    SPA T1
    SPA T2
    SPA T3
    SPA T4
    SPA T5
    SPA T6
    SPA T7
    SPA T8
    SPA T9
    SPA T10
    SPA T11
    SPA T12
    SPA T13
    SPA T14
    SPA T15
    SPA T16
    SPA T17
    SPA T18
    SPA T19
    SPA T20
    SPL0: NOP 0
    U L 0.0
    O
    TRET: L #T_IDX
    SLW 7
    LAR1 P#2.0
    +AR1
    L DID [AR1,P#4.0]
    T DID [AR1,P#8.0]
    L DID 1356
    T DID [AR1,P#4.0]
    = DIX [AR1,P#0.1]
    SPBN TFAL
    L #TTX[0]
    SLW 3
    LAR2 P#1118.0
    +AR2
    SRW 3
    INC 1
    T #TTX[0]
    L #T_IDX
    T DIB [AR2,P#0.0]
    TFAL: L #T_PTR
    + L#8
    SPA TVNX
    TEND: NOP 0
    O #MOP.MAN
    O(
    U #MOP.TAP
    UN #MOP.T_PUSH
    )
    O #MOP.HALT
    O #SQ_FLAGS.NO_SWI
    SPB NTSW
    LAR1 P#1131.0
    L P#1119.0
    T #T_PTR
    L #TTX[0]
    SPA TTST
    TNXT: T #T_IDX
    L DIB [#T_PTR]
    SLW 3
    LAR2 P#1448.0
    +AR2
    L DIB [AR2,P#0.0]
    T #S_START
    ASJ2: SLW 7
    LAR2 P#338.0
    +AR2
    +AR2
    O DIX [AR2,P#1.2]
    O(
    UN #MOP.SSKIP
    U DIX [AR2,P#0.0]
    )
    SPB NOTS
    SRW 4
    LAR2 P#1492.0
    +AR2
    L #S_START
    L DIB [AR2,P#0.0]
    <>I
    SPB ASJ2
    L DIB [#T_PTR]
    T #T_START
    ATB3: SLW 7
    LAR1 P#2.0
    +AR1
    U DIX [AR1,P#0.2]
    SPB NOTS
    SRW 4
    LAR2 P#1426.0
    +AR2
    L #T_START
    L DIB [AR2,P#0.0]
    <>I
    SPB ATB3
    UN #MOP.TAP
    SPB NTAP
    U #MOP.T_PUSH
    R #MOP.T_PUSH
    SPBN NOTS
    NTAP: SLW 7
    LAR1 P#2.0
    +AR1
    S DIX [AR1,P#0.2]
    L #TSX[0]
    SLW 3
    LAR2 P#1130.0
    +AR2
    SRW 3
    INC 1
    T #TSX[0]
    L #T_START
    T DIB [AR2,P#0.0]
    NOTS: L #T_PTR
    + L#8
    T #T_PTR
    L #T_IDX
    TTST: LOOP TNXT
    SET
    NTSW: R #SQ_FLAGS.NO_SWI
    R #MOP.T_PUSH
    LAR2 P#1232.0
    L #S0X[0]
    SLW 3
    +AR2
    L P#1131.0
    T #T_PTR
    L #TSX[0]
    SPA TST0
    NXT0: T #T_TMP
    L DIB [#T_PTR]
    SLW 3
    LAR1 P#1448.0
    +AR1
    L DIB [AR1,P#0.0]
    T #S_START
    ASJ3: T #S_IDX
    SLW 7
    LAR1 P#338.0
    +AR1
    +AR1
    O DIX [AR1,P#0.5]
    ON DIX [AR1,P#1.0]
    SPB NOS0
    S DIX [AR1,P#0.5]
    R DIX [AR1,P#1.0]
    SRW 7
    T DIB [AR2,P#0.0]
    +AR2 P#1.0
    L #S0X[0]
    INC 1
    T #S0X[0]
    NOS0: L #S_IDX
    SLW 3
    LAR1 P#1492.0
    +AR1
    L #S_START
    L DIB [AR1,P#0.0]
    <>I
    SPB ASJ3
    L #T_PTR
    + L#8
    T #T_PTR
    L #T_TMP
    TST0: LOOP NXT0
    LAR2 P#1258.0

    ... und so weiter und so fort.

  3. #13
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Muss das nicht heissen "T DID 1358" anstellen von "T DID 1356"

Lesezeichen

Berechtigungen

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