Seite 3 von 4

Verfasst: 17.03.2006 23:26
von ABBKlaus
Hi,
Hier ein kleines testprogramm für die MVCOM library von Marc Vitry
Hat mir jedenfalls bisher gute dienste geleistet /:->
Übrigens der handshake sollte auf 0 stehen bei Geräten die nur über zwei Leitungen verfügen (RXD/TXD).

Geräte die damit bisher gut funktionieren :
Mitutoyo Digitale Schieblehre
Datalogic DLL5510 (Barcode Laserscanner)
Datalogic Gryphon M100 (Barcode Laserscanner)
Datalogic FireScan D131 (Barcode Laserscanner)
Symbol FZT302 (Barcode Laserscanner)
Diverse Spannungquellen von Chroma und Genesys
BasicTiger (Ein-Chip Microcontroller)

Code: Alles auswählen

; ComPortTest (PB4B7)
; Benötigt MVCOM-Library von Marc Vitry 
; http://www.purearea.net/pb/download/userlibs/MVCOM_LIBRARY.zip

Procedure SendByte(Port,buffer.w)
  If ComSendByte(Port,@buffer,1)
    Debug "SendByte $"+RSet(Hex(buffer),2,"0")
  Else
    Debug "SendByte error"
  EndIf
EndProcedure

If OpenWindow(0,0,0,250,250,"COM Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  CreateGadgetList(WindowID(0))
  ButtonGadget(1,10,10,50,20,"STX")
  ButtonGadget(2,60,10,50,20,"ETX")
  ButtonGadget(3,110,10,50,20,"ENQ")
  ButtonGadget(4,160,10,50,20,"LF")
  ButtonGadget(5,10,30,50,20,"FF")
  ButtonGadget(6,60,30,50,20,"CR")
  ButtonGadget(7,110,30,50,20,"NAK")
  ButtonGadget(8,160,30,50,20,"ACK")
  TextGadget(9,10,70,200,140,"",#PB_Text_Border)
  TextGadget(10,10,220,200,20,"",#PB_Text_Border)
  CheckBoxGadget(11,10,50,50,20,"DTR")
  CheckBoxGadget(12,70,50,50,20,"RTS")
  StringGadget(13,130,50,30,20,"0",#PB_String_Numeric)
  ButtonGadget(14,170,50,40,20,"Send")
  SetTimer_(WindowID(0),1,100,0)
EndIf

; cominit$="COM1:9600,N,8,1"

cominit$="COM3:4800,E,7,1"

Port=ComOpen(cominit$,0,1024,1024)
If Port
  SetGadgetText(10,cominit$+" Online")
EndIf

Repeat 
  Event=WindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1 ; STX
          SendByte(Port,2)
        Case 2 ; ETX
          SendByte(Port,3)
        Case 3 ; ENQ
          SendByte(Port,5)
        Case 4 ; LF
          SendByte(Port,10)
        Case 5 ; FF
          SendByte(Port,12)
        Case 6 ; CR
          SendByte(Port,13)
        Case 7 ; NAK
          SendByte(Port,21)
        Case 8 ; ACK
          SendByte(Port,6)
        Case 11 ; DTR
          ComSetDTR(Port,GetGadgetState(11))
        Case 12 ; RTS
          ComSetRTS(Port,GetGadgetState(12))
        Case 14
          SendByte(Port,Val(GetGadgetText(13))&$FF)
      EndSelect
    Case #WM_TIMER
      If Port>0
        While ComInputBufferCount(Port)>0
          rd.b=0
          ComReadByte(Port,@rd,1)
          Debug rd
          If rd>0
            If rd=13
              Debug ("SCAN COMPLETE : "+String$)
              hexstring$=""
              For i=1 To Len(String$)
                hexstring$+RSet(Hex(Asc(Mid(String$,i,1))),2,"0")+" "
              Next
              SetGadgetText(9,hexstring$+Chr(13)+String$)
              String$=""
            Else
              If rd>31
                String$+Chr(rd)
              EndIf
            EndIf
          EndIf
        Wend
      EndIf
  EndSelect
Until Event=#PB_Event_CloseWindow

ComClose(File)
CloseWindow(0)
[edit] Snippet hatte einen fehler :oops:
[edit] DTR DTS setzen / Wert senden hinzugefügt (danke für den Hinweis SVEN)

Verfasst: 18.03.2006 09:41
von Sylvia
>>ABBKlaus: Mitutoyo Digitale Schieblehre

Woooww ! :o Man lernt nie aus!

Diese Schieblehre habe ich auch. Ich wusste gar nicht, dass dieses Teil
eine ser.Schnittstelle besitzt. Habe sie mir jetzt mal genauer angesehen.
Und tatsächlich: ein unscheinbarer, kleiner Deckel (der nur mit einem
Werkzeug zu öffnen ist) links vom 'Hold'-Taster. Darunter verbirgt sich
(anscheinend) die serielle.

Hatte zwar noch nie das Bedürfnis, Messdaten von der Schieblehre mit
dem PC zu erfassen, aber könntest du mir mal die Belegung der Pins
posten ? :allright:

Verfasst: 18.03.2006 13:10
von Sven
Noch eine Idee: Es kann sein, dass die Waage nur Daten annimt, wenn die Handshake-Leitungen gesetzt sind. Möglich dass das Hyperterminal das von allein macht, und deswegen Dein eigenes Programm nicht funktioniert. Wieviel Leitungen gehen denn zur Waage?

Sollte kein Problem sein, noch zwei ButtonGadgets mit Toggle zu spendieren und dieses Snippet anzupassen:

Code: Alles auswählen

      ElseIf GadgetID = #giddtr  ;Status DTR
        ComSetDTR(hcom, GetGadgetState(#giddtr))
      ElseIf GadgetID = #gidrts  ;Status RTS
        ComSetRTS(hcom, GetGadgetState(#gidrts)) 
Viel Erfolg.

Sven

Verfasst: 18.03.2006 13:55
von Falko
Sylvia hat geschrieben:>>ABBKlaus: Mitutoyo Digitale Schieblehre

Woooww ! :o Man lernt nie aus!

Diese Schieblehre habe ich auch. Ich wusste gar nicht, dass dieses Teil
eine ser.Schnittstelle besitzt. Habe sie mir jetzt mal genauer angesehen.
Und tatsächlich: ein unscheinbarer, kleiner Deckel (der nur mit einem
Werkzeug zu öffnen ist) links vom 'Hold'-Taster. Darunter verbirgt sich
(anscheinend) die serielle.

Hatte zwar noch nie das Bedürfnis, Messdaten von der Schieblehre mit
dem PC zu erfassen, aber könntest du mir mal die Belegung der Pins
posten ? :allright:
http://www.mikrocontroller.net/forum/read-1-97612.html

[Edit] Hallo Silvia, hier ist noch was, was interessant werden könnte

PS. : Ich arbeite mit solchen Messchiebern und war früher selbst
in der Fertigungsüberwachung wo wir fertige Messcomputer von
Marposs haben und die Längenmessgeräte nur anschliessen
brauchen.

Aber nachbauen wäre jetzt, wo du fragst eine interessante Alternative.

http://www.jetcontrol.de/Bastelstube/yadro.html

[/Edit]

Verfasst: 18.03.2006 15:54
von Sylvia
Danke, Falko!

Anscheinend bin ich wieder der einzigste Dumme, der sein DigiSchätzeisen
nicht kennt... :wink:

Verfasst: 18.03.2006 16:19
von ABBKlaus
@Sylvia,

bin zwar auch ein Freund des Lötkolbens, aber wir haben in der Firma genug Interfaces und Leitungen gehabt um diese ohne Bastelei zu betreiben.

Verfasst: 19.03.2006 00:27
von Falko
Aha, deshalb das Logo <) http://www.abb.de/
Das hatte ich doch irgendwo schon mal gesehen.

Naja, falls jemand doch noch lieber löten möchte, habe ich
hier noch eine interessante Seite gefunden:

http://www.pcmx.net/gauge/

MfG Falko

Verfasst: 19.03.2006 00:52
von ABBKlaus
hab mir die Seite mal genauer angeschaut und folgendes gefunden :
This does not work the name brand instruments - Fowler, Mitutoyo, Brown & Sharpe, etc.
soll also heissen klappt nicht mit folgenden Herstellern ... :freak:

Verfasst: 19.03.2006 01:10
von Falko
Leider ist es so, wie du schreibst. Dafür gibt es wieder
fertige und teure Kauflösungen wie z.B. hier:
http://www.industrie-messmittel.de/mess ... /s_box.asp

Die obrigen Schaltungen beziehen sich auf die Chinesische Messschieber,
die man z.B. bei Pearl.de als auch Conrad.de günstig kaufen kann.

http://www.pearl.de/pearl.jsp?redir=yes ... reenY=1024

Bei diesen Modellen ist es auch nicht so schlimm, wenn man sie
als Messlineale für Koordinaten-Maschinen Zweckentfremdet.

MfG Falko

Verfasst: 19.03.2006 01:24
von ABBKlaus
Ja genau diese verwenden wir :mrgreen: