Tableau de DB d'instance.
Posté : 09 avr. 2016, 14:03
Bonjour,
Tout d'abord je me présente un peu vu que je suis nouveau venu sur ce Forum.
Je m'occupe de S7 (300/400/1500) pour mon usine même si c'est pas vraiment mon boulot.
Je programme principalement en SCL (TIA v13), ayant de l'expérience en programmation générale (C, Java, Js, DB, etc).
Donc quand je fais un programme un peu lourd comme en ce moment, je souhaiterais créer des fonctions génériques, indexer les "objets" de l'installation dans des tableaux et appeler les fonctions dans des boucles pour éviter de répéter les mêmes opérations dans le programme.
Le problème est qu'on ne peut pas appeler des FB sans déclarer une DB d'instance ou en mutli-instance, et qu'on ne peut pas déclarer de tableau de DB d'instance. Donc on ne peut pas appeler des FB dans une boucle, comme on le ferait pour un tableau de pointeurs de fonctions pour ceux qui connaissent le C.
Bilan des courses, je suis obligé de créer des UDT pour chaque FC générique, avec un nomnage un peu lourd des variables avec les suffixes in_, out_, static_ par exemple. Par exemple impossible d'utiliser les tempos CEI dans une boucle, ni pas mal de fonctions technologiques ...
Alors connaissez-vous une technique pour faire rentrer des DB d'instance dans un tableau temporaire de Pointeur Any et appeler la FB à partir de ce pointeur?
Tout d'abord je me présente un peu vu que je suis nouveau venu sur ce Forum.
Je m'occupe de S7 (300/400/1500) pour mon usine même si c'est pas vraiment mon boulot.
Je programme principalement en SCL (TIA v13), ayant de l'expérience en programmation générale (C, Java, Js, DB, etc).
Donc quand je fais un programme un peu lourd comme en ce moment, je souhaiterais créer des fonctions génériques, indexer les "objets" de l'installation dans des tableaux et appeler les fonctions dans des boucles pour éviter de répéter les mêmes opérations dans le programme.
Le problème est qu'on ne peut pas appeler des FB sans déclarer une DB d'instance ou en mutli-instance, et qu'on ne peut pas déclarer de tableau de DB d'instance. Donc on ne peut pas appeler des FB dans une boucle, comme on le ferait pour un tableau de pointeurs de fonctions pour ceux qui connaissent le C.
Bilan des courses, je suis obligé de créer des UDT pour chaque FC générique, avec un nomnage un peu lourd des variables avec les suffixes in_, out_, static_ par exemple. Par exemple impossible d'utiliser les tempos CEI dans une boucle, ni pas mal de fonctions technologiques ...
Alors connaissez-vous une technique pour faire rentrer des DB d'instance dans un tableau temporaire de Pointeur Any et appeler la FB à partir de ce pointeur?