DRUM_X: 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_X: Materializar circuito secuencial sucesivo

Descripción

La instrucción "Materializar circuito secuencial sucesivo" permite materializar un circuito secuencial sucesivo con 16 pasos como máximo. El número del primer paso se define con el parámetro DSP. El número del último paso se predetermina con el parámetro LST_STEP.

En cada paso se escriben todos los 16 bits de salida OUT0 a OUT15 y el parámetro de salida OUT_WORD (que contiene los bits de salida). A un bit de salida se asigna bien sea el bit correspondiente del campo predefinido OUT_VAL, o bien el bit de salida del paso anterior. El valor que se asigne dependerá de la ocupación de los bits de máscara en el parámetro S_MASK.

Nota

El ajuste predeterminado de los bits de máscara es 0. Para modificar el ajuste actual de uno o varios bits de máscara, realice el cambio en el bloque de datos de instancia.

La instrucción "Materializar circuito secuencial sucesivo" pasa al siguiente paso cuando se produce un flanco de señal ascendente en el parámetro JOG. Si la instrucción ya se encuentra en el último paso y se produce un flanco ascendente en el parámetro JOG, se activan las variables Q y EOD. En este caso, el parámetro DCC se pone al valor 0. La instrucción permanece en el último paso hasta que el parámetro RESET se pone al valor "1".

Además, también se puede permitir la transición al paso siguiente en función del tiempo. Para ello se debe poner al valor "1" el parámetro DRUM_EN. La transición al paso siguiente tiene lugar si está activado el bit de evento (EVENTi) correspondiente al paso actual y si ha transcurrido el tiempo predeterminado para el paso actual. El tiempo necesario para un paso resulta de la multiplicación de la base de tiempo (DTBP) por el factor de tiempo válido para el paso actual (S_PRESET).

Nota

El tiempo de ejecución restante en el paso actual (DCC) se reduce únicamente si está activado el bit de evento correspondiente (EVENTi).

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".

Si, al llamar la instrucción, el parámetro RESET tiene el valor "1", el circuito secuencial sucesivo pasará al paso cuyo número se ha asignado al parámetro DSP.

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".

El circuito secuencial sucesivo también se puede conmutar en progresión en todo momento a través del valor del parámetro JOG.

En la primera llamada de la instrucción, el parámetro RESET se debe poner a 1.

Si el circuito secuencial se encuentra en el último paso y ha transcurrido el tiempo de ejecución predefinido para este paso, se activan los parámetros Q y EOD. La instrucción permanece en el último paso hasta que el parámetro RESET adopte el valor "1".

Esta instrucción se ejecuta solo en los estados operativos ARRANQUE y RUN.

El sistema operativo inicializa la instrucción "Materializar circuito secuencial sucesivo" cuando se efectúa un arranque en frío. La instrucción no se inicializa en caso de un rearranque completo (en caliente). Si la instrucción "Materializar circuito secuencial sucesivo" debe inicializarse tras un rearranque completo (en caliente), es preciso llamarla en el OB 100 con el valor "1" en el parámetro RESET.

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" desactiva el circuito secuencial. En la primera llamada de la instrucción, el parámetro RESET se debe poner a "1".

JOG

Input

BOOL

I, Q, M, D, L

Un flanco de señal ascendente (con respecto a la última llamada) provoca la transición al paso siguiente, siempre que el circuito secuencial no se encuentre aún en el último paso. La transición tiene lugar independientemente del valor asignado al parámetro DRUM_EN.

DRUM_EN

Input

BOOL

I, Q, M, D, L

Parámetro de control que determina si se puede realizar una transición al paso siguiente en función del tiempo. Si el valor es "1", es posible una transición en función del tiempo.

LST_STEP

Input

BYTE

I, Q, M, D, L

Número del último paso

Los valores admisibles son 1 a 16.

EVENTi,

1 ≤ i ≤ 16

Input

BOOL

I, Q, M, D, L

Bit de evento n.º i (pertenece al paso i)

OUTj,

0 ≤ j ≤ 15

Output

BOOL

I, Q, M, D, L

Bit de salida n.º j (idéntico al bit n.º j de OUT_WORD)

Q

Output

BOOL

I, Q, M, D, L

Parámetro de estado que indica si ha transcurrido el tiempo predefinido por el usuario para la ejecución del último paso.

OUT_WORD

Output

WORD

I, Q, M, D, L, P

Bits de salida resumidos en una variable

ERR_CODE

Output

WORD

I, Q, M, D, L, P

Información de error

JOG_HIS

Static

BOOL

I, Q, M, D, L

Irrelevante para el usuario (parámetro de entrada JOG de la llamada anterior)

EOD

Static

BOOL

I, Q, M, D, L

Idéntico al parámetro de salida Q

DSP

Static

BYTE

I, Q, M, D, L, P

Número del primer paso

Los valores admisibles son 1 a 16.

DSC

Static

BYTE

I, Q, M, D, L, P

Número del paso actual

DCC

Static

DWORD

I, Q, M, D, L, P

Tiempo de ejecución restante del paso actual, indicado en milisegundos (ms) (relevante solo si DRUM_EN = 1 y el bit de evento correspondiente = 1)

DTBP

Static

WORD

I, Q, M, D, L, P

Base de tiempo en milisegundos (ms) válida para todos los pasos

PREV_TIME

Static

DWORD

I, Q, M, D, L

(Irrelevante para el usuario: hora de sistema de la llamada anterior)

S_PRESET

Static

ARRAY of WORD

I, Q, M, D, L

Campo unidimensional con los factores de tiempo para cada paso.

Selección recomendada de índices: [1 a 16].

En este caso, S_PRESET [x] contiene el factor de tiempo del paso x.

OUT_VAL

Static

ARRAY of BOOL

I, Q, M, D, L

Campo bidimensional con los valores que deben emitirse en cada paso, a no ser que se hayan inhibido vía S_MASK.

Selección recomendada de índices: [1 a 16, 0 a 15]. En este caso, OUT_VAL [x, y] contiene el valor asignado al bit de salida OUTy en el paso x.

S_MASK

Static

ARRAY of BOOL

I, Q, M, D, L

Campo bidimensional con los bits de máscara para cada paso.

Selección recomendada de índices: [1 a 16, 0 a 15]. En este caso, S_MASK [x, y] contiene el bit de máscara para el valor "y"-ésimo que debe emitirse en el paso x.

Significado de los bits de máscara:

  • 0: el valor correspondiente del paso anterior se asigna al respectivo bit de salida

  • 1: el valor correspondiente de OUT_VAL se asigna al respectivo bit de salida.

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*
(W#16#...)

Explicación

0000

Ningún error

8081

Valor no admisible en el parámetro LST_STEP

8082

Valor no admisible en DSC

8083

Valor no admisible en DSP

8084

El producto DCC = DTBP * S_PRESET[DSC] excede el valor 2**31-1 (aprox. 24,86 días).

*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 (OUT0 a OUT15) 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"

          OUT0 => "MyTag_Output_0"

          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"

          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_Drum_EN

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_X_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

OUT0

MyTag_Output_0

M4.0

TRUE

OUT1

MyTag_Output_1

M4.1

TRUE

OUT2

MyTag_Output_2

M4.2

TRUE

OUT3

MyTag_Output_3

M4.3

TRUE

OUT4

MyTag_Output_4

M4.4

TRUE

OUT5

MyTag_Output_5

M4.5

TRUE

OUT6

MyTag_Output_6

M4.6

TRUE

OUT7

MyTag_Output_7

M4.7

TRUE

OUT8

MyTag_Output_8

M5.0

TRUE

OUT9

MyTag_Output_9

M5.1

TRUE

OUT10

MyTag_Output_10

M5.2

TRUE

OUT11

MyTag_Output_11

M5.3

TRUE

OUT12

MyTag_Output_12

M5.4

TRUE

OUT13

MyTag_Output_13

M5.5

TRUE

OUT14

MyTag_Output_14

M5.6

TRUE

OUT15

MyTag_Output_15

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

OUT0

MyTag_Output_0

M4.0

TRUE

OUT1

MyTag_Output_1

M4.1

FALSE

OUT2

MyTag_Output_2

M4.2

FALSE

OUT3

MyTag_Output_3

M4.3

FALSE

OUT4

MyTag_Output_4

M4.4

FALSE

OUT5

MyTag_Output_5

M4.5

TRUE

OUT6

MyTag_Output_6

M4.6

FALSE

OUT7

MyTag_Output_7

M4.7

FALSE

OUT8

MyTag_Output_8

M5.0

TRUE

OUT9

MyTag_Output_9

M5.1

TRUE

OUT10

MyTag_Output_10

M5.2

FALSE

OUT11

MyTag_Output_11

M5.3

FALSE

OUT12

MyTag_Output_12

M5.4

FALSE

OUT13

MyTag_Output_13

M5.5

FALSE

OUT14

MyTag_Output_14

M5.6

TRUE

OUT15

MyTag_Output_15

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 almacenan en el bloque de datos de instancia "DRUM_X_DB" de la instrucció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