S7 Bausteine mit Excel Macro übertragen

ErwinLSE

Level-1
Beiträge
46
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

gib es eine Möglichkeit S7 Bausteine mittels Excelmacro über Profinet in eine S7 CPU zu kopieren?

Hintergrund meiner Frage ist, wir haben eine Anlage mit 36 Arbeitsplätzen wo jeder eine eigenne CPU hat, die untereinander uber Profinet verbunden sind. Das S7 Project ist auf allen Arbeitsplätzen bis auf 2 Ausnahmen identisch. Wenn ich jetzt eine Änderung an einem Arbeitsplatz vorneme muss ich diese in jeden AP einzeln einspielen.

Ich stelle mir vor ich habe ein Masterprojekt welches ich mittels Macro automatisch auf alle AP übertragen kann, gut währe noch wenn ich die zu überspielenden Bausteine aussuchen könnte.
 
Mit libnodave kannst du Bausteine auf die SPS schreiben, und auch auslesen. So könntest du den Bytecode eines Bausteines mit libnodave aus einer SPS lesen, und damit auch wieder in eine andere schreiben.
 
Ich denke ich werde das mal mit der Kommandoschnittstelle versuchen.
Ist es möglich die Kommandoschnittstelle mit PLCSIM zu testen, d.h. kann ich über die Kommandoschnittstelle Bausteine auf eine simulierte CPU übertragen und das über ProfiNet.
 
Ist es möglich die Kommandoschnittstelle mit PLCSIM zu testen, d.h. kann ich über die Kommandoschnittstelle Bausteine auf eine simulierte CPU übertragen und das über ProfiNet.
In Plcsim laden sollte vom eigenen Rechner aus gehen. Laden von Bausteinen über Netzwerk funktioniert hingegen nicht.
Du kannst aber Plcsim mit einer entsprechenden Simulationsdatei starten, und in dieser könntest du vorher das gewünschte Projekt hinterlegen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
habe jetzt mal was programmiert, es sollen Bausteine erst im Projekt in eine andere Station kopiert und dann auf die CPU übertragen werden. Es funktioniert auch soweit nur manchmal sieht es so aus als wäre Excel abgestürzt und nach einer gewissen Zeit ist Excel wieder bedienbar und die Bausteine wurden auch kopiert. Mein Problem ist das ich wärend Excel nicht mehr reagiert keine Textausgaben machen kann was das Tool gerade macht.
Kann man an dem Code noch was ändern das Excel nicht einfriert?

Code:
Sub FC_kopieren()
    Dim test As Object
    Dim ziel As Object
    Dim dummy As Object
    Dim zeile As Integer, spalte As Integer
    Dim station As String, baustein As String
    
    Dim letzteZeile As Integer
    
       
    letzteZeile = 156
    
    Call ProjektOeffnen
    global_Simatic.AutomaticSave = False
    For zeile = 4 To letzteZeile
        For spalte = 3 To 34
            If ThisWorkbook.Sheets("Tabelle1").Cells(zeile, spalte) <> "" Then
                station = ThisWorkbook.Sheets("Tabelle1").Cells(3, spalte)              'Station in die kopiert wird
                baustein = ThisWorkbook.Sheets("Tabelle1").Cells(zeile, 2)              'Baustein der kopiert werden soll
                ThisWorkbook.Sheets("Tabelle1").Cells(2, 8) = "kopiere " & baustein & " nach " & station
                Set ziel = global_Project.Programs(station).Next("Bausteine")  'Ziel vom kopieren festlegen
                '++++++++++++++++++++++++++++++  Baustein löschen wenn vorhanden  +++++++++++++
                For Each dummy In ziel.Next
                  If dummy = baustein Then
                    dummy.Remove
                    Exit For
                  End If
                Next dummy
                Set dummy = Nothing
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                Set test = global_Project.Programs("M1020").Next("Bausteine").Next(baustein).Copy(ziel)   ' kopieren
                test.Download (S7OverwriteAll)
                
            End If
        Next spalte
        ThisWorkbook.Sheets("Tabelle1").Cells(2, 8) = "Autosave" & zeile & " " & spalte
        global_Simatic.Save
   Next zeile

    Call CloseProject
End Sub
 
Zuletzt bearbeitet:
Zurück
Oben