AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Moxa NPort 5150 mit IPSerial auf Windows Server 2008
Thema durchsuchen
Ansicht
Themen-Optionen

Moxa NPort 5150 mit IPSerial auf Windows Server 2008

Ein Thema von MatRo · begonnen am 26. Feb 2014 · letzter Beitrag vom 26. Feb 2014
Antwort Antwort
Seite 2 von 2     12   
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Moxa NPort 5150 mit IPSerial auf Windows Server 2008

  Alt 26. Feb 2014, 10:00
Dies ist der richtige Weg.
Der Moxa setzt TCP/IP zu RS232 absolut zuverlässig um.
Da müsst ihr in der Umsetzung des Herstellerprotokolls ein Problem haben.

Was lief denn nicht wie erwartet?
Was ist es denn für ein Protokoll? Ascii oder Binär. Und wie habt Ihrs versucht?


Nachtrag:
Einfacher Test:
Eine Brücke an der seriellen Schnittstelle des Moxa RX und TX machen.
Dann via TCP/IP etwas senden. Das Echo ist das gesendete an die serielle Schnittstelle.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.

Geändert von taveuni (26. Feb 2014 um 10:04 Uhr) Grund: Nachtrag eingefügt
  Mit Zitat antworten Zitat
MatRo

Registriert seit: 26. Feb 2014
5 Beiträge
 
#12

AW: Moxa NPort 5150 mit IPSerial auf Windows Server 2008

  Alt 26. Feb 2014, 10:18
Hier mal unser mittlerweile durch die ganzen Versuche verhunster Code um hoffentlich einen kleinen Einblick auf unsere Versuche zu bekommen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sSend: string;
  sRecieve: string;
begin
  sSend := Edit1.Text + '#13';
  IdTCPClient1.IOHandler.WriteLn(sSend);

// sRecieve := IdTCPClient1.IOHandler.ReadLn();
// Memo1.Lines.Add(sRecieve);
// sRecieve := IdTCPClient1.IOHandler.ReadLn();
// Memo1.Lines.Add(sRecieve);
end;

procedure TForm1.CloseButtonClick(Sender: TObject);
begin
  IdTCPClient1.Disconnect();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear();
end;

procedure TForm1.IdIOHandlerStack1Status(ASender: TObject;
  const AStatus: TIdStatus; const AStatusText: string);
begin
  sleep(1000);
end;

procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
  Memo1.Lines.Add('Connected');
end;

procedure TForm1.IdTCPClient1Disconnected(Sender: TObject);
begin
  Timer1.Enabled := False;
  Memo1.Lines.Add('Disconnected');
end;

procedure TForm1.OpenButtonClick(Sender: TObject);
begin
  IdTCPClient1.Host := '10.20.40.220';
// IdTCPClient1.Port := 23; // Telnetport;
  IdTCPClient1.Port := 4001;

  IdTCPClient1.Connect();

  sleep(1000);
  IdTCPClient1.IOHandler.WriteLn(chr(13));

  Timer1.Enabled := True;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var
  iInfo: integer;
  bInfo: boolean;
  sSend: string;
  sRecieve: string;
  I: integer;
  iBufSize: integer;
begin
  Timer1.Enabled := False;
// iInfo := IdTCPClient1.IOHandler.ReadTimeout; // ist immer 3000 (3sek)
// bInfo := IdTCPClient1.IOHandler.ReadLnTimedout; // stürzt ebenfalls ab ???

// bInfo := IdTCPClient1.IOHandler.Readable(10); // stürzt ebenfalls ab ???
// label1.Caption := '0';
// if bInfo then
// label1.Caption := '1';
// application.processmessages;
// sleep(1000);






// while bInfo do
// begin
// sRecieve := IdTCPClient1.IOHandler.ReadLnRFC(bInfo);
// Memo1.Lines.Add(sRecieve);
// end;

// I := IdTCPClient1.IOHandler.ReadTimeout;
// showmessage(IntToStr(I));

  if IdTCPClient1.IOHandler.Readable() then
  begin
// iBufSize := IdTCPClient1.IOHandler.RecvBufferSize;
// sRecieve := IdTCPClient1.IOHandler.ReadLn();
    sRecieve := IdTCPClient1.IOHandler.readString(100); // 6000
    Memo1.Lines.Add(sRecieve);
  end;
// IdTCPClient1.IOHandler.rea
  Timer1.Enabled := True;
end;
Zurzeit angeschlossen ist ein riesen Switch, bei einer Eingabe wird der Login erfragt, so sehen wir ob was zurück kommt. Nach einer Zeit und einigen Passwort-Abfragen hängt sich die Anwendung auf und tut nichts mehr.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Moxa NPort 5150 mit IPSerial auf Windows Server 2008

  Alt 26. Feb 2014, 10:45
Sieht ja abenteuerlich aus.
Aber mal davon abgesehen:

Das was mit Button1 gesendet wird entspricht dem Protokoll des Subsystems?
Demzufolge ist es ein Ascii Protokoll mit abschliessendem CR.
Falls ja antwortet das System korrekt?

Und was heisst hängt sich auf?


Nachtrag:
Lade Dir mal einen neutralen TCP Client herunter z.b. den Hercules.
Benötigt kein Setup kann einfach gestartet werden.
Sende mal mit dem Deine Anfrage(n) um andere Fehler auszuschliessen.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.

Geändert von taveuni (26. Feb 2014 um 10:50 Uhr) Grund: Nachtrag eingefügt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz