550 likes | 1.47k Views
Step 7 : une programmation structurée. Langage littéral structuré ST SCL. Liste d’instruction IL LIST. LES LANGUAGES. Schéma en bloc fonctionnel FBD LOG. Langage à contact LD CONT. Diagramme fonctionnel en séquence SFC GRAPH S7. Principe d’appel des blocs. FC2 Fonction. DB3
E N D
Langage littéral structuré ST SCL Liste d’instruction IL LIST LES LANGUAGES Schéma en bloc fonctionnel FBD LOG Langage à contact LD CONT Diagramme fonctionnel en séquence SFC GRAPH S7
Principe d’appel des blocs FC2 Fonction DB3 Blocs de données globales Aux FC FB et OB OB35 Bloc d’organisation cyclique FB1 Bloc fonctionnel DB1 DB d’instance DB4 Blocs de données globales Aux FC FB et OB FB 2 Bloc fonctionnel FC3 Fonction FC4 Fonction DB2 DB d’instance OB1 Bloc d’organisation
Les blocs d’organisation Le bloc d’organisation OB1est le chef d’orchestre du programme ; il traite cycliquement le programme, il peut exister d’autres OB dans le programme: OB 10 à17 : OB d'alarme horaire (OB 12 dans les CPU314), il sont déclenchés soit une fois, soit toutes les minutes, les heures , les jours, les semaines, les mois, les ans, en fin de mois à partir d'une date et d'une heure que l'on fixe. OB 30 à 38 : OB d'alarme cyclique(OB35 dans les CPU 314) , ils sont déclenchés cycliquement à partir de la mise en route de la CPU , la période varie de 10 ms à 65000 ms. OB 100 à 102 : OB de mise en routeils sont activés à chaque mise sous tension ou à chaque passage de Stop en Run.
Les fonctions Une fonction (FC)est un bloc de code qui ne contient pas de données statiques, conformément à la norme CEI 1131-3. Elle permet le transfert de paramètres dans le programme utilisateur et s'adapte donc tout particulièrement à la programmation de fonctions récurrentes, comme par exemple les calculs. Une fonction système (SFC)est une fonction intégrée au système d'exploitation de la CPU que vous pouvez appeler dans le programme utilisateur, si besoin est. Elle ne peut être programmée par l'utilisateur.
Les blocs fonctionnels Un bloc fonctionnel (FB)est un bloc de code qui contient des données statiques, conformément à la norme CEI 1131-3. Il permet le transfert de paramètres dans le programme utilisateur et s'adapte donc tout particulièrement à la programmation de fonctions complexes récurrentes, comme par exemple les régulations ou la sélection de l'état de fonctionnement. Un bloc fonctionnel système (SFB)est un bloc fonctionnel intégré au système d'exploitation de la CPU que vous pouvez appeler dans le programme utilisateur, si besoin est. Il ne peut pas être programmé par l'utilisateur. Les blocs de code (OB, FB, FC) du programme utilisateur peuvent être chargés dans la CPU S7. Ils sont soit créés et édités directement dans des éditeurs incrémentaux, soit ils résultent de la compilation de sources.
Les blocs de données Les blocs de données sont des blocs utilisés par les blocs de code de votre programme utilisateur pour enregistrer des valeurs. Contrairement aux données temporaires du bloc de code, les données du bloc de données ne sont pas effacées à la fin de l'exécution du bloc de code ou lorsque vous fermez le bloc de données. La taille d'un bloc de données dépend de la CPU considérée. Dans une CPU 314 IFM, par exemple, elle peut atteindre jusqu'à 8 kilo-octets, soit 8192 octets.
Blocs de données globales. Il s'agit de blocs de données auxquels peuvent accéder tous les blocs de code du programme utilisateur S7. Tout FB, FC, ou OB peut lire ou écraser les données qu'ils contiennent. Vous pouvez créer des blocs de données globales en : - définissant vous-même la structure du bloc de données, c'est-à-dire en définissant et éditant individuellement l'ordre des variables, leur nom et leur type de données. - créant un bloc de données avec le type de données utilisateur correspondant. Dans ce cas, c'est la structure du type de données utilisateur qui détermine celle du bloc de données. Blocs de données d'instance Il s'agit de blocs de données qui sont affectés à un bloc fonctionnel (FB) particulier. Ils contiennent les données locales de ce bloc fonctionnel. Si, dans un bloc fonctionnel, vous appelez d'autres FB et que vous avez déclaré des variables statiques (multi-instances) pour les instances de ces FB, alors le DB d'instance du bloc fonctionnel appelant contient également les données locales des FB appelés. Les blocs de données du programme utilisateur S7 peuvent être chargés dans la CPU S7. Ils sont soit créés et édités directement avec des éditeurs incrémentaux, soit ils résultent de la compilation de sources
Transfert de la MIS sur la périphérie de sortie. Lecture de la périphérie d’entrée, Stockage dans la MIE. Lecture de la périphérie d’entrée, Stockage dans la MIE. Transfert de la MIS sur la périphérie de sortie. Déroulement du programme en utilisant les valeurs des entrées de la MIE et en stockant les sorties dans la MIS. Déroulement du programme en utilisant les valeurs des entrées de la MIE et en stockant les sorties dans la MIS. Temps de cycle (surveillé) Déroulement du programme. Fonction système et communication
Mémoire de chargement La mémoire de chargement est stockée sur une micro-carte mémoire SIMATIC Card (MMC). La taille de la mémoire de chargement correspond exactement à la MMC. Elle sert à mémoriser les blocs de codes et les blocs de données ainsi que les données système (configuration, liaisons, paramètres de modules etc.). Les blocs qui sont identifiés comme n'intervenant pas dans l'exécution ne sont copiés que dans la mémoire de chargement. Les données complètes de configuration d'un projet peuvent être également archivées sur la MMC.
Mémoire de travail La mémoire vive est intégrée à la CPU et ne peut pas être étendue. Elle sert à exécuter le code et à traiter les données du programme utilisateur. Le traitement du programme s'effectue exclusivement au niveau de la mémoire de travail et de la mémoire système. La mémoire vive de la CPU est toujours rémanente.
Mémoire système La mémoire système est intégrée à la CPU et ne peut pas être étendue. Elle contient . les plages d'opérandes Mémentos M, Tempos T et Compteurs Z . les mémoires images des entrées MIE . la mémoire image des sorties MIS . les données locales L (PILES)
Mémoire des entréesMIE Entrées E (I) (lecture dans la Mémoire Image d'Entrées MIE) - E y.x désigne une entrée, y est le numéro de voies (octet 0 à 127ou plus), x sa position (0 à 7). - EB y désigne un octet d'entrées. - EWy désigne un mot d'entrées ( 16 bits). - EDy désigne un double mot d'entrées (32 bits). Les même termes précédé d'un P accèdent directement à la périphériesauf E y.x
Mémoire des sorties MIS Sorties A (Q) (sortie dans la Mémoire Image de Sorties MIS) - A y.x désigne une sortie. y est le numéro de voies (octet 0 à 127 ou plus), x sa position (0 à 7). - ABy désigne un octet de sorties. - AWy désigne un mot de sorties ( 16 bits). - ADy désigne un double mot de sorties (32 bits). Les mêmes termes précédés d'un P accèdent directement à la périphériesauf Ay.x
Zone de mémoire interne Mémentos M (lecture dans la mémoire interne) - My.x désigne un bit mémoire. y est le numéro d'octets (0 à 255 minimum), x sa position (0 à 7). - MBy désigne un octet de mémoire. - MWy désigne un mot de mémoire( 16 bits). - MDy désigne un double mot de mémoire(32 bits).
Données globales • Données D (nécessite l'ouverture préalable d'un DB global). • - DBX y.x désigne un bit de données y est le numéro d'octets (0 à N), x sa position (0 à 7). • - DBBy désigne un octet de données . • - DBWy désigne un mot de données ( 16 bits). • DBDy désigne un double mot de données (32 bits). • L’accès direct s’écrit Dbn.DB ( Xy.x ou By ou Wy ou Dy), n = numéro du DB
Données locales • Données L ( données locales dans la zone de déclaration d’un DB d’instance) • - L y.x désigne un bit de données y est le numéro d'octets (0 à 127), x sa position (0 à 7). • - LBy désigne un octet de données locales . • - LWy désigne un mot de données locales ( 16 bits). • LDy désigne un double mots de données locales (32 bits). • Utilisation uniquement dans le bloc concerné
Variables associées à un bloc Outre les instructions du programme utilisateur, les blocs contiennent des variables que vous déclarez à l’aide de STEP 7 lorsque vous programmez des blocs vous même. Vous pouvez indiquer, dans la déclaration de variables, les variables que le bloc devra utiliser lors de son traitement. Les variables sont : des paramètres transmis entre blocs de code,des variables statiques rangées dans un bloc de données d’instance et restant disponibles même une fois le bloc fonctionnel associé traité, des variables temporaires qui ne sont disponibles que pendant le traitement du bloc et sont ensuite écrasées. Le système d’exploitation affecte une zone de mémoire propre à ces données temporaires