-> Hier kostenlos registrieren
CP342-5 mit 2 Stoeber Umrichtern
Hallo,
ich habe ein Problem mit der CP342-5. Ich möchte 2 Stoeber Umrichter über die CP342-5 regeln.
Normalerweise greift man so auf die Stoeber Umrichter zu:
Über die E/A Adressen weiß ich aus welchen Umrichter ich die entsprechenden Daten auslese und speichere die Daten in DBs ab. Die DBs sind dabei größer als der E/A Bereich des jeweiligen Umrichters in der Hardware Config.
---
Wenn ich jedoch einen CP einsetzte dann kann ich ja nicht SFC14/15 verwenden, sonder muss FC1/2 verwenden. Hier trage ich aber immer die Adresse der CP an.
Ich versteh jetzt nicht wie ich die Daten aus den Umrichtern in meine DBs bekommen sollen. Der E/A Bereich der jeweiligen Umrichter ist 12 Bytes lang. Wenn ich zB.: P#A256.0 BYTE 12 schreibe, bekommen ich einen Bereichslängenfehler am jeweiligen FC.
Kann mir bitte mal jemand das Brett vor dem Kopf entfernen!?
Hallo,
ich habe ein Problem mit der CP342-5. Ich möchte 2 Stoeber Umrichter über die CP342-5 regeln.
Normalerweise greift man so auf die Stoeber Umrichter zu:
Code:
// --- Umrichter 1 ---
// Hardware Adresse Umrichter 1 => E/A=256 gleich Hex=100
CALL "DPWR_DAT"
LADDR :=W#16#100
RECORD :=P#DB65.DBX0.0 BYTE 20 //Stoeber DB65 für Umrichter 1
RET_VAL:=#write_ret
CALL "DPRD_DAT"
// Hardware Adresse Umrichter 1 => E/A=256 gleich Hex=100
LADDR :=W#16#100
RET_VAL:=#read_ret
RECORD :=P#DB65.DBX20.0 BYTE 20 //Stoeber DB65 für Umrichter 1
// --- Umrichter 2 ---
// Hardware Adresse Umrichter 2 => E/A=276 gleich Hex=114
CALL "DPWR_DAT"
LADDR :=W#16#114
RECORD :=P#DB66.DBX0.0 BYTE 20 //Stoeber DB66 für Umrichter 2
RET_VAL:=#write_ret
CALL "DPRD_DAT"
// Hardware Adresse Umrichter 2 => E/A=276 gleich Hex=114
LADDR :=W#16#114
RET_VAL:=#read_ret
RECORD :=P#DB66.DBX20.0 BYTE 20 //Stoeber DB66 für Umrichter 2
Über die E/A Adressen weiß ich aus welchen Umrichter ich die entsprechenden Daten auslese und speichere die Daten in DBs ab. Die DBs sind dabei größer als der E/A Bereich des jeweiligen Umrichters in der Hardware Config.
---
Wenn ich jedoch einen CP einsetzte dann kann ich ja nicht SFC14/15 verwenden, sonder muss FC1/2 verwenden. Hier trage ich aber immer die Adresse der CP an.
Code:
// Hardware Adresse von CP342-5 => E/A=100 gleich Hex=64
CALL "DP_RECV"
CPLADDR :=W#16#64
RECV :=P# [COLOR=#ff0000]?????[/COLOR]
NDR :=#NDR
ERROR :=#ERROR
STATUS :=#STATUS
DPSTATUS:=#DBSTATUS
NOP 0
// Hardware Adresse von CP342-5 => E/A=100 gleich Hex=64
CALL "DP_SEND"
CPLADDR:=W#16#64
SEND :=P# [COLOR=#ff0000]?????[/COLOR]
DONE :=#send_done
ERROR :=#send_error
STATUS :=#send_status
Ich versteh jetzt nicht wie ich die Daten aus den Umrichtern in meine DBs bekommen sollen. Der E/A Bereich der jeweiligen Umrichter ist 12 Bytes lang. Wenn ich zB.: P#A256.0 BYTE 12 schreibe, bekommen ich einen Bereichslängenfehler am jeweiligen FC.
Kann mir bitte mal jemand das Brett vor dem Kopf entfernen!?
Zuletzt bearbeitet: