Bueeenoo, llevo unos días "destripando" los drivers de Jedicut y ya "se entiende" el porqué de los comportamientos "raros"...
Haciendo história, tiene su razón de ser... en los tiempos de Win95 (cuando se crea) no había forma de tener medida del "tiempo" en el programa más que por el reloj, que tiene (tenía) una precisión de 10ms aprox.
... pero para las señales de motor se necesitan tiempos de 0,25ms
La solución de CncNet fué generar una señal externa por el pin 10 y en el programa ir siguiendo el ritmo de los cambios de esa patilla. Ya puestos, iban contando pulsos de ese oscilador y generaban la señal variable del control de temperatura... todo muy "acopladito"
Las controladoras actuales no tienen ese oscilador externo, y menos la señal de feedback del hilo... así que el driver MDLCNC se elimina el código que sigue al oscilador, pero sigue habiendo el problema de mantener un ritmo de 250useg en los pulsos de motor.
Y aquí el problema:
Código: Seleccionar todoOFFSET_SIGNAL_SENS = 50000;
TEMPS_STEP_HAUT = 100000;
begin
codeRetour := NO_ERROR;
if (vitesse>=0) then //velocidad
begin
// Si on n'a pas choisi l'utilisation du timer externe
if not ParametreCommunication.synchroniserMoteurAvecTimerExterne then
begin
tempsBas := vitesse - TEMPS_STEP_HAUT;
if (tempsBas<=0) then tempsBas := TEMPS_STEP_HAUT; <<--- PROBLEMA:1
// Emettre le sens de rotation
PortOut(portAdresseBase, bitSens);
for i := 0 to OFFSET_SIGNAL_SENS do <<--- PROBLEMA:2
begin
end;
--- PROBLEMA:1
Cualquier nº que pusiéramos de velocidad en la pantalla de configuración inferior a TEMPS_STEP_HAUT (100000
) se igualaba a TEMPS_STEP_HAUT
Por ello iba lento y no hace caso a aumentar la velocidad.
--- PROBLEMA:2
El retraso se genera con un "bucle loco" haciendo contar al procesador de 0 a 100.000 (o más allá)
Con los ordenadores actuales que trabajan a Ghz... no es una medida "fiable", varía por cada modelo de ordenador o Incluso los procesadores actuales varían su velocidad en función de la demanda, para economizar.
................................................................
He compartido el driver para Jedicut que he dejado en
http://tallerdedalo.es/web/FDC4.
El control de tiempo se hace con contadores de 64bit que cuentan en uSeg. y se autoajusta a la velocidad de la CPU. (Windows 2K en adelante). Ancho de pulso de 100uS... debe ser mucho más estable que antes
.
Es compatible con control de Temperatura CT4 y ¡con FDC4 por supuesto!!
(no es obligatorio tenerlo).
Es una version beta, cualquier comentario ¡bienvenido!!!
Salu2
Cuando has volado y ves el cielo, ya nunca lo miras igual... porque piensas: yo he estado allí
(Leonardo Da Vinci)
Fresadora CNC
Centralita CD3
www.tallerdedalo.es