Tipps zur Fehlersuche...

petzi

Level-1
Beiträge
255
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe folgendes Problem:

In einem sehr komplexen Programm werden Pakete nach Postleitzahlen gesammelt und entsprechend an verschiedenen Abwurfstellen abgeworfen.

Nach der Umstellung der IP-Adresse der SPS und der Visualisierung besteht das Problem, dass sich ein Abwurf nicht mehr freischalten lässt.

Das Programm für die Abwürfe ist in der FC132 geschrieben. Ein Auszug daraus ist:

Code:
CON0:         NOP   0
             U(    
             U     M    203.0
             O     M    203.1
             O     M    203.2                  
              )     
             UN    M    203.3                  
             UN    M    203.4                  
             O     
             U     M    203.4                  
             U     "M 12.1"                    // Blinktakt
             =     #LPGE                       // Lampe Gelb
 
             U     M    203.3                  // Abwurf komplett
             UN    M    203.6
             O     
             U     M    203.6                  // Abwurf beendet
             U     M     12.0
             =     #LPGN                       // Lampe Grün

Es handelt sich um insgesamt 12 Abwurfstellen, so dass die FC132 in der FC188 12x aufgerufen wird. In der FC188 werden dann auch die Parameter, wie z.B. für #LPGE oder #LPGN übergeben.

Meine Frage:

Wenn ich nun z.B. auf den Abwurf mit der Nr. 5 Einfluss nehmen möchte, wie kann ich das machen? Alle Abwürfe "arbeiten" doch mit den gleichen Merkern - wie oben dargestellt. Wenn ich nun versuchen möchte, die Lampe #LPGE auf Status 1 zu steuern, wie kann ich das dann bewerkstelligen, da ja die entsprechenden Merker auch für die anderen Lampen der Abwurfstellen verwendet werden?

Vielen Dank!
 
Wird vielleicht am Anfang des FC ein anderer Merkerbereich oder Datenwörter auf deine Merker umkopiert?
 
FC188/NW1: Taste Drucker quittieren

U "-S01"
L S5T#15S
SA T 15
NOP 0
NOP 0
NOP 0
NOP 0


FC188/NW2: Taste IO unterdrücken

U T 15
UN M 110.2
= M 110.1
U M 110.1
S M 110.2
UN T 15
R M 110.2
NOP 0

FC188/NW3: Abwurf 1 steuern

UN "A2-Abw."
UN "A3-Abw."
UN "A4-Abw."
UN "A5-Abw."
UN "A6-Abw."
UN "A7-Abw."
UN "A8-Abw."
UN "A9-Abw." // 1 ABWURF IST BEENDET
= M 110.0

FC188/NW4: Belegung Abwurf 1

AUF "PC-DAT_IN_BI_VISU"

CALL FC132
NR :=1
FELD:=13
STRT:="31S2_FRG"
FRG :=M110.0
ABW :="A1-FLK"
DRIO:=M110.1
DNIO:="-S02"
TAKT:="M 69.5"
EIN :="A1-Visu"
LPGE:="31H1"
LPGN:="31H2"
DRCK:="M111.4"
SEND:="M 111.5"
ENDE:="A1-Abw."
WS_A:="A1-WS-A"
SOLL:="PC-DAT_IN_BI_VISU".D_SACK_S_1
IST :="PC-DAT_IN_BI_VISU".D_SACK_I_1
DLVI:=DB103.DBB64
U "M 111.5"
UN M 111.0
= "A1-STel"
S M 111.0
UN "M 111.5"
R M 111.0
U "A1-STel"
SPBN X000
CALL "Fkt_CopyDB_I"
iInSourceDB :=288
iInTargetDB :=288
iInSourceOffset:=10
iInTargetOffset:=122
iInLen :=62
oBoPAFE :=#tmp
X000: NOP 0
AUF "DX71"
L "DX71".D_18
T MD 188
CALL "32_BIT_ACII"
FPDD:=MD188
B4_1:=MD192
B7_5:=MD196
L MD 192
T DB288.DBD 184
U "A1-STel"
SPBN X001
// EINTRAG IN TEL-PUFFER
CALL "WS_EINTR"
QUELL_DB :=288
QUELL_ANF :=122
WS_DB :=42
ANZ_DATSATZ:=120
ANZ_BYTE :=70
STAT_VOLL :="WS42_voll"
ANZ_SATZ :=#tmp_i
X001: NOP 0
U "A1-Visu"
SPBN X002
// EINTRAG IN VISUALISIERUNG
CALL "Fkt_CopyDB_I"
iInSourceDB :=288
iInTargetDB :=101
iInSourceOffset:=14
iInTargetOffset:=60
iInLen :=20
oBoPAFE :=#tmp
X002: NOP 0


Die NW3 und NW4 wiederholen sich nun für alle Abwürfe!

Die FC132 ist leider zu lang, um sie hier zusammenhängend einszustellen...
 
Zuletzt bearbeitet:
Schon 1,5 Jahre dabei und noch immer nicht die Vorteile der code-Tags erkannt :-(
Obwohl du sie ja im ersten Beitrag benutzt hast :)

Ich vermisse noch den FC132. Evtl. die beiden mal in eine Quelle exportieren und hier hochladen.

Vorm Aufruf des FC132 wird ein DB geöffnet. Evtl. werden aus dem Parameter
umrangiert, aber ohne kompletten FC132 schwer zu sagen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Teil 1/FC132:

L #NR // NR. DES ABWURFES
+ 287 // OFFSET FUER DB-Nr. (alt: 70 DX-NR.)
T "MW200_tmp" // DX-NR.
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK
L #conv_akku1
AUF DB [#conv_index]
// *** DX ABWURF-STATION
L DBW 4 // STEUER-BITS Wort 1
T "MW202_tmp"
L 0
<>I // ABWURF AKTIV ?
SPB WEIT
U #STRT // TASTE EIN
S M 203.0 // SETZE START
S #WS_A // DATEN AUS WARTESCHLANGE AUSTRAG.
SPA END1
WEIT: NOP 0
U #WS_A // WS-AUSTRAG DATEN
SPB CN0 // WARTEN BIS DATEN AUSGETRAGEN
//; // (WICHTIG, WENN WS LEER !)
//; // (WS-A WIRD BEI WS-AUSTR.RESETET)
//; // (SIEHE FX79)
L #FELD // PLATZ-NR. AUF FOERDERER
T "MW230-tmp"
// # LESEN DATEN VON FOERDERER
CALL "DAT_DX61_OUT_2"
FELD:="MW230-tmp" // FELD-NR.
DW1 :="MW232-tmp" // HAKEN-NR.
DW2 :="MW234-tmp" // STATUS
DW3 :="MW236-tmp" // GEBINDE-VERWALTUNG
U M 203.0 // FREIGABE
S M 203.1 // START-HAKEN LESEN
R M 203.0
UN M 203.1
SPB CON1
S M 203.2 // SOLL-DATEN ERFASSEN
R M 203.1
R #SEND
L DBB 75 // IST-ANZAHL SAECKE Foerderer
T DBW 8 // SOLL-ANZAHL SAECKE Abwurf
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
T #SOLL
// DX-Nr
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK
L #conv_akku1
AUF DB [#conv_index] // ***
// *** DX ABWURF-STATION
CON1: NOP 0 // # PRUEFEN "ABWURF KOMPLETT"
U #ABW // SACK-ABWURF LAEUFT
UN "M 202.2-tmp"
= "M202.3-tmp" // FLANKE "ABWURF LAEUFT"
S "M 202.2-tmp" // FLM
UN #ABW
R "M 202.2-tmp"
UN "M202.3-tmp" // FLANKE "ABWURF LAEUFT"
SPB CON2
L DBW 8 // ANZAHL SAECKE ABWERFEN
+ -1 // 1 SACK ABZIEHEN
T DBW 8 // REST-ANZAHL SAECKE
T "MW206-tmp"
L 0
==I
S M 203.3 // SETZE "ABWURF KOMPLETT"
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
L #SOLL // Soll-Anzahl Saecke
L "MW206-tmp" // Rest-Anzahl Saecke
-I
T #IST // Ist-Anzahl an Visualisierung
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK
L #conv_akku1
AUF DB [#conv_index] // ***
// *** DX ABWURF-STATION
CON2: NOP 0 // # PRUEFEN AUF "LETZTEN HAKEN)
U "M202.4-tmp" // Haken-Nr. merken beim 1. Abwurf
SPB CN21
S "M202.4-tmp" // Haken-Nummer erfasst (Nr. -1)
L "MW232-tmp" // Haken-Nr. beim 1. Abwurf
T DBW 6 // Anfang-Haken-Nr. (Nr. -1)
L 0 // loeschen
T DBW 78 // Anzahl Haken Durchlaufen
SPA CN21
END1: SPA END2 // Sprunginsel
CN21: NOP 0
UN #TAKT // Haken-Takt
ON "M202.4-tmp" // Haken-Nr.erfasst/Anzahl resetet
SPB CN22
L DBW 78 // Anzahl Haken durchlaufen alt
+ 1 // erhoehen
T DBW 78 // Anzahl Haken durchlaufen - neu
CN22: NOP 0
U M 203.2 // Soll-Daten erfassen
U(
L DBW 78 // Anzahl Haken-Durchlauf
L "ANZ_LAUF" // Soll-Anzahl Haken-Durchlauf
>=I
)
S M 203.4 // ALLE HAKEN DURCHLAUFEN
// (ABWURF NICHT KOMPLETT)
U M 203.3 // ABWURF KOMPLETT
ON M 203.4 // NICHT "ALLE HAKEN DURCHLAUFEN"
O "M 202.0" // bereits angestossen
SPB CON3
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung Meldungen
S "M 202.0"
S DB103.DBX 165.0 // VISU: Meldung Abwurf NIO
L #NR // Abwurf-Nr.: X
T "PC-DAT_IN_BI_VISU".D_ABW_NR // Eintrag VISU
L #SOLL // Soll-Anzahl Saecke
T "PC-DAT_IN_BI_VISU".D_ABW_S // Eintrag VISU
L #IST // Ist-Anzahl Saecke
T "PC-DAT_IN_BI_VISU".D_ABW_I
T #conv_akku1
L "MW200_tmp" // "MB201_tmp" // DX-Nr.
T #conv_index
TAK
L #conv_akku1
AUF DB [#conv_index] // ***
// *** DX ABWURF-STATION
CON3: NOP 0 // # FEHLER: GEBINDE NICHT KOMPLETT
U M 203.3 // ABWURF KOMPLETT
O M 203.4 // ALLE HAKEN DURCHLAUFEN
UN M 203.6
S M 203.5 // DRUCKEN / SUMMENSATZ SENDEN
R M 203.2
SPA SPRG
CN0: SPA CON0
END2: SPA ENDE // Sprunginsel
SPRG: NOP 0
U M 203.6
U #DRIO // TASTE: DRUCK IO
S "M 203.7-tmp" // ENDE
UN "M 203.7-tmp"
SPB CON5
R M 203.3 // RESET ABWURF KOMPLETT
R M 203.4 // RESET ABWURF NICHT KOMPLETT
R M 203.5 // RESET DRUCKEN/SUMMENSATZ SENDEN
R M 203.6 // RESET ABWURF BEENDET
R "M202.4-tmp" // RESET Haken-Korrektur
R "M 202.0"
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
L 0 // Loeschen Anzahl Saecke
T #SOLL
T #IST
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK
L #conv_akku1
AUF DB [#conv_index]
// *** DX ABWURF-STATION
L DBB 74 // TABELLEN-PLATZ-NR.
T "MW204-tmp"
CALL "DAT_LOES_FC153"
S_NR:="MW204-tmp"
CON5: NOP 0 // # AUSGABE BEFEHL UND MELDUNGEN
UN M 203.5
SPB CON4
UN #FRG // WARTEN BIS ANDERE ABWUERFE FERT.
SPB CON4 // (FERTIG-MELDUNG NUR 1 ABWURF)
S #DRCK // DRUCKEN STARTEN (1-MAL DRUCKEN)
S #SEND // SENDEN STARTEN (EINTRAG WS)
S #ENDE // SETZEN "ABWURF IST AKTIV"
S M 203.6 // DRUCKEN ABWARTEN
R M 203.5
CON4: NOP 0
U M 203.6 // 1. DRUCKEN GESTARTET
U #DNIO // TASTE: DRUCK NIO
UN "M202.6-tmp"
= "202.5-tmp" // Flanke Drucken Wiederholen
S "M202.6-tmp"
UN #DNIO
R "M202.6-tmp" // Flanke Druck wiederholen
U "202.5-tmp"
S #DRCK // DRUCK WIEDERHOLEN
U M 203.1 // ABWURF-STELLE FREIGABE
S "M 202.1-tmp" // ABWURF AKTIVIEREN
U M 203.5 // ABWURF BEENDET
R "M 202.1-tmp" // RESET ABWURF-FREIGABE
U M 203.2 // DATEN EINGELESEN
= #EIN // ABWURF-FREIGABE
CON0: NOP 0
U(
U M 203.0
O M 203.1
O M 203.2 // ABWURF ANGEWAEHLT/LAEUFT
)
UN M 203.3 // NICHT ABWURF NICHT KOMPLETT
UN M 203.4 // NICHT FERTIG
O
U M 203.4 // Abwurf nicht komplett
U "M 12.1" // Blinktakt
= #LPGE // LAMPE GELB
U M 203.3 // ABWURF KOMPLETT
UN M 203.6
O
U M 203.6 // Abwurf beendet
U M 12.0
= #LPGN // LAMPE GRUEN
 
Teil 2/FC132:

AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
L #DLVI // Visualiseirung Abwurf-Status
T "MB208-tmp"
U #LPGE
= "M208.1-tmp" // Anzeige gelb
U #LPGN
= "M208.2-tmp" // Anzeige gruen
L "MB208-tmp"
T #DLVI
ENDE: NOP 0
U "M 203.7-tmp"
R "M 203.7-tmp" // ABWURF-PROGRAMM ENDE
R #ENDE // RESET "FERTIG"
// DX-NR. ABWURF-STATION
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK
L #conv_akku1
AUF DB [#conv_index]
// *** DX-ABWURF-STATION
L "MW202_tmp" // # RUECKSCHREIBEN STEUER-MERKER
T DBW 4 // Steuerwort 1
UN "202.5-tmp" // Flanke Druck-Wiederholung
BEB
// *** Visualisierung Meldung
S DB101.DBX 259.1 // Meldung anstossen
// Etikett-Daten in Visualisierung
CALL "Fkt_CopyDB_I"
iInSourceDB :=232 // Drucker-DB
iInTargetDB :=101 // Visualisierung DB
iInSourceOffset:=6
iInTargetOffset:=280
iInLen :=28
oBoPAFE :=#tmp


Dieser Code wollte einfach nicht in die Code-Tags... sorry!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist das ein S5-Programm oder aus einer S5 konvertiert.
Ganz am Anfang des FC132 wird doch schon, abhängig von der Nummer des
Abwurfes ein DB geöffnet und daraus die Werte auf dein Merkerwort 202 kopiert
 
nutze doch bitte die Code Tags, wo Marlob und 4l dezent drauf hinweisen.
Dazu musst du nur über dem Editor das Symbol mit den kleinen "Lattenzaun"
drücken, zwischen den texten "CODE" mit den Eckigen klammern haust
du dann den "Code" rein, siehe auch die Forumshilfe.

Code:
L #NR // NR. DES ABWURFES
+ 287 // OFFSET FUER DB-Nr. (alt: 70 DX-NR.)
T "MW200_tmp" // DX-NR.
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK 
L #conv_akku1
AUF DB [#conv_index]
// *** DX ABWURF-STATION
L DBW 4 // STEUER-BITS Wort 1
T "MW202_tmp"
L 0
<>I // ABWURF AKTIV ?
SPB WEIT
U #STRT // TASTE EIN
S M 203.0 // SETZE START
S #WS_A // DATEN AUS WARTESCHLANGE AUSTRAG.
SPA END1
WEIT: NOP 0
U #WS_A // WS-AUSTRAG DATEN
SPB CN0 // WARTEN BIS DATEN AUSGETRAGEN
//; // (WICHTIG, WENN WS LEER !)
//; // (WS-A WIRD BEI WS-AUSTR.RESETET)
//; // (SIEHE FX79)
L #FELD // PLATZ-NR. AUF FOERDERER
T "MW230-tmp"
// # LESEN DATEN VON FOERDERER
CALL "DAT_DX61_OUT_2"
FELD:="MW230-tmp" // FELD-NR.
DW1 :="MW232-tmp" // HAKEN-NR.
DW2 :="MW234-tmp" // STATUS
DW3 :="MW236-tmp" // GEBINDE-VERWALTUNG
U M 203.0 // FREIGABE
S M 203.1 // START-HAKEN LESEN
R M 203.0
UN M 203.1
SPB CON1
S M 203.2 // SOLL-DATEN ERFASSEN
R M 203.1
R #SEND
L DBB 75 // IST-ANZAHL SAECKE Foerderer
T DBW 8 // SOLL-ANZAHL SAECKE Abwurf
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
T #SOLL
// DX-Nr
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK 
L #conv_akku1
AUF DB [#conv_index] // ***
// *** DX ABWURF-STATION
CON1: NOP 0 // # PRUEFEN "ABWURF KOMPLETT"
U #ABW // SACK-ABWURF LAEUFT
UN "M 202.2-tmp"
= "M202.3-tmp" // FLANKE "ABWURF LAEUFT"
S "M 202.2-tmp" // FLM
UN #ABW
R "M 202.2-tmp"
UN "M202.3-tmp" // FLANKE "ABWURF LAEUFT"
SPB CON2
L DBW 8 // ANZAHL SAECKE ABWERFEN
+ -1 // 1 SACK ABZIEHEN
T DBW 8 // REST-ANZAHL SAECKE
T "MW206-tmp"
L 0
==I 
S M 203.3 // SETZE "ABWURF KOMPLETT"
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
L #SOLL // Soll-Anzahl Saecke
L "MW206-tmp" // Rest-Anzahl Saecke
-I 
T #IST // Ist-Anzahl an Visualisierung
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK 
L #conv_akku1
AUF DB [#conv_index] // ***
// *** DX ABWURF-STATION
CON2: NOP 0 // # PRUEFEN AUF "LETZTEN HAKEN)
U "M202.4-tmp" // Haken-Nr. merken beim 1. Abwurf
SPB CN21
S "M202.4-tmp" // Haken-Nummer erfasst (Nr. -1)
L "MW232-tmp" // Haken-Nr. beim 1. Abwurf
T DBW 6 // Anfang-Haken-Nr. (Nr. -1)
L 0 // loeschen
T DBW 78 // Anzahl Haken Durchlaufen
SPA CN21
END1: SPA END2 // Sprunginsel
CN21: NOP 0
UN #TAKT // Haken-Takt
ON "M202.4-tmp" // Haken-Nr.erfasst/Anzahl resetet
SPB CN22
L DBW 78 // Anzahl Haken durchlaufen alt
+ 1 // erhoehen
T DBW 78 // Anzahl Haken durchlaufen - neu
CN22: NOP 0
U M 203.2 // Soll-Daten erfassen
U( 
L DBW 78 // Anzahl Haken-Durchlauf
L "ANZ_LAUF" // Soll-Anzahl Haken-Durchlauf
>=I 
) 
S M 203.4 // ALLE HAKEN DURCHLAUFEN
// (ABWURF NICHT KOMPLETT)
U M 203.3 // ABWURF KOMPLETT
ON M 203.4 // NICHT "ALLE HAKEN DURCHLAUFEN"
O "M 202.0" // bereits angestossen
SPB CON3
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung Meldungen
S "M 202.0"
S DB103.DBX 165.0 // VISU: Meldung Abwurf NIO
L #NR // Abwurf-Nr.: X
T "PC-DAT_IN_BI_VISU".D_ABW_NR // Eintrag VISU
L #SOLL // Soll-Anzahl Saecke
T "PC-DAT_IN_BI_VISU".D_ABW_S // Eintrag VISU
L #IST // Ist-Anzahl Saecke
T "PC-DAT_IN_BI_VISU".D_ABW_I
T #conv_akku1
L "MW200_tmp" // "MB201_tmp" // DX-Nr.
T #conv_index
TAK 
L #conv_akku1
AUF DB [#conv_index] // ***
// *** DX ABWURF-STATION
CON3: NOP 0 // # FEHLER: GEBINDE NICHT KOMPLETT
U M 203.3 // ABWURF KOMPLETT
O M 203.4 // ALLE HAKEN DURCHLAUFEN
UN M 203.6
S M 203.5 // DRUCKEN / SUMMENSATZ SENDEN
R M 203.2
SPA SPRG
CN0: SPA CON0
END2: SPA ENDE // Sprunginsel
SPRG: NOP 0
U M 203.6
U #DRIO // TASTE: DRUCK IO
S "M 203.7-tmp" // ENDE
UN "M 203.7-tmp"
SPB CON5
R M 203.3 // RESET ABWURF KOMPLETT
R M 203.4 // RESET ABWURF NICHT KOMPLETT
R M 203.5 // RESET DRUCKEN/SUMMENSATZ SENDEN
R M 203.6 // RESET ABWURF BEENDET
R "M202.4-tmp" // RESET Haken-Korrektur
R "M 202.0"
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
L 0 // Loeschen Anzahl Saecke
T #SOLL
T #IST
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK 
L #conv_akku1
AUF DB [#conv_index]
// *** DX ABWURF-STATION
L DBB 74 // TABELLEN-PLATZ-NR.
T "MW204-tmp"
CALL "DAT_LOES_FC153"
S_NR:="MW204-tmp"
CON5: NOP 0 // # AUSGABE BEFEHL UND MELDUNGEN
UN M 203.5
SPB CON4
UN #FRG // WARTEN BIS ANDERE ABWUERFE FERT.
SPB CON4 // (FERTIG-MELDUNG NUR 1 ABWURF)
S #DRCK // DRUCKEN STARTEN (1-MAL DRUCKEN)
S #SEND // SENDEN STARTEN (EINTRAG WS)
S #ENDE // SETZEN "ABWURF IST AKTIV"
S M 203.6 // DRUCKEN ABWARTEN
R M 203.5
CON4: NOP 0
U M 203.6 // 1. DRUCKEN GESTARTET
U #DNIO // TASTE: DRUCK NIO
UN "M202.6-tmp"
= "202.5-tmp" // Flanke Drucken Wiederholen
S "M202.6-tmp"
UN #DNIO
R "M202.6-tmp" // Flanke Druck wiederholen
U "202.5-tmp"
S #DRCK // DRUCK WIEDERHOLEN
U M 203.1 // ABWURF-STELLE FREIGABE
S "M 202.1-tmp" // ABWURF AKTIVIEREN
U M 203.5 // ABWURF BEENDET
R "M 202.1-tmp" // RESET ABWURF-FREIGABE
U M 203.2 // DATEN EINGELESEN
= #EIN // ABWURF-FREIGABE
CON0: NOP 0
U( 
U M 203.0
O M 203.1
O M 203.2 // ABWURF ANGEWAEHLT/LAEUFT
) 
UN M 203.3 // NICHT ABWURF NICHT KOMPLETT
UN M 203.4 // NICHT FERTIG
O 
U M 203.4 // Abwurf nicht komplett
U "M 12.1" // Blinktakt
= #LPGE // LAMPE GELB
U M 203.3 // ABWURF KOMPLETT
UN M 203.6
O 
U M 203.6 // Abwurf beendet
U M 12.0
= #LPGN // LAMPE GRUEN 
 
AUF "PC-DAT_IN_BI_VISU"
// *** Visualisierung
L #DLVI // Visualiseirung Abwurf-Status
T "MB208-tmp"
U #LPGE
= "M208.1-tmp" // Anzeige gelb
U #LPGN
= "M208.2-tmp" // Anzeige gruen
L "MB208-tmp"
T #DLVI
ENDE: NOP 0
U "M 203.7-tmp"
R "M 203.7-tmp" // ABWURF-PROGRAMM ENDE
R #ENDE // RESET "FERTIG"
// DX-NR. ABWURF-STATION
T #conv_akku1
L "MW200_tmp" // "MB201_tmp"
T #conv_index
TAK 
L #conv_akku1
AUF DB [#conv_index]
// *** DX-ABWURF-STATION
L "MW202_tmp" // # RUECKSCHREIBEN STEUER-MERKER
T DBW 4 // Steuerwort 1
UN "202.5-tmp" // Flanke Druck-Wiederholung
BEB 
// *** Visualisierung Meldung
S DB101.DBX 259.1 // Meldung anstossen
// Etikett-Daten in Visualisierung
CALL "Fkt_CopyDB_I"
iInSourceDB :=232 // Drucker-DB
iInTargetDB :=101 // Visualisierung DB
iInSourceOffset:=6
iInTargetOffset:=280
iInLen :=28
oBoPAFE :=#tmp
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo marlob und helmut,

ja das Programm wurde aus einer S5 konvertiert!

Ich wollte diese Code-Tags verwenden - allerdings war alles verschoben, also alle Kommentare z.B. nicht untereinander, usw.

Sorry!
 
...
Meine Frage:

Wenn ich nun z.B. auf den Abwurf mit der Nr. 5 Einfluss nehmen möchte, wie kann ich das machen? Alle Abwürfe "arbeiten" doch mit den gleichen Merkern - wie oben dargestellt. Wenn ich nun versuchen möchte, die Lampe #LPGE auf Status 1 zu steuern, wie kann ich das dann bewerkstelligen, da ja die entsprechenden Merker auch für die anderen Lampen der Abwurfstellen verwendet werden?

Vielen Dank!
wie schon gesagt, wird am Anfang des FC132 abhängig von deiner Abwurfstelle ein Datenbereich aus einem DB auf deine Merker kopiert.
Du kannst also die entsprechenden Bits in deinem DB manipulieren um was zu testen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mir jetzt mal die dargestellten Zeilen der FC132 genauer angeschaut:

Code:
AUF DB [#conv_index]
// *** DX ABWURF-STATION
L DBW 4 // STEUER-BITS Wort 1
T "MW202_tmp"
L 0
<>I // ABWURF AKTIV ?
SPB WEIT
U #STRT // TASTE EIN
S M 203.0 // SETZE START
S #WS_A // DATEN AUS WARTESCHLANGE AUSTRAG.
SPA END1
WEIT: NOP 0
U #WS_A // WS-AUSTRAG DATEN
SPB CN0 // WARTEN BIS DATEN AUSGETRAGEN

Dabei ist im Status-Beobachten-Betrieb zu sehen, dass zu der Sprungmarke WEIT gesprungen wird. Damit ist auch klar, dass sich die Abwurfstation nicht durch den Taster #STRT aktivieren lässt...

Meine Frage:

Ich sehe ja in der FC132 im Grunde genau den Fehlerfall. Alle anderen Abwurfstationen funktionieren aber doch einwandfrei - d.h. bei diesen dürfte ja der Sprung nicht ausgelöst werden - warum sehe ich die dann nicht im Beobachten-Status-Betrieb, sondern genau den Fehlerfall?
 
Zurück
Oben