Forum: PC-Programmierung PC-Programm zum einfachen Befeuern der RS232


von Berndl (Gast)


Lesenswert?

Kennt jemand ein Terminal-Programm für PCs (Win!) mit dem ich einfach 
durch Tastendruck eine vorher definierte Codefolge (BIN) über RS-232 
raussenden kann und speichern kann, was empfangen wird?

Ich verfüge über ein Messgerät mit telemetrischer Schnittstelle, für 
welches die Steuercodes bekannt sind, wofür es aber keine Software mehr 
gibt, weil der Hersteller pleite ist.

Ich muss nun dem Operator die Möglichkeit schaffen, bei Eintreten eines 
speziellen Ereignisses, manuell eine Reihe von Daten rauszuholen. Ich 
brauche also einen Knopf am PC, der die Abfrage Codes sendet und alles 
an binären Daten speichert, was kommt.

Die Abfolge ist in etwa so:

"Lese ab Adresse 7 die nächsten 31 Daten " 0x80 0x07 0x1f 0xPP

Ich habe es schon mit Hyperterminal hingefummelt, aber es ist zu 
umständlich, jedesmal auf Senden zu gehen und eine Datei zu senden.

Ein kopmlettes Programm zu schreiben, wäre mir jetzt aber auch zu 
aufwändig zumal ich meine, dass es sowas geben müsste.

Kriegt man das alternativ mit Putty irgendwie hin?

von Lan (Gast)


Lesenswert?

Das hier kann z.B. Makros senden:
https://sites.google.com/site/terminalbpp/

von min (Gast)


Lesenswert?


von Berndl (Gast)


Lesenswert?

Wow, super, Danke. hterm habe ich schon mal gehört, aber noch nie 
verwendet. Das andere sieht auch super aus. Werde ich checken.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Berndl schrieb:
> Ich muss nun dem Operator die Möglichkeit schaffen, bei Eintreten eines
> speziellen Ereignisses, manuell eine Reihe von Daten rauszuholen. Ich
> brauche also einen Knopf am PC, der die Abfrage Codes sendet und alles
> an binären Daten speichert, was kommt.

Die andere Lösung wäre ein eigenes Programm/Skript zu schreiben.
Entweder als eigenständige EXE oder als z.B. Python-Skript.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Teraterm Pro ist skriptbar. Nein, "Pro" bedeutet nicht, daß das 'ne 
kommerzielle Variante wäre.

von Tom (Gast)


Lesenswert?

Dennis Heynlein schrieb:
> Die andere Lösung wäre ein eigenes Programm/Skript zu schreiben.
> Entweder als eigenständige EXE oder als z.B. Python-Skript.

Das muss nicht viel komplizierter sein als ein Script für ein 
Terminalprogramm, und man ist nicht auf die Funktionalität beschränkt, 
die der Autor des Terminalprogramms für sinnvoll gehalten hat.

Z.B. wie unten, falls du kein GUI brauchst und damit leben kannst, dass 
nach dem Doppelklick auf die .py-Datei ein Konsolenfenster aufgeht. Aus 
zwei meiner Basteltools direkt ins Forum zusammencopypastet, natürlich 
anpassungsbedürftig und mangels Deiner Hardware ungetestet.

1
# fuer Python 2.7, nicht 3.x
2
# auch pyserial installieren
3
4
import serial
5
import time
6
7
request_string = '\x80\x07\x1f' #usw
8
output_dir = 'C:/Users/Berndl/Desktop'
9
10
#dateiname aus datum, uhrzeit, _daten.dat
11
def create_filename():        
12
        day = time.strftime('%Y-%m-%d')
13
        tim = time.strftime('%H.%M.%S') #windows kann keine doppelpunkte...
14
        return output_dir + '/' + day + '_' + tim + '_daten.dat'
15
16
def get_data(xyz):
17
    ser = serial.Serial('COM1', 9600, timeout=1, parity=serial.PARITY_NONE, rtscts=1)
18
    ser.write(xyz)
19
    time.sleep(1)
20
    response = ser.read(1000)        # read up to 1000 bytes (timeout)
21
    ser.close()
22
    return response
23
24
def save_data(data, filename):
25
    outfile = open(filename, 'wb')
26
    outfile.write(data)
27
    outfile.close()
28
29
if __name__ == '__main__':
30
    data = get_data(request_string)
31
    print '%d bytes gelesen...' % len(data)
32
    filename = create_filename()
33
    save_data(data, filename)
34
    print '... und gespeichert in %s' % filename
35
    raw_input("Press Enter to continue...")

von Tom (Gast)


Lesenswert?

Die Einrückung bei create_filename() ist verrutscht.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Tom schrieb:
> nach dem Doppelklick auf die .py-Datei ein Konsolenfenster aufgeht. Aus

Man kann die .py unter windows auch .pyw nennen -> kein 
Konsolen-fenster.

Für eine GUI reicht das Tkinter/Tix, welches bei Python für Windows 
dabei ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.