Tutorial do WinCC OA. Parte 8. Tendências

Vamos animar o painel de tendências já criado (mas vazio) com um gráfico das mudanças da variável ao longo do tempo. No entanto, antes de olhar para as tendências, eles precisam ser configurados e de alguma forma definir os valores para que se acumulem no banco de dados. É necessário que o sistema tenha uma variável que altere seu valor. É necessário travar a configuração correspondente nesta variável para que os valores sejam adicionados ao arquivo. Para o tipo de ponto de dados Flap, temos um DPE denominado Flow e digite int. Este DPE servirá para conhecer as tendências. Para simular o comportamento do sistema, já criamos um script de controle Model. Eu sugiro usá-lo para simular a taxa de fluxo. Vamos abrir o script do modelo:





, « » ( 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 , , , . , .





Em última análise, o manipulador do botão EXPORT tem a seguinte aparência:





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

}
      
      



Depois de salvar o script, inicie a janela principal novamente para execução. Vamos encontrar a janela Log Viewer (sempre abre automaticamente quando o sistema é iniciado), limpe a saída do log com o botão "cruzar" para nossa conveniência:





Pressione o botão EXPORT em tempo de execução e veja a saída no log:





O descarregamento acabou sendo muito grande e nem tudo é mostrado, o que o LogViewer relata honestamente:





É uma pena, mas lógico. A saída de alguns megabytes de texto para um diário não é uma boa escolha. Na prática, a variável Tab pode ser analisada e reproduzida com sua matemática. Você pode exibir informações em uma tabela e assim por diante.








All Articles