Rodizio entre equipamentos


(Leylson Carpi) #1

Boa tarde

Estou precisando realizar uma rotina de rodizio por horas, onde a cada 12 horas os equipamentos se alternam.
Gostaria de fazer isso diretamente no Elipse já que tenho uma comunicação com o CLP via Modbus.


(Luiz Fernando Freire dos Reis) #2

@Leylson_Carpi, boa tarde.

Pode configurar o driver com o IP Principal e o Backup e criar um tag timer com o preset para o período que deseja realizar a troca. No evento OnPreset deste tag, pode-se utilizar o tag do IOKit IPSwitch¹: https://kb.elipse.com.br/kb32904-chaveamento-de-ip-do-driver/.

¹Segundo o Manual do Usuário do IOKit:
"IPSwitch (-1, 0, 4, 1) IO.Ethernet.IPSwitch (Write-Only)

Qualquer valor escrito neste tag forçará o switchover manual. Se o IP Principal estiver ativo, então o IP Backup será ativado, e vice-versa. Isto forçará a reconexão com o IP especificado se o driver estiver atualmente conectado. Se o driver estiver desconectado, isto configurará o IP ativo para a próxima tentativa de conexão."

Sds.


(Leylson Carpi) #3

Boa tarde Fernando

Acabei conseguindo o que eu queria utilizando uma tag timer, porém agora não consigo fazer com que o Evento OnPreset dessa tag habilite em scrpt uma tag interna que criei


(Luiz Fernando Freire dos Reis) #4

@Leylson_Carpi,

Certo. Qual script criou no evento OnPreset e como configurou o tag timer?

Sds.


(Leylson Carpi) #5

tagTimer configurado como ttContinous
scrip onpreset
parent.Item (“PH1”).Value = true


(Luiz Fernando Freire dos Reis) #6

@Leylson_Carpi,

O script está correto. Segundo o que foi apresentado, sempre que o tag timer realizar preset, o tag interno receberá True. Entretanto, se o seu objetivo é alternar o valor (entre true e false) sempre que o tag timer realizar preset, então deve-se fazer desta forma:

Parent.Item("PH1").Value = Not Parent.Item("PH1").Value

Caso não seja isto, por favor, passar mais detalhes.

Sds.


(Leylson Carpi) #7

Obrigado Fernando

Dessa maneira deu certo