Français
Forum

Relaiskarte serielle Schnittstelle et Profan

 
- page 1 -



Herbert
N.
allô

Hab cela problem le moi qui serielle 8-matière Relaiskarte de Conrad pas ansprechen peux
dans Qbasic klakerts

je verwende Prf 5.0 / Winme / P700 ( net rire qui is bien genug pour solche Sachen grins )

ici un un peu programm zum étudier quoi je faux fais:
KompilierenMarqueSéparation
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%)

merci d'avance
 
26.02.2006  
 



 
- page 3 -



GDL
allô Detlef,

là je oui deine carte zum Testen pas habe, musst du pour mich cela Testen.
seulement avec Init deine Kartennummer (alors qui Vorgegebene laisser) senden.
ensuite irgendein Relais avec dem Button S mettons et Senden drücken.

Rückmeldungen venons encore aucun.voudrais seulement savons si quoi allez.

salut
Georg

730 kB
Hochgeladen:17.01.2007
Downloadcounter33
Download
 
Windows7 Xprofan 8,9,10 [...]  [...] 
17.01.2007  
 




GDL
allô Detlef,

je kopiere deine PM la fois hierher, si quelqu'un encore cet carte hatann sais il es jusqu'à ici allez.s'il te plaît toujours ici Problembezogen répondre.merci.

allô Georg

je suis begeistert, es funktioniert.

mon Problem ist gelöst, je Relais einschalten, (cela konnte je auparavant aussi) mais eh bien peux je alle Relais aussi ausschalten.

tu es un GENIE

peux du mir encore verraten comment du cela geschaft la hâte.

m. f. G. Detlef

je kümmere mich maintenant encore à Rückmeldungen et ensuite Poste je une dokomentierten Voir le texte source.
salut
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
20.01.2007  
 




GDL
ici erstmal qui jetzige Rohfassung
KompilierenMarqueSéparation
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 und dir avec deiner 9ner Fassung.

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




Detlef
Tussing
j'ai une Solution zur Contrôle qui CONRAD Relaiskarte trouvé(dank GDL) mais avec PROFANE 9.0 gehts pas, avec 9.1 et 10.0 gehts

3 kB
Kurzbeschreibung: je hoffe es hilft quelqu'un
Hochgeladen:06.02.2007
Downloadcounter77
Download
 
Gruß Detlef Tussing
Windows XP, XProfan 10
06.02.2007  
 




Detlef
Tussing
Sorry
kenne mich encore pas so aus
ici cela Programme
KompilierenMarqueSéparation
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 peut-être peux GDL Dir aussi cela avec den [CODE]-Tags expliquer. *g* ah quoique - je mach cela anders...
 
06.02.2007  
 




GDL
allô Detlef,

du hältst toi pas à meinen Beispielcode.Du must toujours seulement alle Relais binär sur den gewünschten Stand mettons et ensuite cette Wert dans une variable umsetzen .
mais cela fait maintenant rien.
Beschreibe mir oui c'est ca quoi du vouloir et ensuite mettons wir es gemeinsam um.

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




Detlef
Tussing
allô Georg

mon Prog fonctionne mais zuverlässig chez qui Feuerwehr,
quoi meinst du quoi je encore changement sollte ?

cela Prog sollte sur la durée störungsfrei courir, et tout autor suis je um chacun
Aider reconnaissant.

dans dem Prog schalte je Relais 1 qui ersten carte un et aus et ensuite Relais 3
qui zweiten carte un et aus et ensuite Relais 4-5 qui zweiten carte un et aus.

cela ganze habe je dans 10 EXE-Fichiers konvertiert pour chaque Tor einzel.

c'est bisher seulement einmal vorgekommen, cela sich qui RS232 aufgehangen hat,
quoi seulement par Neustart des Rechners behoben volonté konnte.
 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.02.2007  
 




GDL
Avez- du avec Tor qui Hallentore qui la garde?
pourquoi soviele Karten, si toujours seulement un Relais benutzt wird?
pourquoi soviele Exen? sommes cela plusieurs calculateur?
Passt du déjà sur, cela qui COM chaque fois geschlossen ist, bevor une de deinen Exen puis zugreift? Habe ici déjà blaue Wunder erlebt.
Im Klartext : Du darfst aucun bereits geöffnete COM un zweitesmal ouvrir.alors avant chaque opencom ne Abfrage si cet déjà benutzt wird.(autre Exe)

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




Detlef
Tussing
allô Georg

il y a 10 Hallentore, 1 Schranke et 3 Beleuchtungsgruppen.

qui EXE-Fichiers volonté sur FMS(Funkmeldesystem) aufgerufen avec cela cela richtige Tor pro véhicule aufgeht, qui Schranke et qui entsprechende Beleuchtung. Es wird toujours seulement 1 EXE aufgerufen.

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




Detlef
Tussing
allô Georg

j'ai un nouveau Problem, wobei du ou bien vieleicht quelqu'un anders aider peux

un dans PROFANE geschriebenes Prog le moi dans un EXE-Dossier changement voudrais je
avec anhängenden Paramtern öffenen. z.B. Relais.exe 321 qui 321 sollte dans qui Relais.exe comme Variable genutz volonté

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



avec Params starten:
KompilierenMarqueSéparation
Shell "meinprogramm.exe 321"
>

qui Params ermitteln et dans un Var enlever:
KompilierenMarqueSéparation
declare myvar&
case %pcount : myvar&=val(par$(1))
nun liegt in myvar z.B. 321re>

Hm?

qui Aider hilft Dir hierfür beim Stichwort "Kommandozeilen-Parameter".
 
11.02.2007  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

9.018 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie