DRUM: Materializar circuito secuencial sucesivo (S7-300, S7-400) - STEP 7

SCL (S7-300, S7-400)

ft:publication_title
SCL (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
es-ES
DRUM: Materializar circuito secuencial sucesivo

Descripción

La instrucción "Materializar circuito secuencial sucesivo" ocupa los bits de salida programados (OUT1 a OUT16) y la palabra de salida (OUT_WORD) con los valores programados del parámetro OUT_VAL del paso respectivo. El paso en cuestión debe cumplir las condiciones de la máscara de habilitación programada en el parámetro S_MASK mientras la instrucción permanece en dicho paso. La instrucción pasa al paso siguiente cuando el evento de éste es verdadero y una vez transcurrido el tiempo programado para el paso actual, o bien cuando el valor del parámetro JOG cambia de "0" a "1". La instrucción se desactiva cuando el estado lógico del parámetro RESET cambia a "1". Con ello, el paso actual se iguala al paso predeterminado (DSP).

El tiempo de permanencia en un paso se calcula multiplicando la base de tiempo predeterminada (DTBP) por el valor de contaje predeterminado (S_PRESET) para cada paso. Al comienzo de un nuevo paso, este valor calculado se carga en el parámetro DCC, que contiene el tiempo restante para el paso actual. Por ejemplo, si el valor del parámetro DTBP es "2" y el valor predeterminado para el primer paso es "100" (100 ms), el parámetro DCC devolverá el valor "200" (200 ms).

Un paso puede programarse con un valor de tiempo, con un evento o con ambos. Los pasos programados con un bit de evento y el valor de tiempo "0" pasan al siguiente paso en cuanto el estado lógico del bit de evento es "1". Los pasos programados solo con un valor de tiempo empiezan a contar el tiempo inmediatamente. Los pasos programados con un bit de evento y un valor de tiempo mayor que "0" empiezan a contar el tiempo en cuanto el estado lógico del bit de evento es "1". Los bits de evento se inicializan con el estado lógico "1".

Si el circuito secuencial sucesivo se encuentra en el último paso programado (LST_STEP) y ha transcurrido el tiempo para dicho paso, el estado lógico del parámetro Q se pone a "1". De lo contrario, se pone a "0". Si está activado el parámetro Q, la instrucción permanece en el paso hasta la desactivación.

En la máscara configurable (S_MASK) es posible seleccionar los distintos bits de la palabra de salida (OUT_WORD) y activar o desactivar los bits de salida (OUT1 a OUT16) mediante los valores de salida (OUT_VAL). Si un bit de la máscara configurable tiene el estado lógico "1", el valor OUT_VAL activa o desactiva el bit correspondiente. Si el estado lógico de un bit de la máscara configurable es "0", no cambia el bit respectivo. Todos los bits de la máscara configurable de todos los 16 pasos se inicializan con el estado lógico "1".

El bit de salida del parámetro OUT1 equivale al bit menos significativo de la palabra de salida (OUT_WORD). El bit de salida del parámetro OUT16 equivale al bit más significativo de la palabra de salida (OUT_WORD).

Al insertar la instrucción en el programa, el cuadro de diálogo "Opciones de llamada" se abre automáticamente; en él se puede determinar si los parámetros de bloque de la instrucción se depositan en un bloque de datos propio (instancia individual) o bien como variable local (multiinstancia) en la interfaz del bloque. Si crea un bloque de datos propio, lo encontrará en el árbol del proyecto, en la carpeta "Recursos de programa", en "Bloques de programa > Bloques de sistema". Encontrará más información al respecto en "Consulte también".

Parámetros

La tabla siguiente muestra los parámetros de la instrucción:

Parámetro

Declaración

Tipo de datos

Área de memoria

Descripción

RESET

Input

BOOL

I, Q, M, D, L

El estado lógico "1" indica una condición de desactivación.

JOG

Input

BOOL

I, Q, M, D, L

Si el estado lógico cambia de "0" a "1", la instrucción pasa al siguiente paso.

DRUM_EN

Input

BOOL

I, Q, M, D, L

El estado lógico "1" permite que el circuito secuencial sucesivo siga contando según el evento y los criterios de tiempo.

LST_STEP

Input

BYTE

I, Q, M, D, L

Número del último paso programado.

EVENT(i),

1 ≤ i ≤ 16

Input

BOOL

I, Q, M, D, L

Bit de evento (i);

El estado lógico inicial es "1".

OUT(j),

1 ≤ j ≤ 16

Output

BOOL

I, Q, M, D, L

Bit de salida (j)

Q

Output

BOOL

I, Q, M, D, L

El estado lógico "1" indica que ha transcurrido el tiempo del último paso.

OUT_WORD

Output

WORD

I, Q, M, D, L, P

Dirección de palabra en la que el circuito secuencial sucesivo escribe los valores de salida.

ERR_CODE

Output

WORD

I, Q, M, D, L, P

Información de error

JOG_HIS

Static

BOOL

I, Q, M, D, L

Bit de evolución del parámetro JOG

EOD

Static

BOOL

I, Q, M, D, L

El estado lógico "1" indica que ha transcurrido el tiempo del último paso.

DSP

Static

BYTE

I, Q, M, D, L, P

Paso predeterminado del circuito secuencial sucesivo

DSC

Static

BYTE

I, Q, M, D, L, P

Paso actual del circuito secuencial sucesivo

DCC

Static

DWORD

I, Q, M, D, L, P

Valor de contaje actual del circuito secuencial sucesivo

DTBP

Static

WORD

I, Q, M, D, L, P

Base de tiempo predeterminada del circuito secuencial sucesivo

PrevTime

Static

TIME

I, Q, M, D, L

Hora de sistema anterior

S_PRESET

Static

ARRAY[1..16] of WORD

I, Q, M, D, L

Valor de contaje predeterminado para cada paso [1 a 16]; 1 ciclo de reloj = 1 ms.

OUT_VAL

Static

ARRAY[1..16, 0..15] of BOOL

I, Q, M, D, L

Valores de salida para cada paso [1 a 16, 0 a 15].

S_MASK

Static

ARRAY[1..16, 0..15] of BOOL

I, Q, M, D, L

Máscara configurable para cada paso [1 a 16, 0 a 15]. Los estados lógicos iniciales son "1".

Encontrará más información sobre los tipos de datos válidos en "Consulte también".

Parámetro ERR_CODE

La tabla siguiente muestra el significado de los valores del parámetro ERR_CODE:

ERR_CODE*

Explicación

W#16#0000

Ningún error

W#16#000B

El valor del parámetro LST_STEP es menor que 1 o mayor que 16.

W#16#000C

El valor del parámetro DSC es menor que 1 o mayor que el valor del parámetro LST_STEP.

W#16#000D

El valor del parámetro DSP es menor que 1 o mayor que el valor de LST_STEP.

*En el editor de programas, los códigos de error se pueden representar como valores enteros o hexadecimales. Encontrará más información sobre el cambio de los formatos de visualización en "Consulte también".

Ejemplo

En el ejemplo siguiente, la instrucción pasa del paso 1 al paso 2. Los bits de salida (OUT1 a OUT16) y la palabra de salida (OUT_WORD) se activan según la máscara configurada para el paso 2 y los valores del parámetro OUT_VAL.

Nota

Los parámetros estáticos pueden inicializarse en el bloque de datos.

SCL Copia el código de programa siguiente en el portapapeles.

"DRUM_DB"(RESET := "Tag_Reset"

          JOG := "Tag_Input_Jog"

          DRUM_EN := "Tag_Input_DrumEN"

          LST_STEP := "Tag_Number_LastStep"

          EVENT1 := "MyTag_Event_1"

          EVENT2 := "MyTag_Event_2"

          EVENT3 := "MyTag_Event_3"

          EVENT4 := "MyTag_Event_4"

          EVENT5 := "MyTag_Event_5"

          EVENT6 := "MyTag_Event_6"

          EVENT7 := "MyTag_Event_7"

          EVENT8 := "MyTag_Event_8"

          EVENT9 := "MyTag_Event_9"

          EVENT10 := "MyTag_Event_10"

          EVENT11 := "MyTag_Event_11"

          EVENT12 := "MyTag_Event_12"

          EVENT13 := "MyTag_Event_13"

          EVENT14 := "MyTag_Event_14"

          EVENT15 := "MyTag_Event_15"

          EVENT16 := "MyTag_Event_16"

          OUT1 => "MyTag_Output_1"

          OUT2 => "MyTag_Output_2"

          OUT3 => "MyTag_Output_3"

          OUT4 => "MyTag_Output_4"

          OUT5 => "MyTag_Output_5"

          OUT6 => "MyTag_Output_6"

          OUT7 => "MyTag_Output_7"

          OUT8 => "MyTag_Output_8"

          OUT9 => "MyTag_Output_9"

          OUT10 => "MyTag_Output_10"

          OUT11 => "MyTag_Output_11"

          OUT12 => "MyTag_Output_12"

          OUT13 => "MyTag_Output_13"

          OUT14 => "MyTag_Output_14"

          OUT15 => "MyTag_Output_15"

          OUT16 => "MyTag_Output_16"

          Q => "Tag_Output_Q"

          OUT_WORD => "Tag_OutputWord"

          ERR_CODE => "Tag_ErrorCode");

Las tablas siguientes muestran el funcionamiento de la instrucción con valores concretos.

Antes de la ejecución

En este ejemplo se utilizan los siguientes valores para asignar valores a los parámetros de entrada:

Parámetro

Operando

Dirección

Valor

RESET

Tag_Reset

M0.0

FALSE

JOG

Tag_Input_JOG

M0.1

FALSE

DRUM_EN

Tag_Input_DrumEN

M0.2

TRUE

LST_STEP

Tag_Number_LastStep

MB1

B#16#08

EVENT2

MyTag_Event_2

M20.0

FALSE

EVENT4

MyTag_Event_4

M20.1

FALSE

EVENT6

MyTag_Event_6

M20.2

FALSE

EVENT8

MyTag_Event_8

M20.3

FALSE

EVENT10

MyTag_Event_10

M20.4

FALSE

EVENT12

MyTag_Event_12

M20.5

FALSE

EVENT14

MyTag_Event_14

M20.6

FALSE

EVENT16

MyTag_Event_16

M20.7

FALSE

Los siguientes valores se almacenan en el bloque de datos de instancia "DRUM_DB" de la instrucción:

Parámetro

Dirección

Valor

JOG_HIS

DBX12.0

FALSE

EOD

DBX12.1

FALSE

DSP

DBB13

W#16#0001

DSC

DBB14

W#16#0001

DCC

DBD16

DW#16#0000000A

DTBP

DBW20

W#16#0001

S_PRESET[1]

DBW26

W#16#0064

S_PRESET[2]

DBW28

W#16#00C8

OUT_VAL[1,0]

DBX58.0

TRUE

OUT_VAL[1,1]

DBX58.1

TRUE

OUT_VAL[1,2]

DBX58.2

TRUE

OUT_VAL[1,3]

DBX58.3

TRUE

OUT_VAL[1,4]

DBX58.4

TRUE

OUT_VAL[1,5]

DBX58.5

TRUE

OUT_VAL[1,6]

DBX58.6

TRUE

OUT_VAL[1,7]

DBX58.7

TRUE

OUT_VAL[1,8]

DBX59.0

TRUE

OUT_VAL[1,9]

DBX59.1

TRUE

OUT_VAL[1,10]

DBX59.2

TRUE

OUT_VAL[1,11]

DBX59.3

TRUE

OUT_VAL[1,12]

DBX59.4

TRUE

OUT_VAL[1,13]

DBX59.5

TRUE

OUT_VAL[1,14]

DBX59.6

TRUE

OUT_VAL[1,15]

DBX59.7

TRUE

OUT_VAL[2,0]

DBX60.0

FALSE

OUT_VAL[2,1]

DBX60.1

FALSE

OUT_VAL[2,2]

DBX60.2

FALSE

OUT_VAL[2,3]

DBX60.3

FALSE

OUT_VAL[2,4]

DBX60.4

FALSE

OUT_VAL[2,5]

DBX60.5

FALSE

OUT_VAL[2,6]

DBX60.6

FALSE

OUT_VAL[2,7]

DBX60.7

FALSE

OUT_VAL[2,8]

DBX61.0

FALSE

OUT_VAL[2,9]

DBX61.1

FALSE

OUT_VAL[2,10]

DBX61.2

FALSE

OUT_VAL[2,11]

DBX61.3

FALSE

OUT_VAL[2,12]

DBX61.4

FALSE

OUT_VAL[2,13]

DBX61.5

FALSE

OUT_VAL[2,14]

DBX61.6

FALSE

OUT_VAL[2,15]

DBX61.7

FALSE

S_MASK[2,0]

DBX92.0

FALSE

S_MASK[2,1]

DBX92.1

TRUE

S_MASK[2,2]

DBX92.2

TRUE

S_MASK[2,3]

DBX92.3

TRUE

S_MASK[2,4]

DBX92.4

TRUE

S_MASK[2,5]

DBX92.5

FALSE

S_MASK[2,6]

DBX92.6

TRUE

S_MASK[2,7]

DBX92.7

TRUE

S_MASK[2,8]

DBX93.0

FALSE

S_MASK[2,9]

DBX93.1

FALSE

S_MASK[2,10]

DBX93.2

TRUE

S_MASK[2,11]

DBX93.3

TRUE

S_MASK[2,12]

DBX93.4

TRUE

S_MASK[2,13]

DBX93.5

TRUE

S_MASK[2,14]

DBX93.6

FALSE

S_MASK[2,15]

DBX93.7

TRUE

Los parámetros de salida tienen los valores siguientes antes de ejecutarse la instrucción:

Parámetro

Operando

Dirección

Valor

Q

Tag_Output_Q

M6.0

FALSE

OUTWORD

Tag_OutputWord

MW8

W#16#FFFF

OUT1

MyTag_Output_1

M4.0

TRUE

OUT2

MyTag_Output_2

M4.1

TRUE

OUT3

MyTag_Output_3

M4.2

TRUE

OUT4

MyTag_Output_4

M4.3

TRUE

OUT5

MyTag_Output_5

M4.4

TRUE

OUT6

MyTag_Output_6

M4.5

TRUE

OUT7

MyTag_Output_7

M4.6

TRUE

OUT8

MyTag_Output_8

M4.7

TRUE

OUT9

MyTag_Output_9

M5.0

TRUE

OUT10

MyTag_Output_10

M5.1

TRUE

OUT11

MyTag_Output_11

M5.2

TRUE

OUT12

MyTag_Output_12

M5.3

TRUE

OUT13

MyTag_Output_13

M5.4

TRUE

OUT14

MyTag_Output_14

M5.5

TRUE

OUT15

MyTag_Output_15

M5.6

TRUE

OUT16

MyTag_Output_16

M5.7

TRUE

Después de la ejecución

Una vez ejecutada la instrucción, los valores siguientes se escriben en los parámetros de salida:

Parámetro

Operando

Dirección

Valor

OUT1

MyTag_Output_1

M4.0

TRUE

OUT2

MyTag_Output_2

M4.1

FALSE

OUT3

MyTag_Output_3

M4.2

FALSE

OUT4

MyTag_Output_4

M4.3

FALSE

OUT5

MyTag_Output_5

M4.4

FALSE

OUT6

MyTag_Output_6

M4.5

TRUE

OUT7

MyTag_Output_7

M4.6

FALSE

OUT8

MyTag_Output_8

M4.7

FALSE

OUT9

MyTag_Output_9

M5.0

TRUE

OUT10

MyTag_Output_10

M5.1

TRUE

OUT11

MyTag_Output_11

M5.2

FALSE

OUT12

MyTag_Output_12

M5.3

FALSE

OUT13

MyTag_Output_13

M5.4

FALSE

OUT14

MyTag_Output_14

M5.5

FALSE

OUT15

MyTag_Output_15

M5.6

TRUE

OUT16

MyTag_Output_16

M5.7

FALSE

Q

Tag_Output_Q

M6.0

FALSE

OUTWORD

Tag_OutputWord

MW8

W#16#4321

ERR_CODE

Tag_ErrorCode

MW10

W#16#0000

Los siguientes valores se modifican en el bloque de datos de instancia "DRUM_DB" de la instrucción después de su ejecución:

Parámetro

Dirección

Valor

JOG_HIS

DBX12.0

FALSE

EOD

DBX12.1

FALSE

DSC

DBB14

W#16#0002

DCC

DBD16

DW#16#000000C8