Olá,
Eu estou tentando uma soma, desde um verdadeiro valor é a soma deve ser executado, mas se falsa a soma deve ser 0
É o direito frase? O que pode estar errado?
Olá,
Eu estou tentando uma soma, desde um verdadeiro valor é a soma deve ser executado, mas se falsa a soma deve ser 0
É o direito frase? O que pode estar errado?
@piter, bom dia.
Se estiver trocando o valor em um Setpoint e quer mostrar o resultado da soma em um Display, então o ideal é que faça este script no evento Validate do Setpoint.
Exemplo:
Sub Setpoint_Validate(Cancel, NewValue)
If NewValue = 0 Then
Screen.Item(“Display”).Value = 0
Else Screen.Item(“Display”).Value = Soma
End If
End Sub
Function Soma()
Soma = 10+12
End Function
Sub Temp()
End Sub
Obs.: O evento OnStartRunning só é executado ao iniciar o objeto.
Obs.2: Como nada foi definido, acredito que o seu objeto Texto5 seja um Setpoint e o objeto Texto4 seja um Display.
EDIT1: Verifica também se os objetos (Display, Setpoint) estão com o tipo de dado na propriedade Value como String. Se sim, modifica para um tipo numérico (Double, Integer, etc).
Gracias Fernando, ya logre realizarlo.
Aprovecho para comentarte otra duda:
¿Qué propiedad debemos colocar en “else” para que no se abra la pantalla o en todo caso para que no se ejecute en evento Pick?”
@piter, bom dia.
Havendo necessidade de se controlar o motivo da abertura da tela, deve-se, então, descartar o “Pick de Abrir Tela” e usar somente o script. Sendo assim, não precisa colocar nada no Else ou apenas uma mensagem utilizando MsgBox. Veja:
Exemplo1:
Sub Texto1_Click()
if Screen.Item(“Texto2”).Value = “admin” then
Application.GetFrame(“Nome_do_Quadro”).OpenScreen(“Nome_da_Tela”), 1
end if
End Sub
Exemplo 2:
Sub Texto1_Click()
if Screen.Item(“Texto2”).Value = “admin” then
Application.GetFrame(“Nome_do_Quadro”).OpenScreen(“Nome_da_Tela”), 1
else
MsgBox “Usuário não permitido!”
end if
End Sub
Acredito que o Pick Abrir Tela neste caso não será necessário.
Buen día Fernando.
ya hice lo que me indicas, pero el problema es que la pantalla se abre en todo el cuadro y lo que yo quiero es que la pantalla se abra solo en el “área central”. Lo que pasa es que el cuadro 2 lo dividí en 3 áreas:
Y por esa razon esta usando el Pick ya que en el pick puedo definir en que parte del cuadro puede abrirse la pantalla.
¿como puedo lograrlo? En resumen lo que quiero es que si alguien no esta logeado no pueda ingresar a as pantallas.
Hola Fernando.
Ya me salio. muchas gracias solo agregue otra sentencia mas.
Sub TE1_Click()
If Screen.Item(“Texto5”) = “admin” then
Application.GetFrame("").OpenScreen(“Cuadro2”), 0
Application.GetFrame(“central”).OpenScreen(“MINA_SHOUGANG”), 1
Else MsgBox “ingrese usuario”
end if
End Sub
Saludos.
@piter, deve-se fazer conforme este script:
Em “Nome_da_Tela”, colocar a tela “Mina_Shougang”;
Em “Nome_do_Quadro” colocar a Divisão “Central”.
Hola Fernando buen día.
Disculpa las molestias, tengo un problema al representar un conmutador de 2 y 4 estados:
En mi proyecto algunos conmutadores tienen que operar solo con 2 posiciones y otros con 4 posiciones. Por defecto cuando se crean lós conmutadores desde el modelador eléctrico ya tienen predefinido um template ( de 4 estados ), sabiendo esto: ¿Como puedo lograr que algunos conmutadores operen solo com 2 posiciones y otros con 4 posiciones?¿Qué alternativas me puedes recomendar para que un conmutador tenga posiciones (abierto,cerrado) y otro con posiciones(intermedio,abierto,cerrado,error)?
Isto irá depender dos valores que recebe na variável.
Por exemplo, se sua Tag recebe 0 (zero) para Aberto e 1 (um) para Fechado, então os outros valores serão ignorados por não existirem. Entretanto, se sua Tag recebe 0 para Aberto, 1 para Fechado, 2 para Intermediário e 3 para Inválido, então é o que será mostrado.
Caso queira mudar a ordem desses significados devido ao valor recebido na Tag, então deve-se modificar a coluna Valor na Fonte (4ª coluna) da Discreta SwitchPosition (ver imagem) ou criar uma Conversão para ela.
Hola Fernando,
El problema es que si yo cambio el valor del template del *SwitchPosition , cambiaría para todos.
como te comente: (primer caso) hay algunos switch que operan con 1:open,2:closed,0:intermediate,3:error ( para este caso no tengo problemas porque solo tengo que cambiar en valor de a fuente), y (segundo caso) otros switch con 0:closed y 1:open. E problema es que si cambio el valor para 0:open y 1:closed tambien se cambiaria el valor que cambie en el “primer caso”.
Intente crear otro template(*SwitchPosition2) pero no puedo agregarlo ya que por defecto solo está el (*SwitchPosition) en Measurements.
Há como criar formas próprias. Veja:
Vai na aba Discretas > SwitchPosition;
Clica em Nova (número 1) irá abrir uma janela para escolher o nome (número 2). Ver imagem;
Seleciona a conversão que acabou de criar, no meu caso “Teste” (número 3);
Muda os dados da coluna Valor na Fonte (numero 4);
Fernando muchas gracias !!!
Justo lo que buscaba!!
Saludos atentos.
Buen día Fernando,
@piter, bom dia.
Item 1: Configurou a Consulta e realizou as configurações da pena de forma correta? Verificar no ‘Tutorial do E3 para Desenvolvedores’ > Capítulo ‘Gráficos e E3Chart’ > Exercícios.
Item 2: Respondido aqui
Buen día Fernando,
Si, lo que pasa es que hay un baner pero eso es para la leyenda, lo que quiero es un baner para el gráfico. Por ejemplo mi gráfico solo me muestra los ultimos 60s. y si yo quiero ver lo que paso hace 5 horas ¿como lo puedo ver? (la escala en horizontal siempre debe mostrarme los ultimos 60s.)
Agradezco tu apoyo.
Saludos
@piter, bom dia.
Duas formas de fazer isso são:
Primeira forma
Sub ToggleButton1_Change()
Set eixo = Screen.Item(“E3Chart1”).Axes.Item(“EixoHorizontal”)
’ Ultimas 5 horas
If Value Then
eixo.SetRealTimePeriod 5, 2
’ Ultimos 60 segundos
Else
eixo.SetRealTimePeriod 60, 0
End If
End Sub
Segunda forma
Cria dois OptionButtons na tela e muda a propriedade GroupName de ambos para “Chart”
No evento OnChange do OptionButton “Real” colocar:
Sub opbReal_Change()
’ Seta o eixo que quer configurar
Set eixo = Screen.Item(“E3Chart1”).Axes.Item(“EixoHorizontal”)
’ Muda para o tipo real e seleciona a janela de tempo
If Value Then
eixo.ScaleType = 1
eixo.SetRealTimePeriod 60, 0
End If
End Sub
Sub OptionButton6_Change()
’ Seta o eixo que quer configurar
Set eixo = Screen.Item(“E3Chart1”).Axes.Item(“EixoHorizontal”)
’ Muda para o tipo real e seleciona a janela de tempo
If Value Then
eixo.ScaleType = 2
eixo.SetHistoricPeriod Now-5/24, Now
End If
End Sub
Hola Fernando, buenos días.
Gracias por lo anterior.
Gracias por tu apoyo.
Saludos atentos.
@piter, boa tarde.
Por nada!
Neste artigo, tem uma forma de fazer o que precisa.
Pode-se utilizar o método do Servidor de Alarmes LogTrackingEvent. Para gravar algo ao realizar Login ou Logout, utilizar no evento OnLogin/ OnLogout do Viewer.
Para quando abrirem ou fecharem o Viewer, utilizar os eventos OnStartRunning/ OnStopRunning.
Exemplo:
Sub Viewer_OnLogin()
Application.GetObject(“ServidorAlarmes1”).LogTrackingEvent “O usuário “&User&” logou na aplicação!”, , , , , , , , , , “”
End Sub
Muy Agradecido por tu apoyo Fernando!!
Buen día Fernando,
-Tengo un problema, de que forma puedo bloquear el Elipse Power Studio para que nadie pueda hacer cambios (ejemplo: crear pantallas,borrar señales, etc), que la única forma que puedan hacer cambios sea mediante una contraseña y usuario.