-> Hier kostenlos registrieren
Hallo zusammen,
Nachdem ich erfolgreich meine S5 zum Laufen bekommen habe, hänge ich an der Kommunikation mit der S7
Verbindung:
Auf der CP524 hab ich ein TTY-Modul Stecken und benutze zur S7 folgendes Kabel:
Screenshot: Kabelbelegung
Entnommen habe ich die Belegung aus dem CP341 Handbuch.
S5 Konfig:
Auf der S5 Seite habe ich aufs EPROM des CP524 die ".525" Datei gebrannt. Eingestellt ist RK mit Prozedur 3964R.
Screenshot: Step5 Einstellungen
Außerdem ist ein SEND Auftrag auf die Auftragsnummer 1 programmiert.
Die DIP Schalter für die Koppelmerker sind alle auf TRUE und die DIP Schalter für die Schnittstellennummer sind alle auf FALSE.
In meinem Programm habe ich meine SEND und RECEIVE Bausteine wie folgt beschaltet:
S7 Konfig:
Im Step7 habe ich ähnliche Einstellungen vorgenommen:
Screenshot: Step7 Einstellungen
Verwendet habe ich das Beispielprogramm, welches auf der CD mitgeliefert wurde, um die Kommunikation zu testen:
Fehlerbeschreibung:
Auf der S5 ist die CPU erfolgreich auf RUN und der die Fehler LEDs des CP524 IF1 und IF2 leuchten nicht.
Der CP341 der S7 meldet auch keine Fehler.
So wie das Programm im Step7 ist, blinken die RxD und TxD LED am CP341. Ich kann auch im Step7 Daten im DB ändern und die werden im Step5 gleich richtig übernommen. Aber andersrum funktioniert das leider nicht. Ich empfange im Step7 nur "0". Status/Zustand ist aber OK und habe auch keine Fehlermeldung. Hab mal um das Empfangen aus der S5 zu testen das Senden im Step7 auskommentiert, dann leuchten die RxD und TxD LEDs auch nicht mehr
Hoff jemand hat eine Idee wie ich von der S5 Senden und in der S7 empfangen kann
Nachdem ich erfolgreich meine S5 zum Laufen bekommen habe, hänge ich an der Kommunikation mit der S7
Verbindung:
Auf der CP524 hab ich ein TTY-Modul Stecken und benutze zur S7 folgendes Kabel:
Screenshot: Kabelbelegung
Entnommen habe ich die Belegung aus dem CP341 Handbuch.
S5 Konfig:
Auf der S5 Seite habe ich aufs EPROM des CP524 die ".525" Datei gebrannt. Eingestellt ist RK mit Prozedur 3964R.
Screenshot: Step5 Einstellungen
Außerdem ist ein SEND Auftrag auf die Auftragsnummer 1 programmiert.
Die DIP Schalter für die Koppelmerker sind alle auf TRUE und die DIP Schalter für die Schnittstellennummer sind alle auf FALSE.
In meinem Programm habe ich meine SEND und RECEIVE Bausteine wie folgt beschaltet:
Code:
Netzwerk 4
:SPA FB 244
NAME: SEND
SSNR: KY 0,0
A-NR: KY 0,1
ANZW: MW200
QTYP: KC DB
DBNR: KY 0,203
QANF: KF +1
QLAE: KF +10
PAFE: MB 200
: ***
S7 Konfig:
Im Step7 habe ich ähnliche Einstellungen vorgenommen:
Screenshot: Step7 Einstellungen
Verwendet habe ich das Beispielprogramm, welches auf der CD mitgeliefert wurde, um die Kommunikation zu testen:
Code:
Netzwerk 1: Empfangen
EMPFANGEN:
L 256 //LADDR
T "SEND WORK DB".P_SND_RK_WORK_LADDR
L 204 //DB_NO
T "SEND WORK DB".P_SND_RK_WORK_DB_NO
L 0 //DBB_NO
T "SEND WORK DB".P_SND_RK_WORK_DBB_NO
L 56
T "SEND WORK DB".P_SND_RK_WORK_LEN //LEN
// ------------------------
// SEND with Instance-DB
// ------------------------
CALL "P_SND_RK" , "SEND IDB"
SF :='S'
REQ :="SEND WORK DB".P_SND_RK_REQ
R :="SEND WORK DB".P_SND_RK_R
LADDR :="SEND WORK DB".P_SND_RK_WORK_LADDR
DB_NO :="SEND WORK DB".P_SND_RK_WORK_DB_NO
DBB_NO :="SEND WORK DB".P_SND_RK_WORK_DBB_NO
LEN :="SEND WORK DB".P_SND_RK_WORK_LEN
R_CPU_NO:=1
R_TYP :='D'
R_NO :=204
R_OFFSET:=0
R_CF_BYT:=255
R_CF_BIT:=
DONE :="SEND WORK DB".P_SND_RK_DONE
ERROR :="SEND WORK DB".P_SND_RK_ERROR
STATUS :="SEND WORK DB".P_SND_RK_WORK_STATUS
// ------------------------
// Generate edge P_SND_RK_REQ
// ------------------------
UN "SEND WORK DB".P_SND_RK_REQ //P_SND_RK_REQ
S "SEND WORK DB".P_SND_RK_REQ //set P_SND_RK_REQ
O "SEND WORK DB".P_SND_RK_DONE //P_SND_RK_DONE
O "SEND WORK DB".P_SND_RK_ERROR //P_SND_RK_ERROR
R "SEND WORK DB".P_SND_RK_REQ //P_SND_RK_REQ
// -------------------------------
// Check "Complete without error"
// -------------------------------
UN "SEND WORK DB".P_SND_RK_DONE //check P_SND_RK_DONE
SPB CHER //if P_SND_RK_DONE equals 0, jump to CHER
//and check P_SND_RK_ERROR
// -------------------------------
// "Complete without error"
// P_SND_RK_DONE = 1
// -------------------------------
L "SEND WORK DB".P_SND_RK_COUNTER_OK //"Complete without Error"
+ 1 //increment counter
T "SEND WORK DB".P_SND_RK_COUNTER_OK
NOP 0
NOP 0 //further user functions
NOP 0
BE
// -------------------------------
// Check "Complete with error"
// P_SND_RK_ERROR = 1
// -------------------------------
CHER: UN "SEND WORK DB".P_SND_RK_ERROR //check P_SND_RK_ERROR
BEB //if no error occured, jump to end
// -------------------------------
// "Complete with error"
// -------------------------------
L "SEND WORK DB".P_SND_RK_COUNTER_ERR //"Complete with error"
+ 1 //increment counter
T "SEND WORK DB".P_SND_RK_COUNTER_ERR
L "SEND WORK DB".P_SND_RK_WORK_STATUS
T "SEND WORK DB".P_SND_RK_WORK_STATUS_SAV //save STATUS
NOP 0
NOP 0 //Error-Handling
NOP 0
BE
Netzwerk 2: Senden
SENDEN:
L 256 //LADDR
T "RCV WORK DB".P_RCV_RK_WORK_LADDR
L 203 //DB_NO
T "RCV WORK DB".P_RCV_RK_WORK_DB_NO
L 0 //DBB_NO
T "RCV WORK DB".P_RCV_RK_WORK_DBB_NO
// ------------------------
// Enable Receive Data
// ------------------------
SET
= "RCV WORK DB".P_RCV_RK_EN_R //P_RCV_RK with P_RCV_RK_EN_R=TRUE
// ------------------------
// P_RCV_RK with Instance-DB
// ------------------------
CALL "P_RCV_RK" , "RECV IDB"
EN_R :="RCV WORK DB".P_RCV_RK_EN_R
R :=
LADDR :="RCV WORK DB".P_RCV_RK_WORK_LADDR
DB_NO :="RCV WORK DB".P_RCV_RK_WORK_DB_NO
DBB_NO :="RCV WORK DB".P_RCV_RK_WORK_DBB_NO
L_TYP :=MB550
L_NO :=MW552
L_OFFSET:=MW554
L_CF_BYT:=MW556
L_CF_BIT:=MW558
NDR :="RCV WORK DB".P_RCV_RK_NDR
ERROR :="RCV WORK DB".P_RCV_RK_ERROR
LEN :="RCV WORK DB".P_RCV_RK_WORK_LEN
STATUS :="RCV WORK DB".P_RCV_RK_WORK_STATUS
// -------------------------------
// Check P_RCV_RK_NDR (Receive without error)
// -------------------------------
UN "RCV WORK DB".P_RCV_RK_NDR //check P_RCV_RK_NDR
SPB CHER //if P_RCV_RK_NDR equals FALSE, jump to CHER
//and check P_RCV_RK_ERROR
// -------------------------------
// P_RCV_RK_NDR = 1 (Receive without error)
// -------------------------------
L "RCV WORK DB".P_RCV_RK_WORK_CNT_OK //"Receive without error"
+ 1 //increment counter
T "RCV WORK DB".P_RCV_RK_WORK_CNT_OK
L "RCV WORK DB".P_RCV_RK_WORK_LEN //save RECEIVE-Length
T "RCV WORK DB".P_RCV_RK_WORK_SAVE_LEN
BE
// -------------------------------
// Check "Receive with error"
// -------------------------------
CHER: UN "RCV WORK DB".P_RCV_RK_ERROR //check P_RCV_RK_ERROR
BEB //if no error occured, jump to end
// -------------------------------
// "Receive with error"
// -------------------------------
L "RCV WORK DB".P_RCV_RK_WORK_CNT_ERR //Error
+ 1 //increment counter
T "RCV WORK DB".P_RCV_RK_WORK_CNT_ERR
// ----------------------------
// Save "P_RCV_RK_STATUS"
// ----------------------------
L "RCV WORK DB".P_RCV_RK_WORK_STATUS
T "RCV WORK DB".P_RCV_RK_WORK_STATUS_SAV //save P_RCV_RK_STATUS
BE
Fehlerbeschreibung:
Auf der S5 ist die CPU erfolgreich auf RUN und der die Fehler LEDs des CP524 IF1 und IF2 leuchten nicht.
Der CP341 der S7 meldet auch keine Fehler.
So wie das Programm im Step7 ist, blinken die RxD und TxD LED am CP341. Ich kann auch im Step7 Daten im DB ändern und die werden im Step5 gleich richtig übernommen. Aber andersrum funktioniert das leider nicht. Ich empfange im Step7 nur "0". Status/Zustand ist aber OK und habe auch keine Fehlermeldung. Hab mal um das Empfangen aus der S5 zu testen das Senden im Step7 auskommentiert, dann leuchten die RxD und TxD LEDs auch nicht mehr
Hoff jemand hat eine Idee wie ich von der S5 Senden und in der S7 empfangen kann
