Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Hyper Terminal -> C#

  1. #11
    Joerg123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.04.2004
    Beiträge
    121
    Danke
    7
    Erhielt 14 Danke für 10 Beiträge

    Daumen hoch


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Im Nachhinein ist es halt immer leicht

    Nur da ich letztens ein paar Stunden gebraucht hab um über Ethernet mit einer S7 zu kommunzieren, hab ich bei diesem Projekt wieder mit ein paar Stunden Arbeit gerechnet. Aber anscheinend gibt es doch noch Industrieunternehmen die Standart-TCP Kommunikation unterstützen (Omron). Bei Siemens arbeite ich mit libnodave.



    Nochmal vielen Dank für die Tipps!

  2. #12
    Joerg123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.04.2004
    Beiträge
    121
    Danke
    7
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Hallo,

    habe jetzt noch einmal ein kleines Problem mit der Kommunikation zur Omron-Kamera. So lange das Netzwerkkabel gesteckt ist funktioniert alles wunderbar, doch starte ich die Anwendung wenn das Kabel nicht gesteckt ist versucht die Software minutenlang eine TCP-Verbindung aufzubauen!
    Gibt es eine Möglichkeit diese Zeit zu verkürzen, so dass ich bereits nach kurzer Zeit 'Verbindungsfehler' melden kann??

    Mein Code an der Stelle ist entweder:

    TcpClient tcp = new TcpClient("192.168.202.241",23);

    oder:

    TcpClient tcp = new TcpClient();
    tcp.Connect("192.168.202.241",23);

    dass ganze jeweils in einem Try/Catch-Block. Jedoch dauert es immer mehrere Minuten bis ich die Exception bekomme.

    Gruß Jörg

  3. #13
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Beim .Net TcpClient kann man wohl für ein Connect kein Timeout angeben.
    Bleibt nur der Umweg über die etwas aufwändiger zu programmierenden asynchronen Sockets:

    http://msdn.microsoft.com/en-us/library/bbx2eya8(vs.71).aspx

    Warum lässt du dir die Werte denn nicht einfach mittels Telnet in eine Datei schreiben?

    Gruß

  4. #14
    Joerg123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.04.2004
    Beiträge
    121
    Danke
    7
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen

    Warum lässt du dir die Werte denn nicht einfach mittels Telnet in eine Datei schreiben?

    Gruß
    Wie meinst du das? Gibt es dafür fertige Programme??

  5. #15
    Joerg123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.04.2004
    Beiträge
    121
    Danke
    7
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Hallo,

    also der Kunde möchte gerne einen PC bei den Anlagen stehen haben wo er auch einen aktuellen Status der Anlagen einsehen kann. Im Endeffekt werden von fünf Kameras gleichzeitig Daten eingelesen, da ich nicht weiß von welcher Anlage als nächstes Daten kommen mache ich Multi-Threading. So lange alle Netzwerkverbindungen 'OK' sind funktioniert alles wunderbar, ich kann die Anwendung schliessen und öffnen, alles wunderbar.
    Sobald aber eine Netzwerkverbindung nicht OK ist, funktioniert scheinbar auch alles, nur beim schliessen der Anwendung blockiert anscheinend der Thread, der noch versucht eine Netzwerkverbinung aufzubauen dass korrekte Schliessen der *.exe-Datei im Task-Manager unter den Prozessen. Auch nach mehreren Minuten ist die *.exe noch vorhanden. Versuche schon mit Thread.Abort-Befehlen die 'hängenden' Threads abzuwürgen, aber ohne Erfolg.
    Wie gesagt es funktioniert alles prima so lange alle Netzwerkverbindungen 'OK' sind. Davon kann ich aber im Dauerbetrieb nicht ausgehen, da es immer mal vorkommen kann dass eine Anlage nicht produziert und somit ausgeschaltet ist.

    Ich hoffe ihr habt mein Problem verstanden, vielleicht hat ja jemand noch einen Guten Tipp was ich anders machen kann!

    Gruß Jörg

  6. #16
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Joerg123 Beitrag anzeigen
    Wie meinst du das? Gibt es dafür fertige Programme??
    Telnet ist fast so etwas wie Hyperterminal. Kannst ja mal eine Eingabeaufforderung starten und "telnet" eintippen.
    Also damit könntest du auch eine Netzwerkverbindung zu deinem Server herstellen.

    Aber wenn der Kunde die Daten auch in einem Programm dargestellt haben möchte fällt das sowieso flach.

    Sollen die Daten nur in eine Textdatei geschrieben werden ginge das auch mit einer Batch-Datei die im Hintergrund abläuft.
    Hier mal ein Beispiel:
    Anstatt Telnet wird plink genutzt (kann außer Telnet auch SSH). Bei erfolgreicher Verbindung werden in eine Datei mit aktuellem Zeitstempel als Dateiname die empfangenen Daten geschrieben. Nach 100 Fehlversuchen bricht es aber ab.

    Code:
    rem ###################################################
    rem # Schreib die von plink empfangenen Daten in      #
    rem # eine Datei mit dem aktuellen Zeitstempel.       #
    rem # Bei jeder neuen Verbindung wird eine neue Datei #
    rem # geschrieben. Anzahl der Wiederholversuche bis   #
    rem # Programmende einstellbar (100)                  #
    rem ###################################################
    @echo off
    set /a errcount=0
    :loop
    set datum=%date:~-4%%date:~-7,2%%date:~-10,2%
    set stunde=%time:~0,2%
    if %time:~0,2% GTR 9 goto stundeOK
    set stunde=0%time:~1,1%
    :stundeOK
    set zeit=%stunde%%time:~3,2%%time:~6,2%
    set filename=C:\Temp\data_%datum%_%zeit%.txt
    plink -telnet 192.168.1.1 -P 9000 > %filename%
    rem # echo Plink returned: %ERRORLEVEL%
    rem # Datei von 0 KB Groesse loeschen
    for %%F in (%filename%) do set size=%%~zF 
    if %size% EQU 0 (del %filename%)
    set /a errcount=%errcount%+1
    if %errcount% GEQ 100 (goto :exit)
    goto :loop
    :exit
    @echo on
    echo Maximale Anzahl an Verbindungsversuchen erreicht

Ähnliche Themen

  1. Saia Burgess Terminal D850
    Von Roland5020 im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 14.10.2011, 10:38
  2. WinCC: Routing Terminal / Processbus
    Von Lauritsen im Forum HMI
    Antworten: 0
    Letzter Beitrag: 10.06.2011, 09:14
  3. USB Scanner an B&R Terminal
    Von manju0890 im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 18.05.2011, 16:45
  4. Urlöschen von einem Lauer-Terminal
    Von bayersepper im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 01.09.2008, 18:28
  5. E300 Terminal Treiberkonflikt
    Von Blue im Forum HMI
    Antworten: 0
    Letzter Beitrag: 06.02.2007, 23:01

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •