man kann die position also nicht irgendwie vom servo auslesen. also isses ein Programmierproblem.
Ja. Aber ich würde es nicht unbedingt als Problem, sondern eher als grosse Vereinfachung ansehen

wenn ich jetzt ein sub schreibe sind da variablen die im Main-Teil deklariert wurden nicht verfügbar.
Bei allen Programmiersprachen die ich kenne sind Variablen die ausserhalb irgendwelcher Routinen direkt im Hauptblock des Programms definiert werden innerhalb aller Subroutinen und Funktionen verfügbar.

Kann man in Bascom so eine Art Globale Variable deklarieren?
Braucht man nicht. Man kann aber umgekehrt eine Variable innerhalb einer Funktion oder Routine als "local" deklarieren.

wo finde ich das denn?
Mit ein bischen suchen sicherlich irgendwo in der Online-Hilfe. Einfach mal ausprobieren, kann aber eigentlich auch nicht länger als 3 Minuten dauern, wenn er eine Variable nicht kennt wird der Compiler es dir schon sagen.