S7 313c-2dp <-> pc

Joerg123

Level-1
Beiträge
133
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich möchte Daten zwischen SPS und PC austauschen,
ich habe dies in einem alten Projekt mal über serielle Schnittstelle gemacht.
Dabei habe ich die Daten mit einem C-Programm eingelesen und in ein Txt-File geschrieben, jedoch ist diese Technik wohl heute nicht mehr zeitgemäß...

CPU-seitig verwende ich nun zum Testen eine 313 C-2DP und eine CP 343 Ethernet (Sie soll mein Kommunikationskanal zur SPS sein)
PC-seitig würde ich die Daten gerne in Visual C# 2008 weiterverwenden.

Und nun kommts:
Im Internet, wie auch auf dieser Seite findet man so viele Informationen, da sieht man den Wald vor lauter Bäumen nicht.
Da gibts Kommunikation physikalisch über CPs oder über klassische Programmieradapter, softwareseitig liesst man immer wieder von OPC-Servern oder diesem Tool libnodave. Ich bin in diesen Bereichen Neuling, arbeite mich seit zwei Tagen in die Thematik ein, habe OPC-Server Software und auch libnodave runtergeladen aber irgendwie ist mir nicht richtig klar wie ich das ganze anwende.
Darum bitte ich hier um Hilfe!
Gibt es Step by Step-Anleitungen oder besser noch fertige Beispiele wie ich Daten hin- und hergeschaukelt bekomme? Der Weg ist mir eigentlich egal, ob über CP343 oder Programmieradapter, ob libnodave oder OPC.
Wichtig ist mir nur: Siemens CPU <-> Visual C#

Gruß Jörg
 
OPC-Server muß´t du i.d.R. extra kaufen und installieren. Dazu benötigst du noch eine OPC-Client-Komponente, den du in dein C#-Programm einbinden kannst oder du schreibst das selbst ...
Libnodave ist eine Bibliothek, die dir die Funktionen zur Verfügung stellt, die du benötigst um Daten von der SPS zu lesen und dorthin zu schreiben, kostet nichts. Anbei sind diverse Codebeispiele ich denke auch für C#. ALso lade mal libnodave aus dem Netz und sieh dir das Ganze an.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

erster kleiner Erfolg!

habe mit libnodave-Tool 'testISO_TCP dass erste mal Zugriff auf meine CPU bekommen.

Wie geht es weiter?
Was muss ich tun damit ich bestimmte Bits auslesen kann. Welche Dateien aus dem libnodave-Tool muss ich in mein Projekt einbinden?
Hat nicht vielleicht jemand ein fertiges Projektbeispiel für C# 2008?

Gruß Jörg
 
Wie geht es weiter?
Was muss ich tun damit ich bestimmte Bits auslesen kann. Welche Dateien aus dem libnodave-Tool muss ich in mein Projekt einbinden?
Hat nicht vielleicht jemand ein fertiges Projektbeispiel für C# 2008?

du benötigst die Libnodave.dll und wenn du mit .Net schreibst zusätzlich noch die Libnodave.net.dll.


Einfach mal die Beispiele im Ordner Dot.Net (Unterordner CS) anschauen, die sollten dir weiterhelfen ;)
 
Schönen Dank,

die Libnodave.dll hab ich in System32 kopiert und die Testanwendung zum laufen bekommen.

Mit folgendem Code kann ich Daten aus der SPS lesen:

res=dc.readBytes(libnodave.daveInputs,0,0,4,null);
if (res==0)
{
a=dc.getS32();
b=dc.getS32();
c=dc.getS32();
d=dc.getFloat();
Console.WriteLine("FD0: " + a);
Console.WriteLine("FD4: " + b);
Console.WriteLine("FD8: " + c);
Console.WriteLine("FD12: " + d);
}

2 Fragen bleiben:
1.)Wo muss die Libnodave.net.dll hin und wofür brauch ich die (Ja, ich arbeite mit .NET)
2.) Habe versucht einen writeByte-Befehl zu benutzen, bekomme aber immer einen Laufzeitfehler. Vielleicht hat jemand hier ein kurzes Beispiel zur Benutzung des Befehls??

Gruß Jörg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
2 Fragen bleiben:
1.)Wo muss die Libnodave.net.dll hin und wofür brauch ich die (Ja, ich arbeite mit .NET)
2.) Habe versucht einen writeByte-Befehl zu benutzen, bekomme aber immer einen Laufzeitfehler. Vielleicht hat jemand hier ein kurzes Beispiel zur Benutzung des Befehls??

1. Ich hab sie immer in dem Ordner wo auch die .exe des Programms ist.

2. Folgende Beiträge könnten dir helfen Beitrag 1 Beitrag 2

Oder du schaust mal in die testMPI.cs, dort sind auch beispiele für writeBytes drin.
 
Zurück
Oben