Déplacement de données dans un même DB

Forum traitant des automates industriels de marque Siemens.
Répondre
Aellig
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 29 mai 2017, 15:04

Déplacement de données dans un même DB

Message par Aellig »

Bonjour,
Je travaille sur step7 V5.5, j'aimerai réaliser un indexage au sein d'un même DB. Je m'explique, j'ai crée une UDT me permettant d'avoir une soixantaine d'octets dans mon DB, je stock les données que je souhaite sauvegarder dans le dernier octets de mon DB et j'aimerai pouvoir les ranger dans le premier octet, puis dans le deuxième, et ainsi de suite à chaque front d'une variable.

Merci d'avance!
Cordialement
Avatar du membre
josé
Codeur fou
Codeur fou
Messages : 264
Enregistré le : 20 oct. 2015, 17:02

Re: Déplacement de données dans un même DB

Message par josé »

bonjour,
http://www.labase-malvoisin.net/S7_Programmation.pdf
Page 34 , adressage indirect.
Créateur de pannes ...
Aellig
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 29 mai 2017, 15:04

Re: Déplacement de données dans un même DB

Message par Aellig »

Merci, mais le soucis est justement que j'aimerai que mes valeurs se range via un pointeur incrémenté. Ainsi, à chaque front, j’envoie l'un après l'autre les octets concernés : DB1.DBD1400 dans DB1.DBD0 puis DB1.DBD1404 dans DB1.DBD4 (mon pointeur remplaçant 0 et 4).
J'ai essayé les syntaxes du type : DB1.DBD[pointeur], p#DB1.DBD[pointeur]... aucune erreur mais il ne la prend pas en compte.

Cordialement !
Avatar du membre
josé
Codeur fou
Codeur fou
Messages : 264
Enregistré le : 20 oct. 2015, 17:02

Re: Déplacement de données dans un même DB

Message par josé »

En list cela doit ressemblé a ceci:
//remise a zéro des pointeurs
U #resetpointeurs
SPBN M001
L P#0.0 // Chargement de la valeur de pointeur de départ
T MD104 // Transfert de la valeur de pointeur destination
SET
R #resetpointeurs
M001 : NOP 0

U #ecriturevaleurs
SPBN M002
L MD104 // lecture pointeur destination
L P#1400.0 // Chargement decalage de la valeur des 2 pointeurs
+D
T MD100 // Chargement de la valeur de pointeur source

AUF DB1 // Ouverture du DB 1
L DBD[MD100] // Lecture du mot
T DBD[MD104] // Ecriture du mot
//vérification limites
L P#1400.0
L MD104 //
>D
SPBN M002
//incrémentation pointeur
L P#4.0 // Chargement de la valeur incrémentation d'un double mot
+D // Ajoute
T MD104 // Transfert de la valeur incrémenté du pointeur destination
SET
R #ecriturevaleurs
M002 : NOP 0

s'il faut incrémenté d'un octé il faut remplacer DBD[xx par DBB[xxx et la valeur de décalage sera de P#1.0
Créateur de pannes ...
GG10
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 147
Enregistré le : 15 sept. 2016, 14:35

Re: Déplacement de données dans un même DB

Message par GG10 »

bonjour

je te conseille de travailler en scl...
Répondre