Tutoriel WinCC OA. Partie 8. Tendances

Animons le panneau Tendances déjà créé (mais vide) avec un graphique des changements de la variable au fil du temps. Cependant, avant de regarder les tendances, ils doivent être configurés et définir d'une manière ou d'une autre les valeurs de manière à ce qu'elles s'accumulent dans la base de données. Il est nécessaire que le système ait une variable qui change sa valeur. Il est nécessaire de raccrocher la configuration correspondante sur cette variable pour que les valeurs soient ajoutées à l'archive. Pour le type de point de données Flap, nous avons un DPE nommé Flow et tapez int. Ce DPE sera utilisé pour se familiariser avec les tendances. Pour simuler le comportement du système, nous avons déjà créé un modèle de script de contrôle. Je suggère de l'utiliser pour simuler le débit. Ouvrons le script de modèle:





, « » ( C) main(). main() , DPE - (callback-), main , callback-.





main :





main()
{
  dpConnect("OnOpen_CB1", "System1:Flap1.Commands.Open");
  dpConnect("OnOpen_CB2", "System1:Flap2.Commands.Open");
  dpConnect("OnOpen_CB3", "System1:Flap3.Commands.Open");

  for (;;) {
    dpSet("System1:Flap1.Inputs.Flow", rand());
    dpSet("System1:Flap2.Inputs.Flow", rand());
    delay(1);
  }
}
      
      



DPE callback ( for(;;)), 1 2, 1 delay. main , CTRL-.





(, — dpSet, . , ).





CTRL- ( ) , , para.





. Trends. Trend gedi.









— . — Value over value «» . — , X — , Y — . , — , . , .





Append — . Curve ()





… #1_1, :





… ( , ) #1_2. Close. Trends





Trends Main, TRENDS. , - , , … .





, , ( ), . , «». , X , , . , , . , . «- , », «1:1» , .





«» ruler:





Shift , .. « ».





, . . . .. . , .





, , . , , .. . para. Flap1.Input.Flow _archive.





Archive Settings. _archive, .





:





, :





, (, ) . WinCC OA Oracle. 3.17 InfluxDB, , NextGen . . ( ) . , . « » -, . , , «». ( , «» ) , - . , , — . , . NextGen InfluxDB, , , , «».





, , . ValueArchive_0000.





Active, Apply.





. Main, , , :





, — . , . , , . «Active» «Apply».





, ( , ) - . - SQL-. WinCC OA SQL Query. ( gedi Module) System Management.





Reports:





SQL-Query. ALL Value type ( , ).





SELECT DPE, . , , « — », . — originalvalue originalstime. Configuration Elements of the SELECT Statements «Append» «Insert», . . , .





From , .





, Flap* Elements of the FROM statement.





Data:





Create query, Start query, .





. - SQL-. Main EXPORT.





Click . SQL-, SQL-query :





dpQuery. dpQuery dpGet , , SQL-, , dpGet . — SQL. , WinCC OA — dyndynanytype. . , , — . , .





main(mapping event)
{
  dyn_dyn_anytype Tab;
  dpQuery("SELECT ALL '_original.._value', '_original.._stime' FROM 'Flap*'", Tab);
}
      
      



Tab, - . Log Viewer DebugN. , . . — DebugN , «» . , , . — , . , — , , , . , DebugN , , , . , .





En fin de compte, le gestionnaire de bouton EXPORT ressemble à ceci:





main(mapping event)
{
  dyn_dyn_anytype Tab;
  dpQuery("SELECT ALL '_original.._value', '_original.._stime' FROM 'Flap*'", Tab);
  DebugN("SQL", Tab);

}
      
      



Après avoir enregistré le script, redémarrez la fenêtre principale pour exécution. Trouvez la fenêtre de la visionneuse de journal (elle s'ouvre toujours automatiquement au démarrage du système), effacez la sortie du journal avec le bouton "croix" pour notre commodité:





Appuyez sur le bouton EXPORT au moment de l'exécution et regardez la sortie dans le journal:





Le déchargement s'est avéré être très important, et loin de tout est montré, ce que LogViewer rapporte honnêtement:





C'est dommage, mais logique. Envoyer quelques mégaoctets de texte dans un journal n'est pas un bon choix. En pratique, vous pouvez analyser la variable Tab et y jouer vos calculs. Vous pouvez afficher des informations dans un tableau et ainsi de suite.








All Articles