| |
|
|
Robert Hildebrand | allô zusammen,
j'ai 6 serielle Schnittstellen permanent abzufragen (Messgeraete) et muss cet dans einer banque de données (dBase) Sauver.
Hat quelqu'un une concept??
LG
Robert |
|
|
| |
|
|
|
KHR | Salut,
so schwer ist cela doch pas.
je mach cela chez 8 seriellen (USB) Schnittstellen et ensuite encore sur ModBus - Protokoll
malheureusement darf Je l' Code pas veröffentlichen, là il trop viele Details sur qui communication avec unseren Sensoren montrer serait.
qui Zugriff sur qui ComPorts était simple, cela lesen et écrivons aussi. à qui ModBus-communication hab je mir ne Weile qui Zähne ausgebissen
et si Du ensuite qui Cordes im grenier la hâte, rester Dir pour qui Speichermöglichleiten alle Wege offen
ComPorts einrichten,
ensuite dans ner schleife
qui Anfragen senden, dans nem String qui Antwort abolen, den String verarbeiten, Ergebnis Sauver, senden ou bien quoi que + subj. et plus zum nächten Port, qui selbe Aktion
si alle par sommes, wieder à den Anfang qui Boucle |
|
|
| Gruß Karl-Heinz WIN XP home/Pro / XPROFAN 11 / P2CPP ATMEL + BASCOM Fan | 27.05.2009 ▲ |
|
|
|
|
Robert Hildebrand | je devrait qui Com4 et COM5 abfragen, mais je bekomme qui données pas sur den Schirm |
|
|
| |
|
|
|
Sato Pinto | allô
Erzähl la fois quelle Votre Schwierigkeiten sommes. Hardware? et quoi Du oui c'est ca faire vouloir, peut-être peux je Dir aider.
Gruss Sato |
|
|
| |
|
|
|
E.T. | |
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 06.06.2009 ▲ |
|
|
|
|
GDL | Hi,
la fois vite nen paire Auszüge aus meinem Steuerprogramm.viens zeitlich pas en supplément cela besser auseinander trop klauben.peut-être hilft es dir quelque chose. KompilierenMarqueSéparation====================================================================
proc schnittstelle
declare such%
If comname$=Port
Let t$=Falsche Schnittstelle
Let n$=Port wird nur bei GDL genutzt.Stelle jetzt COM1 ein.Bitte im Startmenü unter Einstellungen ändern.
MessageBox(n$,t$,64)
comname$=Com1 Testmodus.Später Ausremmen
endif
Alte Rechner benötigen DTRhi/DTRlow
comname$=comname$+:
comi1&=opencom(comname$,4096,4096)
erfolg%=SetCom(comname$+9600,N,8,1)
erfolg%=setcomext(comi1&,0,0,0,$001,0,0) Ältere Rechner stürzen ohne diese Zuweisung ab
case erfolg% = 0: settext _text&[5],comname$+ erfolgreich geöffnet.
Proc_DTRhi (comi1&) PC Anbindung DTR auh High setzen
daten$=chr$(111)
senden
fehler%=WriteCom(comi1&,daten$)
ComError(comi1&)
endproc
ja
=======================================================================
proc empfangen
nur für 1 Zeichen abfangen
name$=@ReadCom$(comi1&,1)
@ComError(comi1&)
casenot name$=:return
WhileNot name$ =
name$=@ReadCom$(comi1&,1)
EndWhile
endproc
======================================================
=== DTR auf HIGH setzen: ====================================================
PROC Proc_DTRhi
PARAMETERS Handle% Parameter 1 = Handle des Comports
fehler% = @EscapeCommFunction(Handle%, 5)
ENDPROC
=== DTR auf LOW setzen: =====================================================
PROC Proc_DTRlo
PARAMETERS Handle% Parameter 1 = Handle des Comports
fehler% = @EscapeCommFunction(Handle%, 6)
ENDPROC
====================================================
proc senden
Proc_DTRhi (comi1&)
Proc_DTRlo (comi1&) PC_Anbindung synchronisieren
sleep 30
daten$=chr$(100)+chr$(100)+chr$(100)+daten$
fehler%=WriteCom(comi1&,daten$)
ComError(comi1&)
Proc_DTRhi (comi1&) Geht nicht
ja
einlesen im Betrieb ausremmen
endproc
=============================================================== class=s2>====
Dauerempfang.Nochmals avec Sync.là qui Übertragung de roue sur Schiene naturgemäß des öfteren Übertragungsfehler produziert. KompilierenMarqueSéparation
proc einlesen BMelder Stellpulttaster
COM Schnittstelle auslesen
Schnittstelle wird am Proganfang ouvert et seulement am Progende geschlossen
declare sync%,lb%
settext _text&[12],Einlesestatus : aktiv +time$(0)+ +left$(time$(1),5)
+ Zeitwechsel ist un Einlesevorgang.
Schnittstelle auslesen 3la fois 255 et 1la fois 0 hintereinander ist Sync
Empfangsprotokoll 255 255 255 0 gare Punkt Lok sélection Fehlerbyte
sélection
254 = Stellpult
253 = Geschwindigkeit
252 = Standardgeschwindigkeit chez commuter sur vert anfordern
oui
clear cstart%
clear sync%
clear lb%
comwert$=@ReadCom$(comi1&,1)
@ComError(comi1&)
cas str$(ord(comwert$))=255:inc sync%
whilenot comwert$=
comwert$=@ReadCom$(comi1&,1)
@ComError(comi1&)
cas str$(ord(comwert$))=255:inc sync%
Si str$(ord(comwert$))=0 Beginn des Datenprotokolls
Hat ici rien avec Start,Stopbit trop 1faire, mais ersetzt cela Handshaking si sync%=3
lb%=1 qui trois 255 Startbyte wurden beim folgendem Nullbyte erkannt
d'autre
clear sync%
clear cstart%
clear lb%
endif
endif
si lb% =1
inc cstart%
_inhalt%[cstart%]=ord(comwert$)
endif
si cstart% = 5
clear cstart%
clear sync%
clear lb%
Fehlerbyte erzeugen
Fehlerbyte comparer
chez faute _inhalt%[5]=0
si _inhalt%[5]=253
settext _text&[8],Lok : +right$(00+str$(_inhalt%[4]),3)
auswerten1
si cette BMelder quelque chose auslöst
tasterbahnhof%=_inhalt%[2]
tasterwert%=_inhalt%[3]
tasterwert%=tasterwert%+(tasterbahnhof%*256)-256 Punkte aller ici de 1 jusqu'à 999
bm_auswerten
elseif _inhalt%[5]=254
settext _text&[8],Taster : +right$(00+str$(_inhalt%[3]),3)
settext _text&[9],Stellwerk : +right$(00+str$(_inhalt%[2]),3)
tasterbahnhof%=_inhalt%[2]
tasterwert%=_inhalt%[3]
auswerten
elseif _inhalt%[5]=252
settext _text&[8],Lok : +right$(00+str$(_inhalt%[4]),3)
real_speed
endif
endif
Wend
sonst gibt es chez qui thread.pcu Schlüsselfeldsalat
cas wennoffen%=1:dbuse(#1)
cas dannoffen%=1:dbuse(#2)
Ablaufbox abfragen
si getfocus(ablaufbox&)
setfocus(%hwnd)
endif
endproc
salut Georg |
|
|
| |
|
|
|
Robert Hildebrand | je muss 6 serielle Schnittstellen abfragen et qui données dans un Dossier écrivons. Angschlossen sommes jeweils un Vielfachmessgerät avec welchen je jeweils Strom, Spannung, Frequenz usw. abfragen muss. malheureusement peux je qui données encore pas einmal sur dem Bildschirm voyons. je benutze cela Beispielprogramm aus qui Profan-Aider. Vielleich peux Du mir aider.
Robert |
|
|
| |
|
|
|
Sato Pinto | allô Robert
Vormal vergiss qui 6 Schnitstellen et schreibe den Program so cela d'abord une Schnitstelle funktioniert, ensuite voyons wir plus. Es wurde aussi aider den code ici trop postet avec cela nous voyons peut fals là eventuell quelque chose geändert volonté sollte
Grus
Sato |
|
|
| |
|
|
|
GDL | Habe malheureusement aucun 6 Schnittstellen.Daher pas funktionüberprüft. KompilierenMarqueSéparationdeclare com&[6],ende&,erfolg%,anzahl%,comname$,wert$
cls
Schnittstellen vorbereiten
anzahl%=1
whilenot anzahl% > 6
comname$=Com+str$(anzahl%)+:
com&[anzahl%]=opencom(comname$,4096,4096)
erfolg%=SetCom(comname$+9600,N,8,1)
case erfolg% = 0: print comname$+ erfolgreich geöffnet.
casenot erfolg% = 0: print comname$+ nicht geöffnet.
erfolg%=setcomext(com&[anzahl%],0,0,0,$001,0,0) Bei manchen Rechnern nötig
inc anzahl%
wend
================== Ende Vorbereiten
################## Unterprogramme ####################
proc empfangen
declare comwert$,leswert$
clear wert$
comwert$=@ReadCom$(com&[anzahl%],1)
@ComError(com&[anzahl%])
leswert$= str$(ord(comwert$))
wert$=leswert$
whilenot comwert$=
comwert$=@ReadCom$(com&[anzahl%],1)
@ComError(com&[anzahl%])
leswert$=str$(ord(comwert$))
wert$=wert$+leswert$
wend
drawtext 100,100, wert$
endproc
====================================================
################ Hauptschleife ###########################
whilenot ende&
settimer 10 Bestimmt die Zugriffszeiten
waitinput
killtimer
anzahl%=1
whilenot anzahl% > 6 Abfrageschleife
empfangen
inc anzahl%
wend
wend
######################## Ende Hauptschleife #####################
Schnittstellen wieder schließen
anzahl%=1
whilenot anzahl% > 6
closecom(com&[anzahl%])
inc anz Wend
salut Georg |
|
|
| |
|
|
|
Robert Hildebrand | seulement la fois Dank Euch allen. suis maintenant soweit, dass je quelque chose angezeigt bekomme, s. Screenshot et Quellcode. j'ai maintenant seulement la fois une Schnittstelle abgefragt. Bringt mich mais encore pas so richtig plus solange je keinen Klartext angezeigt bekomme.
Gruss
Robert
Nachtrag: Sorry, qui Grafik fehlte. |
|
|
| |
|
|
|
Robert Hildebrand |
|
|
| |
|
|
|
GDL | allô Robert probier simple la fois meinen Code 1trop1 aus et berichte.
salut Georg |
|
|
| |
|
|