Hier stelle Ich ein Auslesesystem für Digitalmessschieber vor

gut geeignet für Fräsen und Drehbänke 

Es kommt mit relativ wenigen Komponenten aus ,man muß allerdings einen

ATmega8 Microcontroller programmieren - das ist aber ganz einfach !

Das Ursprüngliche Sytem stammt von

Hans Borngräber

http://www.roehrenkramladen.de/MAS2/MASV2_txt.htm

Zuerst einmal großes Lob an Hans Borngräber für seine super Seite !

Ich habe wie viele andere auch diesen System nachgebaut und hatte leider Messschieber verwendet die das 2x24bit Protokoll verwenden und hatte somit auch die selben Probleme wie Hans nur kamen noch ein paar mehr dazu als ich 3 Messschieber angeschlossen hatte und ich sie auslesen wollte !


Also suchte ich im Internet nach einer Lösung für mein Problem , doch leider fand ich nur einige Leute die das selbe Problem hatten wie ich - aber keine Lösung !

Von diesen Leuten erfuhr ich dann auch das Hans an dem Problem nicht mehr arbeiten möchte !?? warum weis ich leider nicht , ich selbst hatte versucht mit ihm per e-mail kontakt aufzunehmen, doch leider bis jetzt ohne erfolg ! 

Also machte ich mich an die arbeit und schrieb das Programm , von Hans , für das 24bit Protokoll um ,

mit Erfolg  

Die Messfehler sind weg , auch 3 Messschieber funktionieren ohne Beeinflussung tadellos , auch im fast-read Modus .

Hier meine "Black-Box" mit den Anschlussbuchsen der Messchieber


Also wenn Ihr Interesse an der Überarbeiteten Software habt - hier ist das Hex file und der Bascom-code ,in meinem Downloadordner - unter - eigene Software - Messschieberauslesesystem - Firmware für µController - Version 6.0

Download  (version 6.0)

Die Grundeinstellungen des Windows Hyperterminal bleiben gleich !

Diese Version ist auf wunsch eines netten Herr in grün / schwarz entstanden ( es sind auch andere Farben möglich , doch hat sich grün-schwarz als Augenfreundlich erwiesen )

Ihm möchte ich auch für die mithilfe Danken

Also Danke Peter !!!

Weiter technische Details erspare ich mir hier zu erklären , das haben andere schon sehr gut gemacht ! weitere Tipps und Erklärungen findet ihr auf

http://www.fingers-welt.de

und 

http://www.yadro.de

Dort ist alles super toll beschieben und ausgearbeitet !

!!! ACHTUNG !!! Neu Versionen


Ich habe mal wieder etwas Lust gehabt an diesem Projekt weiter zu arbeiten

und zu verbessern ,
Entstanden ist ein eigenes Terminal Programm , was jetzt alle Möglichkeiten der Weiterverarbeitung der Messdaten zuläßt und für zukünftige Projekte die Türen öffnet!



Für dieses Terminal Programm mußte eine neue Firmware für den µController geschrieben werden , da sämmtliche Rechenprozesse herrausgenommen und auf den PC ausgelagert wurden , somit ist der Code von 70% auf 11% Speicherbelegung zusammengeschrumpft !
Im Downloadbereich liegt die Firmwareversion V10 und das Programm
Messschieber - Terminal V11.0 das mit der Original Hardware von
Hans Borngräber läuft ohne Hardware umbauten!
Ab Firmware V10.5 und Programm V11.5 muß ein 14,7456MHz Quarzeingesetzt werden , da dieser fast keinen Baudratenfehler besitzt
(der 16MHz Quarz liegt bei 0,2% an der Grenze des zulässigen)

! Wichtiges zum Programm !

Bitte unbedingt erst alle Messschieber anschießen ( ist aber egal ob nur einer, zwei oder alle drei verwendet werden ) und dann erst die Stromverbindung herstellen !
Es werden nun alle Messschieber in den fast-read Modus versetzt - bitte prüfen ob das "F" auf dem LCD erscheint - falls nicht bitte den Reset-Taster an der " Black-Box " betätigen !
Sind die Messschieber nicht im fast-read Modus funktioniert das Terminal Programm NICHT !

Nun könnt ihr das Messschieber - Terminal Programm Starten ,
links oben die benutzte Schnittstelle auswählen und auf Verbinden drücken und rechts die verwendeten Messchieber anmelden ( NUR die ANGESCHLOßENEN Messschieber anmelden sonst kann da Programm blockieren )
Jetzt kann man noch die Lesegeschwindigkeit einstellen und natürlich auch einen Nullpunkt festlegen .
  Diese Software werde ich natürlich weiterentwickeln - so ist z.B. eine Radiusfunktion an allen Achsen geplant sowie der einbau einer USB Schnittstelle .

Über Lob und Kritik sowie Erweiterungswünsche zu meinem Programm würde ich mich feuen und wenn jemand einen ganz besonderen Wunsch hat (z.B. Darstellungen ) kann er sich ruhig an mich wenden !


 Ich muß aber nochmals erwähnen das alles Hier gezeigte nur Hobby ist und keinen Anspruch auf absolute Profesionalität hat !

Messdaten einlesen und auswerten


Ich werde immer wieder angeschrieben und gefragt wie nun die Messschieber richtig ausgelesen und die
Werte errechnet werden , also versuche ich euch einmal zu erklären wie das für das
2x24 BIT Protokoll (was ich bis jetzt immer hatte) funktioniert.

Wie schon erwähnt werden 2 Datenpakete a' 24 Bit vom Messchieber gesendet.
Diese Datenpakete enthalten nur die reinen Messwerte  - kein Hold usw.
Das erste paket ist für uns Uninteressant , es enthält "nur" die absolute Position des Messschlittens , dieser Wert ändert sich bei jedem ausschalten bzw Neustart und ist somit für uns nutzlos , das zweite Paket enthält die relative position , diese wird auf dem LCD angezeigt und kann durch "ZERO" genullt werden .
Meine Vermutung ist das der eigentliche " Anzeigewert "aus dem 1. und 2. Paket zusammen errechnet wird
und somit die Anzeige ruhiger wird , leider konnte ich diesen Zusammenhang noch nicht beweisen.

Also beschränken wir und auf das 2. Datenpaket. Es besteht aus 24 bit und wird als
"negatives" Zweierkomplement übertragen .
Negativ deshalb weil beim Zweierkomplement normalerweise das höchste - linke - Bit bei einem negativen Vorzeichen eine 1 ist und bei positiven eine 0 , hier habe ich allerdings die Daten bis jetzt immer genau
umgedreht empfangen , also für negativ eine 0 und für positiv eine 1 .

Nun zum rechnen , ihr könnt nun die Werte binär oder auch dezimal rechnen , das ist euch überlassen.
Ich habe allerdings festgestellt das das binäre Rechensystem unter Bascom langsamer rechnet als
das dezimale - das hängt zum einen mit dem Bascom ShiftIn Befehl zusammen , da hier der messwert nach der Erfassung auf 24 Bit gekürzt werden muß und zum anderen an dem zusätzlichen Schritt des abfragens des höchsten - linken- Bit , hier kann binär schneller gerechnet werden .
( vieleicht liegt es aber auch an mir !? )
Für die Rechnerei sind also die 23 bit zu gebrauchen , die Mase werden in "Zoll" übertragen , wobei ein Zoll 40960 Messpunkte hat , also 1/40960 Zoll .
Wenn ihr euch nun den Messwert anschaut und den Messschieber in negative Richtung verschiebt , werdet ihr feststellen das sich der Wert von 0 weg erhöht und in positiver Richtung vom 16777215 (24Bit) reduziert .
8388607(23Bit) < - 0-1677215 - > 8388607 (23Bit)
Ist also der Messwert  gößer 8388607 dann sind die Werte positiv , ist er kleiner dann negativ.
Wenn er nun im positiven Bereich liegt muß von ihm der Wert 16777215 + 1 abgezogen werden ,
damit der Rechenwert im positiven Bereich auch vorwärts zählt .
Nun noch in den metrischen Bereich umrechnen , hier müßen wir bedenken das der µC mit Ganzzahlen schneller rechnet als mit Zahlen mit Kommastelle .
Ein Zoll hat bekanntlich 2,54 mm also rechnen wir den Wert mal 254 und teilen ihn durch die Anzahl der Messpunkte je Zoll , also 40960 , als Ergebnis erhalten wir genau die 1/10 mm allerdings mit verdrehten
Vorzeichen , nun nur noch durch -10 teilen und das Ergebnis ist Perfekt !

Wert = Wert * 254
Wert = Wert / 40960
Wert = Wert /-10
 


Das ganze kann man auch noch etwas Optimieren , so kann z.B. die 254 und die 40960 halbiert werden in 127 und  20480 , weiter kann der schritt mit / -10 herausgenommen werden , indem man zuvor die 20480 um eine Stelle auf 204800 erhöht und gleich /- 204800 rechnet.

Wert = Wert * 127
Wert = Wert / - 204800
 
Ich hoffe ihr habt meine Ausführung verstanden !?
Im Ordner Bascom-Code findet ihr das passende Programm dazu mit Umschaltung für Hold und Fast-Read .
Bei Bedarf erleutere ich dies auch noch , und wie schon erwähnt gibt es auch noch andere Protokolle die ich natütrlich nicht alle kennen kann .