Freitag, 1. Juli 2022

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")