INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


auf RS 232 schreiben



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.12.2007, 15:19
Beitrag #1

h_k Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Oct 2007

7.1
2007
kA

85080
Deutschland
auf RS 232 schreiben
Hallo,

möchte ein externes Gerät über COM1 ansprechen.
Über den Schnittstellenmotitor funktioniert es aber...
Ich möche das Ganze über VBS machen.
Zwar sendet mein Programm manchmal was aber nicht so wie ich das will.
Mit Sub SFD_WriteChannel( ChannelNumberP, ParamP, DataP, DoneP, ErrorP ) kann ich auf die vorher mit
Call SFDU_COMInit(oUDIM,"COM1,9600,N,8,1") geöffnete Schnittstelle schreiben.

Jetzt kann ich ja mit SFD_WriteChannel nicht den Input-Kanal lesen wie mit
Sub SFD_ProcessChannel( ChannelNumberP, InputListV, ParamP, DataP, ErrorP )

Ich muss jeweils auf Aktion der Schnittstelle einen String übergeben.
Dieser String kann fest im VBS deklariert werden text1 = "0GR500:XX"
Genauer gesagt sind es zwei Aktionen mit jeweils einen String.
Jetzt habe ich Versucht die internen Variablen text1 und text2 im MSR so zu setzen das ich im VBS die Aktionen auslöse - aber das funktioniert nicht so wie ich das meine.
Sub SFD_WriteChannel( ChannelNumberP, ParamP, DataP, DoneP, ErrorP )
if channelnumberP = 0 then
if L1 = 1 then
call oUDIM.Write(text1)
end if

if L2 = 1 then
call oUDIM.Write(text2)
end if
end if
end sub
Alle Beiträge dieses Benutzers finden
to top
11.12.2007, 08:12
Beitrag #2

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
auf RS 232 schreiben
Hallo h_k,

es scheint, als würde folgendes noch fehlen (in blau):

if L2 = 1 then
call oUDIM.Write(text2)
end if
end if
' Hier fehlt ein DoneP=1 damit der Treiber erkennen kann, dass die Funktion abgearbeitet ist. Ich vermute, dass das der Grund ist, warum das Script nicht richtig läuft
end sub

Wenn das nicht zum Erfolg führt, benötige ich weitere Infos zu dem, was du genau machen möchtest.

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top
11.12.2007, 15:20
Beitrag #3

h_k Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Oct 2007

7.1
2007
kA

85080
Deutschland
auf RS 232 schreiben
Hallo Carpe DIAdem,

das DoneP = 1 war drin, hab ich nur vergessen reinzukopieren.
Ich habe schienbar ein ganz anderes Problem.
Ich moche abwechseln zwei verschiedene Strings versenden.
Diese können vorerst fest im VBS definiert sein.
Als Taktgeber möchte ich einen Generator im MSR verwenden.
Das Signal über zwei Flankentrigger laufen lassem --> die Steuersignale ind Daten wandeln --> und dann wollte ich eigenlich diesen Wert in L1 und L2 schreiben und auf L1 und L2 im Script wieder zugreigen.
Soweit ich gesehen habe funktioniert ja SFD_ProcessChannel nicht, dort könnte ja gleich mit den Daten arbeiten.
Jetzt muss ich aber scheinbar den Umweg über die Variablem machen.
Aber wie stelle ich es an, das L1 und L2 nur jeweils für einen Taktzyklus auf 1 gesetzt werden?

mfg
Heinz
Alle Beiträge dieses Benutzers finden
to top
07.01.2008, 08:37
Beitrag #4

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
auf RS 232 schreiben
Hallo Heinz,

wenn du Daten senden ("ausgeben") möchtest, solltest du einen DAC-Script-Ausgabe-Block einsetzen. De bekommt Daten - z. B. deine in Daten gewandelten Steuersignale - kann diese verarbeiten und ausgeben.

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top


Gehe zu: