Sobreposição de Valores - Script

possuo 3 bombas , sendo uma reserva e 2 que ficam em funcionamento.
Bomba 1 - Bomba 2 - Bomba 3

Na indisponibilidade de uma das bombas devo gerar um alarme com a finalidade do operador inspecionar o local, e manualmente ligar a bomba 3.
Bomba 1 - Bomba 2 - Bomba 3 -> alarme

Bomba 1 - Bomba 2 - Bomba 3 -> normal

As bombas são aquisitadas por tag de comunicação modbus:
ed_modbuus_1
ed_modbuus_2
ed_modbuus_3

e realizados links com ponto de dados que configurei apenas como eventos.
DigitalDataRed1
DigitalDataRed2
DigitalDataRed3

Foi criada uma tag interna BEP com a finalidade de armazenar o valor digital correspondente a combinação das bombas ligadas.
BEP

Para realizar a lógica escrevi um script para fazer o reconhecimento dos pontos e avaliação do número das bombas ligadas. O problema está no valor digital escrito na tag interna BEP, que não corresponde com a combinação das bombas.

Sub Label1_Evento2()
	Dim Var 'recebe a condição da bomba 3
	Dim BEP 'recebe a tag interna para armazenar a combinação bombas ligadas
	Dim avalia
	
	'TELAS_SA.Tela1.Texto5
	Set Texto50 = Screen.Item("Label2")

	'aquisita o coil 3
	set Var =  Application.GetObject("Dados_SA.EDF_BT_MB.DigitalDataRed3")
	'aquisita Value da tag interna para avaliação do valor ref. as 3 coils (1,2,3)
	set BEP_int =  Application.GetObject("Dados_SA.BEP")

	'transforma para booleano o valor e retira sinal
	BEP = Abs( CBool(Var.Saida) )
	
	'separa bit a bit
	bit0 = Bep_int.Value AND 1
	bit1 = BEP AND 2
	bit2 = Bep_int.Value AND 4
	
	BEP_int.Value = bit0 + bit1 + bit2
	'MsgBox( BEP_int.Value )
  	texto50.caption = BEP_int.Value

End Sub


O