Mensajes recientes

Páginas: 1 ... 5 6 [7] 8 9 10
61
STX8091 - Familia PLC Cube / Re:Consulta cambio versión stxladder de 1.7.5 a 1.8.2
« Último mensaje por Soporte agosto 31, 2017, 17:12:22 pm »
Deberías seleccionar la opción "agregar nuevo encabezado ..." del menu contextual del explorador de proyecto.

Te adjunto capturas de pantallas:

Primero selecciona menú:



Luego definí el archivo:

62
STX8091 - Familia PLC Cube / Re:Consulta cambio versión stxladder de 1.7.5 a 1.8.2
« Último mensaje por Mariano agosto 31, 2017, 17:04:25 pm »
Intento agregar el archivo .inc como un script y no me permite usar la extensión.

De que manera hay q agregarlo Boris?

Saludos
63
STX8091 - Familia PLC Cube / Re:Consulta cambio versión stxladder de 1.7.5 a 1.8.2
« Último mensaje por Soporte agosto 31, 2017, 16:47:45 pm »
Buenas tardes Mariano,

Si, a partir de StxLadder 1.7.8 se introdujo un cambio que le da prioridad al orden en que se incluyen los archivos al compilar. Entonces, como PlcMain.p alfabéticamente esta después de Borrado.p, el compilador cuando procesa Borrado.p no tiene definidas las variables de PlcMain.p y da el error.

Para solucionarlo, simplemente crea un archivo con extensión ".inc", por ejemplo global.inc, que te sirve para poner definiciones de variables y contantes que serán visibles en todo el proyecto.

En ese archivo luego coloca:

Código: (Pawn) [Seleccionar]
   new litros[60];
   new puntero_litros=0;

Y borra dichas variables del archivo PlcMain.p para que no estén definidas dos veces.

Hace lo mismo con otras variables globales que tengas.

Luego compila normalmente y no deberías tener errores.



Como regla quedaría:

  • Archivos ".inc" se leen e incluyen primero que los ".p" al compilar. En el grupo de los archivos ".inc", el que este primero alfabéticamente, se lee primero también.
  • Archivos ".p" se leen en orden alfabético al compilar, teniendo prioridad el que comience primero.

Así que simplemente poner las variables/constantes globales en archivos .inc para que sean visibles correctamente a todo el proyecto.

Fue un cambio necesario que se introdujo en StxLadder 1.7.8 para que los archivos sigan un orden alfabético al compilarlos, ya que antes de esa versión no respetaba un ningún orden en particular y variaba de proyecto en proyecto. Lo cual tenia incoherencia.

Saludos
64
STX8091 - Familia PLC Cube / Re:Consulta cambio versión stxladder de 1.7.5 a 1.8.2
« Último mensaje por Mariano agosto 31, 2017, 16:47:03 pm »
Estimado Boris,

Para darte más información.
Acabo de efectuar las siguientes pruebas:

De los históricos de la página;
Bajé la versión 1.7.8 y me da los mismos errores.
Re-Bajé la versión 1.7.5 (la misma q tengo) y no me dá errores.

Saludos
65
STX8091 - Familia PLC Cube / Consulta cambio versión stxladder de 1.7.5 a 1.8.2
« Último mensaje por Mariano agosto 31, 2017, 16:05:55 pm »
Hola Boris,

Resulta q al cambiar versión stxladder 1.7.5 a 1.8.2 el compilador me acusa errores de variables no definidas.

Errores q no surgen en la versión 1.7.5.

Estas variables se usan en una función escrita separada de PLC Main, pero están definidas dentro de PLC Main de la siguiente forma:

   new litros[60];
   new puntero_litros=0;

Al compilar me salta el error de que no están definidas.
Te envío una imagen de la captura de pantalla con la función Borrado.p y los errores que surgen al intentar compilar con 1.8.2

Existirá en esta nueva versión algún cambio en la sintaxis al definir variables globales?

Saludos



66
StxLadder - Slicetex Ladder Designer Studio / Re:Registro Caudal Agua y Acceso Web
« Último mensaje por Soporte agosto 30, 2017, 18:24:33 pm »
Buenas tardes,

Si eso es exactamente lo que busco. muchas gracias

Referente a lo del reset, mas que resetear las lineas automáticamente, seria poder hacer la limpieza de registros de cada linea individualmente, asi como se hace en el icono de CONTROL.

MuCHAS GRACIAS

Le adjunto versión del proyecto donde es posible en la página control.shtml volver a cero y limpiar todos los registros o cuentas manualmente, tocando el interruptor "LIMPIAR/BORRAR REGISTROS".

Cuando ese interruptor se toca, se llama a la función FlowFlushCounters() desde archivo OnPostEvent.p.

La función FlowFlushCounters() resetea la cuenta de todos los contadores para entradas DIN, y la misma esta definida en el archivo flow.p:

Código: (Pawn) [Seleccionar]
FlowFlushCounters()
{
   // Resetear a 0 cuentas acumuladas para todos los contadores.
   for(new i=1; i <= 12; i++)
   {
      DinCounterClear(i)
   }
}

Notar que se llama a DinCounterClear() para cada entrada DIN en el loop for.

Los contadores pueden contar hasta el numero 2147483647, luego si no son reseteados, vuelven automáticamente a 0.

Es importante que entienda los cambios, así puede realizar modificaciones.

Saludos

67
StxLadder - Slicetex Ladder Designer Studio / Re:Registro Caudal Agua y Acceso Web
« Último mensaje por Ronald agosto 29, 2017, 22:14:52 pm »
Si eso es exactamente lo que busco. muchas gracias

Referente a lo del reset, mas que resetear las lineas automáticamente, seria poder hacer la limpieza de registros de cada linea individualmente, asi como se hace en el icono de CONTROL.

MuCHAS GRACIAS
68
StxLadder - Slicetex Ladder Designer Studio / Re:Registro Caudal Agua y Acceso Web
« Último mensaje por Soporte agosto 29, 2017, 20:10:53 pm »
Buenas tardes Ronald,

Necesito que si por el caudalimetro de la entrada 5 pasan 2 litros, estos se me reflejen en la DIN 5 de la pagina all.shtml, y que no regrese a cero, osea que se mantenga en la pagina all.shtml esos 2 litros, luego si pasan 3 litros mas, la pagina me muestro los 5 litros. así en todas las entradas. si esta lectura llega a un valor muy grande y no es recomendable para el plc, quisiera poder hacer un reset individual por lineas.

Ningún problema.

Te adjunto un proyecto que te muestra el caudal acumulado en Litros en todas las entradas din en la página all.shtml.

Te pido que lo pruebes, ya que lo modifiqué para mostrar la cantidad de litros acumulados, pero no lo probé en laboratorio por cuestión de tiempo.



Te explico que modifiqué:

El programa muestra en la página all.shtml los litros acumulados llamando a la función FlowGetAccumulatedLitres(Din) desde el archivo OnPrintEvent.p (que es la encargada de procesar la página web).

La función FlowGetAccumulatedLitres(Din) esta definida en archivo Flow.p con el siguiente código:

Código: (Pawn) [Seleccionar]
Float: FlowGetAccumulatedLitres(Din=7)
{
   new Float: TotalLitres
   
   // Calcular litros acumulados, teniendo en cuenta que 450 pulsos equivalen a un litro.
   TotalLitres = IntToFloat(DinCounterGetValue(Din)) / 450.0
   
   return TotalLitres 
}

Como podes ver, devuelve la cantidad de litros haciendo el siguiente calculo:

LitrosAcumulados = PulsosAcumulados / 450.0

Donde: 450 pulsos/min = 1 L/min

Para afinar el cálculo, podes modificar dicha constante numérica en esa función.

En el argumento de la funcion FlowGetAccumulatedLitres(Din), pasas el número de entrada que deseas leer los litros/min acumulados.

Ejemplo, para entrada DIN4: FlowGetAccumulatedLitres(4)



Esta versión acumulará el caudal hasta que se llenen los contadores y se rebalsen en un numero enorme, pero podemos hacer otra versión en que se fije un limite de litros y se resetee automáticamente (para evitar números excesivos).

Pero por ahora, proba si esto es lo que estas buscando en cuanto a la acumulación de litros, para luego decirme y vemos el otro paso.

Saludos
69
StxLadder - Slicetex Ladder Designer Studio / Re:Registro Caudal Agua y Acceso Web
« Último mensaje por Ronald agosto 29, 2017, 13:09:39 pm »
Necesito que si por el caudalimetro de la entrada 5 pasan 2 litros, estos se me reflejen en la DIN 5 de la pagina all.shtml, y que no regrese a cero, osea que se mantenga en la pagina all.shtml esos 2 litros, luego si pasan 3 litros mas, la pagina me muestro los 5 litros. así en todas las entradas. si esta lectura llega a un valor muy grande y no es recomendable para el plc, quisiera poder hacer un reset individual por lineas.

Gracias
70
StxLadder - Slicetex Ladder Designer Studio / Re:Registro Caudal Agua y Acceso Web
« Último mensaje por Soporte agosto 29, 2017, 09:25:26 am »
Buenos días Ronald,

he venido adaptando el ejemplo que me enviaste a lo que necesito, y todo va bien, ahora estoy tratando de mantener las lecturas de todas de las entradas DIN. osea hace un contador por entrada DIN

EJEMPLO: Cuando un caudal de agua en la entra el la entrada din 4, este lo lee en el registro de todas las entradas DIN4, pero regresa a cero, mi idea es que ese valor se mantenga y luego al pasar otro caudal, este se sume con el valor antes mostrado y así sucesivamente.

El código lee todas las entradas midiendo el caudal instantáneo, es decir el caudal que esta presente en la entrada [L/min], y es el que se muestra en la página all.shtml, tal como pedía la consigna que habías solicitado.

¿Que necesitas hacer? ¿Cuando regresa a cero el caudal que lees? ¿Bajo que condición harías la suma de caudales?

Detallar estos puntos así podemos ayudarte.

Saludos
Páginas: 1 ... 5 6 [7] 8 9 10