Die aktuelle Plugin-Version ermöglicht es, nur zwei analoge Eingänge (zwei Potentiometer) zu verwenden, um die FRO- und SRO-Werte zu steuern. Wenn Sie in Mach4 einen anderen Wert über den analogen Eingang ansteuern möchten, zeigen wir Ihnen am Beispiel des RRO-Werts, wie das geht. Der einfachste Weg, den zusätzlichen analogen Eingang zu unterstützen, ist über ein Makro, genauer gesagt über das SPS-Makro, das Teil des Mach4-Bildschirms ist. Dieses Makro wird mit einer Frequenz von 50 ms ausgeführt, was eine sehr schnelle Reaktion gewährleistet. Wenn Sie nicht wissen, was ein SPS-Skript ist, siehe Abschnitt „3.2.3 PLC Script“ auf dieser Seite:
https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Scripting%20Manual.pdf
- Klicken Sie im Hauptfenster des Mach4-Programms wiederum auf:
- Option „Operator“
- Option „Edit Screen“
Nach Abschluss der obigen Schritte wechselt das Mach4-Programm in den Bildschirmbearbeitungsmodus.
- Klicken Sie im Mach4-Bildschirmeditorfenster nacheinander auf:
- „wxRout“-Optionen (bei einer „wxLathe“-Drehmaschine)
- die Schaltfläche „Events“ (ein Blatt Papier mit einem Blitz)
- das Feld „SPS Script“ (um die nächste Schaltfläche hervorzuheben)
- die Schaltfläche mit drei Punkten.
Nachdem Sie die obigen Schritte ausgeführt haben, erscheint das LUA-Skripteditorfenster und in diesem Fenster können Sie den SPS-Skriptcode sehen.
- Scrollen Sie das SPS-Skript bis zum Ende und suchen Sie nach der unten gezeigten Zeile.
- Positionieren Sie den Cursor über der ausgewählten Zeile und drücken Sie einige Male „Enter“, um etwas mehr Platz für unseren Code zu schaffen.
Achtung: Nach den Angaben in der markierten Zeile dürfen wir keinen eigenen Code darunter setzen.
- Fügen Sie dann den folgenden Code an der vorbereiteten Stelle ein, speichern Sie das Makro und beenden Sie den Bildschirmeditor.
local Analog_In_Reg = mc.mcRegGetHandle(inst, "CSMIO-IP/Analog Input 2") local Analog_In_Val = mc.mcRegGetValue(Analog_In_Reg) local maxval = scr.GetProperty('slideRRO', 'Max Value') local minval = scr.GetProperty('slideRRO', 'Min Value') local RRO = Analog_In_Val / (10 / tonumber(maxval)) if (RRO < tonumber(minval)) then RRO = tonumber(minval); end if (RRO > tonumber(maxval)) then RRO = tonumber(maxval); end scr.SetProperty('slideRRO', 'Value', tostring(RRO));
Der obige Code liest den Wert der analogen Spannung vom Eingang Nummer 2, wandelt ihn in einen Prozentwert um und übergibt ihn an den SlideRRO-Schieberegler. Beachten Sie, dass der obige Code überprüft, ob der RRO-Wert den minimalen und maximalen Wert des RRO-Schiebereglers nicht überschreitet.
Wenn Sie die Spannung eines beliebigen Analogeingangs lesen möchten, verwenden Sie einfach die ersten beiden Zeilen aus dem obigen Code:
local Analog_In_0_Reg = mc.mcRegGetHandle(inst, "CSMIO-IP/Analog Input 0")
local Analog_In_0_Val = mc.mcRegGetValue(Analog_In_0_Reg)
|
-- Analog in 0
|
local Analog_In_1_Reg = mc.mcRegGetHandle(inst, "CSMIO-IP/Analog Input 1") local Analog_In_1_Val = mc.mcRegGetValue(Analog_In_1_Reg) |
-- Analog in 1
|
local Analog_In_2_Reg = mc.mcRegGetHandle(inst, "CSMIO-IP/Analog Input 2") local Analog_In_2_Val = mc.mcRegGetValue(Analog_In_2_Reg) |
-- Analog in 2
|
local Analog_In_3_Reg = mc.mcRegGetHandle(inst, "CSMIO-IP/Analog Input 3") local Analog_In_3_Val = mc.mcRegGetValue(Analog_In_3_Reg) |
-- Analog in 3
|
Nach der Ausführung des obigen Codes halten die Variablen Analog_In_0_Val, Analog_In_1_Val, Analog_In_2_Val und Analog_In_3_Val den Spannungswert der analogen Eingänge in Volt.
[Quelle:] Das Diagramm wurde vom technischen Support von CS-Lab für CSMIO/IP-Nutzer erstellt.