Accueil > Forum > contrôleurs SlimLine e Netsyst (LogicLab) > Charger et accélérer l'acquisition de la charge POUR l'exécution du cycle
- Ce sujet a 3 réponses, 4 participants et a été mis à jour pour la dernière fois 9 années, 6 mois da maximum.
-
auteurPost
-
Avril 27, 2011 à 3: pm 14 #35001AlessandroPartecipante
Je me demandais si dans la ligne Slim Line PLC il y avait une carte pour lire les cellules de pesée, et si vous vouliez avoir plus d'informations techniques, type de connexion, filtres utilisés, etc. depuis que je travaille sur une échelle de poids.
Je voulais aussi comprendre les performances du CPU, pour ce projet je dois faire des boucles FOR, une en particulier que même si optimisée peut atteindre et dépasser 35000 cycles, à l'intérieur de la boucle quelques ajouts et comparaisons rien de plus, à faire en quelques dixièmes de seconde.
Avril 27, 2011 à 3: pm 23 #36717Sergio BertanaAdministrateur du forumIl module d'extension d'E / S analogique qui a des entrées différentielles avec acquisition 23 bits sera bientôt mis à jour avec un nouveau firmware pour la lecture de la jauge de contrainte. Même si compte tenu du nombre élevé de bits du convecteur, il est déjà possible d'acquérir les valeurs analogiques sortant du pont de mesure et d'acquérir la valeur de poids.
En ce qui concerne le filtrage de la valeur de poids acquise, il est possible de mettre en œuvre l'algorithme de filtrage à partir du langage ST. Nous avons quelques exemples de filtres que nous pouvons fournir sur demande.
Quant à la boucle FOR, 35000 boucles, c'est pas mal, mais s'il n'est pas possible de réaliser des algorithmes de simplification, le jeu de force consiste à réaliser le nombre de boucles requis. J'ai fait un programme ST simple qui exécute 40000 cycles avec trois sommes et une comparaison à l'intérieur, le tout sur des variables de 32 bits, et le temps d'exécution est de 56 ms.
PROGRAMME ST
VAR
i: UINT; {DE: "Compteur auxiliaire"}
AddArray: ARRAY [0..3] OF UDINT; {DE: "Ajout d'un tableau"}
END_VARPOUR i: = 0 À 40000 DO
AddArray [0]: = AddArray [0] + 1;
AddArray [1]: = AddArray [1] + 1;
AddArray [2]: = AddArray [2] + 1;
IF (AddArray [2] = AddArray [3]) ALORS AddArray [3]: = AddArray [3] + 1; END_IF;
END_FOR;END_PROGRAM
Octobre 7, 2014 à 4: pm 48 #38447RobertoPartecipanteUne petite question car nous devons faire face à un système de pesée: j'ai vu que la carte tombe à 17 bits avec une sibylline (min) écrite à côté. Comment doit-il être interprété?
Seconde question, est-ce que nous visons un peu le signe ou est-il possible de l'utiliser comme unipolaire en utilisant tous les 130 KPoints?
Octobre 7, 2014 à 6: pm 02 #38448maximumModérateurLes 17 bits (min) font référence au pire des cas, c'est-à-dire lors de l'utilisation de GAIN = 128. Pour les autres gains voici les différentes résolutions:
- AD_VIN_VREF_G_1: 19.5 bits
- AD_VIN_VREF_G_2: 18.5 bits
- AD_VIN_VREF_G_4: 19.0 bits
- AD_VIN_VREF_G_8: 19.0 bits
- AD_VIN_VREF_G_16: 18.5 bits
- AD_VIN_VREF_G_32: 18.5 bits
- AD_VIN_VREF_G_64: 18.0 bits
- AD_VIN_VREF_G_128: 17.0 bitsCe sont les bits réels, c'est-à-dire supprimant déjà le bit de signe. Il est clair que le gain à choisir dépend des caractéristiques de la jauge de contrainte. Plus d'informations dans ce sujet.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.