[SCADA] Como as Mensagens de Drivers São Priorizadas e Enviadas no InduSoft Web Studio?

Publicado: 22/05/2013 em CLP / PLC, Hardware, Programação, Softwares, Supervisório / SCADA
Tags:, ,

A bastante tempo eu não falo de automação ( Supervisório e PLC principalmente ), então, considerando as novidades da Indusoft, segue

Obs.: o texto abaixo é somente uma parte do documento “Driver Runtime” recentemente atualizado em nossa documentação. Para ler este documento cliqueaqui.

A maneira em que as mensagens do Driver Task são colocadas na fila de mensagens de Driver no software InduSoft Web Studio depende de dois fatores:  Timestamp e Prioridade.

As mensagens com alta prioridade são executadas antes das mensagens com baixa prioridade, independende do Timestamps das mensagens. As mensagens com mesma prioridades são executadas de acordo com os seus Timestamps, utilizando o método FIFO (o primeiro que entra é o primeiro que sai).

Porque o Driver Runtime no InduSoft Web Studio insere mensagens na fila para que elas possam ser executadas (que é baseada na prioridade e no timestamp de cada mensagem), o driver de comunicação executa a mensagem mais alta da fila primeiro, removendo-a da fila após a execução, independente se a comunicação foi um sucesso.

Obs.: Se o usuário especificou um número de tentativas nas configurações do driver de comunicação, ele continua tentando executar a mensagem exatamente o número de vezes especificado pelo usuário no caso de falha de comunicação. Quando o número de tentativas acaba, a mensagem é removida da fila até mesmo se a comunicação não foi um sucesso.

A Figura 1 e a Tabela 1 ilustram como o Driver Runtime insere as mensagens na fila de acordo com as suas prioridades e timestamp, e como o Driver Runtime executa a mensagem no topo da lista e a remove após a execução.

Figura 1: Driver Runtime criando uma fila de mensagens

Tabela 1: Tipo de Mensagem e Prioridade

Obs.: Antes da versão v6.1+SP5 (Build 61.5.00.00) do InduSoft Web Studio, as mensagens dos comandos Enable Read When Idle possuiam baixa prioridade (prioridade 4). Portanto, estas mensagens não eram enviadas para a fila a não ser que houvesse um driver (thread) disponível (idle) para executá-las. Este comportamento não era necessariamente incorreto, porém ele trazia confusões desnecessárias, e por esse motivo foi modificado em novas versões.

Modos de Drivers de Comunicação

O cenário mais simples para a interface do driver de comunicação é onde o driver de comunicação troca dados com somente um equipamento (Figura 2).

Figura 2: Driver Runtime Task e Driver Communication Thread (<DriverName>.dll)

O Driver Runtime task no InduSoft Web Studio é capaz de lidar com mais de um driver de comunicação simultaneamente. O número máximo de drivers de comunicação suportados simultaneamente pelo Driver Runtime task é determinado por sua licença (Figura 3).

Figura 3: Driver Runtime Task com vários drivers de comunicação

Além disso, o mesmo driver de comunicação pode trocar dados com vários equipamentos (Figura 4).

Cada instância de um driver de comunicação executa as mensagens da fila sincronicamente. Isto significa que o driver de comunicação não executa a próxima mensagem na fila até que a mensagem corrente seja completamente executada.

Este comportamento é apropriado para vários sistemas de pequeno e médio porte. Porém, em sistemas de grande, este cenário pode não fornecer o desempenho esperado, pois o driver de comunicação cria um gargalo quando existe a comunicação com vários equipamentos, ou mesmo com um equipamento único.

Quando o driver de comunicação está trocando dados com mais de um equipamento, e pelo menos um deles não se encontra disponível (por exemplo, se encontra desconectado da rede), esta situação pode diminuir significativamente o desempenho de toda a interface de comunicação. Isto acontece porque o driver de comunicação não executa mensagens subsequentes na fila de mensaganes para outro equipamento devidamente conectado na rede durante o tempo que que ela está tentando a execução da mensagem para o equipamento disconectado. Desde que o tempo “Time-Out” é tipicamente definido em questão de segundos, isto pode causar atrasos sérios na comunicação com todos os equipamentos.

O InduSoft Web Studio fornece uma solução para esses gargalos de arquitetura utilizando “Simultaneous Connections” para o mesmo driver de comunicação.

Conexões Simultâneas

O usuário pode configurar o número de conexões simultâneas para o mesmo driver de comunicação em Settings >> Advanced na interface do driver (Figura 5). Durante o runtime, o InduSoft Web Studio cria uma instância (thread) do driver de comunicação para cada conexão simultânea configurada pelo usuário.

Obs.: O número máximo de solicitações simultâneas depende nas especificações do equipamento e do protocolo. Por favor consulte a documentação do fabricante do equipamento para maiores informações sobre o equipamento e o protocolo que estão sendo utilizados.

A Figure 6 ilustra a estrutura interna de interface de comunicação do InduSoft Web Studio quando o usuário configura duas conexões para o mesmo equipamento.

É importante mencionar que essas instâncias (threads) do driver são criadas em memória e são transparentes para o usuário.

Cada conexão simultânea do driver de comunicação trabalha em paralelo com as outras. Quando uma instância executa uma mensagem, ela remove a instância da fila e procura a próxima apropriada mensagem no topo da fila.

O InduSoft Web Studio implementa vários mecanismos para certificar que as conexões simultâneas do driver não estão tentando executar a mesma mensagem na fila. Quando uma instância (thread) do driver de comunicação procura por uma mensagem na fila, ela pode não considerar a mensagem no topo se a mesma for direcionada para um equipamento que já está se comunicando com o número máximo de conexões (outras instâncias do driver de comunicação) configuradas pelo usuário. Neste cenário, o driver de comunicação que está ocioso procura pela mensagem no topo para um equipamento que não está se comunicando com o número máximo de conexões configuradas pelo usuário – o que não necessariamente pode ser a mensagem no topo da fila.

A Figura 7 ilustra a estrutura interna da interface de comunicação do InduSoft Web Studio quando o usuário configura duas conexões simultâneas, uma para cada equipamento. Neste cenário, existe somente uma instância (thread) do driver de comunicação para cada equipamento. Se um equipamento não responder as solicitações do driver, esta situação não diminuirá o desempenho das comunicação do outro equipamento.

Figura 7: Driver mostrando duas conexões simultâneas

Obs.: Conexões simultâneas não podem ser implementadas com protocolos seriais por que a camada física não suporta solicitações assíncronas numa linha serial. Além disso, drivers que utilizam bibliotecas de terceiros suportam conexões simultâneas somente se essas bibliotecas forem suportadas também.

Maiores informações sobre a operação, instalação e configuração de drivers de comunicação podem ser encontradas no manual de ajuda (Techref.pdf) da InduSoft localizado emContents >> Communications with Other Devices >> Drivers e no manual de ajuda de cada driver <DriverName>.pdf.

Informações sobre as operações de drivers, driver tasks, comunicações de fundo, e protocolos podem ser encontradas em Tech Note, “Driver Runtime” localizadas aqui.

 

VIA: http://www.indusoft.com

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s