Hallo gravieren.
Entschuldige die späte Antwort. Leider lese ich nur sehr unregelmäßig hier.
Thema Über-/Unterlauf:
Ich bin eigentlich von anderen Geber-Typen gewohnt, daß man an sie einen Referenz-Offset schreiben kann und die anschließend ausgegebenen Positionswerte dann schon korrigiert sind. Bei SSI-Gebern scheint so etwas aber nicht vorgesehen zu sein (das Protokoll sieht keinen Rückkanal vor). SSI-Geber melden also immer nur ihre aktuelle Position relativ zu einem Werksseitig eingestellten Referenzpunkt an die Steuerung. Offsets müssen daher in der Steuerung verrechnet werden.
Bei einem linearen Geber ist das kein Problem, da der Nullpunkt in einem Bereich liegt, der physikalisch nicht erreicht wird. Auch das andere Ende des Messbereichs stellt kein Problem dar, da bei der vorgegebenen Auflösung der Positions-Daten am Messbereichs-Ende noch kein Überlauf stattgefunden hat.
Bei rotativen Gebern sieht die Sache allerdings etwas anders aus. Hier kann selbstverständlich ein Über-/Unterlauf stattfinden. Und dies kann im ungünstigsten Fall je nach Einbaulage mitten im gewünschten Messbereich stattfinden.
Thema Gebertausch:
Natürlich muß vorausgesetzt werden, daß bei einem Tausch des Gebers dieser gegen den gleichen Typ ausgetauscht wird. Sollte dies aus irgendwelchen Gründen nicht möglich sein, ist es IMHO vertretbar daß im SPS-Programm angepasst werden muß.
Thema Diagnose:
Diese Art der Anzeige von Geberwerten habe ich mir schon länger angewöhnt. Aber ein Diagnose-Bild bringt mich kaum weiter bei der Lösung des Problems wie die Werte in der SPS korrekt verarbeitet werden.
Nochmal kurz meine Problembeschreibung:
Wird ein rotativer Geber an einer Linearachse so eingebaut, daß der Geber-Nullpunkt ausserhalb des mechanischen Verfahrbereichs liegt, gibt es kein Problem. Einfach einen Offset addieren/subtrahieren und gut is.
Liegt der Nullpunkt aber im Verfahrbereich so muß ich einen Über-/Unterlauf erkennen und von dort weiterzählen.
Wie schon gesagt: Die Lösung des Problems ist definitiv möglich (bei anderen Absolutwert-Geber-Typen funktionierts ja), nur ich finde irgendwie nicht den Weg dorthin. :-)
MfG
Skotti