Antwort an „Rolf B“ verfassen

Hallo der henry,

Ich sitze in Nürnberg in einem Hotelzimmer, nur mit Handy, da ist das Antworten nicht ganz leicht.

Namespaces: ja, sind in .net nötig. Code und Daten existieren nur in Klassen, und jede Klasse existiert in einem Namespace.

Variablen in Klammern: das hat du mistverstanden. Die Zeile

lese(plcdevice)

ruft eine Funktion lese auf und übergibt plcdevice als Argument. Also genau wie in C. Mehl hat diese Funktion nur nicht hingeschrieben, und er hat auch keine C# Syntax benutzt.

Du hingegen hast ein PLCcomDevice-Objekt in der Variablen plcdevice und möchtest darauf eine Methode aufrufen. Dafür ist

plcdevice.ReadData(requestItem1);

völlig ok.

Du hast einen Namespace CommPLC und eine Klasse CommPLCProgramm. In dieser Klasse hast du alles static gemacht. Das KANN man tun, aber du solltest versuchen, Programmschichten zu bilden und Verantwortungen zu bündeln.

Das macht man in C eigentlich auch so, nur hat man da das Konstrukt der Klasse nicht und scheut auch jeden malloc(), weil das Speichermanagement in C viel rudimentärer ist als in .net.

Ich kann dir hier am Handy keine Codebeispiele machen, tut mir leid. Als C# Bastler seit 2001 würde ich jedenfalls anstreben, eine Klasse zu erstellen, die für die Kommunikationsaufgaben des TCP_ISO_Device jeweils eine Methode anbietet, und zwar nicht static. Das Hauptprogramm erzeugt ein Objekt dieser Klasse. Eine open-Methode erzeugt das PLCcom Objekt und speichert es als Instanzvariable ("Field" in .net Sprech). Eine close-Methode räumt dieses Objekt wieder ab. Baue dem Hauptprogramm so, dass die close-Methode vor dem Ende garantiert aufgerufen wird.

Ich frage mich auch, was du da tust. Reden wir hier über PLCcom von Indi-An, womit sich Siemens S7 SPS steuern lassen? Das ist teures Zeug, was für eine Art Programm willst du damit erstellen? U

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen