Les objectifs zoom motorisés POMEAS sont positionnés par comptage d'impulsions absolu, ni par tension ni par un signal de retour analogique. Chaque modèle d'objectif est fourni avec une table d'impulsions dont le nom de fichier identifie le modèle et chaque ligne mappe un grossissement optique sur sa position en impulsions — par exemple 1X 4600, 2X 8400. Le zoom multiposition préréglé revient alors simplement à stocker ces valeurs d'impulsions et à émettre des appels MoveTo(pulse) répétés.
Comme le mappage est produit par l'étalonnage d'usine d'un assemblage optique et mécanique spécifique, les valeurs d'impulsions doivent toujours être citées avec le numéro de modèle exact et le type de moteur. Le même grossissement se mappe sur des nombres d'impulsions différents selon les modèles, les générations de moteur, et les cartes de commande chiffrées ou standard.
| Élément | Valeur |
|---|---|
| Méthode de positionnement | Comptage d'impulsions absolu avec référence de retour à l'origine |
| Emplacement de la table d'impulsions | OP/*.txt dans le SDK — nom de fichier = modèle d'objectif, chaque ligne = un grossissement |
| Granularité typique | 9 à 17 paliers de grossissement sélectionnables par objectif, selon le modèle |
| Lecture en retour de la position | Oui — GetPos() / série XN |
| Relation avec le grossissement | Non linéaire ; les incréments d'impulsions par palier de grossissement diminuent quand le grossissement augmente |
| Portabilité entre modèles | Aucune — les tables sont propres au modèle et au moteur |
| Méthode de commande | Positionnement | Reproductible ? |
|---|---|---|
| Moteur CC avec potentiomètre | Analogue, sans référence absolue | Non |
| Pas à pas ou servomoteur avec comptage d'impulsions | Comptage d'impulsions absolu | Oui — lisible et reproductible |
| Zoom motorisé POMEAS | Impulsion absolue plus référence d'origine | Oui — MoveTo(impulsion absolue) avec lecture en retour de la position |
Les conséquences pour l'ingénierie comptent plus que le mécanisme :
Le tableau suivant est la table d'impulsions d'usine du PMS-LZL-12109-3, un objectif 12.5X double moteur avec un moteur de trim de mise au point motorisé 3 mm. Il fournit neuf paliers de grossissement sur sa plage.
| Grossissement optique | Impulsion | Grossissement optique | Impulsion |
|---|---|---|---|
| 0.58X | 10 | 4X | 13650 |
| 1X | 4600 | 5X | 15200 |
| 2X | 8400 | 6X | 16500 |
| 3X | 11700 | 7X | 17700 |
| — | — | 7.5X | 18650 |
Lisez les incréments plutôt que les nombres absolus et la non-linéarité est évidente : le palier de 1X à 2X coûte 3800 impulsions, tandis que 7X à 7.5X n'en coûte que 950. Le comptage d'impulsions suit la position mécanique ; le grossissement est le résultat optique. Les deux sont reliés par l'étalonnage d'usine, non par une formule extrapolable.
Le tableau ci-dessous appartient à la plateforme 6.5X série 65, utilisée par le PMS-LZ-650104 (motorisé) et le PMS-LZ-650105 (motorisé, éclairage coaxial). Il comporte onze paliers et une course totale de 24400 impulsions.
| Grossissement optique | Impulsion | Grossissement optique | Impulsion |
|---|---|---|---|
| 0.69X | 0 | 3X | 20000 |
| 0.7X | 500 | 3.5X | 21800 |
| 1X | 8000 | 4X | 23000 |
| 1.5X | 12000 | 4.5X | 24200 |
| 2X | 15500 | Course totale : 24400 | |
| 2.5X | 18000 | ||
Comparez les deux tableaux et le point devient concret : 1X est l'impulsion 4600 sur l'objectif 12.5X et l'impulsion 8000 sur l'objectif 6.5X. Il n'y a pas d'échelle partagée. Une valeur d'impulsion est sans signification à moins que le modèle ne soit indiqué à côté.
Les différentes générations de moteur utilisent des angles de pas et un micropas différents, donc le même grossissement optique aboutit à un nombre d'impulsions différent. Faites toujours correspondre la table à la ligne de commande réellement montée sur votre objectif.
Les objectifs équipés de la carte de commande chiffrée disposent d'un étalonnage de zéro mécanique indépendant et d'une zone de paramètres Flash. Leurs tables d'impulsions diffèrent de la version standard de la même plateforme optique — à 1X, par exemple, la plateforme 6.5X 1" affiche 6500 sur la carte chiffrée et 8000 sur la carte standard. Changer de carte de commande implique de changer la table.
Les constructions de zoom sur rail utilisent une commande mécanique différente, ce qui explique aussi pourquoi les deux variantes de la plateforme 6.5X sont spécifiées avec des valeurs de résolution en espace objet différentes. Les données de spécification doivent être prises par modèle, non par série.
Les tables d'impulsions existent dans plusieurs documents, et ils ne sont pas tous d'accord. Un tableau très diffusé dans le manuel produit est une mise en page à huit colonnes dont les en-têtes de colonne ne s'alignent pas avec les données situées dessous. Confronter ce tableau aux fichiers d'impulsions par modèle réels du SDK montre clairement le décalage :
| Colonne telle qu'étiquetée | Ce que sont réellement les données | Comment nous le savons |
|---|---|---|
| "650 series" | Correct — données de la série 65 | Correspond exactement au fichier d'impulsions de la série 65, palier par palier (1X = 8000, 2X = 15500, 4.5X = 24200, total 24400) |
| "4K series" | En réalité des données 12.5X | Correspond exactement au fichier d'impulsions de l'objectif 12.5X (1X = 4600, 2X = 8400, 4X = 13650, 7.5X = 18650) |
La règle pratique : prenez les valeurs d'impulsions dans les fichiers d'impulsions par modèle fournis avec le SDK, pas dans un tableau de synthèse d'un manuel. Un tableau de synthèse qui mélange les plateformes est un piège de lecture, et utiliser une colonne sous son en-tête imprimé enverra l'objectif à la mauvaise position.
| Voie | Méthode | Usage typique |
|---|---|---|
| Commande série brute | XG plus six chiffres HEX | PLC, contrôleur de mouvement, microcontrôleur |
| API SDK héritée | MoveGoto(Motor m, long dest) | Windows C++ / C# |
| SDK V4.4.7 | MoveTo(pulse) avec lecture en retour GetPos() | Recommandé pour les nouveaux développements |
(1) XM / GetMaxPos() read total travel, confirm the target is in range
(2) XH / GoHome() home the lens and establish the absolute reference
(3) XG <pulse> / MoveTo() move to the preset position
(4) XZ / GetStatus() poll until 0x55, or until status reads stopped
(5) XN / GetPos() read back and verify (closed loop)
(6) back to (3) for the next preset position
Le cyclage point à point est une capacité native de l'application de démonstration fournie : saisissez une valeur d'impulsion dans le champ de position de test, chargez-la comme position enregistrée, définissez un nombre de répétitions et un temps d'attente, et exécutez. C'est le mécanisme derrière la séquence de zoom multiposition — un seul objectif desservant plusieurs variantes de produit en appelant différents ensembles de positions, sans changement d'objectif ni matériel de commutation mécanique.
// Move to a preset magnification and verify the result
int zoomTo(int fd, long targetPulse) {
char buf[16];
int n = snprintf(buf, sizeof(buf), "%c%c%6lX%c", 'X', 'G', targetPulse, '\r');
if (write(fd, buf, n) != n) return -1; // send
if (waitStop(fd, 10000) != 0) return -2; // wait for motion to end
long pos = readPos(fd); // read back
return (labs(pos - targetPulse) <= TOL) ? 0 : -3; // tolerance set by the integrator
}
La tolérance TOL doit être choisie par l'intégrateur selon l'exigence du processus. Le protocole fournit la lecture en retour de la position ; il ne définit pas de valeur de répétabilité, et aucune affirmation de précision numérique ne doit être faite sans mesures prises sur votre propre matériel dans vos propres conditions.
Si votre processus a besoin d'une valeur de répétabilité, mesurez-la. La procédure ci-dessous produit une valeur de plage pour une condition de fonctionnement spécifique.
| Étape | Action |
|---|---|
| 1 | Choisissez deux positions préréglées éloignées : A (faible grossissement) et B (grossissement élevé) |
| 2 | Raminez l'objectif à l'origine, MoveTo(A), attendez l'arrêt, enregistrez la position P₁ avec GetPos() |
| 3 | MoveTo(B), attendez l'arrêt, enregistrez la position |
| 4 | MoveTo(A), attendez l'arrêt, enregistrez P₂ |
| 5 | Répétez les étapes 3–4 N fois — N de 30 ou plus est conseillé — en enregistrant la position atteinte en A à chaque fois |
| 6 | Calculez la plage R = max(P₂) − min(P₂) et l'écart type |
| 7 | Inversez les rôles de A et B et répétez dans le sens opposé (test bidirectionnel) |
| 8 | Enregistrez la température ambiante, la longueur du câble moteur et la vitesse de course avec le résultat |
Rapportez la plage R pour cet ensemble spécifique de conditions, et indiquez les conditions — un chiffre sans ses conditions n'est utilisable par personne.
Non. Les valeurs publiées pour la plateforme 12.5X diffèrent selon la génération de moteur, et les chiffres ne sont pas interchangeables. Citez la valeur d'impulsion avec le modèle et le type de moteur, toujours.
Non. La conception optique, la course mécanique et le micropas du moteur diffèrent tous. Consultez chaque modèle séparément. La plateforme 6.5X seule compte au moins quatre tables distinctes à travers ses variantes standard, chiffrée et sur rail.
Elles ne l'utilisent pas. La carte chiffrée a son propre étalonnage de zéro et sa zone de paramètres Flash, donc sa table diffère de la carte standard sur la même optique.
L'impulsion est une position ; le grossissement est le résultat optique. La relation est établie par l'étalonnage d'usine et n'est pas linéaire.
Pas de façon fiable. Utilisez le fichier d'impulsions par modèle livré avec le SDK. Les tableaux de synthèse des manuels peuvent — et contiennent — un décalage de colonnes, et la conséquence est un objectif conduit à la mauvaise position.
De l'étalonnage d'usine de chaque modèle d'objectif pris individuellement. Elles sont distribuées sous forme de fichiers texte dans le dossier OP du SDK, où le nom de fichier est le modèle d'objectif et chaque ligne associe un grossissement à sa position en impulsions.
Non. Les incréments d'impulsions par palier de grossissement diminuent quand le grossissement augmente, car le comptage d'impulsions suit la position mécanique plutôt que la puissance optique.
L'objectif accepte toute valeur d'impulsion dans sa course totale, donc les positions intermédiaires sont atteignables. Comme la relation est non linéaire, le grossissement à une impulsion intermédiaire doit être établi par mesure plutôt que par interpolation.
L'objectif ne bouge pas et ne signale aucune erreur. C'est un comportement spécifié, et c'est la raison pour laquelle une lecture en retour de la position — et non une commande de déplacement — est le moyen fiable de confirmer que la liaison est active.
Oui, si vous voulez que la référence absolue soit valide. Le retour à l'origine établit le zéro mécanique à partir duquel les valeurs d'impulsions absolues sont mesurées.
XG, XM et XN utilisées ci-dessusMoveTo, GetPos, GoHome et la famille d'API double moteur
Saisissez simplement votre adresse e-mail pour recevoir les dernières actualités et informations de Pomeas. Restez connecté à Pomeas et soyez le premier à découvrir les innovations en matière d'excellence optique.