Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: libnodave anfänger

  1. #1
    Registriert seit
    08.05.2009
    Beiträge
    19
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Erstmal grosses Lob ist ein echt klasse Forum hier.......

    Habe im Rahmen meiner Bachelorarbeit die Aufgabe verschiedene DB aus einer
    S7 CPU 314 2DP auszulesen und in eine SQL DB zu schreiben.Dies scheit ja laut den Beiträgen mit libnodave möglich zu sein. Da ich im Bereich Hochsprachen so gut wie keine Ahnung habe versuche ich ich mich nun in das Thema einzulesen:

    Im Ordener doc\gettingStarted unter What the programm can do werden verschiedene Optionen beschrieben um über das Testprogramm mit der CPU zu kommunizieren If you specify the option -w........ usw.
    Will in VB2008 schreiben

    Hier meine Fragen: -kann ich in vb2008 schreiben? ist das testprogramm im dot.net ordener unter vb das richtige für mich zum testen?Wo kann ich die o.g. Optionen einstellen?
    Wäre weiterhin dankbar wenn ich ein paar allgemeine Informationen über das strukturieren eines solchen Programms bekommen könnte bzw. wie ich libnodave im Programm einsetze.

    so denke da reicht erstmal
    vielen dank für eure Bemühungen schon mal vor ab.....

    mfG
    dannyli
    Zitieren Zitieren libnodave anfänger  

  2. #2
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Hallo dannyli,

    ich arbeite seit ca. 2 Jahren mit libnodave und kann mit voller Überzeugung sagen, dass das was du vorhast wirklich so funktioniert!

    Als erstes würde ich hingehen und zuerst einmal ein Testprogramm schreiben, mit dem du einmal die Kommunikation aufbauen, abbauen und Werte aus der SPS lesen bzw. schreiben kannst. Das kannst du dann ja so lange erweitern bis es dann auch noch die Daten in die Datenbank schreibt und dann zum Schluss das ganze zu automatisieren.

    Ich persönlich programmiere meine Programme bevorzugt mit Delphi, davon gibt es auch eine kostenlose Version (Turbo Delphi) und dafür ist auch eine Komponente dabei, mit der das Arbeiten mit libnodave relativ einfach wird, ob und wie es mit VB2008 funktioniert kann ich dir nicht sagen.

  3. #3
    dannyli ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    19
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Human

    Erstmal danke für deine Antwort. Habe versucht ein kleines Programm zu erstellen mit dem ich erstmal eine Verbindung zur SPS herstellen kann. bekomme nun angezeigt libnodave.doserialType is not defined. habe die libnodave .dll schon in mein system 32 kopiert. was muss ich machen um die libnodaves zu definieren?

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ich mu0ß mal blöd nachfragen. Ist VB2008 nicht .Net? Da gabs dann doch noch eine Wrapper-DLL.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    dannyli ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    19
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Ralle

    wie gesagt bin ich blutiger Amfänger was Hochsprachen betrifft. Programmiere mit MS Visual Basic Express Edition. Habe für meine ersten versuche ein älteres Beispiel von earny verwendet siehe:
    http://www.sps-forum.de/showthread.php?t=24391 dieses Beispiel konnte ich soweit nachvollziehen und eine eigene Form in 2008 erstellen. mit der ich zunächst mal eine Kommunikation aufbauen will. hier mal den code den ich bis jetzt geschrieben habe:

    Option Explicit On
    Option Strict Off
    Public Class Form1
    Dim localMPI As Integer = 0, plcMPI As Integer = 2
    Dim fds As libnodave.daveOSserialType
    Dim di As libnodave.daveInterface
    Dim dc As libnodave.daveConnection
    Dim res As Integer = 1
    Private Declare Function daveGetU8from Lib "libnodave.dll" (ByRef buf As Byte) As Byte
    Private Declare Function daveGetS8from Lib "libnodave.dll" (ByRef buf As Byte) As Short
    Private Declare Function daveGetS16from Lib "libnodave.dll" (ByRef buf As Byte) As Short
    Private Declare Function daveGetS32from Lib "libnodave.dll" (ByRef buf As Byte) As Integer
    Private Declare Function daveGetFloatfrom Lib "libnodave.dll" (ByRef buf As Byte) As Single

    Private Sub Timer1_Tick(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Timer1.Tick
    Select Case fds.rfd 'Portstatus - lesen
    Case 0
    txtFDS.Text = "Nicht verbunden"
    txtFDS.BackColor = Color.Orange
    Case Is > 0
    txtFDS.Text = "OK"
    txtFDS.BackColor = Color.Green
    Case Is < 0
    txtFDS.Text = "Fehler"
    txtFDS.BackColor = Color.Red
    End Select
    Select Case res 'Adapterstatus - lesen
    Case 0
    txtRES.Text = "OK"
    txtRES.BackColor = Color.Green
    Case Is < 0
    txtRES.Text = "Fehler LibNoDave"
    txtRES.BackColor = Color.Red
    Case Is > 0
    txtRES.Text = "Fehler CPU"
    txtRES.BackColor = Color.Orange
    End Select
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ByVal e As System.EventArgs) Handles Button1.Click
    If rdbIP.Checked = True Then Call ISO_TCP()
    If rdbCOM.Checked = True Then Call MPI()
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    ByVal e As System.EventArgs) Handles Button2.Click
    di.disconnectAdapter()
    libnodave.closePort(fds.rfd)
    fds.rfd = 0
    res = 1
    di = Nothing
    End Sub
    Public Sub ISO_TCP()
    Dim IP As String
    IP = cbxIP.Text
    If IP <> "" Then 'Kontrolliert, ob der Bediener eine Eingabe gemacht hat
    fds.rfd = libnodave.openSocket(102, IP) 'Portstatus - lesen
    fds.wfd = fds.rfd 'Portstatus schreiben = Portstatus - lesen
    di = New libnodave.daveInterface(fds, "Mein Interface", localMPI, _
    libnodave.daveProtoISOTCP, libnodave.daveSpeed187k)
    di.setTimeout(1000000)
    res = di.initAdapter
    If res = 0 Then 'initAdapter OK
    ' Rack und Slot spielen keine Rolle bei diesem Protokoll
    dc = New libnodave.daveConnection(di, plcMPI, 0, 2)
    res = dc.connectPLC()
    End If
    Else
    MsgBox("Bitte Comport angeben", MsgBoxStyle.Information, "Fehler")
    End If
    End Sub

    Die rot markierten bereiche werden als nicht definiert deklariert weiss du oder jemand anderes damit anzufangen???
    mfG

  6. #6
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Fdür mich sieht das so aus, als wenn das aus irgendeiner anderen Scriptdatei oder Klasse kommt.

    Ich bin mir da jetzt nicht ganz sicher, aber es müsste doch so eine Funktion geben, mit der du nach der Deklaration suchen kannst.

    Mach das Originalprojekt auf und such mal danach, das wird da sicher irgendwo drin sein.

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ich seh das ähnlich wie Human. daveOSserialType findet sich z.Bsp. in der libnodave.net.dll. Keine Ahnung, wie die eigentlich bei VB2008 eingebunden wird. Kann sein, daß hier noch in irgendwas in VB eingetragen werden muß.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    dannyli ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    19
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also die definition scheit funktioniert zu haben, falls mal jemand das problem haben sollte:

    rechte Maustaste auf Projektname dann auf verweis hinzufügen, reier durchsuchen, im libnodave ordner order dot.net die libnodave.net.dll hinzufügen.

    habe jetz noch ein sytax problem was bei vb 2005 nicht aufgetreten ist, gibt es da eine möglichkeit das anzupassen?

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Lies mal das hier (im hinteren Teil wird es für dich interessant), vielleicht hängt es damit zusammen:

    http://www.sps-forum.de/showthread.p...ight=libnodave

    PS: Aber ne, eigentlich eher nicht.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #10
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Meine Kristallkugel scheint gerade kaputt zu sein, kannst du vielleicht noch sagen an welcher Stelle von der Syntaxfehler auftritt?

Ähnliche Themen

  1. Delphi und Libnodave Anfänger
    Von Kanonier im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 30.07.2011, 01:01
  2. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  3. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  4. Libnodave für Anfänger
    Von Waelder im Forum HMI
    Antworten: 2
    Letzter Beitrag: 08.02.2009, 14:31
  5. libnodave anfänger sucht hilfe
    Von chrisi01 im Forum Hochsprachen - OPC
    Antworten: 13
    Letzter Beitrag: 21.12.2007, 13:30

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •