Deutsch
Forum

Relaiskarte serielle Schnittstelle und Profan

 

Herbert
N.
Hallo

Hab das problem das ich die serielle 8-fach Relaiskarte von Conrad nicht ansprechen kann
in Qbasic klakerts

Ich verwende Prf 5.0 / Winme / P700 ( net lachen der is gut genug für solche Sachen grins )

hier ein bischen programm zum studieren was ich falsch mache:
KompilierenMarkierenSeparieren
Declare h%,e%,a$,b$,c$,d$,e$,f$,g$
Declare Init$,Kanal1$,id%,Pause&
@CloseCom(COM1)

proc Pause

    let Pause& = &GetTickCount
    Let Pause& = @ADD(Pause&,100)

    while @GT(Pause&,&GetTickCount)

    wend

endproc

Font 1
let id% = COM1
LET h% = @OpenCom(id%,1024,1024)
@SetCom(id%:19200,N,8,1)
@SetComExt(id%,10,0,0,$0001,0,0)
LET f$ = @ReadCom$(id%,4)
Pause
LET g$ = @ComError(id%)
Pause
let Init$=CHR$(1),CHR$(5)CHR$(2),CHR$(6)
let Kanal1$=CHR$(3),CHR$(5),CHR$(8),CHR$(14)
print  Fehler  : ;@ComError(COM1)
@WriteCom(h%,Init$)
pause
@ReadCom$(id%,4)
Pause
@WriteCom(h%,Kanal1$)
Pause
print Init$
Print id%
LET f$ = @ReadCom$(id%,4)
Pause
print  Fehler  : ;@ComError(id%)
print  Gelesen : ;f$
Pause
print  Gelesen : ;@ReadCom$(id%,4)
Pause
@CloseCom(id%)

Danke im voraus
 
26.02.2006  
 



Ich bin mir sicher das Georg hier helfen kann...
 
26.02.2006  
 




Pedro
Santos
Hallo

Schreibe überall anstatt id% besser id$ also eine string variable

Gruss

Pedro
 
Windows XP Home
Xprofan 10
26.02.2006  
 




Herbert
N.
Hallo
Des mit dem String is net des problem ,oder denkst du das es andere probleme verursacht ? Hab am Anfang brav immer COM1 eingetragen ,des mit id% hab aus der Hilfe ( Beispielprogramm ) falls ich mal den Anschluss ändern will ( bin faul und schreib net gern ......)

aber trotzdem Danke
 
26.02.2006  
 




Herbert
N.
Und wer is Georg??

Bzw wie kann ich mit ihm Kontakt aufnehmen diesbezüglich?

gruss Herbert
 
26.02.2006  
 




Jac
de
Lad
1. Hier lacht niemand, ich hab selbst ewig Profan² 5.0 benutzt.

2. Du hast in deinem Quelltext einiges mit Variablen vertauscht:
- id$ anstelle des Handles der Schnittstelle angegeben (siehe ReadCom, WriteCom, Comerror)
- id$ oft in Gänsefüßchen gesetzt (macht man mit Variablen nie!)
- id$ wurde als Integer declariert (muss aber ein String sein)

Hier mal der korrigierte Quelltext (ob er funktioniert kann ich leider nicht sagen, da ich noch nie mit Com gearbeitet habe und auch keine Com-Karten habe):
KompilierenMarkierenSeparieren
Declare H%,E%,A$,B$,C$,D$,E$,F$,G$
Declare Init$,Kanal1$,id$,Pause&
@Closecom(h%)

Proc Pause Unnötig, da besser durch Sleep!

    Let Pause& = &Gettickcount
    Let Pause& = @Add(Pause&,100)

    While @Gt(Pause&,&Gettickcount)

    Wend

Endproc

Font 1
Let id$ = COM1
Let H% = @Opencom(id$,1024,1024)
@Setcom(Add$(id$,:19200,N,8,1))
@Setcomext(id$,10,0,0,$0001,0,0)
Let F$ = @Readcom$(id$,4)
Pause
Sleep 100
Let G$ = @Comerror(id$)
Pause
Sleep 100
Let Init$=Chr$(1),Chr$(5),Chr$(2),Chr$(6)
Let Kanal1$=Chr$(3),Chr$(5),Chr$(8),Chr$(14)
Print  Fehler : ;@Comerror(h%)
@Writecom(H%,Init$)
Sleep 100
@Readcom$(h%,4)
Sleep 100
@Writecom(H%,Kanal1$)
Sleep 100
Print Init$
Print id$
Let F$ = @Readcom$(h%,4)
Sleep 100
Print  Fehler : ;@Comerror(h%)
Print  Gelesen : ;F$
Sleep 100
Print  Gelesen : ;@Readcom$(h%,4)
Sleep 100
@Closecom(h%)

Ich hoffe, das hilft dir weiter!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
26.02.2006  
 




GDL
Hallo,

hier mein Testprogramm
KompilierenMarkierenSeparieren
cls
declare comm3%,fehler%,anzahl%,daten$

proc raus

    comm3%=@OpenCom(COM1,2048,2048)
    fehler%= @SetCom(COM1:9600,N,8,1)
    daten$=@AnsiToOem$(5)
    anzahl%=@WriteCom(comm3%,daten$)
    fehler%=@ComError(comm3%)
    daten$=ReadCom$(comm3%,1)
    case daten$ <> :Print daten$
    sleep 100
    fehler%=@ComError(comm3%)
    daten$=@OemToAnsi$(daten$)
    case daten$=:daten$=nichts
    drawtext 10,100,Schnittstellenfehler senden : +str$(fehler%)
    drawtext 10,120,Gesendete Datenpakete    : +str$(anzahl%)
    drawtext 10,140,Empfangene Datenpackete  : +daten$
    drawtext 10,160,Schnittstellenfehler empfangen : +str$(fehler%)
    @CloseCom(COMM3%)

endproc

===========================================================================

whilenot 0

    raus

wend

 
Windows7 Xprofan 8,9,10 [...]  [...] 
26.02.2006  
 




GDL
Hallo
hier mal kurz ausgebessert
KompilierenMarkierenSeparieren
Declare H%,E%,A$,B$,C$,D$,E$,F$,G$
Declare Init$,Kanal1$,Id%,Pause&
@Closecom(COM1)

Proc Pause

    Let Pause& = &Gettickcount
    Let Pause& = @Add(Pause&,100)

    While @Gt(Pause&,&Gettickcount)

    Wend

Endproc

Font 1
Let Id% = COM1
Let H% = @Opencom(COM1,1024,1024)
@Setcom(COM1:19200,N,8,1)
@Setcomext(COM1,10,0,0,$0001,0,0)
Let F$ = @Readcom$(H%,4)
Pause
Let G$ = @Comerror(h%)
Pause
Let Init$=Chr$(1),Chr$(5)Chr$(2),Chr$(6)
Let Kanal1$=Chr$(3),Chr$(5),Chr$(8),Chr$(14)
Print  Fehler : ;@Comerror(h%)
@Writecom(H%,Init$)
Pause
@Readcom$(h%,4)
Pause
@Writecom(H%,Kanal1$)
Pause
Print Init$
Print h%
Let F$ = @Readcom$(h%,4)
Pause
Print  Fehler : ;@Comerror(h%)
Print  Gelesen : ;F$
Pause
Print  Gelesen : ;@Readcom$(h%,4)
Pause
@Closecom(h%)
waitinput
 
Windows7 Xprofan 8,9,10 [...]  [...] 
26.02.2006  
 




GDL
Nochmal ich

lass dich bitte nicht durch COM3 irritieren, habe dort mein Versuchsboard hängen.

Habe dort den Compiler so eingestellt, dass das zu empfangene Byte um eins erhöht wird und dann zurückgeschickt wird.Deine Daten werden zwar gesendet, aber nicht erkannt.Erst die Daten in der Whilenot schleife werden erkannt.
KompilierenMarkierenSeparieren
Declare H%,E%,A$,B$,C$,D$,E$,F$,G$
Declare Init$,Kanal1$,Id%,Pause&,anzahl%
@Closecom(COM1)

Proc Pause

    Let Pause& = &Gettickcount
    Let Pause& = @Add(Pause&,100)

    While @Gt(Pause&,&Gettickcount)

    Wend

Endproc

Font 1
Let Id% = COM1
Let H% = @Opencom(COM3,1024,1024)
@Setcom(COM3:19200,N,8,1)
@Setcomext(COM1,10,0,0,$0001,0,0)
Let F$ = @Readcom$(H%,4)
Pause
Let G$ = @Comerror(h%)
Pause
Let Init$=Chr$(1),Chr$(5)Chr$(2),Chr$(6)
Let Kanal1$=Chr$(3),Chr$(5),Chr$(8),Chr$(14)
Print  Fehler : ;@Comerror(h%)
@Writecom(H%,Init$)
Pause
@Readcom$(h%,4)
Pause
@Writecom(H%,Kanal1$)
Pause
Print Init$
Print Kanal1$
Let F$ = @Readcom$(h%,4)
Pause
Print  Fehler : ;@Comerror(h%)
Print  Gelesen : ;F$
Pause
Print  Gelesen : ;@Readcom$(h%,4)
Pause
=================================================================================

whilenot 0

    settimer 100
    waitinput
    killtimer
    init$=001			Hier die Anzahl der Sendebytes
    anzahl%=@Writecom(H%,Init$)
    Let G$ = @Comerror(h%)
    pause
    Let F$ = @Readcom$(h%,4)
    Let G$ = @Comerror(h%)
    drawtext  10,150,Eingang : +f$
    drawtext  10,170,Gesendet : +str$(anzahl%)

wend

@Closecom(h%)

Keine Ahnung wie deine Relaiskarte geht, aber der Code geht bei mir einwandfrei.
Windows XP und XProfan9.
Braucht deine Karte überhaupt 2 Empfangssequenzen oder sollen alle Bytes auf einen Rutsch rüber?

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
26.02.2006  
 




Peter
Max
Müller
Vielleicht mal da schauen:
[...] 

Ciao
 
XProfan X3, X4ß, Win 10.1
27.02.2006  
 




Jac
de
Lad
Ich bin neugierig geworden: Ich würde gern eine Karte mit LCD an der seriellen Schnittstelle ansprechen. Hat jemand ne Ahnung, wo ich eine kostengünstige herbekomme, die mit XProfan programmierbar ist?

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
02.03.2006  
 




RGH
Hallo,
gerade, was die serielle Schnittstelle angeht, so hat es im Laufe der Zeit einige wesentliche Detailverbesserungen gegeben!
Für aktuelle schnelle Rechner ist die Erweiterung ausa XProfan 9 wichtig: Die TimeOuts können extra eingestellt werden. Normalerweise ist das aber nicht nötig. In früheren Versionen wurden die TimeOuts in Profan voreingestellt. Leider führet diese Voreinstellung bei schnelleren Rechnen in eingen Fällen dazu, daß die Verbindung nicht korrekt zustande kommt.
Ab Version 9.1 ist auch das Senden und Empfangen eines einzelnen Null-Bytes kein Problem mehr.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
03.03.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.989 Betrachtungen

Unbenanntvor 0 min.
R.Schneider26.06.2023
Walter08.02.2018
Peter Max Müller18.11.2017
bastler16.12.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie