libnodave mpi connectie siemens s7-300

Hallo Allemaal

Ik ben bezig om via libnodave een koppeling te maken met een siemens s7-300 plc doormiddel van mpi.
Op internet is er redelijk veel informatie tevinden over het gebruik van deze dll en zijn er ook hier nog een aantal topics over maar ik krijg het nog steeds niet werkend.

ik gebruik visual basic, een siemens usb to mpi adapter en een siemens cpu 315-2dp met een aantal digitale in en digitale uitgangskaarten.

ik weet dat er connectie is tussen mijn pc en de plc omdat ik via step7 gewoon mijn plc kan programmeren. En ik heb de libnodave.net.dll toegevoegd zodat ik de functies kan gebruiken.

Voor het testen van de communicatie heb ik gebruik gemaakt van een standaard programma en deze aangepast op mpi

Hieronder volgt een stuk code dat ik heb geschreven om connectie te maken met de plc met behulp van internet

pic basic code:


    Private Sub ConnectPLCToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConnectPLCToolStripMenuItem.Click


        fds.rfd = libnodave.setPort("COM1", "19200", AscW("O"))     'initialize comport
        fds.wfd = fds.rfd   'equal settings for sending and receiving
        
            If fds.rfd > 0 Then ' if step 1 is ok
            di = New libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoMPI, libnodave.daveSpeed187k)
            di.setTimeout(1000000)  
            res = di.initAdapter

            If res = 0 Then     'init adapter is ok
                dc = New libnodave.daveConnection(di, localMPI, rack, slot) ' rack amd slot don't matter in case of MPI
                res = dc.connectPLC
                If res = 0 Then


                    Connection = True
                    ToolStripStatusLabel1.Text = "Connected to PLC"

                End If
            End If

        End If



    End Sub

De variabelen
zijn     
    Public localMPI As Integer = 2
    Public rack As Integer = 0
    Public slot As Integer = 0

Als ik het programma run krijg ik geen errors. Zou iemand mij kunnen helpen met het vinden waarom ik geen connectie krijg.

Alvast heel erg bedankt

MvGr,
Jory

De variabelen
zijn
Public localMPI As Integer = 2
Public rack As Integer = 0
Public slot As Integer = 0

Local MPI adres 2 liever niet, dat is het standaard adres van de plc

Rack 0 is o.k.
Slot moet 2 zijn

succes

Ik heb wat problemen met wanneer een d of t te gebruiken, ddt gebruik ik niet!

Ik heb MPI 2 gebruikt omdat dit het standaard PLC adres is. Moet ik een verschillend MPI adres gebruiken dan de PLC zelf?

Geen ervaring met Libnodave maar LocalMPI doet mij denken aan het MPI adres van de PC, daarom denk ik dat dat niet 2 moet zijn.

Ik heb wat problemen met wanneer een d of t te gebruiken, ddt gebruik ik niet!

Lijkt me ook, elke busdeelnemer heeft zijn eigen adres, ook zal je de verbinding op moeten zetten in de plc anders 'zend' deze niks

Verder ben je wel een verschrikkelijk moeilijke en onlogische weg aan het bewandelen,
Was standaard ethernet (cpkaart) en een opc server niet een stuk simpeler?

GJ_

Moderator

Op 10 oktober 2013 19:51:26 schreef DK:...ook zal je de verbinding op moeten zetten in de plc anders 'zend' deze niks

Nee dat hoeft niet. Ook met bv een HMI via de Mpi hoef je niks in de PLC in gang te zetten.

In ieder geval de mpi op networked zetten in de hwconfig, anders gebeurd er weinig,
Verder dacht ik als je een hmi aanmaakt in het project. Dat hij in netpro die automatisch aanmaakt,verder voegen wij daar zoiezo alle verbindingen in, ook de hmi's

Ik blijf erbij dat opc in dit geval makkelijker is

GJ_

Moderator

Ik gebruik veel HMI's van ESA en dan doe ik helemaal niks in de PLC en het S7 project. Gewoon alles default.
Met libnodave heb ik ooit wel eens wat gespeeld maar dat is lang geleden, dat weet ik echt niet meer.

ja ik weet dat ethernet een stuk makkelijker is. Maar het probleem is dat er practicums aan deze opstelling worden uitgevoerd dus er mag zo min mogelijk veranderd worden. Momenteel zit er geen ethernet kaart in. Daarom leek het ons het makkelijkst om het via MPI te doen. Het moet via visual basic en mag niet via winCC dat was namelijk een stuk makkelijker geweest

Zelf heb ik wel eens een GUI gemaakt in vb en deze gekoppeld aan een arduino maar ik ben geen ervaren programmeur. Deze code is tot stand gekomen door veel informatie opzoeken op internet en deze proberen toe te passen.

Op het duitse sps-forum is hier zeer veel info over tevinden
http://www.sps-forum.de/hochsprachen-opc/48536-libnodave-s7online-trae…

zoek anders maar eens op de tool box van Jochen Kühner

http://www.sps-forum.de/werbung-und-produktneuheiten/46470-dotnetsimat…

hier in vind je zeer veel voorbeelden en werkende connecties met s7

Oook kun je de herschreven dotnet variant gebruiken.

iedereen bedankt voor alle hulp.

dat forum heb ik al eens gekeken maar mijn duits is niet goed.
Ik zal nog eens goed zoeken daar.

Als ik vorderingen maak laat ik het hier wel weten