Network.lib mit CoDeSys V2.3.8.0 od. V2.3.9.3

Begonnen von IL_Duce, 29. April 2011, 10:30:04

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

peter_f

Hallo Peewit,

dein Typ, erstmal die Demos genauer anzuschauen, und vor allem der Hinweis mit der Zeitsteuerung haben genau ins Schwarze getroffen. Dafür erst mal besten Dank. Jetzt habe ich allerdings noch ein Problem, für das es bestimmt auch eine Lösung gibt. Wenn ich dem DLOG_STORE_CSV die Zeit aus RTC_2 übergebe, dann ist die natürlich falsch, weil ich dem an SDT irgendeine Zeit vorgaukle. Wenn ich mit der Hardwaqre-SPS von WAGO arbeiten würde, dann könnte ich mit SYSRTCGETTIME hier als Startzeit die SPSzeit anlegen. Ich arbeite aber mit der SoftPLC von 3S (CoDeSys SP PLC WINNT). Damit geht diese Funktion natürlich nicht, scheint ja eine Funktion von und für Wago zu sein. Gibt es eine Möglichkeit stattdessen die PC-Zeit des Rechners, auf dem die SoftPLC läuft hier zu verwenden, oder muss ich ernsthaft von einer realen (Hardware-)Steuerung mit sysrtcgettime die Zeit holen und per Netzvariable veröffentlichen?

Ein zweites Problem was ich habe ist, dass ich ab und zu genau dann, wenn eine neue CSV angelegt werden soll, den Fehler #16:Tasküberwachung fehlgeschlagen für 'Watchdox expired Task=Default Task'. Das passiert nicht immer wenn eine Datei angelegt werden soll, aber - soweit ich das bisher beobachten konnte - nur wenn eine Datei angelegt werden soll, und offensichtlich nicht, wenn es die Datei bereits gibt und sie soll nur überschrieben werden.

Irgendeine Idee?

Gruß
Peter

peewit

#16
hallo

probier mal die bibliothek "syslibrtc.lib" -> Baustein "sysrtcgettime" aus



Watchdog !

1. beim anlegen einer neuen datei wird relativ viel auf einmal gemacht
2. die syslibfile.sys funktionen sind synchrone funktionen, das heisst die sps ist solange in dieser funktion gefangen bis diese
fertig ist. das würde bei asynchronen funktionen nicht passieren, aber das ist halt mal so.

in deinem fall entweder die maximale taskzeit erhöhen, oder den dlog baustein in einen eigenen freilaufenden task geben

es gibt aber noch etwas !

die datenstruktur beim parameter "x" enthalt die variable "LOAD_TIME_MAX"
wenn hier nichts eingetragen ist, dann werden max 5ms lang daten verarbeitet.
das heisst du könntest versuchen hier mal eine kürzere zeit vorzugeben

dazu musst du aber die OSCAT-NETWORK-LIB 1.30 Release Candidate 1 nehmen
http://www.oscat.de/community/index.php/topic,1872.msg9862.html#msg9862