English
Forum

Relay Card serial interface and Profan

 
- Page 1 -



Herbert
N.
Hello

Have the trouble that I The serial 8-case Relay Card of Conrad not address can
in Qbasic klakerts

I use Prf 5.0 / Winme / P700 ( net laugh the is well enough for such things grins )

here little Program to that study I wrong make:
CompileMarkSeparation
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%)

thanks beforehand
 
02/26/06  
 



 
- Page 3 -



GDL
Hello Detlef,

I Yes your ticket to that testing not have, must You for me the testing.
first with Init your Kartennummer (means The pretended let) Send.
then some Relais with the Button s settle and Send pressing.

Rückmeldungen come yet no.want only know whether what goes.

Hello
Georg

730 kB
Hochgeladen:01/17/07
Downloadcounter33
Download
 
Windows7 Xprofan 8,9,10 [...]  [...] 
01/17/07  
 




GDL
Hello Detlef,

I copy your PM time hither, if someone yet these ticket hasann white it the it To here goes.Please always here Problembezogen Answer.thanks.

Hello Georg

i'm keen, it functions.

my trouble is resolved, I Relais on, (the could I before too) but now can I any Relais too switch off.

you are one GENIE

can you me yet betray How You the geschaft have.

m. f. G. Detlef

I trouble me now yet around the Rückmeldungen and then poste I a dokomentierten View source.
Hello
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
01/20/07  
 




GDL
here first The jetzige Rohfassung
CompileMarkSeparation
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


hope It's all right with your 9Ner version.

Hello
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
01/20/07  
 




Detlef
Tussing
I have a Solution to control the CONRAD Relay Card found(dank GDL) but with PROFAN 9.0 GEHTS not, with 9.1 and 10.0 GEHTS

3 kB
Kurzbeschreibung: i hope so helps somebody
Hochgeladen:02/06/07
Downloadcounter77
Download
 
Gruß Detlef Tussing
Windows XP, XProfan 10
02/06/07  
 




Detlef
Tussing
Sorry
know me not yet so from
here the program
CompileMarkSeparation
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='./../../Function-References/XProfan/waitinput/'>waitinput
end
 
Gruß Detlef Tussing
Windows XP, XProfan 10
02/06/07  
 



Hehe Perhaps can GDL you too with the whom [CODE]-Tags explain. *g* alas though - I mach the differently...
 
02/06/07  
 




GDL
Hello Detlef,

You hold you not with empty Beispielcode.You must always first any Relais binary on the desired stood settle and then this worth in a variable umsetzen .
but the power now nothing.
describe me very what You want and then settle we it together circa.

Hello
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
02/08/07  
 




Detlef
Tussing
Hello Georg

my Prog runs but reliably with the fire brigade,
what Dou you mean I yet Change ought to ?

the Prog ought to on duration störungsfrei walk, and therefore be I circa each
Help grateful.

in the Prog schalte I Relais 1 the first ticket one and from and then Relais 3
the second ticket one and from and then Relais 4-5 the second ticket one and from.

the whole have I in 10 EXE-Files konvertiert for each goal single.

its yet only once vorgekommen, the the RS232 aufgehangen has,
what only through Neustart the Rechners fixed go could.
 
Gruß Detlef Tussing
Windows XP, XProfan 10
02/09/07  
 




GDL
Meinst You with goal The Hallentore the guard?
Why soviele cards, if always only one Relais using becomes?
Why soviele Exen? are the several computer?
fit You already on, the The COM jedesmal closed is, before one of your Exen hereon zugreift? have here already blue wonder erlebt.
in the Klartext : You must no already opened COM one zweitesmal open.means before each opencom ne request whether these already using becomes.(others Exe)

Hello
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
02/09/07  
 




Detlef
Tussing
Hello Georg

there are 10 Hallentore, 1 barrier and 3 Beleuchtungsgruppen.

The EXE-Files go over FMS(Funkmeldesystem) called so the right goal per wheeler aufgeht, The barrier and the suitable illumination. it'll always only 1 EXE called.

Greeting Detlef
 
Gruß Detlef Tussing
Windows XP, XProfan 10
02/10/07  
 




Detlef
Tussing
Hello Georg

I have one new Problem, where You or Maybe anyone else help can

one in PROFAN geschriebenes Prog that I in a EXE-File changes would like I
with anhängenden Paramtern öffenen. z.B. Relais.exe 321 The 321 ought to in the Relais.exe as Variable genutz go

greeting
Detlef
 
Gruß Detlef Tussing
Windows XP, XProfan 10
02/11/07  
 



with Params started:
CompileMarkSeparation
Shell "meinprogramm.exe 321"
>

The Params detect and a Var take off:
CompileMarkSeparation
declare myvar&
case %pcount : myvar&=val(par$(1))
nun liegt in myvar z.B. 321re>

Hm?

The Help helps you this at cue "Kommandozeilen-Parameter".
 
02/11/07  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

9.013 Views

Untitledvor 0 min.
R.Schneider06/26/23
Walter02/08/18
Peter Max Müller11/18/17
bastler12/16/13
More...

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie