Pawn en Ladder

  • 2 Respuestas
  • 1334 Vistas

PabloS

  • Novato
  • *
  • Mensajes: 18
Pawn en Ladder
« : agosto 18, 2013, 15:22:31 pm »
Estoy creando un script de ejecución, que de acuerdo al valor de una entrada analógica, lo convierto en PH con una fórmula y deseo cambiar el valor de una variable Booleana Global (gb_PHAdecuado). Hay otra alarma que es gb_AlarmaPH que directamente para el proceso cuando el PH es muy ácido. Y la otra variable int (gi_EstadoPH) que utilizo para luego mostrar distintos mensajes en el display.

El error se produce en todas las líneas donde utilizo gBoolSet y gBoolClr, produce un error 029: Invalid expression, assumed zero. Si utilizo pBoolSet, el programa compila bien pero logicamente no es una variable de perifericos y pro ende no funciona.



Código: [Seleccionar]
if(CurrentFlow)
{

lf_Principal_VoltajeV1 = Float: VinReadVolt(1)
lf_Principal_PH = (lf_Principal_VoltajeV1 - 1) * (14 / 9)

gBoolClr(gb_AlarmaPH)

  if(lf_Principal_PH >= 8)
  {
  if(lf_Principal_PH <= 8.7)
  {
  gi_EstadoPH = 1
  gBoolSet(gb_PHAceptable)
}
else
{
gBoolClr(gb_PHAceptable)
gi_EstadoPH = 2
}
}
else
{
gi_EstadoPH = 0
gBoolSet(gb_PHAceptable)
if (lf_Principal_PH < 7)
{
gBoolClr(gb_PHAceptable)
gBoolSet(gb_AlarmaPH)
}
}
}


 

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1722
  • Soporte Técnico
Re: Pawn en Ladder
« Respuesta #1 : agosto 18, 2013, 23:10:39 pm »
Buenas tardes,

Hemos actualizado StxLadder a la versión 1.4.4.

Esta disponible para bajar y corrige el error mencionado.

Descripción:

El error se debía a que los macros  gBoolSet() y gBoolClr() en combinación con el código utilizado, producían una combinación
incorrecta de código que el compilador tomaba como nula. Se nos paso tal error ya que el efecto se produce solo cuando
hay una combinación determinada de paréntesis en la linea anterior sin delimitador ";".

Con la nueva versión se soluciona el problema ya que los macros fueron mejorados.

Podes bajarla y al compilar nuevamente no debería aparecer el error.

Un consejo: la linea "if(lf_Principal_PH >= 8)" podrías escribirla como "if(lf_Principal_PH >= 8.0)" para
resaltar que estas comparando valores floats.

Cualquier otra consulta quedamos a disposición.

PD: Esta nueva versión de StxLadder también mejora otros macros relacionados.
« Última Modificación: agosto 18, 2013, 23:15:10 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

PabloS

  • Novato
  • *
  • Mensajes: 18
Re: Pawn en Ladder
« Respuesta #2 : agosto 18, 2013, 23:16:08 pm »
Gracias.
Voy a descargar el programa, y es cierto lo de la variable float. Voy a cambiarlo para ordenar el código.