Serielle Abfrage ohne zu wissen was dran ist ?!

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
ABBKlaus
Beiträge: 61
Registriert: 15.03.2006 22:09
Wohnort: Ratingen
Kontaktdaten:

Beitrag 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)
Zuletzt geändert von ABBKlaus am 18.03.2006 16:20, insgesamt 2-mal geändert.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag 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:
Basic Pur = PureBasic
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag 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
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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]
Zuletzt geändert von Falko am 18.03.2006 18:30, insgesamt 1-mal geändert.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

Danke, Falko!

Anscheinend bin ich wieder der einzigste Dumme, der sein DigiSchätzeisen
nicht kennt... :wink:
Basic Pur = PureBasic
Benutzeravatar
ABBKlaus
Beiträge: 61
Registriert: 15.03.2006 22:09
Wohnort: Ratingen
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ABBKlaus
Beiträge: 61
Registriert: 15.03.2006 22:09
Wohnort: Ratingen
Kontaktdaten:

Beitrag 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:
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ABBKlaus
Beiträge: 61
Registriert: 15.03.2006 22:09
Wohnort: Ratingen
Kontaktdaten:

Beitrag von ABBKlaus »

Ja genau diese verwenden wir :mrgreen:
Antworten