Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Themen - fenast

Seiten: [1]
1
oscat.lib fuer PC WorX/MULTIPROG / kleiner Bug in FT_DERIV
« am: 30. Dezember 2011, 23:28:10 »
Ein Hinweis an den Autor: Gerade habe ich in der PCWORX-Version einen Copy/Paste-Fehler gefunden, der offenbar schon seit März 2009 existiert. Beim letzten Update wurde der Code modifiziert und zusätzlich der Code der alten Version dringelassen (schnell zu sehen, wenn man an's Fileende scrollt). Hat außer Performanceeinbußen wohl keine Auswirkungen, wahrscheinlich hat's deswegen auch noch keiner gemerkt? Gruß und Happy New OSCAT Year!

2
Liebe Leute, ich habe ein lustiges kleines Problem mit einer Phoenix-Kleinsteuerung ILC 130 ETH unter PCWORX 5.20 (SP 4.45).
Dort habe ich den OSCAT(3v32)-PID-Regler CTRL_PID genutzt (übrigens ein Klasse-Teil!) und mich gewundert, warum er nicht funktioniert. Der Output liefert konsequent 0.0. Weitere Forschungen ergaben, dass die (dort verwendete) Funktion DEAD_ZONE Quelle des Übels ist. Sie spuckt ebenfalls Null aus, egal welche Parameter man ihr übergibt. Da tut sie auch, wenn man sie isoliert einfach im Hauptprogramm aufruft, z.B. ist hier DzOut immer 0.0 statt 2.0:
DzOut := DEAD_ZONE (DzIn, DzLim) mit den Vorbesetzungen DzIn := 2.0; DzLim := 0.1; oder beliebigen anderen Werten.
Der Blick in den Code von DEAD_ZONE zeigt, dass dort mittels ABS() ein Absolutwert berechnet wird. ABS() liefert jedoch immer 0.0, wenn ABS() innerhalb von DEAD_ZONE aufgrufen wird. ABS() funktioniert jedoch, wenn ABS() im Hauptprogramm direkt (also nicht innerhalb einer OSCAT-Bibliotheksfunktion) aufgerufen wird.
Wenn man den (überschaubaren) ST-Code von DEAD_ZONE modifiziert und die ABS()-Funktion dort entfernt bzw. durch funktionsgleiche if-Konstrukte ersetzt, funktioniert alles. Aber das kann's nicht sein.
Schreibt man das gleiche Programm für ein anderes Phonenix-Zielsystem, für das eine PC-Simulation möglich ist (bei der ILC130 gibt's dämlicherweise keine Simu-Möglichkeit), so funktioniert alles (auch mit ABS()) wunderbar.

AÄhhh - ich bin nicht gerade ein Anfänger (wohl schon bei PCWORX), aber dazu fällt mir nix ein... vielleicht hat jemand von euch eine Idee? Demo-Projekt (obiger Dreizeiler) kann zur Verfügung gestellt werden, aber man braucht halt eine ILC130, um das auszuprobieren. Vielen Dank vorab für eure Hilfe.

Seiten: [1]