Fingercross
Topic Author
Posts: 9
Joined: 03 Sep 2019, 18:38
Answers: 0

C++-Code in die Anwendung integrieren

03 Sep 2019, 18:59

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.:
#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.
#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
Topic Author
Posts: 9
Joined: 03 Sep 2019, 18:38
Answers: 0

Re: C++-Code in die Anwendung integrieren

04 Sep 2019, 09:33

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
Answers: 0

Re: C++-Code in die Anwendung integrieren

08 Oct 2019, 16:28

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

Who is online

Users browsing this forum: No registered users and 0 guests