Historiador e Registro de dados
módulo historiador faz o registro de dados automatizado para bancos de dados do tipo SQL e outros.
Qualquer Bancos de dados
Também se pode usar o módulo de Datasets para armazenar dados em SQL, o módulo Historiador porém tem uma configuração simplificada, com as tabelas de banco de dados sendo criadas automaticamente e uma conexão já pré definida com os gráficos de tendência.
O sistema também pode usar as informações disponíveis na base de dados do historiador, em Scripts dot NET feitos pelo usuário, para obter valores históricos em Tags e mostrá-los em telas gráficas ou para exportar estes valores.As seções a seguir descrevem como configurar o registro de dados:"
Pode-se selecionar qualquer banco de dados SQL, como o Microsoft SQL Server, Oracle, MySQL ou qualquer OLEDB ou banco de dados compatível com ODBC para o armazenamento de dados históricos. Por default o Action.NET utiliza um "engine" de banco de dados SQL embutido, SQLite. Para obter informações sobre como selecionar o banco de dados do historiador, consulte o item "Provedor do banco de dados Historiador" .
É possível também a utilização do sistema PI OSIsoft (tm), para o armazenamento de dados. Neste caso não há necessidade de fazer qualquer configuração de Historiador para acessar os dados armazenados. Para detalhes sobre o uso do Sistema PI, consulte "Usando o Sistema PI da OSIsoft(tm)".
Configurando Tabelas do Historiador
Por default, o banco de dados do Historiador de tags já possui uma tabela configurada. A configuração desta tabela controla quando os valores dos tags devem ser escritos para o historiador e por quanto tempo estes valores devem ficar retidos no historiador. Se você quiser que alguns tags tenham tratamento diferenciado, você deve configurar tabelas adicionais com as definições que necessita e atribuir os tags para alguma destas tabelas. Você também pode editar as configurações da tabela padrão, se achar conveniente.
A configuração da tabela é independente do tipo de banco de dados selecionado para armazenar as informações, conforme descrito em "Provedor do banco de dados Historiador".
Em geral, não armazene mais dados do que você precisa. Armazenar uma grande quantidade de dados reduz o desempenho na recuperação de dados. Você deve usar gatilhos e bandas mortas tão amplos quanto possível, para garantir que terá a informação que você realmente precisa, sem sobrecarregar o sistema.
Para configurar uma tabela historiador:
Vá para Edit > Tags > Historian
Siga um dos seguintes procedimentos:
Para editar uma tabela existente, selecione-a na lista drop-down Tabelas Historiador e clique Config.
Para criar uma nova tabela, clique New.
Aparece uma janela para preenchimento das colunas da tabela.
Alternativamente pode-se ir direto para Edit > Tags>Historian Tables e preencher diretamente os dados nas colunas.
As colunas a serem preenchidas são explicadas na tabela a seguir:
Opção | Descrição |
Name | Digite um nome para a tabela no banco de dados |
Auto Create | Selecione para que o sistema crie automaticamente a tabela no banco de dados. |
Save on Change | Selecione para armazenar dados na tabela (adicionar uma linha) cada vez que um tag associado à tabela sofrer modificação. |
Trigger | Use para registrar dados na tabela cada vez que um tag ou propriedade do tag sofre mudanças. Quando usado com a opção Save on Change, o sistema armazena dados na tabela tanto quando o valor do tag muda como quando ou o valor de Trigger se modifica |
Time Deadband (Log TimeSpan) | Entre com o mínimo intervalo de tempo entre gravações. Isto é quanto o sistema deve esperar depois de gerar um registro para um tag antes de gerar um novo registro para o mesmo tag. Use com a opção Save on Change para evitar a geração de registros em demasia na base de dados. |
Life Time | Numero de dias em que devem ser retidos os dados históricos. Depois deste tempo, as linhas mais antigas na tabela serão excluídas da base de dados. Para que os dados nunca sejam excluídos deixe este campo vazio ou digite um zero. |
SaveQuality | Deve ser marcada esta opção para que ao gravar uma amostragem no histórico seja incluído além do valor da tag também a qualidade |
GetSampleMethod | Nome de um método de script que será chamado para personalizar os dados antes de sua escrita no histórico, se for necessário. Veja em "Personalizando a Obtenção de Amostragens" |
ValueColumnsType | Pode-se sescolher para o armazenamento deo valor os tipos de dados: Double ou Single |
Adicionando Tags para o Historiador
Depois de configurar suas tabelas para o historiador de tags, você pode configurar as tags cujos valores deverão ser registrados pelo historiador.
Em Edit>Tags>Historian estão as definições das tabelas do historiador.
Na parte superior direita da aba está o nome do Gerenciador de Banco de dados utilizado. Na figura está o SQLite;
Para configurar as tags para o historiador:
Vá para Edit > Tags > Historian.
Clique na lista drop-down Historian Tables e selecione a tabela na qual deseja adicionar tags.
Inicie preenchendo as colunas da tabela com os tags escolhidos
Você pode copiar e colar as Tags a partir da aba Objects.
Digite ou selecione as informações, conforme necessário.
Coluna | Descrição |
Name | Digite um nome de tag ou clique para selecionar um tag. |
DeadBand | Ao usar a opção Save On Change na tabela historiador, a DeadBand é o quanto o valor deve mudar para disparar no sistema a gravação do valor no historiador. (veja abaixo Dead Band Type para a definição de como utilizar esta banda morta) |
Deviation | Ao usar a opção Save On Change na tabela historiador, o desvio é o quanto o valor do Tag deve mudar para o sistema armazenar um novo valor no historiador. Esse valor substitui o intervalo de tempo de registro Time DeadBand . |
RateOfChange | Ao usar a opção Save On Change na tabela historiador, o |
HistorianTable | Selecione a tabela que tem as configurações que você deseja usar para periodicidade de registro e por quanto tempo manter valor deste tag |
Deviation DeadBand Type | Pode-se escolher para o valor da Dead Band ser considerado como valor Absolute ou Percentage |
Deviation DeadBand Limit | Limite de desvio do valor |
Continue adicionando quantos Tags quantos você precisa.
Provedor do banco de dados do Historiador
O banco de dados usado para armazenar o Historiador é definido em Edit > Datasets > DBs pelo objeto de conexão à banco de dados com o nome de TagHistorian.Por default, quando um novo projeto é criado, este registro de nome TagHistorian é definido para usar o banco de dados SQLite que está disponível com o Action.NET.
Cuidado: O banco de dados SQLite deve ser usado para bancos de dados de porte pequeno a médio e em modo Standalone. Se a quantidade de tags e periodicidade de salvamentos exigir maior robustez e principalmente distribuição em vários discos e e características de gerenciamento cliente/servidor, você deve definir outro sistema de banco de dados SQL para o Historiador. Para definir um outro banco de dados para o Historiador, você só precisa criar uma nova conexão de banco de dados, como explicado em "Configurando Conexões de Bancos de dados", e nomeá-la TagHistorian
Dica: O sistema não permite nomes duplicados, deste modo para criar uma conexão DB com o nome TagHistorian você deve renomear ou excluir a linha existente usando esse nome.
Usando o Sistema PI da OSIsoft(tm)
O Action.NET pode usar o Sistema PI OSIsoft como provedor para o Historiador. Neste cenário, não é necessário fazer qualquer configuração adicional. Se o Tag é mapeado para um ponto OSIsoft PI, o sistema irá automaticamente chamar o PI Server para obter dados ao plotar gráficos de tendências ou quaisquer outros métodos de scripts ou de Tela que requeiram informações do Historiador.O sistema pode funcionar com o Sistema PI e o Historiador embutido, ao mesmo tempo. Quando a informação histórica de um ponto é solicitada, a partir de gráficos de tendências ou scripts, o sistema irá procurar estas informações no módulo Historiador embutido e, se não encontrar, vai tentar encontrar esses dados no servidor PI.Para obter informações sobre a ligação a sistemas PI, consulte o item "Importação e Exportação de projetos".
Schema de Tabelas do Historiador
As tabelas do Historiador contém as seguintes colunas:
UTCTimeStamp_Ticks- Data e hora em UTC (GMT) para este registro (em formato 64-bits NET ticks). O valor dessa propriedade é o número de intervalos de 100 nanossegundos (1/10th de um milésimo de segundo) que se passaram desde 00:00, 1 de Janeiro de 0001. Este é um novo padrão de data / hora usado pelo Microsoft dot NET framework..
LogType- Coluna auxiliar para mostrar quando a linha foi inserida: 0 = na partida, 1 = como registro normal, 2 = no encerramento do sistema.
TagName - Coluna criada automaticamente usando o nome da tag, como título da coluna. Ela armazena o valor do dado usando precisão dupla. Haverá uma coluna destas para cada Tag definido para esta tabela
_TagName_Q - Coluna criada automaticamente para a qualidade dos dados, usando a especificação de qualidade OPC.Haverá uma coluna destas para cada Tag definido para esta tabela
Normalmente, você pode associar até 200 tags com cada tabela do historiador, mas esse número é dependente de quantas colunas o banco de dados sendo utilizado permitir. Os Tags devem ser definidos na mesma tabela quando eles têm critérios de gravação, intervalos de tempo, taxas de variação e dinâmica no processo, semelhantes, já que para salvar uma tag na tabela, você precisa salvar a linha inteira.
Visualizando Gráficos de Tendência
Para visualizar gráficos de tendências com informações históricas, você pode usar o objeto de tendência disponível no espaço de Engenharia utilizado para definição de telas ou relatórios.Consulte a seção "Configurando a Janela de Tendência "
Personalizando a Obtenção de Amostragens
Normalmente o objeto de tendência gráfica chama o servidor Historiador para obter os dados para plotar os gráficos. Em algumas situações, você pode querer substituir essa configuração e definir um código script em dot NET para obtenção dos valores. Isto é usado, por exemplo, para plotar dados calculados para uma receita, ou dados futuros, ou ainda dados de outras tabelas SQL ou qualquer cenário em que haja necessidade de uma personalização na obtenção de dados.Para esta personalização um método GetSamples deve ser definido em qualquer Classe de scripts, para fazer a obtenção de amostragens. Na aba Edit>Tags>Historian este método deve ser definido na coluna GetSamplesMethod. O protótipo para este método é:
DataTable GetSamples(string[] tagNames, object startRange, object endRange)
Os parâmetros:
Os parâmetros startRange and endRange são do tipo:
dotNET DateTimeOffset, quando utilizados para obter tabelas usadas em gráficos de tempo.
Double, quando criando dados para gráficos X-Y.
O objeto retornado pelo método DataTable deverá ter as seguintes colunas:
DateTime: A data e hora da amostragem
TagName: O nome do tag utilizado como FieldName para a coluna com o valor do tag em Double.
TagName_Q: Coluna opcional com a qualidade do dado na codificação OPC.
Objetos runtime do Historiador
O namespace Historian tem as propriedades e o estado atual do servidor Historiador.
O objeto Historian.Table tem a lista de tabelas definidas no historiador e as propriedades. de cada tabela.
A propriedade de tag, Tag.tagname.Historian, fica habilitada para os tags, se há definição de registro histórian no projeto.
Nesta página: