[PC Vue] Création Recette

Partie du forum pour tout ce qui concerne la supervision industrielle. Forum, conseil, astuce et entraide sur les logiciels de supervision tels que PC Vue, Vijeo designer, WinCC, win cc, monitor pro, so machine, Citect, Intouch .
Répondre
dellkarim
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 26 mai 2016, 09:05

[PC Vue] Création Recette

Message par dellkarim »

Bonjour,

Suite à mon dernier poste, je voulais faire la gestion des recettes en SCADA Basic.
Pour l'envoi et la modification d'une recette existante ça fonctionne trés bien
Par contre j'arrive pas à sauvegarder de nouvelles recettes

J'ai utilisé deux instructions que j'ai trouvé sur l'aide, les voici:
RECIPE("REALTIME", Identifier, NewNum, NewTitle, Flag, File);
RECIPE("REALTIMECREATE", Identifier, Branch, NewNum, NewTitle, File);

Sachant que sur "identifier" je pointe une recette par défaut ou toutes mes variables sont à 0.

Donc est ce qu'il y a quelqu'un qui a réussi à le faire en SCADA ?

Merciiii
laurent02100
Apprend le binaire
Apprend le binaire
Messages : 3
Enregistré le : 20 oct. 2015, 16:51

Re: [PC Vue] Création Recette

Message par laurent02100 »

Code : Tout sélectionner

'Creation d'une recette à partir d'une recette existante

sub main ()
dim oldrec as str; dim NewID as str; dim title as str; dim auto as str;
oldrec = GETARG("ARG1"); 'nom de la recette modèle créee manuellement, pas le choix, içi passée en argument depuis une fonction synoptique pcvue
NewID = @RECETTE.New; 'nom de la nouvelle recette depuis synoptique pcvue
title = ""; 'On s'en fout
auto = @RECETTE.New; 'Nom du fichier écrit dans répertoire "R" de PCVUE, même nom que "newID question pratique
CopyRecipe(oldrec,NewID,title,auto);
end sub

sub CopyRecipe(oldrec,NewID,title,auto)
DIM Handle As Long; DIM OK As Integer; dim ok1 as integer; dim ok2 as integer;
Const BufSize = 2048; 'allocation taille mémoire, peut poser problème si taille insuffisante.
Handle = Alloc_Buffer (BufSize);
ok1 = Recipe("EXIST", oldrec); 'controle existance modele recette
if (ok1 ==1) then
OK = Recipe("READ",oldrec,Handle,BufSize-1); 'lecture recette modele
If (OK ==1) THEN
ok2 = Recipe("CREATE",Handle,NewID,title,1,auto); 'creation nouvelle recette
OK = 1;
Else
OK = 0;
End If
End if
Free_Buffer(Handle);
'print(OK); print(oldrec); print(ok1); print(ok2);
end sub

'envoi recette

sub envoi()
dim ok3 as integer;
ok3 = RECIPE("SEND", @RECETTE.New);
@RECETTE.Recettecours = @RECETTE.New;
end sub

'sauve recette

sub sauve()
dim ok4 as integer;
ok4 = Recipe("REALTIMECREATE",@RECETTE.New,"RECETTE",@RECETTE.New,"",@RECETTE.New);
end sub
"RECETTE" est la branche ou sont declarees toutes les variables process des recettes , ne pas oublier de les declarer en variables persistantes pour ne pas perdre les valeurs de process des variables en cas d'arret du projet par exemple...
Répondre