Concernant les TQ RVSim :
Pour l'electronique, j'ai pour ma part tout remplacé comme indiqué dans la
ressource partagée.
Cela fonctionne depuis plus de 9 ans sans le moindre probleme.
3 TQ ont été modifiés de cette façon (le mien équipé 8 moteurs et 2 equipés 6 moteurs)
En plus de 15 ans de fonctionnement :
- 2 moteurs spoiler HS (le moteur de spoiler est le plus fragile car il a le plus petit rapport de démultiplication et que c'est le seul avec ce rapport que l'on actionne aussi manuellement. Les engrenages internes au moteur n'aiment pas car ils ne sont pas prévus pour cela).
- 1 remplacement moteur roue de trim, l'axe ayant perdu son méplat.
- 1 engrenage roue de trim cassé (à l'epoque il etait en plexi).
- 2 remplacements de la piece commande PB
J'ai à dispo les fichiers STL pour l'engrenage renforcé de la roue de trim et pour la piece actionnement PB ( celle ci n'est pas compatible avec vos TQ, elle ne se trouve que sur les TQ 8 moteur)
Concernant la roue de trim, n'ait pas peur, en plus de 15 ans de fonctionnement, je suis toujours avec la courroie d'origine et celle ci est toujours en bon état.
Dans mon programme, je laisse le choix dans le fichier de config pour l'actionnement ou non de la roue trim lorsque le PA est activé.
Concernant les moteurs, leur resistance interne est suffisament élevée pour que si tu bloques leur mouvement, rien ne crame tant que cela ne dure pas plusieurs minutes, ainsi pour le déployer et le retracter en automatique, tu peux te permettre de faire cela via une temporisation (ou une boucle dans SIOC).
Voici mon programme TQ 6 moteurs RVSim pour SimAvionic avec les cartes SIOC ça peut donner quelques idées.
// *****************************************************************************
// * Config_SIOC ver 4.01 - By Manuel Velez -
www.opencockpits.com
// *****************************************************************************
// * FileName : throttle Manu V1.10.txt
// * Date : 04/05/2015
// * Author : Fabrice
Var 0000, Value 0 // Initialisation version 1.10
{
&AcOnAir = 0
&SplExt = 0
&BoucleTemps = 1
&WatchDog = 0
&ATengage = 0
&MotTrimOn = 0
&ParkBrk = 32767
}
Var 0001, name BoucleTemps
{
////////////////// Gestion Trim indicateur //////////////////////
L0 = &ValeurObjInd - &ValTrimInd
L1 = 0
IF L0 < 0
{
L1 = 128
}
L0 = ABS L0
L2 = &VitesseIndTrim + L1
IF L0 <= &MargeIndTrim
{
L2 = 0
L1 = 0
}
&TrimIndMotor = L2
////////////////// Gestion Roulette Trim //////////////////////
L0 = 0
IF &TrimValFs < &SauvTrim
{
L0 = 128
}
IF &TrimValFs <> &SauvTrim
{
&TrimMotor = &VitesseTrim + L0
&MotTrimOn = 1
}
ELSE
{
IF &MotTrimOn = 1
{
&TrimMotor = DELAY 0 ,100
&MotTrimOn = 0
}
}
&SauvTrim = DELAY &TrimValFs ,50
////////////////// Gestion Moteur En Automatique //////////////////////
IF &ATengage <> 0
{
L0 = &ValeurObjEn1 - &ValEn1
L1 = 0
IF L0 < 0
{
L1 = 128
}
L0 = ABS L0
L2 = &VitRapideEn1 + L1
IF L0 <= &AproxEn1
{
L2 = &VitLenteEn1 + L1
}
IF L0 <= &MargeEngine
{
L2 = 0
}
&MotorEn1 = L2
L0 = &ValeurObjEn2 - &ValEn2
L1 = 0
IF L0 < 0
{
L1 = 128
}
L0 = ABS L0
L2 = &VitRapideEn2 + L1
IF L0 <= &AproxEn2
{
L2 = &VitLenteEn2 + L1
}
IF L0 <= &MargeEngine
{
L2 = 0
}
&MotorEn2 = L2
}
////////////////// Gestion Moteur En Manuel //////////////////////
IF &ATengage = 0
{
&MotorEn1 = 0
&MotorEn2 = 0
IF &AcOnGrd = 1
{
IF &PotEn1 > 3
{
&ManEn1 = &ValEn1
}
IF &PotEn2 > 3
{
&ManEn2 = &ValEn2
}
}
ELSE
{
&ManEn1 = &ValEn1
&ManEn2 = &ValEn2
}
}
////////////////// Deconnection Moteur si different //////////////////////
L0 = &PotEn2 - &PotEn1
L0 = ABS L0
IF L0 >= 50 // Disengage ATengage si diff en1 et en2 >
{
IF &ATengage = 1
{
&SASwich = 563
&SASwich = DELAY 0 ,20
}
}
////////////////// Gestion Boucle //////////////////////
L0 = &BoucleTemps + 1
IF &BoucleTemps > 900 // Reinitilisation du compteur
{
L0 = 0
}
&BoucleTemps = DELAY L0 ,2
}
Var 0002, name SecondeFS, Link FSUIPC_IN, Offset $023A, Length 1 // Secondes dans FS
{
IF &BoucleTemps = &WatchDog
{
&BoucleTemps = 2
}
ELSE
{
&WatchDog = &BoucleTemps
}
}
Var 0003, name WatchDog
Var 0006, name En1Status, Link FSUIPC_IN, Offset $52EA, Length 1
{
IF &En1Status <> 0 // Si A/T disengage
{
IF &En2Status <> 0 // Si A/T disengage
{
&ATengage = 1
}
}
ELSE
{
&ATengage = 0
}
}
Var 0007, name En2Status, Link FSUIPC_IN, Offset $52EB, Length 1
{
IF &En2Status <> 0 // Si A/T disengage
{
IF &En1Status <> 0 // Si A/T disengage
{
&ATengage = 1
}
}
ELSE
{
&ATengage = 0
}
}
Var 0008, name ATengage
{
IF &ATengage = 0
{
&LeverDiscon = CLEARBIT 3 // Connecte les deux Potentiometre à FS
&LeverDiscon = CLEARBIT 6 // Connecte les deux Potentiometre à FS
&LeverDiscon = CLEARBIT 7 // Connecte les deux Potentiometre à FS
}
ELSE
{
&LeverDiscon = SETBIT 3 // Deconnecte les deux Potentiometre de FS
&LeverDiscon = SETBIT 6 // Deconnecte les deux Potentiometre de FS
&LeverDiscon = SETBIT 7 // Deconnecte les deux Potentiometre de FS
}
}
Var 0009, name SASwich, Link FSUIPC_OUT, Offset $53DB, Length 2
Var 0010, name LeverDiscon, Link FSUIPC_OUT, Offset $310A, Length 1 // Disconnect both LeverPotentiometers from
Var 0011, name ModeHold, Link FSUIPC_IN, Offset $0504, Length 2 // Disconnect A/T when throttle hold
Var 0100, name ManEn1, Link FSUIPC_OUT, Offset $52FA, Length 2 // Valeur engine 1
Var 0103, name ValeurObjEn1, Link FSUIPC_IN, Offset $52EC, Length 2 // 088C Valeur engine 1
Var 0105, name AproxEn1, Value 1000 // points for aproximation break
Var 0106, name VitLenteEn1, Value 55 // Vitesse lente engine 1
Var 0107, name VitRapideEn1, Value 100 // Vitesse rapide engine 1
Var 0108, name MotorEn1, Link USB_DCMOTOR, Device 1, Output 1
Var 0109, name PotEn1, Link USB_ANALOGIC, Device 1, Input 1, PosL 0, PosC 124, PosR 249 // Potentiometre de engine 1
{
&ValEn1 = &PotEn1 * 64
}
Var 0110, name ValEn1
Var 0120, name ManEn2, Link FSUIPC_OUT, Offset $52FC, Length 2 // Valeur engine 2
Var 0123, name ValeurObjEn2, Link FSUIPC_IN, Offset $52EE, Length 2 // 0924 Valeur engine 2
Var 0125, name AproxEn2, Value 1000 // points for aproximation break
Var 0126, name VitLenteEn2, Value 55 // Vitesse lente engine 2
Var 0127, name VitRapideEn2, Value 100 // Vitesse rapide engine 2
Var 0128, name MotorEn2, Link USB_DCMOTOR, Device 1, Output 2
Var 0129, name PotEn2, Link USB_ANALOGIC, Device 1, Input 2, PosL 0, PosC 126, PosR 252 // Potentiometre de engine 2
{
&ValEn2 = &PotEn2 * 64
}
Var 0130, name ValEn2
Var 0131, name MargeEngine, Value 200 // % error
Var 0250, name Altitude, Link FSUIPC_IN, Offset $31E4, Length 4 // RadioAltimetre
{
L0 = &Altitude / 65536
IF L0 > 200
{
IF &AcOnGrd = 0
{
&AcOnAir = 1
IF &SplFull = 1
{
&SplFullPBMotor = 250
&SplFullPBMotor = DELAY 0 ,100
&SplFull = 0
}
}
}
}
Var 0251, name SpoilerMotor, Link USB_DCMOTOR, Device 1, Output 5 // Moteur levier speedbrake
Var 0252, name SplFullPBMotor, Link USB_DCMOTOR, Device 1, Output 6 // Moteur Full speedbrake
Var 0254, name SpoilerARMFS, Link FSUIPC_IN, Offset $0BCC, Length 4 // Spoiler ARMED FSUIPC
Var 0256, name SpoilerFS, Link FSUIPC_IN, Offset $0BD0, Length 4 // Valeur spoiler FSUIPC
Var 0257, name AcOnGrd, Link FSUIPC_IN, Offset $0366, Length 2 // Valeur Avion au Sol FSUIPC
{
IF &AcOnGrd = 1
{
IF &AcOnAir = 1
{
IF &ATengage <> 0 // deconnnection A/T à l'atterrisage
{
&SASwich = 563
&SASwich = DELAY 0 ,50
}
}
}
}
Var 0258, name AcOnAir // Avion en vol
Var 0259, name FSIAS, Link FSUIPC_IN, Offset $02BC, Length 4
{
L0 = &FSIAS / 128
///////////// Deployement des Spoiler si throttles IDLE ///////////
IF &AcOnGrd = 1
{
IF &AcOnAir = 1
{
IF &PotEn1 < 7
{
IF &PotEn2 < 7
{
IF &SpoilerARMFS = 1
{
CALL &SplDetent
}
&AcOnAir = 0
}
}
}
}
///////////// Deployement des Spoiler si declenchement RTO ///////////
IF &AcOnGrd = 1
{
IF &AcOnAir = 0
{
IF &PotEn1 < 7
{
IF &PotEn2 < 7
{
IF L0 > 70
{
IF &SpoilerFS < 6000
{
CALL &SplDetent
&SASwich = 563
&SASwich = DELAY 0 ,50
&ValEn1 = 10
&ValEn2 = 10
}
}
&AcOnAir = 0
}
}
}
}
IF &SplExt = 1
{
IF L0 <= 65 // Retour des Spoilers si spoiler >= armed et vitesse <= 65
{
IF &SpoilerFS >= 4800
{
IF &PotEn1 > 10
{
CALL &SplRetract
}
ELSE
{
IF &PotEn2 > 10
{
CALL &SplRetract
}
}
}
ELSE
{
&SplExt = 0
}
}
IF L0 > 65 // Retour des Spoilers si remise des gaz
{
IF &SpoilerFS >= 4800
{
IF &PotEn1 > 125
{
CALL &SplRetract
}
ELSE
{
IF &PotEn2 > 125
{
CALL &SplRetract
}
}
}
}
}
}
Var 0260, name SplExt // Retour Auto des Spoilers si 1
Var 0261, name SplRetract, Link SUBRUTINE // routine de retour spoiler
{
&SpoilerMotor = 250
&SpoilerMotor = DELAY 0 ,100
&SplExt = 0
}
Var 0262, name SplDetent, Link SUBRUTINE // Routine de deployement spoiler
{
&SplFull = 1
&SplFullPBMotor = 120
&SpoilerMotor = DELAY 120 ,100
&SplFullPBMotor = DELAY 0 ,100
&SpoilerMotor = DELAY 0 ,150
&SplExt = 1
}
Var 0263, name SplFull, Value 1 // Spoiler autorise FULL si 1
Var 0302, name TrimIndMotor, Link USB_DCMOTOR, Device 1, Output 4 // moteur de l'indicateur de trim
Var 0303, name ValeurObjInd
Var 0304, name MargeIndTrim, Value 300 // % erreur
Var 0305, name Aprox, Value 20 // tolerance trim
Var 0306, name VitesseIndTrim, Value 35 // Vitesse indicateur trim
Var 0307, name VitesseTrim, Value 120 // Vitesse roulette de trim
Var 0308, name TrimMotor, Link USB_DCMOTOR, Device 1, Output 3
Var 0309, name TrimIndPot, Link USB_ANALOGIC, Device 1, Input 3, PosL 23, PosC 98, PosR 173 // Potentiometre de l'indicateur de trim
{
L0 = &TrimIndPot * 88.32
&ValTrimInd = L0 - 6226
}
Var 0310, name ValTrimInd
Var 0312, name SauvTrim
Var 0313, name TrimValFs, Link FSUIPC_INOUT, Offset $0BC0, Length 2 // Valeur Trim FSUIPC
{
IF &TrimValFs <= 16383
{
&ValeurObjInd = &TrimValFs
}
ELSE
{
&ValeurObjInd = -6226
}
}
Var 0314, name MotTrimOn
Var 0350, name ParkBrk, Link FSUIPC_IN, Offset $0BC8, Length 2 // Parking brake
{
IF &ParkBrk = 0
{
&SplFullPBMotor = 250
&SplFullPBMotor = DELAY 0 ,100
&SplFull = 1
&SplFullPBMotor = DELAY 120 ,50
&SplFullPBMotor = DELAY 0 ,100
}
}