Accueil > Forum > Programmation IEC 61131 (LogicLab) > Nouveau bloc fonctionnel pour l'envoi de courrier électronique
- Ce sujet a 25 réponses, 1 participant et a été mis à jour pour la dernière fois il y a 4 ans da Sergio Bertana.
-
auteurPost
-
Novembre 14, 2019 à 4: pm 43 #51034Sergio BertanaAdministrateur du forum
Oui le FB FIFOFile_v1 a les contrôles In insérer un enregistrement dans la FIFO, Out lire l'enregistrement inséré, e Delete pour le supprimer.
la sortie DataOn il est activé s'il y a au moins un enregistrement dans la FIFO. Si vous définissez FIFOFilename le FB prend en charge les données du fichier défini. Si vous le définissez comme NULL, les données sont placées dans une mémoire tampon RMalloc.
Novembre 15, 2019 à 7: 25 am #51042RuboxPartecipanteEn lisant l'explication de FIFOFile_v1 dans le manuel, il est dit: Ce bloc fonction gère un registre FIFO sur un fichier (Peut être exécuté dans une boucle de programme unique en tant que fonction).
Que signifie la partie audacieuse? Que puis-je utiliser uniquement une FIFO FB par programme?
Novembre 15, 2019 à 7: 33 am #51050Sergio BertanaAdministrateur du forumLa note Il peut être exécuté dans une boucle de programme unique en tant que fonction, nous le mettons dans tous les FB qui épuisent leur travail en un seul cycle d’exécution. C'est-à-dire qu'ils ne contiennent aucune variable statique. Si le règlement IEC61131 ne fixait pas de limites strictes à la définition des fonctions, une fonction aurait été créée au lieu d’un FB pour ce type d’opération.
La note informe que vous pouvez l'exécuter en tant que fonction à chaque fois que vous l'exécutez, elle termine sa tâche, donc par exemple le FIFO si vous voyez certains de mes programmes là où il est utilisé, vous verrez que j'instancie le FIFO dans les variables globales puis j'exécute l'appel à insérer éléments ou pour extraire des éléments dans toutes les parties du programme si nécessaire.
Mais dans un programme, je peux avoir tous les FIFO que vous voulez, tout le monde sera instancié avec un nom différent.
Novembre 20, 2019 à 10: 10 am #51275RuboxPartecipanteSi je n'alloue pas la FIFOIdx sur une mémoire tampon, je perds les données écrites dans la FIFO à l'arrêt. Pour moi ce n'est pas un problème. Mais j'ai remarqué que le fichier de support n'est pas recréé à chaque démarrage du système, mais il reste le même qu'avant.
Existe-t-il un moyen de redémarrer avec un fichier vide? Ou mieux: si le fichier contient déjà d'anciennes données, cela peut-il causer des problèmes? (Il me vient à l'esprit que si je n'indique ni le fichier de support ni le FIFOIdx, cela commence peut-être par une situation "propre", n'est-ce pas?
Novembre 20, 2019 à 10: 13 am #51282Sergio BertanaAdministrateur du forumOui, pour ne pas perdre les données enregistrées dans la FIFO lorsqu’elle est désactivée, FIFOIDx doit être RETAIN et les données doivent être placées dans un fichier.
Si le fichier de support n'est pas indiqué, les données sont enregistrées en mémoire et la définition de FIFOIDx n'a pas d'importance, car elles sont toujours perdues.
Le fichier est toujours le même car il contient les données enregistrées à l'intérieur. Si vous avez défini FIFOIDx RETAIN l'écriture continue à partir du point correct, si ce n'est pas RETAIN l'écriture commence au début du fichier.
Novembre 21, 2019 à 7: 08 am #51286RuboxPartecipanteJe suis réticent à utiliser la mémoire de conservation pour écrire des valeurs toutes les minutes: dans un article sur les terminaux Weintek, j'avais lu qu'à long terme, cela pouvait endommager la mémoire. Est-ce également le cas pour l'automate ou tolère-t-il des cycles d'écriture intensifs?
Novembre 21, 2019 à 7: 16 am #51311Sergio BertanaAdministrateur du forumLe problème auquel vous faites référence est lié à l'utilisation des mémoires EEPROM et FLASH, mais sur la famille SlimLine ARM7 e CortexM7 La mémoire utilisée pour le stockage de données RETAIN est une mémoire FRAM comportant un nombre infini de cycles d'écriture.
Si vous utilisez la mémoire FLASH présente dans les systèmes ARM7, vous devez prendre en compte le nombre de cycles si la FIFO est placée dans un fichier. CortexM7 pour prendre en charge le fichier, vous devez considérer le nombre de cycles d'écriture qui sont de l'ordre de centaines de milliers pour chaque secteur. Mais étant donné qu'un fichier disque occupe de nombreux secteurs, le nombre de cycles doit être multiplié par le nombre de secteurs utilisés. Ainsi, plus le fichier est volumineux, plus le nombre de cycles possibles est important.
La parole séparée concerne la carte SDCard. Si vous utilisez des puces avec le gestionnaire de nivellement d'usure, l'écriture est automatiquement répartie sur tous les secteurs de la carte, ce qui augmente considérablement le nombre de cycles d'écriture. Cette technique est identique à celle utilisée sur les disques SSD pour le PC.
Avril 10, 2020 à 5: pm 00 #54581RuboxPartecipanteJe suis de retour sur le forum pour demander de l'aide. J'ai dû changer le PC de Win 8.1 à Win 10. J'ai téléchargé et installé la dernière version de LogicLab, 3.1.0.0, Build: 13 décembre 2019.
Aujourd'hui, j'ai dû changer quelques valeurs dans le programme qui fonctionne depuis 5 mois sur l'automate. La recompiler me donne l'avertissement suivant, un avertissement qui n'apparaissait pas auparavant.
EMailSend(504) – warning G0138: ADD => Illegal conversion to pointer
Si je mets le commentaire sur la ligne où j'invoque la variable de type EMailSend, l'avertissement disparaît. Est-ce un avertissement qui pourrait nuire à l'exécution de la logique et du programme? À quoi cela est-il dû? Y a-t-il un moyen de contourner?
Avril 10, 2020 à 5: pm 04 #54585Sergio BertanaAdministrateur du forumLa nouvelle version de LogicLab a introduit des vérifications supplémentaires sur la correspondance des types de données, en général ce type d'avertissement indique qu'une somme est exécutée entre un pointeur et une variable.
Les avertissements n'affectent pas le fonctionnement du programme, mais si vous voulez éviter l'avertissement, je vous suggère de télécharger la dernière version de la bibliothèque eLLabNetworkLib et utilisez le nouveau FB EMailSend.
Avril 11, 2020 à 2: pm 20 #54586RuboxPartecipanteEn fait, la première chose que j'ai faite est de regarder s'il y avait de nouvelles bibliothèques et avec la nouvelle, il n'y a pas cet avertissement. J'ai remarqué que dans la nouvelle version de la librairie le champ "Données" est devenu "Corps": j'imagine qu'il est toujours limité à 256 caractères comme corps de l'email comme dans la version précédente?
Quand j'ai commencé à utiliser vos produits, j'ai trouvé le PDF «Programmation CEI 61131-3 (LogicLab)» vraiment utile: la version qui est encore téléchargée sur le site montre l'ancienne version de cette bibliothèque et non la nouvelle. En téléchargeant les nouvelles bibliothèques utilisées, est-il possible de trouver un PDF avec les spécifications? Pour le moment je les ai vus sur la connaissance, mais le PDF était et est très utile dans ces occasions d'absence d'Internet.
Avril 11, 2020 à 2: pm 25 #54588Sergio BertanaAdministrateur du forumLe FB a été complètement réécrit et maintenant il n'a plus la limite de caractères, si vous voyez l'exemple ST_SendFileByEMail un corps de 2048 octets est envoyé, mais il peut également être plus volumineux.
Le manuel PDF nous a obligé à créer une nouvelle version à chaque changement, il n'a pas non plus été possible de gérer la traduction automatique. Avec le manuel en ligne, chaque modification est immédiatement disponible et nous pouvons la publier automatiquement dans de nombreuses langues grâce à un traducteur automatique inséré dans notre site d'assistance.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.