CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Sa Dez 14, 2019 8:23 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1 2 Nächste
Autor Nachricht
BeitragVerfasst: Di Okt 23, 2018 11:16 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Hallo,
wir haben mehrer EtherCat Slaves, welche bspw. Aus digitalen IOS bestehen.
Nun möchten wir gerne nicht immer eine Variable direkt auf der Harfware verknüpfen,
Sondern ganz gerne unserer Maschine die EtherCat Slaves übergeben.
Nachdem dies passiert ist würden wir gerne über den Slave auf dessen Prozessdate. Zugreifen können.
Geht dies irgendwie über diverse Wege?

Danke für eure Antworten


Nach oben
   
BeitragVerfasst: Do Okt 25, 2018 11:32 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Hat niemand eine Idee?


Nach oben
   
BeitragVerfasst: Do Okt 25, 2018 11:39 am 
Offline
Site Admin
Benutzeravatar

Registriert: Mo Jan 31, 2005 9:48 am
Beiträge: 234
Wohnort: Kempten - Germany
Vielleicht verstehe ich die Anforderung nicht ganz. Aber hast Du schon mal versucht über die Adressen der Daten zuzugreifen? Also z.B. per %QW3 oder %IX0.5... Allerdings ist das nicht gerade ein schicker Weg...
Löst das Deine Anforderung?

_________________
Roland Wagner
Moderator


Nach oben
   
BeitragVerfasst: Do Okt 25, 2018 11:47 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Hallo,
nein genau weil das eine absolute Adressierung wäre möchte ich dies nicht tun.
Also die Anforderung bzw. mein Vorhaben ist folgendes:
Ich habe Hardwaremäßig einen EtherCAT Slave mit sagen wir 16 Digitalen Eingängen. (Name DI16
Bis dato haben wir es immer so gemacht, dass wir global Daten deklariert haben (ARRAY[0..15] OF BOOL) und dieses dann an den Funktionsblock der Maschine übergeben haben.
Code:
Maschineninstanz(Inputs:= Globalarray);

Ich möchte nun lediglich den EtherCAT Slave an die Maschine übergeben und in dem FB der Maschine auf die "Prozessdaten" dieses Slaves zugriefen können. (Was ja in diesem fall einfach 16 mal ein BOOL wäre).
Code:
Maschineninstanz(Inputs:= DI16);


Die Frage ist nun wie komme ich über den EtherCAT Slave an die Prozessdaten ran.


Nach oben
   
BeitragVerfasst: Do Okt 25, 2018 12:33 pm 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Ich hoffe ich konnte es verständlich darstellen :-)


Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 7:06 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Wirklich niemand eine Idee?


Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 8:48 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3570
Hi,
mein FAQ sagt folgendes:

This is how it could be accessed.

pInput : pointer to byte;
pOutput : pointer to byte;
pInput := pSlave^.InputData ;
pOutput := pSlave^.OutputData;
 
Important: Any byte swapping for big endian processors are not done as the raw data are accessed. Therefore it shall be done in the application code.

Sprich schon auch mit Vorsicht zu genießen das ganz, man muss genau wissen was man tut...
Denke die Info wie man durch die Slaves durch itteriert findest du in er online Hilfe help.codesys.com

Warum brauchst du das?
Vielleicht gibt es noch ne geschicktere Alternative.
Grüße
Edwin


Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 9:35 am 
Offline

Registriert: Mo Nov 03, 2014 6:15 am
Beiträge: 48
Hi OOP!

Wenn ich es richtig verstehe, suchst du eine Möglichkeit, aus dem IEC-Code auf das Prozessabbild eines Slaves zuzugreifen, und zwar so, wie es in der Gerätekonfiguration vorgegeben wird. Also z.B. wenn das Abbild so aussieht:
Dateianhang:
xx.png
xx.png [ 34.49 KiB | 11891 mal betrachtet ]


dann möchtest du im Code zugreifen
Code:
uiInterne_Variable:= Slave.MC6_to_PLC_0;


oder so ähnlich. Ist das korrekt?

Wenn ja, dann habe ich seit Jahren den gleichen Wunsch, und ich habe auch noch keine gute Lösung gefunden :cry:
Was Edwin vorschlägt, funktioniert im Prinzip, aber dann muss man genau wissen, welcher Slave welche Daten in welcher Reihenfolge und mit welchem Datentyp schickt (du musst die einzelnen Bytes auf deine internen Variablen umkopieren....).
Ich bin mir auch nicht ganz sicher, wie das mit modularen Slaves funktioniert (wie z.B. modulare E/A-Baugruppen, in denen Ein- und Ausgänge gemischt werden können) oder mit Slaves, die FSOE-Daten beinhalten....

Falls es irgendwann eine praktikable Lösung geben sollte, hoffe ich, dass der Erfinder derselben uns alle teilhaben lässt! :wink:

Viel Erfolg noch!

Alfred


Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 10:17 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Ja das habe ich vor. Ich dachte es gibt vielleicht ein verstecktes Interface, welches mir dann auch die entsprechenden Datentypen, bzw. gemappten Adressen liefert.

Der Vorschlag von Edwin funktioniert bei mir nicht, ich bekomme den Fehler, dass InputData und OutputData keine Komponenten von ETCSlave sind.

Gruß


Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 3:13 pm 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Edwin Schwellinger hat geschrieben:
Hi,
mein FAQ sagt folgendes:

This is how it could be accessed.

pInput : pointer to byte;
pOutput : pointer to byte;
pInput := pSlave^.InputData ;
pOutput := pSlave^.OutputData;
 
Important: Any byte swapping for big endian processors are not done as the raw data are accessed. Therefore it shall be done in the application code.

Sprich schon auch mit Vorsicht zu genießen das ganz, man muss genau wissen was man tut...
Denke die Info wie man durch die Slaves durch itteriert findest du in er online Hilfe help.codesys.com

Warum brauchst du das?
Vielleicht gibt es noch ne geschicktere Alternative.
Grüße
Edwin


Also diese Variablen nimmt er bei mir nicht an.


Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 6:43 pm 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3570
so:


Dateianhänge:
ETCSlave.png
ETCSlave.png [ 40.42 KiB | 11870 mal betrachtet ]
Nach oben
   
BeitragVerfasst: Di Okt 30, 2018 7:54 pm 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Edwin Schwellinger hat geschrieben:
so:

Leider bekomme ich dort wie gesagt eine Fehlermeldung.
Weder InputData noch OutputData seien Komponenten von
Einem EtherCat Slave.
Benötigt man noch einen bestimmte EtherCat Library Version?


Dateianhänge:
error.jpg
error.jpg [ 27.27 KiB | 11861 mal betrachtet ]
Nach oben
   
BeitragVerfasst: Mi Okt 31, 2018 6:16 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Also es wäre natürlich schon mal gut, wenn das irgendwie so wie Edwin es beschrieben hat funktionieren würde.
Noch schöner wäre es, wenn man auch Zugriff auf die gemappten Adressen und Typen hätte. (Siehe Screenshot)

Was ist denn mit der Property Connector? kommt man dadurch irgendwie an die Parameter?


Dateianhänge:
expert.jpg
expert.jpg [ 43.57 KiB | 11845 mal betrachtet ]
mapping.jpg
mapping.jpg [ 131.39 KiB | 11845 mal betrachtet ]
Nach oben
   
BeitragVerfasst: Do Nov 01, 2018 8:48 am 
Offline

Registriert: Di Okt 23, 2018 9:43 am
Beiträge: 27
Edwin, hast Du oder sonst jemand noch eine Idee, warum die Lösung bei mir nicht funktionieren könnte?
Bzw. gibt es so etwas wie beschrieben um auf die Parameter zugreifen zu können?

Gruß


Nach oben
   
BeitragVerfasst: Fr Nov 02, 2018 6:28 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3570
Hi,
also das muss so gehen allerdings muss die Version halbwegs aktuell sein...
Was verwendest du denn genau?
Grüße
Edwin


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1 2 Nächste

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de