C++-Code in die Anwendung integrieren

Für Themen rund um logi.RTS und logi.CAD 3
Post Reply
Fingercross
Posts: 9
Joined: 03 Sep 2019, 18:38

C++-Code in die Anwendung integrieren

Post by Fingercross »

Guten Tag,

um eine C++ Anwendung in ein LogiCad3 Projekt (RevPi) einzubinden, bin ich nach folgendem Tutorial vorgegangen.
{extern_cxx}
{Supported_Platforms := RevolutionPi}

FUNCTION_BLOCK MyCFun // Die Funktion 'MyCFun' besitzt 2 Eingänge und 2 Ausgänge.
VAR_INPUT
In1, In2: INT;
END_VAR
VAR_OUTPUT
Out : INT;
END_VAR
END_FUNCTION_BLOCK
#ifndef LC_PROT_LCFU___MYCFUN__C
#define LC_PROT_LCFU___MYCFUN__C

#include <lcfu___mycfun.h>

void lcfu___MYCFUN(LC_TD_FunctionBlock_MYCFUN* LC_this, struct _lcoplck_epdb_1_impl* pEPDB)
{
/* Vendor Code */
#define V(VAR) (LC_this->LC_VD_##VAR) /* C-Makro für den vereinfachten Zugriff auf Parameter */
/* ... */
V(OUT) = V(IN1) + V(IN2); /* Ihr C-Code in der C-Datei für den Funktionsbaustein */

}
#endif
Funktioniert soweit auch alles.

Mein eigentliches C++ Programm benötigt einige zusätzliche "#include"`s wie bspw.:

Code: Select all

#include <stdio.h>
#include <linux/can.h>
#include <linux/can/error.h>
#include <linux/can/raw.h>
Diese Headerfiles .h lassen sich integrieren.
Allerdings bei den C++ Librarys wie bspw.

Code: Select all

#include <algorithm>
#include <chrono>
#include <ctime>
#include <errno.h>
#include <fstream>
#include <iomanip>
#include <iostream>
lässt sich das Programm nicht mehr erstellen bzw. laden.

Im Verzeichnis:
...\logiCAD3\logiCAD3_V1.115.0_Windows_64bit\LC3c\plugins\com.logicals.compiler.gcc.raspbian.win32_7.1.0.2\bin\armv6-logicals-linux-gnueabihf\armv6-logicals-linux-gnueabihf\include\c++\7.1.0
sind alle Dateien vorhanden.

Habe nun schon einiges ausprobiert, z.B Pfad bei "Einstellungen für C-Bausteine" etc. hinzugefügt. Hat aber alles nichts geholfen.

Was mache ich falsch?
Danke.
Fingercross
Posts: 9
Joined: 03 Sep 2019, 18:38

Re: C++-Code in die Anwendung integrieren

Post by Fingercross »

Laut LogiCad wird C++ Code nicht auf dem RevPi (RPi) als Plattform unterstützt.
Ist das noch aktuell?

Falls ja, gibt es eine elegante Möglichkeit Cpp-Programme von der SPS aus zu starten? So etwas wie ein Exec-Baustein?
Oder ein freies Systembit, welches man setzt und dadurch der C-Code ausgeführt wird.

Mein Cpp-Code ließt mehrere Sensoren "gleichzeitig" aus, analysiert diese und schreibt die Messdaten struktuiert in json Dateien.
Die ganze Logik bspw. wann und welche Sensoren messen, wollte ich mit LogiCAD in ST programmieren.
User avatar
Walter
Official 3rd Party Support logi.cals
Posts: 77
Joined: 15 Dec 2016, 12:56

Re: C++-Code in die Anwendung integrieren

Post by Walter »

Hallo Fingercross,

ja, aktuell wird C++ Code noch nicht auf Revolution Pi unterstützt, C-Code hingegen schon, siehe:
https://help.logicals.com/lco3docu/late ... ntegrieren

In der aktuellen Version von logi.CAD 3 sind noch keine Bausteine verfügbar, die ein Absetzen eines Betriebssytembefehls erlauben. Denkbar wäre, das über einen C-Baustein zu lösen.

lg
Walter
Post Reply