| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		muerzi
 
 
  Anmeldungsdatum: 18.01.2010 Beiträge: 2
 
  | 
		
			
				 Verfasst am: 18.01.2010, 08:45    Titel: Auswertung elektr. Waage | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		micha
 
 
  Anmeldungsdatum: 09.12.2005 Beiträge: 72
 
  | 
		
			
				 Verfasst am: 18.01.2010, 11:21    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		muerzi
 
 
  Anmeldungsdatum: 18.01.2010 Beiträge: 2
 
  | 
		
			
				 Verfasst am: 18.01.2010, 12:03    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		dreael Administrator
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 2531 Wohnort: Hofen SH (Schweiz)
  | 
		
			
				 Verfasst am: 18.01.2010, 20:41    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		HorstD
 
 
  Anmeldungsdatum: 01.11.2007 Beiträge: 110
 
  | 
		
			
				 Verfasst am: 19.01.2010, 18:22    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 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 | 
		 | 
	
	
		  | 
	
	
		28398
 
 
  Anmeldungsdatum: 25.04.2008 Beiträge: 1917
 
  | 
		
			
				 Verfasst am: 20.01.2010, 17:42    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				| InpOut32.dll | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |