Schalter mit frei wählbaren Ausgängen

Dieser Bereich ist für den Austausch FERTIGER Makros und allgemein nützlicher Schaltungen vorgesehen.
Antworten
elomaster79
Beiträge: 14
Registriert: Donnerstag 16. Oktober 2008, 07:03
Wohnort: Schönnewitz

Schalter mit frei wählbaren Ausgängen

Beitrag von elomaster79 » Mittwoch 29. September 2010, 15:56

Hallo abacom,

ich benötige für eine Steuerung einen Drehschalter mit zwei Ausgängen und einer Ausstellung oder drei Ausgängen Hand/AUS/Auto. Ist da vielleicht was machbar?
Mann könnte ja die Anzahl der Ausgänge über Eigenschaften definieren.

Habe in dieser Art leider nichts gefunden.

Mit freundlichen Grüßen
elomaster79

tmm
Beiträge: 392
Registriert: Montag 23. Februar 2009, 06:38

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von tmm » Mittwoch 29. September 2010, 18:46

Hallo,

ich bin nicht Abacom, habe aber trotzdem einen Vorschlag anzubieten:

Die Led's benutze ich gerne als Schalter, weil Schaltzustand durch die Anwendung (siehe mein Beispiel) selbst geändert und auch angezeigt werden kann.
Mein 4-fach-Schalterbeispiel (sieht nicht aus wie ein Drehschalter, funktioniert aber so :P )kannst du einfach kleiner oder größer machen - wie du es halt brauchst.

Gruß MM
Dateianhänge
4-fach-Wahlschalter.prj
(3.25 KiB) 643-mal heruntergeladen

thcweb
Beiträge: 137
Registriert: Dienstag 14. Oktober 2008, 22:59

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von thcweb » Mittwoch 29. September 2010, 20:30

Ich nutze dafür immer das Auwahlfeld (Drop Down)

Der Vorteil ist dabei, das gleichzeitig die Stellung mit angezeigt wird. Zudem ist die Bedienung via TouchScreen so gut.

mfg thomas

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von compander » Mittwoch 29. September 2010, 21:44

Hallo elomaster79.

....oder Du probierst den uralten "Radio-Switch" aus.
Ist zu finden auf: http://www.minirock2009.de.vu
(PLE Mini/Radioswitch. Von 2007)
Leider hast Du nicht erwähnt, ob an deinem Schalter digitale Signale oder analoge Werte anliegen.
Der Radioswitch ist für digitale Signale gedacht.
Anbei ein winziges ergänzendes Beispiel, wie man auch analoge Werte (hier der Wert=1; auf der ersten Leitung) selektieren/schalten kann.
(wenn Du den vierten Schalter entfernst, und die entsprechde Leitung auf "Masse" legst, so hast Du einen 3-fach
Umschalter. Sofern Du nicht auf "Teufelkommraus" auf einen "Drehschalter" bestehst.....)

Gruß vom C :shock: mpander.
Dateianhänge
Radioswitch A.prj
(10.83 KiB) 553-mal heruntergeladen

elomaster79
Beiträge: 14
Registriert: Donnerstag 16. Oktober 2008, 07:03
Wohnort: Schönnewitz

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von elomaster79 » Donnerstag 30. September 2010, 11:36

Hallo zusammen,

danke für die Vorschläge. Die einfachste Variante ist da wohl das Auwahlfeld "Drop Down" :D .

Gruß elomaster79

Udo_Olaf
Beiträge: 33
Registriert: Samstag 18. September 2010, 12:15

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von Udo_Olaf » Donnerstag 30. September 2010, 11:40

Hallo zusammen,

diese DLL kann einen MultiSwitch simulieren.

Mit der Ini-Datei „MultiSwitch.ini“ lassen sich zwischen 2 und 9 Ein/Ausgänge festlegen. Die kann mit jedem Editor geändert werden.

Und so sieht die Datei aus:

[MultiSwitch]
Inputs=4
Default=1

Mit „Inputs“ legt man die Anzahl der Eingänge (und Ausgänge) fest. Kann zwischen 2 und 9 sein.
Mit „Default“ bestimmt man den Ausgang, der beim Start aktiv sein soll. Mit „Default=0“ wird beim Start kein Ausgang eingeschaltet.

Die Ini-Datei sollte im gleichen Verzeichnis liegen wie die Projektdatei .prj.
Wenn diese Datei nicht gefunden wird, dann werden für „Inputs=2“ und für „Default=0“ eingesetzt.
Das gleiche gilt wenn unsinnige Werte in der Datei stehen.

Viel Erfolg damit

Udo_Olaf
Dateianhänge
MultiSwitch.rar
(38.27 KiB) 557-mal heruntergeladen
Zuletzt geändert von Udo_Olaf am Donnerstag 30. September 2010, 13:16, insgesamt 1-mal geändert.

funkybaer
Beiträge: 471
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von funkybaer » Donnerstag 30. September 2010, 12:06

Hallo Udo_Olaf

Leider kommt bei mir "keine Funktionen importiert"

Gruß Gerhard

Udo_Olaf
Beiträge: 33
Registriert: Samstag 18. September 2010, 12:15

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von Udo_Olaf » Donnerstag 30. September 2010, 13:19

Hallo funkybear,

ich habe die DLL noch mal geändert. Bitte nochmal probieren.
Verstehen kann ich das nicht - auf (fast) allen Rechnern läuft´s, nur bei einigen nicht.
Bitte um kurze Mitteilung (nicht nur wenn´s nicht geht).

Grüße

Udo_Olaf

- chris -
Beiträge: 29
Registriert: Sonntag 22. August 2010, 16:24

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von - chris - » Donnerstag 30. September 2010, 13:48

Bei mir funktionierts, allerdings muß die dll
ins selbe Verzeichnis wie das Projekt, sonst
wird die ini nicht gefunden.
(Windows 7 64bit)

Ich habe auch mal eine MultiSwitch.dll erstellt.
(siehe Anhang)
Dateianhänge
MultiSwitch2.rar
(9.3 KiB) 535-mal heruntergeladen
Windows 7 64bit Ultimate

Udo_Olaf
Beiträge: 33
Registriert: Samstag 18. September 2010, 12:15

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von Udo_Olaf » Donnerstag 30. September 2010, 14:02

Hallo - chris -,

sowohl meine als auch Deine DLL funktionieren bei mir. Meine geht bei mir auch wenn sie nicht im Projektverzeichnis ist.
Aber das ist eigentlich unerheblich. Ist doch ganz nett das Teil - oder? Womit hast Du Deine DLL erzeugt?

Grüße

Udo_Olaf

- chris -
Beiträge: 29
Registriert: Sonntag 22. August 2010, 16:24

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von - chris - » Donnerstag 30. September 2010, 15:08

Hallo Udo_Olaf

Ja, ist ganz nett das Teil :-)

Die DLL hab ich mit PureBasic erstellt.

Gruß Christoph
Windows 7 64bit Ultimate

Udo_Olaf
Beiträge: 33
Registriert: Samstag 18. September 2010, 12:15

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von Udo_Olaf » Donnerstag 30. September 2010, 18:02

Hallo - chris - ,

eigentlich habe ich gedacht, dass Du mein C-Projekt einfach durch einen anderen Compiler "gejagt" hast.
Dann hast Du also alles in Basic umgesetzt. Wenn Deine Quellen kein Geheimnis sind, dann würde mich mal interessieren wie so was in Basic aussieht.
Basic, das ist bei mir schon ewig her - mindestens 20 Jahre...

Grüße

Udo_Olaf

- chris -
Beiträge: 29
Registriert: Sonntag 22. August 2010, 16:24

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von - chris - » Donnerstag 30. September 2010, 18:50

Hier das ganze in PureBasic:

Code: Alles auswählen

; MultiSwitch.pb

EnableExplicit

Global inp.a, def.a

Structure sDLLParams
  DLLParam.d[101]
EndStructure

; return number of input channels...
ProcedureDLL.a CNumInputsEx(*PUser.sDLLParams)

  Protected Inputs.a

  If inp > 1 And inp < 10
    Inputs = inp
  Else
    Inputs = 2
  EndIf

  ProcedureReturn Inputs
EndProcedure

; return number of output channels...
ProcedureDLL.a CNumOutputsEx(*PUser.sDLLParams)

  Protected Outputs.a

  If inp > 1 And inp < 10
    Outputs = inp
  Else
    OutPuts = 2
  EndIf

  ProcedureReturn Outputs
EndProcedure

; return name for each input...
ProcedureDLL GetInputName(Channel.a, *Name.i)

  Protected GetInputName.s

  GetInputName = "E" + Str(Channel + 1)

  PokeS(*Name, GetInputName, -1, #PB_Ascii)

EndProcedure

; return name for each output...
ProcedureDLL GetOutputName(Channel.a, *Name.i)

  Protected GetOutputName.s

  GetOutputName = "A" + Str(Channel + 1)

  PokeS(*Name, GetOutputName, -1, #PB_Ascii)

EndProcedure

; check inputs and set outputs while running...
ProcedureDLL CCalculate(*PInput.sDLLParams, *POutput.sDLLParams, *PUser.sDLLParams)

  Protected i.i, j.i

  For i = 0 To 8

    If *PInput\DLLParam[i] > 2.5

      For j = 0 To 8
        *POutput\DLLParam[j] = 0
      Next j

      *PUser\DLLParam[i]   = 5
      *POutput\DLLParam[i] = 5

    EndIf

  Next i

EndProcedure

; called when project is started...
ProcedureDLL CSimStart(*PInput.sDLLParams, *POutput.sDLLParams, *PUser.sDLLParams)

  Protected i.i
  
  For i = 0 To 8
    *POutput\DLLParam[i] = 0
  Next i  
  
  If def > 0 And def < 10
    *POutput\DLLParam[def - 1] = 5
  EndIf
    
EndProcedure

; called when project is stopped...
ProcedureDLL CSimStop(*PInput.sDLLParams, *POutput.sDLLParams, *PUser.sDLLParams)
  
  ; nothing to do...
  
EndProcedure

; called when button CONFIGURE is pressed in dialogue...
ProcedureDLL CConfigure(*PUser.sDLLParams)

  MessageRequester("Configure", "Nothing to configure")

EndProcedure


Procedure ReadIniFile()

  Protected path$

  path$ = GetPathPart(ProgramFilename())
  If Right(path$, 1) <> "\"
    path$ = path$ + "\"
  EndIf

  OpenPreferences(path$ + "MultiSwitch.ini")

  PreferenceGroup("MultiSwitch")

  inp = Val(ReadPreferenceString("Inputs", "2"))
  def = Val(ReadPreferenceString("Default", "0"))

  ClosePreferences()

EndProcedure


ProcedureDLL AttachProcess(Instance.i)

  ReadIniFile()

EndProcedure
Windows 7 64bit Ultimate

funkybaer
Beiträge: 471
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: Schalter mit frei wählbaren Ausgängen

Beitrag von funkybaer » Freitag 1. Oktober 2010, 06:21

Hallo zusammen

nun gehts bei mir auch

Gruß gerhard

Antworten

Zurück zu „Makros & Schaltungen“