Libnodave C++ Win Forms mit Vipa CPU verbinden

holex

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

und zwar bin ich gerade dabei über eine Windows-Forms Anwendung per Libnodave verschiedenste Zustände aus einer Vipa CPU auszulesen.

Mein erster Versuch mit Libnodave und C# hat soweit funktioniert ich konnte eine Verbindung zur CPU herstellen und diese z.B. Starten und Stoppen oder Zustände auslesen.
Libnodave.net.dll habe ich als Verweis in VS2017 eingefügt.

Jetzt kommt mein eigentliches Problem das ganze möchte ich jetzt als C++ Anwendung mit Windows Forms, mir ist hier nur nicht klar wie ich es umsetzten kann.
Wird hier ebenfalls mit der Libnodave.net.dll gearbeitet und wie findet der aufruf in C++ statt? Hat hier vielleicht jemand ein Beispiel an dem man sich orientieren kann?

Danke für eure Unterstützung.

Beispielcode C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace S7Verbindung
{
public partial class Form1 : Form
{

static libnodave.daveOSserialType fds;
static libnodave.daveConnection dc;
static libnodave.daveInterface di;


public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
//
int rack = 0;
int slot = 2;

//
fds.rfd = libnodave.openSocket(102, "192.168.0.1");
fds.wfd = fds.rfd;

//Eigenschaften für Protokoll festlegen
di = new libnodave.daveInterface(fds, "IF1", 2, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);

//
di.setTimeout(100000);

//Eigenschaften für Verbindung festlegen
dc = new libnodave.daveConnection(di, 2, rack, slot);

//Verbindung
int plcConnect = dc.connectPLC();

//Prüfen ob Verbindung da ist: 0 = Verbindung hergestellt, -1 = Verbindung nicht möglich
if (plcConnect == 0)
{
//Message Box öffnen
MessageBox.Show("Verbindung erfolgreich!");
}
else
{
//Message Box öffnen
MessageBox.Show("Verbindung konnte nicht hergestellt werden!");

}
}

private void button2_Click(object sender, EventArgs e)
{
int plcstop = dc.stop();
}

private void button3_Click(object sender, EventArgs e)
{
int plcstart = dc.start();
}

private void button4_Click(object sender, EventArgs e)
{
int plcConnect = dc.getGetResponse();



textBox1.Text = Convert.ToString(plcConnect);
}

private void button5_Click(object sender, EventArgs e)
{



}
}

}
 
Zuletzt bearbeitet:
Hallo Zusammen,

und zwar bin ich gerade dabei über eine Windows-Forms Anwendung per Libnodave verschiedenste Zustände aus einer Vipa CPU auszulesen.

Mein erster Versuch mit Libnodave und C# hat soweit funktioniert ich konnte eine Verbindung zur CPU herstellen und diese z.B. Starten und Stoppen oder Zustände auslesen.
Libnodave.net.dll habe ich als Verweis in VS2017 eingefügt.

Jetzt kommt mein eigentliches Problem das ganze möchte ich jetzt als C++ Anwendung mit Windows Forms, mir ist hier nur nicht klar wie ich es umsetzten kann.
Wird hier ebenfalls mit der Libnodave.net.dll gearbeitet und wie findet der aufruf in C++ statt? Hat hier vielleicht jemand ein Beispiel an dem man sich orientieren kann?

Danke für eure Unterstützung.

Beispielcode C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace S7Verbindung
{
public partial class Form1 : Form
{

static libnodave.daveOSserialType fds;
static libnodave.daveConnection dc;
static libnodave.daveInterface di;


public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

int rack = 0;
int slot = 2;

// IP Adresse
fds.rfd = libnodave.openSocket(102, "192.168.0.1");
fds.wfd = fds.rfd;

//Eigenschaften für Protokoll festlegen
di = new libnodave.daveInterface(fds, "IF1", 2, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);

//Dauer der Verbindungsanfrage
di.setTimeout(100000);

//Eigenschaften für Verbindung festlegen
dc = new libnodave.daveConnection(di, 2, rack, slot);

//Verbindung
int plcConnect = dc.connectPLC();

//Prüfen ob Verbindung da ist: 0 = Verbindung hergestellt, -1 = Verbindung nicht möglich
if (plcConnect == 0)
{
//Message Box öffnen
MessageBox.Show("Verbindung erfolgreich!");
}
else
{
//Message Box öffnen
MessageBox.Show("Verbindung konnte nicht hergestellt werden!");

}
}

private void button2_Click(object sender, EventArgs e)
{
int plcstop = dc.stop();
}

private void button3_Click(object sender, EventArgs e)
{
int plcstart = dc.start();
}

private void button4_Click(object sender, EventArgs e)
{
int plcConnect = dc.getGetResponse();



textBox1.Text = Convert.ToString(plcConnect);
}

private void button5_Click(object sender, EventArgs e)
{



}
}

}
 
Zurück
Oben