Emailversand mit IM 151-8 PN/DP CPU

Was soll das Programm denn machen, ist das eine Zufallsmaschine?
Weil du so fleißig mit uninitialisierten Lokaldaten arbeitest.

Wenn du im anderen Programm auch so programmiert hast ist es kein Wunder dass die SPS irgendwann in Stop geht.
Die FC11/OB35 Kombination ist zwar ohne sinnvolle Funktion, sollte aber die SPS nicht in Stop bringen. Der Fehler liegt sicher woanders, gerade bei diesem Fehler mit temporären Variablen zeigen sich die Auswirkungen mehr oder weniger zufällig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der "Anfang" des Programms wurde von meinem Vorgänger entwickelt. Ich habe auf dem was schon in BEtrieb war aufbegaut und erweitert und bisher hat sich die SPS auch nicht "beschwert".
Es gibt noch mehr Bausteine, insg. glaube ich drei oder vier, die so schön mt Temporären Varablen arbeiten.
Ich sollte das Prinzip dann mal überarben wenn der Fehler davon kommen kann.
 
Moin,
noch eine andere Frage.
Im Bsp. Programm wird die "Device-ID" der Hardware im MB52 ausgelesen.
Ist das der Gerätename den man unter "Zielsystem->Ethernet Teilnehmer bearbeiten" einstellen kann?
Wenn ja, was soll da rein?
Eine 1 wie im Bsp geht nicht, wenn ich da meinen DNS Server eintrage wird auch gemeckert.
 
Wie heisst es so schön. "Wer lesen kann ist klar im Vorteil!"
Einmal das Handbuch zum Emailversand genommen und schon lese ich das nur bei WinAC Rechnern die Devise ID angegeben werden muss, in allen anderen Fällen bleibt der Parameter leer.
Ach ja, wenn sich doch nur jede Herausforderung so lösen lässe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe heute mal die Zykluszeit beobachtet.
Nach einer gewissen Zeit erreicht diese Werte bis zu 640ms. Wenn ich beim OB35 eine Zeit von 100ms eingestellt habe erklärt das zumindest warum der OB-Fehler auftritt.
Testweise habe ich die OB35 Zeit auf 5000ms hochgestellt und das ganze lief drei Stunden fehlerfrei. Leider kann ich das so nicht in Betrieb nehmen.
Der Merker der im OB35 gesetzt wird, wird alle 10s gesetzt/zurückgesetzt, das ganze ist ein "Lebensbit" den mein Slave benötigt.
Wie kann ich denn den OB80 auslesen? Im ONlinemodeus wird mir dieser auch leer angezeigt!
 
Was soll das Programm denn machen, ist das eine Zufallsmaschine?
Weil du so fleißig mit uninitialisierten Lokaldaten arbeitest.

Wenn du im anderen Programm auch so programmiert hast ist es kein Wunder dass die SPS irgendwann in Stop geht.
Die FC11/OB35 Kombination ist zwar ohne sinnvolle Funktion, sollte aber die SPS nicht in Stop bringen. Der Fehler liegt sicher woanders, gerade bei diesem Fehler mit temporären Variablen zeigen sich die Auswirkungen mehr oder weniger zufällig.

Das ist keine Zufallsmaschine. Es muss alle 10s ein Lebensbit abgefragt werden was an einen Slave geschickt wird.
Hast du vllt einen Tip wie ich bei der Fehlersuche mit den temp Variablen vorgehen kann. Bisher habe ich rausgefunden das meine Zykluszeit "explodiert", aber ncoh nicht warum.
 
Bisher habe ich rausgefunden das meine Zykluszeit "explodiert", aber ncoh nicht warum.

Na ja, wenn das "ansehen" des Codes nichts bringt, dann kommentiere Teile des Programms aus und sie nach, ob das Problem verschrindet. So kannst du erst einmal den verursachenden Baustein eingrenzen, dann weiter im Baustein. Die IM auf 640ms zu bringen, dazu gehört schon was... :confused: Habt ihr vielleicht viele Schleifen programmiert?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt noch mehr Bausteine, insg. glaube ich drei oder vier, die so schön mt Temporären Varablen arbeiten.
Ich sollte das Prinzip dann mal überarben wenn der Fehler davon kommen kann.

die Temp-Variablen sind nur für "Zwischenergebnisse" im aktuellen Zyklus gedacht - beim nächsten Zyklus ist es reiner Zufall, wenn die Variablen noch den selben Wert besitzen, da der Speicherbereich der Temp-Variablen von allen Bausteinen verwendet werden darf - quasi als "Schmiermerker".

Ihr verwendet die Temp-Variablen ja z.B. als Zyklus-übergreifende Zählvariablen - kein Wunder dass das irgendwann in die Hose geht.

Das ist keine Zufallsmaschine. Es muss alle 10s ein Lebensbit abgefragt werden was an einen Slave geschickt wird.

Das kann man aber auch eleganter, einfacher und vor allem sauberer programmieren.
Ein einfacher Timer (z.B. TON), der sich alle 10 Sekunden selbst resetet, und ein Setzbefehl für das Lebensbit sollte ausreichen.
 
Moin,
ich bin immer noch dabei die Ursache zu suchen. Ohne zuvor etwas umzuprogrammieren.
Testweise wollte ich mit einem anderen Projekt, welches im Einsatz ist und in der Praxis keine Fehler anzeigt, die Änderungen testen die ich für den EMailversand programmiert habe. Bevor ich die Änderungen einfügen wollte habe ich das Ursprungsprogramm noch einmal mit PLCSim getestet und da erscheint auch der OB-Anforderungsfehler. Zuvor musste ich noch den OB80 hinzufügen, der war eigentlich nicht im Projekt vorhanden, aber ohne den ist die CPU gerade in Stop gegangen.
Kann es sein das das Update (STEP 7 V5.5) Fehler erkennt die zuvor nicht erkannt wurden?
 
So nun bin ich ganz verwirrt.
Ich habe testweise ein komplett neues Projekt angelegt.
In dem Projekt befindet sich die HW-Konfig (IM151-8 PN/DP CPU, PM24V DC, analoge Eingangskarte, digitale Eingangskarte und digitale Ausgangskarte) und an Bausteinen habe ich die OBs 1,35,80,82,85,86,100,121 und 122 aus der Bibliothek hinzugefügt.
Immernoch kommt nach ca. 1,5 minuten der OB Anforderungsfehler.
Da stimmt doch was nicht.
Im OB1 steht kein Code drin und die anderen OBs wie gesagt aus der Bibliothek kopiert.
???????????????
 
Das liegt am PLCSim wenn der Rechner mal ne Zeit ausgelastet ist.
Ist "nomal" obwohl ich das Verhalten in den älteren Versionen von PLCSim nicht beobachten konnte.

Da Du geschrieben hast das das am PLCSim liegt, wollte ich das gerade auf einer IM 151-8 PN/DP CPU ausprobieren, habe davon noch eine im Büro.
Hier bekomme ich allerdings die Meldung das ich den FB 490 nicht kopieren kann.
"Der Basutein FB490 konnte nicht kopiert werden.
Details: (D21A) Die Länge der Lokaldaten oder Schreibschutzkennung ist fehlerhaft."

Ich habe den FB490 aus dem Bsp. Projekt rauskopiert und in mein Projekt hinzugefügt.
Was stimmt denn hier nicht?
Ist der FB490 aus dem Bsp. nicht korrekt?
 
Geh mal im Simatic-Manager auf den FB490, rechte Maustaste, "Objekteigenschaften", Reiter "Allgemein - Teil 2". Was steht da bei "Längen"?
Durchaus möglich, dass die IM weniger Lokalspeicher pro Ablaufebene hat, als andere Siemens-CPU, wäre fast typisch für Siemens.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In den Objekteigenschaften steht unter Längen:
Lokaldaten: 2042 Bytes
MC7: 14958 Bytes
Ladespeicherbedarf: 15988 Bytes
Arbeitsspeicherbedarf: 14994 Bytes

In der pdf "Applikation "E-Mail-Versand als Prozessereignismeldung mit SMTP-Kommunikationsbaustein"
steht die IM 151-8 PN/DP CPU als Hardwarkomponente drin die mit dem FB490 arbeiten kann.
 
Danke für den Link.
Ich habe gerade die CPU nochmal urgelöscht und mein Programm in ein neues Projekt eingefügt.
Der FB490 wird nun kopiert, aber ich bekomme beim überspielen der Bausteine und HW-Konfig den Hinweis das nicht genügend Speicher zur Verfügung steht.

Verwendet wird eine Micro Memory Card 64KB. Das Problem mit dem Speicher sollte doch mit einer größeren Speicherkarte behoben sein, oder?!

Das Programm läuft jetzt seit fast 10 min und die ich habe noch keine erhöhte Zykluszeit die den OB Anforderungsfehler auslöst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für den Test habe ich das Programm sehr eingeschränkt und alles von RAM nach ROM und dann auf die MMC kopiert.
Jetzt bekomme ich die Fehlermeldung mit dem Speicher nicht mehr.
Da ich aber mit der CPU an keinem Router hänge und in meinem Büro auch nur WLan zur Verfügung habe, kann ich nun natürlich keine Verbindung zum Internet bzw. Emailserver aufbauen.
Der SIMATIC Manager läuft bei auf einem DELL Laptop mit XP. Gibt es dort irgendeine Möglichkeit der SPS den Internetzugang zu ermöglichen?
 
Zurück
Oben