Gráfico Elipse E3 Temperatura x Posição

Boa noite!

Preciso plotar um gráfico Temperatura(Y) x posição (X) alguém tem algum exemplo que possa me ajudar? Estou convertendo uma aplicação SCADA para E3 e a pessoa que fez no SCADA não deixou comentários para ajudar a interpretar o script de plotagem do gráfico.

Bom dia @Felipena,

Se entendi bem, voce esta tentando plotar um grafico XY no Elipse E3, certo?
Para fazer isto, primeiro voce precisa alterar os eixos para a escala desejada, passando para Numerica em ambos.


Apos isto, basta configurar a pena configurando os Links verticais e horizontais.

Obs: Para configurar o Link do eixo horizontal, você precisa desabilitar a opção Usar a estampa de tempo.

Att.
Link

Ola @Felipena,

A configuração acima resolveu a sua questão?

Att.
Link

Boa tarde!
Esse projeto eu estou rodando em paralelo, portanto, só consigo testar nos fins de semana. Te dou uma resposta assim que possível.
Agradeço a atenção

1 Like

Boa noite! Não consegui. Veja só:

//formatar o gráfico de tendência do perfil do forno
//A escala do eixo “x” é em minutos
// x = [distância total do forno (mm)] / [veloc * 1740(mm) / 1440(min)]
// x = 110640 / (Veoc * 1.208333)
// 1740 = tamanho do carro em mm
// 1440 = 1 dia convertido p/ minutos
// O eixo “x” tem que ser múltiplo de 20, para as divisões ficarem exatas.
// X --> divido por 21, somo a parte inteira com 1, e multiplico por 21.
// Com isso vou ter uma escala com nº inteiros.

Temperaturasdoforno.Plotagem.rightLimit = (Int((110640 / SP_REC_VELOC_PROP * 1.208333)/21)+1)*21

trendx=(1220 / SP_REC_VELOC_PROP * 1.208333)
trendx1=(31690 / SP_REC_VELOC_PROP * 1.208333)
trendy01 = Média_atu_SP_G1
trendy02 = RsLinx.ENT_ICP.ICP_3.SA2TE03

Temperaturasdoforno.ClearData()

Temperaturasdoforno.Plotagem.pen2.AddData((1220 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE03)
Temperaturasdoforno.Plotagem.pen2.AddData((9290 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE04)
Temperaturasdoforno.Plotagem.pen2.AddData((15590 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE05)
Temperaturasdoforno.Plotagem.pen2.AddData((22040 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE06)

// Grupo 2
Temperaturasdoforno.Plotagem.pen2.AddData((36740 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE08)
Temperaturasdoforno.Plotagem.pen1.AddData((36740 / SP_REC_VELOC_PROP * 1.208333), Média_atu_SP_G2)

// Grupo 3
Temperaturasdoforno.Plotagem.pen2.AddData((43170 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE09)
Temperaturasdoforno.Plotagem.pen1.AddData((43170 / SP_REC_VELOC_PROP * 1.208333), Média_atu_SP_G3)

// Grupo 4
Temperaturasdoforno.Plotagem.pen2.AddData((49730 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE10)
Temperaturasdoforno.Plotagem.pen1.AddData((49730 / SP_REC_VELOC_PROP * 1.208333), Média_atu_SP_G4)

// Grupo 5
Temperaturasdoforno.Plotagem.pen2.AddData((56070 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE11)
Temperaturasdoforno.Plotagem.pen1.AddData((56070 / SP_REC_VELOC_PROP * 1.208333), Média_atu_SP_G5)

// Grupo 6
Temperaturasdoforno.Plotagem.pen2.AddData((62170 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE12)
Temperaturasdoforno.Plotagem.pen1.AddData((62170 / SP_REC_VELOC_PROP * 1.208333), Média_atu_SP_G6)

// Resfriador
Temperaturasdoforno.Plotagem.pen2.AddData((65700 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE13)
Temperaturasdoforno.Plotagem.pen2.AddData((73940 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE14)
Temperaturasdoforno.Plotagem.pen2.AddData((81940 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE15)
Temperaturasdoforno.Plotagem.pen2.AddData((90670 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE16)
Temperaturasdoforno.Plotagem.pen2.AddData((100570 / SP_REC_VELOC_PROP * 1.208333), Média_atu_TE17)

Esse acima é o script original que origina essa tela abixo:

O meu script no E3 ficou assim:

DIM SP

SP = Application.GetObject(“Dados.[@02_RECEITAS].TEMPLATE_CLP.TEMPLATE_CLP44”).Value

'formatar o gráfico de tendência do perfil do forno
'A escala do eixo “x” é em minutos
’ x = [distância total do forno (mm)] / [veloc * 1740(mm) / 1440(min)]
’ x = 110640 / (Veloc * 1.208333)
’ 1740 = tamanho do carro em mm
’ 1440 = 1 dia convertido p/ minutos
’ O eixo “x” tem que ser múltiplo de 20, para as divisões ficarem exatas.
’ X --> divido por 21, somo a parte inteira com 1, e multiplico por 21.
'Com isso vou ter uma escala com nº inteiros.

Item(“GRAFICO”).HorScaleEnd = (Int((110640/SP * 1.208333)/21)+1)*21

Application.GetObject(“Dados.[@12_TREND].TRENDX1”).Value =(1220 / SP * 1.208333)
Application.GetObject(“Dados.[@12_TREND].TRENDX2”).Value =(31690 / SP * 1.208333)
Application.GetObject(“Dados.[@12_TREND].TRENDY1”).Value = Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_SP.MEDIA_SP_G2”).Value
Application.GetObject(“Dados.[@12_TREND].TRENDY2”).Value = Application.GetObject(“RsLinx.Server.ENT_ICP.ICP_3.SA2TE03”).Value

'Item(“GRAFICO”).Pens.Item(“SP”).Clear()
'Item(“GRAFICO”).Pens.Item(“TEMP”).Clear()

Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(1220 /(SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE03”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(9290 /(SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE04”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(15590 /(SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE05”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(22040 /(SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE06”).Value

'Grupo 2
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(36740 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE08”).Value
Item(“GRAFICO”).Pens.Item(“SP”).AddPoint(36740 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_SP.MEDIA_SP_G2”).Value

'Grupo 3
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(43170 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE09”).Value
Item(“GRAFICO”).Pens.Item(“SP”).AddPoint(43170 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_SP.MEDIA_SP_G3”).Value

'Grupo 4
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(49730 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE10”).Value
Item(“GRAFICO”).Pens.Item(“SP”).AddPoint(49730 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_SP.MEDIA_SP_G4”).Value

'Grupo 5
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(56070 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE11”).Value
Item(“GRAFICO”).Pens.Item(“SP”).AddPoint(56070 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_SP.MEDIA_SP_G5”).Value

'Grupo 6
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(62170 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE12”).Value
Item(“GRAFICO”).Pens.Item(“SP”).AddPoint(62170 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_SP.MEDIA_SP_G6”).Value

'Resfriador
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(65700 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE13”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(73940 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE14”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(81940 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE15”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(90670 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE16”).Value
Item(“GRAFICO”).Pens.Item(“TEMP”).AddPoint(100570 / (SP * 1.208333)), Application.GetObject(“Dados.[@10_MEDIAS_TEMP].TEMP_REAL.TE17”).Value
End Sub

Gerou essa tela abaixo:

Scada: scada%20graf

E3:

Se conseguir me ajudar a identificar onde estou errando, agradeço muito.

Caro @Felipena,

Fiz um teste mais simples que o seu e obtive o seguinte resultados.

For i = 0 to 10
Screen.Item(“E3Chart1”).Pens.Item(“Pena1”).AddPoint i * 10, i * 20
Next

Com a seguinte configuracao:


Pelo que estou vendo na sua configuração, os pontos horizontais estão variando corretamente, o que falta são os pontos verticais.
Verifique o valor nos tags responsáveis por fazer os pontos Y para ver se estão no valor e escala corretos.

Att.
Link

Certo, vou fazer os testes hoje a noite e te respondo.

Agradeço a disposição