0% encontró este documento útil (0 votos)
11 vistas6 páginas

Awl FC1

El documento describe un bloque de función (FC1) para un sistema SIMATIC, incluyendo detalles sobre su estructura, variables de entrada y salida, y segmentos de código. Se especifican tipos de datos, direcciones y comentarios para cada variable, así como la lógica de programación en segmentos. El bloque se utiliza para controlar y monitorear el estado de una unidad en un sistema automatizado.

Cargado por

fsainz1993
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas6 páginas

Awl FC1

El documento describe un bloque de función (FC1) para un sistema SIMATIC, incluyendo detalles sobre su estructura, variables de entrada y salida, y segmentos de código. Se especifican tipos de datos, direcciones y comentarios para cada variable, así como la lógica de programación en segmentos. El bloque se utiliza para controlar y monitorear el estado de una unidad en un sistema automatizado.

Cargado por

fsainz1993
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SIMATIC Arca_31052025_RED_OK\ 24/07/2025 21

SIMATIC 315\CPU 315-2 PN/DP\...\FC1 - <offline>

FC1 - <offline>
"STC_EDD1"
Nombre: EDD1 Familia: STC
Autor: SITEC Versión: 2.0
Versión del bloque: 2
Hora y fecha Código: 03/03/2006 22:09:26
Interface: 04/08/2005 15:41:47
Longitud (bloque / código / datos): 01078 00870 00020

Nombre Tipo de datos Dirección Comentario


IN 0.0
Numero_Disp Int 0.0
Stop Bool 2.0
Seg Bool 2.1
OUT 0.0
IN_OUT 0.0
TEMP 0.0
Uxxx_BMS Bool 0.0 Bit Master Status de la Unidad
Uxxx_Pause_DD Bool 0.1 Pausa por DD de la Unidad
Uxxx_Pause Bool 0.2 Unidad en pausa
Uxxx_ACK Bool 0.3 Reconocimiento en Unidad
Uxxx_Reset Bool 0.4 Restart Unidad
ALM Bool 0.5 Alarma de dispositivo
ALM_MANTO Bool 0.6 Alarma de mantenimiento
NUNIT Int 2.0 Unidad del dispositivo
INDICE DWord 4.0
PUNTERO_DB_EDD1 DWord 8.0 Puntero a DB1 - EDD1
PUNTERO_DB_UNIT DWord 12.0 Puntero a DB90 - Unidad
PUNTERO_DB_ALM_EDD1 DWord 16.0 Puntero a DB81 - Alarmas EDD1
RETURN 0.0
RET_VAL 0.0

Bloque: FC1 RUTINA EDD1

Segm.: 1 Inicialización Indice

L 0
T #INDICE #INDICE

L #Numero_Disp #Numero_Disp
L 0
<=I
SPB fin

L #Numero_Disp #Numero_Disp
L 1000
>I
SPB fin

Página
SIMATIC Arca_31052025_RED_OK\ 24/07/2025 21
SIMATIC 315\CPU 315-2 PN/DP\...\FC1 - <offline>

Segm.: 2 Cálculo puntero

PUNT: L #INDICE #INDICE


L P#26.0
*D
T #PUNTERO_DB_EDD1 #PUNTERO_DB_EDD1 -- Puntero a DB1
- EDD1
LAR1
AUF "EDD1" DB1 -- Familia Dispo
sitivos 1

L DBW [AR1,P#24.0]
T #NUNIT #NUNIT -- Unidad del di
spositivo

L P#26.0
*D
T #PUNTERO_DB_UNIT #PUNTERO_DB_UNIT -- Puntero a DB9
0 - Unidad
LAR1
AUF "BWW_UNITS" DB90
U DBX [AR1,P#0.2] //BMS
= #Uxxx_BMS #Uxxx_BMS -- Bit Master St
atus de la Unidad
U DBX [AR1,P#2.3] //PAU_R
= #Uxxx_Pause #Uxxx_Pause -- Unidad en pau
sa
U DBX [AR1,P#18.0] //PAU_DD
= #Uxxx_Pause_DD #Uxxx_Pause_DD -- Pausa por DD
de la Unidad
U DBX [AR1,P#1.0] //RES_R
= #Uxxx_Reset #Uxxx_Reset -- Restart Unida
d
U DBX [AR1,P#1.5] //ACK_R
= #Uxxx_ACK #Uxxx_ACK -- Reconocimient
o en Unidad

L #PUNTERO_DB_EDD1 #PUNTERO_DB_EDD1 -- Puntero a DB1


- EDD1
LAR1
AUF "EDD1" DB1 -- Familia Dispo
sitivos 1

Segm.: 3

UN DBX [AR1,P#2.5] //EDD1[EDD_IND.INDICE1].SW2.5


UN DBX [AR1,P#0.2] //EDD1[EDD_IND.INDICE1].SW1.2
O
U DBX [AR1,P#2.5] //EDD1[EDD_IND.INDICE1].SW2.5
UN #Uxxx_Pause #Uxxx_Pause -- Unidad en pau
sa
UN DBX [AR1,P#0.2] //EDD1[EDD_IND.INDICE1].SW1.2
= DBX [AR1,P#2.4] //EDD1[EDD_IND.INDICE1].SW2.4

Segm.: 4 TIMER ON DELAY

U DBX [AR1,P#8.6] //EDD1[EDD_IND.INDICE1].HAB_DELAY_ON


U DBX [AR1,P#2.4] //EDD1[EDD_IND.INDICE1].SW2.4
SPBN RES1
U #Seg #Seg
SPB INC1
SPA FIN1
RES1: L 0
SPA MOV1
INC1: U DBX [AR1,P#10.2] //Timer Delay ON DONE
SPB FIN1
L DBW [AR1,P#16.0] //TTONDD1[EDD_IND.INDICE1]
L 1
+I
MOV1: T DBW [AR1,P#16.0] //TTONDD1[EDD_IND.INDICE1]

FIN1: L DBW [AR1,P#16.0] //TTONDD1[EDD_IND.INDICE1]


L DBW [AR1,P#12.0] //SP_DELAY_ON
>I

Página
SIMATIC Arca_31052025_RED_OK\ 24/07/2025 21
SIMATIC 315\CPU 315-2 PN/DP\...\FC1 - <offline>

= DBX [AR1,P#10.2] //Timer Delay ON DONE

Segm.: 5

U DBX [AR1,P#8.6] //EDD1[EDD_IND.INDICE1].HAB_DELAY_ON


U DBX [AR1,P#10.2] //Timer Delay ON DONE
O
UN DBX [AR1,P#8.6] //EDD1[EDD_IND.INDICE1].HAB_DELAY_ON
U DBX [AR1,P#2.4] //EDD1[EDD_IND.INDICE1].SW2.4
= DBX [AR1,P#9.0] //EDD1[EDD_IND.INDICE1].DN_DELAY_ON

Segm.: 6 TIMER OFF DELAY

U DBX [AR1,P#8.7] //EDD1[EDD_IND.INDICE1].HAB_DELAY_OFF


UN DBX [AR1,P#2.4] //EDD1[EDD_IND.INDICE1].SW2.4
SPBN RES2
U #Seg #Seg
SPB INC2
SPA FIN2
RES2: L 0
SPA MOV2
INC2: U DBX [AR1,P#10.3] //Timer Delay OFF DONE
SPB FIN2
L DBW [AR1,P#18.0] //TTOFDD1[EDD_IND.INDICE1]
L 1
+I
MOV2: T DBW [AR1,P#18.0] //TTOFDD1[EDD_IND.INDICE1]

FIN2: L DBW [AR1,P#18.0] //TTOFDD1[EDD_IND.INDICE1]


L DBW [AR1,P#14.0] //SP_DELAY_OFF
>=I
= DBX [AR1,P#10.3] //Timer Delay OFF DONE

Segm.: 7

U DBX [AR1,P#8.7] //EDD1[EDD_IND.INDICE1].HAB_DELAY_OFF


UN DBX [AR1,P#2.4] //EDD1[EDD_IND.INDICE1].SW2.4
UN DBX [AR1,P#10.3] //Timer Delay OFF DONE
= DBX [AR1,P#9.1] //EDD1[EDD_IND.INDICE1].DN_DELAY_OFF

Segm.: 8 TIMER ON DELAY PARA ALARMAS DE APERTURAS DE VALVULAS

O DBX [AR1,P#2.6] //EDD1[EDD_IND.INDICE1].SW2.6


O DBX [AR1,P#2.7] //EDD1[EDD_IND.INDICE1].SW2.7
SPBN RES3
U #Seg #Seg
SPB INC3
SPA FIN3
RES3: L 0
SPA MOV3
INC3: U DBX [AR1,P#10.5] //Timer Alrm DONE
SPB FIN3
L DBW [AR1,P#22.0] //TALMDD1[EDD_IND.INDICE1]
L 1
+I
MOV3: T DBW [AR1,P#22.0] //TALMDD1[EDD_IND.INDICE1]

FIN3: L DBW [AR1,P#22.0] //TALMDD1[EDD_IND.INDICE1]


L DBW [AR1,P#20.0] //SP_ALM
>I
U DBX [AR1,P#3.1] // EN_ALM
= DBX [AR1,P#10.5] //Timer Alrm DONE

Página
SIMATIC Arca_31052025_RED_OK\ 24/07/2025 21
SIMATIC 315\CPU 315-2 PN/DP\...\FC1 - <offline>

Segm.: 9

U DBX [AR1,P#10.5] //Timer Alrm DONE


= DBX [AR1,P#9.4] //EDD1[EDD_IND.INDICE1].DN_ALM
= #ALM #ALM -- Alarma de dis
positivo

Segm.: 10

U(
U DBX [AR1,P#1.1] //EDD1[EDD_IND.INDICE1].SW1.9
U(
O DBX [AR1,P#9.0] //EDD1[EDD_IND.INDICE1].DN_DELAY_ON
O DBX [AR1,P#9.1] //EDD1[EDD_IND.INDICE1].DN_DELAY_OFF
)
O
UN DBX [AR1,P#1.1] //EDD1[EDD_IND.INDICE1].SW1.9
U DBX [AR1,P#0.1] //EDD1[EDD_IND.INDICE1].SW1.1
)
U DBX [AR1,P#1.3] //EDD1[EDD_IND.INDICE1].SW1.11
UN DBX [AR1,P#1.4] //EDD1[EDD_IND.INDICE1].SW1.12
= DBX [AR1,P#1.2] //EDD1[EDD_IND.INDICE1].SW1.10

Segm.: 11

U DBX [AR1,P#1.1] //EDD1[EDD_IND.INDICE1].SW1.9


U DBX [AR1,P#1.2] //EDD1[EDD_IND.INDICE1].SW1.10
S DBX [AR1,P#0.1] //EDD1[EDD_IND.INDICE1].SW1.1

U DBX [AR1,P#1.1] //EDD1[EDD_IND.INDICE1].SW1.9


UN DBX [AR1,P#1.2] //EDD1[EDD_IND.INDICE1].SW1.10
R DBX [AR1,P#0.1] //EDD1[EDD_IND.INDICE1].SW1.1

Segm.: 12 AUTOMATICO - MANUAL

O DBX [AR1,P#3.2] //EDD1[EDD_IND.INDICE1].SW2.10


O DBX [AR1,P#3.3] //EDD1[EDD_IND.INDICE1].SW2.11
S DBX [AR1,P#1.1] //EDD1[EDD_IND.INDICE1].SW1.9

UN DBX [AR1,P#3.2] //EDD1[EDD_IND.INDICE1].SW2.10


UN DBX [AR1,P#3.3] //EDD1[EDD_IND.INDICE1].SW2.11
R DBX [AR1,P#1.1] //EDD1[EDD_IND.INDICE1].SW1.9

U DBX [AR1,P#3.3] //EDD1[EDD_IND.INDICE1].SW2.11


S DBX [AR1,P#3.2] //EDD1[EDD_IND.INDICE1].SW2.10

Segm.: 13

U(
UN DBX [AR1,P#3.0] //EDD1[EDD_IND.INDICE1].SW2.8
U DBX [AR1,P#1.2] //EDD1[EDD_IND.INDICE1].SW1.10
O
U DBX [AR1,P#3.0] //EDD1[EDD_IND.INDICE1].SW2.8
UN DBX [AR1,P#1.2] //EDD1[EDD_IND.INDICE1].SW1.10
)
UN #Stop #Stop
= DBX [AR1,P#8.0] //EDD1[EDD_IND.INDICE1].OUT
= DBX [AR1,P#0.0] //EDD1[EDD_IND.INDICE1].SW1.0

Segm.: 14 INDICACION DE RETRO DE POSICION CERRADO

UN DBX [AR1,P#1.5] //Simular


U DBX [AR1,P#8.1] //EDD1[EDD_IND.INDICE1].INCL
O
U DBX [AR1,P#1.5] //Simular
UN DBX [AR1,P#0.0] //EDD1[EDD_IND.INDICE1].SW1.0
= DBX [AR1,P#0.5] //EDD1[EDD_IND.INDICE1].SW1.5

Página
SIMATIC Arca_31052025_RED_OK\ 24/07/2025 21
SIMATIC 315\CPU 315-2 PN/DP\...\FC1 - <offline>

Segm.: 15 INDICACION DE RETRO DE POSICION ABIERTA

UN DBX [AR1,P#1.5] //Simular


U DBX [AR1,P#8.2] //EDD1[EDD_IND.INDICE1].INOP
O
U DBX [AR1,P#1.5] //Simular
U DBX [AR1,P#0.0] //EDD1[EDD_IND.INDICE1].SW1.0
= DBX [AR1,P#0.4] //EDD1[EDD_IND.INDICE1].SW1.4

Segm.: 16

O #Uxxx_BMS #Uxxx_BMS -- Bit Master St


atus de la Unidad
ON DBX [AR1,P#3.4] //HAB_MAN
S DBX [AR1,P#3.3] //MASTER

U DBX [AR1,P#3.4] //HAB_MAN


UN #Uxxx_BMS #Uxxx_BMS -- Bit Master St
atus de la Unidad
R DBX [AR1,P#3.3] //MASTER

Segm.: 17

U DBX [AR1,P#10.5] //EDD1[EDD_IND.INDICE1].DN_ALM


U DBX [AR1,P#2.6] //EDD1[EDD_IND.INDICE1].SW2.6
= DBX [AR1,P#0.6] //EDD1[EDD_IND.INDICE1].SW1.6

U DBX [AR1,P#10.5] //EDD1[EDD_IND.INDICE1].DN_ALM


U DBX [AR1,P#2.7] //EDD1[EDD_IND.INDICE1].SW2.7
= DBX [AR1,P#0.7] //EDD1[EDD_IND.INDICE1].SW1.7

Segm.: 18

U DBX [AR1,P#3.1]
U(
U DBX [AR1,P#0.0]
UN DBX [AR1,P#0.4]
O
U DBX [AR1,P#0.0]
U DBX [AR1,P#0.4]
U DBX [AR1,P#0.5]
)
= DBX [AR1,P#2.6]

U DBX [AR1,P#3.1]
U(
UN DBX [AR1,P#0.0]
UN DBX [AR1,P#0.5]
O
UN DBX [AR1,P#0.0]
U DBX [AR1,P#0.4]
U DBX [AR1,P#0.5]
)
= DBX [AR1,P#2.7]

Segm.: 19

O #Uxxx_Reset #Uxxx_Reset -- Restart Unidad


O #Uxxx_ACK #Uxxx_ACK -- Reconocimiento en Unidad
R #Uxxx_Pause_DD #Uxxx_Pause_DD -- Pausa por DD de la Unidad

Página
SIMATIC Arca_31052025_RED_OK\ 24/07/2025 21
SIMATIC 315\CPU 315-2 PN/DP\...\FC1 - <offline>

Segm.: 20

UN #Stop #Stop
UN DBX [AR1,P#1.0]
U DBX [AR1,P#8.5]
U(
O DBX [AR1,P#0.6]
O DBX [AR1,P#0.7]
)
S #Uxxx_Pause_DD #Uxxx_Pause_DD -- Pausa por DD de la Unidad

Segm.: 21

U DBX [AR1,P#0.0]
FP DBX [AR1,P#10.1]
SPBNB NOT1
L DBW [AR1,P#6.0]
L 1
+I
T DBW [AR1,P#6.0]
NOT1: NOP 0

Segm.: 22

L DBW [AR1,P#6.0]
L DBW [AR1,P#4.0]
>=I
= DBX [AR1,P#9.5]
= #ALM_MANTO #ALM_MANTO -- Alarma de mantenimiento

Segm.: 23

L #PUNTERO_DB_UNIT #PUNTERO_DB_UNIT -- Puntero a DB9


0 - Unidad
LAR1

AUF "BWW_UNITS" DB90

U #Uxxx_Pause_DD //PAU_DD #Uxxx_Pause_DD -- Pausa por DD


de la Unidad
= DBX [AR1,P#18.0]

Segm.: 24 CALCULO PUNTERO A DB ALARMA EDD1

L #INDICE #INDICE
L P#0.1
*D
T #PUNTERO_DB_ALM_EDD1 #PUNTERO_DB_ALM_EDD1 -- Puntero a DB81 - Alarmas EDD1
LAR1

AUF "ALM_EDD1" DB81

U #ALM #ALM -- Alarma de dispositivo


= DBX [AR1,P#0.0]
U #ALM_MANTO #ALM_MANTO -- Alarma de mantenimiento
= DBX [AR1,P#14.0]

Segm.: 25 Incremento Indice

L #INDICE #INDICE
L 1
+D
T #INDICE #INDICE
L #Numero_Disp #Numero_Disp
<I
SPB PUNT
fin: BE

Página

También podría gustarte