TIA Kommunikationsaufbau zwischen SPS und PC

Junge

Level-2
Beiträge
235
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich würde gerne die Visualisierung und Bedienung einer Anlage über Visual Basic programmieren. Dazu müsste ich eine Verbindung zwischen SPS und dem PC aufbauen. Zum Test habe ich nun erstmal meinen Laptop mit der CPU verbunden.

(CPU 1512c <- > Standard Netzwerkkarte)

In meiner Hardwarekonfig habe ich die
CPU 1512c
und eine PC Station
mit dem Kommunikationsmodul "IE Allgemein" eingefügt-
dieser PC Station habe ich die IP meiner Netzwerkkarte gegeben (192.168.0.100).

In Tia verwende ich die "Tcon" Funktion, um mich mit meinen Laptop zu verbinden

Die Einstellungen sind

Lokal:
UDP
lokaler Port 2000

Partner:
unspezifiziert


und mit dem Programm "SocketTest V3.0.0" möchte ich zunächst die Schnittstelle lesen.


Wenn ich es richtig verstanden habe ist die CPU die Serverseite und der Laptop bzw. das SocketTest Programm der Client.

Parameter:
Server CPU 192.168.0.2 Port 2000
SocketTest 192.168.0.100 Port 2001


Ich schaffe es nicht mit Tcon eine Verbindung aufzubauen. :confused:


Ich habe leider noch keine guten Beispiele für diese "Problem" gefunden. Ebenso suche ich noch nach Beispielen für ein VBscript, um die Kommunikation anzustoßen, falls Ihr ein paar gute Tipps habt bzw. Links :) vielleicht reichen schon ein paar passende Begriffe damit ich meine Suche optimieren kann. Ich möchte keine fertigen Quelltexte, ich suche nur erstmal Information zum selber lernen.

Danke
 
TCON baut bei UDP keine direkte Verbindung auf. Es werden nur die Recourcen belegt...
Senden Empfangen geht dann mit TRec TSend...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ist es so zu verstehen, dass ich erst die Verbindung sehe, wenn ich Daten auch aktiv sende?

Mein Tcon Baustein gibt mir im Status nur #7002 -> Verbindung wird aufgebaut. Aber nicht #0000 Verbindung wurde erfolgreich aufgebaut
 
Zuletzt bearbeitet:
Ich würde sagen, dass du den falschen Ansatz verfolgst. Ich würde hier LibNoDave als Basis für dein .Net-Programm nehmen (Freeware) oder das AGLink von Deltalogic (wenn es Geld kosten darf).
In beiden Fällen wird die Kommunikation, wie die HMI-SPS-Kommunikation, von der PC-Seite aus umgesetzt und die Applikation bestimmt dann auch, was sie wann bekommt.

Gruß
Larry
 
Hi Larry,

hab es jetzt erstmal soweit am laufen, dass ich mit meinem Laptop via dem Terminal Programm Hercules und der CPU kommunizieren kann.
Jetzt werde ich mir das von dir empfohlene LibNoDave anschauen.

Kosten sollte es erstmal nichts :) , da ich dass nur aus Eigeninteresse lernen möchte. Irgendwann kann ich dass dann bestimmt nochmal in der Praxis anwenden oder anderen Leute weiterhelfen.

Soweit erstmal Danke!
 
Nachtrag: Für Libnodave und Snap7 gelt es dass für S7-1500 kann man nur nicht-optimierte Bausteine zugreifen, und PUT/GET muss auf den CPU freigegeben werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

da ich eigentlich mit VBA oder VBS nicht wirklich geübt bin und ich jede Befehlszeile dreimal schreiben muss, damit die Syntax stimmt, bin ich für jede Hilfe dankbar.

Ich möchte gerne eine kleine einfache Bedienoberfläche, diese habe ich mir zunächst in Visual Studio als Windows Form erstellt. Die Auswertung der Daten soll dann später erfolgen und im Hintergrund des scripts passieren.


Win Form.jpg

Der Verbindungsauf- und abbau funktioniert. Das senden an die Steuerung funktioniert. (In einen Array of Char)

Ich finde den Fehler leider nicht beim senden von der Steuerung zum PC.. Vielleicht findet Ihr etwas im Quelltext?

Code:
Imports System.Net.Sockets
Imports System.IO
Public Class Form1

    Dim Client As New TcpClient 'Client
    Dim stream As NetworkStream
    Dim streamw As StreamWriter  'Zum senden
    Dim streamr As StreamReader  'Zum empfangen

REM Verbindungsaufbau mit CPU
Code:
    Private Sub BtnConn_Click(sender As Object, e As EventArgs) Handles btnConn.Click

        If Not Client.Connected Then
            Try
                Client.Connect(txtIP.Text, txtPort.Text)    'Client verbindet sich mit IP: 192.168.0.2 und Port 2000

            Catch ex As Exception
                MessageBox.Show("Überprüfen Sie die Verbindungsparameter (IP/Port) und die Einstellungen in der CPU (Tcon)",
                               "Error")
            End Try
        End If

        If Client.Connected Then
            btnConn.BackColor = Color.Lime
            stream = Client.GetStream               'Stream wird auf Client verwiesen
            streamw = New StreamWriter(stream)      'Stream zum Senden wird deklariert
            streamr = New StreamReader(stream)      'Stream zum Empfangen wird deklariert
        End If

    End Sub


REM Schreibe auf CPU
Code:
    Private Sub BtnWriteCPU_Click(sender As Object, e As EventArgs) Handles btnWriteCPU.Click
        streamw.WriteLine(txtwriteCPU.Text)
        streamw.Flush()
    End Sub

REM Lese von CPU
Code:
    Private Sub BtnreadCPU_Click(sender As Object, e As EventArgs) Handles btnreadCPU.Click
        txtreadCPU.Text = streamr.ReadLine()

    End Sub


REM Verbindungsabbau mit CPU
Code:
    Private Sub BtnDiscon_Click(sender As Object, e As EventArgs) Handles btnDiscon.Click
        If Client.Connected Then
            Client.Close()
            stream.Close()
            streamw.Close()
            streamr.Close()
            If Not Client.Connected Then
                btnConn.BackColor = DefaultBackColor
            End If
        End If
    End Sub
 
..vielleicht versuche ich auch erstmal den Vorschlag von Volker :ROFLMAO:


Ich habe mir folgendes Beispiel von Siemens heruntergeladen:

https://support.industry.siemens.com/cs/document/109737901/erstellen-von-opc-ua-clients-mit-net-und-helper-klasse?dti=0&lc=de-DE

Wenn ich nun das Beispielprojekt öffnen möchte, wird mir mitgeteilt, dass dieses Projekt geschützt und mit einem Passwort hinterlegt ist. Ich werde aufgefordert Benutzername und Passwort einzugebenen.. Wisst Ihr welches Passwort? In der Projekt Dokumentation (PDF) habe ich nichts gefunden.
 
Zuletzt bearbeitet:
@Volker: Mit der Schnittstellenverbindung über OPC-UA scheint es ziemlich gut zu funktionieren, zumindest mit dem Beispiel Projekt von Siemens "OPC UA Client".

Jetzt liegt es nun an mir dieses Beispielprojekt auf meine Bedürfnisse anzupassen. Da ich allerdings nur mal so in das Thema mich einarbeiten wollte habe ich keinen konkreten Anwendungsfall - Mich würde sehr interessieren, wie Ihr es nutzt und welche Anforderungen -> der Kunde 4.0 an euch stellt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
..vielleicht versuche ich auch erstmal den Vorschlag von Volker :ROFLMAO:


Ich habe mir folgendes Beispiel von Siemens heruntergeladen:

https://support.industry.siemens.com/cs/document/109737901/erstellen-von-opc-ua-clients-mit-net-und-helper-klasse?dti=0&lc=de-DE

Wenn ich nun das Beispielprojekt öffnen möchte, wird mir mitgeteilt, dass dieses Projekt geschützt und mit einem Passwort hinterlegt ist. Ich werde aufgefordert Benutzername und Passwort einzugebenen.. Wisst Ihr welches Passwort? In der Projekt Dokumentation (PDF) habe ich nichts gefunden.


Falls noch relevant: Steht in der Doku.
- Die globalen Security-Einstellungen sind aktiviert (Benutzer: User / Passwort:
Siemens.1).
 
Hatte sowas für meine Masterarbeit auch gebraucht. Die Verbindung über OPC funktioniert gut ist aber komplizierter als über Snap7, mit welchem ich es letztendlich gelöst habe.

Visualisiert habe ich mit VBA in Excel. Würde ich im nachhinhein aber im .Net machen da man hier freier und performanter ist. Habe damit eine relativ große Anlage Simuliert hat soweit alles funktioniert, auch das Steuern aus dem Excel bzw. aus dem .Net Programm.
 
Hallo,

ist aber komplizierter als über Snap7, mit welchem ich es letztendlich gelöst habe.

Gibt es dazu ein kompaktes Beispiel, das die Einarbeitung in .Net erleichtert?

Ich bin kein Hochsprachenprofi, sondern komme aus der Siemens AWL Welt bzw. mittlerweile SCL.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Muss mich hier korrigieren habe es mit Sharp7 nicht mit Snap7 gelöst. Puh also auf der Website von Sharp7 ist es eigentlich recht ausführlich erklärt http://snap7.sourceforge.net/ hoffe mit dem Link verstoße ich nicht gegen Forenrichtlinien. Allerdings ist das sehr Hochsprachenlastig, der Code in der SPS ist überschaubar. Die Visualisierung dann in Excel oder in C# ist allerdings je nach Umfang ne Hausnummer. Kann aber gerne unterstützen falls das jemand umsetzen will. Meine Programme kann ich leider nicht rausgeben.
 
Zurück
Oben