Problème de configuration avec 2 cartes USB Servo

Fichiers de configuration .ini / Alimentation

Problème de configuration avec 2 cartes USB Servo

Messagede SUIRE2 » Dim 6 Mai 2012 21:06

Bonsoir,
Je viens faire appel aux spécialistes en SIOC, car j'ai des problèmes lors de l'ajout d'une deuxième carte USB servo.
Je tournais sans problème avec une première carte servo et 6 instruments ( Tachy, Badin, Vario, Horizon inclinaison, horizon pente et Pression d'essence ) avec FS2004, Windows 7.
J'ai eu besoin d'ajouter des instruments et j'ai acheté une deuxième carte servo. C'est là où çà s'est compliqué.
J'ai rajouté un hub avec 3 sorties USB et j'ai "bidouillé" la configuration des cartes, ce qui fait que mes instruments ne marchent plus avec FS ( ils marchent avec IOCard Test ) .Les switches volets et train fonctionnent toujours sur FS.
J'ai beau relire toute la doc et consulter le Forum en long et en large, rien n'y fait.
Je joins une copie de la fenêtre SIOC et du fichier txt de la configuration. Si quelqu'un peut m'aider, ce sera avec grand plaisir.
Merci d'anace.
Michel
Image
SUIRE2
 
Messages: 86
Inscription: 21/12/09

Re: Problème de configuration avec 2 cartes USB Servo

Messagede stevelep » Dim 6 Mai 2012 21:58

Hello,

En tout cas tes 2 cartes servo sont bien reconnues dans la fenêtre du SIOC.
Il faut les déclarer dans le sioc.ini avec les bons n°USB
Et dans le code SIOC il faut bien les différencier avec les n° de device

Mets nous ton sioc.ini et la partie de ton code SIOC pour les servo

Merci

BOB

PS j'ai 5 cartes servo et ça fonctionne ...
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Problème de configuration avec 2 cartes USB Servo

Messagede SUIRE2 » Lun 7 Mai 2012 11:30

Merci, Bob pour ta réponse rapide. En fait le problème a un peu évolué depuis hier. J'arrive à faire fonctionner les servos sur la carte n°1 ( Device 26 ) sans indiquer le n° de device dans la fenètre "Paramètres" de l'USB Servos pour la programmation.( sur le IOCARDS USB Test j'ai le n° de device 2216 ) J'avoue que je m'y perd un peu dans ces n° de device . Par contre pour le servo Pression d'essence sur la carte USB servo n°2 ( device 24 ou 2132 ), il n'ya pas de réaction sur le servo que je mette le n° de device ou pas dans la fenêtre "Paramètres". Alors qu'avant quand je n'avais qu'une seule carte servo, la pression d'essence marchait bien.
Je te joins comme tu me l'a demandé le fichier de configuration et l'ensemble du code SIOC.
Merci pour ton aide précieuse.
Cordialement,
Michel.
Code: Tout sélectionner
[Fichero de configuracion para el SIOC]
[ Configuration file for SIOC ]
Version=3.5
generated_by=Config_SiocIni

[SIOC]
IOCP_port=8090
IOCP_timeout=4000
Minimized=Yes
toggle_delay=20
CONFIG_FILE=.\sioc.ssi

[IOCARDS MODULE]
IOCard_disable=No
IOCard_LPT=No

[MASTERS]
MASTER=0,4,1,0

[USBSTEPPER]

[USBKEYS]

[USBSERVOS]
USBServos=0,26
USBServos=1,24

[USBRELAYS]

[USBMOTOR]

[USBANALOGIC]

[FSUIPC MODULE]
FSUipcdisable=No
FSUipcRefresh=50

[IOCP CLIENTS MODULES]
IOCPini_delay= 3000
IOCPclient0_disable=Yes
IOCPclient0_host=localhost
IOCPclient0_port=8091
IOCPclient1_disable=Yes
IOCPclient1_host=localhost
IOCPclient1_port=8092

[SOUND MODULE]
Sound_disable=Yes
Volume=100

[ #1 ]
Sound=APDis.wav,-1,-1,-1

[ #2 ]
Sound=*outermk.wav,-1,-1,-1

Code: Tout sélectionner
/ *****************************************************************************
// * Config_SIOC ver 4.01   -     By Manuel Velez    -    www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 07/05/2012



Var 0000, name INIT, Value 0     // Variable d'initialisation
{
  &FLAPS = 0         // Volets Up
  &GEAR = 16383         // Train sorti
  &HORIZ_PENTE01 = 866   
  &HORIZON_INCL01 = 835         // initialisation
}

Var 0010, name GEAR, Link FSUIPC_INOUT, Offset $0BE8, Length 4     // Commande du train

Var 0011, name L_GEAR_POS, Link FSUIPC_IN, Offset $0BF4, Length 4     // Position du train gauche
{
  IF &L_GEAR_POS = 16383
  {
    &L_GEAR_LED = 1   
    &GEAR_TRANS_LED = 0   
  }
  ELSE
  {
    IF &L_GEAR_POS >= 1
    {
      &L_GEAR_LED = 0   
      &GEAR_TRANS_LED = 1   
    }
    ELSE
    {
      &L_GEAR_LED = 0   
      &GEAR_TRANS_LED = 0   
    }
  }
}

Var 0012, name R_GEAR_POS, Link FSUIPC_IN, Offset $0BF0, Length 4     // Position du train droit
{
  IF &R_GEAR_POS = 16383
  {
    &R_GEAR_LED = 1   
    &GEAR_TRANS_LED = 0   
  }
  ELSE
  {
    IF &R_GEAR_POS >= 1
    {
      &R_GEAR_LED = 0   
      &GEAR_TRANS_LED = 1   
    }
    ELSE
    {
      &R_GEAR_LED = 0   
      &GEAR_TRANS_LED = 0   
    }
  }
}

Var 0013, name NOSE_GEAR_POS, Link FSUIPC_IN, Offset $0BEC, Length 4     // Position du train avant
{
  IF &NOSE_GEAR_POS = 16383     // Train avant sorti
  {
    &NOSE_GEAR_LED = 1         // LED Verte Train avant allumée
    &GEAR_TRANS_LED = 0         // Voyant Transit éteint
  }
  ELSE     // Le train avant n'est pas sorti
  {
    IF &NOSE_GEAR_POS >= 1     // Le train avant en transit
    {
      &NOSE_GEAR_LED = 0         // LED Verte train avant éteinte
      &GEAR_TRANS_LED = 1         // Voyant transit allumé
    }
    ELSE
    {
      IF &NOSE_GEAR_POS = 0     // Train avant rentré
      {
        &NOSE_GEAR_LED = 0         // LED Verte train avant éteinte
        &GEAR_TRANS_LED = 0         // Voyant transit éteint
      }
    }
  }
}

Var 0016, name GEAR_SW, Link IOCARD_SW, Input 25     // Inter du levier de train
{
  IF &GEAR_SW = 1     // Si l'inter est fermé
  {
    &GEAR = 16383         // Le train est sorti
  }
  ELSE     // Autrement
  {
    &GEAR = 0         // Le train est rentré
  }
}

Var 0200, name FLAPS, Link FSUIPC_INOUT, Offset $0BDC, Length 4     // Commande de volets

Var 0205, name FLAPS_UP_SW, Link IOCARD_SW, Input 8     // Volets position " rentrés "
{
  IF &FLAPS_UP_SW = 1     // Inter en position volets " rentrés "
  {
    &FLAPS = 0         // Valeur pour volets " rentrés "
  }
  ELSE     // AUTREMENT
  {
    &FLAPS = 8191         // Valeur pour position approche
  }
}

Var 0210, name FLAPS_DN_SW, Link IOCARD_SW, Input 3     // Volets Position " sortis "
{
  IF &FLAPS_DN_SW = 1     // Inter sur " volets sortis "
  {
    &FLAPS = 16383         // Valeur pour " Volets sortis "
  }
  ELSE     // Autrement
  {
    &FLAPS = 8191         // Valeur pour position approche
  }
}

Var 0550, name TACHY, Link FSUIPC_IN, Offset $0898, Length 2, Type 1     // TACHY
{
  L0 = DIV &TACHY ,128
  L1 = L0 * 3.3     // Calcul de la pente du du servo (A)
  L2 = L1 + 70     // Calcul de l'interception du servo (B)
  &SERVO2 = L2   
}

Var 0555, name SERVO2, Link USB_SERVOS, Output 1, PosL 122, PosC 401, PosR 680, Type 2     // TACHYMETRE

Var 0580, name BADIN, Link FSUIPC_IN, Offset $02BC, Length 2     // BADIN
{
  L0 = DIV &BADIN ,128
  L1 = L0 * 2     // Calcul de la pente du servo
  L2 = L1 + 330     // Calcul de l'interception servo
  &Servo4 = L2   
  &Servo4 = LIMIT 395 ,600 ,0
}

Var 0590, name Servo4, Link USB_SERVOS, Output 2, PosL 395, PosC 520, PosR 600, Type 1     // Jauge Badin

Var 0600, Link FSUIPC_IN, Offset $02C8, Length 4, Type 1     // Vertical speed
{
  L0 = V0600 * 3     // FSUIPC Conversion ,L0=Vs
  L0 = ABS L0     // Lo sans signe
  L2 = L0   
  IF L0 <= 1000     // Secteur du bas
  {
    L1 = L2 * 0.085     // ( 85 pas/1000 valeurs ) =0,085
  }
  ELSE     // C'est une valeur plus grande
  {
    L2 = L0 - 1000     // L2 a seulement  valeurs pour secteur sui
    IF L0 <= 2000     // 2ième secteur
    {
      L1 = L2 * 0.052     // 52 pas /1000 valeurs) =0,052
      L1 = L1 + 85     // Ajouter les pas des autres secteurs
    }
    ELSE
    {
      L2 = L0 - 2000     // L2 a seulemt valeurs pour sect. suivant
      IF L0 <= 4000     // 3. Secteur
      {
        L1 = L2 * 0.028     // ( 56 /2000 ) = 0.028
        L1 = L1 + 137     // Ajout des pas des autres sect 52+85
      }
      ELSE
      {
        L2 = L0 - 4000     // L2 seulemt sect suiv val.1000.1000.2000)
        IF L0 <= 6000     // 4. Secteur
        {
          L1 = L2 * 0.035     // ( 70 / 2000 ) =0.035
          L1 = L1 + 193     // Ajouter des pas aux autres sect 56+52+85
        }
        ELSE     // En dehors des limites
        {
          L1 = 263         // Position max
        }
      }
    }
  }
  IF V0600 < 0     // Si  Vs est négative
  {
    &VSI = 607 - L1     // Soustraire du centre
  }
  ELSE
  {
    &VSI = 607 + L1     // Sinon ajouter au centre
  }
}

Var 0620, name VSI, Link USB_SERVOS, Output 3, PosL 245, PosC 607, PosR 870, Type 2     // SERVO  VARIO

Var 0640, name HORIZ_PENTE01, Link USB_SERVOS, Output 5, PosL 780, PosC 866, PosR 940, Type 1     // Pente

Var 0650, name HORIZ_PENTE, Link FSUIPC_IN, Offset $0578, Length 4, Type 1     // Variable de pente
{
  L0 = &HORIZ_PENTE * 8.38E-008     // Conversion en angle
  IF L0 > 40     // Limite de l'angle à 20° max
  {
    L0 = 40   
  }
  IF L0 < -40     // Limite de l'angle à -20° max
  {
    L0 = -40   
  }
  L1 = L0 * 3     // Calcul en degrés pour le servo
  &HORIZ_PENTE01 = L1 + 975
}

Var 0660, name HORIZON_INCL01, Link USB_SERVOS, Output 4, PosL 730, PosC 835, PosR 1023, Type 1     // Inclinaison

Var 0670, name HORIZON_INCLIN, Link FSUIPC_IN, Offset $057C, Length 4, Type 1     // Variable d'inclinaison
{
  L0 = &HORIZON_INCLIN * 8.38E-008     // Conversion en angle
  IF L0 > 40     // Limite de l'angle à 40°max
  {
    L0 = 40   
  }
  IF L0 < -40     // Limite de l'angle à -40+
  {
    L0 = -40   
  }
  L1 = L0 * 2.8     // Calcul en degrés pour le servo
  &HORIZON_INCL01 = L1 + 795
}

Var 0680, name ALTIMETRE, Link USB_SERVOS, Output 6, PosL 700, PosC 750, PosR 800, Type 1     // Altimètre

Var 0685, name ALTIMETRE_01, Link FSUIPC_IN, Offset $3324, Length 4, Type 1     // Variable d'altimètre
{
  L0 = DIV &ALTIMETRE ,128
  L1 = L0 * -200
  L2 = L1 + 100
  &ALTIMETRE = L2   
}

Var 0700, name P_essence, Link FSUIPC_IN, Offset $08F8, Length 4, Type 1     // Pression essence
{
  L0 = DIV &P_essence ,128
  L1 = L0 * -10     // Calcul de la pente du servo
  L2 = L1 + 100     // Calcul interception servo,donne le 0
}

Var 0710, name P_essence01, Link USB_SERVOS, Device 24, Output 3, PosL 642, PosC 501, PosR 360, Type 1     // Pression ESSENCE

Var 1000, name GEAR_TRANS_LED, Link IOCARD_OUT, Output 11     // LED Rouge " Train en transit "

Var 1001, name L_GEAR_LED, Link IOCARD_OUT, Output 12     // LED verte Train gauche

Var 1002, name R_GEAR_LED, Link IOCARD_OUT, Output 13     // LED Verte Train droit

Var 1003, name NOSE_GEAR_LED, Link IOCARD_OUT, Output 14     // LED Verte Train avant

Var 1100, name ENG_THROTTLE, Link FSUIPC_OUT, Offset $088C, Length 2     // Offset de gaz

Var 1110, name POT_THROTTLE, Link IOCARD_ANALOGIC, Input 1, PosL 0, PosC 127, PosR 255     // Commande de gaz
{
  &ENG_THROTTLE = &POT_THROTTLE * 64
}

Var 1120, name PAL, Link FSUIPC_OUT, Offset $0BBA, Length 2     // Offset de Palonnier

Var 1125, name PALONNIER, Link IOCARD_ANALOGIC, Input 2, PosL 0, PosC 127, PosR 255     // Commande de palonnier
{
  IF &PALONNIER < 110     // Pour faciliter le centrage
  {
    IF &PALONNIER > 98
    {
      &PAL = 0   
    }
  }
  IF &PALONNIER > 110
  {
    L2 = &PALONNIER - 110
    &PAL = L2 * -400
    IF &PAL < -16383
    {
      &PAL = -16383   
    }
  }
  IF &PALONNIER < 98
  {
    L1 = 98 - &PALONNIER
    &PAL = L1 * 400
    IF &PAL > 16383
    {
      &PAL = 16383   
    }
  }
}

Var 1130, name PROF, Link FSUIPC_OUT, Offset $0BB2, Length 2     // Offset de Profondeur

Var 1135, name PROFONDEUR, Link IOCARD_ANALOGIC, Input 3, PosL 0, PosC 127, PosR 255     // Commande de profondeur
{
  IF &PROFONDEUR < 110     // Pour faciliter le centrage
  {
    IF &PROFONDEUR > 98
    {
      &PROF = 0   
    }
  }
  IF &PROFONDEUR > 110
  {
    L2 = &PROFONDEUR - 110
    &PROF = L2 * -400
    IF &PROF < -16383
    {
      &PROF = -16383   
    }
  }
  IF &PROFONDEUR < 98
  {
    L1 = 98 - &PROFONDEUR
    &PROF = L1 * 400
    IF &PROF > 16383
    {
      &PROF = 16383   
    }
  }
}

Var 1140, name AILER, Link FSUIPC_OUT, Offset $0BB6, Length 2     // Offset d'Aileron

Var 1145, name AILERONS, Link IOCARD_ANALOGIC, Input 4, PosL 0, PosC 127, PosR 255     // Commande d'ailerons
{
  IF &AILERONS < 110     // Pour faciliter le centrage
  {
    IF &AILERONS > 98
    {
      &AILER = 0   
    }
  }
  IF &AILERONS > 110
  {
    L2 = &AILERONS - 110
    &AILER = L2 * -400
    IF &AILER < -16383
    {
      &AILER = -16383   
    }
  }
  IF &AILERONS < 98
  {
    L1 = 98 - &AILERONS
    &AILER = L1 * 400
    IF &AILER > 16383
    {
      &AILER = 16383   
    }
  }
}
SUIRE2
 
Messages: 86
Inscription: 21/12/09

Re: Problème de configuration avec 2 cartes USB Servo

Messagede stevelep » Lun 7 Mai 2012 12:21

Hello,

Avec une seule carte, il n'y a pas besoin de config, mais quand tu en as plusieurs le SIOC doit pouvoir
les différencier, il faut utiliser la commande DEVICE.

Primo dans le sioc.ini il faut attribuer un N° de device aux 2 cartes et si possible pas 0

[USBSERVOS]
USBServos=1,26
USBServos=2,24

Ensuite dans le code tu dois rajouter pour toutes les variables USB-Servo le DEVICE 1 ou DEVICE 2
suivant que ce servo est sur la carte 1 ou 2

exemple:

Var 4216, name sv_loilp, Link USB_SERVOS, Device 1, Output 1, PosL 1, PosC 512, PosR 1023
Var 4217, name sv_roilp, Link USB_SERVOS, Device 1, Output 2, PosL 1, PosC 512, PosR 1023
Var 4218, name sv_lfuel, Link USB_SERVOS, Device 1, Output 3, PosL 1, PosC 512, PosR 1023
Var 4219, name sv_rfuel, Link USB_SERVOS, Device 2, Output 1, PosL 1, PosC 512, PosR 1023
Var 4220, name sv_loilt, Link USB_SERVOS, Device 2, Output 2, PosL 1, PosC 512, PosR 1023
Var 4221, name sv_roilt, Link USB_SERVOS, Device 2, Output 3, PosL 1, PosC 512, PosR 1023

A ma connaissance, il n'y a pas de paramètre TYPE pour les variable USB-Servo, il faut l'enlever

Var 0590, name Servo4, Link USB_SERVOS, Output 2, PosL 395, PosC 520, PosR 600, Type 1 // Jauge Badin

Je te conseille de laisser les PosL R C à leur valeurs de base ( PosL 1, PosC 512, PosR 1023)et d'utiliser la fonction LIMIT du SIOC pour bloquer les extrémités des servos (ceci dit si ca marche comme ça chez toi ne change pas...)

Voila

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Problème de configuration avec 2 cartes USB Servo

Messagede SUIRE2 » Mar 8 Mai 2012 23:51

Bob,
Merci pour ta réponse rapide, çà a l'air de marcher.
Michel
SUIRE2
 
Messages: 86
Inscription: 21/12/09


Retourner vers Configuration du système





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités