Neue Siemens Logo 0BA7 über Ethernet an IPS ???

Nun funktioniert’s. Fast:o!
Online-Status der Geräte wird erkannt und gleichzeitig wird ein Merker in der SPS gesetzt.
Bei Offline wird zusätzlich noch eine Mail gesendet.
Und hier das Problem: Email wird permanent gesendet, also solange bis Gerät wieder online ist.
Wie kann ich das abfangen, das die email nur einmal gesendet wird?

P.S
Wie kriegt ihr eigentlich den php-code hier immer so schön bunt dargestellt?

mfg

<?
foreach(IPS_GetChildrenIDs($IPS_SELF) as $item){     // alle Unterobjekte
    $id_info = IPS_GetObject($item);
    $id_typ = $id_info['ObjectType'];
    if ($id_typ == 2){                               // nur bei Variablen
        $id_adr = $id_info['ObjectInfo'];
        $ping = Sys_Ping($id_adr, 1000);             // Ping max. 2 Sek. warten
        if($IPS_SENDER == "Execute") {               // zum Testen
            echo "IP: $id_adr 
";
            echo "Ping: " .(int)$ping. "

";
        }
        SetValue($item, $ping);                      // Ping-Ergnis speichern
    }
}

$wert = GetValue(36119 /*[Netzwerk\Thermometer EG]*/);      // Status an SPS übergeben
if ($wert == true)
{
S7_WriteBit(42900 /*[Logos\Logo Netzwerk Merker]*/, true);
}
else
{
S7_WriteBit(42900 /*[Logos\Logo Netzwerk Merker]*/, false);

// ++++++++++++++++ Konfig Email senden ++++++++++++++++++++++++++++++++
$uhrzeit = date("H:i.s");
$sendmail = 38522 /*[E-Mail senden (Versorgungsraum)]*/;
$status = getValueBoolean(36119 /*[Netzwerk\Thermometer EG]*/ );
$mailsubject = "Erdgeschoss: Netzwerk-Info";
$mailcontend = "IPS meldet: Der Thermometer EG ist seit $uhrzeit offline";

// +++++++++++++++++Konfig Ende ++++++++++++++

SMTP_SendMail($sendmail, $mailsubject, $mailcontend);
}
?>

Indem man den kleinen PHP-Knopf anklickt :wink:

Gruß,

Toni

Meinst du den php-Knopf (php-code einfügen)?

mfg

Genau den PHP-Knopf :smiley:

So einfach und doch so wirkungsvoll:cool:

mfg

Hey

Ich habe auch ein Projekt am laufen, wo ich eine 0BA7 einsetze. Diese möchte ich mit IPS visualieren, doch leider stosse ich vor dem Kauf von IPS schon auf Probleme, die ich alleine nicht lösen kann.

Aufgabe:

Pumpe steht aufm freien Feld, wird per Logo 0BA7 angesteuert. Vor Ort wird sie am Panel bedient. Nun bin ich nicht immer am Schaltschrank und muss diese Pumpe per Internet erreichen und steuern / visualisieren.

Dazu nutze ich den MoRos UMTS Router, welcher mir eine VPN Verbindung ins Netzwerk der Logo aufbaut. Somit kann ich sie direkt ansprechen, als würde sie hier am PC hängen.

Hardware:

  • Logo 0BA7
  • Siemens HMI Touchpanel KTP 600 basic color
  • Insys MoRos UMTS Router mit 4 fach Ethernet Switch

Soweit ich weiss, setzt IPS auf libnodave auf, was leider mit dem eingesetzten HMI zu Problemen führt.
Das HMI braucht in der Logo als dezentrale Clienteigenschaften TSAP 02.00, für libnodave jedoch muss dies auf 01.00 stehen.
Nun wird klar, das das so nicht funktioniert. Hätte ich kein Panel, würde ich die Logo natürlich auf 01.00 stellen und IPS würde funktionieren.

Kann man libnodave irgendwie auch auf sagen wir 20.00 stellen können? Denn das wäre die nächste freie Verbindung.

Oder welche Möglichkeiten hätte man noch? Ich kann das Panel per Fernwartung von der Logo trennen, was mir aber nichts bringen würde, da das Logo ja auf 02.00 steht. IPS ginge wieder nicht…

Welche Ideen habt ihr?

Grüsse
Chris

Hallo Leute,

ich habe bereits eine LOGO 0BA7 „erfolgreich“ an IPS angebunden, dabei war der Verbindungsaufbau wohl mehr „Glück“ als wirkliches Wissen…

Nun versuche ich die Zweite einzubinden und bekomme es irgendwie nicht hin. Ich vermute, dass es an der Einstellung (siehe Screenshot) liegt.

Kann mir noch mal jemand den Zusammenhang erklären? Wann wird die Information, ob die LOGO als Client oder Server arbeitet eigentlich konkret übertragen?

Joachim

Nachtrag:

Mit diesen Einstellungen konnte ich eine Verbindung zur zweiten LOGO erfolgreich aufbauen. Die zweite LOGO zeigt jedoch einen „Netzwerkfehler“ an. Die Konfiguration ist wie bei der ersten LOGO…

Führt das zu den Problemen? Wo muss ich ggf. etwas ändern?

Joachim

Nachtrag: Jetzt läuft alles!
Ich habe für einen Bekannten eine Anleitung geschrieben, vielleicht hilft es dem einen oder anderen…

IPS mit LOGO.zip (659 KB)

Hallo!

Ich versuche verzweifelt eine Logo! 0BA7 mit IPS zu verbinden. Ich versuche nach der Anleitung aus dem Wiki, bzw von MJ04 ( Danke für diese eigentlich tolle Anleitung! ) vorzugehen, doch leider kann ich schon am Anfang kein Protokoll: ISO over TCP einstellen. Ich finde hier als Auswahl zwar Ausgänge, Eingänge, Systeminfo usw…aber nicht ISO over TCP.

Hat sich von der 2.6 auf die 2.7 etwas geändert, bzw hat jemand einen Rat?

Gruß Martin

Hallo Martin,

ich glaube Du bist in der falschen Maske…

Schau mal in die Anleitung im Posting über Deinem…

Joachim

Nachtrag: Da hat sich offensichtlich tatsächlich etwas geändert…meine Siemens-Logo läuft auch nicht mehr…

Hallo Jpeaper,

Danke für die schnelle Rückeldung.
Ich habe Deinen Tip versucht, aber da funktioniert es auch nicht.
Wie ich heute morgen gesehen habe besteht das Problem nicht nur bei mir.
Ich verfolge jetzt das dazugehörige Posting von Ziege-One, in dem Du ja auch schon geantwortet hast.

Gruß Martin

Hab meine Logo um weitere 8 Ein- und Ausgänge erweitert.
Die zusätzlichen 8 Eingänge lassen sich im Webfront simulieren. Hier habe ich die Siemens-Instanz auf Adresse 1 und die Area auf 0 gestellt.

Das gleiche habe ich mit den Ausgängen gemacht, leider ändern sich diese nicht im Webfront.
Die ersten 4 Ausgänge funktionieren. Siemens-Instanz ist hier Adresse 0 und Area 0.
Die weiteren Ausgänge habe ich auf Siemens-Instanz Adresse 1 und Area 0 stehen sowie bei den Eingängen.

<?
 // Q5
if (1 == ($IPS_VALUE & 1))
{ SetValue(13795 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q5(Heizkreis-Pumpe)]*/, true); }
elseif (0 == ($IPS_VALUE & 1))
{ SetValue(13795 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q5(Heizkreis-Pumpe)]*/, false);}
// Q6
if (2 == ($IPS_VALUE & 2))
{ SetValue(14105 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q6(Wärmetauscher-Pumpe)]*/, true);}
elseif (0 == ($IPS_VALUE & 2))
{ SetValue(14105 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q6(Wärmetauscher-Pumpe)]*/, false);}
// Q7
if (4 == ($IPS_VALUE & 4))
{ SetValue(12303/*[Logo Büro\Logo Altbau\Logo Ausgänge \Q7]*/, true);}
 elseif (0 == ($IPS_VALUE & 4))
{ SetValue(12303 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q7]*/, false);}
// Q8
if (8 == ($IPS_VALUE & 8))
{ SetValue(42211 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q8]*/, true);}
elseif (0 == ($IPS_VALUE & 8))
{ SetValue(42211 /*[Logos\Logo Heizung Neubau\Logo Ausgänge\Q8]*/, false);}
// Q9
if (16 == ($IPS_VALUE & 16))
{ SetValue(30274 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q9]*/, true);}
 elseif (0 == ($IPS_VALUE & 16))
{ SetValue(30274 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q9]*/, false);}
// Q10
if (32 == ($IPS_VALUE & 32))
{ SetValue(44022 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q10]*/, true);}
elseif (0 == ($IPS_VALUE & 32))
{ SetValue(44022 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q10]*/, false);}
// Q11
if (64 == ($IPS_VALUE & 64))
{ SetValue(27561 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q11]*/, true);}
elseif (0 == ($IPS_VALUE & 64))
{ SetValue(27561 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q11]*/, false);}
// Q12
if (128 == ($IPS_VALUE & 128))
{ SetValue(30058 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q12]*/, true);}
elseif (0 == ($IPS_VALUE & 128))
{ SetValue(30058 /*[Logos\Logo Heizung Altbau\Logo Ausgänge \Q12]*/, false);}
?>

Muss ich hier eine andere Adresse bei der Siemens-Instanz einstellen?

mfg

Hallo caesar,

Deine Angaben sind sehr mager. Eine neue Instanz musst Du dafür nicht erstellen. Ich bin etwas verwirrt über Deine Programmierung. Vermutlich setzt Du immer Datenblocks? Ich setze immer die einzelnen Ausgänge als „Bit“ - finde ich etwas übersichtlicher.
Du schreibst, dass sich im Webfront nichts ändert, ändert sich den etwas an den Schaltzuständen der LOGO?
Für die Basisausgänge der LOGO muss „AreaAdress“ auf 0, „Adresse“ ebenfalls auf 0, für die Erweiterung wird dann die „AreaAdress“ dann auf 1, „Adresse“ aber ebenfalls auf 0 - so hast Du es wohl auch gemacht…

Joachim

Ja hast recht, ist ein bisschen schwierig zu erklären.
Das Gute vorneweg, ist funktioniert jetzt. Wie du schon richtig schreibst, hat die Basis die Adresse 0. Die Logo-Basis hat 4 Ausgänge von Q1 bis Q4. Die Erweiterung hat 8 Ausgänge von Q5-Q12.
Die Adresse 0 bedient allerdings die Ausgänge von Q1 bis Q8, dh. die Ausgänge Q5 - Q8 werden ebenfalls über die Basis-Adresse 0 mitangesprochen.
Die Ausgänge Q9 bis Q12 werden dann über die Adresse 1 angesprochen. Bei mir war das vermischt.
Ich hoffe, es ist jetzt verständlicher, was mein eigentliches Problem war.

P.S Wie sprichst du die einzelnen Bits an? Geht doch nur, wenn du für jedes Bit eine neue Instanz erzeugst, oder?

mfg
caesar

Hallo caesar,

schön das es jetzt läuft!
Ja, ich habe für jeden genutzten Netzwerk-Eingang, Ausgang und wichtige Merker eine Instanz angelegt und diese in der IPS-Struktur in einen Ordner gelegt, die Befehle und Abfragen erfolgen thematisch sortiert in den jeweils anderen Kategorien (derzeit Türen und Tore sowie Licht in der Garage - weitere Steuerungen sollen noch folgen).

Joachim

Hallo,
weiß jemand, ob man die Uhrzeit der Logo mit einem NTP-Zeitserver synchronisieren kann?

mfg

…in der LOGO-Soft kannst Du die aktuelle Uhrzeit übertragen - aber das ist es wahrscheinlich nicht was Du gemeint hast?

Joachim

Ja schon, nur nach einiger Zeit(Tage, Wochen usw.) weicht die Uhrzeit der Logo um einiges von der Atomzeit ab.
Für manche Messungen, z.B Stromspitzenmessung im Viertelstundentakt(typisch in der Industrie), ist eine sekundengenaue Messung erforderlich.
dh.,wenn ich zB. per IPS genau um 12.00 Uhr die Strommessung starte, kann es sein, dass der Zeitstempel der Logo 12.02 Uhr ausgibt.
Da die Logo sowieso am Netzwerk hängt, wäre jetzt ein Zeitabgleich über einen Zeitserver das einfachste.
Kann man die Uhrzeit der Logo von IPS aus permanent abgleichen?

mfg

Hallo caesar,

von der Theorie muss es ja irgendwie gehen - die LOGOsoft überträgt die Daten ja auch über das Netzwerk…

Joachim

Hallo IPS´ler,

hat jemand schon erfolgreich analoge Eingänge aus einer 0BA7 Logo eingelesen? Habe zwei Logo´s an IPS. Eine für nen Kompressor und die zweite am Holzvergaser. Da wäre es schön, wenn ich die Abgastemperatur, Restsauerstoff etc. in IPS bringe.

Danke schon mal im Voraus.

Gruß,
Hermann