Anwendungen
14. Dezember 2015

Lua-Skripte erstellen und mit der MCM-MainControl ausführen

Mit der SMART Baugruppe MCM-MainControl können Lua-Skripte ausgeführt werden. Mit diesem Blogbeitrag möchten wir Ihnen aufzeigen, wie Sie ein Lua-Skript erstellen und wie Sie dieses anschließend in die MCM-MainControl laden und ausführen.

Was ist überhaupt Lua?

Lua ist eine erweiterbare Skriptsprache zum Einbinden in Programme. Eine der besonderen Eigenschaften von Lua ist die geringe Größe des kompilierten Skript-Interpreters.
Lua-Programme sind meist plattformunabhängig und werden vor der Ausführung in Bytecode übersetzt. Obwohl man mit Lua auch eigenständige Programme schreiben kann, ist sie vorrangig als eingebettete Skriptsprache für andere Programme konzipiert.

Wie wird ein Lua-Skript erstellt?

Für die Erstellung von Lua-Skripten ist kein separater Editor notwendig. Skripte können mit jedem Editor erstellt werden.

Bei der Installation von MCM-Process Studio wird ein Lua Development Tool mit ausgeliefert. Über dieses Programm können Sie auch Projekte für Ihren Test anlegen.

 

Wie werden SMART Baugruppen eingebunden?

Für die SMART-Baugruppen existiert eine Bibliothek, die zu Beginn eines Skriptes eingebunden werden muss.

-- load MCM driver
mcm = require('McmLua')
-- create MCM driver
driver = mcm.Driver()
-- get list of cards
local cards = driver:cards()

Im Anschluss daran müssen die einzelnen Baugruppen konfiguriert werden. Hier ein Beispiel für die Raddrehzahl-Simulationsbaugruppe RDG-SIM:

function configureRDGSIM(card)
       local rdgsim = mcm.CardRDGSIM.downcast(card)
      -- Select Sensor type
      rdgsim:setSensor(mcm.CardRDGSIM.Channel1, mcm.CardRDGSIM.SensorVDA)
      -- deaktivate Output
      rdgsim:setOutput(mcm.CardRDGSIM.Channel1, false)
      -- Set speed to 100.0 km/h
      rdgsim:setSpeed(mcm.CardRDGSIM.Channel1, 1000)
       -- Set wheel perimeter to 500 mm
      rdgsim:setPerimeter(mcm.CardRDGSIM.Channel1, 500)
      -- Set teeth to 333
      rdgsim:setTeeth(mcm.CardRDGSIM.Channel1, 333)
end

Wie wird auf diese Baugruppe im Skript zugegriffen?

Um auf die Baugruppen zugreifen zu können sollte jeweils eine Zuweisung an eine globale Variable erfolgen:

require("data.scripts.globals")
g_cards.rdgsim = mcm.CardRDGSIM.downcast(cards[slot])

Dadurch ist es möglich von jedem Skript auf die Baugruppe zugreifen zu können.

g_cards.rdgsim:setOutput(mcm.CardRDGSIM.Channel1, true)

oder

g_cards.rdgsim:setSpeed(mcm.CardRDGSIM.Channel2, 800)

Wie werden Messungen gestartet?

Definition der verschiedenen Messkanäle.

VBATT1 = {}
VBATT1.voltage = 0101
VBATT1.current = 1201
VBATT1.quietcurrent = 0501

Die ersten beiden Ziffern bezeichnen den Kartenslot, in dem die Baugruppe beziehungsweise Karte im System eingebaut ist. Die letzten beiden Ziffern stehen für den Kanal innerhalb der Karte.

Um überhaupt Messungen durchführen zu können, müssen die Messkanäle dem System (MCM-MainControl) hinzugefügt werden. Dies erfolgt durch den folgenden Befehl:

measAdd(VBATT1.voltage)
measAdd(VBATT1.current)

Mit dem folgenden Befehl startet die Messung im Hintergrund:

measStart()

Zu jedem Zeitpunkt kann der aktuelle Messwert ausgegeben werden:

print("VBATT1 [V] = " .. measGet(VBATT1.voltage))

Am Ende der Prüfung muss die die Messung gestoppt werden.

measStop()

Wie können diese Messergebnisse abgespeichert werden?

Die Messergebnisse werden mit diesem Befehl abgespeichert.

measStore("Measurement_01")

"Measurement_01" steht hierbei für den Dateinamen unter dem die Messergebnisse abgespeichert werden.

Wie wird das erstellte Lua-Skript in die MCM-MainControl geladen?

Um mit der MCM-MainControl kommunizieren zu können, muss diese über eine Ethernet-Leitung mit dem PC verbunden werden.

Der Upload der Skripte erfolgt über das Programm MCM-Process Workbench. Über diese Oberfläche können die Skripte ausgewählt werden, die in die MCM-MainControl geladen werden sollen. Dies erfolgt über die Registerkarte "Deployment". Es können auch die Skripte von der MCM-MainControl heruntergeladen oder gelöscht werden.

 

Wie wird dieses Skript ausgeführt?

Das Ausführen der Skripte erfolgt ebenfalls über MCM-Process Workbench. Hierzu muss auf der Registerkarte "Control" das entsprechende Skript ausgewählt (Pull-Down Menü) und anschließend ausgeführt werden. Im Unteren Teil des Fensters erscheinen Statusmeldungen wie beispielsweise  Messergebnisse die über den Print-Befehl ausgegeben werden.

 

Wie können die Messergebnisse abgeholt werden?

Über die Registerkarte "Measurements" der MCM-Process Workbench können die Messergebnisse ausgewählt werden, die heruntergeladen werden sollen. Anschließend können die heruntergeladenen Messergebnisse in das CSV-Format konvertiert werden und somit etwa in Excel ausgewertet werden.

 

von Ralf Blank | sprechblase keine Kommentare

< zurück

Kommentieren Sie diesen Artikel ...

avatar