Avr net io

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin im Besitz einer S7 315-2 DP und CP343-1. Ist es auch mit diesen Baugruppen möglich
mit dem AVR NET-IO zu kommunizieren?
Die FB63 bis FB65 werden ja in dieser CPU nicht unterstützt.


da sind bzw waren Daniel und ich dran (S7-317 2DP mit CP 343) FC5 und FC6 (AG_Send / AG_RECV) allerdings läuft das noch nicht es gehen teilweise datenpakete verloren usw kannst dich ja mal melden
 
Hi emilio20,

Code:
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x38,20,4);


byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC-Adresse
byte ip[] = {192, 168, 0, 98}; // IP-Adresse
EthernetServer server(1000);   // Port
 
String readBuffer;


 
void setup()
{
  Serial.begin(9600);


  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("dalbi");
  lcd.setCursor(0,1);
  lcd.print("SPS <-> Arduino");
  
  Ethernet.begin(mac, ip);
  server.begin();
  delay(1000);
}
 
void loop() {
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        readBuffer = readBuffer + c;
        if (c == '\n') {    // warten auf new line
          // clearlcd <= Löscht alle Zeichen          
          if(readBuffer.startsWith("clearlcd")) {
            lcd.clear();
            client.println("ACK");
          }
          // writelcd 1.Testtext <= Schreibt Testtext in Zeile 1
          // writelcd 2.Testtext <= Schreibt Testtext in Zeile 2
          if(readBuffer.startsWith("writelcd")) {
            lcd.setCursor(0, readBuffer[9]-49);  // Zeile 1-x
            lcd.print(readBuffer.substring(11, readBuffer.length()-2));
            client.println("ACK");
          }
          // backllcd 1 <= Schaltet die Hintergrundbeleuchtung ein
          // backllcd 0 <= Schaltet die Hintergrungbeleuchtung aus
          if(readBuffer.startsWith("backllcd")) {
            if ((readBuffer[9]-48) == 1) {
              lcd.setBacklight(0);
            } else {
              lcd.backlight();
            }
            client.println("ACK");
          }          
          readBuffer = "";
        }
      }
    }
  }
  client.stop();
}

Die Ethernetparameter und das LCD musst halt entsprechend anpassen.

Folgendes geht jetzt:

clearlcd <- Löscht alle Zeichen
writelcd 1.Testtext <- Schreibt Testtext in die erste Zeile
backllcd 1 <- Schaltet die Hintergrundbeleuchtung ein
backllcd 0 <- Schaltet die Hintergrundbeleuchtung aus

Beim Senden von der SPS ist darauf zu achten das die letzten Zeichen \r\n sind.
Als quittierung vom Arduino zur SPS wird ACK gesendet.

Gruss Daniel

Super Danke schon mal , da kann ich jetzt mal ein bichen mit Spielen.
 
Zurück
Oben