Arduino Ehernet

Hallo
gibt es einen fertigen Code mit dem ich am Arduino über ehernet E/A / Analog Abfragen und schalten kann ? So wie beim AVR net io von Pollin ?

Ich möchte mit einer SPS über ehernet befehle
z.b abfrage des Digitalen eingang 1: GETPORT 1 Antwort 1 oder 0

Leider verstehe ich nicht was du machen willst.

Kannst du erstmal erklären was du vor hast ?

SPS ist doch schon ne programmierbare Steuerung. Willst du diese übers Internet steuern abfragen oder
eine neue Bauen mit nem Arduino ???

Und welche Schnittstelle hat denn sone SPS ?

Aber im Grunde ist es sehr einfach ne Abfrage oder Steuerung mit dem Arduino und einem Ethernetshild zu machen.

Lg

Hallo

ich habe eine SPS mit der ich mein komplettes Haus steuere. Die SPS hat eine Ehernet Schnittstelle. Ich möchte die digitalen E/A und Analogen Eingänge vom Arduino zur SPS senden bzw von der SPS Steuern.

Hintergrund, es gibt mache Sensoren IR, 2 Zeilendisplay die ich nicht ohne weiteres mit einer SPS steuerun kann. Hier kommt das Arduino zum einsatz.

Es gibt sowas für das AVR net IO. Da aber für ein Arduini kein code vorliegt müsste ich diesen selbst schreiben.

Meine Frage gibt es schon einen Code der dem vom ARV net IO von Pollin entspricht ?

Code funktioniert so ich sende eine Anfrage und erhalte die Antwort
z.b
Abfrage Digitaler Eingang 1 am NET io:
GETPORT 1 antwort 1 oder 0

Es gibt die Firmata Bibliothek die aber mit Processing zusammenarbeitet.
Die SPS hat keine RS232 die Du verwenden könntest?
Ich glaube es sit einfacher einen Sketch auf Arduino zu schreiben der das Standartinterface der SPS liest als die SPS zu programmieren um mit einem Frensteuerungssketch Arduino steuert.
Grüße Uwe

Wollte dies über ehernet machen.

habe folgendes Problem

Ich lese die empfangenen CHAR aus der sps mir folgenden befehl

if (client.available()) {
char c = client.read();
Serial.print(c);
}

wie kann ich jetzt die einselnen CHAR zu einen String zusammensetztn.
z.b

1 char 'G'
2 char 'E'
3 char 'T'
usw.

zusammensetzen in

thisString "GET"

Jetzt wüsste ich was die SPS vom Arduino möchte.

wie kann ich jetzt die einselnen CHAR zu einen String zusammensetztn.
z.b

1 char 'G'
2 char 'E'
3 char 'T'
usw.

zusammensetzen in thisString "GET"

z.B. so

char thisString[80];
char* cp = thisString;

if (client.available()) {
    char c = client.read();
    Serial.print(c);
    *cp++ = c;  // Buchstabe in den string speichern
    *cp = 0; // gleich eine Endekennung dran
    if ( c == '\n') {
      ZeileBearbeiten(thisString);
      cp = thisString; // reset pointer
    }
}

OK kannst du mir genauer erklären was da genau gemacht wird ?

Hallo

Ich möchte mit einem Arduino das selbe machen wie mit dem NET io

Hier mal eine beschreibung welche Befehle ich von der SPS sende und welche Antwort ich erhalte

http://www.gtkdb.de/index_18_1032.html

Da ich mich besser mit SPS Programierung auskenne ich es für mich ehr unmöglich sowas nachzubilden.
Mit dem AVR net io funktioniert mein SPS Programm soweit.

Gibt es diesen AVR net IO CODE auch für ein Arduino ??

Gibt es diesen AVR net IO CODE auch für ein Arduino ??

Da Du so sehr darauf herumreitest, wäre ein Link auf das Stück Code vielleicht angebracht? Nur damit wir auch wissen, worauf Du Dich beziehst.

Was meinst du mit Stück Code ich habe den Pollin Code ja nicht.

Habe nur sowas

  1. Digitalen Eingang abfragen

Kommando: GETPORT
Parameter: X
Beispiel: GETPORT 1 (ruft den Zustand des digitalen Eingangs 1 ab)
Funktion: akt. Status des jeweiligen Digitaleingangs einlesen X steht für den gewählten Digitaleingang
Antwort: Zustand des Eingangs bei High-Pegel = 1, bei Low-Pegel = 0 als ASCII-Zeichen

  1. Analogen Eingang abfragen

Kommando: GETADC
Parameter: X
Beispiel: GETADC 3 (ruft den akt. Wert des ADC-Eingangs 3 ab)
Funktion: akt. Werte der möglichen ADC-Eingänge abrufen X steht für den gewählten ADC-Eingang
Antwort: Dezimaler Wert des gewählten ADC-Kanals z.B. (936)

  1. Ausgang schalten

Kommando: SETPORT
Parameter : X.Y
Beispiel: SETPORT 4.0 (Schaltet Ausgang 4 auf LOW)
Funktion: X steht für den gewählten Ausgang welcher geschaltet werden soll.
Wenn Y=0 dann Ausgang=0, wenn Y=1 dann Ausgang=1.
Anwort: „ACK“ wenn positiv
„NAK“ wenn Fehler aufgetreten sind

  1. Status abrufen

Kommando: GETSTATUS
Parameter: keine
Funktion: Status der Ausgänge abfragen.
Antwort: „S“+Pinstatus mit „1“ für High oder „0“ für Low als ASCII-Zeichen
z.B. S11000101 d.h. Ausgang 1=High, Ausgang 2=Low, Ausgang 3=High usw...

Ist die Angabe eines Links (Bausatz AVR-NET-IO online kaufen | Pollin.de) so schwer, auch wenn sich kein Code dahinter verbirgt? So können wir nachvollziehen, was Du meinst.

In der Ethernet Bibliothek findest Du das ChatServer-Beispiel. Dies ist ein sehr einfacher Telnet-Server, der aber noch keine Befehle versteht. michael_x hat Dir eine mögliche Routine (noch ohne Fehlerverarbeitung wie Pufferüberlauf) gegeben, wie Du eine ganze Zeile einlesen kannst. Die Verarbeitung kannst Du danach mittels strncmp() in IF/THEN-Reihen machen.

Ich hoffe, Du erwartest hier nicht, dass wir Dir den Pollin-Controller nachprogrammieren. Das Programmieren musst Du übernehmen, wir helfen Dir weiter, wenn Du irgendwo anstösst.

Hallo
nein ich erwarte nicht das ihr das macht.

Ich dachte es hat jemand schon mal so eine Anwendung Programiert, die ich mir einfach abändern kann.
Die abfrage über Ehernet gibte es doch bestimmt schon ?

Die abfrage über Ehernet gibte es doch bestimmt schon ?

Ja, Firmata ist in etwa das Gleiche, aber eben nicht identisch, mit anderem Befehlssatz und effizienterem Protokoll. Das hat uwefed Dir bereits vorgeschlagen, aber Du hast ihn komplett ignoriert und bist wieder auf Dein GETPORT losgesteuert. Das macht zumindest für mich den Eindruck, Du willst eine genaue Kopie dieses zwar ziemlich intuitiven aber auch sehr ineffizienten Protokolls.

Um nicht wieder mit einer Annahme hängen zu bleiben: Was ist an Firmata (http://firmata.org für Dich nicht zu gebrauchen?

Hallo
habe ich noch garnicht angeschaut. Schaue es mir gleich mal an, wäre bestimmt auch eine lösung. Ist bei mir irgentwie untergegangen.