S5 seltsames Verhalten in Kopierschleife

Lars Weiß

Level-3
Beiträge
1.265
Reaktionspunkte
264
Zuviel Werbung?
-> Hier kostenlos registrieren
Nabend,

hier dieser Code gibt mir rätsel auf:

Code:
NAME:    SENDEN
    A    -DB_L1-Send
    L    KF +64
    T    DL 40
    L    KF +0
    T    DR 40
        
    L    KB 141
    T    MW 200
    L    KB 41
    T    MW 202
        
M001:    B    MW 200
    L    DW 0
    B    MW 202
    T    DW 0
        
    L    MW 200
    I    1
    T    MW 200
    L    MW 202
    I    1
    T    MW 202
        
    L    MW 202
    L    KB 73
    <F    
    SPB    =M001
        
    BE
MW200 ist das Quelldatenwort (hier 141), MW202 ist das Zieldatenwort (hier 41) und dann wird die Schleife durchlaufen bis MW202 auf 73 hochgezählt wurde.

Aber im DW41 steht nichts, die Daten stehen erst im DW42 (und folgende) - des raff ich net :confused:

Hab ich nen Denkfehler ?!?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Lars:
Ich sehe keinen Fehler in deiner Auslegung des vorliegenden S5-Codes.
Es wird dann also wohl so sein, dass im DW141 wirklich nichts drin steht.

Gruß
Larry
 
Doch, im DW141 steht was drin, aber das steht nicht im DW41 sondern im DW42 - der ganze Datensatz von 33 Datewörtern ist um ein Wort verschoben !
 
... hast du die Kopier-Routine mal unabhängig von der Empfangs-Routine (oder woher immer die Daten kommen) betrieben ?
 
in der Simulation tut der baustein auch wie er soll, ich such dann mal weiter...ist leider nur ein ag-abzug, ohne symbolik und so ...
 
Kopierschleife

Hallo Lars,

ich kann nur meine Vorschreiber bestätigen :

Der Fehler liegt nicht in dem Programmteil, den Du oben stehend veröffentlicht hast. Die Kopierroutine ist sauber, der Fehler liegt wo anders.

Gruß

Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
in der Simulation tut der baustein auch wie er soll, ich such dann mal weiter...ist leider nur ein ag-abzug, ohne symbolik und so ...
mit was simulierst du das?

Thomas

PS: doch nicht etwas mit ner Konvertierung auf Step7, da hättest du allerdings Verschiebungen in den DW
 
Zuletzt bearbeitet:
mhm... Die original-CPU ist auch die gleiche 95er? ... Hast du es schon mal einzeln ausprogrammiert
Code:
L DW141
T DW41
und die Schleife erst bei 142 einsetzen lassen?

oder läufst du ausversehen noch einmal über die schon abgelöschte 141?

Thomas
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich finde, deine Schleife hat eine gewisse Ähnlichkeit mit der im Programmbeispiel zur Kommunikation über SINEC-L1 im Kapitel 14.6 im Handbuch.
Sollte da wirklich L1-Kommunikation im Spiel sein, dann wäre es interessant, mal das gesamte Projekt zu sehen, insbesondere den DB1.
Möglicherweise erklärt das dann auch, warum es auf deinem "Simulator" läuft.

Grüße von HaDi
 
Klar, da läuft momentan noch eine L1-Kopplung. Ein DB1 ist nicht parametriert, dafür gibts einen FB:

Code:
NAME:    PARSINEC

    L    KF +1    ; Slave Nr.1  
    T    MB 106
        
    L    KH 4D00    ; Typ koordinierungsbytes Empfang
    T    MW 107
        
    L    KY 195,0    ;Adresse des KBE
    T    MW 108
        
    L    KH 4D00    ;Typ Koordinierungsbytes Senden
    T    MW 110    ;4D00 --> MB
        
    L    KY 196,0    ;Adresse des KBS
    T    MW 111
        
    L    KH 4400    ;Typ des Sendefachs
    T    MW 113    ;4400 --> DB
        
    L    KY 70,40    ;Adresse Sendefach
    T    MW 114    ;DB70 ab DW40
        
    L    KH 4400    ;Typ des Empfangsfachs
    T    MW 116
        
    L    KY 71,40    ;Adresse Empfangsfach
    T    MW 117    ;DB71 ab DW 40
        
        
    L    KH EE76    ;Transfer  Merkerbereich nach SD
    L    KH EA7F
    TNB    14
        
    L    KH 0000    ; loeschen der Arbeitsmerkerworte
    T    MW 105
    T    MW 107
    T    MW 109
    T    MW 111
    T    MW 113
    T    MW 115
    T    MW 117
        
        
    L    KH 0080
    T    MB 195
        
        
    L    KH 0000
    T    MB 196
        
    BE
Wenn vom Besy das "senden erlaubt"-Bit (M196.7) zurückgesetzt wurde wird der FB73 mit der Schleife aufgerufen:

Code:
NAME:    SINEC
    U    M 195.7      
    SPB    =M001
                
    SPA    FB 72
NAME:    EMPFANG 
       
    UN    M 195.7               
    S     M 195.7
        
M001:        
    U    M 196.7               
    SPB    =M002
               
    SPA    FB 73
NAME:    SENDEN  
        
    UN    M 196.7
    S     M 196.7
        
M002:        
    BE
Der FB72 ist leer. Empfangen wird nichts.
 
Zurück
Oben