dps7_E

velmat

  • 帖子

    84
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2003-12-09 13:03:08

0楼

IN
Name Type Comment
DBPA INT parameter-datablock
SYPA INT pointer to systemparameter in parameter-DB
SLPA INT pointer to slaveparameter in parameter-DB

TEMP
ret_value INT Fehlerwort des FC14
db_parameter WORD Nummer des DB-Parameter
db_nutzdaten WORD Nummer des DB-Nutzdaten
ptr_dbpa WORD Zeiger im DB-Parameter
ptr_dbnd WORD Zeiger im DB-Nutzdaten
ptr_lw WORD Zeiger auf Lokaldatenwort
ptr_dw WORD Zeiger auf Datenwort
adr_kstw WORD Adresse des Kommunikationssteuerworts
adr_kstw_2 WORD Adresse des Kommunikationssteuerworts 2
adr_anzw WORD Adresse des Anzeigenworts
adr_pkw_versuchszaehler WORD Adresse des PKW-Versuchszaehlers
adr_pafe WORD Adresse des Pafe 1/2 Bytes
adr_pke_ss WORD Adresse PKE im Zwischenspeicher
adr_index_ss WORD Adresse des alten Index
adr_pke_sendefach WORD Adresse PKE-Sendefach
adr_index_sendefach WORD Adresse Index Sendefach
adr_pke_empfangsfach WORD Adresse PKE-Empfangsfach
adr_index_empfangsfach WORD Adresse des Index im Empfangsfach
adr_stw WORD Adresse STEUERWORT
adr_zsw WORD Adresse ZUSTANDSWORT
ppo_typ WORD PPO-Typ
anzahl_bytes_pkw WORD Anzahl Bytes PKW
anzahl_bytes_pzd WORD Anzahl Bytes PZD
teilnehmernummer WORD Teilnehmernummer
startbyte_pkw WORD Startbyte PKW-Bereich
startbyte_pzd WORD Startbyte PZD-Bereich
offset_kstw WORD Offset von Adresse KSTW
empfangene_ak WORD Auftragskennung
wiederholungen WORD Wiederholungen System
schleifenzaehler WORD Schleifenzaehler
gesendete_pnu WORD PNU gesendet
gesendete_ak WORD Gesendete Auftragskennung
gesendeter_index WORD Gesendeter Index
empfangener_index WORD Empfangener Index
array_auftrag BOOL Kennung: Array-Auftrag
kein_auftrag BOOL Kennung: Kein Auftrag
index_gleich BOOL Kennung: Index gleich
ret_value_diag INT Fehlerwort des SFC 13
Reserve1 WORD Reserve
Reserve2 WORD Reserve
Reserve3 WORD Reserve
Reserve4 WORD Reserve
Basisempfangsfach1 WORD Basisempfangsfach
Basisempfangsfach2 WORD Basisempfangsfach
Basisempfangsfach3 WORD Basisempfangsfach
Basisempfangsfach4 WORD Basisempfangsfach
Basisempfangsfach5 WORD Basisempfangsfach
Basisempfangsfach6 WORD Basisempfangsfach
Basisempfangsfach7 WORD Basisempfangsfach
Basisempfangsfach8 WORD Basisempfangsfach
Basisempfangsfach9 WORD Basisempfangsfach
Basisempfangsfach10 WORD Basisempfangsfach
Basisempfangsfach11 WORD Basisempfangsfach
Basisempfangsfach12 WORD Basisempfangsfach
Basisempfangsfach13 WORD Basisempfangsfach
Basisempfangsfach14 WORD Basisempfangsfach
//DPS7_E
FC-Call
-------
This FC is to be called for each slave one time per cycle.

Function (receive)
------------------
This FC reads the received data and evaluates the telegram, depending on the
PPO-type.

Input-values
------------
DBPA : number parameter-datablock
SYPA : pointer to systemparameter in parameter-DB 0..8172
SLPA : pointer to slaveparameter in parameter-DB
format: INT: possible values : 8..8180


Diagnosis
---------
Pafe1-byte in userdata-DB (communication-interface)
for the specified slave
datenwordaddress = "KSTW" + 8 (KSTW=communication-controlword)
Pafe2 : 2 no valid PPO-type


Permissible datablock-numbers
-----------------------------
CPU315-2DP: DB 1 - 127
CPU413-2DP: DB 1 - 511
CPU414-2DP: DB 1 - 1023

DB parameter: 6 datawords per slave + 4 datawords systemparameter
max. 682 slaves per DB --> length over all: 4096 datawords
DB userdata : PPO 1: 21 datawords/slave, max. 195 slaves/DB --> length over
all:
4095 datawords (DBW0 not used)
PPO 2: 29 datawords/slave, max. 141 slaves/DB --> length over all:

4089 datawords (DBW0 not used)
PPO 3: 9 datawords/slave, max. 455 slaves/DB --> length over
all:
4095 datawords (DBW0 not used)
PPO 4: 17 datawords/slave, max. 240 slaves/DB --> length over
all:
4080 datawords (DBW0 not used)
PPO 5: 37 datawords/slave, max. 110 slaves/DB --> length over
all:
4070 datawords (DBW0 not used)

Used flagwords
--------------
none

Used SFC
--------
SFC 14 - "DPRD_DAT"


Network 1:
L #DBPA
T #db_parameter
OPN DB [#db_parameter] // DB Parametersaetze
L #SYPA
+ 6
SLD 3
LAR1
L DBW [AR1,P#0.0] // Wiederholungszaehler System
T #wiederholungen
L #SLPA
T #ptr_dbpa // Zeiger auf PPO-Typ
SLD 3
LAR1
L DBW [AR1,P#0.0]
T #ppo_typ // PPO-Typ
L #ptr_dbpa
+ 2
T #ptr_dbpa // Zeiger auf TNU
SLD 3
LAR1
L DBW [AR1,P#0.0]
T #teilnehmernummer
L #ptr_dbpa
+ 2
T #ptr_dbpa // Zeiger auf DBND
SLD 3
LAR1
L DBW [AR1,P#0.0]
T #db_nutzdaten // DB Nutzdaten
L #ptr_dbpa
+ 2
T #ptr_dbpa // Zeiger auf Adresse KSTW
SLD 3
LAR1
L DBW [AR1,P#0.0]
T #adr_kstw // Adresse KSTW
L #ptr_dbpa
+ 2
T #ptr_dbpa // Zeiger auf PPKW
SLD 3
LAR1
L DBW [AR1,P#0.0] // Startbyte PKW-Bereich
T #startbyte_pkw
L #ptr_dbpa
+ 2
T #ptr_dbpa // Zeiger auf PPZD
SLD 3
LAR1
L DBW [AR1,P#0.0] // Startbyte PZD-Bereich
T #startbyte_pzd
OPN DB [#db_nutzdaten] // DB Nutzdaten
L #adr_kstw // Adresse KSTW
+ 2
T #adr_kstw_2 // Adresse KSTW2
+ 2
T #adr_anzw // Adresse ANZW
+ 2
T #adr_pkw_versuchszaehler // Adresse PKW-Versuchszaehler
+ 2
T #adr_pafe // Adresse PAFE 1/2
+ 2
T #adr_pke_ss // Adresse PKE-SS (PPO 1, 2, 5)
+ 2
T #adr_index_ss // Adresse alter INDEX (PPO 1, 2, 5)
+ 6
T #adr_pke_sendefach // Adresse PKE-Sendefach (PPO 1, 2, 5)
+ 2
T #adr_index_sendefach // Adresse INDEX Sendefach (PPO 1, 2, 5)
L #adr_pafe
SLD 3
LAR1
L 0
T DBB [AR1,P#0.0] // Pafe 1 loeschen
L 1 // PPO 1
L #ppo_typ
<>I
JC PPO2
L #adr_pke_sendefach // Adresse PKE-Sendefach
+ 8
T #adr_stw // Adresse STEUERWORT
+ 4
T #adr_pke_empfangsfach // Adresse PKE-Empfangsfach
+ 2
T #adr_index_empfangsfach // Adresse INDEX Empfangsfach
+ 6
T #adr_zsw // Adresse ZUSTANDSWORT
L 30 // Offset vom KSTW zum Empfangsfach
T #offset_kstw
L 4 // Anzahl Bytes PZD
L 8 // Anzahl Bytes PKW
JU TRAN
PPO2: L 2 // PPO 2
<>I
JC PPO3
L #adr_pke_sendefach // Adresse PKE-Sendefach
+ 8
T #adr_stw // Adresse STEUERWORT
+ 12
T #adr_pke_empfangsfach // Adresse PKE-Empfangsfach
+ 2
T #adr_index_empfangsfach // Adresse INDEX Empfangsfach
+ 6
T #adr_zsw // Adresse ZUSTANDSWORT
L 38 // Offset vom KSTW zum Empfangsfach
T #offset_kstw
L 12 // Anzahl Bytes PZD
L 8 // Anzahl Bytes PKW
JU TRAN
PPO3: L 3 // PPO 3
L #ppo_typ
<>I
JC PPO4
L #adr_kstw
+ 10
T #adr_stw // Adresse Steuerwort
+ 4
T #adr_zsw // Adresse Zustandswort
L 14 // Offset vom KSTW zum Empfangsfach
T #offset_kstw
L 4 // Anzahl Bytes PZD
L 0 // Anzahl Bytes PKW
JU TRAN
PPO4: L 4 // PPO 4
<>I
JC PPO5
L #adr_kstw
+ 10
T #adr_stw // Adresse Steuerwort
+ 12
T #adr_zsw // Adresse Zustandswort
L 22 // Offset vom KSTW zum Empfangsfach
T #offset_kstw
L 12 // Anzahl Bytes PZD
L 0 // Anzahl Bytes PKW
JU TRAN
PPO5: L 5 // PPO 5
L #ppo_typ
<>I
JC ANZ2
L #adr_pke_sendefach // Adresse PKE-Sendefach
+ 8
T #adr_stw // Adresse STEUERWORT
+ 20
T #adr_pke_empfangsfach // Adresse PKE-Empfangsfach
+ 2
T #adr_index_empfangsfach // Adresse INDEX Empfangsfach
+ 6
T #adr_zsw // Adresse ZUSTANDSWORT
L 46 // Offset vom KSTW zum Empfangsfach
T #offset_kstw
L 20 // Anzahl Bytes PZD
L 8 // Anzahl Bytes PKW
JU TRAN
ANZ2: L #ptr_dbnd
SLD 3
LAR1
L 2
T DBB [AR1,P#0.0] // Pafe 1
BEU // ==> ENDE
TRAN: T #anzahl_bytes_pkw
TAK
T #anzahl_bytes_pzd
L #offset_kstw // Offset vom KSTW zum Empfangsfach
L #adr_kstw // Adresse Kommunikationssteuerwort
+I
T #ptr_dw // Start-DW Empfangsfach im DBND
R DBX [AR1,P#1.1] // "Auftrag fertig ohne Fehler" loeschen
R DBX [AR1,P#1.2] // "Auftrag fertig mit Fehler" loeschen
R DBX [AR1,P#1.3] // Reserve
R DBX [AR1,P#1.4] // "PKW-Schnittstelle gestoert" loeschen
Network 2:
L 1 // PPO 1
L #ppo_typ
<>I
JC PP2 // ==> naechster PPO-Typ
CALL SFC 14 // Block in Lokaldatenbereich schreiben
LADDR :=#startbyte_pkw
RET_VAL:=#ret_value
RECORD :=P#L 80.0 BYTE 8 // Ab LW80 --> 8 Bytes
L #startbyte_pzd
SLD 3
LAR1
L PID [AR1,P#0.0] // 2 Bytes mit Lade/Transfer-Bef.
T LD 88 // in Lokaldatenbereich schreiben
JU TRA // ==> In Empfangsfach transf.
PP2: L 2 // PPO 2
<>I
JC PP3 // ==> naechster PPO-Typ
CALL SFC 14 // Block in Lokaldatenbereich schreiben
LADDR :=#startbyte_pkw
RET_VAL:=#ret_value
RECORD :=P#L 80.0 BYTE 8 // Ab LW80 --> 8 Bytes
CALL SFC 14 // Block in Lokaldatenbereich schreiben
LADDR :=#startbyte_pzd
RET_VAL:=#ret_value
RECORD :=P#L 88.0 BYTE 12 // Ab LW88 --> 12 Bytes
JU TRA // ==> In Empfangsfach transf.
PP3: L 3 // PPO 3
L #ppo_typ
<>I
JC PP4 // ==> naechster PPO-Typ
L #startbyte_pzd
SLD 3
LAR1
L PID [AR1,P#0.0] // 2 Bytes mit Lade/Transfer-Bef.
T LD 80 // in Lokaldatenbereich schreiben
JU TRA // ==> In Empfangsfach transf.
PP4: L 4 // PPO 4
<>I
JC PP5 // ==> naechster PPO-Typ
CALL SFC 14 // Block in Lokaldatenbereich schreiben
LADDR :=#startbyte_pzd
RET_VAL:=#ret_value
RECORD :=P#L 80.0 BYTE 12 // Ab LW80 --> 12 Bytes
JU TRA // ==> In Empfangsfach transf.
PP5: L 5 // PPO 5
L #ppo_typ
<>I
JC TRA // ==> In Empfangsfach transf.
CALL SFC 14 // Block in Lokaldatenbereich schreiben
LADDR :=#startbyte_pkw
RET_VAL:=#ret_value
RECORD :=P#L 80.0 BYTE 8 // Ab LW80 --> 8 Bytes
CALL SFC 14 // Block in Lokaldatenbereich schreiben
LADDR :=#startbyte_pzd
RET_VAL:=#ret_value
RECORD :=P#L 88.0 BYTE 20 // Ab LW88 --> 20 Bytes
TRA: L 2 // Daten in Empfangsfach schreiben
T #schleifenzaehler // Schleifenzaehler
L 80
T #ptr_lw // Zaehler ab LW80
LOOP: L #ptr_lw
SLW 3
LAR1
L #ptr_dw
SLD 3
LAR2
L LW [AR1,P#0.0] // LW laden
T DBW [AR2,P#0.0] // in DB Nutzdaten schreiben
L #anzahl_bytes_pkw
L #anzahl_bytes_pzd
+I
L #schleifenzaehler
<=I
JC WEIT
+ 2 // Schleifenzaehler
T #schleifenzaehler
L #ptr_dw
+ 2 // Zeiger auf DW erhoehen
T #ptr_dw
L #ptr_lw
+ 2 // Zeiger auf LW erhoehen
T #ptr_lw
JU LOOP
WEIT: NOP 0

Network 3:
L #adr_zsw // Adresse ZSW ins AR1 zur Bitauswertung
SLD 3
LAR1
L #adr_anzw // Adresse ANZW ins AR2 zur Bitauswertung
SLD 3
LAR2
A DBX [AR1,P#1.3] // Stoerung (ZSW)
= DBX [AR2,P#1.6] // Meldung (ANZW)
A DBX [AR1,P#1.7] // Warnung (ZSW)
= DBX [AR2,P#1.7] // (ANZW)
L #adr_stw // Adresse STW ins AR2 zur Bitauswertung
SLD 3
LAR2
A DBX [AR1,P#0.1] // AG-Fuehrung gefordert (ZSW)
AN DBX [AR2,P#0.2] // Keine Fuehrung (STW)
L #adr_anzw // Adresse ANZW ins AR2 zur Bitauswertung
SLD 3
LAR2
= DBX [AR2,P#0.0]
AN( // Nur PPO-Typ 1, 2, 5
L 1
L #ppo_typ
==I
)
AN(
L 2
==I
)
TAK
AN(
L 5
==I
)
BEC // PKW nur bei PPO-Typ 1, 2, 5
L #adr_pke_empfangsfach // Adresse PKE Empfangsfach
SLD 3
LAR1
L DBW [AR1,P#0.0] // PKE aus Empfangstelegramm
SRW 12
T #empfangene_ak // AK von PKE
L #adr_kstw_2 // Adresse KSTW2 ins AR1 zur Bitauswertung
SLD 3
LAR1
A(
L 9
L #empfangene_ak // pruefen, ob Spontanmeldung
<=I // vorliegt
) // AK zwischen 9..12
A(
L 12
<=I
)
JC SPM
AN DBX [AR1,P#1.3] // SPM-Auftrag laeuft nicht (KSTW2)
JC PKW1
R DBX [AR1,P#1.3] // loeschen SPM-Auftrag laeuft (KSTW2)
L #adr_pkw_versuchszaehler
SLD 3
LAR2
L 0
T DBW [AR2,P#0.0] // PKW-Versuchszaehler loeschen
JU PKW1
SPM: L #adr_pke_empfangsfach // Adresse PKE-Empf. ins AR2 zur Bitauswertung
SLD 3
LAR2
A DBX [AR1,P#1.1] // Altwert SPM-Bit (KSTW2)
AN DBX [AR2,P#0.3] // SPM-Bit aus PKE (PKE-Empf.)
O
AN DBX [AR1,P#1.1]
A DBX [AR2,P#0.3]
JC NSPM // neue Spontanmeldung
AN DBX [AR1,P#1.3] // (KSTW2)
JC END1 // ==> ENDE
L #adr_pkw_versuchszaehler
SLD 3
LAR1
L DBW [AR1,P#0.0]
+ 1
T DBW [AR1,P#0.0]
L #wiederholungen // WDH (System)
>I
L #adr_anzw // Adresse ANZW ins AR1 zur Bitauswertung
SLD 3
LAR1
L #adr_kstw_2 // Adresee KSTW2 ins AR2 zur Bitauswertung
SLD 3
LAR2
S DBX [AR1,P#1.4] // Stoerung PKW-SS (ANZW)
R DBX [AR1,P#1.0] // laeuft Anzw loeschen (ANZW)
R DBX [AR1,P#1.1] // Anzw fertig ohne Fehler loeschen (ANZW)
R DBX [AR1,P#1.2] // Anzw fertig mit Fehler loeschen (ANZW)
R DBX [AR2,P#1.0] // laeuft loeschen fuer PKW,intern (KSTW2)
R DBX [AR2,P#1.3] // laeuft loeschen fuer SPM (KSTW2)
JU END1 // ==> ENDE
NSPM: L #adr_anzw // Adresse ANZW ins AR1 zur Bitauswertung
SLD 3
LAR1
L #adr_kstw_2 // Adresse KSTW2 ins AR2 zur Bitauswertung
SLD 3
LAR2
S DBX [AR1,P#1.5] // SPM in Anwender-Steu (ANZW)
R DBX [AR2,P#1.3] // SPM-Auft. loeschen in Steu 2 (KSTW2)
S DBX [AR2,P#1.4] // neuer SPM-Auftrag (intern) (KSTW2)
L #adr_pke_empfangsfach // Adresse PKE-Empf. ins AR1 zur Bitauswertung
SLD 3
LAR1
A DBX [AR1,P#0.3] // (PKE-Empf.)
= DBX [AR2,P#1.1] // SPM-Bit nachziehen (KSTW2)
L #adr_pkw_versuchszaehler
SLD 3
LAR1
L 0
T DBW [AR1,P#0.0] // PKW-Versuchszaehler loeschen
END1: BEU
PKW1: AN DBX [AR1,P#1.0] // kein PKW-Auftrag laeuft (KSTW2)
AN DBX [AR1,P#1.6] // kein Nullauftrag intern l鋟ft
BEC // ==> ENDE

Network 4:
L #adr_pke_ss // Adresse akt. PKW-Auftrag
SLD 3
LAR1
L DBW [AR1,P#0.0] // PKE akt.
L W#16#7FF // PNU ausblenden
AW
T #gesendete_pnu // PNU gesendet
TAK
SRW 12
T #gesendete_ak // AK-S: Auftragskennung gesendet
O(
L 4 // indizierte Auftraege pruefen
==I // Auftragskennung 4,5,6,7,8,11,12
)
O(
L 5
L #gesendete_ak
==I
)
O(
L 6
==I
)
O(
L 7
L #gesendete_ak
==I
)
O(
L 8
==I
)
O(
L 11
L #gesendete_ak
==I
)
O(
L 12
==I
)
= #array_auftrag // Array-Auftrag
L #adr_index_ss // Adresse Index
SLD 3
LAR1
L DBB [AR1,P#0.0] // gesendeter Index
T #gesendeter_index
L #adr_index_empfangsfach // Adresse INDEX Empfangsfach
SLD 3
LAR1
L DBB [AR1,P#0.0] // INDEX aus Empfangstelegramm
T #empfangener_index
A(
L #gesendete_ak // "kein Auftrag"
L 0
==I
)
A(
L #empfangene_ak
==I
)
= #kein_auftrag // VKE retten

Network 5:
L #gesendete_ak
L 0 // Nullauftrag gesendet
<>I
JC WEI
L #empfangene_ak // Antwortkennung "0" ??
<>I
JC WDH
WEI: L #adr_kstw_2 // Adresse KSTW2 ins AR1 zur Bitauswertung
SLD 3
LAR1
A #kein_auftrag
AN DBX [AR1,P#1.5] // interner "Nullauftrag" laeuft (KSTW2)
JC FRT // nicht
A #kein_auftrag
A DBX [AR1,P#1.5] // (KSTW2)
R DBX [AR1,P#1.0] // intern Auftrag laeuft (KSTW2)
R DBX [AR1,P#1.5] // Nullauftrag loeschen (KSTW2)
S DBX [AR1,P#1.6] // neuen Auftrag ohne Kontrolle (KSTW2)
JC END2 // uebernehmen
L #adr_pke_empfangsfach // Adresse PKE aus Empfangsfach in AR1
SLD 3
LAR1
L DBW [AR1,P#0.0] // PKE aus Empfangsfach
SLW 5 // AK und Index ausblenden
SRW 5 // empfangene PNU
L #gesendete_pnu // gesendete PNU
<>I
JC WDH // gleich ??
L #empfangener_index
L #gesendeter_index
==I
= #index_gleich // Index gleich
L 8 // keine Bedienhoheit
L #empfangene_ak // AK-E: Antwortkennung
==I
JC SPKW
AN #array_auftrag // kein Arrayauftrag
JC KARR
A #index_gleich
A(
L 7
==I
)
JC FMFE
JU AKE
KARR: L 7 // Fehler aufgetreten
==I
FMFE: L #adr_anzw // Adresse ANZW ins AR1 zur Bitauswertung
SLD 3
LAR1
S DBX [AR1,P#1.2]
JC FEHL
AKE: L 1 // Parameterwert lesen
L #gesendete_ak // AK-S
<>I
JC AKS4
L 1
L #empfangene_ak // AK-E = 1 Wort
==I
JC FRT
L 2 // AK-E = 2 Doppelwort
==I
JC FRT
JU WDH
AKS4: L 4 // Beschreibungselement anfordern
<>I
JC AKS6
AN #index_gleich // Index ungleich
JC WDH
L #empfangene_ak // AK-E = 3
L 3
==I
JC FRT
JU WDH
AKS6: L #gesendete_ak
L 6 // Parameterwert lesen (Array)
<>I
JC AKS9
AN #index_gleich
JC WDH
L 4 // AK-E = 4 Wort
L #empfangene_ak
==I
JC FRT
L 5 // AK-E = 5 Doppelwort
==I
JC FRT
JU WDH
AKS9: L #gesendete_ak
L 9 // Anzahl Arrayelemente lesen
<>I
JC AKS2
L #empfangene_ak // AK-E
L 6
==I
JC FRT
JU WDH
AKS2: L #gesendete_ak
L 2 // Parameterwert aendern - Wort
<>I
JC AKS5
L #empfangene_ak
L 1 // AK-E
==I
JC FRT
JU WDH
AKS5: L #gesendete_ak
L 5 // Beschreibungselement aendern
<>I
JC AKS7
AN #index_gleich // Index ungleich
JC WDH
L #empfangene_ak
L 3 // AK-E
==I
JC FRT
JU WDH
AKS7: L #gesendete_ak
L 7 // Parameterwert aendern - Array
<>I
JC AKS3
AN #index_gleich // Index ungleich
JC WDH
L #empfangene_ak
L 4 // AK-E
==I
JC FRT
JU WDH
AKS3: L #gesendete_ak
L 3 // Parameterwert aendern - Doppelw.
<>I
JC AKS8
L #empfangene_ak
L 2 // AK-E
==I
JC FRT
JU WDH
AKS8: L #gesendete_ak
L 8 // Parameterwert aendern
<>I // Doppelwort , Array
JC AK11
AN #index_gleich // Index ungleich
JC WDH
L #empfangene_ak
L 5
==I
JC FRT
JU WDH
AK11: L #gesendete_ak // Parameterwert aendern, EEPROM
L 11 // Array, Doppelwort
<>I
JC AK12
AN #index_gleich // Index ungleich
JC WDH
L #empfangene_ak
L 5
==I
JC FRT
JU WDH
AK12: L #gesendete_ak // Parameterwert aendern, EEPROM
L 12 // Array, Wort
<>I
JC AK13
AN #index_gleich // Index ungleich
JC WDH
L #empfangene_ak
L 4
==I
JC FRT
JU WDH
AK13: L #gesendete_ak // Parameterwert aendern, EEPROM
L 13 // Doppelwort
<>I
JC AK14
L #empfangene_ak
L 2
==I
JC FRT
JU WDH
AK14: L #gesendete_ak // Parameterwert aendern, EEPROM
L 14 // Wort
<>I
JC SPKW
L #empfangene_ak
L 1
==I
JC FRT
WDH: L #adr_pkw_versuchszaehler
SLD 3
LAR1
L DBW [AR1,P#0.0] // PKW Versuchszaehler
+ 1 // erhoehen , Slave
T DBW [AR1,P#0.0]
L 32767 // PKW Versuchszaehler begrenzen
>=I
JC SPKW
TAK // PKW Versuchszaehler
L #wiederholungen // WDH (System)
>I
SPKW: L #adr_kstw_2 // Adresse KSTW2 ins AR1 zur Bitauswertung
SLD 3
LAR1
L #adr_anzw // Adresse ANZW ins AR2 zur Bitauswertung
SLD 3
LAR2
S DBX [AR2,P#1.4] // Stoerung PKW Auftrag (ANZW)
R DBX [AR2,P#1.0] // laeuft Anzw loeschen (ANZW)
R DBX [AR1,P#1.0] // laeuft loeschen PKW, intern (KSTW2)
R DBX [AR1,P#1.3] // laeuft loeschen SPM (KSTW2)
JU END2
FRT: L #adr_kstw_2 // Adresse KSTW2 ins AR1 zur Bitauswertung
SLD 3
LAR1
L #adr_anzw // Adresse ANZW ins AR2 zur Bitauswertung
SLD 3
LAR2
S DBX [AR2,P#1.1] // Auftrag f.o.F. (ANZW)
FEHL: L #adr_kstw_2 // Adresse KSTW2 ins AR1 zur Bitauswertung
SLD 3
LAR1
L #adr_anzw // Adresse ANZW ins AR2 zur Bitauswertung
SLD 3
LAR2
R DBX [AR2,P#1.4] // Stoerung PKW loeschen (ANZW)
R DBX [AR1,P#1.0] // laeuft PKW loeschen, intern (KSTW2)
R DBX [AR2,P#1.0] // laeuft Anzw loeschen (ANZW)
END2: BE


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

MasterDrives

共有5853条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。