ChristianVogel
Level-2
- Beiträge
- 473
- Reaktionspunkte
- 69
-> Hier kostenlos registrieren
Hallo zusammen,
kleines Problem, bei dem ich scheitere: Thema Elektromobilität, Ladesäule, Ladegerät => Ich habe die Aufgabe aus Ladegeräten, per Modbus TCP, Daten auszulesen. Die Ladegeräte sind modular aufgebaut, daher mein „Wunsch“ nach einem einigermaßen flexiblen FB-Baustein, der je nach „Eingangsbeschaltung“ seine Funktionen ausführt.
Modulares Ladegerät heißt: Es gibt EIN Ladegerät, was mit bis zu VIER Ladeports ausgebaut werden kann, d.h. EIN Ladegerät hat EINE IP-Adresse, die Datenlängen variiert je nach Ausbaustufe. Die Register sind bei Ladeport 1 bis 4 identisch, sie sind eben vorhanden, wenn das Modul gesteckt ist, nicht vorhanden, wenn das Modul fehlt.
Die Register sind Holding-Register,
Ladeport 1, Register 1000…1100, ich lese also aus 41000, LEN=111
Ladeport 2, Register 2000…2100, ich lese also aus 42000, LEN=111
Ladeport 3, Register 3000…3100, ich lese also aus 43000, LEN=111
Ladeport 4, Register 4000…4100, ich lese also aus 44000, LEN=111
Mein Gedanke und jetziger Stand ist der: Ich brauche von diesen 111 WORD pro Ladeport nur je 16 WORD, da ich aber keine Lust habe alles zusammenzustückeln, hätte ich gerne diese 111 WORD auf einen Schwung ausgelesen, in einem „ARRAY of WORD“ abgelegt und mir die erforderlichen Daten rausgezogen und verarbeitet.
Bei einem Ladegerät mit einem Port lese ich mit einem MB-Client die Register 41000 aus, den Rest nicht,
Bei einem Ladegerät mit zwei Ports lese ich mit einem MB-Client die Register 41000 aus, dann die 42000, den Rest nicht,
usw.
So habe ich den Kopf deklariert:

Die REQ-Ansteuerung übernimmt eine kleine Schrittkette, die von 1-5 durchzählt...




so... wie ihr sehen könnt, bekomme ich beim ersten Baustein den Status 16#7004, da wurde also eine Verbindung aufgebaut, die restlichen Bausteine liefern mit 16#80A3 als Status, was auf ein Verbindungsproblem hindeutet. Aber dieses Ladegerät hat alle 4 Slots bestückt und diese funktionieren auch.
Wo habe ich hier einen Denkfehler/Programmfehler?
Info: Ich habe ja hier alle MB-Clients mit dem selben "TCON_IP_V4" im Kopf beschaltet, das ist doch alles die gleich Verbindung, oder? oder brauche ich hier ebenfalls für jeden Aufruf eine seperate Beschreibung? Bisher hätte ich gerne die Beschreibung der IP-Adresse über die Bausteinanschlüsse definiert...

Jemand eine Idee???
gleich noch ein paar konkrete Fragen zum Baustein selbst:
- Sollte der Status nicht verschwinden, wenn der Baustein ein neues REQ bekommt?
- Sollten die Ausgänge, zumindest DONE und ERROR beim neuen Start ebenfalls kurz den Status "False"
annehmen, damit ich mit einer Flanke einen neuen Status erkennen und melden kann?
(wäre für die Weiterschaltung der Schrittkette wichtig...)
Habe grade das TIA18 in Verwendung, PLC ist eine ET200SP CPU1510.
bin ich mal gespannt was ich hier verbockt habe...
Soweit vielen Dank,
Gruß Christian
kleines Problem, bei dem ich scheitere: Thema Elektromobilität, Ladesäule, Ladegerät => Ich habe die Aufgabe aus Ladegeräten, per Modbus TCP, Daten auszulesen. Die Ladegeräte sind modular aufgebaut, daher mein „Wunsch“ nach einem einigermaßen flexiblen FB-Baustein, der je nach „Eingangsbeschaltung“ seine Funktionen ausführt.
Modulares Ladegerät heißt: Es gibt EIN Ladegerät, was mit bis zu VIER Ladeports ausgebaut werden kann, d.h. EIN Ladegerät hat EINE IP-Adresse, die Datenlängen variiert je nach Ausbaustufe. Die Register sind bei Ladeport 1 bis 4 identisch, sie sind eben vorhanden, wenn das Modul gesteckt ist, nicht vorhanden, wenn das Modul fehlt.
Die Register sind Holding-Register,
Ladeport 1, Register 1000…1100, ich lese also aus 41000, LEN=111
Ladeport 2, Register 2000…2100, ich lese also aus 42000, LEN=111
Ladeport 3, Register 3000…3100, ich lese also aus 43000, LEN=111
Ladeport 4, Register 4000…4100, ich lese also aus 44000, LEN=111
Mein Gedanke und jetziger Stand ist der: Ich brauche von diesen 111 WORD pro Ladeport nur je 16 WORD, da ich aber keine Lust habe alles zusammenzustückeln, hätte ich gerne diese 111 WORD auf einen Schwung ausgelesen, in einem „ARRAY of WORD“ abgelegt und mir die erforderlichen Daten rausgezogen und verarbeitet.
Bei einem Ladegerät mit einem Port lese ich mit einem MB-Client die Register 41000 aus, den Rest nicht,
Bei einem Ladegerät mit zwei Ports lese ich mit einem MB-Client die Register 41000 aus, dann die 42000, den Rest nicht,
usw.
So habe ich den Kopf deklariert:

Die REQ-Ansteuerung übernimmt eine kleine Schrittkette, die von 1-5 durchzählt...




so... wie ihr sehen könnt, bekomme ich beim ersten Baustein den Status 16#7004, da wurde also eine Verbindung aufgebaut, die restlichen Bausteine liefern mit 16#80A3 als Status, was auf ein Verbindungsproblem hindeutet. Aber dieses Ladegerät hat alle 4 Slots bestückt und diese funktionieren auch.
Wo habe ich hier einen Denkfehler/Programmfehler?
Info: Ich habe ja hier alle MB-Clients mit dem selben "TCON_IP_V4" im Kopf beschaltet, das ist doch alles die gleich Verbindung, oder? oder brauche ich hier ebenfalls für jeden Aufruf eine seperate Beschreibung? Bisher hätte ich gerne die Beschreibung der IP-Adresse über die Bausteinanschlüsse definiert...

Jemand eine Idee???
gleich noch ein paar konkrete Fragen zum Baustein selbst:
- Sollte der Status nicht verschwinden, wenn der Baustein ein neues REQ bekommt?
- Sollten die Ausgänge, zumindest DONE und ERROR beim neuen Start ebenfalls kurz den Status "False"
annehmen, damit ich mit einer Flanke einen neuen Status erkennen und melden kann?
(wäre für die Weiterschaltung der Schrittkette wichtig...)
Habe grade das TIA18 in Verwendung, PLC ist eine ET200SP CPU1510.
bin ich mal gespannt was ich hier verbockt habe...
Soweit vielen Dank,
Gruß Christian
