Deutsch
Hardware

Erledigt: Serielle Schnittstellen abfragen????

 
- Seite 1 -



Robert
Hildebrand
Hallo zusammen,

ich habe 6 serielle Schnittstellen permanent abzufragen (Messgeraete) und muss diese in einer Datenbank (dBase) speichern.

Hat jemand eine Idee??

LG

Robert
 
XProfan 10, WinXP prof

Robert Hildebrand
27.05.2009  
 



 
- Seite 2 -



Robert
Hildebrand
Dein Code zeigt mir immer nur 0 an
 
XProfan 10, WinXP prof

Robert Hildebrand
09.06.2009  
 




Sato
Pinto
Hallo Robert

Warum ist @SetCom(COM2:2400,N,8,1) auskommentiert? Du muss damit die baudrate angeben
Der Empfänger und der Sender müssen auf die gleiche Baudrate eingestellt werden.

Gruss
Sato
 
Sato Pinto
WIN XP Home
XPROFAN 11
09.06.2009  
 




GDL
Hi

gut,kann ich nicht beurteilen,da ich deine Gegenstelle nicht hab.Mit meinen Controlern geht es im Einschnittstellenbetrieb in meinem Auszugscode einwandfrei.
Warum remst du setcom in deinem Code aus?

Zitat
f% = @OpenCom(COM2, 1024, 1024)
@SetCom(COM2:2400,N,8,1)
Zitatende

mit welcher Geschwindigkeit läuft jetzt deine Schnittstelle ? Mit der von Windows voreingestellten Baudrate?
Du musst setcom nutzen und zwar mit denselben Werten die deine Gegenstelle hat.

Ich musste bis jetzt immer noch die empfangenen Zeichen mit @Ord(Einzelzeichen)wieder zurückwandeln.Also Zeichen für Zeichen.
Nehme aber an das dies überall so ist.Hatte bis jetzt noch keine Schnittstelle die dies automatisch macht.

Nutzt deine Gegenstelle die Handshaking Leitungen ?
Wenn nein :
Startbit.......stopbit bezieht sich immer nur auf das zu sendende Byte.Bei einer freilaufenden Gegenstelle musst dann aufpassen das die erst sendet wenn dein Programm bereits läuft und die Schnittstelle bereit ist.Sonst gehn dir ganz schnell paar Zeichen von einem Datensatz ab.

Ausserdem benötigen manche Schnittstellen älterer Bauart ein DTR high um überhaupt zu arbeiten.

Mehr kann ich dazu nicht sagen, da ich
1. deine Gegenstelle zum Testen nicht hab
2. nur mit den UART bzw. SUART der Atmel Controler arbeite.

Jetzt sind hier die Profis gefragt.

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




GDL
Hi

während ich schrieb war nen Zwischenposting von Sato Pinto.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
09.06.2009  
 




Robert
Hildebrand
Habe auskommentiert, weil ich nur leren will
 
XProfan 10, WinXP prof

Robert Hildebrand
09.06.2009  
 




GDL
Auch nur beim Lesen must du setcom nutzen.Du must setcom immer nutzen.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
09.06.2009  
 




H.Brill
Vorrausgesetzt die Baudrate stimmt, was
geben denn deine Meßgeräte aus ?
Sind die konzipiert für 9 V oder machen
die nur 5 V TTL Pegel ?

Bei letzterem müßte man dann noch
einen MAX232 mit ein paar Kondensatoren
dazwischen hängen, der aus 5 V TTL 9 V
macht.
 
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.
10.06.2009  
 




Robert
Hildebrand
GDL, Beitrag=52639, Zeitpunkt=09.06.2009
Auch nur beim Lesen must du setcom nutzen.Du must setcom immer nutzen.


Baudrate stimmt, ich bekomme ja auch eine Anzeige, aber die kann ich nicht verstehen ( siehe Grafik).

Robert
 
XProfan 10, WinXP prof

Robert Hildebrand
10.06.2009  
 




Jörg
Sellmeyer
GDL hats doch schon gesagt:


Ich musste bis jetzt immer noch die empfangenen Zeichen mit @Ord(Einzelzeichen)wieder zurückwandeln.Also Zeichen für Zeichen.


Sieh Dir in Deiner Prozedur GetComInput die einzelnen Werte mal an und gib sie nicht als String via print aus.
Also anstatt ReadCom$(f%,14) machst Du:
KompilierenMarkierenSeparieren
Declare x$,y%,z%

WhileLoop 14

    x$=ReadCom$(f%,&Loop)
    y%=Val(x$)
    z% = Ord(x$)
     $D Werte ansehen,x$,y%,z%

Wend


So siehst Du erstmal, wie die Signale zusammengesetzt sind.

Außerdem übergibst Du Deiner Prozedur zwar den Wert f% als Parameter, empfängst ihn aber nicht als solchen. Besser ist:
KompilierenMarkierenSeparieren
Proc GetComInput

    Parameters hPort&,Anzahl%  so kannst Du per Parameter dann auch die Anzahl der zu lesenden Zeichen bestimmen.
    hier dann die Verarbeitung
    Declare x$,y%,z%,Ausgabe$

    WhileLoop 14

        X$ = @ReadCom$(hPort&,Anzahl%)
        y%=Val(x$)
        z% = Ord(x$)
         $D Werte ansehen,x$,y%,z%
        Ausgabe$ = Ausgabe$ + z%  oder was immer hier einen Sinn ergibt

    Wend

EndProc

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
10.06.2009  
 




GDL
Hallo Jörg,

danke für deine Unterstützung.Erklären war noch nie meine Stärke.

Nochmals zu setcom :
Ich hatte da auch schon ein Eigentor indem ein Mikrocontroler mit falschem Quarz lief und somit die Baudrate nicht stimmte.
Nur das war der PC RS232 völlig egal.Die gab trotzdem Zeichen aus.Nur lauter Mist halt.Habe nie rausbekommen warum auch verworfene bzw. nicht erkannte Übertragungen als Zufallswerte im Empfangspuffer gespeichert werden.
Ich verstehe nicht warum er setcom wegläßt und sich auf die vorgegebenen Windowswerte verläßt.
Es gibt auch Geräte die senden nur 7bit statt 8bit pro Zeichen.Oder haben eine andere Parität.
Er muss die Schnittstelle an sein Meßgerät anpassen.Oder er muss es wie handelsübliche Modemsoftware über Kommunikation mit der Gegenstelle mittels Softwareprotokoll aushandeln.Das aber bekam ich auch nicht hin.

Wie soll irgendwas zum Laufen gebracht werden,wenn ich von haus aus Schwachstellen im Code hab.Ist jetzt nur meine Meinung.

Nochwas Robert
Bei jedem Meßgerät das an einem PC angeschlossen werden kann ist eine Software dabei.Also nehmen wir an, dass dein Meßgerätesystem ein Eigenbau ist ? Dann kommen so Sachen,wie weiter oben von H.Brill bereits gepostet auch noch in Betracht.
Oder möchtest du nur ein selbstgeschriebenes Programm nutzen?
Kurz : Kannst du uns eine richtig funktionierende Gegenstelle bestätigen?

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



[keineAhnungHab]
@Robert: Genau! Na? Na?

[/keineAhnungHab]
 
10.06.2009  
 




Robert
Hildebrand
Messgerät ist kein Eigenbau, Software liegt auch bei,.diese kann aber nur einen Messwert anzeigen und nicht speichern.
Das Messgerät ist Baugleich mit dem Conrad Voltcraft VC 820/840. Habe mittlerweile herausbekommen dass vom Messgerät 14 Byte übertragen werden diese jedoch binär übertragen und so kann ich leider nichts damit anfangen. Esw gibt ein Programm in Visual Basic, das meine Probleme lösen könnte, ich aber leider kein VB und kann es so nicht in XProfan umsetzen. Kann mir vielleicht hierbei jemand helfen?

Vielen Dank im voraus.

 
XProfan 10, WinXP prof

Robert Hildebrand
15.06.2009  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

27.465 Betrachtungen

Unbenanntvor 0 min.
H.Brill15.05.2023
Langer04.01.2023
Info (3)20.03.2021
Delv Wulff14.08.2020
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