Variables de mémoire rémanente

Variables système - Le protocole Mémoire rémanente permet de créer des variables pointant sur une zone de mémoire dont le contenu est maintenu lorsque l'IHM est hors tension.

Le support physique de la mémoire rétentive est basé sur la technologie FRAM.

Important : Tous les périphériques IHM n'incluent pas la mémoire FRAM. Si la mémoire FRAM n'est pas disponible, la rémanence est prise en charge en utilisant la mémoire de l'utilisateur (Flash ou disque dur). La technologie Flash est limitée dans le nombre maximum d'opérations d'écriture. L'utilisation de Flash comme support de stockage pour la mémoire rémanente avec des opérations d'écriture fréquentes peut endommager les composants de la mémoire. Vérifier la disponibilité de la mémoire FRAM dans la feuille de données du périphérique IHM.

Important : La mémoire rémanente est une zone de mémoire linéaire de 16 Ko organisée en octets et accessible par un décalage. Reportez-vous au schéma ci-dessous.

Mémoire rémanente vs stockage des recettes
Les données des recettes sont enregistrées dans la mémoire flash (sauf pourJMobile PC Runtime) tandis que les données rémanentes sont sauvegardées dans un FRAM. La mémoire flash n'est pas adaptée à un nombre élevé d'opérations d'écriture, tandis que FRAM supporte un nombre pratiquement illimité d'opérations d'écriture et est préférable lorsque des opérations d'écriture fréquentes sont nécessaires.

 

Paramètres de l’éditeur du protocole

Dans la liste des modèles d'API de la boîte de dialogue Éditeur de protocole, sélectionnez Mémoire rémanente.

 

Paramètres de l’éditeur de variables

Chemin : VueProjet> Configuration > double-cliquez sur Variables

  1. Pour ajouter une variable, cliquez sur + : une nouvelle ligne est ajoutée.
  2. Sélectionnez Variables système dans la liste Driver : le dialogue de définition de variables s'affiche.

Élément Description

Type de mémoire

Fixée à la mémoire rémanente

Offset

Adresse de décalage où se situe la variable. Plage : 0–16383

Sousindex

Ce paramètre permet la sélection du décalage de ressources en fonction du Type de données sélectionné.
Type de données
Type de données Espace mémoire Limites
booléen Donnée à 1 bits 0 ... 1
octet Donnée à 8 bits -128 ... 127
court Donnée à 16 bits -32768 ... 32767
int Donnée à 32 bits -2.1e9 ... 2.1e9
int64 Donnée à 64 bits -9.2e18 ... 9.2e18
octet non signé Donnée à 8 bits 0 ... 255
court non signé Donnée à 16 bits 0 ... 65535
entier non signé Donnée à 32 bits 0 ... 4.2e9
uint64 Donnée à 64 bits 0 ... 1.8e19
flottant Type virgule flottante de 32 bits simple précision conforme IEEE 1.17e-38 ... 3.4e38
double Type virgule flottante de 64 bits double précision conforme IEEE 2.2e-308 ... 1.79e308
chaîne Tableau des éléments contenant du code de caractères défini par l'encodage sélectionné
binaire Données binaires arbitraires

Note: pour définir des tableaux, sélectionnez l’un des formats de type de données suivi de crochets tels que « byte[] », « short[] », etc.

Taille de tableau

  • En cas de variable vectorielle, cette propriété représente le nombre d’éléments vectoriels.
  • En cas de variable de chaîne, cette propriété représente le nombre maximum d’octets disponible pour la variable de chaîne.

Remarque : le nombre d'octets correspond au nombre de caractères de chaîne si la propriété Encoding est définie sur UTF-8 ou Latin1 dans l'Éditeur de variables.
Si la propriété Encoding est définie sur UCS-2BE, UCS-2LE, UTF-16BE ou UTF-16LE, un caractère nécessite 2 octets.

Conversion

Conversion à appliquer à la variable.

En fonction du type de données choisi, la liste Autorisée affiche un ou plusieurs types de conversion.

Valeur Description
Inv bits

inv : Inverse tous les bits de la variable.

Exemple :
1001 → 0110 (format binaire)
9 → 6 (format décimal)

Negate

neg : Inverse la valeur de la variable.

Exemple :
25.36 → -25.36

AB -> BA

swapnibbles : Échange les quartets d’un octet.

Exemple :
15D4 → 514D (format hexadécimal)
5588 → 20813 (format décimal)

ABCD -> CDAB

swap2 : Échange les octets d’un mot.

Exemple :
9ACC → CC9A (format hexadécimal)
39628 → 52378 (format décimal)

ABCDEFGH -> GHEFCDAB

swap4 : Échange les octets dans un double mot.

Exemple :
32FCFF54 → 54FFFC32 (format hexadécimal)
855441236 → 1426062386 (format décimal)

ABC...NOP -> OPM...DAB

swap8 : Échange les octets dans un long mot.

Exemple :
142,366 → -893553517,588905 (format décimal)
0 10000000110 0001110010111011011001000101101000011100101011000001

1 10000011100 1010101000010100010110110110110010110110000100111101
(format binaire)

BCD

bcd : sépare l’octet en deux quartets, les lit au format décimal (de 0 à 9)

Exemple :
23 → 17 (format décimal)
0001 0111 = 23
0001 = 1 (premier quartet)
0111 = 7 (second quartet)

Sélectionnez la conversion et cliquez sur le bouton +. La conversion sélectionnée s’affiche dans la liste Configurée.

Si vous configurez d’autres conversions, celles-ci s’affichent dans l’ordre (du haut vers le bas de la liste Configurée).

Utilisez les boutons de direction pour changer l’ordre des conversions configurées.

.

Nettoyer la mémoire rémanente

Utilise l'action ClearRetentiveMemory pour nettoyer le contenu de la mémoire rémanente.

Conseil : Utilisez cette action pour définir le contenu de la mémoire à un statut connu à tout moment.

Voir la section Actions > Actions de variables du manuel principal pour les détails.

L'interface JavaScript pour cette action est :
project.clearRetentiveMemory();

 

Préserver la mémoire rémanente lors du téléchargement du projet

Lorsqu'un fichier de projet est téléchargé vers une IHM, ou lorsque le projet actif est modifié, le contenu de la mémoire rémanente est généralement supprimé.

Si cela est nécessaire pour préserver le contenu des données rémanente lors du téléchargement ou de la mise à jour du projet, sélectionnez l'option Conserver les données rémanente lors de la mise à jour du projet dans les onglets de configuration de l'IHM.

Ce paramètre sera ignoré si l'option Supprimer les fichiers dynamiques de runtime est sélectionnée dans la fenêtre Télécharger vers la cible.

 

Préserver la mémoire rémanente dans le simulateur

Le simulateur du JMobile Studio prend en charge la mémoire rémanente. Pour activer la mémoire rémanente pendant la simulation de projet, utilisez l'option « Conserver les données rémanentes sur la simulation de projet » dans le menu contextuel.