vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: wie steuere ich eine Serielle Schnittstelle an? 
Autor: T.i.m.
Datum: 29.03.05 00:44

opatzki schrieb:
Zitat:

als erstes kommt fehlermeldung bei CLS: CLEAR

Ist klar weil das ganze unter Q(uick)Basic sprich unter DOS läuft.

Also Du benötigst erstmal auf der Form ein MSCOMM1 Objekt was noch mittel RechteMaustaste auf der ToolLeiste >Komponenten...< eingebunden dazu aktivire > Microsoft Comm Control 6.0 <

Leider hab ich das Gerät von Conrad nicht, daher bring es net viel Dir ein fertiges Projekt aufzubauen, musst es mal selbst etwas heraustüfteln:

Aber zum initalisieren musst Du folgendes anpassen:
CLS : CLEAR
DIM inbuf(800)
DIM outbuf(8)
OPEN &quot;com2:19200,n,8,1,bin,cs,ds&quot; For random as #1
' --- INTERRUPT SERIAL INTEFACE ON ---
COM(2) ON
ON ERROR GOTO BADCOM

Public inbuf(800) As Integer
Public outbuf(8) As Integer
 
On Error Goto BadCom
    With MSComm1
        .Settings = "19200,n,8,1"
        .PortOpen = False
        .CommPort = 2 ' <--- Com-Port 2, musste vielleicht auf 1 setzen !!!
        .PortOpen = True
    End With
ON COM(2) GOSUB GETFRAME

kein plan
' --- INITIALIZE RELAIS BOARD ---
PRINT &quot;INITIALIZE BOARD&quot;
outbuf(0) = 1 : outbuf(1) = 1: outbuf(2) = 0 : GOSUB Send-
frame
FOR delay = 1 To 10000000: NEXT: CLS

    outbuf(0) = 1
    outbuf(1) = 1
    outbuf(2) = 0
    SendFrame MSComm1
Für den neuen Befehl SendFrame folgendes in einem Modul einbinden:
Public Sub SendFrame(oCOM As Object)
 
    Dim sSend As String
 
    outbuf(3) = outbuf(0) Xor outbuf(1) Xor outbuf(2)
    sSend = Chr$(outbuf(0)) + Chr$(outbuf(1)) + Chr$(outbuf(2)) + Chr$(outbuf( _
      3))
 
    oCOM.Output = sSend
 
End Sub
' --- SWITCH RELAIS ---
teststart:
r=1
rt:
Outbuf(0) = 3 : outbuf(1) = 1 : outbuf(2) = r: GOSUB sendframe
For delay = 1 To 1000000: NEXT:CLS
r=r* 2: IF r&lt; 256 THEN GOTO rt
GOTO teststart

Könnt so in der Art sein:
    Dim r As Integer
    Dim delay As Long
 
    ' --- SWITCH RELAIS ---
    ' Do
        r = 1
        Do
            outbuf(0) = 3
            outbuf(1) = 1
            outbuf(2) = r
            SendFrame MSComm1
            For delay = 1 To 1000000: Next ' <-- Dient wohl als Pause?
            r = r * 2
            If r >= 256 Then Exit Do
        Loop
'-- Serial Communikation --
'-- Read 4 Byte Dataframe--

GETFRAME:
inbuf(bz) = ASC(INPUT$(1,#1))

inbuf(bz) = Asc(MSComm1.Input)
naja versuch mal Dein Glück, wenn Probleme auftauchen kannst ja nochmal hier posten

*greetz*
Tim
.
http://www.DotNetWorld.de

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
wie steuere ich eine Serielle Schnittstelle an?834opatzki27.03.05 23:05
Re: wie steuere ich eine Serielle Schnittstelle an?616T.i.m.28.03.05 02:16
Re: wie steuere ich eine Serielle Schnittstelle an?649opatzki28.03.05 14:09
Re: wie steuere ich eine Serielle Schnittstelle an?665T.i.m.29.03.05 00:44

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel