17.07.2017 15:27 | |
Beiträge: 5 Bewertung: (0) |
Hi an alle Programmierer Kollegen, gemäß einer Aufgabenstellung, stecke ich momentan etwas fest mit der Lösung. Ich habe die Aufgabe im S7-1500 TIA Portal v 13 ein Real Wert in einen anderen, nicht linearen Real Wert zu skalieren. Dieser Wert und später zusätzliche Kalkulationen soll schließlich als Regelwert für eine Regelarmatur für ein Kältesystem eingesetzt werden. Ein hohes Maß an Wert-Genauigkeit ist deshalb gefordert. Hierzu habe ich mir diverse Möglichkeiten versucht umzusetzen: Polygon (Jedoch ziemlich hohe Abweichungen trotz 6. Grades, gem. erstellte Excel Tabelle) Lineare Interpolation (zu wenige xy Werte-Paare verfügbar, um die Genauigkeit einzuhalten. Benötigt werden 153 Werte Paare) Und schließlich bin ich auf folgender Lösungsvorschlag von Siemens gestoßen gem.https://support.industry.siemens.com/cs/document/8803015/messwerte-mit-polygonzug-interpolieren-und-funktionswerte-ausgeben?dti=0&lc=de-WW. Es handelt sich um einen Polygonzug (FC50). Es eignet sich für S7-300/400 CPUs. Jedoch wird hier der BLOCK_DB als Eingangsbaustein verwendet, den es für die S71500 CPU nicht mehr gibt. Ich habe bereits versucht einen DB_ANY und DB_VARIANT stattdessen einzusetzen die dann schließlich über einen UDT mit einen Array [0..152, 0..1] definiert wurde, habe jedoch immer wieder einen Übersetzungsfehler. Auch versuche einen Array über einen Globalen DB zu nehmen hat nicht funktioniert. Muss dazu sagen, dass ich nicht sehr erfahren im SCL Programmieren bin. Hoffe jemand hat die Muse, mich bei meiner Lösungsfindung zu unterstützen. Vielen Dank schonmal Gruß RE78 DateianhangPolygon.xlsx (110 Downloads) |
19.07.2017 15:28 | |
Beiträge: 861 Bewertung: (108)
|
Hallo, änder den Datentyp von statYout auf Real dann ist alles gut. Grüße H0556 |
19.07.2017 16:31 | |
Beiträge: 5 Bewertung: (0) |
Logisch! Danke! Gruß RE78 |
Folgen Sie uns auf