Einzelnen Beitrag anzeigen

Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#13

AW: TCP/IP-Telegrammverkehr mit Anlagensteuerung/SPS

  Alt 21. Feb 2014, 10:42
Hallo Leute,
also erst mal... Ich find´s ja total klasse, hier so gut informierte Leute erwischt zu haben. Da sollte es ja kein Problem mein bisl Kleinkram zu lösen.

Ich für meinen Teil hab (nachdem ich zunächst ein wenig mit sirius Quellcode experimentiert habe und mir anschließend das libnodave-Beispiel angeschaut habe) auch langsam das Gefühl das libnodave schon ein wenig zu weit geht.
Ich will nicht auf Datenbausteine einer SPS zugreifen.
Mir reicht schon ein einfacher TCP/IP-Telegrammverkehr.

Mein Frage ist nun, wenn ich mit dem Quellcode von sirius weitermache, komme ich dann auch zum Ziel?
Mit TClientSocket und TServerSocket kann ich ja verschiedene Daten senden.

Könnt ihr mal sagen, ob das funktionieren würde?

Codebeispiel für das Versenden eines Telegramms von Delphi zur SPS:
Code:
FClient:=TClientSocket.Create(self);
try
  FClient.Adress:='0.8.1.5'; //IP der SPS
  FClient.Port:=5000;       //Port über den kommuniziert werden soll
  FClient.ClientType:=ctNonBlocking;
  FClient.Open;
  FClient.Socket.SendText('Hallo SPS');
finally
  FClient.Free;
end;
Codebeispiel für das Empfangen eines Telgramms von der SPS durch Delphi:
Code:
//Serververbindung herstellen
FServer:=TServerSocket.Create(self);
try
  FServer.Port:=5001;       //Port über den kommuniziert werden soll
  FServer.OnClientRead:=ServerRead;
  FServer.Open;
except
  FServer.Free;
end;

//Telgramm empfangen
procedure ServerRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.ReceiveText);
end;

//TServerSocket vor Beenden im OnDestroy der Form freigeben
FServer.Free;
Vor allem bin ich mir ja unsicher, ob SendText die richtige Methode ist.
Vielleicht müsste/sollte ich besser SendStream oder SendBuf nehmen.
Wie ist eure Meinung dazu?
Nico Bäger
  Mit Zitat antworten Zitat