Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Auswertung elektr. Waage

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
muerzi



Anmeldungsdatum: 18.01.2010
Beiträge: 2

BeitragVerfasst am: 18.01.2010, 08:45    Titel: Auswertung elektr. Waage Antworten mit Zitat

Hallo Liebe Gemeinde

Habe von einer Firma günstigst eine elektronische Waage erstanden.
(Etwas älteres Modell ~ 1993)
Jetzt möchte ich diese auf dem Hof meines Vaters aufstellen um allerhand zu wiegen (Kühe, Pferde, Schafe), aber egal.

Leider habe ich den PC dazu nicht bekommen um die Messdaten anzeigen zu können --> Aus Datenschutzgründen konnten sie mir den PC nicht geben.

Die Firma hat mir aber ein BASIC programm gegeben das die Daten über die Serielle SChnittstelle des PC's liest.
Größtenteils habe ich es schon in VB6 übersetzt, nur da wos im die "Wurst" geht komm ich einfach nicht weiter

Könnt ihr mir bitte helfen?

Code:

konfig$ = "100001101111"
 werte! = 0              'Ger„t konfigurieren und Messwerte holen
 Counter% = 0
 Do
   b% = 2048
   vout% = 0
 For I% = 12 To 1 Step -1
       OUT outadr%, (&HFE And INP(outadr%))      'DTR auf 0 setzen
       Select Case Mid$(konfig$, 13 - I%, 1)
       Case "0"
          OUT outadr%, (&HFD And INP(outadr%))   'RTS auf 0 setzen
       Case "1"
          OUT outadr%, (&H2 Or INP(outadr%))     'RTS auf 1 setzen
      End Select
  OUT outadr%, (&H1 Or INP(outadr%))             'DTR auf 1 setzen
  If (INP(inpadr%) And &H10) <> &H10 Then
      d% = 0                                     'CTS auf 1 setzen
  Else
      d% = 1                                     'CTS auf 0 setzen
  End If
  vout% = vout% + d% * b%
  b% = b% / 2
Next I%
OUT outadr%, (&HFD And INP(outadr%))             'RTS und DTR auf 0 setzen
OUT outadr%, (&H2 Or INP(outadr%))               'RTS auf 1 setzen
Select Case vout%
Case Is >= 2048
vout% = vout% - 4096
Case Else
vout% = vout%
End Select
werte! = werte! + vout%
If Counter% <= 0 Then werte! = 0        'Erste Messung wird verworfen,
Counter% = Counter% + 1                 'weil vorherige Konfiguration
Loop While Counter% <= anzahl%          'noch gltig.



Wies aussieht werden die Daten über RTS, DTR, CTS übertragen.
Wird hier RS232 benutzt oder eine Abwandlung.
RS232 sendet IMHO ja über Rx und Tx.

thx schon mal!

mbg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 18.01.2010, 11:21    Titel: Antworten mit Zitat

Sieht so aus als wenn der Controller in der Waage über RTS und DTR gesteuert wird (lesen bei fallender Flanke) aber die eigentlichen Datenbits werden nicht wie Dokumentiert über CTS gelesen sondern "normal" über RX

IN VB6 benutzt du Das Commctrl um die Leitungen zu Treiben
oder machst Du das mit einer DLL für Portzugriffe über IN/OUT ?

Nur mal so am Rande welche Port's stehen denn in Input%/Output% ?

Micha
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
muerzi



Anmeldungsdatum: 18.01.2010
Beiträge: 2

BeitragVerfasst am: 18.01.2010, 12:03    Titel: Antworten mit Zitat

Hallo micha

das ist nur der Ausschnitt aus dem "BASIC" Programm das mit vorliegt.
Ich übersetze es nun in VB6 damit ich eine schöne GUI bekomme.
Auserdem wurde mir gesagt das die Waage nur mit einem URALT Rechner funktioniert, warum konnten sie (Firma) mir auch nicht sagen.
Wie man gezielt Leitungen in VB6 anspricht muss ich erst mal googeln.
Aber über RS232 string versenden ist kein Problem.

Zu deiner Frage zu den Adressen

Code:

Select Case port%               
        Case 1
          inpadr% = &H3FE
          outadr% = &H3FC
        Case 2
          inpadr% = &H2FE
          outadr% = &H2FC
        Case 3                 
          inpadr% = &H33E       
          outadr% = &H33C         
        Case 4
          inpadr% = &H23E
          outadr% = &H23C
End Select


mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 18.01.2010, 20:41    Titel: Antworten mit Zitat

Am besten uns genauer Hersteller und Typ dieser Waage angeben, denn vielleicht lässt sich ja ein Manual im Internet noch dazu finden.

Ansonsten einmal ganz ehrlich: Wird keinerlei reguläres RS-232-Protokoll mit Zeichen unterstützt, für welches Du ganz normal OPEN "COMx:" mit z.B. 9600,N,8,1 o.ä. machen kannst?

Tipp: Ich würde sonst einmal mit HyperTerminal noch etwas spielen!
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 107

BeitragVerfasst am: 19.01.2010, 18:22    Titel: Antworten mit Zitat

Zitat:
Auserdem wurde mir gesagt das die Waage nur mit einem URALT Rechner funktioniert, warum konnten sie (Firma) mir auch nicht sagen.


Wahrscheinlich, weil INP und OUT ab Win 2000 / NT nicht funktionieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 20.01.2010, 17:42    Titel: Antworten mit Zitat

InpOut32.dll
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz