Español
Foro

Relaiskarte serielle Schnittstelle y Profano

 
- Página 1 -



Herbert
N.
¡Hola

Hab el problem el Yo el serielle 8-fach Relaiskarte de Conrad no ansprechen kann
en Qbasic klakerts

Yo verwende Prf 5.0 / Winme / P700 ( net lachen el is bien genug para solche Sachen grins )

hier una bischen programm para studieren Yo falso mache:
KompilierenMarcaSeparación
Declare h%,e%,a$,b$,c$,d$,e$,f$,g$
Declare Init$,Kanal1$,id%,Pause&
@CloseCom(COM1)

proc Pause

    let Pause& = &GetTickCount
    Let Pause& = @ADD(Pause&,100)

    while @GT(Pause&,&GetTickCount)

    wend

endproc

Font 1
let id% = COM1
LET h% = @OpenCom(id%,1024,1024)
@SetCom(id%:19200,N,8,1)
@SetComExt(id%,10,0,0,$0001,0,0)
LET f$ = @ReadCom$(id%,4)
Pause
LET g$ = @ComError(id%)
Pause
let Init$=CHR$(1),CHR$(5)CHR$(2),CHR$(6)
let Kanal1$=CHR$(3),CHR$(5),CHR$(8),CHR$(14)
print  Fehler  : ;@ComError(COM1)
@WriteCom(h%,Init$)
pause
@ReadCom$(id%,4)
Pause
@WriteCom(h%,Kanal1$)
Pause
print Init$
Print id%
LET f$ = @ReadCom$(id%,4)
Pause
print  Fehler  : ;@ComError(id%)
print  Gelesen : ;f$
Pause
print  Gelesen : ;@ReadCom$(id%,4)
Pause
@CloseCom2>(id%)

Gracias en el voraus
 
26.02.2006  
 



 
- Página 3 -



GDL
¡Hola Detlef,

como Yo sí deine Karte para Testen no habe, musst du para mich el Testen.
Erst con Init deine Kartennummer (Así que el Vorgegebene dejar) senden.
Dann irgendein Relais con el Button S conjunto y Senden drücken.

Rückmeldungen kommen todavía no.Möchte sólo wissen si qué va.

Servus
Georg

730 kB
Hochgeladen:17.01.2007
Ladeanzahl33
Descargar
 
Windows7 Xprofan 8,9,10 [...]  [...] 
17.01.2007  
 




GDL
¡Hola Detlef,

Yo kopiere deine PM veces hierher, si alguien todavía esta Karte haann weiß él el lo a hier va.Bitte siempre hier Problembezogen antworten.Gracias.

¡Hola Georg

Yo bin begeistert, lo funktioniert.

Mein Problema es gelöst, Yo Relais einschalten, (el podría Yo vorher auch) aber nun kann Yo todos Relais auch ausschalten.

Usted bist una GENIE

kannst du me todavía verraten como Si es usted el geschaft hast.

m. f. G. Detlef

Yo kümmere mich ahora todavía a Rückmeldungen y luego poste Soy un dokomentierten Ver código fuente.
Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
20.01.2007  
 




GDL
Hier primero el jetzige Rohfassung
KompilierenMarcaSeparación
Bildschirmauflösung ist 1024*768
Xprofan 10                  sollte mit Xprofan 9 auch gehen
declare ende%,font&,kommando&,adresse&,daten&,pruef&,text&[30]	Bildschirmcontrols
declare init&,senden&,setzen&,ruecksetzen&
declare set&[8],reset&[8]
declare skommando%,sadresse%,sdaten%,spruef%			Sendebytes
declare ekommando%,eadresse%,edaten%,epruef%,hilfe%,hilfe1%	Empfangbytes
declare telegramm$,anzahl%
declare num%,num$,com1&,fehler%,x%,wert%,bwert$,aktion%,t$,n$,rahmen&[3]
usermessages 16
Def GetSysColor(1) !USER32, GetSysColor
font&=@Create(Font,Courier new,18,9,0,0,0)			Schriftfont
window 0,0-%maxx,%maxy						max.Fenstergrösse
cls getsyscolor (15)						Mit Systemfarbe löschen
kommando&=create(choicebox,%hwnd,1,50,120,45,210)
setfont kommando&,font&						Controls mit Schriftart bestücken
adresse&=create(choicebox,%hwnd,1,250,120,45,210)
setfont adresse&,font&						Controls mit Schriftart bestücken
daten&=create(edit,%hwnd,00000000,450,120,80,20)
setfont daten&,font&
sendmessage(daten&,$00CF,1,0)					Nur Leseedit
pruef&=create(edit,%hwnd,00000000,650,120,80,20)
setfont pruef&,font&						Controls mit Schriftart bestücken
sendmessage(pruef&,$00CF,1,0)					Nur Leseedit
init&=create(button,%hwnd,Init,50,300,50,20)
setfont init&,font&
senden&=create(button,%hwnd,Senden,50,600,60,20)
setfont senden&,font&
x%=50
num%=1

whilenot num% > 8

    set&[num%]=create(button,%hwnd,S,x%,420,20,20)
    reset&[num%]=create(button,%hwnd,R,x%+25,420,20,20)
    x%=x%+110
    inc num%

wend

Rahmen setzen
rahmen&[1]=@Create(GroupBox,%hwnd,Relaise Setzen und Rücksetzen,40,350,900,110)
setfont rahmen&[1],font&
rahmen&[2]=@Create(GroupBox,%hwnd,Die richtige Kartenadresse initialisieren,40,250,900,80)
setfont rahmen&[2],font&
===================== Ab hier Proceduren =======================================

Proc vorbereiten

    text&[0]=create(text,%hwnd,Alle voreingestellten Werte beziehen sich auf Karte eins. Die COM1 wird benutzt.,50,10,900,20)
    setfont text&[0],font&
    text&[1]=create(text,%hwnd,Kommando,50,90,100,20)
    setfont text&[1],font&
    text&[2]=create(text,%hwnd,Adresse,250,90,100,20)
    setfont text&[2],font&
    text&[3]=create(text,%hwnd,Daten,450,90,100,20)
    setfont text&[3],font&
    text&[4]=create(text,%hwnd,Pruefsumme,650,90,100,20)
    setfont text&[4],font&
    text&[5]=create(text,%hwnd,Die RS232 wurde ,50,40,600,20)
    setfont text&[5],font&
    text&[6]=create(text,%hwnd,nach Drücken von Init unter Adresse die  Kartennummer eingeben und Senden drücken ,130,300,750,20)
    setfont text&[6],font&
    text&[7]=create(text,%hwnd,Relais 1    Relais 2    Relais 3    Relais 4    Relais 5    Relais 6    Relais 7    Relais 8,50,380,850,20)
    setfont text&[7],font&
    text&[8]=create(text,%hwnd,Alle Ausgaben zur Karte werden durch Drücken des Sendebutton erst ausgegeben,120,600,850,20)
    setfont text&[8],font&
    text&[9]=create(text,%hwnd,Es wurden 0 Zeichen ausgegeben ,120,620,850,20)
    setfont text&[9],font&
    clear num%
    Kommandobox bis 6 und die Restlichen bis 8 bestücken

    whilenot num% > 8

        num$=right$(0+str$(num%),2)				aus 1 wird 01 usw.

        if num% < 6

            addstring(kommando&,num$)			Auswahlboxen mit Zahlen bestücken
            addstring(adresse&,num$)

        else

            addstring(adresse&,num$)

        endif

        inc num%

    wend

    Ende Bestücken
    Werte vorgeben
    SendMessage(kommando&,334,0,0)
    SendMessage(adresse&,334,0,0)
    SendMessage(daten&,334,0,0)
    COM1 öffnen und initialisieren
    com1& = @OpenCom(COM1,1024,1024)
    fehler% = @SetCom(com1&,COM1:19200,N,8,1)
    Ergebnis

    if fehler%=0

        settext text&[5],Die RS232 wurde erfolgreich geöffnet.

    else

        settext text&[5],Die RS232 konnte nicht geöffnet werden.

    endif

    num%=1

    whilenot num% > 8

        enablewindow reset&[num%],0
        inc num%

    wend

endproc

================================================================================

proc initial

    SendMessage(kommando&,334,1,0)
    SendMessage(adresse&,334,1,0)
    enablewindow kommando&,0				sperren
    settext daten&,00000000
    hilfe%=val(gettext$(kommando&))
    hilfe1%=val(gettext$(adresse&))
    spruef%=xor(hilfe%,hilfe1%)
    bwert$=right$(0000000+bin$(spruef%),8)
    settext pruef&,bwert$

endproc

=========================================================================

proc senden

    if aktion%=0

        Let t$=Bedienfehler
        Let n$=Erst Karte initialisieren !
        MessageBox(n$,t$,48)
        return

    endif

    enablewindow kommando&,1				freigeben
    skommando%=val(gettext$(kommando&))
    sadresse%=val(gettext$(adresse&))
    sdaten%=val(gettext$(daten&))
    telegramm$=chr$(skommando%)+chr$(sadresse%)+chr$(sdaten%)+chr$(spruef%)
    anzahl%=writecom(com1&,telegramm$)
    settext text&[9],Es wurden +str$(anzahl%)+  Zeichen ausgegeben.
    @ComError(com1&)

endproc

=================================================================

proc sauswerten

    beep
    case num%=1:wert%=wert%+1
    case num%=2:wert%=wert%+2
    case num%=3:wert%=wert%+4
    case num%=4:wert%=wert%+8
    case num%=5:wert%=wert%+16
    case num%=6:wert%=wert%+32
    case num%=7:wert%=wert%+64
    case num%=8:wert%=wert%+128
    enablewindow set&[num%],0
    enablewindow reset&[num%],1
    bwert$=right$(0000000+@Bin$(wert%),8)
    settext daten&,bwert$
    SendMessage(kommando&,334,3,0)
    SendMessage(adresse&,334,1,0)
    enablewindow kommando&,0
    fehlerbyte

endproc

=============================================================

proc rauswerten

    beep
    case wert% < 1:return
    case num%=1:wert%=wert%-1
    case num%=2:wert%=wert%-2
    case num%=3:wert%=wert%-4
    case num%=4:wert%=wert%-8
    case num%=5:wert%=wert%-16
    case num%=6:wert%=wert%-32
    case num%=7:wert%=wert%-64
    case num%=8:wert%=wert%-128
    enablewindow set&[num%],1
    enablewindow reset&[num%],0
    bwert$=right$(0000000+@Bin$(wert%),8)
    settext daten&,bwert$
    SendMessage(kommando&,334,3,0)
    SendMessage(adresse&,334,1,0)
    enablewindow kommando&,0
    fehlerbyte

endproc

==================================================

proc fehlerbyte

    hilfe%=val(gettext$(kommando&))
    hilfe1%=val(gettext$(adresse&))
    spruef%=xor(hilfe%,hilfe1%)
    hilfe%=val(gettext$(daten&))
    spruef%=xor(spruef%,hilfe%)
    bwert$=right$(0000000+bin$(spruef%),8)
    settext pruef&,bwert$

endproc

=================================================================
vorbereiten

whilenot ende%

    waitinput

    if %umessage = 16

        ende%=1
        closecom(com1&)
        deleteobject font&

    elseif clicked(init&)

        aktion%=1
        initial

    elseif clicked(senden&)

        senden

    elseif clicked(adresse&)

        fehlerbyte

    endif

    num%=1

    whilenot num% > 8

        case clicked(set&[num%]):sauswerten
        case clicked(reset&[num%]s2>):rauswerten
        inc num%

    wend

wend


Hoffe lo va con deiner 9ner Fassung.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
20.01.2007  
 




Detlef
Tussing
Yo habe una solución a Steuerung el CONRAD Relaiskarte gefunden(dank GDL) aber con PROFAN 9.0 gehts no, con 9.1 y 10.0 gehts

3 kB
Kurzbeschreibung: Yo hoffe lo hilft jemanden
Hochgeladen:06.02.2007
Ladeanzahl77
Descargar
 
Gruß Detlef Tussing
Windows XP, XProfan 10
06.02.2007  
 




Detlef
Tussing
Sorry
saber mich no tan de
hier el Programa
KompilierenMarcaSeparación
Steuerung von 1 Schranke, 10 Tore und 3 Lampengruppen über FMS-Signal per Funk und der AuswerteSoftware HEIRO
der Freiwilligen Feuerwehr Grevenbroich
dies ist der Script für zum öffnen der Schrank, Tor 10 öffnen und Innenbeleuchtung von Tor 10 - 1 einschalten.
es sind 2 Relaiskarten angeschlossen
die PRINT Befehle sind nur zu Prüfzwecken
Detlef Tussing
Mitglied der Freiwilligen Feuerwehr Grevenbroich
Bei den anfangsschwierigkeiten (Ich kenne XPROFAN erst seit Dezember 2006) hat mich GDL unterstüzt. Nochmal vielen Dank an dich
Declare d&,f$,g&,c&,a&,b&,E$,Bit0%,Bit1%,Bit2%,Bit3%,komando$,adresse$,Daten$,Prüfbit$,x&
ptype$(d&)
d& = @Opencom("COM1",1024,1024)
@Setcom("com1:19200,N,8,1")
comerror(d&)

Proc Senden         Prüfbit berechnen

    Bit0%=val(a&)
    Bit1%=val(b&)
    Bit3%=xor(bit0%,bit1%)
    Bit2%=val(c&)
    Bit3%= Xor(Bit3%,Bit2%)
    E$=chr$(a&)+chr$(b&)+chr$(c&)+chr$(Bit3%)
    Writecom(d&,E$)
    comerror(d&)
    sleep 500

Endproc

Proc Fehler

    MessageBox("Schranke und Tor konnte nicht geöffnet werden.
    Bitte manuell öffnen.","",48)
    closecom(d&)
    end

endproc

Proc Lesen

    while x&<16

        F$ = @Readcom$(D&,1)
        comerror(D&)
        sleep 50
        x&=x&+1
        print " lese : ";@ord(F$)

    endwhile

endproc

proc komando

    Komando$ = @Readcom$(D&,1)
    comerror(D&)
    sleep 50
    print " Status  : ";@ord(Komando$)

endproc

proc adresse

    Adresse$ = @Readcom$(D&,1)
    comerror(D&)
    sleep 50
    print " Adresse : ";@ord(Adresse$)

endproc

proc daten

    Daten$ = @Readcom$(D&,1)
    comerror(D&)
    sleep 50
    print " Daten   : ";@ord(Daten$)

endproc

proc prüfbit

    Prüfbit$ = @Readcom$(D&,1)
    comerror(D&)
    sleep 50
    print " Prüfbit : ";@ord(Prüfbit$)

endproc

a&=1
b&=1
c&=0
senden
lesen
a&=3    Sende
b&=1    an Karte 1
c&=1     Relais 1 ein Schranke auf
senden
komando

if @ord(Komando$)= 252   Prüfen ob der 1. Befehlsfolge fehlerfrei übertragen wurde

    Adresse

else

    Fehler

endif

if @ord(Adresse$)=1

    Daten

else

    Fehler

endif

if @ord(Daten$)= 1

    Prüfbit

else

    Fehler

endif

if @ord(Prüfbit$)= 252

    test

else

    Fehler

endif

b&=2  Karte 2
c& =4 Relais 3 ein Tor 10 auf
senden
b&=2  Karte 2
c&=60 Relis 4- 6 ein Lampengruppe 1- 3 an
senden
b&=0  Karte 1&2
c&=0  alle Relaiss aus
senden
closecom(D&)lass=s4 href='./../../funktionsreferenzen/XProfan/waitinput/'>waitinput
end
 
Gruß Detlef Tussing
Windows XP, XProfan 10
06.02.2007  
 



Hehe tal vez kann GDL Usted auch el con el [CODE]-Tags erklären. *g* Ach obwohl - Hago esto anders...
 
06.02.2007  
 




GDL
¡Hola Detlef,

du hältst dich no a media Beispielcode.Usted must siempre sólo todos Relais binär en el deseado Stand conjunto y luego esta Valor en una variable umsetzen .
Aber el macht ahora nichts.
Beschreibe me genau qué du möchtest y luego conjunto wir lo gemeinsam en.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
08.02.2007  
 




Detlef
Tussing
¡Hola Georg

Mein Prog se ejecuta aber zuverlässig en Feuerwehr,
qué media du Yo todavía ändern debería ?

Das Prog debería en Dauer störungsfrei laufen, y por lo tanto bin Yo en jede
Ayuda dankbar.

In el Prog schalte Yo Relais 1 el ersten Karte una y de y luego Relais 3
el zweiten Karte una y de y luego Relais 4-5 el zweiten Karte una y de.

Das todo Yo en 10 EXE-Archivos konvertiert para cada Tor einzel.

Es bisher sólo una vez vorgekommen, el el RS232 aufgehangen ha,
qué sólo por Neustart des Rechners resolverse podría.
 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.02.2007  
 




GDL
Meinst du con Tor el Hallentore el Wache?
¿Por qué soviele Karten, si siempre sólo una Relais benutzt se?
¿Por qué soviele Exen? Sind el mehrere Rechner?
Passt du ya en, el el COM jedesmal geschlossen es, bevor una de deinen Exen darauf zugreift? Posesiones hier ya blaue Wunder erlebt.
Im Klartext : Usted darfst no ya geöffnete COM una zweitesmal abierto.Also antes cada opencom ne Abfrage si esta ya benutzt se.(otro Exe)

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
09.02.2007  
 




Detlef
Tussing
¡Hola Georg

lo son 10 Hallentore, 1 Schranke y 3 Beleuchtungsgruppen.

el EXE-Archivos voluntad encima FMS(Funkmeldesystem) aufgerufen así el richtige Tor pro Fahrzeug aufgeht, el Schranke y el entsprechende Beleuchtung. Lo se siempre sólo 1 EXE aufgerufen.

Saludo Detlef
 
Gruß Detlef Tussing
Windows XP, XProfan 10
10.02.2007  
 




Detlef
Tussing
¡Hola Georg

Yo habe una nuevo problema, wobei du oder vieleicht alguien anders helfen kann

una en PROFAN geschriebenes Prog el Yo en un EXE-Expediente wandel möchte Yo
con anhängenden Paramtern öffenen. z.B. Relais.exe 321 el 321 debería en el Relais.exe como Variable genutz voluntad

Gruss
Detlef
 
Gruß Detlef Tussing
Windows XP, XProfan 10
11.02.2007  
 



Mit Params starten:
KompilierenMarcaSeparación
Shell "meinprogramm.exe 321"
>

El Params ermitteln y una Var ablegen:
KompilierenMarcaSeparación
declare myvar&
case %pcount : myvar&=val(par$(1))
nun liegt in myvar z.B. 321re>

Hm?

El Ayuda hilft Usted esta beim Stichwort "Kommandozeilen-Parameter".
 
11.02.2007  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

8.980 Views

Untitledvor 0 min.
R.Schneider26.06.2023
Walter08.02.2018
Peter Max Müller18.11.2017
bastler16.12.2013
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie