Descrição:
O Elipse E3 possui um recurso nativo de redundância do driver OPC? Como posso utilizá-lo? E caso ele não exista, como posso contornar essa situação?
Solução:
Desde a versão 6.6 existe uma propriedade chamada ServerMachine2 no Driver de Comunicação OPC.
O cliente OPC DA do E3 irá se conectar no servidor especificado em ServerMachine e ServerMachine2 (se não for vazio). Se a conexão falhar/demorar com o ServerMachine ou esse indicar que não está em execução, poderá ser chaveada a conexão para o ServerMachine2 (se for mais rápida). O servidor ativo no momento será indicado na propriedade ActiveServer (string somente leitura).
Para versões anteriores a 6.6, o Driver de Comunicação OPC não possui recurso nativo de redundância. Dessa forma, a alternativa neste caso é criar um evento de usuário para monitorar o valor da propriedade ServerStatus do Driver de Comunicação OPC.
A propriedade ServerStatus determina o estado da conexão com o servidor OPC, e é uma propriedade somente de leitura. As opções disponíveis são: -1: ServerStatus_Uknown (o driver OPC está conectado ao servidor OPC, mas o estado não é informado, ou a propriedade ReconnectPeriod foi configurada em 0) e 0: ServerStatus_NotConnected (o driver OPC não está conectado ao servidor OPC).
Este evento vai requerer um script com a propriedade ServerStatus, descrita acima. Nesse script, o que você pode fazer é: alterar o nome do Servidor sempre que o status do Servidor OPC for diferente de 1. Por exemplo, você pode seguir o script abaixo, que mostra como deve-se proceder nesta situação:
Sub DriverOPC1_ServerStatusChanged() if ServerStatus <> 1 then Deactivate() if ServerMachine = "Servidor1" then ServerMachine = "Servidor2" else ServerMachine = "Servidor1" end if Activate() end if End Sub
Para maiores informações sobre a redundância OPC no Elipse E3, consulte a seção OPC Client deste KnowledgeBase.