Copyright © Dipl.-Ing. Johannes Hofer 2022
Die KI-SPS
Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen
Das Listing zum Pi:
# socket test for raspi
import socket
import threading
import sys
import time
HOST_CLIENT = "192.168.8.106"
PORT_RCV = 3000 # port used by receive
PORT_SEND = 2000 # port used by send
FORMAT = 'utf-8'
# client to receive and send
def RCV_SEND():
try:
_rcv = None
_send = None
# socket receive messages
_rcv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
_rcv.settimeout(30)
_rcv.connect((HOST_CLIENT, PORT_RCV))
print("Socket RCV is connected")
# socket send answer
_send = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
_send.settimeout(30)
_send.connect((HOST_CLIENT, PORT_SEND))
print("Socket SEND is connected")
connected = True
while connected:
data = _rcv.recv(1024).decode(FORMAT)
l = len(data)
s = str(l)
print(f"Len: " + s)
# parseData
print(f"Message [RCV]: {data}")
# return from parseData
s = "[{" + "SD:Raspi RCV -> ok" + "}]"
_send.send(s.encode(FORMAT))
print("[SEND]: " + s)
except:
print("Exception in RCV_SEND ",sys.exc_info()[0])
if(_rcv != None):
_rcv.close()
if(_send != None):
_send.close()
print("Close sockets")
return;
# main
def main():
while(True):
thread_RCV_SEND = threading.Thread(target = RCV_SEND)
thread_RCV_SEND.start()
print("Start RCV and SEND Thread")
while(thread_RCV_SEND.is_alive()):
...
print("Inteface network is disconnect ... wait")
time.sleep(2)
print("try again")
main()
print("Program out")