Step 7 TCP verbundung mit Linux Sat Reciver

emilio20

Level-1
Beiträge
835
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich würder gerne über meine Vu+ Solo (linux) sat reciver einige Variablen z.B Raumtemperatur von meiner 315 PN empfangen. Hierzu müsste ich eine TCP Verbindung erstellen.
Programiersprache wäre Python.

Wie erhält S7Droid die Variablen ?

Hat jemand so was schone mal gemacht ? oder einen ansatz ?

https://wiki.python.org/moin/TcpCommunication
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Python kann recht einfach einen TCP-Socket aufbauen.

Mit Siemens geht es etwas schwerer, aber für nen eigenes natives Protokoll reicht es.
Alternativ gibt es eine in C kompilierte Version von Libnodave die in Python eingebunden werden kann (einfach mal googlen).

Grüße

Marcel
 
das ist wenn ich das noch richtig im Kopf habe ein eigenes Protokoll.

Es ist ganz einfach eine S7 Verbindung. Alle diese Tools tun nichts anderes als "händisch" eine S7 Verbindung nachzubauen (plus die unterlagerte ISO-ON-TCP).

Es hängt jetzt haupsächlich davon ab, was du am besten kannst.
Ja, die TCP Verbindung ist vermutlich am einfachsten.

Die shared library von libnodave in Python aufzurufen, oder gleich die Perl Variante von libnodave verwenden wird aber auch nicht unmöglich sein.
https://github.com/netdata/python-libnodave
 
Hallo

benötige ich hierbei eine SPS Programm wie bei TCP ? oder muss ich nur das Python Programm schreiben ?

Mit ist noch unklar wo im Programm gesagt wird welche Verbindung ich verwende (daveProtoISOTCP) ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also wenn du z.B. was eigenes bauen willst dann programmierst du folgendes:

TCP Socket in Python
TCP Socket in der SPS

sendest und empfängst "beliebige" Strings zwischen Python und SPS.
Diese kannst du ja selbst definieren und es dir so ziemlich einfach machen.

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
danke erst mal, ja ein Ansatz wäre gut.
Denke mal das müsste so gehn ode r?

Code:
#!/usr/bin/env python
   2 
   3 import socket
   4 
   5 
   6 TCP_IP = '127.0.0.1'
   7 TCP_PORT = 5005
   8 BUFFER_SIZE = 20  # Normally 1024, but we want fast response
   9 
  10 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  11 s.bind((TCP_IP, TCP_PORT))
  12 s.listen(1)
  13 
  14 conn, addr = s.accept()
  15 print 'Connection address:', addr
  16 while 1:
  17     data = conn.recv(BUFFER_SIZE)
  18     if not data: break
  19     print "received data:", data
  20     conn.send(data)  # echo
  21 conn.close()

https://wiki.python.org/moin/TcpCommunication
 
Zurück
Oben