Forum | | | | Heinz Bernhard | Ein freundliches Hallo in die Runde!
Ich hatte in der Rubrik "Aktuelle Themen" nach Beiträgen über den seriellen Port gesucht. Leider kam ich nur bis zur Seite 10. Alle danach aufgerufenen Seiten zeigten nur immer wieder Seite 10 an - seltsam, oder? Na, vielleicht hat mein IE gesponnen. Daher ist meine Frage evtl. schon überholt!?
Ich möchte Daten vom Notebook in die digitale Außenwelt schicken. Da das Gerät keinen seriellen Anschluss hat, muss einer über Adapter geschaffen werden. "Conrad" bietet einen seriellen 8er-Relaisbaustein an, welcher über internen Converter an USB angesteckt werden kann. Ein Relaisloser Baustein nur mit digitalen Ein-/Ausgängen wäre mir zwar lieber, aber den Zustand kann ich ja vor den Relais abnehmen.
Diese Baugruppe beinhaltet für ihre Funktion aber einen Controller-Schaltkreis. Die gesamte Programmierung erfolgt über ein Mini-Basic.
Da XProfan den seriellen Port ansprechen kann, wäre das eine feine Sache für mich. Nun weiß ich aber nicht, ob XProfan mit seinen Befehlen die Programmierung des Controllers und den erforderlichen Datentransport übernehmen kann. Basic ist mir fremd und ich hätte natürlich lieber mit XProfan meine Daten programmiert.
Vielleicht kann mir jemand aus der Runde helfen, oder einen Hinweis geben?
Ich bin für alles dankbar. Freundliche Grüße Heinz B. |
| | | | |
| | Peter Max Müller | Moin. Ich weiß nicht ob dir das jetzt weiterhilft. Aber schauen kannst du ja mal: [...] |
| | | | |
| | H.Brill | Ich habe auch schon seit Jahren so eine Relaiskarte von CONRAD, aber noch mit richtiger serieller Schnittstelle. Man kann diese auch mit einem USB-Seriell Adapter betreiben.
Hier nochmals der Code : KompilierenMarkierenSeparierenDeclare hD%, hB%, schalt%, statusbar%, OK%, hcombo%
Declare comport%, f%, adresse%, kommando%, Pruefsumme%
Declare chk1%, chk2%, chk3%, chk4%, chk5%, chk6%, chk7%, chk8%
Declare daten%, com$, send$
daten% = 1
adresse% = 1
Proc GetCheckboxStates
If @GetCheck(chk1%)
daten% = SetBit(daten%, 0, 1)
Else
daten% = SetBit(daten%, 0, 0)
EndIf
If @GetCheck(chk2%)
daten% = SetBit(daten%, 1, 1)
Else
daten% = SetBit(daten%, 1, 0)
EndIf
If @GetCheck(chk3%)
daten% = SetBit(daten%, 2, 1)
Else
daten% = SetBit(daten%, 2, 0)
EndIf
If @GetCheck(chk4%)
daten% = SetBit(daten%, 3, 1)
Else
daten% = SetBit(daten%, 3, 0)
EndIf
If @GetCheck(chk5%)
daten% = SetBit(daten%, 4, 1)
Else
daten% = SetBit(daten%, 4, 0)
EndIf
If @GetCheck(chk6%)
daten% = SetBit(daten%, 5, 1)
Else
daten% = SetBit(daten%, 5, 0)
EndIf
If @GetCheck(chk7%)
daten% = SetBit(daten%, 6, 1)
Else
daten% = SetBit(daten%, 6, 0)
EndIf
If @GetCheck(chk8%)
daten% = SetBit(daten%, 7, 1)
Else
daten% = SetBit(daten%, 7, 0)
EndIf
EndProc
Proc GetComInput
Parameters id%
Declare in$
in$ = @ReadCom$(f%,8)' 8 Zeichen einlesen
Case @Len(in$):SetText statusbar%, "Antwort : " + Str$(ord(in$))
EndProc
Proc Senden
' 4 Byte - Rahmen zum Senden erstellen
Pruefsumme% = XOR(XOR(kommando%, adresse%), daten%)
send$ = Chr$(kommando%) + Chr$(adresse%) + Chr$(daten%) + Chr$(Pruefsumme%)
WriteCom(f%, send$)
ComError(f%)
GetComInput(f%)
Sleep 1000
EndProc
Proc Dialog
'Dialogfenster erzeugen
hD% = @Create("Dialog",%DeskTop,"Relaisplatine 8fach seriell",100,100,600,400)
'Einen Button mit 'ENDE' erzeugen
hB% = @Create("Button",hD%,"&ENDE",10,10,60,25)
schalt% = @Create("Button", hD%, "&Schalten", 100, 10, 80, 25)
chk1% = @Create("CheckBox", hD%, "Relais 1", 350, 10, 100, 25)
chk2% = @Create("CheckBox", hD%, "Relais 2", 350, 40, 100, 25)
chk3% = @Create("CheckBox", hD%, "Relais 3", 350, 70, 100, 25)
chk4% = @Create("CheckBox", hD%, "Relais 4", 350,100, 100, 25)
chk5% = @Create("CheckBox", hD%, "Relais 5", 350,130, 100, 25)
chk6% = @Create("CheckBox", hD%, "Relais 6", 350,160, 100, 25)
chk7% = @Create("CheckBox", hD%, "Relais 7", 350,190, 100, 25)
chk8% = @Create("CheckBox", hD%, "Relais 8", 350,220, 100, 25)
' erste Checkbox setzen
SetCheck chk1%, 1
statusbar% = @Create("StatusWindow", hD%, "Ready !")
Clear OK%' OK% auf 0 setzen
WhileNot Ok%' solange OK% gleich 0 ist
' Hier in der Schleife warten wir mit WaitInput auf Benutzer - Eingaben
' Wir verwenden die in XProfan 10 neue Funktion @Clicked() statt @GetFocus()
WaitInput
If @Clicked(hB%)
'ENDE wurde angeklickt, OK% wird auf 1 gesetzt und somit
' die Schleife verlassen, das Fenster gelöscht und das Programm beendet.
Ok% = 1
ElseIf %Key = 2
' Hier wird das 'X' (rechts oben Schließen) ausgewertet
OK% = 1
ElseIf @Clicked(schalt%)
' Relais schalten.
kommando% = 3
adresse% = 1
daten% = 0
GetCheckboxStates' Checkboxen auswerten u. Bits setzen
Senden
'@MessageBox("Ich bin der Autor : " + Name$, "Info", 0)
EndIf
EndWhile
'Dialogfenster (incl. Button, usw.) entfernen
@DestroyWindow(hD%)
EndProc
' Relaiskarte initialisieren
kommando% = 1
adresse% = 1
daten% = 0
f% = @OpenCom("COM5", 1024, 1024)
SetCom("COM5: 19200, N, 8, 1")
Senden
' Hier wird die Dialogbox (Procedur) aufgerufen
Dialog
' Programm Ende
CloseCom(f%)
End
Vielleicht hat sich ja bei dem Baustein der Platine nichts geändert, nur halt, daß jetzt ein USB-Anschluß da ist. Dann könntest du den Code original verwenden. Mußt halt nur die COMx: passend setzen.
PS: Für alle, die auch noch eine ser. Karte besitzen : Es kann sein, daß diese nur mit einem Nullmodemkabel geht, so wie bei mir. Entweder hat Conrad das bei seiner Doku vergessen zu erwähnen, oder es sind Tx und Rx bei der Produktion vertauscht worden. Ich denke, da gingen damals tausende Stück raus und da das ja bestimmt Fließband (Lötautomaten) Produktion ist, werden wohl noch einige dieser Exemplare existieren. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 29.08.2013 ▲ |
| |
| | Heinz Bernhard | Hallöchen ! Auch dir meinen herzlichen Dank für deine umfangreiche Mühe.
Ich habe mich auf Grund deiner und der anderen beteiligten Profaner dazu entschlossen demnächst mein Taschengeld zu "Conrad" zu bringen und die Relaiskarte zu kaufen.
Herzlichen Dank Allen die geholfen haben. Grüße von Heinz B. |
| | | | |
| | H.Brill | Kannst auch mal hier nachfragen : [...] Evtl. hat der noch so eine Relaiskarte. Mit BT kann man genauso über seriell steuern. Hab auch so eine und somit keinen Kabelsalat mehr. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 30.08.2013 ▲ |
| |
| | Heinz Bernhard | Hallöchen, ganz herzlichen Dank für deine nochmalige Mühe. Schade, dass ich an BT gar nicht gedacht habe. Aber nun ist es leider zu spät, evtl.. kann ich ja mal anderen damit helfen.
Seit wenigen Stunden bin ich nun "stolzer Besitzer" der "Seriellen-Conrad-Relaiskarte mit USB". Nun kann ich "loslegen" und alle Hinweise testen und verarbeiten.
Danke und Gruß Heinz B. |
| | | | |
|
AntwortenThemenoptionen | 8.111 Betrachtungen |
ThemeninformationenDieses Thema hat 3 Teilnehmer: |