News:

SMF - Just Installed!

Main Menu

WorkPart Creator y Destructor

Started by Gymieres, January 29, 2026, 02:08:31 PM

Previous topic - Next topic

Gymieres

Buenas,

tengo un escenario con un Creator y Destructor, los cuales quiero manejar desde el PLC (estoy con S7-1200). La intención es que al pulsar un botón, se cree una pieza y cuando llegue al Destructor me avise con una entrada al PLC.

Para el caso del Creator, he asignado una variable a PLC_OUTCREATEWP y después en el escenario pues sin problema, crea cada vez que activo esa variable.

Pero para el caso del Destructor, no consigo recibir la señal de que se ha eliminado un objeto, expongo los pasos que he seguido:

 1) He asignado una variable a PLC_IN_DESTROYWP, dejando PLC_OUT_DESTROYWP en -1. Al simular me he dado cuenta que el WP no funcionaba, no eliminaba ningún objeto.

 2) He asignado otra variable a PLC_OUT_DESTROYWP y la he forzado a que esté activa con el PLC, ahora si eliminaba los objetos, pero sigo sin recibir señal alguna de PLC_IN_DESTROYWP.

 3) He intentado configurar ciclo scan del PLC, poner pilotos con S y R para detectar el pulso, pero nada.

 4) Al final he realizado un pequeño script para forzar PLC_IN durante 200ms y ahora si se activa cuando se elimina el objeto.

El escenario que he cogido ha sido el primero TEST y le añadido un pequeño cuadro y los WorkPart. Además he intentado configurar el PLC_IN_CREATEWP para comprobar si me da pulso, cada vez que creo pieza, pero tampoco me funciona.

Entiendo que no debería hacer falta el Script para hacer esto, pero no sé como hacerlo funcionar.

Gracias.

You cannot view this attachment.

EasyPLC_Master

Hola,

El componente WorkPart Destructor sirve para eliminar las WorkParts, si no se configura la salida o entrada digital, cuando el WorkPart colisiona con el Destructor, esta se elimina. Si por el contrario, se añade una dirección a una entrada o salida, es condición necesaria que el WorkPart colisione y ademas esté activa la señal configurada.

Si quieres activar una entrada digital cuando el destructor destruye un WP, debes usar un script, por ejemplo algo del tipo:

Suponemos que en la máquina existe un componente WorkPart Destructor llamado WPDestruct1:
public void Init()
{
WPDestruct1.DestructorEvent += WPDestruct1_DestructorEvent;
}

public void Main()
{

}

public void Finish()
{
WPDestruct1.DestructorEvent -= WPDestruct1_DestructorEvent;
}

private void WPDestruct1_DestructorEvent(int type)
{
IOManager.SetInput(NumEntDig, true); //NumEntDig = nº de la entrada a activar
}

De todas formas, la manera más facil sería poner una fotocelula justo antes de que entre en el Destructor, que ya activará al entrada al PLC configurada en la fotocélula.
¿Porqué no usas esa opción?




Gymieres

Quote from: EasyPLC_Master on January 29, 2026, 03:29:53 PMHola,

El componente WorkPart Destructor sirve para eliminar las WorkParts, si no se configura la salida o entrada digital, cuando el WorkPart colisiona con el Destructor, esta se elimina. Si por el contrario, se añade una dirección a una entrada o salida, es condición necesaria que el WorkPart colisione y ademas esté activa la señal configurada.

Si quieres activar una entrada digital cuando el destructor destruye un WP, debes usar un script, por ejemplo algo del tipo:

Suponemos que en la máquina existe un componente WorkPart Destructor llamado WPDestruct1:
public void Init()
{
    WPDestruct1.DestructorEvent += WPDestruct1_DestructorEvent;
}

public void Main()
{

}

public void Finish()
{
    WPDestruct1.DestructorEvent -= WPDestruct1_DestructorEvent;
}
       
private void WPDestruct1_DestructorEvent(int type)
{
    IOManager.SetInput(NumEntDig, true); //NumEntDig = nº de la entrada a activar
}

De todas formas, la manera más facil sería poner una fotocelula justo antes de que entre en el Destructor, que ya activará al entrada al PLC configurada en la fotocélula.
¿Porqué no usas esa opción?






Sí, algo así es lo que finalmente he tenido que usar para el Script y me funciona correctamente.

Era solo que al ver que se puede configurar un PLC_IN y OUT en estos WP y por simplificar, pensaba usarlos. Pero sí, ubicaré un sensor al lado de cada WP y listo.

Gracias.