Brainstorm Digitalen Ausgang via Excel steuern (Hexstring an COM-Port).

micromoog

micromoog

Rhabarber Barbara
Hallo Zusammen,

ist jetzt nicht wirklich ein Synthesizer-Thema. Da hier aber doch viele sehr kompetente Leute unterwegs sind, stelle ich die Frage einfach mal hier.
Im weltweiten Netz bin ich noch nicht fündig geworden, will mich jetzt auch erst einmal noch nicht in x Fachforen anmelden.

Würde gerne über eine Excel VBA-Routine einen (würde erstmal reichen) oder mehrere Digitalen Ausgang/Ausgänge ansteuern.
Die VBA-Prozedur stellt weniger das Problem dar, solange die Verbindung der noch zu definierenden Hardware via RS232 oder USB oder im "schlimmsten Fall" via Ethernet ansprechbar ist.

Es wäre auch eine Arduino-Lösung denkbar, jedoch will ich wenn möglich außer dem VBA-Skript keine weiteren Programme "pflegen" müssen.

Ist euch eine Digital I/O (oder hier nur eine Digitial Out) Lösung hierfür bekannt? Budget 100-150€

Ausgangsspannung soll 24V DC, kann aber auch 5 oder 12V sein (der 24V-Aktor würde dann halt via passendem Koppelrelais eingebunden werden)


Danke vorab für euren Input.
 
Suchst du ein fertiges Stück HW, dass du an den Rechner anschließt und aus Excel steuern kannst?

...und wieder eine neue Anwendung für Excel... warum hab ich das Gefühl das diese "Software" für alles verwendet wird nur nicht als Tabellenkalkulation?!? Die meisten scheinen sie mit einer Datenbank zu verwechseln...
 
Suchst du ein fertiges Stück HW, dass du an den Rechner anschließt und aus Excel steuern kannst?

...und wieder eine neue Anwendung für Excel... warum hab ich das Gefühl das diese "Software" für alles verwendet wird nur nicht als Tabellenkalkulation?!? Die meisten scheinen sie mit einer Datenbank zu verwechseln...

Excel mit VBA ist eine Waffe oder sogar Rakete. Für mich ist Tabellenkalkulation nur willkommenes Beiwerk und Zwischenspeicher für Information.
Dies hat auch nichts mit Datenbank zu tun, die gewünschte Anforderung könnte aber auch von Access VBA erledigt werden, wenn es eine Datenbank erfordern würde :)
Habe mir u.a. auch einen Emu EIII Editor für VCF/VCA und Env über Excel gebastelt (das ist zumindest dann Foren On Topic). ;-)

Die Infragestellung von Excel als "Steuerung" ist jetzt nicht wirklich das Thema ;-)

Die Anwendung ist bis auf den "fehlenden Ausgang" eigentlich auch schon vorhanden.
 
Zuletzt bearbeitet:
Die Infragestellung von Excel als "Steuerung" ist jetzt nicht wirklich das Thema
Daher ja auch explizit eingeklappt und als OT markeirt, will hier jetzt auch keine Excel Diskussion anfangen...

Es bleibt die Frage was genau du suchst...
Sowas in der Art?
https://www.amazon.de/Relaismodul-relaiskarte-fernbedienung-schnittstelle-relaismodul/dp/B083Y1HMQR


Sowas gibt es auch mit USB, aber da muss man etwas aufpassen, meist kommen die mit einem kleinen Windows Programm zur Steuerung und wenn man es aus Programmen selbst ansteuern will muss man sich die Infos oft mühsam beschaffen...
 
Leider geizen diese Amazon/Alibaba Teile mit Specs und Belegungsplan :sad:
 
Ja, ich weiß, daher mein Hinweis insb. zu den USB Teilen, damit bin ich schonmal auf die Nase geflogen...

Richtig "schöne" Lösungen kenne ich leider auch nicht :sad:

Ich bin bei RS232 gelandet und hab nen USB2Serial davor... wie gesagt, schön ist was anderes aber das funktioniert jedenfalls.
 
Danke, das in Amazon erwähnte Youko Video gab zumindest mal Aufschluss über den Hex Code zum Schalten der einzelnen Ausgänge. Der ebenso erwähnte One Drive Link lief leider ins Leere.

Da werde ich einfach mal eins bestellen und mal aus Excel mit einer Com Routine „beschießen“.

RS232 ist auch die erste Wahl bei meiner Anwendung, da keine weiteren Treiber notwendig.
 
Die Anwendung ist auch übrigens kein Geheimnis, eine Präzisonswaage wird über RS232 in Excel geloggt, bei Unterschreiten des Soll-Gewichts des zu wiegenden Produkts soll unmittelbar ein pneumatisches 24V-Magnetventil geschaltet werden, welches das Produkt via Blasdüse von der Wäägefläche pustet.

Die Zu- und Abführung der Waage erledigt eine Maschinen SPS.

Da Waage und PC mit u.a. zwei RS232 Ports schon vorhanden sind, ist das Ziel mit geringem Kostenaufwand hier eine „Aussortierlösung“ zu finden.
 
So, jetzt habe ich nach knapp zwei Jahren „Projektverschiebung“ ein Update.

Das von @recliq vorgeschlagene RS232-Relais funktioniert soweit an einem Serial-Port-Programm.

Allerdings fehlt mir das Know-How, wie ich den Befehlsstring in VBA als ByteArray (??) hexadezimal an den COM-Port senden kann.

IMG_2937.jpeg

Also ich müsste folgende Zeichenfolge analog dem Screenfoto via VBA an COM1 senden.

55 56 00 00 00 01 04 B0

Mit reinen Text / ASCII Strings für andere Anwendungen funktioniert alles in VBA. Das klappt auch dort zB mit:

Open „COM1:9600,N,8,1“ for … as #1

Write oder Put…

close #1


Der String besteht aus genau diesen 8 Blöcken (Bytes ?) und die Lösung muss nicht variabel sein und andere Formate oder Stringlängen berücksichtigen.

PS: Bei Tante Google wurde ich für meinen Fall nicht fündig, bzw. für mich unverständlich Komplex. Natürlich könnte ich mich auch in diversen VB-Foren anmelden, aber ich versuche es erstmal hier.

Danke vorab für brauchbaren Input :)
 
Zuletzt bearbeitet:
Ich mache ja schon seit Jahren beruflich mit den RSxxx Comports rum, erst mal versuchen mit einem Portsniffer anzusehen was tatsächlich gesendet wird, der Bill serial Monitor kann auch Hexstrings senden, dann weißt du ob dein Hexstring überhaupt funktioniert, mir hat das Program geholfen. In deinem Bild ist die Darstellung nicht konform, sollte doch 0x55 oder h55 sein und was ist mit den Leerzeichen zwischen den Zahlen werden die auch gesendet, dann liegt es vielleicht daran? Kenne mich mit Excel nicht so aus.

Download: https://www.billproduction.com/BillSerialMonitor.zip

Ganz unten die Helpdateien: http://www.billproduction.com/documentation.html
 
@micromoog

Ich habe wirklich keine Ahnung von VBA, aber müsste sowas nicht ev. funktionieren:

Dim data As Byte() = {&H55, &H56, &H00, &H00, &H00, &H01, &H04, &HB0}
ComPort.Write(data, 0, 8)
 
@micromoog

Ich habe wirklich keine Ahnung von VBA, aber müsste sowas nicht ev. funktionieren:

Dim data As Byte() = {&H55, &H56, &H00, &H00, &H00, &H01, &H04, &HB0}
ComPort.Write(data, 0, 8)

Das ist eher vb.net Code, bei vba kann ich die byte Folge leider so nicht deklarieren.

Ich versuche es mal mit vbs.
 
Excel mit VBA ist eine Waffe oder sogar Rakete. Für mich ist Tabellenkalkulation nur willkommenes Beiwerk und Zwischenspeicher für Information.
Dies hat auch nichts mit Datenbank zu tun, die gewünschte Anforderung könnte aber auch von Access VBA erledigt werden, wenn es eine Datenbank erfordern würde :)
Habe mir u.a. auch einen Emu EIII Editor für VCF/VCA und Env über Excel gebastelt (das ist zumindest dann Foren On Topic). ;-)
:pcsuxx: Wow, würde mich interessieren wie Du das gemacht hast..
 
:pcsuxx: Wow, würde mich interessieren wie Du das gemacht hast..

Da mein alter Os9.x Mac abgebraucht ist, bin ich eigentlich nur zur analogen Nachbearbeitung VCF, VCA, Hüllkurven etc. gekommen.

Für die alten Macs gab es eine Panel-Remote Soft mit der man die Bedienung eines EIII fernsteuern kann.
Über Sysex zur direkten Anwahl der Parameter ist nichts bekannt, zumindest habe ich nach langer Recherche nichts gefunden.

Die Panel-Remote-Soft sendet zumindest für die Cursor-Tasten und den Data-Regler sysex.

Der Hintergedanke bei meinem Excel-Editor ist eigentlich absolut lächerlich, aber es funktioniert.

Da ich ja keinen Parameter direkt anwählen kann starte ich bei „Analog Processing“ immer am Anfang, dann fahre ich mit dem Cursor der Remote-Soft zum jeweiligen Parameter. Diese Fahrten/Parameter habe ich im Atari in C-Lab Creator als sysex-Folge aufgezeichnet. Jeder Parameter im Sampler hat nun ein eigenes Midifile mit diesen Sysex-Cursor-Fahrten vom Startpunkt „0“ zum gewünschten Parameter, die sysex-Befehle sind manuell „zeitoptimiert“ - heißt die cursor-Drückfolge beschleunigt ;-)

D.h., wenn ich cut off im Sampler anfahren will, drücke ich den Cut-Off Button im Editor, dieser feuert per VBA das Midifile mit der Cursorfahrt zum Cut off im Sampler ab. Nun kann ich den Dataslider im Editor auf den gewünschten Wert schieben, dieser Wert wir als sysex Hex-String wieder in ein Midifile „Dataslider“ geschrieben und an den Sampler übertragen. Das alles dauert nur ein paar Millisekunden.

Also grundsätzlich ist der Editor auch nicht besser als ein DX7 - Parameter anwählen, Wert einstellen. Am EIII geht es allerdings nur über den Cursor, somit ist der Editor schon komfortabler als am Gerät. :) Aus zigmal Cursor-Tasten in alle Himmelsrichtungen drücken wurde jetzt ein Button/Parameter.
Irgendwann werde ich das weiterverfolgen (mit „neuem“ alten Mac ;-))

Und warum Excel? Weil da mit VBA schon eine Visual Basic Routine an Board ist und man keine eigenständigen „Programme“ erstellen muss.
 
Zuletzt bearbeitet:
Es gibt wohl auch die Möglichkeit, externe Skripte aus einem VBA-Kontext heraus zu starten:


Das könnte neben der PowerShell auch ein node.js- oder Shell-Skript via WSL sein. Natürlich ginge auch ne kompilierte .net-Anwendung.

Der Punkt ist: so ziemlich alle diese Optionen bieten moderne, komfortable, sichere, schnelle und gut dokumentierte Methoden, um mit Excel-Files, SerialPorts und darauf aufbauenden eigenen Ideen umzugehen.

Ich selbst hab vor ein paar Tagen erst eine Steinberg Systems Waage (hat NIX mit der DAW zu tun ;-) ) mit nem RS-232-USB-Adapter in einer reinen node.js-Umgebung ausgelesen. Das ist mit JavaScript ein leicht verständlicher 10-Zeiler gewesen. Ich würde VBA und die krude win32-Api weitestgehend vermeiden und was modernes in Angriff nehmen.
 
Zuletzt bearbeitet:
Danke. Es fehlt eigentlich am Programm nur noch die Ausgabe mit o.g. String als Hex.
Aber VBA kann ja auch andere Anwendungen aufrufen, wie du schriebst, in einer Powershell etc kann das auch erfolgen, Hauptsache ich bekomme den String passend in den COM
 


Neueste Beiträge

News

Zurück
Oben