Step 5 WF705 SSI Encoder Karte: schnelles Einlesen der Kanäle! Lösung!

Maagic7

Level-2
Beiträge
384
Reaktionspunkte
180
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte mal wieder mit WF705 Encoder Karten zu tun und bin über meine alte Lösung zum schnellen einlesen der Positioswerte gestolpert!
Das Problem der WF705 Karten ist, dass mit dem orignal Siemens Baustein das Einlesen extrem lange dauert. 4ms Grundzeit + 4ms je Geber.
In Summe sind das für 3 Achsen bereits 16ms auf einer 943B CPU. Mit direktem Auslesen sind es nur 6ms!

Der org. Siemens Baustein ruft alles indirekt adressiert auf und das dauert bei einer S5 halt ewig! Mit Hilfe der Doku zu den VIPA BG2 BG3 Karten
und den SSI Modulen, hab ich dann auch eine schneller Lösung für die WF705 Karten gefunden.

Vieleicht kann's ja noch jemand brauchen!

Code:
-------------------------------------------------------------------
;an jedem Stecker können bei der WF705 4 Geber eingelsen werden
;Erster Geber am ersten Stecker = 0
    A    DB 40    ; WF705 DB
    SPA    FB 132
NAME:    SSI IN 
NR  :    KF +0
PAFE:    M 130.0
        
    L    MW 232
    ADD    KF -2
    T    MW 84    ;Istwert Bruecke
    ***   
    
Erster Geber am ersten Stecker = 3   
    A       DB 40
    SPA    FB 132
NAME:    SSI IN 
NR  :    KF +3
PAFE:    M 130.1
        
    L    MW 232
    ADD    KF -4
    T    MW 82    ;Istwert Katze
    -------------------------------------
    
    ----------------------------------------------------------    
    hier der FB132 zum Auslesen der Encoder
    mit IBH S5 für Windows als AWL exportiert
----------------------------------------------------------    
    FB zum auslesen der Geberwerte der WF705 Karte von Siemens
Es wird ein Geber von der WF-Karte ausgelesen.
Die Reduzierung der Inkremente, wie im Anlaufbaustein angegeben
wird bei diesem Baustein ebenso verarbeitet wie beim Siemens-FB!

ACHTUNG: die Baugruppenadresse wird direkt angesprochen und muss deshalb
         von Hand im Programm eingetragen werden (diese Massnahme bringt
         etwa 1.5ms Einsparung)

Vorteil zum Siemens Baustein ist: Dieser Baustein benoetigt nur etwa
2ms (CPU 943b) zum auslesen eines Gebers. Der Siemens FB benoetigt ca.
4ms je Geber + einmalig 4ms Bausteinlaufzeit.

Als Vergleich beim Auslesen von 3 Gebern wird bei Verwendung des Siemens-FB
(CPU 943b) etwa 16ms benoetigt. Unter Verwendung dieses Bausteins reduziert
sich diese Zeit auf etwa 6ms.

Autor: S. Maag
Datum: 22.09.1999

NR  :  Nummer des auszulesenden Gebers  (0-11)
PAFE:  Parametrierfehler / Geberfehler

MW230 : gibt High-Wort des Geberwertes zurueck
MW232 : gibt Low-Wort des Geberwertes zurueck


[1    WF705 Geber einlesen direkt
NAME:    SSI IN
BEZ :    NR    DKF    ;BAUGRUPPENADRESSE
BEZ :    PAFE    ABI    ;AUSGANGSWERT LOWWORT

***
]
[2
LW    =NR      ;Gebernummer
T    PY 131    ;Baugruppenadresse BGR + 3
I    11    ;SRW-Werte ab DW11
T    MW 248    ;DW Adresse SRW-Wert

B    MW 248    ;SRW-Wert aus DB fuer
L    DW 0    ;jeweiligen Geber lesen !!!
T    MW 250    ;SRW-Wert

L    KH 001F    ;Baudrate niedrig
T    PY 128    ;Baudrate hoch (L KH 001D)
LOOP:
L    PY 131    ;BGR + 3
T    MB 249
U    M 249.3    ;Wert noch nicht bereit
SPB    =LOOP
L    KH 0003    ;Statusbits ausblenden
UW        ;nur noch 2 Werte-Bits
T    MB 252

L    PY 130    ;Baugruppenadresse  BGR + 2
T    MB 253

L    PY 129    ;BGR +1
T    MB 254

L    PY 128    ;BGR
T    MB 255

UN    M 255.0
U    M 249.2
SPB    =OK
S    =PAFE    ;Geberfehler
BEA

OK  :    RB    =PAFE
***
]
[3    schiebe rechts Doppelwort
L    MW 250    ;Anzahl der zu schiebenden bits
B    MW 250
SPA    =M001    ;:1   - SRW 0
SPA    =M002    ;:2   - SRW 1
SPA    =M003    ;:4   - SRW 2
SPA    =M004    ;:8   - SRW 3
SPA    =M005    ;:16
SPA    =M006    ;:32
SPA    =M007    ;:64
SPA    =M008    ;:128
SPA    =M009    ;:256
SPA    =M010    ;:512
SPA    =M011    ;:1024
SPA    =M012    ;:2048
SPA    =M013    ;ab SRW 12 nicht programmiert
SPA    =M014
SPA    =M015
SPA    =M016
BEA
M001:    SPA    =M017
M002:    L    MW 254    ;Low-Wort
SRW    1
L    MW 252    ;High-Wort
SLW    15
OW
T    MW 232    ;Low-Wert
L    MW 252
SRW    1
T    MW 230    ;High
BEA

M003:    L    MW 254
SRW    2
L    MW 252
SLW    14
OW
T    MW 232
L    MW 252
SRW    2
T    MW 230
BEA

M004:    L    MW 254
SRW    3
L    MW 252
SLW    13
OW
T    MW 232
L    MW 252
SRW    3
T    MW 230
BEA

M005:    L    MW 254
SRW    4
L    MW 252
SLW    12
OW
T    MW 232
L    MW 252
SRW    4
T    MW 230
BEA

M006:    L    MW 254
SRW    5
L    MW 252
SLW    11
OW
T    MW 232
L    MW 252
SRW    5
T    MW 230
BEA

M007:    L    MW 254
SRW    6
L    MW 252
SLW    10
OW
T    MW 232
L    MW 252
SRW    6
T    MW 230
BEA

M008:    L    MW 254
SRW    7
L    MW 252
SLW    9
OW
T    MW 232
L    MW 252
SRW    7
T    MW 230
BEA

M009:    L    MW 254
SRW    8
L    MW 252
SLW    8
OW
T    MW 232
L    MW 252
SRW    8
T    MW 230
BEA

M010:    L    MW 254
SRW    9
L    MW 252
SLW    7
OW
T    MW 232
L    MW 252
SRW    9
T    MW 230
BEA

M011:    L    MW 254
SRW    10
L    MW 252
SLW    6
OW
T    MW 232
L    MW 252
SRW    10
T    MW 230
BEA

M012:    L    MW 254
SRW    11
L    MW 252
SLW    5
OW
T    MW 232
L    MW 252
SRW    11
T    MW 230
BEA

M013:
M014:
M015:
M016:

M017:    L    MW 254    ;Low-Wort
T    MW 232
L    MW 252    ;High-Wort
T    MW 230
BE
 
Zurück
Oben