# C#-Programm für CODESYS-Netzwerkvariablen



## Malcolm (8 Juli 2014)

Hallo,

meine Aufgabe ist es, ein kleines Programm in C# zu schreiben, mit dem ich auf die Netzwerkvariablen zugreifen kann, also Werte senden/empfangen kann. Da ich relativ wenig mit C# arbeite bräuchte ich dringend Hilfe.

Danke.

Grüße
Malcolm


----------



## vierlagig (8 Juli 2014)

Malcolm schrieb:


> Hallo,
> 
> meine Aufgabe ist es, ein kleines Programm in C# zu schreiben, mit dem ich auf die Netzwerkvariablen zugreifen kann, also Werte senden/empfangen kann. Da ich relativ wenig mit C# arbeite bräuchte ich dringend Hilfe.
> 
> ...



ich behaupte, es handelt sich hier nicht um ein C# - (oder programmiersprachen-) spezifisches Problem sondern um die grundsätzliche Hilflosigkeit ob der Aufgabenstellung.

Was sind Netzwerkvariablen?
Welcher Datenbasis sind sie zugehörig?
Über welchen Weg soll zugegriffen werden?


----------



## Malcolm (8 Juli 2014)

vierlagig schrieb:


> Was sind Netzwerkvariablen?



Netzwerkvariablen sind globale Variablen, die als Netzwerkvariablen deklariert werden und dann von den Automatisierungskomponenten entweder gelesen oder geschrieben werden können. Die Automatisierungskomponenten können über diese Variablen kommunizieren, sprich Daten austauschen.



vierlagig schrieb:


> Welcher Datenbasis sind sie zugehörig?
> Über welchen Weg soll zugegriffen werden?



Netzwerkvariablen werden über Broadcast vertrieben und sind auf Basis von CAN und UDP implementiert.


Wenn Sie mir nicht helfen wollen und nur Hilflosigkeit unterstellen brauchen Sie hier auch keine Antwort schreiben....


----------



## vierlagig (8 Juli 2014)

ob ich helfen will sei mal dahin gestellt.

Hat man sich denn schon für den einzusetzenden Treiber entschieden?


----------



## Malcolm (8 Juli 2014)

vierlagig schrieb:


> Hat man sich denn schon für den einzusetzenden Treiber entschieden?



Nein, es ist nichts entschieden.


----------



## vierlagig (8 Juli 2014)

Malcolm schrieb:


> Nein, es ist nichts entschieden.



damit steht und fällt die Implementierung

ist es eine beigestellte Dynamic Link Library müssen die Methodenaufrufe bekannt sein und die Schnittstellen beschrieben werden.
handelt es sich um eine zusätzliche Komponente, deren Quellcode zur Verfügung steht, muss sie im Projekt bekannt gemacht werden.

und so weiter...


----------



## vierlagig (9 Juli 2014)

und jetzt? gehts weiter? wenn ja, wie?


----------



## vierlagig (9 Juli 2014)

vielleicht hilft das ja weiter: http://infosys.beckhoff.de/content/1031/tcsample_net/html/twincat.ads.sample01.html

bin ich auf der Suche nach einer geeigneten Bibliothek drüber gestolpert.


----------



## Malcolm (18 Juli 2014)

Also mein C#-Progrämmchen kann mittlerweile Werte senden und empfangen. Nur habe ich beim Empfangen das Problem, dass ich keine Datentypen unterscheiden kann. Gibt es eine Möglichkeit in C#, den Datentyp zu erkennen?


----------



## LowLevelMahn (18 Juli 2014)

bei den Information von dir kann man echt nur noch raten:


da du doch abfragen kannst ist doch klar was zurück kommt, oder?


-Benutzt du eine spezielle Library: das sollte diese entsprechende Funktionen liefern - oder du hast die Doku nicht gelesen
-hast du in C# ein object kannst du mit HierDeinObjekt.GetType() schauen was da so drinn ist


----------



## Malcolm (18 Juli 2014)

Also ich habe unter Verweise die CodesysNetVars.dll eingefügt. Dort gibt es ja genügend solcher Funktionen. Nein, ich habe die Doku nicht gelesen. Wo bekomme ich die her?


----------



## StefanK (18 Juli 2014)

http://sourceforge.net/projects/easynetvars/


----------



## Malcolm (18 Juli 2014)

Also, jetzt funktionierts. Mein Problem war, dass die Reihenfolge der Netzwerkvariablen(in der Globalen Variablenliste) in C# berücksichtigt werden muss. Mein Ziel war es eigentlich, dass diese Reihenfolge nicht zwingend bekannt sein muss und in C# der Wert einem Datentyp zugeordnet werden kann..


----------



## vierlagig (18 Juli 2014)

Malcolm schrieb:


> in C# der Wert einem Datentyp zugeordnet werden kann..




```
1000110110111000 1111100001101101
0111011101111110 1100011001111001
1011101111101111 0000000000001111
1111011101101110 0101010101010101
0000111011011101 1001011001100111
```

wenn Du die Datentypen nicht erkennst, dann auch kein automatischer Ablauf


----------



## Malcolm (18 Juli 2014)

http://gehirnwindung.de/post/2009/04/30/CSharp-DataTypes.aspxc


----------



## vierlagig (18 Juli 2014)

Malcolm schrieb:


> http://gehirnwindung.de/post/2009/04/30/CSharp-DataTypes.aspxc



und weiter?

32bit hintereinander kann man auf viele Arten interpretieren. DINT, Float, Zwei INT, vier Char ...


----------

