03-26-2009 11:59 AM
Bonjour,
Voilà mon soucis, j'utilise une carte 6133 en 32MS (en faite j'ai besoin de 24M d'échantillon pour mon test)
Le pb c'est que quand je programme mon nombre de point (pas de pb) si je le relis (DAQmxGetTimingAttribute) ou que je lance la tache, j'ai un message d'erreur comme quoi je ne peux pas dépasser 16 777 000 de points.
Je pense que c'est la limite haute pour les cartes 6133 en 16 MS/s.
Mais je ne sais pas comment lui faire comprendre que j'ai bien une 32MS.
Est-ce un pb hard ou soft ?
Quel est l'instruction pour passer le pb ?
D'avance merci
(CVI 7.1 + NI DAQmx 8.7.1)
03-27-2009 05:30 AM
Bonjour,
Il s'avère que certaines cartes 6133 on été chargées avec le mauvais FirmWare. La conséquence de cela est que la carte pense avoir une mémoire embarquée de 16 M échantillons alors qu'elle en a 32.
Le problème pourra être résolut en mettant à jour le FirmWare de votre carte 6133 à l'aide du logiciel téléchargeable sur le lien FPT suivant:
ftp://ftp.ni.com/support/daq/pc/updates/hardware/6123_6133_Update
Une note avait été envoyée aux clients concernés au moment ou ce problème a été découvert.
Je vous présente nos excuses pour ce désagrément.
Sincères salutations,
03-27-2009 09:58 AM
Merci pour la réponse
Je pense que le pb vient de là
je ferais la manip lundi
Cordialement
03-30-2009 09:43 AM
Désolé, ça ne fonctionne pas
Pas de carte trouvée, nécessitant un update du firmeware N° de série : 0x13c351EN° de socket : 0xe
Je suis preneur si quelqu'un a une idée
sinon je vais essayer de faire sortir une autre carte pour comparer...
04-03-2009 01:40 AM
04-03-2009 10:24 AM
04-06-2009 09:13 AM
Nous avons parlé a notre contact chez NI, je lui ai envoyé aujourd'hui la liste des cartes ayant le pb (l'inconvéniant c'est que les sn sont dans la même plage), ainsi que le message exact de l'erreur.
je pourrais poster le code mais pas avant demain, si autorisation...
A priori les cartes accepte la programmation jusqu'a 32MS (en réalité lorsque l'on met plus la carte indique 33...)
c'est bien la relecture de la programmation qui pose pb (en utilisant la fonction DAQmxGetTimingAttribute)
Lorsque j'utilise cette fonction avec un nb de sample inférieur à 16M, pas de pb.
Et les acquisitions fonctionnent bien (tableau de pt cohérent avec le stimuli)
04-06-2009 09:25 AM
j'ai retrouvé le message sur ma clé usb, le voici :
(-200306 = Measurements: An attempt was made to set the Samples per Channel property to a value greater than the maximum supported number.
Property: DAQmx_SampQuant_SampPerChan
Corresponding Value: 32000000
Value Must Be Less Than: 16777216
Task Name: StdAIport
Status Code: -200306)
Cordialement
04-07-2009 10:34 AM
Bonjour,
exemple de code :
// DEBUT
// Créer la tâche DAQmx ES affectée à la ressources
Status = DAQmxCreateTask("StdAIport", &gTaskHandleStdDIport);
MINOS3_errChk(idAcquisition);
// Mise en forme du Dev
sprintf(cTemp, "%u",handleAcquisition);
strcat(cDev,cTemp);
// Pour toutes les voies à acquérir
for (nCpt = 0; nCpt < strlen (cChannel_s); nCpt++)
{
// Si l'on trouve une virgule, passer
if (cChannel_s[nCpt] == ',')
continue;
sprintf(szPhysicalChannel, "%s/ai%c", cDev, cChannel_s[nCpt]);
// Création de la tache d'acquisition
// +- 10V d'acquisition max => NI 6133
// Acquisition en différentiel
Status = DAQmxCreateAIVoltageChan (gTaskHandleStdDIport, szPhysicalChannel, "", DAQmx_Val_Diff, -10.0, 10.0,
DAQmx_Val_Volts, "");
MINOS3_errChk(idAcquisition);
}
// Configuration de la période d'échantillonnage
Status = DAQmxCfgSampClkTiming (gTaskHandleStdDIport, "OnboardClock",
scanRate, DAQmx_Val_Rising,
DAQmx_Val_FiniteSamps,
number_of_scans);
MINOS3_errChk(idAcquisition);
// relecture du sample rate pour vérification si besoin
Status = DAQmxGetTimingAttribute (gTaskHandleStdDIport, DAQmx_SampClk_Rate, dSampleRateRelut, 256);
MINOS3_errChk(idAcquisition);
// si différence entre programmation afficher erreur
if (dSampleRateRelut[0] != scanRate){
testError->errorFlag = 1;
testError->errorCode = -2;
strcpy (cTemp,messageOpAll[gnLangue] [MSG_OP_DIAG_CARTE_DAC]);
testError->errorMessage = cTemp;
}
return 0;
// STOP