ich möchte einen Datenaustausch zwischen SPS und PC realsieren. Von der SPS werden dabei INT Werte via TCP/IP geschickt. Diese Daten werden dann von einem Python Server in eine Datei geschrieben.
Der Python Server hat folgenden Code:
Code: Alles auswählen
#! /usr/bin/env python
# -*- encoding: latin1 -*-
# Dieser TCP-Server sendet alle Daten, die er empfängt an den
# Client als Antwort zurück
from socket import *
import time
# Der standard Echo Port ist nicht sehr nützlich, da er root
# Rechte erfordert. Wir nehemen den Port 50007
ECHO_PORT = 2000
BUFSIZE = 1024
def main():
# TCP-Socket erstellen und an Port binden
s = socket(AF_INET, SOCK_STREAM)
f = file('C:\\gedicht.txt', 'a')
print "Socket initiert"
x = gethostname()
print x
y = gethostbyname(x)
print y
s.bind(('', ECHO_PORT))
s.listen(1)
print "Server gestartet"
# Warte auf eine Verbindung zum Server
conn, (remotehost, remoteport) = s.accept()
print 'Verbunden mit %s:%s' % (remotehost, remoteport)
while 1:
# Empfange daten vom Client
data = conn.recv(BUFSIZE)
zeit = time.strftime('%d.%m.%Y %H:%M:%S')
zeitm = time.clock()
print (time.strftime('%d.%m.%Y %H:%M:%S') + '\t' + str(time.clock()) + '\t' + repr(data) + '\t')
f.write(time.strftime('%d.%m.%Y %H:%M:%S') + '\t' + str(time.clock()) + '\t' + repr(data) + '\t')
f.write('\n')
if not data:
# Die Verbindung wurde getrennt
# Abbruch
break
# Sende die Daten zurück zum client
#conn.send(data)
# Socket schließen
s.close()
f.close()
print('Verbindung beendet')
if __name__ == '__main__':
main()