-> Hier kostenlos registrieren
Sehr geehrte helfende Fachleute,
ich wollte folgende Aufgabe lösen:
- 1 Öffner ( "Stopp" ) ( DI )
- 1 Schließer ( "Start" ) ( DI )
- 1 LED ( Start- Taster beleuchtet ) => Meldung "ist gestartet" ( DO )
_______________________________________________________________
Das ganze Progi bekomme ich nicht zu mir nach Hause... deswegen habe ich mal versucht, das Progi nachzubilden !
Ich hab' mir extra einen DB1 gebastelt, um eben KEINE Merker- Bereiche zu überschreiben...
DI- bzw. DO- Adresse 0 ... 80 sind auf der 4xx- CPU.
Diese Adressen werden von / auf Peripherie geladen / transferiert.
DI- bzw. DO- Adresse 108 ist auf einer ET200 über Profibus angebunden.
Meine Änderungen ( die der 4xxCPU für die "rote" LED gereicht haben ):
- E2.3 ( Öffner = Taster )
- E2.4 ( Schließer = Taster )
- A0.6 ( LED für die Meldung )
Nachdem ich diese ( ich fand bis vor wenigen Stunden... es wäre eine einfache Aufgabe ! ) Änderung auf die Maschine übertragen hatte, konnte ich die Maschine mit "meinem" <neuen> Taster noch starten... und die Maschine
fing auch an, zu arbeiten !
Theoretisch hätte die LED am A0.6 leuchten müssen... so wie die LED am A108.3 ( die hat definitiv geleuchtet ! ) <<< das funktionierte schon mal nicht, auch der A0.6 wurde nicht gesetzt !
<<< Verdrahtungsfehler kann ich ausschließen ( z.b. + und - an der LED verwechselt, das hatte ich im Voraus schon geprüft )
>>> Danach ( ca. 1/2 min später) [ !!! ]
... die Vormaterial-Maschine führte noch das nächste Vormaterial zu...
, fuhr wieder in die Aufnahme- Position und begann, das nächste Vormaterial zu greifen...
Die Weiterverarbeitungs- Maschine starb mit dem 3. Schritt....
In der Diagnose (CPU) stand:
- "Unerlaubter Aufruf"
- "Fehler in FC 192"
_______________________________________________________________
Meine Fragen:
- welchen Sinn macht es, DI- Word od. DWord AUF ein PEW bzw. PED zu schreiben ???
Mir ist klar, daß diese Aussage heute niemand teilen kann... weil sie in meinem gelieferten Code nicht existiert.
Die Simu "frißt" einen Transfer auf ein PEW nicht.
Ich weiß aber, daß ich genau DAS heute gesehen habe.
Kann mir vielleicht schon jetzt jemand sagen, warum die CPU in "Stop" ging ?
Ich habe nix gemacht... Ich bin nicht schuld !
oder doch ????
Mfg
ich wollte folgende Aufgabe lösen:
- 1 Öffner ( "Stopp" ) ( DI )
- 1 Schließer ( "Start" ) ( DI )
- 1 LED ( Start- Taster beleuchtet ) => Meldung "ist gestartet" ( DO )
_______________________________________________________________
Das ganze Progi bekomme ich nicht zu mir nach Hause... deswegen habe ich mal versucht, das Progi nachzubilden !
Code:
DATA_BLOCK DB 1
TITLE =
STRUCT
M_Stop : BOOL ; //Merker für "Masch_Stopp"
M_Start : BOOL ; //Merker für "Masch_Start"
END_STRUCT ;
BEGIN
M_Stop := TRUE;
M_Start := FALSE;
END_DATA_BLOCK
FUNCTION FC 192 : VOID
TITLE =
BEGIN
NETWORK
TITLE =Ausgang setzen
U DB1.DBX 0.1;
U DB1.DBX 0.0;
U( ;
U( ;
O A 0.6;
O A 108.3;
) ;
NOT ;
) ;
S M 0.0;
U( ;
ON DB1.DBX 0.0;
ON M 0.1;
) ;
R M 0.0;
U M 0.0;
= A 0.6;
= A 108.3;
END_FUNCTION
FUNCTION_BLOCK FB 10
TITLE =
VAR
D_0 : DWORD ; //ED 0 sichern
D_1 : DWORD ; //ED 4 sichern
D_2 : DWORD ; //ED 8 sichern
D_3 : DWORD ; //AD 0 sichern
D_4 : DWORD ; //AD 4 sichern
D_5 : DWORD ; //AD 8 sichern
END_VAR
BEGIN
NETWORK
TITLE =
// Eingangs- Peripherie lesen
L PED 0;
T ED 0;
//
L PED 4;
T ED 4;
//
L PED 8;
T ED 8;
//
//
//
// ********************************* PROCEDURE begin **************************************************************
// ** Jetzt kommt natürlich die ganze Mimik, die ein Programm tuen muß, um ein Programm sein zu dürfen **
// ********************************** PROCEDURE end ****************************************************************
//
//
// Ausgangs- Peripherie schreiben
L AD 0;
T PAD 0;
//
L AD 4;
T PAD 4;
//
L AD 8;
T PAD 8;
//
CALL FC 192 ;
END_FUNCTION_BLOCK
DATA_BLOCK DB 10
TITLE =
FB 10
BEGIN
D_0 := DW#16#0;
D_1 := DW#16#0;
D_2 := DW#16#0;
D_3 := DW#16#0;
D_4 := DW#16#0;
D_5 := DW#16#0;
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
//
VAR_TEMP
OB1_EV_CLASS : BYTE ;
OB1_SCAN_1 : BYTE ;
OB1_PRIORITY : BYTE ;
OB1_OB_NUMBR : BYTE ;
OB1_RESERVED_1 : BYTE ;
OB1_RESERVED_2 : BYTE ;
OB1_PREV_CYCLE : INT ;
OB1_MIN_CYCLE : INT ;
OB1_MAX_CYCLE : INT ;
OB1_DATE_TIME : DATE_AND_TIME ;
END_VAR
BEGIN
NETWORK
TITLE =
CALL FB 10 , DB 10 ;
NOP 0;
NETWORK
TITLE ="Stopp" setzen
U E 108.3;
U E 2.3;
= DB1.DBX 0.0;
NETWORK
TITLE ="Start" setzen
O E 108.2;
O E 2.4;
= DB1.DBX 0.1;
END_ORGANIZATION_BLOCK
Ich hab' mir extra einen DB1 gebastelt, um eben KEINE Merker- Bereiche zu überschreiben...
DI- bzw. DO- Adresse 0 ... 80 sind auf der 4xx- CPU.
Diese Adressen werden von / auf Peripherie geladen / transferiert.
DI- bzw. DO- Adresse 108 ist auf einer ET200 über Profibus angebunden.
Meine Änderungen ( die der 4xxCPU für die "rote" LED gereicht haben ):
- E2.3 ( Öffner = Taster )
- E2.4 ( Schließer = Taster )
- A0.6 ( LED für die Meldung )
Nachdem ich diese ( ich fand bis vor wenigen Stunden... es wäre eine einfache Aufgabe ! ) Änderung auf die Maschine übertragen hatte, konnte ich die Maschine mit "meinem" <neuen> Taster noch starten... und die Maschine
fing auch an, zu arbeiten !
Theoretisch hätte die LED am A0.6 leuchten müssen... so wie die LED am A108.3 ( die hat definitiv geleuchtet ! ) <<< das funktionierte schon mal nicht, auch der A0.6 wurde nicht gesetzt !
<<< Verdrahtungsfehler kann ich ausschließen ( z.b. + und - an der LED verwechselt, das hatte ich im Voraus schon geprüft )
>>> Danach ( ca. 1/2 min später) [ !!! ]
... die Vormaterial-Maschine führte noch das nächste Vormaterial zu...
, fuhr wieder in die Aufnahme- Position und begann, das nächste Vormaterial zu greifen...
Die Weiterverarbeitungs- Maschine starb mit dem 3. Schritt....
In der Diagnose (CPU) stand:
- "Unerlaubter Aufruf"
- "Fehler in FC 192"
_______________________________________________________________
Meine Fragen:
- welchen Sinn macht es, DI- Word od. DWord AUF ein PEW bzw. PED zu schreiben ???
Mir ist klar, daß diese Aussage heute niemand teilen kann... weil sie in meinem gelieferten Code nicht existiert.
Die Simu "frißt" einen Transfer auf ein PEW nicht.
Ich weiß aber, daß ich genau DAS heute gesehen habe.
Kann mir vielleicht schon jetzt jemand sagen, warum die CPU in "Stop" ging ?


Mfg