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!
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