Vous êtes sur la page 1sur 922

Dispatch - Ladder Diagram

TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

Page 1
22/12/2015 08,36,49
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

JSR
Jump To Subroutine
Routine Name Arranque

JSR
Jump To Subroutine
Routine Name Condiciones_Auto_PID

JSR
Jump To Subroutine
Routine Name Niveles_de_Tanques

JSR
Jump To Subroutine
Routine Name Densidades

(End)

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

Page 1
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Control de HWD Automtico

BTN_HMI_HWD

CTRL_Temp_HWD

0
PIDE_TT310_V360.ProgOper

PIDE_TT310_V360.Auto

Flags_GNRL.0
ONS

Single Speed Motor


Program Command to
Start Motor
P_Motor_M700.PCmd_Start
L
Solenoid Operated
Valve Program
Command to Open
Valve
P_ValveSO_V370.PCmd_Open
L

BTN_HMI_HWD

0(XIC) 1(XIO)

CTRL_Temp_HWD

*0(OTE)

Flags_GNRL.0

*0(ONS)

P_Motor_M700.PCmd_St *0(OTL)
art
P_ValveSO_V370.PCmd *0(OTL)
_Open
PIDE_TT310_V360.Auto 0(XIC)
PIDE_TT310_V360.Prog 0(XIC)
Oper

BTN_HMI_HWD
/

Flags_GNRL.1
ONS

Paro_Emergencia
/

Single Speed Motor


Program Command to
Stop Motor
P_Motor_M700.PCmd_Stop
L
Solenoid Operated
Valve Program
Command to Close
Valve
P_ValveSO_V370.PCmd_Close
L
Flags_GNRL.12
U

BTN_HMI_HWD

0(XIC) 1(XIO)

Flags_GNRL.1

*1(ONS)

Flags_GNRL.12

*1(OTU)

P_Motor_M700.PCmd_St *1(OTL)
op
P_ValveSO_V370.PCmd *1(OTL)
_Close
Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

Bomba_Torre_Running
2

Bomba_Torre_Running

2(XIC) 3(XIO)

Flags_GNRL.22

*2(ONS)

Page 2
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Flags_GNRL.22
ONS

Solenoid Operated
Valve Program
Command to Open
Valve
P_ValveSO_300.PCmd_Open
L

Flags_GNRL.23
ONS

Solenoid Operated
Valve Program
Command to Close
Valve
P_ValveSO_300.PCmd_Close
L

P_ValveSO_300.PCmd_ *2(OTL)
Open

Bomba_Torre_Running
/

Bomba_Torre_Running

2(XIC) 3(XIO)

Flags_GNRL.23

*3(ONS)

P_ValveSO_300.PCmd_ *3(OTL)
Close

Control Automatico PID Temperatura de Enfriador


BTN_HMI_Enfriador

CTRL_Temp_Enfriador

Flags_GNRL.7
ONS

Single Speed Motor


Program Command to
Start Motor
P_Motor_Agua_Hielo.PCmd_Start
L
Solenoid Operated
Valve Program
Command to Open
Valve
P_ValveSO_310.PCmd_Open
L

BTN_HMI_Enfriador

4(XIC) 5(XIO)

CTRL_Temp_Enfriador

*4(OTE)

Flags_GNRL.7

*4(ONS)

P_Motor_Agua_Hielo.PC *4(OTL)
md_Start
P_ValveSO_310.PCmd_ *4(OTL)
Open

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

BTN_HMI_Enfriador
/

Page 3
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Flags_GNRL.8
ONS

Single Speed Motor


Program Command to
Stop Motor
P_Motor_Agua_Hielo.PCmd_Stop
L
Solenoid Operated
Valve Program
Command to Close
Valve
P_ValveSO_310.PCmd_Close
L

Paro_Emergencia
/

Flags_GNRL.11
U

BTN_HMI_Enfriador

4(XIC) 5(XIO)

Flags_GNRL.8

*5(ONS)

Flags_GNRL.11

*5(OTU)

P_Motor_Agua_Hielo.PC *5(OTL)
md_Stop
P_ValveSO_310.PCmd_ *5(OTL)
Close
Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

BTN CIP no permite que se abrn las Vlvulas V300 y V310


BTN_HMI_CIP

CIP_ON

BTN_HMI_CIP

6(XIC)

CIP_ON

*6(OTE)

BTN_HMI_Dosificar
7

BTN_HMI_Dosificar

7(XIC) 8(XIC) 10(XIC)

Stop_Dosificador_2

*7(OTU) 8(XIO) *11(OTL) 12(XIC) *13(OTU)

Stop_Dosificador_2
U

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

BTN_HMI_Dosificar

BTN_HMI_Dosificar_Tk1

BTN_HMI_Dosificar_Tk2

Page 4
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Discrete Input
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
P_DIn_LS100.Sts
/

Stop_Dosificador_2
/

Discrete Input
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
P_DIn_LS200.Sts
/

CTRL_Dosificador
L
Flags_GNRL.2
ONS

BTN_HMI_Dosificar

TOT_FT100.ProgResetReq
L

7(XIC) 8(XIC) 10(XIC)

BTN_HMI_Dosificar_Tk1 8(XIC) 11(XIC) 11(XIO)


BTN_HMI_Dosificar_Tk2 8(XIC) 11(XIC) 11(XIO)
CTRL_Dosificador

*8(OTL) 11(XIC) *11(OTU) 12(XIC) *13(OTU)

Flags_GNRL.2

*8(ONS)

P_DIn_LS100.Sts

8(XIO) 11(XIC)

P_DIn_LS200.Sts

8(XIO) 11(XIC)

Stop_Dosificador_2

*7(OTU) 8(XIO) *11(OTL) 12(XIC) *13(OTU)

TOT_FT100.ProgResetR *8(OTL) *9(OTU)


eq

TOT_FT100.ProgResetDone
9

TOT_FT100.ProgResetReq
U

TOT_FT100.ProgResetD 9(XIC) 10(XIC)


one
TOT_FT100.ProgResetR *8(OTL) *9(OTU)
eq

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

Page 5
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Se inicia la dosificacion de leche o agua

BTN_HMI_Dosificar

TOT_FT100.ProgResetDone

10

Flags_GNRL.9
ONS

TOT_Start
L
Solenoid Operated
Valve Program
Command to Open
Valve
P_ValveSO_V350.PCmd_Open
L

BTN_HMI_Dosificar

7(XIC) 8(XIC) 10(XIC)

Flags_GNRL.9

*10(ONS)

P_ValveSO_V350.PCmd *10(OTL)
_Open
TOT_FT100.ProgResetD 9(XIC) 10(XIC)
one
TOT_Start

*10(OTL) *12(OTU)

Stop_Dosificador

Stop_Dosificador_2
L

11

CTRL_Dosificador

CTRL_Dosificador

BTN_HMI_Dosificar_Tk1

Discrete Input
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
P_DIn_LS100.Sts

BTN_HMI_Dosificar_Tk2

Discrete Input
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
P_DIn_LS200.Sts

BTN_HMI_Dosificar_Tk1
/

BTN_HMI_Dosificar_Tk2
/

CTRL_Dosificador
U

Paro_Emergencia
/
CTRL_Dosificador

BTN_HMI_Dosificar_Tk1 8(XIC) 11(XIO) 11(XIC)


BTN_HMI_Dosificar_Tk2 8(XIC) 11(XIO) 11(XIC)
CTRL_Dosificador

*8(OTL) *11(OTU) 11(XIC) 12(XIC) *13(OTU)

P_DIn_LS100.Sts

8(XIO) 11(XIC)

P_DIn_LS200.Sts

8(XIO) 11(XIC)

Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

Stop_Dosificador

11(XIC) *13(OTU)

Stop_Dosificador_2

*7(OTU) 8(XIO) *11(OTL) 12(XIC) *13(OTU)

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

CTRL_Dosificador

Page 6
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

TOT_FT100.TargetFlag

12
Stop_Dosificador_2

Flags_GNRL.3
ONS
Analog Input Analog
Value (after
Substitute PV, if
used)
LES
Less Than (A<B)
Source A P_AIn_FT100.Val
0.0
Source B
30

CTRL_Dosificador

*8(OTL) *11(OTU) 11(XIC) 12(XIC) *13(OTU)

Flags_GNRL.3

*12(ONS)

Flags_GNRL.4

*12(ONS)

P_AIn_FT100.Val

12(LES)

Solenoid Operated
Valve Program
Command to Close
Valve
P_ValveSO_V350.PCmd_Close
L

Flags_GNRL.4
ONS

TOT_Start
U

TON
Timer On Delay
Timer TON_Reset_TOT
Preset
300
Accum
0

EN
DN

P_ValveSO_V350.PCmd *12(OTL)
_Close
Stop_Dosificador_2

*7(OTU) 8(XIO) *11(OTL) 12(XIC) *13(OTU)

TON_Reset_TOT

*12(TON)

TOT_FT100.TargetFlag

12(XIC)

TOT_Start

*10(OTL) *12(OTU)

TON_Reset_TOT.DN
13

Flags_GNRL.10
ONS

CTRL_Dosificador
U
Stop_Dosificador_2
U
Stop_Dosificador
U

CTRL_Dosificador

*8(OTL) *11(OTU) 11(XIC) 12(XIC) *13(OTU)

Flags_GNRL.10

*13(ONS)

Stop_Dosificador

11(XIC) *13(OTU)

Stop_Dosificador_2

*7(OTU) 8(XIO) *11(OTL) 12(XIC) *13(OTU)

TON_Reset_TOT.DN

13(XIC)

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

Page 7
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Se Arranca el Almix y La Bomba M1

BTN_HMI_Almix

CTRL_Almix

14

Flags_GNRL.5
ONS

BTN_HMI_Almix

14(XIC) 17(XIO)

CTRL_Almix

*14(OTE) 15(XIC) 16(XIC)

Flags_GNRL.5

*14(ONS)

Single Speed Motor


Program Command to
Start Motor
P_Motor_M100.PCmd_Start
L

P_Motor_M100.PCmd_St *14(OTL)
art

CTRL_Almix

TON
Timer On Delay
Timer TON_CTRL_Almix
Preset
5000
Accum
0

15

CTRL_Almix

*14(OTE) 15(XIC) 16(XIC)

TON_CTRL_Almix

*15(TON)

CTRL_Almix

TON_CTRL_Almix.DN

16

CTRL_Almix

*14(OTE) 15(XIC) 16(XIC)

Flags_GNRL.13

*16(ONS)

Flags_GNRL.13
ONS

EN
DN

Single Speed Motor


Program Command to
Start Motor
P_Motor_Almix.PCmd_Start
L

P_Motor_Almix.PCmd_St *16(OTL)
art
TON_CTRL_Almix.DN

16(XIC)

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

BTN_HMI_Almix
/

17

Page 8
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Single Speed Motor
Program Command to
Stop Motor
P_Motor_Almix.PCmd_Stop
L

Flags_GNRL.6
ONS

Single Speed Motor


Program Command to
Stop Motor
P_Motor_M100.PCmd_Stop
L

Paro_Emergencia
/

BTN_HMI_Almix

14(XIC) 17(XIO)

Flags_GNRL.6

*17(ONS)

P_Motor_Almix.PCmd_St *17(OTL)
op
P_Motor_M100.PCmd_St *17(OTL)
op
Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

Control de Bomba de Transferencia


BTN_HMI_Transferencia

CTRL_Transferencia

18

Flags_GNRL.14
ONS

Single Speed Motor


Program Command to
Start Motor
P_Motor_M300.PCmd_Start
L

BTN_HMI_Transferencia 18(XIC) 19(XIO)


CTRL_Transferencia

*18(OTE)

Flags_GNRL.14

*18(ONS)

P_Motor_M300.PCmd_St *18(OTL)
art

19

BTN_HMI_Transferencia
/

Flags_GNRL.15
ONS

Single Speed Motor


Program Command to
Stop Motor
P_Motor_M300.PCmd_Stop
L

Paro_Emergencia
/

BTN_HMI_Transferencia 18(XIC) 19(XIO)


Flags_GNRL.15

*19(ONS)

P_Motor_M300.PCmd_St *19(OTL)
op
Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

Page 9
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Control de Agitador Tk 1

BTN_HMI_Agit_Tk1
20

BTN_HMI_Agit_Tk1

20(XIC) 21(XIO)

Flags_GNRL.16

*20(ONS)

Single Speed Motor


Program Command to
Start Motor
P_Motor_M500.PCmd_Start
L

Flags_GNRL.16
ONS

P_Motor_M500.PCmd_St *20(OTL)
art

BTN_HMI_Agit_Tk1
/

21

Single Speed Motor


Program Command to
Stop Motor
P_Motor_M500.PCmd_Stop
L

Flags_GNRL.17
ONS

Paro_Emergencia
/

BTN_HMI_Agit_Tk1

20(XIC) 21(XIO)

Flags_GNRL.17

*21(ONS)

P_Motor_M500.PCmd_St *21(OTL)
op
Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

Control de Agitador Tk 2

BTN_HMI_Agit_Tk2
22

BTN_HMI_Agit_Tk2

22(XIC) 23(XIO)

Flags_GNRL.18

*22(ONS)

Flags_GNRL.18
ONS

Single Speed Motor


Program Command to
Start Motor
P_Motor_M600.PCmd_Start
L

P_Motor_M600.PCmd_St *22(OTL)
art

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27

BTN_HMI_Agit_Tk2
/

23

Page 10
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Single Speed Motor
Program Command to
Stop Motor
P_Motor_M600.PCmd_Stop
L

Flags_GNRL.19
ONS

Paro_Emergencia
/

BTN_HMI_Agit_Tk2

22(XIC) 23(XIO)

Flags_GNRL.19

*23(ONS)

P_Motor_M600.PCmd_St *23(OTL)
op
Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

Control de Bomba de CIP

BTN_HMI_Bomba_CIP
24

BTN_HMI_Bomba_CIP

24(XIC) 25(XIO)

Flags_GNRL.20

*24(ONS)

Flags_GNRL.20
ONS

Single Speed Motor


Program Command to
Start Motor
P_Motor_M400.PCmd_Start
L

P_Motor_M400.PCmd_St *24(OTL)
art

BTN_HMI_Bomba_CIP
/

25

Flags_GNRL.21
ONS

Single Speed Motor


Program Command to
Stop Motor
P_Motor_M400.PCmd_Stop
L

Paro_Emergencia
/

BTN_HMI_Bomba_CIP

24(XIC) 25(XIO)

Flags_GNRL.21

*25(ONS)

P_Motor_M400.PCmd_St *25(OTL)
op
Paro_Emergencia

26

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

Paro_Emergencia
/

Alm_Paro_Emergencia

RSLogix 5000

Arranque - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 27
Alm_Paro_Emergencia

*26(OTE)

Paro_Emergencia

1(XIO) 5(XIO) 11(XIO) 17(XIO) 19(XIO) 21(XIO) 23(XIO) 25(XIO) 26(XIO)

Page 11
22/12/2015 08,40,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

Condiciones_Auto_PID - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4
CTRL_Temp_Enfriador

Page 1
22/12/2015 08,44,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Flags_GNRL.11
/

PIDE_TT300_V320.OperAutoReq
L
TON
Timer On Delay
Timer TON_CTRL_TempEnfriador
Preset
3000
Accum
0

CTRL_Temp_Enfriador

0(XIC)

Flags_GNRL.11

0(XIO) *1(OTL)

EN
DN

PIDE_TT300_V320.Oper *0(OTL)
AutoReq
TON_CTRL_TempEnfriad*0(TON)
or

PIDE_TT300_V320.OperProgReq
L

LIM
Limit Test (CIRC)
Low Limit

1500

Test TON_CTRL_TempEnfriador.ACC
0
High Limit
1800

Flags_GNRL.11

Flags_GNRL.11
L

0(XIO) *1(OTL)

PIDE_TT300_V320.Oper *1(OTL)
ProgReq
TON_CTRL_TempEnfriad1(LIM)
or.ACC

CTRL_Temp_HWD
2

Flags_GNRL.12
/

PIDE_TT310_V360.OperAutoReq
L
TON
Timer On Delay
Timer TON_CTRL_TempHWD
Preset
3000
Accum
0

CTRL_Temp_HWD

2(XIC)

Flags_GNRL.12

2(XIO) *3(OTL)

EN
DN

PIDE_TT310_V360.Oper *2(OTL)
AutoReq
TON_CTRL_TempHWD *2(TON)

RSLogix 5000

Condiciones_Auto_PID - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

LIM
Limit Test (CIRC)
Low Limit

Page 2
22/12/2015 08,44,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
PIDE_TT310_V360.OperProgReq
L
1500

Test TON_CTRL_TempHWD.ACC
0
High Limit
1800

Flags_GNRL.12

Flags_GNRL.12
L

2(XIO) *3(OTL)

PIDE_TT310_V360.Oper *3(OTL)
ProgReq
TON_CTRL_TempHWD. 3(LIM)
ACC

(End)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 1
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mueve los valores de Nombre y Densidad segun este seleccionado TK1


COP
Equal
Copy File
Source A Producto_Tk1
Source Producto1.Producto
Dest Nombre_Producto_Tk1
14
Length
30
Source B
1
EQU

MOV
Move
Source Producto1.Densidad
1.0

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto1

0(COP) 15(COP)

Producto1.Densidad

0(MOV) 15(MOV)

EQU
Equal
Source A Producto_Tk1
14
Source B
2

COP
Copy File
Source Producto2.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto2.Densidad
1.001

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto2

1(COP) 16(COP)

Producto2.Densidad

1(MOV) 16(MOV)

Densidad_Tk100

EQU
Equal
Source A Producto_Tk1
14
Source B
3

COP
Copy File
Dest Nombre_Producto_Tk1
Source Producto3.Producto
Length
30
MOV
Move
Source Producto3.Densidad
1.1

Dest Densidad_Tk100
1.14

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 2
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*13(MOV) *14(MOV)
Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto3

2(COP) 17(COP)

Producto3.Densidad

2(MOV) 17(MOV)

EQU
Equal
Source A Producto_Tk1
14
Source B
4

COP
Copy File
Source Producto4.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto4.Densidad
1.2

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto4

3(COP) 18(COP)

Producto4.Densidad

3(MOV) 18(MOV)

EQU
Equal
Source A Producto_Tk1
14
Source B
5

COP
Copy File
Source Producto5.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto5.Densidad
1.5

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto5

4(COP) 19(COP)

Producto5.Densidad

4(MOV) 19(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30
5

EQU
Equal
Source A Producto_Tk1
14
Source B
6

Page 3
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
COP
Copy File
Source Producto6.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto6.Densidad
1.999

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto6

5(COP) 20(COP)

Producto6.Densidad

5(MOV) 20(MOV)

EQU
Equal
Source A Producto_Tk1
14
Source B
7

COP
Copy File
Source Producto7.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto7.Densidad
1.7

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto7

6(COP) 21(COP)

Producto7.Densidad

6(MOV) 21(MOV)

Densidad_Tk100

EQU
Equal
Source A Producto_Tk1
14
Source B
8

COP
Copy File
Source Producto8.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto8.Densidad
1.8

Dest Densidad_Tk100
1.14

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 4
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto8

7(COP) 22(COP)

Producto8.Densidad

7(MOV) 22(MOV)

EQU
Equal
Source A Producto_Tk1
14
Source B
9

COP
Copy File
Source Producto9.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto9.Densidad
1.9

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto9

8(COP) 23(COP)

Producto9.Densidad

8(MOV) 23(MOV)

EQU
Equal
Source A Producto_Tk1
14
Source B
10

COP
Copy File
Source Producto10.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto10.Densidad
1.101

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto10

9(COP) 24(COP)

Producto10.Densidad

9(MOV) 24(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30
10

EQU
Equal
Source A Producto_Tk1
14
Source B
11

Page 5
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
COP
Copy File
Source Producto11.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto11.Densidad
1.11

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto11

10(COP) 25(COP)

Producto11.Densidad

10(MOV) 25(MOV)

11

EQU
Equal
Source A Producto_Tk1
14
Source B
12

COP
Copy File
Source Producto12.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto12.Densidad
1.12

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto12

11(COP) 26(COP)

Producto12.Densidad

11(MOV) 26(MOV)

12

Densidad_Tk100

EQU
Equal
Source A Producto_Tk1
14
Source B
13

COP
Copy File
Source Producto13.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto13.Densidad
1.13

Dest Densidad_Tk100
1.14

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 6
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto13

12(COP) 27(COP)

Producto13.Densidad

12(MOV) 27(MOV)

13

EQU
Equal
Source A Producto_Tk1
14
Source B
14

COP
Copy File
Source Producto14.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto14.Densidad
1.14

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto14

13(COP) 28(COP)

Producto14.Densidad

13(MOV) 28(MOV)

14

EQU
Equal
Source A Producto_Tk1
14
Source B
15

COP
Copy File
Source Producto15.Producto
Dest Nombre_Producto_Tk1
Length
30
MOV
Move
Source Producto15.Densidad
1.15

Dest Densidad_Tk100
1.14

Densidad_Tk100

*0(MOV) *1(MOV) *2(MOV) *3(MOV) *4(MOV) *5(MOV) *6(MOV) *7(MOV) *8(MOV) *9(MOV) *10(MOV) *11(MOV) *12(MOV)
*13(MOV) *14(MOV)

Nombre_Producto_Tk1

*0(COP) *1(COP) *2(COP) *3(COP) *4(COP) *5(COP) *6(COP) *7(COP) *8(COP) *9(COP) *10(COP) *11(COP) *12(COP) *13(COP)
*14(COP)

Producto_Tk1

0(EQU) 1(EQU) 2(EQU) 3(EQU) 4(EQU) 5(EQU) 6(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 12(EQU) 13(EQU) 14(EQU)

Producto15

14(COP) 29(COP)

Producto15.Densidad

14(MOV) 29(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 7
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mueve los valores de Nombre y Densidad segun este seleccionado TK1


COP
Equal
Copy File
Source A Producto_Tk2
Source Producto1.Producto
Dest Nombre_Producto_Tk2
2
Length
30
Source B
1
EQU

15

MOV
Move
Source Producto1.Densidad
1.0

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto1

0(COP) 15(COP)

Producto1.Densidad

0(MOV) 15(MOV)

16

EQU
Equal
Source A Producto_Tk2
2
Source B
2

COP
Copy File
Source Producto2.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto2.Densidad
1.001

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto2

1(COP) 16(COP)

Producto2.Densidad

1(MOV) 16(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30
17

EQU
Equal
Source A Producto_Tk2
2
Source B
3

Page 8
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
COP
Copy File
Source Producto3.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto3.Densidad
1.1

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto3

2(COP) 17(COP)

Producto3.Densidad

2(MOV) 17(MOV)

18

EQU
Equal
Source A Producto_Tk2
2
Source B
4

COP
Copy File
Dest Nombre_Producto_Tk2
Source Producto4.Producto
Length
30
MOV
Move
Source Producto4.Densidad
1.2

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto4

3(COP) 18(COP)

Producto4.Densidad

3(MOV) 18(MOV)

19

Densidad_Tk200

EQU
Equal
Source A Producto_Tk2
2
Source B
5

COP
Copy File
Source Producto5.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto5.Densidad
1.5

Dest Densidad_Tk200
1.001

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 9
22/12/2015 08,45,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*27(MOV) *28(MOV) *29(MOV)


Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto5

4(COP) 19(COP)

Producto5.Densidad

4(MOV) 19(MOV)

20

EQU
Equal
Source A Producto_Tk2
2
Source B
6

COP
Copy File
Dest Nombre_Producto_Tk2
Source Producto6.Producto
Length
30
MOV
Move
Source Producto6.Densidad
1.999

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto6

5(COP) 20(COP)

Producto6.Densidad

5(MOV) 20(MOV)

21

EQU
Equal
Source A Producto_Tk2
2
Source B
7

COP
Copy File
Source Producto7.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto7.Densidad
1.7

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto7

6(COP) 21(COP)

Producto7.Densidad

6(MOV) 21(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30
22

EQU
Equal
Source A Producto_Tk2
2
Source B
8

Page 10
22/12/2015 08,45,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
COP
Copy File
Source Producto8.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto8.Densidad
1.8

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto8

7(COP) 22(COP)

Producto8.Densidad

7(MOV) 22(MOV)

23

EQU
Equal
Source A Producto_Tk2
2
Source B
9

COP
Copy File
Dest Nombre_Producto_Tk2
Source Producto9.Producto
Length
30
MOV
Move
Source Producto9.Densidad
1.9

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto9

8(COP) 23(COP)

Producto9.Densidad

8(MOV) 23(MOV)

24

Densidad_Tk200

EQU
Equal
Source A Producto_Tk2
2
Source B
10

COP
Copy File
Source Producto10.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto10.Densidad
1.101

Dest Densidad_Tk200
1.001

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 11
22/12/2015 08,45,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*27(MOV) *28(MOV) *29(MOV)


Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto10

9(COP) 24(COP)

Producto10.Densidad

9(MOV) 24(MOV)

25

EQU
Equal
Source A Producto_Tk2
2
Source B
11

COP
Copy File
Dest Nombre_Producto_Tk2
Source Producto11.Producto
Length
30
MOV
Move
Source Producto11.Densidad
1.11

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto11

10(COP) 25(COP)

Producto11.Densidad

10(MOV) 25(MOV)

26

EQU
Equal
Source A Producto_Tk2
2
Source B
12

COP
Copy File
Source Producto12.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto12.Densidad
1.12

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto12

11(COP) 26(COP)

Producto12.Densidad

11(MOV) 26(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30
27

EQU
Equal
Source A Producto_Tk2
2
Source B
13

Page 12
22/12/2015 08,45,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
COP
Copy File
Source Producto13.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto13.Densidad
1.13

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto13

12(COP) 27(COP)

Producto13.Densidad

12(MOV) 27(MOV)

28

EQU
Equal
Source A Producto_Tk2
2
Source B
14

COP
Copy File
Dest Nombre_Producto_Tk2
Source Producto14.Producto
Length
30
MOV
Move
Source Producto14.Densidad
1.14

Dest Densidad_Tk200
1.001

Densidad_Tk200

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)
*27(MOV) *28(MOV) *29(MOV)

Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto14

13(COP) 28(COP)

Producto14.Densidad

13(MOV) 28(MOV)

29

Densidad_Tk200

EQU
Equal
Source A Producto_Tk2
2
Source B
15

COP
Copy File
Source Producto15.Producto
Dest Nombre_Producto_Tk2
Length
30
MOV
Move
Source Producto15.Densidad
1.15

Dest Densidad_Tk200
1.001

*15(MOV) *16(MOV) *17(MOV) *18(MOV) *19(MOV) *20(MOV) *21(MOV) *22(MOV) *23(MOV) *24(MOV) *25(MOV) *26(MOV)

RSLogix 5000

Densidades - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 30

Page 13
22/12/2015 08,45,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*27(MOV) *28(MOV) *29(MOV)


Nombre_Producto_Tk2

*15(COP) *16(COP) *17(COP) *18(COP) *19(COP) *20(COP) *21(COP) *22(COP) *23(COP) *24(COP) *25(COP) *26(COP)
*27(COP) *28(COP) *29(COP)

Producto_Tk2

15(EQU) 16(EQU) 17(EQU) 18(EQU) 19(EQU) 20(EQU) 21(EQU) 22(EQU) 23(EQU) 24(EQU) 25(EQU) 26(EQU) 27(EQU) 28(EQU)
29(EQU)

Producto15

14(COP) 29(COP)

Producto15.Densidad

14(MOV) 29(MOV)

(End)

RSLogix 5000

Niveles_de_Tanques - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

Page 1
22/12/2015 08,46,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Niveles Tanque Tk110

AFI

LES
Less Than (A<B)
Source A LT100_Escalado
0.0
Source B H_Cono_Tk100
0

CPT
Compute
Expression (3.1416*(( Diametro_Tk100/2)**2)* LT100_Escalado/3*1000)*(1/ Den

Mov
Sour

Densidad_Tk100

0(CPT) 1(CPT) 2(CPT)

Diametro_Tk100

0(CPT) 1(CPT) 2(CPT)

H_Cono_Tk100

0(LES) 1(CPT) 1(GEQ)

LT100

*0(MOV) *1(ADD)

LT100_Escalado

0(CPT) 0(LES) 1(CPT) 1(GEQ) 2(CPT)

Nivel_Cono_LT100

*0(CPT) 0(MOV) 1(ADD)

RSLogix 5000

Niveles_de_Tanques - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

alado/3*1000)*(1/ Densidad_Tk100)

Dest Nivel_Cono_LT100
0

MOV
Move
Source Nivel_Cono_LT100
0

Page 2
22/12/2015 08,46,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Dest

LT100
0

GEQ
Grtr Than or Eql (A>=B)
Source A LT100_Escalado
0.0
Source B H_Cono_Tk100
0

Densidad_Tk100

0(CPT) 1(CPT) 2(CPT)

Diametro_Tk100

0(CPT) 1(CPT) 2(CPT)

H_Cono_Tk100

0(LES) 1(CPT) 1(GEQ)

LT100

*0(MOV) *1(ADD)

LT100_Escalado

0(CPT) 0(LES) 1(CPT) 1(GEQ) 2(CPT)

Nivel_Cilindro_LT100

*1(CPT) 1(ADD)

Nivel_Cono_LT100

*0(CPT) 0(MOV) 1(ADD)

CPT
Compute
Expression (3.1416*(( Diametro_Tk100/2)**2)*( LT100_Escalado- H_Cono_Tk100)*1000)*(1

RSLogix 5000

Niveles_de_Tanques - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

ono_Tk100)*1000)*(1/Densidad_Tk100)

Page 3
22/12/2015 08,46,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Dest Nivel_Cilindro_LT100
0

ADD
Add
Source A Nivel_Cilindro_LT100
0
Source B
Nivel_Cono_LT100
0

Dest

LT100
0

Niveles Tanque Tk110


2

AFI

LES
Less Than (A<B)
Source A LT200_Escalado
0.72
Source B H_Cono_Tk200
0

CPT
Compute
Expression (3.1416*(( Diametro_Tk100/2)**2)* LT100_Escalado/3*1000)*(1/ Den

Mov
Sour

Densidad_Tk100

0(CPT) 1(CPT) 2(CPT)

Diametro_Tk100

0(CPT) 1(CPT) 2(CPT)

H_Cono_Tk200

2(LES) 3(CPT) 3(GEQ)

LT100_Escalado

0(LES) 0(CPT) 1(GEQ) 1(CPT) 2(CPT)

LT200

*2(MOV) *3(ADD)

LT200_Escalado

2(LES) 3(CPT) 3(GEQ)

Nivel_Cono_LT200

2(MOV) *2(CPT) 3(ADD)

RSLogix 5000

Niveles_de_Tanques - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

alado/3*1000)*(1/ Densidad_Tk100)

Dest Nivel_Cono_LT200
0

MOV
Move
Source Nivel_Cono_LT200
0

Page 4
22/12/2015 08,46,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Dest

GEQ
Grtr Than or Eql (A>=B)
Source A LT200_Escalado
0.72
Source B H_Cono_Tk200
0

Densidad_Tk200

3(CPT)

Diametro_Tk200

3(CPT)

H_Cono_Tk200

2(LES) 3(CPT) 3(GEQ)

LT200

*2(MOV) *3(ADD)

LT200_Escalado

2(LES) 3(CPT) 3(GEQ)

Nivel_Cilindro_LT200

*3(CPT) 3(ADD)

Nivel_Cono_LT200

*2(CPT) 2(MOV) 3(ADD)

LT200
2734

CPT
Compute
Expression (3.1416*(( Diametro_Tk200/2)**2)*( LT200_Escalado- H_Cono_Tk200)*1000)*(1

RSLogix 5000

Niveles_de_Tanques - Ladder Diagram


TetraPak_Mezclado_de_Leche:Logica:Logica
Total number of rungs in routine: 4

ono_Tk200)*1000)*(1/Densidad_Tk200)

Page 5
22/12/2015 08,46,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Dest Nivel_Cilindro_LT200
2734

ADD
Add
Source A Nivel_Cilindro_LT200
2734
Source B
Nivel_Cono_LT200
0

Dest

LT200
2734

(End)

RSLogix 5000

Dispatch - Ladder Diagram


TetraPak_Mezclado_de_Leche:Lazos:Lazos
Total number of rungs in routine: 1
0

Page 1
22/12/2015 08,47,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
JSR
Jump To Subroutine
Routine Name Blk_PIDE

(End)

RSLogix 5000

Dispatch - Ladder Diagram


TetraPak_Mezclado_de_Leche:Equipos:Equipos
Total number of rungs in routine: 7

Page 1
22/12/2015 08,48,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

JSR
Jump To Subroutine
Routine Name Blk_Agitadores

JSR
Jump To Subroutine
Routine Name Blk_Bombas

JSR
Jump To Subroutine
Routine Name Blk_Dosificadores

JSR
Jump To Subroutine
Routine Name Blk_Nivel_Analog

JSR
Jump To Subroutine
Routine Name Blk_Nivel_Dig

JSR
Jump To Subroutine
Routine Name Blk_Temperatura

JSR
Jump To Subroutine
Routine Name Blk_Valvulas

(End)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 1
22/12/2015 08,49,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
P_AIn: PROCESS -- ANALOG INPUT
============================================================
Revision 2.0-02 Release: 2013-03-15
V2.0-00 2011-09-30: Added Inf_Tab, Inf_Type; added logic for Sts_MaintByp,
Sts_AlmInh for breadcrumbs; using P_Alarm, P_Mode 2.0; changed Alarm timers
to On-Delay and Off-Delay; added Val_Fdbk, Val_Sts, Val_Fault, Val_Mode;
added Val_PVMinCapt, Val_PVMaxCapt, clear capture commands.
Added OCmd_ResetAckAll, Rdy_ResetAckAll.
Fixed handling of Input Infinite or Not a Number.
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01.
Improved handling of timers with presets = 0.
V2.0-02 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction monitors an Analog Input from a flow, level, pressure,
temperature, or any other analog sensor, and provides:
* Scaling, from Input (Raw) to PV (Engineering) Units
* High-High, High, Low and Low-Low Alarms with configurable delay times and deadbands
* Monitoring of input bad/uncertain variable/communication status and out-of-range conditions with alarm
* Setting of a simulated input signal for process simulation
* Capturing of the lowest and highest PV excursion values
* Program and Operator Settings for Alarm Thresholds
* Maintenance Commands to allow manual override of the input signal (Substitute PV)
Modes are provided by a P_Mode Add-On Instruction instance.
Alarms are provided by P_Alarm Add-On Instruction instances.
Modes of operation: Operator, Program, Maintenance
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

Cfg_Desc

0(CONCAT)

Cfg_EU

*0(CONCAT)

Cfg_Label

0(CONCAT)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
CONCAT
Lower Case
String Concatenate
Dest Inf_Type
Dest
Source Cfg_Tag
Source A Cfg_Label
'P_AIn'
'P_AIn'
'Analog Input'
Source B Cfg_Desc
'Analog Input'

Cfg_EU
'%'

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 2
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
MODE PROCESSING
============================================================
This rung handles received Mode Inputs and Commands:
NOTE: All Commands for Mode, Alarm are aliased directly to the
corresponding Commands in the contained P_Mode and P_Alarm AOIs.

This object does NOT have the following Modes:


Hand
Override
Analog Input Mode
Analog Input Mode
Selection 1=Select
Selection 1=Select
Override (typ.
Hand (typ.
Process/Safety
Analog Input Mode
hardwired) Mode
Interlock) Mode
Selection
Mode.Inp_Hand
Mode.Inp_Ovrd
P_Mode
U
U
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock

SkipText
LBL

Signature ID: C1F72CF2

Mode

*1(P_Mode)

Mode.Inp_Hand

*1(OTU)

Mode.Inp_Ovrd

*1(OTU)

============================================================
OWNERSHIP ARBITRATION
============================================================
This rung handles simple First-Come First-Served Ownership Arbitration.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
Dest Val_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

2(MOV) 2(EQU) 2(NEQ)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Val_Owner

Page 3
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(MOV) 2(EQU)

============================================================
CONFIGURATION PROCESSING
============================================================
This rung publishes the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the configuration of a PID, so the AIn and PID ranges are in lockstep.

PV (Output) Maximum
for Scaling to EU
GEQ
Grtr Than or Eql (A>=B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_PVEUMin
0.0

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0

PV (Output) Maximum
for Scaling to EU
LES
Less Than (A<B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Dest Val_PVEUMax
100.0

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_PVEUMax
100.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0

Cfg_PVEUMax

3(LES) 3(GEQ) 3(MOV) 4(EQU) 16(CPT)

Cfg_PVEUMin

3(MOV) 3(GEQ) 3(LES) 4(EQU) 16(CPT) 16(MOV)

Val_PVEUMax

*3(MOV)

Val_PVEUMin

*3(MOV)

Dest Val_PVEUMin
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 4
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Flag a Configuration Error if the raw input range or scaled PV range
max and min are set the same (invalid range), or if the
Analog Input Filter Time Constant is set to a negative value.
Input (unscaled)
Maximum for Scaling
EQU
Equal
Source A Cfg_InpRawMax
100.0
Source B Cfg_InpRawMin
0.0

PV (Output) Maximum
for Scaling to EU
EQU
Equal
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0
PV Filter Time
Constant (sec),
0.0 = unfiltered
LES
Less Than (A<B)
Source A Cfg_FiltTC
0.0
Source B
0.0

Cfg_FiltTC

4(LES) 23(LEQ) 23(GRT) 23(CPT)

Cfg_InpRawMax

4(EQU) 16(CPT)

Cfg_InpRawMin

4(EQU) 16(CPT)

Cfg_PVEUMax

3(MOV) 3(GEQ) 3(LES) 4(EQU) 16(CPT)

Cfg_PVEUMin

3(MOV) 3(LES) 3(GEQ) 4(EQU) 16(CPT) 16(MOV)

Err_EU

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

Err_Filt

*4(OTE) 6(XIC)

Err_Raw

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw

1=Error in Config:
Scaled EU Min = Max
Err_EU

1=Error in Config:
PV filter params
(RateTime, TC)
Err_Filt

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 5
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Flag a Configuration Error if any Status On-Delay or Off-Delay timer preset is invalid
(and set timer to a default, non-faulting value).
High-High Status
On-Dealy Timer
MUL
5

Multiply
Source A Cfg_HiHiOnDly
0
Source B
1000

High-High Status
On-Dealy Timer
Wrk_HiHiOnDlyT.PRE.31

1=Error in Config:
On Delay, Off Delay
Time Invalid (use 0
to 2147483 sec)
Err_Timer

Dest Wrk_HiHiOnDlyT.PRE
0

High-High Status
On-Dealy Timer
CLR
Clear
Dest Wrk_HiHiOnDlyT.PRE
0

High-High Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_HiHiOffDly
0
Source B
1000

High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT.PRE.31

Dest Wrk_HiHiOffDlyT.PRE
0

High-High Status
Off-Delay Timer
CLR
Clear
Dest Wrk_HiHiOffDlyT.PRE
0

High Status On-Delay


Timer
MUL
Multiply
Source A Cfg_HiOnDly
0
Source B
1000

High Status On-Delay


Timer
Wrk_HiOnDlyT.PRE.31

Dest Wrk_HiOnDlyT.PRE
0

High Status On-Delay


Timer
CLR
Clear
Dest Wrk_HiOnDlyT.PRE
0

High Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_HiOffDly
0
Source B
1000

High Status
Off-Delay Timer
Wrk_HiOffDlyT.PRE.31

Dest Wrk_HiOffDlyT.PRE
0

High Status
Off-Delay Timer
CLR
Clear
Dest Wrk_HiOffDlyT.PRE
0

Low Status On-Delay


Timer

Low Status On-Delay


Timer

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 6
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Timer
Timer
Wrk_LoOnDlyT.PRE.31
MUL
Multiply
Source A Cfg_LoOnDly
0
Source B
1000

Dest Wrk_LoOnDlyT.PRE
0

Low Status On-Delay


Timer
CLR
Clear
Dest Wrk_LoOnDlyT.PRE
0

Low Status Off-Delay


Timer
MUL
Multiply
Source A Cfg_LoOffDly
0
Source B
1000

Low Status Off-Delay


Timer
Wrk_LoOffDlyT.PRE.31

Dest Wrk_LoOffDlyT.PRE
0

Low Status Off-Delay


Timer
CLR
Clear
Dest Wrk_LoOffDlyT.PRE
0

Low-Low Status
On-Delay Timer
MUL
Multiply
Source A Cfg_LoLoOnDly
0
Source B
1000

Low-Low Status
On-Delay Timer
Wrk_LoLoOnDlyT.PRE.31

Dest Wrk_LoLoOnDlyT.PRE
0

Low-Low Status
On-Delay Timer
CLR
Clear
Dest Wrk_LoLoOnDlyT.PRE
0

Low-Low Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_LoLoOffDly
0
Source B
1000

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT.PRE.31

Dest Wrk_LoLoOffDlyT.PRE
0

Low-Low Status
Off-Delay Timer
CLR
Clear
Dest Wrk_LoLoOffDlyT.PRE
0

Fail Status On-Delay


Timer
MUL
Multiply
Source A Cfg_FailOnDly
0
Source B
1000

Fail Status On-Delay


Timer
Wrk_FailOnDlyT.PRE.31

Dest Wrk_FailOnDlyT.PRE
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>
Source B

Page 7
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


1000

Fail Status On-Delay


Timer
CLR
Clear
Dest Wrk_FailOnDlyT.PRE
0

Fail Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_FailOffDly
0
Source B
1000

Fail Status
Off-Delay Timer
Wrk_FailOffDlyT.PRE.31

Dest Wrk_FailOffDlyT.PRE
0

Fail Status
Off-Delay Timer
CLR
Clear
Dest Wrk_FailOffDlyT.PRE
0

Cfg_FailOffDly

5(MUL)

Cfg_FailOnDly

5(MUL)

Cfg_HiHiOffDly

5(MUL)

Cfg_HiHiOnDly

5(MUL)

Cfg_HiOffDly

5(MUL)

Cfg_HiOnDly

5(MUL)

Cfg_LoLoOffDly

5(MUL)

Cfg_LoLoOnDly

5(MUL)

Cfg_LoOffDly

5(MUL)

Cfg_LoOnDly

5(MUL)

Err_Timer

*5(OTE)

Wrk_FailOffDlyT.PRE

*5(CLR) *5(MUL)

Wrk_FailOffDlyT.PRE.31 5(XIC)
Wrk_FailOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_FailOnDlyT.PRE.31 5(XIC)
Wrk_HiHiOffDlyT.PRE

*5(MUL) *5(CLR)

Wrk_HiHiOffDlyT.PRE.31 5(XIC)
Wrk_HiHiOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_HiHiOnDlyT.PRE.31 5(XIC)
Wrk_HiOffDlyT.PRE

*5(MUL) *5(CLR)

Wrk_HiOffDlyT.PRE.31

5(XIC)

Wrk_HiOnDlyT.PRE

*5(CLR) *5(MUL)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Wrk_HiOnDlyT.PRE.31

5(XIC)

Wrk_LoLoOffDlyT.PRE

*5(MUL) *5(CLR)

Page 8
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_LoLoOffDlyT.PRE.3 5(XIC)
1
Wrk_LoLoOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_LoLoOnDlyT.PRE.3 5(XIC)
1
Wrk_LoOffDlyT.PRE

*5(MUL) *5(CLR)

Wrk_LoOffDlyT.PRE.31 5(XIC)
Wrk_LoOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_LoOnDlyT.PRE.31

5(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 9
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


This rung handles the reports of all Bad Configuration Status.
Individual bits are provided for various status:
Bad Raw Scaling configs
Bad Engineering Units Scaling configs
Bad 1st-Order Filter configs
Bad Alarm Deadband configs
Bad Alarm Minimum Duration configs
Then a summary Bad Config status is provided, simply an OR of the individual bits.
1=Error in Config
(see detail Err_
bits for reason),
display icon
Sts_Err

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
6
1=Error in Config:
Scaled EU Min = Max
Err_EU
1=Error in Config:
PV filter params
(RateTime, TC)
Err_Filt

High-High Status
Deadband (EU)
LES
Less Than (A<B)
Source A Cfg_HiHiDB
1.0
Source B
0.0

1=Error in Config: a
Status Deadband is <
0.0
Err_DB

High Status Deadband


(EU)
LES
Less Than (A<B)
Source A Cfg_HiDB
1.0
Source B
0.0

Low Status Deadband


(EU)
LES
Less Than (A<B)
Source A Cfg_LoDB
1.0
Source B
0.0

Low-Low Status
Deadband (EU)
LES
Less Than (A<B)
Source A Cfg_LoLoDB
1.0
Source B
0.0

Out-of-Range (fail)
High/Low Deadband
(EU)
LES
Less Than (A<B)
Source A Cfg_FailDB
0.41666666
Source B
0.0

High-High Alarm
1=Error in Config:
see detail Err_ bits
for reason
HiHi.Sts_Err

1=Error in Config:
Alarm Min On Time or
Severity
Err_Alarm

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 10
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


High Alarm 1=Error
in Config: see
detail Err_ bits for
reason
Hi.Sts_Err
Low Alarm 1=Error in
Config: see detail
Err_ bits for reason
Lo.Sts_Err
Low-Low Alarm
1=Error in Config:
see detail Err_ bits
for reason
LoLo.Sts_Err
Analog Input Failure
Alarm (bad quality
or out of range)
1=Error in Config:
see detail Err_ bits
for reason
Fail.Sts_Err

Cfg_FailDB

6(LES) 31(CMP)

Cfg_HiDB

6(LES) 28(CMP)

Cfg_HiHiDB

6(LES) 27(CMP)

Cfg_LoDB

6(LES) 29(CMP)

Cfg_LoLoDB

6(LES) 30(CMP)

Err_Alarm

*6(OTE)

Err_DB

*6(OTE)

Err_EU

*4(OTE) 6(XIC) 16(XIO) 16(XIC)

Err_Filt

*4(OTE) 6(XIC)

Err_Raw

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

Fail.Sts_Err

6(XIC)

Hi.Sts_Err

6(XIC)

HiHi.Sts_Err

6(XIC)

Lo.Sts_Err

6(XIC)

LoLo.Sts_Err

6(XIC)

Sts_Err

*6(OTE) 33(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 11
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated

==================

==================
Th

When the Mod


Alarm Thresholds, an
for bump

When the Mod


Alarm Thresholds, an
for bump
Analog Input Mode
Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>
7

Move
Source
1.50000

1=PSets track OSe


in Oper, OSets trac
PSets in Prog, 0=n
tracking
Cfg_SetTrack

Move
Source
1.5000
Analog Input Mode
Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
Analog Input Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Current High-High
Status Threshold
MOV
Move
Source OSet_HiHiLim
1.50000000e+038
1=PSets track OSets
in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Move
Source OS
1.50000

Program-Entered
High-High Status
Threshold (EU)
MOV
Move
Source Val_HiHiLim
1.50000000e+038

Cfg_SetTrack

Dest
Val_HiHiLim
1.50000000e+038

Dest PSet_HiHiLim
1.50000000e+038

Move
Source
1.5000

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Mode.Sts_Oper

7(XIC) 8(XIC)

Mode.Sts_Prog

7(XIC)

OSet_HiHiLim

7(MOV) *7(MOV)

OSet_HiLim

7(MOV) *7(MOV)

OSet_LoLim

*7(MOV) 7(MOV)

OSet_LoLoLim

*7(MOV) 7(MOV)

PSet_HiHiLim

7(MOV) *7(MOV)

PSet_HiLim

*7(MOV) 7(MOV)

PSet_LoLim

7(MOV) *7(MOV)

PSet_LoLoLim

7(MOV) *7(MOV)

Sts_Maint

13(XIC)

Val_HiHiLim

7(MOV) *7(MOV) 27(GEQ) 27(CMP)

Val_HiLim

7(MOV) *7(MOV) 28(GEQ) 28(CMP)

Val_LoLim

7(MOV) *7(MOV) 29(LEQ) 29(CMP)

Val_LoLoLim

7(MOV) *7(MOV) 30(LEQ) 30(CMP)

Page 12
22/12/2015 08,49,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

===========================================================
SETTINGS PROCESSING
===========================================================
These rungs handle received Settings:
When the Mode is Program, use the Program Settings for the
Alarm Thresholds, and copy the Program Settings to the Operator Settings
for bumpless transition from Program to Operator.
When the Mode is Operator, use the Operator Settings for the
Alarm Thresholds, and copy the Operator Settings to the Program Settings
for bumpless transition from Operator to Program.

Current High-H
Status Thresh
MOV
Move
Source PSet_HiHiLim
1.50000000e+038

Current High Status


Threshold
MOV
PSet_HiLim
1.50000000e+038

Dest
Val_HiLim
1.50000000e+038

Current Low Status


Threshold
MOV
Move
Source PSet_LoLim
-1.50000000e+038

Dest
Val_LoLim
-1.50000000e+038

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no

Current Low-Low
Status Threshol
MOV
Move
Source PSet_LoLoLim
-1.50000000e+038

Operator-Ent
High-High St
Threshold (
MOV
Move
Source Val_HiHiLim
1.50000000e+038

Operator-Entered
High Status
Threshold (EU)
MOV
Val_HiLim
1.50000000e+038

Dest
OSet_HiLim
1.50000000e+038

Operator-Entered Low
Status Threshold
(EU)
MOV
Move
Source
Val_LoLim
-1.50000000e+038

Dest
OSet_LoLim
-1.50000000e+038

Operator-Entere
Low-Low Statu
Threshold (EU
MOV
Move
Source Val_LoLoLim
-1.50000000e+038

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 13
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated

Current High-High
Status Threshold
Dest
Val_HiHiLim
1.50000000e+038

Current Low-Low
Status Threshold
Dest
Val_LoLoLim
-1.50000000e+038

Operator-Entered
High-High Status
Threshold (EU)
Dest OSet_HiHiLim
1.50000000e+038

Operator-Entered
Low-Low Status
Threshold (EU)
Dest OSet_LoLoLim
-1.50000000e+038

Current Low-Low
Status Threshold
Dest
Val_LoLoLim
-1.50000000e+038

Program-Entered
Low-Low Status
Threshold (EU)
Dest PSet_LoLoLim
-1.50000000e+038

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 14
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Ready to receive other Operator Settings (OSet_xxx) if tracking is NOT enabled,
or we're in Operator or Maintenance Mode.

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack
/

1=Ready to receive
OSets (enables data
entry fields)
Rdy_OSet

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
Analog Input Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Mode.Sts_Oper

7(XIC) 8(XIC)

Rdy_OSet

*8(OTE)

Sts_Maint

13(XIC)

============================================================
SUBSTITUTE PV / INPUT PV COMMAND PROCESSING
============================================================
These rungs handle the Substitute PV and Input PV Commands:
MCmd_SubstPV: Maintenance Command to select Maintenance-entered substitute PV

Maintenance Command
to use Substitute PV
(override input)
MCmd_SubstPV
9

Do not allow this Command if Cfg_NoSubstPV is set.


Analog Input Mode
Selection 1=Mode is
Maintenance
Maintenance Command
(supersedes Ovrd,
to use Substitute PV
Prog, Oper)
1=Disallow selection
(override input)
of Substitute PV
Mode.Sts_Maint
<Sts_Maint>
Cfg_NoSubstPV
MCmd_SubstPV
U
/

Cfg_NoSubstPV

9(XIO) 10(XIC) 13(XIO)

MCmd_SubstPV

9(XIC) *9(OTU)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Sts_Maint

13(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

Internal flag: Using


Substitute PV
Wrk_SubstPV
L

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 15
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


MCmd_InpPV: Maintenance Command to cancel Substitute PV and return to Live Input PV.
Analog Input Mode
Selection 1=Mode is
Maintenance
Maintenance Command
Maintenance Command
(supersedes Ovrd,
to use Input PV
to use Input PV
Internal flag: Using
Prog, Oper)
(normal)
(normal)
Substitute PV
Mode.Sts_Maint
MCmd_InpPV
MCmd_InpPV
<Sts_Maint>
Wrk_SubstPV
U
U

10

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV

Cfg_NoSubstPV

9(XIO) 10(XIC) 13(XIO)

MCmd_InpPV

10(XIC) *10(OTU)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Sts_Maint

13(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

Show the Substitute or Input PV Status


Internal flag: Using
Substitute PV
Wrk_SubstPV

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

11
Internal flag: Using
Substitute PV
Wrk_SubstPV
/

Sts_InpPV

*11(OTE)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIO) 11(XIC) 13(XIC) 13(XIO) 18(XIC) 31(XIO) 32(XIO)

1=Using Input PV
(normal)
Sts_InpPV

Substitute PV is the only Maintenance Bypass for an Analog Input.


1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

1=A Maintenance
Bypass is Active,
display icon
Sts_MaintByp

12

Sts_MaintByp

*12(OTE)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 16
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


In Maintenance Mode, commands for Substitue PV and Input PV are available
based on the current state of the internal toggle bit.
1=Mode is
Maintenance
(supersedes Prog,
Oper)
Sts_Maint
<Mode.Sts_Maint>
13

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV
/

Cfg_NoSubstPV

9(XIO) 10(XIC) 13(XIO)

Rdy_InpPV

*13(OTE)

Rdy_SubstPV

*13(OTE)

Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC) 13(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIO) 11(XIC) 13(XIC) 13(XIO) 18(XIC) 31(XIO) 32(XIO)

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

1=Ready for
MCmd_SubstPV
Rdy_SubstPV

Internal flag: Using


Substitute PV
Wrk_SubstPV

1=Ready for
MCmd_InpPV
Rdy_InpPV

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 17
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

14
Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll

Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll
U

High-High Alarm
Program Command to
Reset latched alarm
HiHi.PCmd_Reset
L

High-High Alarm
Program Command to
Acknowledge alarm
HiHi.PCmd_Ack
<PCmd_HiHiAck>
L
High Alarm Program
Command to
Acknowledge alarm
Hi.PCmd_Ack
<PCmd_HiAck>
L
Low Alarm Program
Command to
Acknowledge alarm
Lo.PCmd_Ack
<PCmd_LoAck>
L
Low-Low Alarm
Program Command to
Acknowledge alarm
LoLo.PCmd_Ack
<PCmd_LoLoAck>
L
Analog Input Failure
Alarm (bad quality
or out of range)
Program Command to
Acknowledge alarm
Fail.PCmd_Ack
<PCmd_FailAck>
L

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U
NOP

1=Reset all Alarms


requiring reset
Inp_Reset

High Alarm Program


Command to Reset
latched alarm
Hi.PCmd_Reset
L

Cfg_PCmdClear

14(XIC) 34(XIC)

Fail.PCmd_Ack

*14(OTL)

Low Alarm Program


Command to Reset
latched alarm
Lo.PCmd_Reset
L

Low-Low Alarm
Program Command to
Reset latched alarm
LoLo.PCmd_Reset
L

Analog Input Failure


Alarm (bad quality
or out of range)
Program Command to
Reset latched alarm
Fail.PCmd_Reset
L

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Fail.PCmd_Reset

*14(OTL)

Hi.PCmd_Ack

*14(OTL)

Hi.PCmd_Reset

*14(OTL)

HiHi.PCmd_Ack

*14(OTL)

HiHi.PCmd_Reset

*14(OTL)

Inp_Reset

14(XIC)

Lo.PCmd_Ack

*14(OTL)

Lo.PCmd_Reset

*14(OTL)

LoLo.PCmd_Ack

*14(OTL)

LoLo.PCmd_Reset

*14(OTL)

OCmd_Reset

*14(OTU) 14(XIC)

OCmd_ResetAckAll

*14(OTU) 14(XIC)

PCmd_Reset

*14(OTU) 14(XIC)

Page 18
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
ANALOG INPUT PROCESSING
============================================================
This rung checks the bit pattern of the REAL input (by copying to a DINT) to see if
the input is +Infinity, -Infinity or Not a Number. Per ANSI 32-bit Float
format, in these cases the Exponent bits (.30 thru .23) will all be 1s:
0111 1111 1000 0000 0000 0000 0000 0000 = +Infinity
1111 1111 1000 0000 0000 0000 0000 0000 = -Infinity
x111 1111 1xxx xxxx xxxx xxxx xxxx xxxx = Not a Number

15

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source
Inp_PV
Length
1

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Dest Wrk_InpDINT

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source Set_SimPV
Length
1

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
MEQ
Mask Equal
Source
Wrk_InpDINT
16#0000_0000
Mask
16#7F80_0000
Compare 16#7F80_0000

Dest Wrk_InpDINT

Input is Infinite or
Not a Number
Wrk_InpInfNaN

Inp_PV

15(COP) 16(CPT) 16(MOV)

Inp_Sim

15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Set_SimPV

15(COP) 16(MOV) *17(MOV)

Wrk_InpDINT

*15(COP) 15(MEQ)

Wrk_InpInfNaN

*15(OTE) 16(XIO) 16(XIC) 17(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 19
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated

The Process Variable Input Value (Val_InpP


regardless of the settings of Mode, Substitute PV, etc.

If NOT in simulation, if the scaling configuration is valid, the


In Simulation the Simulated Input must be pro

16

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
/

1=Error in Config:
Scaled EU Min = Max
Err_EU
/

Input is Infinite or
Not a Number
Wrk_InpInfNaN
/

Compute
Expression (Inp_PV-Cfg_InpRaw

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
1=Error in Config:
Scaled EU Min = Max
Err_EU

Input is Infinite or
Not a Number
Wrk_InpInfNaN

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Cfg_InpRawMax

4(EQU) 16(CPT)

Cfg_InpRawMin

4(EQU) 16(CPT)

Cfg_PVEUMax

3(MOV) 3(LES) 3(GEQ) 4(EQU) 16(CPT)

Cfg_PVEUMin

3(LES) 3(MOV) 3(GEQ) 4(EQU) 16(CPT) 16(MOV)

Err_EU

*4(OTE) 6(XIC) 16(XIO) 16(XIC)

Err_Raw

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

Inp_PV

15(COP) 16(MOV) 16(CPT)

Inp_Sim

15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 31(XIC) 31(XIO) 32(XIO)

Set_SimPV

15(COP) 16(MOV) *17(MOV)

Val_InpPV

*16(CPT) *16(MOV) 17(MOV) 18(MOV) 31(LEQ) 31(GEQ) 31(CMP)

Wrk_InpInfNaN

*15(OTE) 16(XIC) 16(XIO) 17(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 20
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


nput Value (Val_InpPV) shows the scaled input,
de, Substitute PV, etc., EVEN WHEN EnableIn IS FALSE!

figuration is valid, the Raw Input is scaled to Engineering Units.


ated Input must be provided in Engineering Units.
Analog Input Value
(actual, before
Substitute PV
selection)
CPT

(Inp_PV-Cfg_InpRawMin)*(Cfg_PVEUMax-Cfg_PVEUMin)/(Cfg_InpRawMax-Cfg_InpRawMin)+Cfg_PVEUMin

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source

Inp_PV
0.0

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source Set_SimPV
0.0

17

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Dest Val_InpPV
0.0

When this Analog Input is not simulated and tracking is configured ON (default),
the Simulated PV Setting tracks the selected PV for bumpless transfer into Simulation.
1=PSets track OSets
in Oper, OSets track
PV used in
PSets in Prog, 0=no
Input is Infinite or
Simulation
tracking
Not a Number
(Inp_Sim=1) (EU)
Cfg_SetTrack
Wrk_InpInfNaN
MOV
/
Move
Source Val_InpPV
Dest Set_SimPV
0.0
0.0

Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

Inp_Sim

15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Set_SimPV

15(COP) 16(MOV) *17(MOV)

Val_InpPV

*16(CPT) *16(MOV) 17(MOV) 18(MOV) 31(GEQ) 31(CMP) 31(LEQ)

Wrk_InpInfNaN

*15(OTE) 16(XIO) 16(XIC) 17(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42

Page 21
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
SELECT NORMAL OR SUBSTITUTE PV
============================================================
The Value shows the selected PV.
With Substitute PV enabled, it's the value of the entered MSet_SubstPV.
In normal operation, it's the value (Val_InpPV) selected above:
the scaled Input (Inp_PV) or Simulatied PV (Set_SimPV).
1=Using Substitute
PV (Input being
Unfiltered PV, input
overridden)
to 1st order filter
Sts_SubstPV
MOV
/
Move
Source Val_InpPV
Dest Wrk_UnfiltPV
0.0
0.0

18

Internal flag: Using


Substitute PV
Wrk_SubstPV

Unfiltered PV, input


to 1st order filter
MOV
Move
Source MSet_SubstPV
0.0

MSet_SubstPV

18(MOV) *20(MOV)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

Val_InpPV

*16(CPT) *16(MOV) 17(MOV) 18(MOV) 31(LEQ) 31(GEQ) 31(CMP)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIO) 11(XIC) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

19

Dest Wrk_UnfiltPV
0.0

============================================================
PV FIRST-ORDER FILTER PROCESSING
============================================================
This rung determines whether the Analog PV (unfiltered) is +/-Infinity or +/- NotANumber.
In either case, the value cannot be passed into the filter calculation. Instead, it is
just copied to the PV directly.
Selected PV check
Selected PV check
for Infinite or Non
for Infinite or Non
A Number
A Number
COP
MEQ
Copy File
Mask Equal
Source Wrk_UnfiltPV
Dest Wrk_SelPVDINT
Source Wrk_SelPVDINT
Length
1
16#0000_0000
Mask
16#7F80_0000

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN

Compare 16#7F80_0000

Wrk_SelPVDINT

19(MEQ) *19(COP)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 22
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


If tracking is enabled and the Untiltered PV is NOT Infinite or NaN,
copy it to the Substitute PV Setting.
1=PSets track OSets
in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack
20

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/

Maintenance-Entered
Substitute PV (EU)
MOV
Move
Source Wrk_UnfiltPV
0.0

Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

MSet_SubstPV

18(MOV) *20(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

Dest MSet_SubstPV
0.0

In preparation for calculating the Filtered PV, this rung


determines the time since the previous scan, using a non-stop TON timer.
When we get here, we read the accumulator (in milliseconds, so
divide by 1000.0 to get seconds), then clear the accumulator. Next scan the accumulator will have
incremented up to the number of milliseconds since last scan. (Works for scan times up to 2 million seconds.....)
Scan Timer
(milliseconds,
always runs)
MOV
Move
Source 2147483647

21

Dest Wrk_ScanT.PRE
2147483647

Time since this


instance was last
scanned
DIV
Divide
Source A Wrk_ScanT.ACC
0
Source B
1000.0

Wrk_ScanT

*21(TON)

Wrk_ScanT.ACC

*21(CLR) 21(DIV)

Wrk_ScanT.PRE

*21(MOV)

Wrk_ScanTime

*21(DIV) 23(CPT)

Dest Wrk_ScanTime
0.0

Scan Timer
(milliseconds,
always runs)
TON
Timer On Delay
Timer
Wrk_ScanT
Preset 2147483647
Accum
0

EN
DN

Scan Timer
(milliseconds,
always runs)
CLR
Clear
Dest Wrk_ScanT.ACC
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

22

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/

Page 23
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


If the input was +/-Infinity or Not a Number and it becomes a valid number,
initialize the filter to start from the first valid value.
Selected PV goes
from Infinite or Not
a Number to VALID
Filtered PV
Wrk_ValidONS
MOV
ONS
Move
Source Wrk_UnfiltPV
Dest Wrk_FiltPV
0.0
0.0

Wrk_FiltPV

*22(MOV) *23(CPT) 23(CPT) 24(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIO) 24(XIC) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

Wrk_ValidONS

*22(ONS)

23

Calculate the FILTERED PV.


First, calculate "alpha", the portion of the difference between input and previous value to move toward the input.
Then calculate the new value.
PV Filter Time
Constant (sec),
Filter multiplier =
0.0 = unfiltered
(1 / (1+TC/dT) )
GRT
CPT
Greater Than (A>B)
Compute
Source A Cfg_FiltTC
Expression 1.0/(1.0+Wrk_ScanTime/Cfg_FiltTC)
Dest Wrk_Alpha
0.0
0.0
Source B
0.0

PV Filter Time
Constant (sec),
0.0 = unfiltered
LEQ
Less Than or Eql (A<=B)
Cfg_FiltTC
Source A
0.0
Source B
0.0

Filter multiplier =
(1 / (1+TC/dT) )
CLR
Clear
Wrk_Alpha
Dest
0.0

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/
Filtered PV
CPT
Compute
Expression (Wrk_Alpha*Wrk_FiltPV)+((1.0-Wrk_Alpha)*Wrk_UnfiltPV)

Cfg_FiltTC

4(LES) 23(CPT) 23(LEQ) 23(GRT)

Wrk_Alpha

23(CPT) *23(CPT) *23(CLR)

Wrk_FiltPV

*22(MOV) *23(CPT) 23(CPT) 24(MOV)

Wrk_ScanTime

*21(DIV) 23(CPT)

Dest Wrk_FiltPV
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42

Page 24
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

Sts_PVBad and Sts_PVUncertain take care of the PV Quality.


As for the ultimate Value (Val):
If the number is being filtered, pass thru the output of the filter. It's a "real" number.
If the number is not being filtered because it is not a number or infinite, pass that thru.
Selected PV (Input
Analog Value (after
or Substitute) is
Substitute PV, if
Infinite or NaN
used)
Wrk_SelPVInfNaN
MOV
/
Move
Source Wrk_FiltPV
Dest
0.0

24

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN

Val
0.0

Analog Value (after


Substitute PV, if
used)
MOV
Move
Source Wrk_UnfiltPV
0.0

Dest

Val
0.0

Val

*24(MOV) 25(LES) 25(GRT) 25(MOV) 26(MOV) 27(GEQ) 27(CMP) 28(CMP) 28(GEQ) 29(LEQ) 29(CMP) 30(LEQ) 30(CMP)

Wrk_FiltPV

*22(MOV) 23(CPT) *23(CPT) 24(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

============================================================
CAPTURE MIN / MAX PV EXCURSION
============================================================
Capture the PV Maximum Excursion (highest value reached) and
PV Minimum Excursion (lowest value reached) since last cleared.

25

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/

##### V2.0-00 2011-09-30: New Min / Max Capture function added #####
Analog Value (after
Captured PV Maximum
Substitute PV, if
(excursion) since
used)
last cleared
GRT
MOV
Greater Than (A>B)
Move
Source A
Val
Source
Val
Dest Val_PVMaxCapt
0.0
0.0
0.0
Source B Val_PVMaxCapt
0.0
Analog Value (after
Substitute PV, if
used)
LES
Less Than (A<B)
Source A

Val
0.0
Source B Val_PVMinCapt
0.0

Captured PV Minimum
(excursion) since
last cleared
MOV
Move
Source

Val
0.0

Dest Val_PVMinCapt
0.0

Val

*24(MOV) 25(LES) 25(MOV) 25(GRT) 26(MOV) 27(CMP) 27(GEQ) 28(CMP) 28(GEQ) 29(CMP) 29(LEQ) 30(LEQ) 30(CMP)

Val_PVMaxCapt

*25(MOV) 25(GRT) *26(MOV)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42

Page 25
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_PVMinCapt

25(LES) *25(MOV) *26(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

============================================================
CLEAR CAPTURED MIN / MAX COMMAND PROCESSING
============================================================
This rung "clears" the captured Minimum and Maximum
by setting them to the current PV Value.
##### V2.0-00 2011-09-30: New Min / Max Capture function added #####
Operator Command to
Clear the captured
min / max PV
excursion values
OCmd_ClearCapt

Operator Command to
Clear the captured
min / max PV
excursion values
OCmd_ClearCapt
U

Program Command to
Clear the captured
min / max PV
excursion values
PCmd_ClearCapt

Program Command to
Clear the captured
min / max PV
excursion values
PCmd_ClearCapt
U

26

Captured PV Maximum
(excursion) since
last cleared
MOV
Move
Source

Val
0.0

Dest Val_PVMaxCapt
0.0

Captured PV Minimum
(excursion) since
last cleared
MOV
Move
Source

Val
0.0

Dest Val_PVMinCapt
0.0

OCmd_ClearCapt

*26(OTU) 26(XIC)

PCmd_ClearCapt

*26(OTU) 26(XIC)

Val

*24(MOV) 25(MOV) 25(LES) 25(GRT) 26(MOV) 27(CMP) 27(GEQ) 28(GEQ) 28(CMP) 29(LEQ) 29(CMP) 30(LEQ) 30(CMP)

Val_PVMaxCapt

*25(MOV) 25(GRT) *26(MOV)

Val_PVMinCapt

*25(MOV) 25(LES) *26(MOV)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 26
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ANALOG THRESHOLD STATUS PROCESSING
============================================================
If the Analog Value exceeds the High-High limit for the On-Delay Time,
issue the PV High-High Status.
If the Analog Value falls back below the limit (minus deadband) for the
Off-Delay Time, clear the PV High-High Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

27

##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####


##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
High-High Status
High-High Status
used)
On-Dealy Timer
On-Dealy Timer
GEQ
TON
TON
Grtr Than or Eql (A>=B)
Timer On Delay
EN
Timer On Delay
Val
Timer Wrk_HiHiOnDlyT
DN
Timer Wrk_HiHiOnDlyT
Source A
0.0
Preset
0
Preset
0
Source B Val_HiHiLim
Accum
0
Accum
0
1.50000000e+038

CMP
Compare
Expression Val<(Val_HiHiLim-Cfg_HiHiDB)

High-High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiHiOffDlyT
Preset
0
Accum
0

High-High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiHiOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

High-High Status
On-Dealy Timer
Wrk_HiHiOnDlyT.DN

Internal flag:
High-High Status
Wrk_HiHi
L

High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT.DN

Internal flag:
High-High Status
Wrk_HiHi
U

Internal flag:
High-High Status
Wrk_HiHi

1=Analog Input is
above High-High
limit
Sts_HiHi
<HiHi.Inp>

Cfg_HiHiDB

6(LES) 27(CMP)

Sts_HiHi

*27(OTE) 33(XIC)

Val

*24(MOV) 25(LES) 25(GRT) 25(MOV) 26(MOV) 27(GEQ) 27(CMP) 28(GEQ) 28(CMP) 29(LEQ) 29(CMP) 30(CMP) 30(LEQ)

Val_HiHiLim

7(MOV) *7(MOV) 27(CMP) 27(GEQ)

Wrk_HiHi

*27(OTL) *27(OTU) 27(XIC)

Wrk_HiHiOffDlyT

*27(TON)

Wrk_HiHiOffDlyT.DN

27(XIC)

Wrk_HiHiOnDlyT

*27(TON)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Wrk_HiHiOnDlyT.DN

Page 27
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

27(XIC)

If the Analog Value exceeds the High limit for the On-Delay Time,
issue the PV High Status.
If the Analog Value falls back below the limit (minus deadband) for the
Off-Delay Time, clear the PV High Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

28

##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####


##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
High Status On-Delay
High Status On-Delay
used)
Timer
Timer
GEQ
TON
TON
Grtr Than or Eql (A>=B)
Timer On Delay
EN
Timer On Delay
Source A
Val
Timer Wrk_HiOnDlyT
DN
Timer Wrk_HiOnDlyT
0.0
Preset
0
Preset
0
Source B
Val_HiLim
Accum
0
Accum
0
1.50000000e+038

CMP
Compare
Expression Val<(Val_HiLim-Cfg_HiDB)

High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiOffDlyT
Preset
0
Accum
0

High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

High Status On-Delay


Timer
Wrk_HiOnDlyT.DN

Internal flag: High


Status
Wrk_Hi
L

High Status
Off-Delay Timer
Wrk_HiOffDlyT.DN

Internal flag: High


Status
Wrk_Hi
U

Internal flag: High


Status
Wrk_Hi

1=Analog Input is
above High limit
Sts_Hi
<Hi.Inp>

Cfg_HiDB

6(LES) 28(CMP)

Sts_Hi

*28(OTE) 33(XIC)

Val

*24(MOV) 25(MOV) 25(LES) 25(GRT) 26(MOV) 27(GEQ) 27(CMP) 28(GEQ) 28(CMP) 29(LEQ) 29(CMP) 30(CMP) 30(LEQ)

Val_HiLim

*7(MOV) 7(MOV) 28(CMP) 28(GEQ)

Wrk_Hi

*28(OTU) 28(XIC) *28(OTL)

Wrk_HiOffDlyT

*28(TON)

Wrk_HiOffDlyT.DN

28(XIC)

Wrk_HiOnDlyT

*28(TON)

Wrk_HiOnDlyT.DN

28(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42

Page 28
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If the Analog Value falls below the Low limit for the On-Delay Time,
issue the PV Low Status.
If the Analog Value rises back above the limit (plus deadband) for the
Off-Delay Time, clear the PV Low Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

29

##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####


##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
Low Status On-Delay
Low Status On-Delay
used)
Timer
Timer
LEQ
TON
TON
Less Than or Eql (A<=B)
Timer On Delay
EN
Timer On Delay
Source A
Val
Timer Wrk_LoOnDlyT
DN
Timer Wrk_LoOnDlyT
0.0
Preset
0
Preset
0
Source B
Val_LoLim
Accum
0
Accum
0
-1.50000000e+038

CMP
Compare
Expression Val>(Val_LoLim+Cfg_LoDB)

Low Status Off-Delay


Timer
TON
Timer On Delay
Timer Wrk_LoOffDlyT
Preset
0
Accum
0

Low Status Off-Delay


Timer
TON
Timer On Delay
Timer Wrk_LoOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

Low Status On-Delay


Timer
Wrk_LoOnDlyT.DN

Internal flag: Low


Status
Wrk_Lo
L

Low Status Off-Delay


Timer
Wrk_LoOffDlyT.DN

Internal flag: Low


Status
Wrk_Lo
U

Internal flag: Low


Status
Wrk_Lo

1=Analog Input is
below Low limit
Sts_Lo
<Lo.Inp>

Cfg_LoDB

6(LES) 29(CMP)

Sts_Lo

*29(OTE) 33(XIC)

Val

*24(MOV) 25(GRT) 25(MOV) 25(LES) 26(MOV) 27(CMP) 27(GEQ) 28(CMP) 28(GEQ) 29(LEQ) 29(CMP) 30(LEQ) 30(CMP)

Val_LoLim

*7(MOV) 7(MOV) 29(CMP) 29(LEQ)

Wrk_Lo

*29(OTL) *29(OTU) 29(XIC)

Wrk_LoOffDlyT

*29(TON)

Wrk_LoOffDlyT.DN

29(XIC)

Wrk_LoOnDlyT

*29(TON)

Wrk_LoOnDlyT.DN

29(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42

Page 29
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If the Analog Value falls below the Low-Low limit for the On-Delay Time,
issue the PV Low-Low Status.
If the Analog Value rises back above the limit (plus deadband) for the
Off-Delay Time, clear the PV Low-Low Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####
##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
used)
LEQ
Less Than or Eql (A<=B)
Source A
Val
0.0
Source B Val_LoLoLim
-1.50000000e+038

30

Low-Low Status
On-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOnDlyT
Preset
0
Accum
0

Low-Low Status
On-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOnDlyT
Preset
0
Accum
0

CMP
Compare
Expression Val>(Val_LoLoLim+Cfg_LoLoDB)

Low-Low Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOffDlyT
Preset
0
Accum
0

Low-Low Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

EN
DN

Low-Low Status
On-Delay Timer
Wrk_LoLoOnDlyT.DN

Internal flag:
Low-Low Status
Wrk_LoLo
L

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT.DN

Internal flag:
Low-Low Status
Wrk_LoLo
U

Internal flag:
Low-Low Status
Wrk_LoLo

1=Analog Input is
below Low-Low limit
Sts_LoLo
<LoLo.Inp>

Cfg_LoLoDB

6(LES) 30(CMP)

Sts_LoLo

*30(OTE) 33(XIC)

Val

*24(MOV) 25(MOV) 25(GRT) 25(LES) 26(MOV) 27(GEQ) 27(CMP) 28(CMP) 28(GEQ) 29(CMP) 29(LEQ) 30(CMP) 30(LEQ)

Val_LoLoLim

*7(MOV) 7(MOV) 30(CMP) 30(LEQ)

Wrk_LoLo

*30(OTL) *30(OTU) 30(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Wrk_LoLoOffDlyT

*30(TON)

Wrk_LoLoOffDlyT.DN

30(XIC)

Wrk_LoLoOnDlyT

*30(TON)

Wrk_LoLoOnDlyT.DN

30(XIC)

Page 30
22/12/2015 08,49,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 31
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ANALOG QUALITY / STATUS PROCESSING
============================================================
If the Analog Value rises above the Fail High Limit or falls below the
Fail Low Limit for the On-Delay Time, or if the Bad PV Input is
asserted and the input is not in Simulation, raise a PV Fail Status.
If the Analog Value is back in range, that is, it is below the Fail High Limit (minus
deadband) and above the Fail Low Limit (plus deadband), for the Off-Delay Time,
AND if the Bad PV input clears or the input is Siimulated,
clear the PV Fail Status.
NOTE: The GEQ and LEQ take care of +/- Inf and +/- NaN for us automatically!
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####
##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####

31

Analog Input Value


(actual, before
Substitute PV
selection)
GEQ
Grtr Than or Eql (A>=B)
Val_InpPV
Source A
0.0
Source B Cfg_FailHiLim
103.958336

Fail Status On-Delay


Timer
TON
Timer On Delay
Timer Wrk_FailOnDlyT
Preset
0
Accum
0

EN
DN

Analog Input Value


(actual, before
Substitute PV
selection)
LEQ
Less Than or Eql (A<=B)
Source A
Val_InpPV
0.0
Source B Cfg_FailLoLim
-2.0833333

Fail Status On-Delay


Timer
TON
Timer On Delay
Timer Wrk_FailOnDlyT
Preset
0
Accum
0

EN
DN

CMP
Compare
Expression Val_InpPV<(Cfg_FailHiLim-Cfg_FailDB)

CMP
Compare
Expression Val_InpPV>(Cfg_FailLoLim+Cfg_FailDB)

Fail Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_FailOffDlyT
Preset
0
Accum
0

Fail Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_FailOffDlyT
Preset
0
Accum
0
Fail Status On-Delay
Timer
Wrk_FailOnDlyT.DN

EN
DN

EN
DN

Internal flag: Fail


Status
Wrk_Fail

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 32
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Wrk_FailOnDlyT.DN

1=PV or I/O Comms


Status Bad, 0=OK
Inp_PVBad
Fail Status
Off-Delay Timer
Wrk_FailOffDlyT.DN

Wrk_Fail
L

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/
1=PV or I/O Comms
Status Bad, 0=OK
Inp_PVBad
/

Internal flag: Fail


Status
Wrk_Fail
U

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

Internal flag: Fail


Status
Wrk_Fail

1=Analog Input is
Out of Range or PV
Bad
Sts_Fail
<Fail.Inp>

1=PV Bad quality or


Out of Range
Sts_PVBad

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN

Cfg_FailDB

6(LES) 31(CMP)

Cfg_FailHiLim

31(GEQ) 31(CMP)

Cfg_FailLoLim

31(LEQ) 31(CMP)

Inp_PVBad

31(XIC) 31(XIO)

Inp_Sim

15(XIO) 15(XIC) 16(XIC) 16(XIO) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Sts_Fail

*31(OTE) 33(XIC)

Sts_PVBad

*31(OTE) 33(XIC)

Val_InpPV

*16(MOV) *16(CPT) 17(MOV) 18(MOV) 31(GEQ) 31(CMP) 31(LEQ)

Wrk_Fail

*31(OTU) *31(OTL) 31(XIC)

Wrk_FailOffDlyT

*31(TON)

Wrk_FailOffDlyT.DN

31(XIC)

Wrk_FailOnDlyT

*31(TON)

Wrk_FailOnDlyT.DN

31(XIC)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

1=PV Value Not


Reliable, 0=OK
Inp_PVUncertain
32

Page 33
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


If the PV is not substituted and it has a total Failure (rung above), or if it
is Infinite or Not a Number, flag it as BAD.
If the Uncertain input is set and the PV is not simulated or substituted,
flag it as UNCERTAIN.
1=Use simulated PV
(Set_SimPV); 0=Use
Internal flag: Using
Input (Inp_PV)
Substitute PV
Inp_Sim
Wrk_SubstPV
/
/

Inp_PVUncertain

32(XIC)

Inp_Sim

15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Sts_PVUncertain

*32(OTE) 33(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

1=PV Value is
Uncertain (quality)
Sts_PVUncertain

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 34
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ENUMERATED STATUS VALUES
============================================================
This rung generates the enumerated Device Status:
0 = Normal (PV Good)
5 = PV Uncertain
6 = PV Bad
7 = Substitute PV
33 = Disabled (set in EnableInFalse routine)
And this rung generates the enumerated Device Fault Status:
0 = none
20 = Lo
21 = Hi
24 = Lo-Lo
25 = Hi-Hi
32 = Failed (I/O fault or out of range)
34 = Config Error

33

##### V2.0-02 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Buffer for building
Val_Sts
Val_Fault
CLR
CLR
Clear
Clear
Wrk_Sts
Wrk_Fault
Dest
Dest
0
0
1=PV Value is
Uncertain (quality)
Sts_PVUncertain

Buffer for building


Val_Sts
MOV
Move
Source

1=PV Bad quality or


Out of Range
Sts_PVBad

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Analog Input is
below Low limit
Sts_Lo
<Lo.Inp>

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Analog Input is
above High limit
Sts_Hi
<Hi.Inp>

20

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Analog Input is
below Low-Low limit
Sts_LoLo
<LoLo.Inp>

21

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Analog Input is
above High-High
limit
Sts_HiHi
<HiHi.Inp>

24

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 35
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


<HiHi.Inp>
Move
Source

1=Analog Input is
Out of Range or PV
Bad
Sts_Fail
<Fail.Inp>

1=Error in Config
(see detail Err_
bits for reason),
display icon
Sts_Err

Device Confirmed Sts


0=PV Good, 5=PV
Uncertain, 6=PV Bad,
7=Substitute PV,
33=Disabled
MOV

Sts_Err

*6(OTE) 33(XIC)

Sts_Fail

*31(OTE) 33(XIC)

Sts_Hi

*28(OTE) 33(XIC)

Sts_HiHi

*27(OTE) 33(XIC)

Sts_Lo

*29(OTE) 33(XIC)

Sts_LoLo

*30(OTE) 33(XIC)

Sts_PVBad

*31(OTE) 33(XIC)

Sts_PVUncertain

*32(OTE) 33(XIC)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

Val_Fault

*33(MOV)

Val_Sts

*33(MOV)

Wrk_Fault

*33(CLR) *33(MOV) 33(MOV)

Wrk_Sts

*33(CLR) 33(MOV) *33(MOV)

Dest Wrk_Fault
0

32

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

Wrk_Sts
0

25

Buffer for building


Val_Fault
MOV
Move
Source

Move
Source

MOV

Dest

34

Dest Wrk_Fault
0

Device Fault Status


0=none, 20=Lo,
21=Hi, 24=LoLo,
25=HiHi, 32=Fail,
34=CfgErr
MOV
Val_Sts
0

Move
Source Wrk_Fault
0

Dest Val_Fault
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 36
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ALARM PROCESSING
============================================================
Pass the Cfg_PCmdClear configuration down to each P_Alarm instance.
##### V2.0-01 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01 #####
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

High-High Alarm
1=Clear Program
Commands on receipt
0=Leave Set
HiHi.Cfg_PCmdClear

High Alarm 1=Clear


Program Commands on
receipt
0=Leave Set
Hi.Cfg_PCmdClear

Low Alarm 1=Clear


Program Commands on
receipt
0=Leave Set
Lo.Cfg_PCmdClear

Low-Low Alarm
1=Clear Program
Commands on receipt
0=Leave Set
LoLo.Cfg_PCmdClear

34
Analog Input Failure
Alarm (bad quality
or out of range)
1=Clear Program
Commands on receipt
0=Leave Set
Fail.Cfg_PCmdClear

Cfg_PCmdClear

14(XIC) 34(XIC)

Fail.Cfg_PCmdClear

*34(OTE)

Hi.Cfg_PCmdClear

*34(OTE)

HiHi.Cfg_PCmdClear

*34(OTE)

Lo.Cfg_PCmdClear

*34(OTE)

LoLo.Cfg_PCmdClear

*34(OTE)

Handle PV High-High Alarm Processing using the standard P_Alarm AOI.


High-High Alarm
P_Alarm
Alarm
P_Alarm
HiHi ...
Inp
1
Inp_Reset
0

35

HiHi

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*35(P_Alarm)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 37
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Handle PV High Alarm Processing using the standard P_Alarm AOI.
High Alarm
P_Alarm
Alarm
P_Alarm
Hi ...
Inp
1
Inp_Reset
0

36

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

Hi

*36(P_Alarm)

Handle PV Low Alarm Processing using the standard P_Alarm AOI.


Low Alarm
P_Alarm
Alarm
P_Alarm
Lo ...
Inp
1
Inp_Reset
0

37

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

Lo

*37(P_Alarm)

Handle PV Low-Low Alarm Processing using the standard P_Alarm AOI.


Low-Low Alarm
P_Alarm
Alarm
P_Alarm
LoLo ...
Inp
1
Inp_Reset
0

38

LoLo

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*38(P_Alarm)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 38
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Handle Input Failure Alarm Processing using the standard P_Alarm AOI.
Analog Input Failure
Alarm (bad quality
or out of range)
P_Alarm
Alarm
P_Alarm
Fail ...
Inp
1
Inp_Reset
0

39

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

Fail

*39(P_Alarm)

If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit


summary status bit (which puts the "I" box on the graphic symbol).
High-High Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
HiHi.Sts_AlmInh

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh

40
High Alarm 1=Alarm
has been inhibited,
disabled or
suppressed, display
"I" icon
Hi.Sts_AlmInh
Low Alarm 1=Alarm
has been inhibited,
disabled or
suppressed, display
"I" icon
Lo.Sts_AlmInh
Low-Low Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
LoLo.Sts_AlmInh
Analog Input Failure
Alarm (bad quality
or out of range)
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
Fail.Sts_AlmInh

Fail.Sts_AlmInh

40(XIC)

Hi.Sts_AlmInh

40(XIC)

HiHi.Sts_AlmInh

40(XIC)

Lo.Sts_AlmInh

40(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
LoLo.Sts_AlmInh

40(XIC)

Sts_AlmInh

*40(OTE)

Page 39
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 40
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).

41

##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and added the Rdy_Reset and Rdy_ResetAckAll logic. #####
Buffer for building
Val_Notify
CLR
Clear
Wrk_Notify
Dest
0
High-High Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A HiHi.Val_Notify
0
Source B
Wrk_Notify
0
High Alarm Current
Alarm Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A Hi.Val_Notify
0
Source B
Wrk_Notify
0
Low Alarm Current
Alarm Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A Lo.Val_Notify
0
Source B
Wrk_Notify
0
Low-Low Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A LoLo.Val_Notify
0
Source B
Wrk_Notify
0
Analog Input Failure
Alarm (bad quality
or out of range)
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A Fail.Val_Notify
0
Source B
Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source HiHi.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source Hi.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source Lo.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source LoLo.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source Fail.Val_Notify
0

Dest Wrk_Notify
0

High-High Alarm

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 41
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


High-High Alarm
Ready to receive
1=At least one Alarm
OCmd_Ack (enable
requires Reset or
button)
Acknowledgement
HiHi.Rdy_Ack
Rdy_ResetAckAll

Buffer for building


Val_Notify
Wrk_Notify.0

High Alarm Ready to


receive OCmd_Ack
(enable button)
Hi.Rdy_Ack
Low Alarm Ready to
receive OCmd_Ack
(enable button)
Lo.Rdy_Ack
Low-Low Alarm Ready
to receive OCmd_Ack
(enable button)
LoLo.Rdy_Ack
Analog Input Failure
Alarm (bad quality
or out of range)
Ready to receive
OCmd_Ack (enable
button)
Fail.Rdy_Ack
High-High Alarm
Ready to receive
OCmd_Reset (enable
button)
HiHi.Rdy_Reset

1=At least one Alarm


requires Reset
Rdy_Reset

High Alarm Ready to


receive OCmd_Reset
(enable button)
Hi.Rdy_Reset
Low Alarm Ready to
receive OCmd_Reset
(enable button)
Lo.Rdy_Reset
Low-Low Alarm Ready
to receive
OCmd_Reset (enable
button)
LoLo.Rdy_Reset
Analog Input Failure
Alarm (bad quality
or out of range)
Ready to receive
OCmd_Reset (enable
button)
Fail.Rdy_Reset

Current Alarm Level


and Acknowledgement
(enumeration)
MOV
Move
Source Wrk_Notify
0

Dest Val_Notify
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 42
Fail.Rdy_Ack

41(XIC)

Fail.Rdy_Reset

41(XIC)

Fail.Val_Notify

41(GRT) 41(MOV)

Hi.Rdy_Ack

41(XIC)

Hi.Rdy_Reset

41(XIC)

Hi.Val_Notify

41(MOV) 41(GRT)

HiHi.Rdy_Ack

41(XIC)

HiHi.Rdy_Reset

41(XIC)

HiHi.Val_Notify

41(MOV) 41(GRT)

Lo.Rdy_Ack

41(XIC)

Lo.Rdy_Reset

41(XIC)

Lo.Val_Notify

41(MOV) 41(GRT)

LoLo.Rdy_Ack

41(XIC)

LoLo.Rdy_Reset

41(XIC)

LoLo.Val_Notify

41(MOV) 41(GRT)

Rdy_Reset

*41(OTE)

Rdy_ResetAckAll

*41(OTE)

Val_Notify

*41(MOV)

Wrk_Notify

41(MOV) 41(GRT) *41(MOV) *41(CLR)

Wrk_Notify.0

*41(OTE)

Page 42
22/12/2015 08,49,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

Prescan - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 5
Data Context: P_AIn <definition>

Clear Ownership. clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
CLR
CLR
Clear
Clear
Dest
Dest
PSet_Owner
Val_Owner
0
0

PSet_Owner

*0(CLR)

Val_Owner

*0(CLR)

Page 1
22/12/2015 08,50,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Maintenance Command
to use Input PV
(normal)
MCmd_InpPV
U

MCmd_InpPV

*1(OTU)

MCmd_SubstPV

*1(OTU)

OCmd_Reset

*1(OTU)

OCmd_ResetAckAll

*1(OTU)

PCmd_Reset

*1(OTU)

"Lurking" Operator Commands are cleared, as well as the Program Reset.


Operator Command to
Maintenance Command
Operator Command to
Reset and
to use Substitute PV
Reset all Alarms
Acknowledge all
Alarms
(override input)
requiring Reset
MCmd_SubstPV
OCmd_Reset
OCmd_ResetAckAll
U
U
U

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

Set up the filter initialization one-shot so filter will start from first valid value.
Selected PV goes
from Infinite or Not
a Number to VALID
Wrk_ValidONS
U

Wrk_ValidONS

*2(OTU)

RSLogix 5000

Prescan - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 5
Data Context: P_AIn <definition>

Page 2
22/12/2015 08,50,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership. clear "lurking" Commands


Set up the PV Min/Max Capture function to "clear" on first scan,
thus capturing the first PV value as "min" and "max"
Program Command to
Clear the captured
min / max PV
excursion values
PCmd_ClearCapt
L

PCmd_ClearCapt

*3(OTL)

High-High Status
On-Dealy Timer
Wrk_HiHiOnDlyT
RES

Reset the Threshold Status On-Delay and Off-Delay Timers.


High Status On-Delay
Low Status On-Delay
Low-Low Status
Timer
Timer
On-Delay Timer
Wrk_HiOnDlyT
Wrk_LoOnDlyT
Wrk_LoLoOnDlyT
RES
RES
RES

High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT
RES

Wrk_FailOffDlyT

*4(RES)

Wrk_FailOnDlyT

*4(RES)

Wrk_HiHiOffDlyT

*4(RES)

Wrk_HiHiOnDlyT

*4(RES)

Wrk_HiOffDlyT

*4(RES)

Wrk_HiOnDlyT

*4(RES)

Wrk_LoLoOffDlyT

*4(RES)

Wrk_LoLoOnDlyT

*4(RES)

Wrk_LoOffDlyT

*4(RES)

Wrk_LoOnDlyT

*4(RES)

High Status
Off-Delay Timer
Wrk_HiOffDlyT
RES

Low Status Off-Delay


Timer
Wrk_LoOffDlyT
RES

Fail Status On-Delay


Timer
Wrk_FailOnDlyT
RES

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT
RES

Fail Status
Off-Delay Timer
Wrk_FailOffDlyT
RES

(End)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 1
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this device is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").

THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!
1=Clear Program
1=Clear Program
Commands on receipt
Commands on receipt
0=Leave Set
0=Leave Set
Analog Input Mode
Selection
Cfg_PCmdClear
Cfg_PCmdClear
<Mode.Cfg_PCmdClear> <Mode.Cfg_PCmdClear>
P_Mode
/
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock
Signature ID: C1F72CF2

Cfg_PCmdClear

0(XIC) 0(XIO)

Mode

*0(P_Mode)

First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
Dest Val_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

1(MOV) 1(EQU) 1(NEQ)

Val_Owner

*1(MOV) 1(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 2
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


This rung publishes the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the configuration of a PID, so the AIn and PID ranges are in lockstep.

PV (Output) Maximum
for Scaling to EU
GEQ
Grtr Than or Eql (A>=B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_PVEUMin
0.0

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0

PV (Output) Maximum
for Scaling to EU
LES
Less Than (A<B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Dest Val_PVEUMax
100.0

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_PVEUMax
100.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0

Cfg_PVEUMax

2(LES) 2(GEQ) 2(MOV) 3(EQU) 5(CPT)

Cfg_PVEUMin

2(MOV) 2(LES) 2(GEQ) 3(EQU) 5(MOV) 5(CPT)

Val_PVEUMax

*2(MOV)

Val_PVEUMin

*2(MOV)

Dest Val_PVEUMin
0.0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 3
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


Flag a Configuration Error if the raw input range or scaled PV range
max and min are set the same (invalid range).
Since this Analog Input is disabled, indicate that the PV is bad
(Val is not being updated.)
Indicate that this Analog Input is DISABLED (Val_Sts = 33);
if there is a Configuration Error, indicate that as well (Val_Fault=34).

##### V2.0-02 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
1=A Maintenance
1=PV Bad quality or
Bypass is Active,
Out of Range
display icon
Sts_PVBad
Sts_MaintByp
U
L
Buffer for building
Val_Fault
CLR
Clear
Wrk_Fault
Dest
0

Input (unscaled)
Maximum for Scaling
EQU
Equal
Source A Cfg_InpRawMax
100.0
Source B Cfg_InpRawMin
0.0
PV (Output) Maximum
for Scaling to EU
EQU
Equal
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0
PV Filter Time
Constant (sec),
0.0 = unfiltered
LES
Less Than (A<B)
Source A Cfg_FiltTC
0.0
Source B
0.0

1=Error in Config
(see detail Err_
bits for reason),
display icon
Sts_Err

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw

1=Error in Config:
Scaled EU Min = Max
Err_EU

1=Error in Config:
PV filter params
(RateTime, TC)
Err_Filt

Buffer for building


Val_Fault
MOV
Move
Source

Device Confirmed Sts


0=PV Good, 5=PV
Uncertain, 6=PV Bad,
7=Substitute PV,
33=Disabled
MOV
Move
Source

33

Dest

34

Dest Wrk_Fault
0

Device Fault Status


0=none, 20=Lo,
21=Hi, 24=LoLo,
25=HiHi, 32=Fail,
34=CfgErr
MOV
Val_Sts
0

Move
Source Wrk_Fault
0

Dest Val_Fault
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 4
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


Cfg_FiltTC

3(LES)

Cfg_InpRawMax

3(EQU) 5(CPT)

Cfg_InpRawMin

3(EQU) 5(CPT)

Cfg_PVEUMax

2(LES) 2(GEQ) 2(MOV) 3(EQU) 5(CPT)

Cfg_PVEUMin

2(MOV) 2(LES) 2(GEQ) 3(EQU) 5(MOV) 5(CPT)

Err_EU

*3(OTE) 5(XIO) 5(XIC)

Err_Filt

*3(OTE)

Err_Raw

*3(OTE) 5(XIC) 5(XIO)

Sts_Err

*3(OTE)

Sts_MaintByp

*3(OTU)

Sts_PVBad

*3(OTL)

Val_Fault

*3(MOV)

Val_Sts

*3(MOV)

Wrk_Fault

3(MOV) *3(CLR) *3(MOV)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 5
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


============================================================
ANALOG INPUT PROCESSING
============================================================
This rung checks the bit pattern of the REAL input (by copying to a DINT) to see if
the input is +Infinity, -Infinity or Not a Number. Per ANSI 32-bit Float
format, in these cases the Exponent bits (.30 thru .23) will all be 1s:
0111 1111 1000 0000 0000 0000 0000 0000 = +Infinity
1111 1111 1000 0000 0000 0000 0000 0000 = -Infinity
x111 1111 1xxx xxxx xxxx xxxx xxxx xxxx = Not a Number

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source
Inp_PV
Length
1

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Dest Wrk_InpDINT

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source Set_SimPV
Length
1

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
MEQ
Mask Equal
Source
Wrk_InpDINT
16#0000_0000
Mask
16#7F80_0000
Compare 16#7F80_0000

Dest Wrk_InpDINT

Input is Infinite or
Not a Number
Wrk_InpInfNaN

Inp_PV

4(COP) 5(MOV) 5(CPT)

Inp_Sim

4(XIO) 4(XIC) 5(XIC) 5(XIO)

Set_SimPV

4(COP) 5(MOV)

Wrk_InpDINT

*4(COP) 4(MEQ)

Wrk_InpInfNaN

*4(OTE) 5(XIO) 5(XIC)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 6
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


The Process Variable Input Value (Val_InpP
regardless of the settings of Mode, Substitute PV, etc.

If NOT in simulation, if the scaling configuration is valid, the


In Simulation the Simulated Input must be pro

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
/

1=Error in Config:
Scaled EU Min = Max
Err_EU
/

Input is Infinite or
Not a Number
Wrk_InpInfNaN
/

Compute
Expression (Inp_PV-Cfg_InpRaw

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
1=Error in Config:
Scaled EU Min = Max
Err_EU

Input is Infinite or
Not a Number
Wrk_InpInfNaN

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Cfg_InpRawMax

3(EQU) 5(CPT)

Cfg_InpRawMin

3(EQU) 5(CPT)

Cfg_PVEUMax

2(MOV) 2(LES) 2(GEQ) 3(EQU) 5(CPT)

Cfg_PVEUMin

2(MOV) 2(GEQ) 2(LES) 3(EQU) 5(CPT) 5(MOV)

Err_EU

*3(OTE) 5(XIO) 5(XIC)

Err_Raw

*3(OTE) 5(XIC) 5(XIO)

Inp_PV

4(COP) 5(MOV) 5(CPT)

Inp_Sim

4(XIO) 4(XIC) 5(XIC) 5(XIO)

Set_SimPV

4(COP) 5(MOV)

Val_InpPV

*5(CPT) *5(MOV)

Wrk_InpInfNaN

*4(OTE) 5(XIC) 5(XIO)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 7
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


nput Value (Val_InpPV) shows the scaled input,
de, Substitute PV, etc., EVEN WHEN EnableIn IS FALSE!

figuration is valid, the Raw Input is scaled to Engineering Units.


ated Input must be provided in Engineering Units.
Analog Input Value
(actual, before
Substitute PV
selection)
CPT

(Inp_PV-Cfg_InpRawMin)*(Cfg_PVEUMax-Cfg_PVEUMin)/(Cfg_InpRawMax-Cfg_InpRawMin)+Cfg_PVEUMin

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source

Inp_PV
0.0

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source Set_SimPV
0.0

Maintenance Command
to use Input PV
(normal)
MCmd_InpPV
U

MCmd_InpPV

*6(OTU)

MCmd_SubstPV

*6(OTU)

OCmd_Reset

*6(OTU)

OCmd_ResetAckAll

*6(OTU)

PCmd_Reset

*6(OTU)

Dest Val_InpPV
0.0

"Lurking" Operator Commands are cleared, as well as the Program Reset.


Operator Command to
Maintenance Command
Operator Command to
Reset and
to use Substitute PV
Reset all Alarms
Acknowledge all
(override input)
requiring Reset
Alarms
MCmd_SubstPV
OCmd_Reset
OCmd_ResetAckAll
U
U
U

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 8
22/12/2015 08,51,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


Since we're not processing Operator Commands or Settings, we're not READY for any of them either!
1=At least one Alarm
1=Ready to receive
1=Ready for
1=Ready for
1=At least one Alarm
requires Reset or
OSets (enables data
MCmd_InpPV
MCmd_SubstPV
requires Reset
Acknowledgement
entry fields)
Rdy_InpPV
Rdy_SubstPV
Rdy_Reset
Rdy_ResetAckAll
Rdy_OSet
U
U
U
U
U

Rdy_InpPV

*7(OTU)

Rdy_OSet

*7(OTU)

Rdy_Reset

*7(OTU)

Rdy_ResetAckAll

*7(OTU)

Rdy_SubstPV

*7(OTU)

The first-order filter's scan timer must run and clear every scan, whether the Instruction
is true or not. Doing so here avoids a bump in the Value on transition to EnableIn TRUE.
Scan Timer
Scan Timer
(milliseconds,
(milliseconds,
always runs)
always runs)
TON
CLR
Timer On Delay
EN
Clear
Timer
Wrk_ScanT
DN
Dest Wrk_ScanT.ACC
Preset 2147483647
0
Accum
0

Wrk_ScanT

*8(TON)

Wrk_ScanT.ACC

*8(CLR)

Set up the filter initialization one-shot so filter of "Val" in main Logic


will start from first valid value on transition from false to true.
Selected PV goes
from Infinite or Not
a Number to VALID
Wrk_ValidONS
U

Wrk_ValidONS

*9(OTU)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

10

Page 9
22/12/2015 08,51,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


Reset the Threshold Status On-Delay and Off-Delay Timers.
High-High Status
High Status On-Delay
Low Status On-Delay
Low-Low Status
On-Dealy Timer
Timer
Timer
On-Delay Timer
Wrk_HiHiOnDlyT
Wrk_HiOnDlyT
Wrk_LoOnDlyT
Wrk_LoLoOnDlyT
RES
RES
RES
RES
High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT
RES

Wrk_FailOffDlyT

*10(RES)

Wrk_FailOnDlyT

*10(RES)

Wrk_HiHiOffDlyT

*10(RES)

Wrk_HiHiOnDlyT

*10(RES)

Wrk_HiOffDlyT

*10(RES)

Wrk_HiOnDlyT

*10(RES)

Wrk_LoLoOffDlyT

*10(RES)

Wrk_LoLoOnDlyT

*10(RES)

Wrk_LoOffDlyT

*10(RES)

Wrk_LoOnDlyT

*10(RES)

High Status
Off-Delay Timer
Wrk_HiOffDlyT
RES

Low Status Off-Delay


Timer
Wrk_LoOffDlyT
RES

Fail Status On-Delay


Timer
Wrk_FailOnDlyT
RES

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT
RES

Fail Status
Off-Delay Timer
Wrk_FailOffDlyT
RES

Clear the threshold Status and Alarms.


Clear the Alarm Notify Value, and show the Alarms Inhibited breadcrumb.

11

1=Analog Input is in
High-High Alarm
Alm_HiHi
<HiHi.Alm>
U

1=Analog Input is in
High Alarm
Alm_Hi
<Hi.Alm>
U

1=Analog Input is
above High-High
limit
Sts_HiHi
<HiHi.Inp>
U

1=Analog Input is
above High limit
Sts_Hi
<Hi.Inp>
U

1=Analog Input is in
Low Alarm
Alm_Lo
<Lo.Alm>
U
1=Analog Input is
below Low limit
Sts_Lo
<Lo.Inp>
U

1=Analog Input is in
Low-Low Alarm
Alm_LoLo
<LoLo.Alm>
U
1=Analog Input is
below Low-Low limit
Sts_LoLo
<LoLo.Inp>
U

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh
L

Alm_Fail

*11(OTU)

Alm_Hi

*11(OTU)

Alm_HiHi

*11(OTU)

Alm_Lo

*11(OTU)

Alm_LoLo

*11(OTU)

1=Analog Input
Failure Alarm (PV
Bad or Out of Range)
Alm_Fail
<Fail.Alm>
U
1=Analog Input is
Out of Range or PV
Bad
Sts_Fail
<Fail.Inp>
U

Current Alarm Level


and Acknowledgement
(enumeration)
CLR
Clear
Dest
Val_Notify
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: 12
Sts_AlmInh

*11(OTL)

Sts_Fail

*11(OTU)

Sts_Hi

*11(OTU)

Sts_HiHi

*11(OTU)

Sts_Lo

*11(OTU)

Sts_LoLo

*11(OTU)

Val_Notify

*11(CLR)

Page 10
22/12/2015 08,51,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_Alarm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Page 1
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Alarm v2.0 01 Release


Rockwell Automation

Alarm
Available Languages
Relay Ladder

Function Block

Structured Text
P_Alarm();
Parameters
Required
X

Name
P_Alarm
EnableIn
EnableOut
Inp
Inp_Reset
Cfg_Exists
Cfg_ResetReqd
Cfg_AckReqd
Cfg_PCmdClear

Data Type
P_Alarm
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input
Input
Input
Input
Input
Input

Cfg_Severity
Cfg_AlmMinOnT
PCmd_Reset
PCmd_Ack
PCmd_Inhibit
PCmd_Uninhibit
OCmd_Reset
OCmd_Ack
OCmd_Suppress
OCmd_Unsuppress
MCmd_Disable
MCmd_Enable
Val_Notify
Alm
Ack
Inhibited
Suppressed
Disabled
Sts_AlmInh
Sts_Err
Err_Timer
Err_Severity

SINT
DINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
SINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output

Description
Alarm
Alarm Condition Input 1=Alarm
1=Reset Alarm requiring reset
1=Alarm configured to exist, 0=Does not exist, don't scan
1=Reset required to clear Alarm
1=Acknowledge required for Alarm
1=Clear Program Commands on receipt
0=Leave Set
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Minimum time Alm output stays on (sec)
Program Command to Reset latched alarm
Program Command to Acknowledge alarm
Program Command to Inhibit alarm (force Alm to 0)
Program Command to Uninhibit alarm
Operator Command to Reset latched alarm
Operator Command to Acknowledge alarm
Operator Command to Suppress alarm
Operator Command to Unsuppress alarm
Maintenance Command to Disable alarm (force Alm to 0)
Maintenance Command to Enable alarm
Current Alarm Level and Acknowledgement (enumeration)
Alarm output 1=In Alarm
Alarm acknowledged status: 1=Ack rcvd
1=Alarm has been Inhibited by Program (will not be sent)
1=Alarm has been Suppressed by Operator (not visible on HMI)
1=Alarm has been Disabled by Maintanance (will not be sent)
1=Alarm has been inhibited, disabled or suppressed, display "I" icon
1=Error in Config: see detail Err_ bits for reason
1=Error in Config: Invalid timer preset (use 0 to 2147483)
1=Error in Config: Invalid Severity (use 1 to 4)
RSLogix 5000

P_Alarm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Rdy_Reset
Rdy_Ack
Rdy_Suppress
Rdy_Unsuppress
Rdy_Disable
Rdy_Enable

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Output
Output
Output
Output
Output
Output

Page 2
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Ready to receive OCmd_Reset (enable button)


Ready to receive OCmd_Ack (enable button)
Ready to receive OCmd_Suppress (enable button)
Ready to receive OCmd_Unsuppress (enable button)
Ready to receive MCmd_Disable (enable button)
Ready to receive MCmd_Enable (enable button)

Extended Description
This instruction monitors one input condition and provides one Alarm with:
* configurable latching, acknowledgement, and severity
* configurable minimum ON time (e.g., to ensure it is seen by the HMI)
* commands to inhibit/uninhibit (Prog), suppress/unsuppress (Oper)
and disable/enable (Maint) the alarm.
* FTA&E support for suppress/unsuppress and disable/enable.
NOTE regarding parameter naming:
FTA&E names (same as ALMD instruction) are used instead
of the ANSI/ISA 18.2-2009 names, as follows:
"Disabled" is the equivalent of "Out of Service" in ISA 18.2.
"Suppressed" is the equivalent of "Shelved" in ISA 18.2.
"Inhibited" is the equivalent of "Suppressed by Design" in ISA 18.2.
This instruction is usually nested within other instructions, with one instance
used for each Alarm generated by the containing instruction. It may also be
used as a standalone instruction for Alarm conditions generated by custom logic.

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress
Clear "lurking" Commands

Revision v2.0 01 Release Notes


Edge/Level Configuration for PCmd_Inhibit, PCmd_Uninhibit.
Change History
Created:
Created By:
Edited:
Edited By:

29/02/2008 02,40,04
Not Available
23/08/2012 01,28,51
PLANTPAX\Library

Signature
ID:
Timestamp:

8815AF7A
2012-08-23T19:28:51.441Z

Cross Reference
Container
P_AIn
P_AIn
P_AIn
P_AIn
P_AIn
P_AOut
P_AOut
P_DIn
P_DIn
P_DoseFM

Routine
Logic
Logic
Logic
Logic
Logic
Logic
Logic
EnableInFalse
Logic
Logic

Location
Rung 35
Rung 36
Rung 37
Rung 38
Rung 39
Rung 36
Rung 37
Rung 18
Rung 19
Rung 55

Tag
HiHi
Hi
Lo
LoLo
Fail
IntlkTrip
IOFault
TgtDisagree
TgtDisagree
OverTol
RSLogix 5000

P_Alarm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

P_DoseFM
P_DoseFM
P_DoseFM
P_Motor
P_Motor
P_Motor
P_Motor
P_ValveSO
P_ValveSO
P_ValveSO
P_ValveSO

Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic

Rung 56
Rung 57
Rung 58
Rung 37
Rung 38
Rung 39
Rung 40
Rung 45
Rung 46
Rung 47
Rung 48

Page 3
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

UnderTol
ZeroFault
EqpFault
FailToStart
FailToStop
IntlkTrip
IOFault
FullStall
TransitStall
IntlkTrip
IOFault

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 4
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
Data Type
Scope
1
BOOL
P_Alarm
Ack
Alarm acknowledged status: 1=Ack rcvd
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Ack - P_Alarm/EnableInFalse - *11(OTL), *13(OTU), *16(OTL), *2(OTL), *9(OTL), 14(XIO), 15(XIO), 16(XIO)
Ack - P_Alarm/Logic - *11(OTL), *13(OTU), *16(OTL), *2(OTL), *9(OTL), 14(XIO), 15(XIO), 16(XIO)
0
Alm
Alarm output 1=In Alarm
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Alm - P_Alarm/EnableInFalse - *16(OTE)
Alm - P_Alarm/Logic - *16(OTE)

BOOL

P_Alarm

1
Cfg_AckReqd
1=Acknowledge required for Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_AckReqd - P_Alarm/EnableInFalse - 16(XIO)
Cfg_AckReqd - P_Alarm/Logic - 16(XIO)

BOOL

P_Alarm

5
Cfg_AlmMinOnT
Minimum time Alm output stays on (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_AlmMinOnT - P_Alarm/EnableInFalse - 0(MUL)
Cfg_AlmMinOnT - P_Alarm/Logic - 0(MUL)

DINT

P_Alarm

1
BOOL
Cfg_Exists
1=Alarm configured to exist, 0=Does not exist, don't scan
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Exists - P_Alarm/EnableInFalse - 0(XIC), 15(XIC), 16(XIC), 2(XIO)
Cfg_Exists - P_Alarm/Logic - 0(XIC), 15(XIC), 16(XIC), 2(XIO)

P_Alarm

1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PCmdClear - P_Alarm/EnableInFalse - 3(XIC), 4(XIO)
Cfg_PCmdClear - P_Alarm/Logic - 3(XIC), 4(XIO)
Cfg_PCmdClear - P_Alarm/Prescan - 0(XIC)

BOOL

P_Alarm

0
Cfg_ResetReqd
1=Reset required to clear Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ResetReqd - P_Alarm/EnableInFalse - 11(XIC), 12(XIO), 15(XIC)
Cfg_ResetReqd - P_Alarm/Logic - 11(XIC), 12(XIO), 15(XIC)

BOOL

P_Alarm

3
Cfg_Severity
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault

SINT

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>
Cfg_Severity (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Severity - P_Alarm/EnableInFalse - 0(LIM)
Cfg_Severity - P_Alarm/Logic - 0(LIM)
1
Cfg_Severity.0
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Cfg_Severity.0 - P_Alarm/EnableInFalse - 16(XIC)
Cfg_Severity.0 - P_Alarm/Logic - 16(XIC)
1
Cfg_Severity.1
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Cfg_Severity.1 - P_Alarm/EnableInFalse - 16(XIC)
Cfg_Severity.1 - P_Alarm/Logic - 16(XIC)
0
Cfg_Severity.2
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Cfg_Severity.2 - P_Alarm/EnableInFalse - 16(XIC)
Cfg_Severity.2 - P_Alarm/Logic - 16(XIC)

Page 5
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL

BOOL

BOOL

0
BOOL
P_Alarm
Disabled
1=Alarm has been Disabled by Maintanance (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Disabled - P_Alarm/EnableInFalse - *2(OTU), *7(OTL), *8(OTU), 10(XIO), 11(XIC), 15(XIC), 15(XIO), 16(XIC)
Disabled - P_Alarm/Logic - *2(OTU), *7(OTL), *8(OTU), 10(XIO), 11(XIC), 15(XIC), 15(XIO), 16(XIC)
1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Alarm

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Alarm

0
Err_Severity
1=Error in Config: Invalid Severity (use 1 to 4)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Severity - P_Alarm/EnableInFalse - *0(OTE)
Err_Severity - P_Alarm/Logic - *0(OTE)

BOOL

P_Alarm

0
Err_Timer
1=Error in Config: Invalid timer preset (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_Alarm/EnableInFalse - *0(OTE)
Err_Timer - P_Alarm/Logic - *0(OTE)

BOOL

P_Alarm

0
Inhibited
1=Alarm has been Inhibited by Program (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 6
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inhibited (Continued)
Inhibited - P_Alarm/EnableInFalse - *16(OTE), 16(XIC)
Inhibited - P_Alarm/Logic - *16(OTE), 16(XIC)
1
Inp
Alarm Condition Input 1=Alarm
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Inp - P_Alarm/EnableInFalse - 10(XIO)
Inp - P_Alarm/Logic - 10(XIC)

BOOL

P_Alarm

0
Inp_Reset
1=Reset Alarm requiring reset
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Reset - P_Alarm/EnableInFalse - 11(XIC)
Inp_Reset - P_Alarm/Logic - 11(XIC)

BOOL

P_Alarm

0
MCmd_Disable
Maintenance Command to Disable alarm (force Alm to 0)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Disable - P_Alarm/EnableInFalse - *2(OTU), *7(OTU), 7(XIC)
MCmd_Disable - P_Alarm/Logic - *2(OTU), *7(OTU), 7(XIC)
MCmd_Disable - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
MCmd_Enable
Maintenance Command to Enable alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Enable - P_Alarm/EnableInFalse - *2(OTU), *8(OTU), 8(XIC)
MCmd_Enable - P_Alarm/Logic - *2(OTU), *8(OTU), 8(XIC)
MCmd_Enable - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
OCmd_Ack
Operator Command to Acknowledge alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Ack - P_Alarm/EnableInFalse - *2(OTU), *9(OTU), 9(XIC)
OCmd_Ack - P_Alarm/Logic - *2(OTU), *9(OTU), 9(XIC)
OCmd_Ack - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
OCmd_Reset
Operator Command to Reset latched alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_Alarm/EnableInFalse - *11(OTU), *2(OTU), 11(XIC)
OCmd_Reset - P_Alarm/Logic - *11(OTU), *2(OTU), 11(XIC)
OCmd_Reset - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
OCmd_Suppress
Operator Command to Suppress alarm
Usage:
Input Parameter
Required:
No
Visible:
No

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 7
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OCmd_Suppress (Continued)
External Access:
Read/Write
OCmd_Suppress - P_Alarm/EnableInFalse - *2(OTU), *5(OTU), 5(XIC)
OCmd_Suppress - P_Alarm/Logic - *2(OTU), *5(OTU), 5(XIC)
OCmd_Suppress - P_Alarm/Prescan - *0(OTU)
0
BOOL
OCmd_Unsuppress
Operator Command to Unsuppress alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Unsuppress - P_Alarm/EnableInFalse - *2(OTU), *6(OTU), 6(XIC)
OCmd_Unsuppress - P_Alarm/Logic - *2(OTU), *6(OTU), 6(XIC)
OCmd_Unsuppress - P_Alarm/Prescan - *0(OTU)

P_Alarm

0
PCmd_Ack
Program Command to Acknowledge alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Ack - P_Alarm/EnableInFalse - *2(OTU), *9(OTU), 9(XIC)
PCmd_Ack - P_Alarm/Logic - *2(OTU), *9(OTU), 9(XIC)
PCmd_Ack - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
BOOL
PCmd_Inhibit
Program Command to Inhibit alarm (force Alm to 0)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Inhibit - P_Alarm/EnableInFalse - *2(OTU), *3(OTU), 3(XIC), 4(XIO)
PCmd_Inhibit - P_Alarm/Logic - *2(OTU), *3(OTU), 3(XIC), 4(XIO)
PCmd_Inhibit - P_Alarm/Prescan - *0(OTU)

P_Alarm

0
PCmd_Reset
Program Command to Reset latched alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_Alarm/EnableInFalse - *11(OTU), *2(OTU), 11(XIC)
PCmd_Reset - P_Alarm/Logic - *11(OTU), *2(OTU), 11(XIC)
PCmd_Reset - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
BOOL
PCmd_Uninhibit
Program Command to Uninhibit alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Uninhibit - P_Alarm/EnableInFalse - *2(OTU), *4(OTU), 4(XIC)
PCmd_Uninhibit - P_Alarm/Logic - *2(OTU), *4(OTU), 4(XIC)
PCmd_Uninhibit - P_Alarm/Prescan - *0(OTU)

P_Alarm

0
Rdy_Ack
Ready to receive OCmd_Ack (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Ack - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Ack - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Rdy_Disable
Ready to receive MCmd_Disable (enable button)

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 8
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Rdy_Disable (Continued)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Disable - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Disable - P_Alarm/Logic - *15(OTE)
0
Rdy_Enable
Ready to receive MCmd_Enable (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Enable - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Enable - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Rdy_Reset
Ready to receive OCmd_Reset (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_Alarm/EnableInFalse - *15(OTE), 16(XIC)
Rdy_Reset - P_Alarm/Logic - *15(OTE), 16(XIC)

BOOL

P_Alarm

0
Rdy_Suppress
Ready to receive OCmd_Suppress (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Suppress - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Suppress - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Rdy_Unsuppress
Ready to receive OCmd_Unsuppress (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Unsuppress - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Unsuppress - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Sts_AlmInh
1=Alarm has been inhibited, disabled or suppressed, display "I" icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_Alarm/EnableInFalse - *16(OTE)
Sts_AlmInh - P_Alarm/Logic - *16(OTE)

BOOL

P_Alarm

0
Sts_Err
1=Error in Config: see detail Err_ bits for reason
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Err - P_Alarm/EnableInFalse - *0(OTE)
Sts_Err - P_Alarm/Logic - *0(OTE)

BOOL

P_Alarm

0
Suppressed
1=Alarm has been Suppressed by Operator (not visible on HMI)
Usage:
Output Parameter
Required:
No
Visible:
Yes

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 9
22/12/2015 08,52,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Suppressed (Continued)
External Access:
Read/Write
Suppressed - P_Alarm/EnableInFalse - *2(OTU), *5(OTL), *6(OTU), 11(XIC), 15(XIC), 15(XIO), 16(XIC), 16(XIO)
Suppressed - P_Alarm/Logic - *2(OTU), *5(OTL), *6(OTU), 11(XIC), 15(XIC), 15(XIO), 16(XIC), 16(XIO)
0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
0
Val_Notify.0
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.0 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.0 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.1
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.1 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.1 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.2
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.2 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.2 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.3
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.3 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.3 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.4
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.4 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.4 - P_Alarm/Logic - *16(OTU)
0
Val_Notify.5
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.5 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.5 - P_Alarm/Logic - *16(OTU)
0
Val_Notify.6
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.6 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.6 - P_Alarm/Logic - *16(OTU)
0
Val_Notify.7
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.7 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.7 - P_Alarm/Logic - *16(OTU)

SINT

P_Alarm

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

RSLogix 5000

P_Alarm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Context: P_Alarm <definition>

Page 10
22/12/2015 08,52,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
Data Type
0
BOOL
Wrk_Abnormal
Abnormal: Input in Alarm state, and not disabled or inhibited
Usage:
Local Tag
External Access:
None
Wrk_Abnormal - P_Alarm/EnableInFalse - *10(OTE), 11(XIO), 12(XIO), 13(XIC), 15(XIO)
Wrk_Abnormal - P_Alarm/Logic - *10(OTE), 11(XIO), 12(XIO), 13(XIC), 15(XIO)

Scope
P_Alarm

0
BOOL
Wrk_Alm
Internal Alarm Status
Usage:
Local Tag
External Access:
None
Wrk_Alm - P_Alarm/EnableInFalse - *11(OTU), *12(OTU), *13(OTL), *2(OTU), 13(XIO), 15(XIC), 16(XIC)
Wrk_Alm - P_Alarm/Logic - *11(OTU), *12(OTU), *13(OTL), *2(OTU), 13(XIO), 15(XIC), 16(XIC)

P_Alarm

TIMER
Wrk_AlmMinOnT
Alarm output minimum ON time to be seen by alarm server
Usage:
Local Tag
External Access:
None
Wrk_AlmMinOnT - P_Alarm/EnableInFalse - *16(TON), *2(RES)
Wrk_AlmMinOnT - P_Alarm/Logic - *16(TON), *2(RES)
5000
DINT
Wrk_AlmMinOnT.PRE
Alarm output minimum ON time to be seen by alarm server
Wrk_AlmMinOnT.PRE - P_Alarm/EnableInFalse - *0(MOV), *0(MUL), *1(MOV), 1(LES)
Wrk_AlmMinOnT.PRE - P_Alarm/Logic - *0(MOV), *0(MUL), *1(MOV), 1(LES)
0
BOOL
Wrk_AlmMinOnT.PRE.31
Alarm output minimum ON time to be seen by alarm server
Wrk_AlmMinOnT.PRE.31 - P_Alarm/EnableInFalse - 0(XIC)
Wrk_AlmMinOnT.PRE.31 - P_Alarm/Logic - 0(XIC)
0
DINT
Wrk_AlmMinOnT.ACC
Alarm output minimum ON time to be seen by alarm server
0
BOOL
Wrk_AlmMinOnT.EN
Alarm output minimum ON time to be seen by alarm server
0
BOOL
Wrk_AlmMinOnT.TT
Alarm output minimum ON time to be seen by alarm server
Wrk_AlmMinOnT.TT - P_Alarm/EnableInFalse - 12(XIO)
Wrk_AlmMinOnT.TT - P_Alarm/Logic - 12(XIO)
0
BOOL
Wrk_AlmMinOnT.DN
Alarm output minimum ON time to be seen by alarm server

P_Alarm

0
Wrk_AutoAckONS
Alarm Unacknowledged ONS for AutoAck Timer
Usage:
Local Tag
External Access:
None
Wrk_AutoAckONS - P_Alarm/EnableInFalse - *14(ONS)
Wrk_AutoAckONS - P_Alarm/Logic - *14(ONS)

P_Alarm

BOOL

TIMER
Wrk_AutoAckT
Time to clear Ack bit when Ack not required
Usage:
Local Tag
External Access:
None
Wrk_AutoAckT - P_Alarm/EnableInFalse - *14(TOF)
Wrk_AutoAckT - P_Alarm/Logic - *14(TOF)
5000
DINT
Wrk_AutoAckT.PRE
Time to clear Ack bit when Ack not required
Wrk_AutoAckT.PRE - P_Alarm/EnableInFalse - *1(MOV)
Wrk_AutoAckT.PRE - P_Alarm/Logic - *1(MOV)
0
DINT
Wrk_AutoAckT.ACC
Time to clear Ack bit when Ack not required
0
BOOL
Wrk_AutoAckT.EN
Time to clear Ack bit when Ack not required
0
BOOL
Wrk_AutoAckT.TT
Time to clear Ack bit when Ack not required
0
BOOL
Wrk_AutoAckT.DN
Time to clear Ack bit when Ack not required
Wrk_AutoAckT.DN - P_Alarm/EnableInFalse - 11(XIO), 15(XIO), 16(XIO), 2(XIO), 9(XIO)
Wrk_AutoAckT.DN - P_Alarm/Logic - 11(XIO), 15(XIO), 16(XIO), 2(XIO), 9(XIO)

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Context: P_Alarm <definition>

0
BOOL
Wrk_Inhibited
Internal Alarm Inhibit Status
Usage:
Local Tag
External Access:
None
Wrk_Inhibited - P_Alarm/EnableInFalse - *2(OTU), *3(OTL), *4(OTU), 10(XIO), 16(XIC)
Wrk_Inhibited - P_Alarm/Logic - *2(OTU), *3(OTL), *4(OTU), 10(XIO), 16(XIC)

Page 11
22/12/2015 08,52,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 12
22/12/2015 08,52,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
P_Alarm: PROCESS -- ALARM (sub-block)
============================================================
Revision 2.0-01 Release: 2012-07-17
V2.0-00 2011-09-30: Removed MinDuration timer (On-Delay and Off-Delay
timing has been pushed to containing instruction's / routine's respondibility).
Added separate "Auto Ack" timer and method for Ack Not Required
(to be compatible with View 32 / ME / SE Legacy alarming).
Added Sts_AlmInh for "Alarm Inhibited" breadcrumb.
Added Cfg_AlmMinOnT to make the minimum Alm ON time configurable.
No longer automatically Acknowledge or Reset on Program Inhibit.
Fixed Disable logic to clearm alarm when Reset Required in order to
aligned Disable behavior with that of FTA&E Tag Alarm Server.
V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear.
============================================================
This instruction monitors one input condition and provides one Alarm with:
* configurable latching, acknowledgement, and severity
* configurable minimum ON time (e.g., to ensure it is seen by the HMI)
* commands to inhibit/uninhibit (Prog), suppress/unsuppress (Oper)
and disable/enable (Maint) the alarm.
* FTA&E support for suppress/unsuppress and disable/enable.
NOTE regarding parameter naming:
FTA&E names (same as ALMD instruction) are used instead
of the ANSI/ISA 18.2-2009 names, as follows:
"Disabled" is the equivalent of "Out of Service" in ISA 18.2.
"Suppressed" is the equivalent of "Shelved" in ISA 18.2.
"Inhibited" is the equivalent of "Suppressed by Design" in ISA 18.2.
This instruction is usually nested within other instructions, with one instance
used for each Alarm generated by the containing instruction. It may also be
used as a standalone instruction for Alarm conditions generated by custom logic.
============================================================
POWERUP / INVALID STATE HANDLING
============================================================
All internal Work (state) bits maintain states through a power cycle and are
independent. No first-scan logic is required. See the Prescan routine for
powerup / prescan code.
============================================================
CONFIGURATION
============================================================
This rung gets the Alarm Minimum ON Time Configuration
value and sets the corresponding timer preset.
If the Minimum ON Time Configuration results in a timer preset
that is negative or less than 5 seconds, the preset is set to
5 seconds. The bad Config is flagged (Err_Timer).
Bad Config is also flagged if the Cfg_Severity is out of range (valid = 1..4)
##### V2.0-00 2011-09-30: Removed configuration for Min Duration, #####
##### added Configuration for Minimum ON Time. #####
1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
0

Alarm output minimum


ON time to be seen
by alarm server
MUL
Multiply
Source A Cfg_AlmMinOnT
5
Source B
1000

Dest Wrk_AlmMinOnT.PRE
5000

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT.PRE.31

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source

5000

Dest Wrk_AlmMinOnT.PRE
5000

1=Error in Config:
Invalid timer preset
(use 0 to 2147483)
Err_Timer
1=Info Only;
2=Warning; 3=Process

1=Error in Config:
Invalid Severity

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 13
22/12/2015 08,52,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay,2=Warning;


latch/reset,3=Process
acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress
Invalid Severity
(use 1 to 4)
Exception; 4=Fault
Err_Severity
LIM
Limit Test (CIRC)
Low Limit
5
Test

Cfg_Severity
3
High Limit
0

1=Error in Config:
see detail Err_ bits
for reason
Sts_Err

Cfg_AlmMinOnT

0(MUL)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity

0(LIM)

Err_Severity

*0(OTE)

Err_Timer

*0(OTE)

Sts_Err

*0(OTE)

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

Wrk_AlmMinOnT.PRE.31 0(XIC)

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 14
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


The Auto Ack time is ALWAYS five seconds, and if the
Minimun alarm ON time is limited to a minimum of five seconds.
##### V2.0-00 2011-09-30: Added rung. #####
Time to clear Ack
bit when Ack not
required
MOV
Move
5000
Dest Wrk_AutoAckT.PRE
Source
5000

Alarm output minimum


ON time to be seen
by alarm server
LES
Less Than (A<B)
Source A Wrk_AlmMinOnT.PRE
5000
Source B
5000

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

Wrk_AutoAckT.PRE

*1(MOV)

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source

5000

Dest Wrk_AlmMinOnT.PRE
5000

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 15
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


If this alarm does not exist, set it to its default state (no alarm, acknowleded,
uninhibited, unsuppressed, enabled) and clear any received commands.
Then jump over the remainder of the Logic and return.

##### V2.0-00 2011-09-30: Added reset of timers. #####


1=Alarm has been
1=Alarm has been
Suppressed by
Disabled by
Internal Alarm
Operator (not
Maintanance (will
Inhibit Status
visible on HMI)
not be sent)
Wrk_Inhibited
Suppressed
Disabled
U
U
U

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Reset latched alarm
PCmd_Reset
U

Internal Alarm
Status
Wrk_Alm
U

End
JMP

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Program Command to
Acknowledge alarm
PCmd_Ack
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
U
Program Command to
Uninhibit alarm
PCmd_Uninhibit
U

Operator Command to
Reset latched alarm
OCmd_Reset
U

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Operator Command to
Suppress alarm
OCmd_Suppress
U
Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Maintenance Command
to Enable alarm
MCmd_Enable
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

MCmd_Disable

*2(OTU) 7(XIC) *7(OTU)

MCmd_Enable

*2(OTU) *8(OTU) 8(XIC)

OCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

OCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

OCmd_Suppress

*2(OTU) *5(OTU) 5(XIC)

OCmd_Unsuppress

*2(OTU) 6(XIC) *6(OTU)

PCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

PCmd_Inhibit

*2(OTU) *3(OTU) 3(XIC) 4(XIO)

PCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

PCmd_Uninhibit

*2(OTU) 4(XIC) *4(OTU)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT
RES

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!

Page 16
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
Operator Commands (OCmd_xx) and Maintenance Commands
(MCmd_xx) from the HMI and
Program Command (PCmd_xx) from other objects.
NOTE: ALARM COMMANDS ARE ACCEPTED REGARDLESS OF MODE.
This rung receives the Program Alarm Inhibit Command.
If configured for EDGE, the Command is cleared.
Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
3

##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####


1=Clear Program
Program Command to
Commands on receipt
Inhibit alarm (force
0=Leave Set
Alm to 0)
Cfg_PCmdClear
PCmd_Inhibit
U
Internal Alarm
Inhibit Status
Wrk_Inhibited
L

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) 3(XIC) *3(OTU) 4(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

This rung receives the Program Alarm Uninhibit Command (Uninhibit wins over Inhibit)
If configured for LEVEL, Inhibit is cleared if PCmd_Inhibit is cleared.
##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####
Program Command to
Program Command to
Uninhibit alarm
Uninhibit alarm
PCmd_Uninhibit
PCmd_Uninhibit
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
/

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) *3(OTU) 3(XIC) 4(XIO)

PCmd_Uninhibit

*2(OTU) *4(OTU) 4(XIC)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Internal Alarm
Inhibit Status
Wrk_Inhibited
U

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
/

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 17
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


This rung receives the Operator Alarm Suppress Command
1=Alarm has been
Suppressed by
Operator Command to
Operator Command to
Operator (not
Suppress alarm
Suppress alarm
visible on HMI)
OCmd_Suppress
OCmd_Suppress
Suppressed
U
L

OCmd_Suppress

*2(OTU) *5(OTU) 5(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

This rung receives the Operator Alarm Unsuppress Command (Unsuppress wins over Suppress)
NOTE: Suppressed can also be set/cleared directly by the HMI (FTA&E support).
Operator Command to
Unsuppress alarm
OCmd_Unsuppress

Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

OCmd_Unsuppress

*2(OTU) *6(OTU) 6(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
U

This rung receives the Maintenance Alarm Disable Command


Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

MCmd_Disable

*2(OTU) 7(XIC) *7(OTU)

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
L

This rung receives the Maintenance Alarm Enable Command (Enable wins over Disable)
NOTE: Disabled can also be set/cleared directly by the HMI (FTA&E support).
Maintenance Command
to Enable alarm
MCmd_Enable
8

Disabled

Maintenance Command
to Enable alarm
MCmd_Enable
U

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
U

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!
MCmd_Enable

Page 18
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) 8(XIC) *8(OTU)

This rung receives the Alarm Acknowledge Commands


NOTE: Acknowledge can also be set/cleared directly by the HMI.

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Acknowledge alarm
PCmd_Ack

Program Command to
Acknowledge alarm
PCmd_Ack
U

Operator Command to
Acknowledge alarm
OCmd_Ack

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

OCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

PCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

An "Abnormal Condition" is declared if the Input is in its alarm state,


and the alarm is not disabled or inhibited.
NOTE: The alarm (Alm) bit is still set when the alarm is Suppressed, because
it must still be logged by the A&E Server (just not shown to Operator).

Alarm Condition
Input 1=Alarm
Inp
10

NOTE: This rung appears here because the "Abnormal" work bit is
used throughout the logic that follows.
1=Alarm has been
Disabled by
Maintanance (will
Internal Alarm
not be sent)
Inhibit Status
Disabled
Wrk_Inhibited
/
/

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inp

10(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 19
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


This rung receives the Alarm Reset Commands.
If the Alarm Reset Command is received and the Input condition is no longer true,
the Alarm is CLEARED and ACKNOWLEDGED (to match ALMD behavior!!!).
If the Alarm is Disabled or Inhibited, the Alarm is cleared, but if it was
waiting for an Acknowledge, it still needs to be Acked.

11

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Operator Command to
Reset latched alarm
OCmd_Reset

Operator Command to
Reset latched alarm
OCmd_Reset
U

Program Command to
Reset latched alarm
PCmd_Reset

Program Command to
Reset latched alarm
PCmd_Reset
U

1=Reset required to
clear Alarm
Cfg_ResetReqd

1=Reset Alarm
requiring reset
Inp_Reset
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

Inp_Reset

11(XIC)

OCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

PCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIO) 16(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Internal Alarm
Status
Wrk_Alm
U

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 20
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
ALARM GENERATION
============================================================
This rung CLEARS the Alarm when the alarm condition clears and its
Minimum On Time has expired, IF Reset is NOT Required.

12

1=Reset required to
clear Alarm
Cfg_ResetReqd
/

NOTE that Reset Required is also bypassed if the Alarm


is Suppressed by the Operator!
Abnormal: Input in
Alarm output minimum
Alarm state, and not
ON time to be seen
disabled or
by alarm server
inhibited
Wrk_AlmMinOnT.TT
Wrk_Abnormal
/
/

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AlmMinOnT.TT

12(XIO)

Internal Alarm
Status
Wrk_Alm
U

If the Alarm Input (Inp) is true (inverted in EnableInFalse) and the alarm is
(or becomes) Enabled and Uninhibited, this rung sets the Alarm (Alm) bit.
The Acknowledge (Ack) bit is cleared when the Alarm initially occurs.
##### V2.0-00 2011-09-30: Removed Min Duration timing function. #####
Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
13

Internal Alarm
Status
Wrk_Alm
/

Alarm acknowledged
status: 1=Ack rcvd
Ack
U
Internal Alarm
Status
Wrk_Alm
L

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 21
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


When the Alarm initially occurs, the Auto Ack timer is started.
If this Alarm is set for "Ack Not Required", it is automatically
Acknowledged after the AutoAck time expires.
This pulsing of the Ack bit OFF then ON allows the "Ack Not Required"
configuration to be used with View 32, View ME and other legacy
alarm systems that don't support optional ack.

14

End
LBL

##### V2.0-00 2011-09-30: Added AutoAck implementation of "Ack Not Required" #####
Alarm Unacknowledged
Time to clear Ack
Alarm acknowledged
ONS for AutoAck
bit when Ack not
status: 1=Ack rcvd
Timer
required
Ack
Wrk_AutoAckONS
TOF
/
ONS
Timer Off Delay
Timer Wrk_AutoAckT
Preset
5000
Accum
0

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Wrk_AutoAckONS

*14(ONS)

Wrk_AutoAckT

*14(TOF)

EN
DN

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 22
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
OPERATOR COMMAND READIES
============================================================
This Alarm is ready for (requires) an Acknowledgement if the Alarm
is not Acknowledged (an Acknowledge was Required when the alarm occurred).
This Alarm is ready for (requires) a Reset if there is an Alarm, Reset is Required,
and the alarm condition has CLEARED.
If the Alarm is NOT Suppressed, it is ready for Suppress.
If the Alarm IS Suppressed, it is ready for Unsuppress.
If the Alarm is NOT Disabled, it is ready for Disable.
If the Alarm IS Disabled, it is ready for Enable.

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
15

NOTE: This rung appears before the Values/Status rung because the Rdy_Reset
condition is used to eliminate redundant logic in the rung below for Val_Notify.0.
Time to clear Ack
Ready to receive
Alarm acknowledged
bit when Ack not
OCmd_Ack (enable
status: 1=Ack rcvd
required
button)
Ack
Wrk_AutoAckT.DN
Rdy_Ack
/
/

Internal Alarm
Status
Wrk_Alm

1=Reset required to
clear Alarm
Cfg_ResetReqd

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
/
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Rdy_Ack

*15(OTE)

Rdy_Disable

*15(OTE)

Rdy_Enable

*15(OTE)

Ready to receive
OCmd_Suppress
(enable button)
Rdy_Suppress

Ready to receive
OCmd_Unsuppress
(enable button)
Rdy_Unsuppress

Ready to receive
MCmd_Disable (enable
button)
Rdy_Disable

Ready to receive
MCmd_Enable (enable
button)
Rdy_Enable

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!
Rdy_Reset

*15(OTE) 16(XIC)

Rdy_Suppress

*15(OTE)

Rdy_Unsuppress

*15(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Page 23
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 24
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
VALUE / STATUS GENERATION
============================================================
This rung copies the internal working status to public Values, Status, Alarm and Ack bits.
Note that internal working bits are used so that outside objects cannot manipulate
the state of this object by setting/clearing its Status and Alarm bits.
Public Status is generated for:
Alarm (with minimum ON time to be seen by polling)
Notify Level (color, blink)
Alarm Inhibited
(Ack, Suppressed and Disabled can be set/cleared by the HMI directly.)
"AutoAck" (Ack not required with timing) is handled here as well.
NOTE that the alarm bell icon will blink, even though the alarm is Acknowledged,
if an Alarm Reset is required (to get the Operator's attention).

16

##### V2.0-00 2011-09-30: Added Sts_AlmInh to support "Inhibited" breadcrumb on HMI. #####
##### Changed Minimum On Time to be configurable. Changed Ack logic to use Auto Ack timer #####
##### and to NOT Ack the alarm on Program Inhibit. #####
Time to clear Ack
bit when Ack not
1=Acknowledge
Alarm acknowledged
required
required for Alarm
status: 1=Ack rcvd
Wrk_AutoAckT.DN
Cfg_AckReqd
Ack
/
/
L
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
Current Alarm Level
and Acknowledgement
(enumeration)
Val_Notify.0

Alarm acknowledged
status: 1=Ack rcvd
Ack
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

Internal Alarm
Status
Wrk_Alm

Alarm output 1=In


Alarm
Alm

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/

Current Alarm Level


and Acknowledgement

Alarm output minimum


ON time to be seen
by alarm server
TON
Timer On Delay
Timer Wrk_AlmMinOnT
Preset
5000
Accum
0

EN
DN

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.0

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.1

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.1

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.2

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.2

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.3

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 25
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing:


delay, latch/reset, acknowledge,
enable/disable,
inhibit/uninhibit,
suppress/unsuppress
and Acknowledgement
and Acknowledgement
and
Acknowledgement
and Acknowledgement
(enumeration)
(enumeration)
(enumeration)
(enumeration)
Val_Notify.4
Val_Notify.5
Val_Notify.6
Val_Notify.7
U
U
U
U
1=Alarm has been
Inhibited by Program
(will not be sent)
Inhibited

Internal Alarm
Inhibit Status
Wrk_Inhibited

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled

1=Alarm has been


inhibited, disabled
or suppressed,
display "I" icon
Sts_AlmInh

1=Alarm has been


Inhibited by Program
(will not be sent)
Inhibited
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Alm

*16(OTE)

Cfg_AckReqd

16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity.0

16(XIC)

Cfg_Severity.1

16(XIC)

Cfg_Severity.2

16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inhibited

*16(OTE) 16(XIC)

Rdy_Reset

*15(OTE) 16(XIC)

Sts_AlmInh

*16(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIO) 16(XIC)

Val_Notify.0

*16(OTE)

Val_Notify.1

*16(OTE)

Val_Notify.2

*16(OTE)

Val_Notify.3

*16(OTE)

Val_Notify.4

*16(OTU)

Val_Notify.5

*16(OTU)

Val_Notify.6

*16(OTU)

Val_Notify.7

*16(OTU)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!
Wrk_Inhibited

Page 26
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

(End)

RSLogix 5000

P_Alarm Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Prescan
Total number of rungs in routine: 1
Data Context: P_Alarm <definition>

Page 27
22/12/2015 08,52,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.
##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####
Program Command to
Program Command to
Program Command to
Reset latched alarm
Acknowledge alarm
Uninhibit alarm
PCmd_Reset
PCmd_Ack
PCmd_Uninhibit
U
U
U

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
Operator Command to
Reset latched alarm
OCmd_Reset
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
U
Operator Command to
Acknowledge alarm
OCmd_Ack
U

Operator Command to
Suppress alarm
OCmd_Suppress
U
Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Cfg_PCmdClear

0(XIC)

MCmd_Disable

*0(OTU)

MCmd_Enable

*0(OTU)

OCmd_Ack

*0(OTU)

OCmd_Reset

*0(OTU)

OCmd_Suppress

*0(OTU)

OCmd_Unsuppress

*0(OTU)

PCmd_Ack

*0(OTU)

PCmd_Inhibit

*0(OTU)

PCmd_Reset

*0(OTU)

PCmd_Uninhibit

*0(OTU)

Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U
Maintenance Command
to Enable alarm
MCmd_Enable
U

(End)

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 28
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
P_Alarm: EnableInFalse (False Rung) Handling
============================================================
When EnableIn is FALSE (False Rung), the Input
("Inp") is inverted. This allows the P_Alarm instruction
to be used on a simple Ladder Diagram rung:
XIC (condition) P_Alarm (Alarm)
All processing is identical to the normal Logic
routine, except references to Inp are inverted!
============================================================
CONFIGURATION
============================================================
This rung gets the Alarm Minimum ON Time Configuration
value and sets the corresponding timer preset.
If the Minimum ON Time Configuration results in a timer preset
that is negative or less than 5 seconds, the preset is set to
5 seconds. The bad Config is flagged (Err_Timer).
Bad Config is also flagged if the Cfg_Severity is out of range (valid = 1..4)
##### V2.0-00 2011-09-30: Removed configuration for Min Duration, #####
##### added Configuration for Minimum ON Time. #####
1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists

Alarm output minimum


ON time to be seen
by alarm server
MUL
Multiply
Source A Cfg_AlmMinOnT
5
Source B
1000

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT.PRE.31

1=Error in Config:
see detail Err_ bits
for reason
Sts_Err

Dest Wrk_AlmMinOnT.PRE
5000

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source
5000

1=Error in Config:
Invalid timer preset
(use 0 to 2147483)
Err_Timer

Dest Wrk_AlmMinOnT.PRE
5000
1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
LIM
Limit Test (CIRC)
Low Limit
5

1=Error in Config:
Invalid Severity
(use 1 to 4)
Err_Severity

Test

Cfg_Severity
3
High Limit
0

Cfg_AlmMinOnT

0(MUL)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity

0(LIM)

Err_Severity

*0(OTE)

Err_Timer

*0(OTE)

Sts_Err

*0(OTE)

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Page 29
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_AlmMinOnT.PRE.31 0(XIC)

The Auto Ack time is ALWAYS five seconds, and if the


Minimun alarm ON time is limited to a minimum of five seconds.
##### V2.0-00 2011-09-30: Added rung. #####
Time to clear Ack
bit when Ack not
required
MOV
Move
5000
Source

Dest Wrk_AutoAckT.PRE
5000
Alarm output minimum
ON time to be seen
by alarm server
LES
Less Than (A<B)
Source A Wrk_AlmMinOnT.PRE
5000
Source B
5000

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

Wrk_AutoAckT.PRE

*1(MOV)

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source
5000
Dest Wrk_AlmMinOnT.PRE
5000

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 30
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
If this alarm does not exist, set it to its default state (no alarm, acknowleded,
uninhibited, unsuppressed, enabled) and clear any received commands.
Then jump over the remainder of the Logic and return.

##### V2.0-00 2011-09-30: Added reset of timers. #####


1=Alarm has been
1=Alarm has been
Suppressed by
Disabled by
Internal Alarm
Operator (not
Maintanance (will
Inhibit Status
visible on HMI)
not be sent)
Wrk_Inhibited
Suppressed
Disabled
U
U
U

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Reset latched alarm
PCmd_Reset
U

Internal Alarm
Status
Wrk_Alm
U

End
JMP

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Program Command to
Acknowledge alarm
PCmd_Ack
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
U
Program Command to
Uninhibit alarm
PCmd_Uninhibit
U

Operator Command to
Reset latched alarm
OCmd_Reset
U

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Operator Command to
Suppress alarm
OCmd_Suppress
U
Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Maintenance Command
to Enable alarm
MCmd_Enable
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

MCmd_Disable

*2(OTU) *7(OTU) 7(XIC)

MCmd_Enable

*2(OTU) 8(XIC) *8(OTU)

OCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

OCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

OCmd_Suppress

*2(OTU) 5(XIC) *5(OTU)

OCmd_Unsuppress

*2(OTU) *6(OTU) 6(XIC)

PCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

PCmd_Inhibit

*2(OTU) *3(OTU) 3(XIC) 4(XIO)

PCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

PCmd_Uninhibit

*2(OTU) *4(OTU) 4(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT
RES

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Page 31
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
Operator Commands (OCmd_xx) and Maintenance Commands
(MCmd_xx) from the HMI and
Program Command (PCmd_xx) from other objects.
NOTE: ALARM COMMANDS ARE ACCEPTED REGARDLESS OF MODE.
This rung receives the Program Alarm Inhibit Command.
If configured for EDGE, the Command is cleared.
Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
3

##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####


1=Clear Program
Program Command to
Commands on receipt
Inhibit alarm (force
0=Leave Set
Alm to 0)
Cfg_PCmdClear
PCmd_Inhibit
U
Internal Alarm
Inhibit Status
Wrk_Inhibited
L

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) 3(XIC) *3(OTU) 4(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

This rung receives the Program Alarm Uninhibit Command (Uninhibit wins over Inhibit)
If configured for LEVEL, Inhibit is cleared if PCmd_Inhibit is cleared.
##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####
Program Command to
Program Command to
Uninhibit alarm
Uninhibit alarm
PCmd_Uninhibit
PCmd_Uninhibit
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
/

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) 3(XIC) *3(OTU) 4(XIO)

PCmd_Uninhibit

*2(OTU) 4(XIC) *4(OTU)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Internal Alarm
Inhibit Status
Wrk_Inhibited
U

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
/

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 32
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
This rung receives the Operator Alarm Suppress Command
Operator Command to
Suppress alarm
OCmd_Suppress

Operator Command to
Suppress alarm
OCmd_Suppress
U

OCmd_Suppress

*2(OTU) *5(OTU) 5(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIC) 16(XIO)

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
L

This rung receives the Operator Alarm Unsuppress Command (Unsuppress wins over Suppress)
NOTE: Suppressed can also be set/cleared directly by the HMI (FTA&E support).
Operator Command to
Unsuppress alarm
OCmd_Unsuppress

Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

OCmd_Unsuppress

*2(OTU) *6(OTU) 6(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIC) 16(XIO)

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
U

This rung receives the Maintenance Alarm Disable Command


Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

MCmd_Disable

*2(OTU) 7(XIC) *7(OTU)

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
L

This rung receives the Maintenance Alarm Enable Command (Enable wins over Disable)
NOTE: Disabled can also be set/cleared directly by the HMI (FTA&E support).
Maintenance Command
to Enable alarm
MCmd_Enable
8

Disabled

Maintenance Command
to Enable alarm
MCmd_Enable
U

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
U

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

MCmd_Enable

Page 33
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) 8(XIC) *8(OTU)

This rung receives the Alarm Acknowledge Commands


NOTE: Acknowledge can also be set/cleared directly by the HMI.

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Acknowledge alarm
PCmd_Ack

Program Command to
Acknowledge alarm
PCmd_Ack
U

Operator Command to
Acknowledge alarm
OCmd_Ack

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

OCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

PCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

An "Abnormal Condition" is declared if the Input is in its alarm state,


and the alarm is not disabled or inhibited.
NOTE: The alarm (Alm) bit is still set when the alarm is Suppressed, because
it must still be logged by the A&E Server (just not shown to Operator).
NOTE: This rung appears here because the "Abnormal" work bit is
used throughout the logic that follows.

10

Alarm Condition
Input 1=Alarm
Inp
/

NOTE: The "Inp" bit is inverted here (compared to the normal "Logic" routine).
When the rung / EnableIn is false, Input = 0 is the Alarm State.
1=Alarm has been
Disabled by
Internal Alarm
Maintanance (will
not be sent)
Inhibit Status
Wrk_Inhibited
Disabled
/
/

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inp

10(XIO)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 34
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
This rung receives the Alarm Reset Commands.
If the Alarm Reset Command is received and the Input condition is no longer true,
the Alarm is CLEARED and ACKNOWLEDGED (to match ALMD behavior!!!).
If the Alarm is Disabled or Inhibited, the Alarm is cleared, but if it was
waiting for an Acknowledge, it still needs to be Acked.

11

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Operator Command to
Reset latched alarm
OCmd_Reset

Operator Command to
Reset latched alarm
OCmd_Reset
U

Program Command to
Reset latched alarm
PCmd_Reset

Program Command to
Reset latched alarm
PCmd_Reset
U

1=Reset required to
clear Alarm
Cfg_ResetReqd

1=Reset Alarm
requiring reset
Inp_Reset
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

Inp_Reset

11(XIC)

OCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

PCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIC) 16(XIO)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Internal Alarm
Status
Wrk_Alm
U

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 35
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
ALARM GENERATION
============================================================
This rung CLEARS the Alarm when the alarm condition clears and its
Minimum On Time has expired, IF Reset is NOT Required.

12

1=Reset required to
clear Alarm
Cfg_ResetReqd
/

NOTE that Reset Required is also bypassed if the Alarm


is Suppressed by the Operator!
Abnormal: Input in
Alarm output minimum
Alarm state, and not
ON time to be seen
disabled or
by alarm server
inhibited
Wrk_AlmMinOnT.TT
Wrk_Abnormal
/
/

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AlmMinOnT.TT

12(XIO)

Internal Alarm
Status
Wrk_Alm
U

If the Alarm Input (Inp) is true (inverted in EnableInFalse) and the alarm is
(or becomes) Enabled and Uninhibited, this rung sets the Alarm (Alm) bit.
The Acknowledge (Ack) bit is cleared when the Alarm initially occurs.
##### V2.0-00 2011-09-30: Removed Min Duration timing function. #####
Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
13

Internal Alarm
Status
Wrk_Alm
/

Alarm acknowledged
status: 1=Ack rcvd
Ack
U
Internal Alarm
Status
Wrk_Alm
L

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 36
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
When the Alarm initially occurs, the Auto Ack timer is started.
If this Alarm is set for "Ack Not Required", it is automatically
Acknowledged after the AutoAck time expires.
This pulsing of the Ack bit OFF then ON allows the "Ack Not Required"
configuration to be used with View 32, View ME and other legacy
alarm systems that don't support optional ack.

14

End
LBL

##### V2.0-00 2011-09-30: Added AutoAck implementation of "Ack Not Required" #####
Alarm Unacknowledged
Time to clear Ack
Alarm acknowledged
ONS for AutoAck
bit when Ack not
status: 1=Ack rcvd
Timer
required
Ack
Wrk_AutoAckONS
TOF
/
ONS
Timer Off Delay
Timer Wrk_AutoAckT
Preset
5000
Accum
0

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Wrk_AutoAckONS

*14(ONS)

Wrk_AutoAckT

*14(TOF)

EN
DN

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 37
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
OPERATOR COMMAND READIES
============================================================
This Alarm is ready for (requires) an Acknowledgement if the Alarm
is not Acknowledged (an Acknowledge was Required when the alarm occurred).
This Alarm is ready for (requires) a Reset if there is an Alarm, Reset is Required,
and the alarm condition has CLEARED.
If the Alarm is NOT Suppressed, it is ready for Suppress.
If the Alarm IS Suppressed, it is ready for Unsuppress.
If the Alarm is NOT Disabled, it is ready for Disable.
If the Alarm IS Disabled, it is ready for Enable.

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
15

NOTE: This rung appears before the Values/Status rung because the Rdy_Reset
condition is used to eliminate redundant logic in the rung below for Val_Notify.0.
Time to clear Ack
Ready to receive
Alarm acknowledged
bit when Ack not
OCmd_Ack (enable
status: 1=Ack rcvd
required
button)
Ack
Wrk_AutoAckT.DN
Rdy_Ack
/
/

Internal Alarm
Status
Wrk_Alm

1=Reset required to
clear Alarm
Cfg_ResetReqd

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
/
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Rdy_Ack

*15(OTE)

Rdy_Disable

*15(OTE)

Rdy_Enable

*15(OTE)

Ready to receive
OCmd_Suppress
(enable button)
Rdy_Suppress

Ready to receive
OCmd_Unsuppress
(enable button)
Rdy_Unsuppress

Ready to receive
MCmd_Disable (enable
button)
Rdy_Disable

Ready to receive
MCmd_Enable (enable
button)
Rdy_Enable

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Rdy_Reset

*15(OTE) 16(XIC)

Rdy_Suppress

*15(OTE)

Rdy_Unsuppress

*15(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIO) 16(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Page 38
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 39
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
VALUE / STATUS GENERATION
============================================================
This rung copies the internal working status to public Values, Status, Alarm and Ack bits.
Note that internal working bits are used so that outside objects cannot manipulate
the state of this object by setting/clearing its Status and Alarm bits.
Public Status is generated for:
Alarm (with minimum ON time to be seen by polling)
Notify Level (color, blink)
Alarm Inhibited
(Ack, Suppressed and Disabled can be set/cleared by the HMI directly.)
"AutoAck" (Ack not required with timing) is handled here as well.
NOTE that the alarm bell icon will blink, even though the alarm is Acknowledged,
if an Alarm Reset is required (to get the Operator's attention).

16

##### V2.0-00 2011-09-30: Added Sts_AlmInh to support "Inhibited" breadcrumb on HMI. #####
##### Changed Minimum On Time to be configurable. Changed Ack logic to use Auto Ack timer #####
##### and to NOT Ack the alarm on Program Inhibit. #####
Time to clear Ack
bit when Ack not
1=Acknowledge
Alarm acknowledged
required
required for Alarm
status: 1=Ack rcvd
Wrk_AutoAckT.DN
Cfg_AckReqd
Ack
/
/
L
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
Current Alarm Level
and Acknowledgement
(enumeration)
Val_Notify.0

Alarm acknowledged
status: 1=Ack rcvd
Ack
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

Internal Alarm
Status
Wrk_Alm

Alarm output 1=In


Alarm
Alm

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/

Current Alarm Level


and Acknowledgement

Alarm output minimum


ON time to be seen
by alarm server
TON
Timer On Delay
Timer Wrk_AlmMinOnT
Preset
5000
Accum
0

EN
DN

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.0

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.1

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.1

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.2

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.2

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.3

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 40
22/12/2015 08,52,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm
processing, but Invertand
Alarm
Input ("Inp") for useand
on LD
rung (EnableIn False)
and Acknowledgement
Acknowledgement
Acknowledgement
and Acknowledgement
(enumeration)
(enumeration)
(enumeration)
(enumeration)
Val_Notify.4
Val_Notify.5
Val_Notify.6
Val_Notify.7
U
U
U
U
1=Alarm has been
Inhibited by Program
(will not be sent)
Inhibited

Internal Alarm
Inhibit Status
Wrk_Inhibited

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled

1=Alarm has been


inhibited, disabled
or suppressed,
display "I" icon
Sts_AlmInh

1=Alarm has been


Inhibited by Program
(will not be sent)
Inhibited
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Alm

*16(OTE)

Cfg_AckReqd

16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity.0

16(XIC)

Cfg_Severity.1

16(XIC)

Cfg_Severity.2

16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inhibited

16(XIC) *16(OTE)

Rdy_Reset

*15(OTE) 16(XIC)

Sts_AlmInh

*16(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Val_Notify.0

*16(OTE)

Val_Notify.1

*16(OTE)

Val_Notify.2

*16(OTE)

Val_Notify.3

*16(OTE)

Val_Notify.4

*16(OTU)

Val_Notify.5

*16(OTU)

Val_Notify.6

*16(OTU)

Val_Notify.7

*16(OTU)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Wrk_Inhibited

Page 41
22/12/2015 08,52,04
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

(End)

RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Page 1
22/12/2015 08,53,29
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_AIn v2.0 02 Release


Rockwell Automation

Analog Input
Available Languages
Relay Ladder

Function Block

Structured Text
P_AIn();
Parameters
Required
X

Name
P_AIn

Data Type
P_AIn

Usage
InOut

EnableIn
EnableOut
Inp_PV

BOOL
BOOL
REAL

Input
Output
Input

Inp_PVBad

BOOL

Input

Inp_PVUncertain

BOOL

Input

Inp_Sim

BOOL

Input

Inp_Reset

BOOL

Input

Cfg_NoSubstPV

BOOL

Input

Description
Analog
Input
Input Signal
(process
variable) from
Sensor
1=PV or
I/O Comms
Status
Bad, 0=OK
1=PV Value
Not
Reliable,
0=OK
1=Use simulated PV
(Set_SimPV); 0=Use Input
(Inp_PV)
1=Reset
all Alarms
requiring
reset
1=Disallow
selection
of
Substitute
PV
RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Cfg_SetTrack

BOOL

Input

Cfg_PCmdClear

BOOL

Input

Cfg_ProgDefault

BOOL

Input

Cfg_HasHiHiAlm

BOOL

Input

Cfg_HasHiAlm

BOOL

Input

Cfg_HasLoAlm

BOOL

Input

Cfg_HasLoLoAlm

BOOL

Input

Cfg_HasFailAlm

BOOL

Input

Cfg_HiHiResetReqd

BOOL

Input

Cfg_HiResetReqd

BOOL

Input

Cfg_LoResetReqd

BOOL

Input

Cfg_LoLoResetReqd

BOOL

Input

Cfg_FailResetReqd

BOOL

Input

Cfg_HiHiAckReqd

BOOL

Input

Cfg_HiAckReqd

BOOL

Input

Cfg_LoAckReqd

BOOL

Input

Cfg_LoLoAckReqd

BOOL

Input

Cfg_FailAckReqd

BOOL

Input

Cfg_HiHiSeverity

SINT

Input

Cfg_HiSeverity

SINT

Input

Cfg_LoSeverity

SINT

Input

Page 2
22/12/2015 08,53,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=PSets track OSets in Oper, OSets track
PSets in Prog, 0=no tracking
1=Clear Program
Commands on receipt
0=Leave Set
Default Mode: 1=Program Mode if no requests;
0=Operator Mode if no requests
1=High-High Alarm
exists and will be
checked
1=High Alarm
exists and
will be
checked
1=Low Alarm
exists and
will be
checked
1=Low-Low Alarm
exists and will
be checked
1=Analog Input Failure Alarm
exists and will be checked
1=Reset
required to
clear High-High
Alarm
1=Reset
required
to clear
High Alarm
1=Reset
required
to clear
Low Alarm
1=Reset
required to
clear Low-Low
Alarm
1=Reset required to clear
Analog InputFailure Alarm
1=Acknowledge
required for
High-High Alarm
1=Acknowled
ge required
for High
Alarm
1=Acknlowle
dge
required
for Low
Alarm
1=Acknowledge
required for
Low-Low Alarm
1=Acknowledge required for
Analog Input Failure Alarm
High-High Alarm Severity
1=info, 2=warn, 3=excep,
4=fault
High Alarm Severity
1=info, 2=warn, 3=excep,
4=fault
Low Alarm Severity
1=info, 2=warn, 3=excep,
4=fault

RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Cfg_LoLoSeverity

SINT

Input

Cfg_FailSeverity

SINT

Input

Cfg_InpRawMin

REAL

Input

Cfg_InpRawMax

REAL

Input

Cfg_PVEUMin

REAL

Input

Cfg_PVEUMax

REAL

Input

Cfg_FiltTC

REAL

Input

Cfg_HiHiDB

REAL

Input

Cfg_HiHiOnDly

DINT

Input

Cfg_HiHiOffDly

DINT

Input

Cfg_HiDB

REAL

Input

Cfg_HiOnDly

DINT

Input

Cfg_HiOffDly

DINT

Input

Cfg_LoDB

REAL

Input

Cfg_LoOnDly

DINT

Input

Cfg_LoOffDly

DINT

Input

Cfg_LoLoDB

REAL

Input

Cfg_LoLoOnDly

DINT

Input

Cfg_LoLoOffDly

DINT

Input

Cfg_FailHiLim

REAL

Input

Cfg_FailLoLim

REAL

Input

Page 3
22/12/2015 08,53,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Low-Low Alarm Severity
1=info, 2=warn, 3=excep,
4=fault
Failure Alarm Severity
1=info, 2=warn, 3=excep,
4=fault
Input
(unscaled)
Minimum
for
Scaling
Input
(unscaled)
Maximum
for
Scaling
PV (Output)
Minimum for
Scaling to
EU
PV (Output)
Maximum for
Scaling to
EU
PV Filter Time
Constant (sec),
0.0 = unfiltered
High-High
Status
Deadband
(EU)
Minimum time above High-High
Limit to raise Status (sec)
Minimum time below High-High Limit (minus
deadband) to clear Status (sec)
High
Status
Deadband
(EU)
Minimum time above High
Limit to raise Status
(sec)
Minimum time below High Limit (minus
deadband) to clear Status (sec)
Low Status
Deadband
(EU)
Minimum time below Low
Limit to raise Status
(sec)
Minimum time above Low Limit (plus
deadband) to clear Status (sec)
Low-Low
Status
Deadband
(EU)
Minimum time below Low-Low
Limit to raise Status (sec)
Minimum time above Low-Low Limit (plus
deadband) to clear Status (sec)
Out-of-Ran
ge (fail)
High Limit
(EU)
Out-of-Ran
ge (fail)
Low Limit
(EU)
RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Cfg_FailDB

REAL

Input

Cfg_FailOnDly

DINT

Input

Cfg_FailOffDly

DINT

Input

PSet_Owner

DINT

Input

PSet_HiHiLim

REAL

Input

PSet_HiLim

REAL

Input

PSet_LoLim

REAL

Input

PSet_LoLoLim

REAL

Input

MSet_SubstPV

REAL

Input

OSet_HiHiLim

REAL

Input

OSet_HiLim

REAL

Input

OSet_LoLim

REAL

Input

OSet_LoLoLim

REAL

Input

Set_SimPV

REAL

Input

PCmd_ClearCapt

BOOL

Input

PCmd_Acq

BOOL

Input

PCmd_Rel

BOOL

Input

PCmd_Lock

BOOL

Input

PCmd_Unlock

BOOL

Input

PCmd_Reset

BOOL

Input

PCmd_HiHiAck

BOOL

Input

PCmd_HiHiInhibit

BOOL

Input

Page 4
22/12/2015 08,53,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Out-of-Range
(fail) High/Low
Deadband (EU)
Minimum time Bad or Out of Range
to raise Fail Status (sec)
Minimum time OK or In Range
to clear Fail Status (sec)
Program Owner Request ID
(non-zero) or Release
(zero)
Program-Entered
High-High Status
Threshold (EU)
Program-Entered
High Status
Threshold (EU)
Program-Entered
Low Status
Threshold (EU)
Program-Entered
Low-Low Status
Threshold (EU)
MaintenanceEntered
Substitute
PV (EU)
Operator-Entered
High-High Status
Threshold (EU)
Operator-Entered
High Status
Threshold (EU)
Operator-Entered
Low Status
Threshold (EU)
Operator-Entered
Low-Low Status
Threshold (EU)
PV used in
Simulation
(Inp_Sim=1)
(EU)
Program Command to Clear the captured min
/ max PV excursion values
Program Command to
Acquire ownership (Oper
to Prog)
Program Command to
Release ownership (Prog
to Oper)
Program
Command to
Lock Mode
in Prog
Program
Command to
Unlock
Mode
Program Command to Reset
all Alarms requiring
Reset
Program Command to
Acknowledge
High-High Alarm
Program Command
to Inhibit
High-High Alarm

RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

PCmd_HiHiUninhibit

BOOL

Input

PCmd_HiAck

BOOL

Input

PCmd_HiInhibit

BOOL

Input

PCmd_HiUninhibit

BOOL

Input

PCmd_LoAck

BOOL

Input

PCmd_LoInhibit

BOOL

Input

PCmd_LoUninhibit

BOOL

Input

PCmd_LoLoAck

BOOL

Input

PCmd_LoLoInhibit

BOOL

Input

PCmd_LoLoUninhibit

BOOL

Input

PCmd_FailAck

BOOL

Input

PCmd_FailInhibit

BOOL

Input

PCmd_FailUninhibit

BOOL

Input

MCmd_SubstPV

BOOL

Input

MCmd_InpPV

BOOL

Input

OCmd_ClearCapt

BOOL

Input

OCmd_Reset

BOOL

Input

OCmd_ResetAckAll

BOOL

Input

Val

REAL

Output

Val_InpPV

REAL

Output

Val_PVMinCapt

REAL

Output

Val_PVMaxCapt

REAL

Output

Val_PVEUMin

REAL

Output

Page 5
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program Command
to
UninhibitHigh-Hig
h Alarm
Program Command
to Acknowledge
High Alarm
Program
Command to
Inhibit
High Alarm
Program
Command to
Uninhibit
High Alarm
Program
Command to
Acknowledge
Low Alarm
Program
Command to
Inhibit
Low Alarm
Program
Command to
Uninhibit
Low Alarm
Program Command to
Acknowledge
Low-Low Alarm
Program
Command to
Inhibit
Low-Low Alarm
Program Command
to Uninhibit
Low-Low Alarm
Program Command to Acknowldege
Analog Input Failure Alarm
Program Command to Inhibit
Analog Input Failure Alarm
Program Command to Uninhibit
Analog Input Failure Alarm
Maintenance Command to use
Substitute PV (override input)
Maintenance
Command to use
Input PV (normal)
Operator Command to Clear the captured min
/ max PV excursion values
Operator Command to Reset
all Alarms requiring Reset
Operator Command to Reset
and Acknowledge all Alarms
Analog Value
(after Substitute
PV, if used)
Analog Input Value (actual,
before Substitute PV selection)
Captured PV Minimum
(excursion) since last
cleared
Captured PV Maximum
(excursion) since last
cleared
Minimum of scaled range = MIN
(Cfg_PVEUMin, Cfg_PVEUMax)

RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Val_PVEUMax

REAL

Output

Val_Sts

SINT

Output

Val_Fault

SINT

Output

Val_Mode

DINT

Output

Val_Owner

DINT

Output

Val_Notify

SINT

Output

Val_HiHiLim

REAL

Output

Val_HiLim

REAL

Output

Val_LoLim

REAL

Output

Val_LoLoLim

REAL

Output

Sts_SubstPV

BOOL

Output

Sts_InpPV

BOOL

Output

Sts_PVBad

BOOL

Output

Sts_PVUncertain

BOOL

Output

Sts_MaintByp

BOOL

Output

Sts_AlmInh

BOOL

Output

Sts_Err

BOOL

Output

Err_Raw

BOOL

Output

Err_EU

BOOL

Output

Err_Timer

BOOL

Output

Err_Filt

BOOL

Output

Err_DB

BOOL

Output

Page 6
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Maximum of scaled range = MAX
(Cfg_PVEUMin, Cfg_PVEUMax)
Device Confirmed Sts 0=PV Good, 5=PV Uncertain, 6=PV Bad,
7=Substitute PV, 33=Disabled
Device Fault Status 0=none, 20=Lo, 21=Hi, 24=LoLo,
25=HiHi, 32=Fail, 34=CfgErr
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P
Def), 8=P (P Def), 9=O (O def)
Current
Object
Owner ID
(0=not
owned)
Current Alarm Level and
Acknowledgement
(enumeration)
Current
High-High
Status
Threshold
Current
High
Status
Threshold
Current
Low Status
Threshold
Current
Low-Low
Status
Threshold
1=Using Substitute
PV (Input being
overridden)
1=Using
Input PV
(normal)
1=PV Bad
quality or
Out of
Range
1=PV Value
is
Uncertain
(quality)
1=A Maintenance
Bypass is Active,
display icon
1=An Alarm is Inhibited, Disabled
or Suppressed, display icon
1=Error in Config (see detail Err_ bits
for reason), display icon
1=Error in Config:
Raw Input Scaling
Min = Max
1=Error in
Config:
Scaled EU
Min = Max
1=Error in Config: On Delay, Off Delay Time
Invalid (use 0 to 2147483 sec)
1=Error in Config: PV
filter params (RateTime,
TC)
1=Error in Config:
a Status Deadband
is < 0.0

RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Err_Alarm

BOOL

Output

Sts_Maint

BOOL

Output

Sts_Prog

BOOL

Output

Sts_Oper

BOOL

Output

Sts_ProgOperLock

BOOL

Output

Sts_NoMode

BOOL

Output

Sts_HiHi

BOOL

Output

Alm_HiHi

BOOL

Output

Ack_HiHi

BOOL

Output

Sts_HiHiDisabled

BOOL

Output

Sts_HiHiInhibited

BOOL

Output

Sts_HiHiSuppressed

BOOL

Output

Sts_Hi

BOOL

Output

Alm_Hi

BOOL

Output

Ack_Hi

BOOL

Output

Sts_HiDisabled

BOOL

Output

Sts_HiInhibited

BOOL

Output

Sts_HiSuppressed

BOOL

Output

Sts_Lo

BOOL

Output

Page 7
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Error in Config:
Alarm Min On Time or
Severity
1=Mode is
Maintenance
(supersedes Prog,
Oper)
1=Mode is
Program
1=Mode is
Operator
1=Program or
Operator has
requested Mode Lock
1=NoMode (Disabled
because EnableIn is
False)
1=Analog
Input is
above
High-High
limit
1=Analog
Input is
in
High-High
Alarm
1=High-High
Alarm has
been
acknowledged
1=High-High Alarm is
Disabled (not saved or
sent)
1=High-High
Alarm is
Inhibited by
logic
1=High-High Alarm has
been suppressed (logged
only)
1=Analog
Input is
above High
limit
1=Analog
Input is
in High
Alarm
1=High
Alarm has
been
acknowledg
ed
1=High Alarm is
Disabled (not
saved or sent)
1=High
Alarm is
Inhibited
by logic
1=High Alarm has
been suppressed
(logged only)
1=Analog
Input is
below Low
limit
RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Alm_Lo

BOOL

Output

Ack_Lo

BOOL

Output

Sts_LoDisabled

BOOL

Output

Sts_LoInhibited

BOOL

Output

Sts_LoSuppressed

BOOL

Output

Sts_LoLo

BOOL

Output

Alm_LoLo

BOOL

Output

Ack_LoLo

BOOL

Output

Sts_LoLoDisabled

BOOL

Output

Sts_LoLoInhibited

BOOL

Output

Sts_LoLoSuppressed

BOOL

Output

Sts_Fail

BOOL

Output

Alm_Fail

BOOL

Output

Ack_Fail

BOOL

Output

Sts_FailDisabled

BOOL

Output

Sts_FailInhibited

BOOL

Output

Sts_FailSuppressed

BOOL

Output

Rdy_SubstPV

BOOL

Output

Rdy_InpPV

BOOL

Output

Page 8
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Analog
Input is
in Low
Alarm
1=Low
Alarm has
been
acknowledg
ed
1=Low Alarm is
Disabled (not
saved or sent)
1=Low
Alarm is
Inhibited
by logic
1=Low Alarm has
been suppressed
(logged only)
1=Analog
Input is
below
Low-Low
limit
1=Analog
Input is
in Low-Low
Alarm
1=Low-Low
Alarm has
been
acknowledge
d
1=Low-Low Alarm is
Disabled (not saved
or sent)
1=Low-Low
Alarm is
Inhibited
by logic
1=Low-Low Alarm has
been suppressed (logged
only)
1=Analog Input
is Out of
Range or PV
Bad
1=Analog Input Failure
Alarm (PV Bad or Out of
Range)
1=Analog Input Failure
Alarm has been
acknowledged
1=Analog input Failure Alarm is
Disabled (not saved or sent)
1=Analog Input Failure
Alarm is inhibited by
logic
1=Analog Input Failure Alarm has
been suppressed (logged only)
1=Ready
for
MCmd_Subst
PV
1=Ready
for
MCmd_InpPV

RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Rdy_Reset

BOOL

Output

Rdy_ResetAckAll

BOOL

Output

Rdy_OSet

BOOL

Output

P_AIn

BOOL

Output

Page 9
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=At least
one Alarm
requires
Reset
1=At least one Alarm
requires Reset or
Acknowledgement
1=Ready to receive OSets
(enables data entry
fields)
Unique Parameter
Name for auto discovery

Extended Description
This Instruction monitors an Analog Input from a flow, level, pressure,
temperature, or any other analog sensor, and provides:
* Scaling, from Input (Raw) to PV (Engineering) Units
* High-High, High, Low and Low-Low Alarms with configurable delay
times and deadbands
* Monitoring of input bad/uncertain variable/communication status and
out-of-range conditions with alarm
* Setting of a simulated input signal for process simulation
* Capturing of the lowest and highest PV excursion values
Modes of operation: Operator, Program, Maintenance
* Program and Operator Settings for Alarm Thresholds
* Maintenance Commands to allow manual override of the input
signal (Substitute PV)
Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.
Normal Scan - PV is scaled and alarms are generated
Clear Ownership. clear "lurking" Commands

Revision v2.0 02 Release Notes


Edge/Level behavior and for P_Alarm 2.0-01. Improved handling of timers with presets = 0. Buffering of Val_*.
Change History
Created:
Created By:
Edited:
Edited By:

13/03/2008 01,51,06
Not Available
18/03/2013 11,22,08
PLANTPAX\Library

Signature
ID:
Timestamp:

CFCA29CF
2013-03-18T17:22:08.404Z

Cross Reference
Container
Equipos
Equipos
Equipos
Equipos
Equipos

Routine
Blk_Dosificadores
Blk_Nivel_Analog
Blk_Nivel_Analog
Blk_Temperatura
Blk_Temperatura

Location
Sheet 1, B1
Sheet 1, C1
Sheet 2, C1
Sheet 1, C1
Sheet 2, B1

Tag
P_AIn_FT100
P_AIn_LT100
P_AIn_LT200
P_AIn_TT100
P_AIn_TT200
RSLogix 5000

P_AIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Equipos
Equipos

Blk_Temperatura
Blk_Temperatura

Sheet 3, C1
Sheet 4, C1

Page 10
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_AIn_TT300
P_AIn_TT310

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>
Name
Default
1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

Page 11
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_AIn

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_AIn

0.0
Inp_PV
Input Signal (process variable) from Sensor
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_PV - P_AIn/EnableInFalse - 4(COP), 5(CPT), 5(MOV)
Inp_PV - P_AIn/Logic - 15(COP), 16(CPT), 16(MOV)

REAL

P_AIn

0
Inp_PVBad
1=PV or I/O Comms Status Bad, 0=OK
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_PVBad - P_AIn/Logic - 31(XIC), 31(XIO)

BOOL

P_AIn

0
Inp_PVUncertain
1=PV Value Not Reliable, 0=OK
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_PVUncertain - P_AIn/Logic - 32(XIC)

BOOL

P_AIn

0
BOOL
Inp_Sim
1=Use simulated PV (Set_SimPV); 0=Use Input (Inp_PV)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Sim - P_AIn/EnableInFalse - 4(XIC), 4(XIO), 5(XIC), 5(XIO)
Inp_Sim - P_AIn/Logic - 15(XIC), 15(XIO), 16(XIC), 16(XIO), 17(XIO), 31(XIC), 31(XIO), 32(XIO)

P_AIn

0
Inp_Reset
1=Reset all Alarms requiring reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Reset - P_AIn/Logic - 14(XIC)

BOOL

P_AIn

0
Cfg_NoSubstPV
1=Disallow selection of Substitute PV
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_NoSubstPV - P_AIn/Logic - 10(XIC), 13(XIO), 9(XIO)

BOOL

P_AIn

1
Cfg_SetTrack
1=PSets track OSets in Oper, OSets track PSets in Prog, 0=no tracking

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 12
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_SetTrack (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SetTrack - P_AIn/Logic - 17(XIC), 20(XIC), 7(XIC), 8(XIO)
1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_PCmdClear
Base Tag:
Mode.Cfg_PCmdClear
Constant
No
External Access:
Read/Write
Cfg_PCmdClear - P_AIn/EnableInFalse - 0(XIC), 0(XIO)
Cfg_PCmdClear - P_AIn/Logic - 14(XIC), 34(XIC)
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

BOOL

P_AIn

0
BOOL
Cfg_ProgDefault
Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_ProgDefault
Base Tag:
Mode.Cfg_ProgDefault
Constant
No
External Access:
Read/Write
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

P_AIn

1
Cfg_HasHiHiAlm
1=High-High Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Cfg_Exists
Base Tag:
HiHi.Cfg_Exists
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

1
Cfg_HasHiAlm
1=High Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Cfg_Exists
Base Tag:
Hi.Cfg_Exists
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

1
Cfg_HasLoAlm
1=Low Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Cfg_Exists
Base Tag:
Lo.Cfg_Exists
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

BOOL

P_AIn

Cfg_HasLoLoAlm

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 13
22/12/2015 08,53,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_HasLoLoAlm (Continued)
1=Low-Low Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Cfg_Exists
Base Tag:
LoLo.Cfg_Exists
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)
1
Cfg_HasFailAlm
1=Analog Input Failure Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Cfg_Exists
Base Tag:
Fail.Cfg_Exists
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
Cfg_HiHiResetReqd
1=Reset required to clear High-High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Cfg_ResetReqd
Base Tag:
HiHi.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
Cfg_HiResetReqd
1=Reset required to clear High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Cfg_ResetReqd
Base Tag:
Hi.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

0
Cfg_LoResetReqd
1=Reset required to clear Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Cfg_ResetReqd
Base Tag:
Lo.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

0
Cfg_LoLoResetReqd
1=Reset required to clear Low-Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Cfg_ResetReqd
Base Tag:
LoLo.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

BOOL

P_AIn

Cfg_FailResetReqd

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 14
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_FailResetReqd (Continued)
1=Reset required to clear Analog InputFailure Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Cfg_ResetReqd
Base Tag:
Fail.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)
1
Cfg_HiHiAckReqd
1=Acknowledge required for High-High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Cfg_AckReqd
Base Tag:
HiHi.Cfg_AckReqd
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

1
Cfg_HiAckReqd
1=Acknowledge required for High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Cfg_AckReqd
Base Tag:
Hi.Cfg_AckReqd
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

1
Cfg_LoAckReqd
1=Acknlowledge required for Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Cfg_AckReqd
Base Tag:
Lo.Cfg_AckReqd
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

1
Cfg_LoLoAckReqd
1=Acknowledge required for Low-Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Cfg_AckReqd
Base Tag:
LoLo.Cfg_AckReqd
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

1
Cfg_FailAckReqd
1=Acknowledge required for Analog Input Failure Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Cfg_AckReqd
Base Tag:
Fail.Cfg_AckReqd
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

SINT

P_AIn

Cfg_HiHiSeverity

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 15
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_HiHiSeverity (Continued)
High-High Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Cfg_Severity
Base Tag:
HiHi.Cfg_Severity
Constant
No
External Access:
Read/Write
2
Cfg_HiSeverity
High Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Cfg_Severity
Base Tag:
Hi.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_AIn

3
Cfg_LoSeverity
Low Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Cfg_Severity
Base Tag:
Lo.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_AIn

3
Cfg_LoLoSeverity
Low-Low Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Cfg_Severity
Base Tag:
LoLo.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_AIn

3
Cfg_FailSeverity
Failure Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Cfg_Severity
Base Tag:
Fail.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_AIn

0.0
Cfg_InpRawMin
Input (unscaled) Minimum for Scaling
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_InpRawMin - P_AIn/EnableInFalse - 3(EQU), 5(CPT)
Cfg_InpRawMin - P_AIn/Logic - 16(CPT), 4(EQU)

REAL

P_AIn

100.0
Cfg_InpRawMax
Input (unscaled) Maximum for Scaling
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_InpRawMax - P_AIn/EnableInFalse - 3(EQU), 5(CPT)
Cfg_InpRawMax - P_AIn/Logic - 16(CPT), 4(EQU)

REAL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 16
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0.0
REAL
Cfg_PVEUMin
PV (Output) Minimum for Scaling to EU
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PVEUMin - P_AIn/EnableInFalse - 2(GEQ), 2(LES), 2(MOV), 3(EQU), 5(CPT), 5(MOV)
Cfg_PVEUMin - P_AIn/Logic - 16(CPT), 16(MOV), 3(GEQ), 3(LES), 3(MOV), 4(EQU)

P_AIn

100.0
REAL
Cfg_PVEUMax
PV (Output) Maximum for Scaling to EU
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PVEUMax - P_AIn/EnableInFalse - 2(GEQ), 2(LES), 2(MOV), 3(EQU), 5(CPT)
Cfg_PVEUMax - P_AIn/Logic - 16(CPT), 3(GEQ), 3(LES), 3(MOV), 4(EQU)

P_AIn

0.0
Cfg_FiltTC
PV Filter Time Constant (sec), 0.0 = unfiltered
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FiltTC - P_AIn/EnableInFalse - 3(LES)
Cfg_FiltTC - P_AIn/Logic - 23(CPT), 23(GRT), 23(LEQ), 4(LES)

REAL

P_AIn

1.0
Cfg_HiHiDB
High-High Status Deadband (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HiHiDB - P_AIn/Logic - 27(CMP), 6(LES)

REAL

P_AIn

0
Cfg_HiHiOnDly
Minimum time above High-High Limit to raise Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HiHiOnDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

0
DINT
Cfg_HiHiOffDly
Minimum time below High-High Limit (minus deadband) to clear Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HiHiOffDly - P_AIn/Logic - 5(MUL)

P_AIn

1.0
Cfg_HiDB
High Status Deadband (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HiDB - P_AIn/Logic - 28(CMP), 6(LES)

REAL

P_AIn

0
Cfg_HiOnDly
Minimum time above High Limit to raise Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HiOnDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 17
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Cfg_HiOffDly
Minimum time below High Limit (minus deadband) to clear Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HiOffDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

1.0
Cfg_LoDB
Low Status Deadband (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoDB - P_AIn/Logic - 29(CMP), 6(LES)

REAL

P_AIn

0
Cfg_LoOnDly
Minimum time below Low Limit to raise Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoOnDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

0
Cfg_LoOffDly
Minimum time above Low Limit (plus deadband) to clear Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoOffDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

1.0
Cfg_LoLoDB
Low-Low Status Deadband (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoLoDB - P_AIn/Logic - 30(CMP), 6(LES)

REAL

P_AIn

0
Cfg_LoLoOnDly
Minimum time below Low-Low Limit to raise Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoLoOnDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

0
DINT
Cfg_LoLoOffDly
Minimum time above Low-Low Limit (plus deadband) to clear Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoLoOffDly - P_AIn/Logic - 5(MUL)

P_AIn

103.958336
Cfg_FailHiLim
Out-of-Range (fail) High Limit (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailHiLim - P_AIn/Logic - 31(CMP), 31(GEQ)

REAL

P_AIn

-2.0833333
Cfg_FailLoLim
Out-of-Range (fail) Low Limit (EU)
Usage:
Input Parameter

REAL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 18
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_FailLoLim (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailLoLim - P_AIn/Logic - 31(CMP), 31(LEQ)
0.41666666
Cfg_FailDB
Out-of-Range (fail) High/Low Deadband (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailDB - P_AIn/Logic - 31(CMP), 6(LES)

REAL

P_AIn

0
Cfg_FailOnDly
Minimum time Bad or Out of Range to raise Fail Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailOnDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

0
Cfg_FailOffDly
Minimum time OK or In Range to clear Fail Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailOffDly - P_AIn/Logic - 5(MUL)

DINT

P_AIn

0
PSet_Owner
Program Owner Request ID (non-zero) or Release (zero)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_Owner - P_AIn/EnableInFalse - 1(EQU), 1(MOV), 1(NEQ)
PSet_Owner - P_AIn/Logic - 2(EQU), 2(MOV), 2(NEQ)
PSet_Owner - P_AIn/Prescan - *0(CLR)

DINT

P_AIn

1.50000000e+038
PSet_HiHiLim
Program-Entered High-High Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_HiHiLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

1.50000000e+038
PSet_HiLim
Program-Entered High Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_HiLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

-1.50000000e+038
PSet_LoLim
Program-Entered Low Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_LoLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

-1.50000000e+038
PSet_LoLoLim
Program-Entered Low-Low Status Threshold (EU)
Usage:
Input Parameter

REAL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 19
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PSet_LoLoLim (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
PSet_LoLoLim - P_AIn/Logic - *7(MOV), 7(MOV)
0.0
MSet_SubstPV
Maintenance-Entered Substitute PV (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MSet_SubstPV - P_AIn/Logic - *20(MOV), 18(MOV)

REAL

P_AIn

1.50000000e+038
OSet_HiHiLim
Operator-Entered High-High Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_HiHiLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

1.50000000e+038
OSet_HiLim
Operator-Entered High Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_HiLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

-1.50000000e+038
OSet_LoLim
Operator-Entered Low Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_LoLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

-1.50000000e+038
OSet_LoLoLim
Operator-Entered Low-Low Status Threshold (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_LoLoLim - P_AIn/Logic - *7(MOV), 7(MOV)

REAL

P_AIn

0.0
Set_SimPV
PV used in Simulation (Inp_Sim=1) (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Set_SimPV - P_AIn/EnableInFalse - 4(COP), 5(MOV)
Set_SimPV - P_AIn/Logic - *17(MOV), 15(COP), 16(MOV)

REAL

P_AIn

0
BOOL
PCmd_ClearCapt
Program Command to Clear the captured min / max PV excursion values
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_ClearCapt - P_AIn/Logic - *26(OTU), 26(XIC)
PCmd_ClearCapt - P_AIn/Prescan - *3(OTL)

P_AIn

0
PCmd_Acq
Program Command to Acquire ownership (Oper to Prog)
Usage:
Input Parameter

P_AIn

BOOL

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 20
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_Acq (Continued)
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Acq
Base Tag:
Mode.PCmd_Acq
Constant
No
External Access:
Read/Write
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)
0
PCmd_Rel
Program Command to Release ownership (Prog to Oper)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Rel
Base Tag:
Mode.PCmd_Rel
Constant
No
External Access:
Read/Write
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

BOOL

P_AIn

0
PCmd_Lock
Program Command to Lock Mode in Prog
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Lock
Base Tag:
Mode.PCmd_Lock
Constant
No
External Access:
Read/Write
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

BOOL

P_AIn

0
PCmd_Unlock
Program Command to Unlock Mode
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Unlock
Base Tag:
Mode.PCmd_Unlock
Constant
No
External Access:
Read/Write
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

BOOL

P_AIn

0
PCmd_Reset
Program Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_AIn/EnableInFalse - *6(OTU)
PCmd_Reset - P_AIn/Logic - *14(OTU), 14(XIC)
PCmd_Reset - P_AIn/Prescan - *1(OTU)

BOOL

P_AIn

0
PCmd_HiHiAck
Program Command to Acknowledge High-High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.PCmd_Ack
Base Tag:
HiHi.PCmd_Ack
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)
HiHi.PCmd_Ack - P_AIn/Logic - *14(OTL)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 21
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
PCmd_HiHiInhibit
Program Command to Inhibit High-High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.PCmd_Inhibit
Base Tag:
HiHi.PCmd_Inhibit
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
PCmd_HiHiUninhibit
Program Command to UninhibitHigh-High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.PCmd_Uninhibit
Base Tag:
HiHi.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
PCmd_HiAck
Program Command to Acknowledge High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.PCmd_Ack
Base Tag:
Hi.PCmd_Ack
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)
Hi.PCmd_Ack - P_AIn/Logic - *14(OTL)

BOOL

P_AIn

0
PCmd_HiInhibit
Program Command to Inhibit High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.PCmd_Inhibit
Base Tag:
Hi.PCmd_Inhibit
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

0
PCmd_HiUninhibit
Program Command to Uninhibit High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Hi.PCmd_Uninhibit
Base Tag:
Hi.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

0
PCmd_LoAck
Program Command to Acknowledge Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.PCmd_Ack
Base Tag:
Lo.PCmd_Ack
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)
Lo.PCmd_Ack - P_AIn/Logic - *14(OTL)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 22
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
PCmd_LoInhibit
Program Command to Inhibit Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.PCmd_Inhibit
Base Tag:
Lo.PCmd_Inhibit
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

0
PCmd_LoUninhibit
Program Command to Uninhibit Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Lo.PCmd_Uninhibit
Base Tag:
Lo.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

0
PCmd_LoLoAck
Program Command to Acknowledge Low-Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.PCmd_Ack
Base Tag:
LoLo.PCmd_Ack
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)
LoLo.PCmd_Ack - P_AIn/Logic - *14(OTL)

BOOL

P_AIn

0
PCmd_LoLoInhibit
Program Command to Inhibit Low-Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.PCmd_Inhibit
Base Tag:
LoLo.PCmd_Inhibit
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

0
PCmd_LoLoUninhibit
Program Command to Uninhibit Low-Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.PCmd_Uninhibit
Base Tag:
LoLo.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

0
PCmd_FailAck
Program Command to Acknowldege Analog Input Failure Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.PCmd_Ack
Base Tag:
Fail.PCmd_Ack
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)
Fail.PCmd_Ack - P_AIn/Logic - *14(OTL)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 23
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
PCmd_FailInhibit
Program Command to Inhibit Analog Input Failure Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.PCmd_Inhibit
Base Tag:
Fail.PCmd_Inhibit
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
PCmd_FailUninhibit
Program Command to Uninhibit Analog Input Failure Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Fail.PCmd_Uninhibit
Base Tag:
Fail.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
MCmd_SubstPV
Maintenance Command to use Substitute PV (override input)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_SubstPV - P_AIn/EnableInFalse - *6(OTU)
MCmd_SubstPV - P_AIn/Logic - *9(OTU), 9(XIC)
MCmd_SubstPV - P_AIn/Prescan - *1(OTU)

BOOL

P_AIn

0
MCmd_InpPV
Maintenance Command to use Input PV (normal)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_InpPV - P_AIn/EnableInFalse - *6(OTU)
MCmd_InpPV - P_AIn/Logic - *10(OTU), 10(XIC)
MCmd_InpPV - P_AIn/Prescan - *1(OTU)

BOOL

P_AIn

0
BOOL
OCmd_ClearCapt
Operator Command to Clear the captured min / max PV excursion values
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ClearCapt - P_AIn/Logic - *26(OTU), 26(XIC)

P_AIn

0
OCmd_Reset
Operator Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_AIn/EnableInFalse - *6(OTU)
OCmd_Reset - P_AIn/Logic - *14(OTU), 14(XIC)
OCmd_Reset - P_AIn/Prescan - *1(OTU)

BOOL

P_AIn

0
OCmd_ResetAckAll
Operator Command to Reset and Acknowledge all Alarms
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ResetAckAll - P_AIn/EnableInFalse - *6(OTU)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 24
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OCmd_ResetAckAll (Continued)
OCmd_ResetAckAll - P_AIn/Logic - *14(OTU), 14(XIC)
OCmd_ResetAckAll - P_AIn/Prescan - *1(OTU)
0.0
REAL
P_AIn
Val
Analog Value (after Substitute PV, if used)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val - P_AIn/Logic - *24(MOV), 25(GRT), 25(LES), 25(MOV), 26(MOV), 27(CMP), 27(GEQ), 28(CMP), 28(GEQ), 29(CMP), 29(LEQ),
30(CMP), 30(LEQ)
0.0
REAL
Val_InpPV
Analog Input Value (actual, before Substitute PV selection)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_InpPV - P_AIn/EnableInFalse - *5(CPT), *5(MOV)
Val_InpPV - P_AIn/Logic - *16(CPT), *16(MOV), 17(MOV), 18(MOV), 31(CMP), 31(GEQ), 31(LEQ)

P_AIn

0.0
Val_PVMinCapt
Captured PV Minimum (excursion) since last cleared
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_PVMinCapt - P_AIn/Logic - *25(MOV), *26(MOV), 25(LES)

REAL

P_AIn

0.0
Val_PVMaxCapt
Captured PV Maximum (excursion) since last cleared
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_PVMaxCapt - P_AIn/Logic - *25(MOV), *26(MOV), 25(GRT)

REAL

P_AIn

0.0
Val_PVEUMin
Minimum of scaled range = MIN (Cfg_PVEUMin, Cfg_PVEUMax)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_PVEUMin - P_AIn/EnableInFalse - *2(MOV)
Val_PVEUMin - P_AIn/Logic - *3(MOV)

REAL

P_AIn

100.0
Val_PVEUMax
Maximum of scaled range = MAX (Cfg_PVEUMin, Cfg_PVEUMax)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_PVEUMax - P_AIn/EnableInFalse - *2(MOV)
Val_PVEUMax - P_AIn/Logic - *3(MOV)

REAL

P_AIn

0
SINT
Val_Sts
Device Confirmed Sts 0=PV Good, 5=PV Uncertain, 6=PV Bad, 7=Substitute PV, 33=Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Sts - P_AIn/EnableInFalse - *3(MOV)
Val_Sts - P_AIn/Logic - *33(MOV)

P_AIn

0
SINT
Val_Fault
Device Fault Status 0=none, 20=Lo, 21=Hi, 24=LoLo, 25=HiHi, 32=Fail, 34=CfgErr

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 25
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_Fault (Continued)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fault - P_AIn/EnableInFalse - *3(MOV)
Val_Fault - P_AIn/Logic - *33(MOV)
0
DINT
P_AIn
Val_Mode
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Val
Base Tag:
Mode.Val
Constant
No
External Access:
Read Only
0
Val_Owner
Current Object Owner ID (0=not owned)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Owner - P_AIn/EnableInFalse - *1(MOV), 1(EQU)
Val_Owner - P_AIn/Logic - *2(MOV), 2(EQU)
Val_Owner - P_AIn/Prescan - *0(CLR)

DINT

P_AIn

0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Notify - P_AIn/EnableInFalse - *11(CLR)
Val_Notify - P_AIn/Logic - *41(MOV)

SINT

P_AIn

1.50000000e+038
Val_HiHiLim
Current High-High Status Threshold
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_HiHiLim - P_AIn/Logic - *7(MOV), 27(CMP), 27(GEQ), 7(MOV)

REAL

P_AIn

1.50000000e+038
Val_HiLim
Current High Status Threshold
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_HiLim - P_AIn/Logic - *7(MOV), 28(CMP), 28(GEQ), 7(MOV)

REAL

P_AIn

-1.50000000e+038
Val_LoLim
Current Low Status Threshold
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_LoLim - P_AIn/Logic - *7(MOV), 29(CMP), 29(LEQ), 7(MOV)

REAL

P_AIn

-1.50000000e+038
Val_LoLoLim
Current Low-Low Status Threshold
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only

REAL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 26
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_LoLoLim (Continued)
Val_LoLoLim - P_AIn/Logic - *7(MOV), 30(CMP), 30(LEQ), 7(MOV)
0
Sts_SubstPV
1=Using Substitute PV (Input being overridden)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_SubstPV - P_AIn/Logic - *11(OTE), 12(XIC), 18(XIO), 33(XIC)

BOOL

P_AIn

1
Sts_InpPV
1=Using Input PV (normal)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_InpPV - P_AIn/Logic - *11(OTE)

BOOL

P_AIn

0
Sts_PVBad
1=PV Bad quality or Out of Range
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_PVBad - P_AIn/EnableInFalse - *3(OTL)
Sts_PVBad - P_AIn/Logic - *31(OTE), 33(XIC)

BOOL

P_AIn

0
Sts_PVUncertain
1=PV Value is Uncertain (quality)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_PVUncertain - P_AIn/Logic - *32(OTE), 33(XIC)

BOOL

P_AIn

0
Sts_MaintByp
1=A Maintenance Bypass is Active, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_MaintByp - P_AIn/EnableInFalse - *3(OTU)
Sts_MaintByp - P_AIn/Logic - *12(OTE)

BOOL

P_AIn

0
Sts_AlmInh
1=An Alarm is Inhibited, Disabled or Suppressed, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_AIn/EnableInFalse - *11(OTL)
Sts_AlmInh - P_AIn/Logic - *40(OTE)

BOOL

P_AIn

0
Sts_Err
1=Error in Config (see detail Err_ bits for reason), display icon
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_AIn/EnableInFalse - *3(OTE)
Sts_Err - P_AIn/Logic - *6(OTE), 33(XIC)

BOOL

P_AIn

0
Err_Raw
1=Error in Config: Raw Input Scaling Min = Max
Usage:
Output Parameter
Required:
No

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 27
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Err_Raw (Continued)
Visible:
No
External Access:
Read Only
Err_Raw - P_AIn/EnableInFalse - *3(OTE), 5(XIC), 5(XIO)
Err_Raw - P_AIn/Logic - *4(OTE), 16(XIC), 16(XIO), 6(XIC)
0
Err_EU
1=Error in Config: Scaled EU Min = Max
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_EU - P_AIn/EnableInFalse - *3(OTE), 5(XIC), 5(XIO)
Err_EU - P_AIn/Logic - *4(OTE), 16(XIC), 16(XIO), 6(XIC)

BOOL

P_AIn

0
BOOL
Err_Timer
1=Error in Config: On Delay, Off Delay Time Invalid (use 0 to 2147483 sec)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_AIn/Logic - *5(OTE)

P_AIn

0
Err_Filt
1=Error in Config: PV filter params (RateTime, TC)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Filt - P_AIn/EnableInFalse - *3(OTE)
Err_Filt - P_AIn/Logic - *4(OTE), 6(XIC)

BOOL

P_AIn

0
Err_DB
1=Error in Config: a Status Deadband is < 0.0
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_DB - P_AIn/Logic - *6(OTE)

BOOL

P_AIn

0
Err_Alarm
1=Error in Config: Alarm Min On Time or Severity
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Alarm - P_AIn/Logic - *6(OTE)

BOOL

P_AIn

0
Sts_Maint
1=Mode is Maintenance (supersedes Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_Maint
Base Tag:
Mode.Sts_Maint
Constant
No
External Access:
Read Only
Sts_Maint - P_AIn/Logic - 13(XIC)
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)
Mode.Sts_Maint - P_AIn/Logic - 10(XIC), 7(XIC), 8(XIC), 9(XIC)

BOOL

P_AIn

BOOL

P_AIn

Sts_Prog
1=Mode is Program
Usage:
Required:
Visible:

0
Output Parameter
No
No

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 28
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Prog (Continued)
AliasFor:
Mode.Sts_Prog
Base Tag:
Mode.Sts_Prog
Constant
No
External Access:
Read Only
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)
Mode.Sts_Prog - P_AIn/Logic - 7(XIC)
1
Sts_Oper
1=Mode is Operator
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_Oper
Base Tag:
Mode.Sts_Oper
Constant
No
External Access:
Read Only
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)
Mode.Sts_Oper - P_AIn/Logic - 7(XIC), 8(XIC)

BOOL

P_AIn

0
Sts_ProgOperLock
1=Program or Operator has requested Mode Lock
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_ProgOperLock
Base Tag:
Mode.Sts_ProgOperLock
Constant
No
External Access:
Read Only
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

BOOL

P_AIn

0
Sts_NoMode
1=NoMode (Disabled because EnableIn is False)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_NoMode
Base Tag:
Mode.Sts_NoMode
Constant
No
External Access:
Read Only
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)

BOOL

P_AIn

1
Sts_HiHi
1=Analog Input is above High-High limit
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Inp
Base Tag:
HiHi.Inp
Constant
No
External Access:
Read Only
Sts_HiHi - P_AIn/EnableInFalse - *11(OTU)
Sts_HiHi - P_AIn/Logic - *27(OTE), 33(XIC)
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
Alm_HiHi
1=Analog Input is in High-High Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Alm
Base Tag:
HiHi.Alm
Constant
No

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 29
22/12/2015 08,53,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Alm_HiHi (Continued)
External Access:
Read Only
Alm_HiHi - P_AIn/EnableInFalse - *11(OTU)
HiHi - P_AIn/Logic - *35(P_Alarm)
1
Ack_HiHi
1=High-High Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Ack
Base Tag:
HiHi.Ack
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
Sts_HiHiDisabled
1=High-High Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Disabled
Base Tag:
HiHi.Disabled
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
Sts_HiHiInhibited
1=High-High Alarm is Inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Inhibited
Base Tag:
HiHi.Inhibited
Constant
No
External Access:
Read Only
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

0
Sts_HiHiSuppressed
1=High-High Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
HiHi.Suppressed
Base Tag:
HiHi.Suppressed
Constant
No
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)

BOOL

P_AIn

1
Sts_Hi
1=Analog Input is above High limit
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Inp
Base Tag:
Hi.Inp
Constant
No
External Access:
Read Only
Sts_Hi - P_AIn/EnableInFalse - *11(OTU)
Sts_Hi - P_AIn/Logic - *28(OTE), 33(XIC)
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

BOOL

P_AIn

Alm_Hi
1=Analog Input is in High Alarm
Usage:
Required:
Visible:

0
Output Parameter
No
No

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 30
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Alm_Hi (Continued)
AliasFor:
Hi.Alm
Base Tag:
Hi.Alm
Constant
No
External Access:
Read Only
Alm_Hi - P_AIn/EnableInFalse - *11(OTU)
Hi - P_AIn/Logic - *36(P_Alarm)
1
Ack_Hi
1=High Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Ack
Base Tag:
Hi.Ack
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

0
Sts_HiDisabled
1=High Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Disabled
Base Tag:
Hi.Disabled
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

0
Sts_HiInhibited
1=High Alarm is Inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Inhibited
Base Tag:
Hi.Inhibited
Constant
No
External Access:
Read Only
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

0
Sts_HiSuppressed
1=High Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Hi.Suppressed
Base Tag:
Hi.Suppressed
Constant
No
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)

BOOL

P_AIn

1
Sts_Lo
1=Analog Input is below Low limit
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Inp
Base Tag:
Lo.Inp
Constant
No
External Access:
Read Only
Sts_Lo - P_AIn/EnableInFalse - *11(OTU)
Sts_Lo - P_AIn/Logic - *29(OTE), 33(XIC)
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

BOOL

P_AIn

Alm_Lo
1=Analog Input is in Low Alarm

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 31
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Alm_Lo (Continued)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Alm
Base Tag:
Lo.Alm
Constant
No
External Access:
Read Only
Alm_Lo - P_AIn/EnableInFalse - *11(OTU)
Lo - P_AIn/Logic - *37(P_Alarm)
1
Ack_Lo
1=Low Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Ack
Base Tag:
Lo.Ack
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

0
Sts_LoDisabled
1=Low Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Disabled
Base Tag:
Lo.Disabled
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

0
Sts_LoInhibited
1=Low Alarm is Inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Inhibited
Base Tag:
Lo.Inhibited
Constant
No
External Access:
Read Only
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

0
Sts_LoSuppressed
1=Low Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Lo.Suppressed
Base Tag:
Lo.Suppressed
Constant
No
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)

BOOL

P_AIn

1
Sts_LoLo
1=Analog Input is below Low-Low limit
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Inp
Base Tag:
LoLo.Inp
Constant
No
External Access:
Read Only
Sts_LoLo - P_AIn/EnableInFalse - *11(OTU)
Sts_LoLo - P_AIn/Logic - *30(OTE), 33(XIC)
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 32
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Alm_LoLo
1=Analog Input is in Low-Low Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Alm
Base Tag:
LoLo.Alm
Constant
No
External Access:
Read Only
Alm_LoLo - P_AIn/EnableInFalse - *11(OTU)
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

1
Ack_LoLo
1=Low-Low Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Ack
Base Tag:
LoLo.Ack
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

0
Sts_LoLoDisabled
1=Low-Low Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Disabled
Base Tag:
LoLo.Disabled
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

0
Sts_LoLoInhibited
1=Low-Low Alarm is Inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Inhibited
Base Tag:
LoLo.Inhibited
Constant
No
External Access:
Read Only
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

0
Sts_LoLoSuppressed
1=Low-Low Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
LoLo.Suppressed
Base Tag:
LoLo.Suppressed
Constant
No
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)

BOOL

P_AIn

1
Sts_Fail
1=Analog Input is Out of Range or PV Bad
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Inp
Base Tag:
Fail.Inp
Constant
No
External Access:
Read Only
Sts_Fail - P_AIn/EnableInFalse - *11(OTU)
Sts_Fail - P_AIn/Logic - *31(OTE), 33(XIC)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 33
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Fail (Continued)
Fail - P_AIn/Logic - *39(P_Alarm)
0
Alm_Fail
1=Analog Input Failure Alarm (PV Bad or Out of Range)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Alm
Base Tag:
Fail.Alm
Constant
No
External Access:
Read Only
Alm_Fail - P_AIn/EnableInFalse - *11(OTU)
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

1
Ack_Fail
1=Analog Input Failure Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Ack
Base Tag:
Fail.Ack
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
Sts_FailDisabled
1=Analog input Failure Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Disabled
Base Tag:
Fail.Disabled
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
Sts_FailInhibited
1=Analog Input Failure Alarm is inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Inhibited
Base Tag:
Fail.Inhibited
Constant
No
External Access:
Read Only
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
Sts_FailSuppressed
1=Analog Input Failure Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Fail.Suppressed
Base Tag:
Fail.Suppressed
Constant
No
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)

BOOL

P_AIn

0
Rdy_SubstPV
1=Ready for MCmd_SubstPV
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_SubstPV - P_AIn/EnableInFalse - *7(OTU)
Rdy_SubstPV - P_AIn/Logic - *13(OTE)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Type Size: 708 byte (s)
Data Context: P_AIn <definition>

Page 34
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Rdy_InpPV
1=Ready for MCmd_InpPV
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_InpPV - P_AIn/EnableInFalse - *7(OTU)
Rdy_InpPV - P_AIn/Logic - *13(OTE)

BOOL

P_AIn

0
Rdy_Reset
1=At least one Alarm requires Reset
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_AIn/EnableInFalse - *7(OTU)
Rdy_Reset - P_AIn/Logic - *41(OTE)

BOOL

P_AIn

0
Rdy_ResetAckAll
1=At least one Alarm requires Reset or Acknowledgement
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ResetAckAll - P_AIn/EnableInFalse - *7(OTU)
Rdy_ResetAckAll - P_AIn/Logic - *41(OTE)

BOOL

P_AIn

0
Rdy_OSet
1=Ready to receive OSets (enables data entry fields)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_OSet - P_AIn/EnableInFalse - *7(OTU)
Rdy_OSet - P_AIn/Logic - *8(OTE)

BOOL

P_AIn

0
P_AIn
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 35
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
'Analog Input'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_AIn/Logic - 0(CONCAT)
12
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

Data Type
STRING_40

'%'
Cfg_EU
Engineering Units for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_EU - P_AIn/Logic - *0(CONCAT)
1
Cfg_EU.LEN
Engineering Units for display on HMI
Cfg_EU.DATA
Engineering Units for display on HMI

STRING_8

'Analog Input'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_AIn/Logic - 0(CONCAT)
12
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI
'P_AIn'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_AIn/Logic - 0(LOWER)
5
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

Scope
P_AIn

DINT
SINT
P_AIn

DINT
SINT
STRING_20

P_AIn

DINT
SINT
STRING_20

P_AIn

DINT
SINT

P_Alarm
P_AIn
Fail
Analog Input Failure Alarm (bad quality or out of range)
Usage:
Local Tag
External Access:
Read/Write
Fail - P_AIn/Logic - *39(P_Alarm)
1
BOOL
Fail.EnableIn
Analog Input Failure Alarm (bad quality or out of range) Enable Input - System Defined Parameter
0
BOOL
Fail.EnableOut
Analog Input Failure Alarm (bad quality or out of range) Enable Output - System Defined Parameter
1
BOOL
Fail.Inp
Analog Input Failure Alarm (bad quality or out of range) Alarm Condition Input 1=Alarm
Sts_Fail - P_AIn/EnableInFalse - *11(OTU)
Sts_Fail - P_AIn/Logic - *31(OTE), 33(XIC)
0
BOOL
Fail.Inp_Reset
Analog Input Failure Alarm (bad quality or out of range) 1=Reset Alarm requiring reset
1
BOOL
Fail.Cfg_Exists
Analog Input Failure Alarm (bad quality or out of range) 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
Fail.Cfg_ResetReqd
Analog Input Failure Alarm (bad quality or out of range) 1=Reset required to clear Alarm
1
BOOL
Fail.Cfg_AckReqd
Analog Input Failure Alarm (bad quality or out of range) 1=Acknowledge required for Alarm
0
BOOL
Fail.Cfg_PCmdClear
Analog Input Failure Alarm (bad quality or out of range) 1=Clear Program Commands on receipt 0=Leave Set
Fail.Cfg_PCmdClear - P_AIn/Logic - *34(OTE)
3
SINT
Fail.Cfg_Severity
Analog Input Failure Alarm (bad quality or out of range) 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 36
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Fail (Continued)
5
DINT
Fail.Cfg_AlmMinOnT
Analog Input Failure Alarm (bad quality or out of range) Minimum time Alm output stays on (sec)
0
BOOL
Fail.PCmd_Reset
Analog Input Failure Alarm (bad quality or out of range) Program Command to Reset latched alarm
Fail.PCmd_Reset - P_AIn/Logic - *14(OTL)
0
BOOL
Fail.PCmd_Ack
Analog Input Failure Alarm (bad quality or out of range) Program Command to Acknowledge alarm
Fail.PCmd_Ack - P_AIn/Logic - *14(OTL)
0
BOOL
Fail.PCmd_Inhibit
Analog Input Failure Alarm (bad quality or out of range) Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
Fail.PCmd_Uninhibit
Analog Input Failure Alarm (bad quality or out of range) Program Command to Uninhibit alarm
0
BOOL
Fail.OCmd_Reset
Analog Input Failure Alarm (bad quality or out of range) Operator Command to Reset latched alarm
0
BOOL
Fail.OCmd_Ack
Analog Input Failure Alarm (bad quality or out of range) Operator Command to Acknowledge alarm
0
BOOL
Fail.OCmd_Suppress
Analog Input Failure Alarm (bad quality or out of range) Operator Command to Suppress alarm
0
BOOL
Fail.OCmd_Unsuppress
Analog Input Failure Alarm (bad quality or out of range) Operator Command to Unsuppress alarm
0
BOOL
Fail.MCmd_Disable
Analog Input Failure Alarm (bad quality or out of range) Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
Fail.MCmd_Enable
Analog Input Failure Alarm (bad quality or out of range) Maintenance Command to Enable alarm
0
SINT
Fail.Val_Notify
Analog Input Failure Alarm (bad quality or out of range) Current Alarm Level and Acknowledgement (enumeration)
Fail.Val_Notify - P_AIn/Logic - 41(GRT), 41(MOV)
0
BOOL
Fail.Alm
Analog Input Failure Alarm (bad quality or out of range) Alarm output 1=In Alarm
Alm_Fail - P_AIn/EnableInFalse - *11(OTU)
1
BOOL
Fail.Ack
Analog Input Failure Alarm (bad quality or out of range) Alarm acknowledged status: 1=Ack rcvd
0
BOOL
Fail.Inhibited
Analog Input Failure Alarm (bad quality or out of range) 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
Fail.Suppressed
Analog Input Failure Alarm (bad quality or out of range) 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
Fail.Disabled
Analog Input Failure Alarm (bad quality or out of range) 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
Fail.Sts_AlmInh
Analog Input Failure Alarm (bad quality or out of range) 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
Fail.Sts_AlmInh - P_AIn/Logic - 40(XIC)
0
BOOL
Fail.Sts_Err
Analog Input Failure Alarm (bad quality or out of range) 1=Error in Config: see detail Err_ bits for reason
Fail.Sts_Err - P_AIn/Logic - 6(XIC)
0
BOOL
Fail.Err_Timer
Analog Input Failure Alarm (bad quality or out of range) 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
Fail.Err_Severity
Analog Input Failure Alarm (bad quality or out of range) 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
Fail.Rdy_Reset
Analog Input Failure Alarm (bad quality or out of range) Ready to receive OCmd_Reset (enable button)
Fail.Rdy_Reset - P_AIn/Logic - 41(XIC)
0
BOOL
Fail.Rdy_Ack
Analog Input Failure Alarm (bad quality or out of range) Ready to receive OCmd_Ack (enable button)
Fail.Rdy_Ack - P_AIn/Logic - 41(XIC)
0
BOOL
Fail.Rdy_Suppress
Analog Input Failure Alarm (bad quality or out of range) Ready to receive OCmd_Suppress (enable button)
0
BOOL
Fail.Rdy_Unsuppress
Analog Input Failure Alarm (bad quality or out of range) Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
Fail.Rdy_Disable
Analog Input Failure Alarm (bad quality or out of range) Ready to receive MCmd_Disable (enable button)
0
BOOL
Fail.Rdy_Enable
Analog Input Failure Alarm (bad quality or out of range) Ready to receive MCmd_Enable (enable button)
Hi
High Alarm
Usage:

P_Alarm

P_AIn

Local Tag
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 37
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Hi (Continued)
External Access:
Read/Write
Hi - P_AIn/Logic - *36(P_Alarm)
1
BOOL
Hi.EnableIn
High Alarm Enable Input - System Defined Parameter
0
BOOL
Hi.EnableOut
High Alarm Enable Output - System Defined Parameter
1
BOOL
Hi.Inp
High Alarm Alarm Condition Input 1=Alarm
Sts_Hi - P_AIn/EnableInFalse - *11(OTU)
Sts_Hi - P_AIn/Logic - *28(OTE), 33(XIC)
0
BOOL
Hi.Inp_Reset
High Alarm 1=Reset Alarm requiring reset
1
BOOL
Hi.Cfg_Exists
High Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
Hi.Cfg_ResetReqd
High Alarm 1=Reset required to clear Alarm
1
BOOL
Hi.Cfg_AckReqd
High Alarm 1=Acknowledge required for Alarm
0
BOOL
Hi.Cfg_PCmdClear
High Alarm 1=Clear Program Commands on receipt 0=Leave Set
Hi.Cfg_PCmdClear - P_AIn/Logic - *34(OTE)
2
SINT
Hi.Cfg_Severity
High Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
Hi.Cfg_AlmMinOnT
High Alarm Minimum time Alm output stays on (sec)
0
BOOL
Hi.PCmd_Reset
High Alarm Program Command to Reset latched alarm
Hi.PCmd_Reset - P_AIn/Logic - *14(OTL)
0
BOOL
Hi.PCmd_Ack
High Alarm Program Command to Acknowledge alarm
Hi.PCmd_Ack - P_AIn/Logic - *14(OTL)
0
BOOL
Hi.PCmd_Inhibit
High Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
Hi.PCmd_Uninhibit
High Alarm Program Command to Uninhibit alarm
0
BOOL
Hi.OCmd_Reset
High Alarm Operator Command to Reset latched alarm
0
BOOL
Hi.OCmd_Ack
High Alarm Operator Command to Acknowledge alarm
0
BOOL
Hi.OCmd_Suppress
High Alarm Operator Command to Suppress alarm
0
BOOL
Hi.OCmd_Unsuppress
High Alarm Operator Command to Unsuppress alarm
0
BOOL
Hi.MCmd_Disable
High Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
Hi.MCmd_Enable
High Alarm Maintenance Command to Enable alarm
0
SINT
Hi.Val_Notify
High Alarm Current Alarm Level and Acknowledgement (enumeration)
Hi.Val_Notify - P_AIn/Logic - 41(GRT), 41(MOV)
0
BOOL
Hi.Alm
High Alarm Alarm output 1=In Alarm
Alm_Hi - P_AIn/EnableInFalse - *11(OTU)
1
BOOL
Hi.Ack
High Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
Hi.Inhibited
High Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
Hi.Suppressed
High Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
Hi.Disabled
High Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
Hi.Sts_AlmInh
High Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
Hi.Sts_AlmInh - P_AIn/Logic - 40(XIC)
0
BOOL
Hi.Sts_Err
High Alarm 1=Error in Config: see detail Err_ bits for reason
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Hi (Continued)
Hi.Sts_Err - P_AIn/Logic - 6(XIC)
0
Hi.Err_Timer
High Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
Hi.Err_Severity
High Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
Hi.Rdy_Reset
High Alarm Ready to receive OCmd_Reset (enable button)
Hi.Rdy_Reset - P_AIn/Logic - 41(XIC)
0
Hi.Rdy_Ack
High Alarm Ready to receive OCmd_Ack (enable button)
Hi.Rdy_Ack - P_AIn/Logic - 41(XIC)
0
Hi.Rdy_Suppress
High Alarm Ready to receive OCmd_Suppress (enable button)
0
Hi.Rdy_Unsuppress
High Alarm Ready to receive OCmd_Unsuppress (enable button)
1
Hi.Rdy_Disable
High Alarm Ready to receive MCmd_Disable (enable button)
0
Hi.Rdy_Enable
High Alarm Ready to receive MCmd_Enable (enable button)

Page 38
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

P_Alarm
HiHi
High-High Alarm
Usage:
Local Tag
External Access:
Read/Write
HiHi - P_AIn/Logic - *35(P_Alarm)
1
BOOL
HiHi.EnableIn
High-High Alarm Enable Input - System Defined Parameter
0
BOOL
HiHi.EnableOut
High-High Alarm Enable Output - System Defined Parameter
1
BOOL
HiHi.Inp
High-High Alarm Alarm Condition Input 1=Alarm
Sts_HiHi - P_AIn/EnableInFalse - *11(OTU)
Sts_HiHi - P_AIn/Logic - *27(OTE), 33(XIC)
0
BOOL
HiHi.Inp_Reset
High-High Alarm 1=Reset Alarm requiring reset
1
BOOL
HiHi.Cfg_Exists
High-High Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
HiHi.Cfg_ResetReqd
High-High Alarm 1=Reset required to clear Alarm
1
BOOL
HiHi.Cfg_AckReqd
High-High Alarm 1=Acknowledge required for Alarm
0
BOOL
HiHi.Cfg_PCmdClear
High-High Alarm 1=Clear Program Commands on receipt 0=Leave Set
HiHi.Cfg_PCmdClear - P_AIn/Logic - *34(OTE)
3
SINT
HiHi.Cfg_Severity
High-High Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
HiHi.Cfg_AlmMinOnT
High-High Alarm Minimum time Alm output stays on (sec)
0
BOOL
HiHi.PCmd_Reset
High-High Alarm Program Command to Reset latched alarm
HiHi.PCmd_Reset - P_AIn/Logic - *14(OTL)
0
BOOL
HiHi.PCmd_Ack
High-High Alarm Program Command to Acknowledge alarm
HiHi.PCmd_Ack - P_AIn/Logic - *14(OTL)
0
BOOL
HiHi.PCmd_Inhibit
High-High Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
HiHi.PCmd_Uninhibit
High-High Alarm Program Command to Uninhibit alarm
0
BOOL
HiHi.OCmd_Reset
High-High Alarm Operator Command to Reset latched alarm
0
BOOL
HiHi.OCmd_Ack
High-High Alarm Operator Command to Acknowledge alarm
0
BOOL
HiHi.OCmd_Suppress
High-High Alarm Operator Command to Suppress alarm
0
BOOL
HiHi.OCmd_Unsuppress
High-High Alarm Operator Command to Unsuppress alarm

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 39
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

HiHi (Continued)
0
BOOL
HiHi.MCmd_Disable
High-High Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
HiHi.MCmd_Enable
High-High Alarm Maintenance Command to Enable alarm
0
SINT
HiHi.Val_Notify
High-High Alarm Current Alarm Level and Acknowledgement (enumeration)
HiHi.Val_Notify - P_AIn/Logic - 41(GRT), 41(MOV)
0
BOOL
HiHi.Alm
High-High Alarm Alarm output 1=In Alarm
Alm_HiHi - P_AIn/EnableInFalse - *11(OTU)
1
BOOL
HiHi.Ack
High-High Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
HiHi.Inhibited
High-High Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
HiHi.Suppressed
High-High Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
HiHi.Disabled
High-High Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
HiHi.Sts_AlmInh
High-High Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
HiHi.Sts_AlmInh - P_AIn/Logic - 40(XIC)
0
BOOL
HiHi.Sts_Err
High-High Alarm 1=Error in Config: see detail Err_ bits for reason
HiHi.Sts_Err - P_AIn/Logic - 6(XIC)
0
BOOL
HiHi.Err_Timer
High-High Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
HiHi.Err_Severity
High-High Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
HiHi.Rdy_Reset
High-High Alarm Ready to receive OCmd_Reset (enable button)
HiHi.Rdy_Reset - P_AIn/Logic - 41(XIC)
0
BOOL
HiHi.Rdy_Ack
High-High Alarm Ready to receive OCmd_Ack (enable button)
HiHi.Rdy_Ack - P_AIn/Logic - 41(XIC)
0
BOOL
HiHi.Rdy_Suppress
High-High Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
HiHi.Rdy_Unsuppress
High-High Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
HiHi.Rdy_Disable
High-High Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
HiHi.Rdy_Enable
High-High Alarm Ready to receive MCmd_Enable (enable button)
SINT

P_AIn

'P_AIn'
Inf_Type
Must contain AOI name, used for HMI and Information S/W
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_AIn/Logic - *0(LOWER)
5
Inf_Type.LEN
Must contain AOI name, used for HMI and Information S/W
Inf_Type.DATA
Must contain AOI name, used for HMI and Information S/W

STRING_16

P_AIn

Lo
Low Alarm
Usage:
Local Tag
External Access:
Read/Write
Lo - P_AIn/Logic - *37(P_Alarm)
1
Lo.EnableIn
Low Alarm Enable Input - System Defined Parameter
0
Lo.EnableOut

P_Alarm

Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

0
Local Tag
Read/Write

DINT
SINT
P_AIn

BOOL
BOOL
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 40
22/12/2015 08,53,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Lo (Continued)
Low Alarm Enable Output - System Defined Parameter
1
BOOL
Lo.Inp
Low Alarm Alarm Condition Input 1=Alarm
Sts_Lo - P_AIn/EnableInFalse - *11(OTU)
Sts_Lo - P_AIn/Logic - *29(OTE), 33(XIC)
0
BOOL
Lo.Inp_Reset
Low Alarm 1=Reset Alarm requiring reset
1
BOOL
Lo.Cfg_Exists
Low Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
Lo.Cfg_ResetReqd
Low Alarm 1=Reset required to clear Alarm
1
BOOL
Lo.Cfg_AckReqd
Low Alarm 1=Acknowledge required for Alarm
0
BOOL
Lo.Cfg_PCmdClear
Low Alarm 1=Clear Program Commands on receipt 0=Leave Set
Lo.Cfg_PCmdClear - P_AIn/Logic - *34(OTE)
3
SINT
Lo.Cfg_Severity
Low Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
Lo.Cfg_AlmMinOnT
Low Alarm Minimum time Alm output stays on (sec)
0
BOOL
Lo.PCmd_Reset
Low Alarm Program Command to Reset latched alarm
Lo.PCmd_Reset - P_AIn/Logic - *14(OTL)
0
BOOL
Lo.PCmd_Ack
Low Alarm Program Command to Acknowledge alarm
Lo.PCmd_Ack - P_AIn/Logic - *14(OTL)
0
BOOL
Lo.PCmd_Inhibit
Low Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
Lo.PCmd_Uninhibit
Low Alarm Program Command to Uninhibit alarm
0
BOOL
Lo.OCmd_Reset
Low Alarm Operator Command to Reset latched alarm
0
BOOL
Lo.OCmd_Ack
Low Alarm Operator Command to Acknowledge alarm
0
BOOL
Lo.OCmd_Suppress
Low Alarm Operator Command to Suppress alarm
0
BOOL
Lo.OCmd_Unsuppress
Low Alarm Operator Command to Unsuppress alarm
0
BOOL
Lo.MCmd_Disable
Low Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
Lo.MCmd_Enable
Low Alarm Maintenance Command to Enable alarm
0
SINT
Lo.Val_Notify
Low Alarm Current Alarm Level and Acknowledgement (enumeration)
Lo.Val_Notify - P_AIn/Logic - 41(GRT), 41(MOV)
0
BOOL
Lo.Alm
Low Alarm Alarm output 1=In Alarm
Alm_Lo - P_AIn/EnableInFalse - *11(OTU)
1
BOOL
Lo.Ack
Low Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
Lo.Inhibited
Low Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
Lo.Suppressed
Low Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
Lo.Disabled
Low Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
Lo.Sts_AlmInh
Low Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
Lo.Sts_AlmInh - P_AIn/Logic - 40(XIC)
0
BOOL
Lo.Sts_Err
Low Alarm 1=Error in Config: see detail Err_ bits for reason
Lo.Sts_Err - P_AIn/Logic - 6(XIC)
0
BOOL
Lo.Err_Timer
Low Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
Lo.Err_Severity
Low Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Lo (Continued)
0
Lo.Rdy_Reset
Low Alarm Ready to receive OCmd_Reset (enable button)
Lo.Rdy_Reset - P_AIn/Logic - 41(XIC)
0
Lo.Rdy_Ack
Low Alarm Ready to receive OCmd_Ack (enable button)
Lo.Rdy_Ack - P_AIn/Logic - 41(XIC)
0
Lo.Rdy_Suppress
Low Alarm Ready to receive OCmd_Suppress (enable button)
0
Lo.Rdy_Unsuppress
Low Alarm Ready to receive OCmd_Unsuppress (enable button)
1
Lo.Rdy_Disable
Low Alarm Ready to receive MCmd_Disable (enable button)
0
Lo.Rdy_Enable
Low Alarm Ready to receive MCmd_Enable (enable button)

Page 41
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

P_Alarm
LoLo
Low-Low Alarm
Usage:
Local Tag
External Access:
Read/Write
LoLo - P_AIn/Logic - *38(P_Alarm)
1
BOOL
LoLo.EnableIn
Low-Low Alarm Enable Input - System Defined Parameter
0
BOOL
LoLo.EnableOut
Low-Low Alarm Enable Output - System Defined Parameter
1
BOOL
LoLo.Inp
Low-Low Alarm Alarm Condition Input 1=Alarm
Sts_LoLo - P_AIn/EnableInFalse - *11(OTU)
Sts_LoLo - P_AIn/Logic - *30(OTE), 33(XIC)
0
BOOL
LoLo.Inp_Reset
Low-Low Alarm 1=Reset Alarm requiring reset
1
BOOL
LoLo.Cfg_Exists
Low-Low Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
LoLo.Cfg_ResetReqd
Low-Low Alarm 1=Reset required to clear Alarm
1
BOOL
LoLo.Cfg_AckReqd
Low-Low Alarm 1=Acknowledge required for Alarm
0
BOOL
LoLo.Cfg_PCmdClear
Low-Low Alarm 1=Clear Program Commands on receipt 0=Leave Set
LoLo.Cfg_PCmdClear - P_AIn/Logic - *34(OTE)
3
SINT
LoLo.Cfg_Severity
Low-Low Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
LoLo.Cfg_AlmMinOnT
Low-Low Alarm Minimum time Alm output stays on (sec)
0
BOOL
LoLo.PCmd_Reset
Low-Low Alarm Program Command to Reset latched alarm
LoLo.PCmd_Reset - P_AIn/Logic - *14(OTL)
0
BOOL
LoLo.PCmd_Ack
Low-Low Alarm Program Command to Acknowledge alarm
LoLo.PCmd_Ack - P_AIn/Logic - *14(OTL)
0
BOOL
LoLo.PCmd_Inhibit
Low-Low Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
LoLo.PCmd_Uninhibit
Low-Low Alarm Program Command to Uninhibit alarm
0
BOOL
LoLo.OCmd_Reset
Low-Low Alarm Operator Command to Reset latched alarm
0
BOOL
LoLo.OCmd_Ack
Low-Low Alarm Operator Command to Acknowledge alarm
0
BOOL
LoLo.OCmd_Suppress
Low-Low Alarm Operator Command to Suppress alarm
0
BOOL
LoLo.OCmd_Unsuppress
Low-Low Alarm Operator Command to Unsuppress alarm
0
BOOL
LoLo.MCmd_Disable
Low-Low Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
LoLo.MCmd_Enable
Low-Low Alarm Maintenance Command to Enable alarm
0
SINT
LoLo.Val_Notify

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 42
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

LoLo (Continued)
Low-Low Alarm Current Alarm Level and Acknowledgement (enumeration)
LoLo.Val_Notify - P_AIn/Logic - 41(GRT), 41(MOV)
0
BOOL
LoLo.Alm
Low-Low Alarm Alarm output 1=In Alarm
Alm_LoLo - P_AIn/EnableInFalse - *11(OTU)
1
BOOL
LoLo.Ack
Low-Low Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
LoLo.Inhibited
Low-Low Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
LoLo.Suppressed
Low-Low Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
LoLo.Disabled
Low-Low Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
LoLo.Sts_AlmInh
Low-Low Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
LoLo.Sts_AlmInh - P_AIn/Logic - 40(XIC)
0
BOOL
LoLo.Sts_Err
Low-Low Alarm 1=Error in Config: see detail Err_ bits for reason
LoLo.Sts_Err - P_AIn/Logic - 6(XIC)
0
BOOL
LoLo.Err_Timer
Low-Low Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
LoLo.Err_Severity
Low-Low Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
LoLo.Rdy_Reset
Low-Low Alarm Ready to receive OCmd_Reset (enable button)
LoLo.Rdy_Reset - P_AIn/Logic - 41(XIC)
0
BOOL
LoLo.Rdy_Ack
Low-Low Alarm Ready to receive OCmd_Ack (enable button)
LoLo.Rdy_Ack - P_AIn/Logic - 41(XIC)
0
BOOL
LoLo.Rdy_Suppress
Low-Low Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
LoLo.Rdy_Unsuppress
Low-Low Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
LoLo.Rdy_Disable
Low-Low Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
LoLo.Rdy_Enable
Low-Low Alarm Ready to receive MCmd_Enable (enable button)
P_Mode
Mode
Analog Input Mode Selection
Usage:
Local Tag
External Access:
Read/Write
Mode - P_AIn/EnableInFalse - *0(P_Mode)
Mode - P_AIn/Logic - *1(P_Mode)
1
BOOL
Mode.EnableIn
Analog Input Mode Selection Enable Input - System Defined Parameter
0
BOOL
Mode.EnableOut
Analog Input Mode Selection Enable Output - System Defined Parameter
0
BOOL
Mode.Inp_Hand
Analog Input Mode Selection 1=Select Hand (typ. hardwired) Mode
Mode.Inp_Hand - P_AIn/Logic - *1(OTU)
0
BOOL
Mode.Inp_Ovrd
Analog Input Mode Selection 1=Select Override (typ. Process/Safety Interlock) Mode
Mode.Inp_Ovrd - P_AIn/Logic - *1(OTU)
1
BOOL
Mode.Cfg_PCmdClear
Analog Input Mode Selection 1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds
Cfg_PCmdClear - P_AIn/EnableInFalse - 0(XIC), 0(XIO)
Cfg_PCmdClear - P_AIn/Logic - 14(XIC), 34(XIC)
1
BOOL
Mode.Cfg_OvrdOverLock
Analog Input Mode Selection 1=Override supersedes Prog/Oper Lock, 0=don't override Lock
0
BOOL
Mode.Cfg_ProgDefault
Analog Input Mode Selection Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
0
BOOL
Mode.PCmd_Acq
Analog Input Mode Selection Program Command to Acquire Ownership (Oper to Prog)
0
BOOL
Mode.PCmd_Rel
Analog Input Mode Selection Program Command to Release Ownership (Prog to Oper)

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 43
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode (Continued)
0
BOOL
Mode.PCmd_Lock
Analog Input Mode Selection Program Command to Lock Mode in Prog
0
BOOL
Mode.PCmd_Unlock
Analog Input Mode Selection Program Command to Unlock Mode
0
BOOL
Mode.MCmd_Acq
Analog Input Mode Selection Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)
0
BOOL
Mode.MCmd_Rel
Analog Input Mode Selection Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)
0
BOOL
Mode.OCmd_AcqLock
Analog Input Mode Selection Operator Command to Acquire and Lock Mode in Oper
0
BOOL
Mode.OCmd_Unlock
Analog Input Mode Selection Operator Command to Unlock Operator Mode
0
DINT
Mode.Val
Analog Input Mode Selection Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
0
BOOL
Mode.Sts_Hand
Analog Input Mode Selection 1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
0
BOOL
Mode.Sts_Maint
Analog Input Mode Selection 1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Mode.Sts_Maint - P_AIn/Logic - 10(XIC), 7(XIC), 8(XIC), 9(XIC)
Sts_Maint - P_AIn/Logic - 13(XIC)
0
BOOL
Mode.Sts_Ovrd
Analog Input Mode Selection 1=Mode is Override (supersedes Prog, Oper)
0
BOOL
Mode.Sts_Prog
Analog Input Mode Selection 1=Mode is Program
Mode.Sts_Prog - P_AIn/Logic - 7(XIC)
1
BOOL
Mode.Sts_Oper
Analog Input Mode Selection 1=Mode is Operator
Mode.Sts_Oper - P_AIn/Logic - 7(XIC), 8(XIC)
0
BOOL
Mode.Sts_ProgOperLock
Analog Input Mode Selection 1=Program or Operator has requested Mode Lock
0
BOOL
Mode.Sts_ProgOperSel
Analog Input Mode Selection Prog/Oper selection 1=Program, 0=Operator
0
BOOL
Mode.Sts_NoMode
Analog Input Mode Selection 1=Mode is NO mode (no owner)
0
BOOL
Mode.Rdy_Acq
Analog Input Mode Selection 1=Ready for MCmd_Acq
1
BOOL
Mode.Rdy_Rel
Analog Input Mode Selection 1=Ready for MCmd_Rel
1
BOOL
Mode.Rdy_AcqLock
Analog Input Mode Selection 1=Ready for OCmd_AcqLock
0
BOOL
Mode.Rdy_Unlock
Analog Input Mode Selection 1=Ready for OCmd_Unlock
0.0
Wrk_Alpha
Filter multiplier = (1 / (1+TC/dT) )
Usage:
Local Tag
External Access:
None
Wrk_Alpha - P_AIn/Logic - *23(CLR), *23(CPT), 23(CPT)

REAL

P_AIn

0
Wrk_Fail
Internal flag: Fail Status
Usage:
Local Tag
External Access:
None
Wrk_Fail - P_AIn/Logic - *31(OTL), *31(OTU), 31(XIC)

BOOL

P_AIn

Wrk_FailOffDlyT
Fail Status Off-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_FailOffDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_FailOffDlyT - P_AIn/Logic - *31(TON)
Wrk_FailOffDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_FailOffDlyT.PRE
Fail Status Off-Delay Timer
Wrk_FailOffDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_FailOffDlyT.PRE.31

TIMER

P_AIn

DINT
BOOL
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Wrk_FailOffDlyT (Continued)
Fail Status Off-Delay Timer
Wrk_FailOffDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_FailOffDlyT.ACC
Fail Status Off-Delay Timer
0
Wrk_FailOffDlyT.EN
Fail Status Off-Delay Timer
0
Wrk_FailOffDlyT.TT
Fail Status Off-Delay Timer
0
Wrk_FailOffDlyT.DN
Fail Status Off-Delay Timer
Wrk_FailOffDlyT.DN - P_AIn/Logic - 31(XIC)

Page 44
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
BOOL
BOOL

Wrk_FailOnDlyT
Fail Status On-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_FailOnDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_FailOnDlyT - P_AIn/Logic - *31(TON)
Wrk_FailOnDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_FailOnDlyT.PRE
Fail Status On-Delay Timer
Wrk_FailOnDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_FailOnDlyT.PRE.31
Fail Status On-Delay Timer
Wrk_FailOnDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_FailOnDlyT.ACC
Fail Status On-Delay Timer
0
Wrk_FailOnDlyT.EN
Fail Status On-Delay Timer
0
Wrk_FailOnDlyT.TT
Fail Status On-Delay Timer
0
Wrk_FailOnDlyT.DN
Fail Status On-Delay Timer
Wrk_FailOnDlyT.DN - P_AIn/Logic - 31(XIC)

TIMER

P_AIn

0
Wrk_Fault
Buffer for building Val_Fault
Usage:
Local Tag
External Access:
None
Wrk_Fault - P_AIn/EnableInFalse - *3(CLR), *3(MOV), 3(MOV)
Wrk_Fault - P_AIn/Logic - *33(CLR), *33(MOV), 33(MOV)

SINT

P_AIn

0.0
Wrk_FiltPV
Filtered PV
Usage:
Local Tag
External Access:
None
Wrk_FiltPV - P_AIn/Logic - *22(MOV), *23(CPT), 23(CPT), 24(MOV)

REAL

P_AIn

0
Wrk_Hi
Internal flag: High Status
Usage:
Local Tag
External Access:
None
Wrk_Hi - P_AIn/Logic - *28(OTL), *28(OTU), 28(XIC)

BOOL

P_AIn

0
Wrk_HiHi
Internal flag: High-High Status
Usage:
Local Tag
External Access:
None
Wrk_HiHi - P_AIn/Logic - *27(OTL), *27(OTU), 27(XIC)

BOOL

P_AIn

Wrk_HiHiOffDlyT
High-High Status Off-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_HiHiOffDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_HiHiOffDlyT - P_AIn/Logic - *27(TON)

TIMER

P_AIn

DINT
BOOL
DINT
BOOL
BOOL
BOOL

RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Wrk_HiHiOffDlyT (Continued)
Wrk_HiHiOffDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_HiHiOffDlyT.PRE
High-High Status Off-Delay Timer
Wrk_HiHiOffDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_HiHiOffDlyT.PRE.31
High-High Status Off-Delay Timer
Wrk_HiHiOffDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_HiHiOffDlyT.ACC
High-High Status Off-Delay Timer
0
Wrk_HiHiOffDlyT.EN
High-High Status Off-Delay Timer
0
Wrk_HiHiOffDlyT.TT
High-High Status Off-Delay Timer
0
Wrk_HiHiOffDlyT.DN
High-High Status Off-Delay Timer
Wrk_HiHiOffDlyT.DN - P_AIn/Logic - 27(XIC)

Page 45
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
DINT
BOOL
BOOL
BOOL

Wrk_HiHiOnDlyT
High-High Status On-Dealy Timer
Usage:
Local Tag
External Access:
None
Wrk_HiHiOnDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_HiHiOnDlyT - P_AIn/Logic - *27(TON)
Wrk_HiHiOnDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_HiHiOnDlyT.PRE
High-High Status On-Dealy Timer
Wrk_HiHiOnDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_HiHiOnDlyT.PRE.31
High-High Status On-Dealy Timer
Wrk_HiHiOnDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_HiHiOnDlyT.ACC
High-High Status On-Dealy Timer
0
Wrk_HiHiOnDlyT.EN
High-High Status On-Dealy Timer
0
Wrk_HiHiOnDlyT.TT
High-High Status On-Dealy Timer
0
Wrk_HiHiOnDlyT.DN
High-High Status On-Dealy Timer
Wrk_HiHiOnDlyT.DN - P_AIn/Logic - 27(XIC)

TIMER

Wrk_HiOffDlyT
High Status Off-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_HiOffDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_HiOffDlyT - P_AIn/Logic - *28(TON)
Wrk_HiOffDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_HiOffDlyT.PRE
High Status Off-Delay Timer
Wrk_HiOffDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_HiOffDlyT.PRE.31
High Status Off-Delay Timer
Wrk_HiOffDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_HiOffDlyT.ACC
High Status Off-Delay Timer
0
Wrk_HiOffDlyT.EN
High Status Off-Delay Timer
0
Wrk_HiOffDlyT.TT
High Status Off-Delay Timer
0
Wrk_HiOffDlyT.DN
High Status Off-Delay Timer
Wrk_HiOffDlyT.DN - P_AIn/Logic - 28(XIC)

TIMER

Wrk_HiOnDlyT
High Status On-Delay Timer
Usage:

TIMER

P_AIn

DINT
BOOL
DINT
BOOL
BOOL
BOOL

P_AIn

DINT
BOOL
DINT
BOOL
BOOL
BOOL

P_AIn

Local Tag
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Wrk_HiOnDlyT (Continued)
External Access:
None
Wrk_HiOnDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_HiOnDlyT - P_AIn/Logic - *28(TON)
Wrk_HiOnDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_HiOnDlyT.PRE
High Status On-Delay Timer
Wrk_HiOnDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_HiOnDlyT.PRE.31
High Status On-Delay Timer
Wrk_HiOnDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_HiOnDlyT.ACC
High Status On-Delay Timer
0
Wrk_HiOnDlyT.EN
High Status On-Delay Timer
0
Wrk_HiOnDlyT.TT
High Status On-Delay Timer
0
Wrk_HiOnDlyT.DN
High Status On-Delay Timer
Wrk_HiOnDlyT.DN - P_AIn/Logic - 28(XIC)

Page 46
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
DINT
BOOL
BOOL
BOOL

16#0000_0000
Wrk_InpDINT
Input REAL bit pattern as a DINT (check for Inf/NaN)
Usage:
Local Tag
External Access:
None
Wrk_InpDINT - P_AIn/EnableInFalse - *4(COP), 4(MEQ)
Wrk_InpDINT - P_AIn/Logic - *15(COP), 15(MEQ)

DINT

P_AIn

0
Wrk_InpInfNaN
Input is Infinite or Not a Number
Usage:
Local Tag
External Access:
None
Wrk_InpInfNaN - P_AIn/EnableInFalse - *4(OTE), 5(XIC), 5(XIO)
Wrk_InpInfNaN - P_AIn/Logic - *15(OTE), 16(XIC), 16(XIO), 17(XIO)

BOOL

P_AIn

0
Wrk_Lo
Internal flag: Low Status
Usage:
Local Tag
External Access:
None
Wrk_Lo - P_AIn/Logic - *29(OTL), *29(OTU), 29(XIC)

BOOL

P_AIn

0
Wrk_LoLo
Internal flag: Low-Low Status
Usage:
Local Tag
External Access:
None
Wrk_LoLo - P_AIn/Logic - *30(OTL), *30(OTU), 30(XIC)

BOOL

P_AIn

Wrk_LoLoOffDlyT
Low-Low Status Off-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_LoLoOffDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_LoLoOffDlyT - P_AIn/Logic - *30(TON)
Wrk_LoLoOffDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_LoLoOffDlyT.PRE
Low-Low Status Off-Delay Timer
Wrk_LoLoOffDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_LoLoOffDlyT.PRE.31
Low-Low Status Off-Delay Timer
Wrk_LoLoOffDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_LoLoOffDlyT.ACC
Low-Low Status Off-Delay Timer
0
Wrk_LoLoOffDlyT.EN
Low-Low Status Off-Delay Timer
0
Wrk_LoLoOffDlyT.TT
Low-Low Status Off-Delay Timer
0
Wrk_LoLoOffDlyT.DN

TIMER

P_AIn

DINT
BOOL
DINT
BOOL
BOOL
BOOL
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 47
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_LoLoOffDlyT (Continued)
Low-Low Status Off-Delay Timer
Wrk_LoLoOffDlyT.DN - P_AIn/Logic - 30(XIC)
Wrk_LoLoOnDlyT
Low-Low Status On-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_LoLoOnDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_LoLoOnDlyT - P_AIn/Logic - *30(TON)
Wrk_LoLoOnDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_LoLoOnDlyT.PRE
Low-Low Status On-Delay Timer
Wrk_LoLoOnDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_LoLoOnDlyT.PRE.31
Low-Low Status On-Delay Timer
Wrk_LoLoOnDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_LoLoOnDlyT.ACC
Low-Low Status On-Delay Timer
0
Wrk_LoLoOnDlyT.EN
Low-Low Status On-Delay Timer
0
Wrk_LoLoOnDlyT.TT
Low-Low Status On-Delay Timer
0
Wrk_LoLoOnDlyT.DN
Low-Low Status On-Delay Timer
Wrk_LoLoOnDlyT.DN - P_AIn/Logic - 30(XIC)

TIMER

Wrk_LoOffDlyT
Low Status Off-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_LoOffDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_LoOffDlyT - P_AIn/Logic - *29(TON)
Wrk_LoOffDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_LoOffDlyT.PRE
Low Status Off-Delay Timer
Wrk_LoOffDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_LoOffDlyT.PRE.31
Low Status Off-Delay Timer
Wrk_LoOffDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_LoOffDlyT.ACC
Low Status Off-Delay Timer
0
Wrk_LoOffDlyT.EN
Low Status Off-Delay Timer
0
Wrk_LoOffDlyT.TT
Low Status Off-Delay Timer
0
Wrk_LoOffDlyT.DN
Low Status Off-Delay Timer
Wrk_LoOffDlyT.DN - P_AIn/Logic - 29(XIC)

TIMER

Wrk_LoOnDlyT
Low Status On-Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_LoOnDlyT - P_AIn/EnableInFalse - *10(RES)
Wrk_LoOnDlyT - P_AIn/Logic - *29(TON)
Wrk_LoOnDlyT - P_AIn/Prescan - *4(RES)
0
Wrk_LoOnDlyT.PRE
Low Status On-Delay Timer
Wrk_LoOnDlyT.PRE - P_AIn/Logic - *5(CLR), *5(MUL)
0
Wrk_LoOnDlyT.PRE.31
Low Status On-Delay Timer
Wrk_LoOnDlyT.PRE.31 - P_AIn/Logic - 5(XIC)
0
Wrk_LoOnDlyT.ACC
Low Status On-Delay Timer
0
Wrk_LoOnDlyT.EN
Low Status On-Delay Timer

TIMER

P_AIn

DINT
BOOL
DINT
BOOL
BOOL
BOOL

P_AIn

DINT
BOOL
DINT
BOOL
BOOL
BOOL

P_AIn

DINT
BOOL
DINT
BOOL

RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Wrk_LoOnDlyT (Continued)
0
Wrk_LoOnDlyT.TT
Low Status On-Delay Timer
0
Wrk_LoOnDlyT.DN
Low Status On-Delay Timer
Wrk_LoOnDlyT.DN - P_AIn/Logic - 29(XIC)
0
Wrk_Notify
Buffer for building Val_Notify
Usage:
Local Tag
External Access:
None
Wrk_Notify - P_AIn/Logic - *41(CLR), *41(MOV), 41(GRT), 41(MOV)
0
Wrk_Notify.0
Buffer for building Val_Notify
Wrk_Notify.0 - P_AIn/Logic - *41(OTE)

Page 48
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL

SINT

P_AIn

BOOL

Wrk_ScanT
Scan Timer (milliseconds, always runs)
Usage:
Local Tag
External Access:
None
Wrk_ScanT - P_AIn/EnableInFalse - *8(TON)
Wrk_ScanT - P_AIn/Logic - *21(TON)
2147483647
Wrk_ScanT.PRE
Scan Timer (milliseconds, always runs)
Wrk_ScanT.PRE - P_AIn/Logic - *21(MOV)
0
Wrk_ScanT.ACC
Scan Timer (milliseconds, always runs)
Wrk_ScanT.ACC - P_AIn/EnableInFalse - *8(CLR)
Wrk_ScanT.ACC - P_AIn/Logic - *21(CLR), 21(DIV)
0
Wrk_ScanT.EN
Scan Timer (milliseconds, always runs)
0
Wrk_ScanT.TT
Scan Timer (milliseconds, always runs)
0
Wrk_ScanT.DN
Scan Timer (milliseconds, always runs)

TIMER

P_AIn

0.0
Wrk_ScanTime
Time since this instance was last scanned
Usage:
Local Tag
External Access:
None
Wrk_ScanTime - P_AIn/Logic - *21(DIV), 23(CPT)

REAL

P_AIn

16#0000_0000
Wrk_SelPVDINT
Selected PV check for Infinite or Non A Number
Usage:
Local Tag
External Access:
None
Wrk_SelPVDINT - P_AIn/Logic - *19(COP), 19(MEQ)

DINT

P_AIn

DINT
DINT

BOOL
BOOL
BOOL

0
BOOL
P_AIn
Wrk_SelPVInfNaN
Selected PV (Input or Substitute) is Infinite or NaN
Usage:
Local Tag
External Access:
None
Wrk_SelPVInfNaN - P_AIn/Logic - *19(OTE), 20(XIO), 22(XIO), 23(XIO), 24(XIC), 24(XIO), 25(XIO), 31(XIC)
0
Wrk_Sts
Buffer for building Val_Sts
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_AIn/Logic - *33(CLR), *33(MOV), 33(MOV)

SINT

P_AIn

0
BOOL
P_AIn
Wrk_SubstPV
Internal flag: Using Substitute PV
Usage:
Local Tag
External Access:
None
Wrk_SubstPV - P_AIn/Logic - *10(OTU), *9(OTL), 11(XIC), 11(XIO), 13(XIC), 13(XIO), 18(XIC), 31(XIO), 32(XIO)
Wrk_UnfiltPV

0.0

REAL

P_AIn
RSLogix 5000

P_AIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Data Context: P_AIn <definition>

Page 49
22/12/2015 08,53,34
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_UnfiltPV (Continued)
Unfiltered PV, input to 1st order filter
Usage:
Local Tag
External Access:
None
Wrk_UnfiltPV - P_AIn/Logic - *18(MOV), 19(COP), 20(MOV), 22(MOV), 23(CPT), 24(MOV)
0
Wrk_ValidONS
Selected PV goes from Infinite or Not a Number to VALID
Usage:
Local Tag
External Access:
None
Wrk_ValidONS - P_AIn/EnableInFalse - *9(OTU)
Wrk_ValidONS - P_AIn/Logic - *22(ONS)
Wrk_ValidONS - P_AIn/Prescan - *2(OTU)

BOOL

P_AIn

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 50
22/12/2015 08,53,35
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
P_AIn: PROCESS -- ANALOG INPUT
============================================================
Revision 2.0-02 Release: 2013-03-15
V2.0-00 2011-09-30: Added Inf_Tab, Inf_Type; added logic for Sts_MaintByp,
Sts_AlmInh for breadcrumbs; using P_Alarm, P_Mode 2.0; changed Alarm timers
to On-Delay and Off-Delay; added Val_Fdbk, Val_Sts, Val_Fault, Val_Mode;
added Val_PVMinCapt, Val_PVMaxCapt, clear capture commands.
Added OCmd_ResetAckAll, Rdy_ResetAckAll.
Fixed handling of Input Infinite or Not a Number.
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01.
Improved handling of timers with presets = 0.
V2.0-02 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction monitors an Analog Input from a flow, level, pressure,
temperature, or any other analog sensor, and provides:
* Scaling, from Input (Raw) to PV (Engineering) Units
* High-High, High, Low and Low-Low Alarms with configurable delay times and deadbands
* Monitoring of input bad/uncertain variable/communication status and out-of-range conditions with alarm
* Setting of a simulated input signal for process simulation
* Capturing of the lowest and highest PV excursion values
* Program and Operator Settings for Alarm Thresholds
* Maintenance Commands to allow manual override of the input signal (Substitute PV)
Modes are provided by a P_Mode Add-On Instruction instance.
Alarms are provided by P_Alarm Add-On Instruction instances.
Modes of operation: Operator, Program, Maintenance
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

Cfg_Desc

0(CONCAT)

Cfg_EU

*0(CONCAT)

Cfg_Label

0(CONCAT)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
CONCAT
Lower Case
String Concatenate
Dest Inf_Type
Dest
Source Cfg_Tag
Source A Cfg_Label
'P_AIn'
'P_AIn'
'Analog Input'
Source B Cfg_Desc
'Analog Input'

Cfg_EU
'%'

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 51
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
MODE PROCESSING
============================================================
This rung handles received Mode Inputs and Commands:
NOTE: All Commands for Mode, Alarm are aliased directly to the
corresponding Commands in the contained P_Mode and P_Alarm AOIs.

This object does NOT have the following Modes:


Hand
Override
Analog Input Mode
Analog Input Mode
Selection 1=Select
Selection 1=Select
Override (typ.
Hand (typ.
Process/Safety
Analog Input Mode
hardwired) Mode
Interlock) Mode
Selection
Mode.Inp_Hand
Mode.Inp_Ovrd
P_Mode
U
U
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock

SkipText
LBL

Signature ID: C1F72CF2

Mode

*1(P_Mode)

Mode.Inp_Hand

*1(OTU)

Mode.Inp_Ovrd

*1(OTU)

============================================================
OWNERSHIP ARBITRATION
============================================================
This rung handles simple First-Come First-Served Ownership Arbitration.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
Dest Val_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

2(MOV) 2(EQU) 2(NEQ)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Val_Owner

Page 52
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(MOV) 2(EQU)

============================================================
CONFIGURATION PROCESSING
============================================================
This rung publishes the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the configuration of a PID, so the AIn and PID ranges are in lockstep.

PV (Output) Maximum
for Scaling to EU
GEQ
Grtr Than or Eql (A>=B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_PVEUMin
0.0

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0

PV (Output) Maximum
for Scaling to EU
LES
Less Than (A<B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Dest Val_PVEUMax
100.0

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_PVEUMax
100.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0

Cfg_PVEUMax

3(LES) 3(GEQ) 3(MOV) 4(EQU) 16(CPT)

Cfg_PVEUMin

3(MOV) 3(GEQ) 3(LES) 4(EQU) 16(CPT) 16(MOV)

Val_PVEUMax

*3(MOV)

Val_PVEUMin

*3(MOV)

Dest Val_PVEUMin
0.0

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 53
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Flag a Configuration Error if the raw input range or scaled PV range
max and min are set the same (invalid range), or if the
Analog Input Filter Time Constant is set to a negative value.
Input (unscaled)
Maximum for Scaling
EQU
Equal
Source A Cfg_InpRawMax
100.0
Source B Cfg_InpRawMin
0.0

PV (Output) Maximum
for Scaling to EU
EQU
Equal
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0
PV Filter Time
Constant (sec),
0.0 = unfiltered
LES
Less Than (A<B)
Source A Cfg_FiltTC
0.0
Source B
0.0

Cfg_FiltTC

4(LES) 23(LEQ) 23(GRT) 23(CPT)

Cfg_InpRawMax

4(EQU) 16(CPT)

Cfg_InpRawMin

4(EQU) 16(CPT)

Cfg_PVEUMax

3(MOV) 3(GEQ) 3(LES) 4(EQU) 16(CPT)

Cfg_PVEUMin

3(MOV) 3(LES) 3(GEQ) 4(EQU) 16(CPT) 16(MOV)

Err_EU

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

Err_Filt

*4(OTE) 6(XIC)

Err_Raw

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw

1=Error in Config:
Scaled EU Min = Max
Err_EU

1=Error in Config:
PV filter params
(RateTime, TC)
Err_Filt

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 54
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Flag a Configuration Error if any Status On-Delay or Off-Delay timer preset is invalid
(and set timer to a default, non-faulting value).
High-High Status
On-Dealy Timer
MUL
5

Multiply
Source A Cfg_HiHiOnDly
0
Source B
1000

High-High Status
On-Dealy Timer
Wrk_HiHiOnDlyT.PRE.31

1=Error in Config:
On Delay, Off Delay
Time Invalid (use 0
to 2147483 sec)
Err_Timer

Dest Wrk_HiHiOnDlyT.PRE
0

High-High Status
On-Dealy Timer
CLR
Clear
Dest Wrk_HiHiOnDlyT.PRE
0

High-High Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_HiHiOffDly
0
Source B
1000

High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT.PRE.31

Dest Wrk_HiHiOffDlyT.PRE
0

High-High Status
Off-Delay Timer
CLR
Clear
Dest Wrk_HiHiOffDlyT.PRE
0

High Status On-Delay


Timer
MUL
Multiply
Source A Cfg_HiOnDly
0
Source B
1000

High Status On-Delay


Timer
Wrk_HiOnDlyT.PRE.31

Dest Wrk_HiOnDlyT.PRE
0

High Status On-Delay


Timer
CLR
Clear
Dest Wrk_HiOnDlyT.PRE
0

High Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_HiOffDly
0
Source B
1000

High Status
Off-Delay Timer
Wrk_HiOffDlyT.PRE.31

Dest Wrk_HiOffDlyT.PRE
0

High Status
Off-Delay Timer
CLR
Clear
Dest Wrk_HiOffDlyT.PRE
0

Low Status On-Delay


Timer

Low Status On-Delay


Timer

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 55
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Timer
Timer
Wrk_LoOnDlyT.PRE.31
MUL
Multiply
Source A Cfg_LoOnDly
0
Source B
1000

Dest Wrk_LoOnDlyT.PRE
0

Low Status On-Delay


Timer
CLR
Clear
Dest Wrk_LoOnDlyT.PRE
0

Low Status Off-Delay


Timer
MUL
Multiply
Source A Cfg_LoOffDly
0
Source B
1000

Low Status Off-Delay


Timer
Wrk_LoOffDlyT.PRE.31

Dest Wrk_LoOffDlyT.PRE
0

Low Status Off-Delay


Timer
CLR
Clear
Dest Wrk_LoOffDlyT.PRE
0

Low-Low Status
On-Delay Timer
MUL
Multiply
Source A Cfg_LoLoOnDly
0
Source B
1000

Low-Low Status
On-Delay Timer
Wrk_LoLoOnDlyT.PRE.31

Dest Wrk_LoLoOnDlyT.PRE
0

Low-Low Status
On-Delay Timer
CLR
Clear
Dest Wrk_LoLoOnDlyT.PRE
0

Low-Low Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_LoLoOffDly
0
Source B
1000

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT.PRE.31

Dest Wrk_LoLoOffDlyT.PRE
0

Low-Low Status
Off-Delay Timer
CLR
Clear
Dest Wrk_LoLoOffDlyT.PRE
0

Fail Status On-Delay


Timer
MUL
Multiply
Source A Cfg_FailOnDly
0
Source B
1000

Fail Status On-Delay


Timer
Wrk_FailOnDlyT.PRE.31

Dest Wrk_FailOnDlyT.PRE
0

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>
Source B

Page 56
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


1000

Fail Status On-Delay


Timer
CLR
Clear
Dest Wrk_FailOnDlyT.PRE
0

Fail Status
Off-Delay Timer
MUL
Multiply
Source A Cfg_FailOffDly
0
Source B
1000

Fail Status
Off-Delay Timer
Wrk_FailOffDlyT.PRE.31

Dest Wrk_FailOffDlyT.PRE
0

Fail Status
Off-Delay Timer
CLR
Clear
Dest Wrk_FailOffDlyT.PRE
0

Cfg_FailOffDly

5(MUL)

Cfg_FailOnDly

5(MUL)

Cfg_HiHiOffDly

5(MUL)

Cfg_HiHiOnDly

5(MUL)

Cfg_HiOffDly

5(MUL)

Cfg_HiOnDly

5(MUL)

Cfg_LoLoOffDly

5(MUL)

Cfg_LoLoOnDly

5(MUL)

Cfg_LoOffDly

5(MUL)

Cfg_LoOnDly

5(MUL)

Err_Timer

*5(OTE)

Wrk_FailOffDlyT.PRE

*5(CLR) *5(MUL)

Wrk_FailOffDlyT.PRE.31 5(XIC)
Wrk_FailOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_FailOnDlyT.PRE.31 5(XIC)
Wrk_HiHiOffDlyT.PRE

*5(MUL) *5(CLR)

Wrk_HiHiOffDlyT.PRE.31 5(XIC)
Wrk_HiHiOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_HiHiOnDlyT.PRE.31 5(XIC)
Wrk_HiOffDlyT.PRE

*5(MUL) *5(CLR)

Wrk_HiOffDlyT.PRE.31

5(XIC)

Wrk_HiOnDlyT.PRE

*5(CLR) *5(MUL)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Wrk_HiOnDlyT.PRE.31

5(XIC)

Wrk_LoLoOffDlyT.PRE

*5(MUL) *5(CLR)

Page 57
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_LoLoOffDlyT.PRE.3 5(XIC)
1
Wrk_LoLoOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_LoLoOnDlyT.PRE.3 5(XIC)
1
Wrk_LoOffDlyT.PRE

*5(MUL) *5(CLR)

Wrk_LoOffDlyT.PRE.31 5(XIC)
Wrk_LoOnDlyT.PRE

*5(MUL) *5(CLR)

Wrk_LoOnDlyT.PRE.31

5(XIC)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 58
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


This rung handles the reports of all Bad Configuration Status.
Individual bits are provided for various status:
Bad Raw Scaling configs
Bad Engineering Units Scaling configs
Bad 1st-Order Filter configs
Bad Alarm Deadband configs
Bad Alarm Minimum Duration configs
Then a summary Bad Config status is provided, simply an OR of the individual bits.
1=Error in Config
(see detail Err_
bits for reason),
display icon
Sts_Err

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
6
1=Error in Config:
Scaled EU Min = Max
Err_EU
1=Error in Config:
PV filter params
(RateTime, TC)
Err_Filt

High-High Status
Deadband (EU)
LES
Less Than (A<B)
Source A Cfg_HiHiDB
1.0
Source B
0.0

1=Error in Config: a
Status Deadband is <
0.0
Err_DB

High Status Deadband


(EU)
LES
Less Than (A<B)
Source A Cfg_HiDB
1.0
Source B
0.0

Low Status Deadband


(EU)
LES
Less Than (A<B)
Source A Cfg_LoDB
1.0
Source B
0.0

Low-Low Status
Deadband (EU)
LES
Less Than (A<B)
Source A Cfg_LoLoDB
1.0
Source B
0.0

Out-of-Range (fail)
High/Low Deadband
(EU)
LES
Less Than (A<B)
Source A Cfg_FailDB
0.41666666
Source B
0.0

High-High Alarm
1=Error in Config:
see detail Err_ bits
for reason
HiHi.Sts_Err

1=Error in Config:
Alarm Min On Time or
Severity
Err_Alarm

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 59
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


High Alarm 1=Error
in Config: see
detail Err_ bits for
reason
Hi.Sts_Err
Low Alarm 1=Error in
Config: see detail
Err_ bits for reason
Lo.Sts_Err
Low-Low Alarm
1=Error in Config:
see detail Err_ bits
for reason
LoLo.Sts_Err
Analog Input Failure
Alarm (bad quality
or out of range)
1=Error in Config:
see detail Err_ bits
for reason
Fail.Sts_Err

Cfg_FailDB

6(LES) 31(CMP)

Cfg_HiDB

6(LES) 28(CMP)

Cfg_HiHiDB

6(LES) 27(CMP)

Cfg_LoDB

6(LES) 29(CMP)

Cfg_LoLoDB

6(LES) 30(CMP)

Err_Alarm

*6(OTE)

Err_DB

*6(OTE)

Err_EU

*4(OTE) 6(XIC) 16(XIO) 16(XIC)

Err_Filt

*4(OTE) 6(XIC)

Err_Raw

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

Fail.Sts_Err

6(XIC)

Hi.Sts_Err

6(XIC)

HiHi.Sts_Err

6(XIC)

Lo.Sts_Err

6(XIC)

LoLo.Sts_Err

6(XIC)

Sts_Err

*6(OTE) 33(XIC)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 60
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated

==================

==================
Th

When the Mod


Alarm Thresholds, an
for bump

When the Mod


Alarm Thresholds, an
for bump
Analog Input Mode
Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>
7

Move
Source
1.50000

1=PSets track OSe


in Oper, OSets trac
PSets in Prog, 0=n
tracking
Cfg_SetTrack

Move
Source
1.5000
Analog Input Mode
Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
Analog Input Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Current High-High
Status Threshold
MOV
Move
Source OSet_HiHiLim
1.50000000e+038
1=PSets track OSets
in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Move
Source OS
1.50000

Program-Entered
High-High Status
Threshold (EU)
MOV
Move
Source Val_HiHiLim
1.50000000e+038

Cfg_SetTrack

Dest
Val_HiHiLim
1.50000000e+038

Dest PSet_HiHiLim
1.50000000e+038

Move
Source
1.5000

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Mode.Sts_Oper

7(XIC) 8(XIC)

Mode.Sts_Prog

7(XIC)

OSet_HiHiLim

7(MOV) *7(MOV)

OSet_HiLim

7(MOV) *7(MOV)

OSet_LoLim

*7(MOV) 7(MOV)

OSet_LoLoLim

*7(MOV) 7(MOV)

PSet_HiHiLim

7(MOV) *7(MOV)

PSet_HiLim

*7(MOV) 7(MOV)

PSet_LoLim

7(MOV) *7(MOV)

PSet_LoLoLim

7(MOV) *7(MOV)

Sts_Maint

13(XIC)

Val_HiHiLim

7(MOV) *7(MOV) 27(GEQ) 27(CMP)

Val_HiLim

7(MOV) *7(MOV) 28(GEQ) 28(CMP)

Val_LoLim

7(MOV) *7(MOV) 29(LEQ) 29(CMP)

Val_LoLoLim

7(MOV) *7(MOV) 30(LEQ) 30(CMP)

Page 61
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

===========================================================
SETTINGS PROCESSING
===========================================================
These rungs handle received Settings:
When the Mode is Program, use the Program Settings for the
Alarm Thresholds, and copy the Program Settings to the Operator Settings
for bumpless transition from Program to Operator.
When the Mode is Operator, use the Operator Settings for the
Alarm Thresholds, and copy the Operator Settings to the Program Settings
for bumpless transition from Operator to Program.

Current High-H
Status Thresh
MOV
Move
Source PSet_HiHiLim
1.50000000e+038

Current High Status


Threshold
MOV
PSet_HiLim
1.50000000e+038

Dest
Val_HiLim
1.50000000e+038

Current Low Status


Threshold
MOV
Move
Source PSet_LoLim
-1.50000000e+038

Dest
Val_LoLim
-1.50000000e+038

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no

Current Low-Low
Status Threshol
MOV
Move
Source PSet_LoLoLim
-1.50000000e+038

Operator-Ent
High-High St
Threshold (
MOV
Move
Source Val_HiHiLim
1.50000000e+038

Operator-Entered
High Status
Threshold (EU)
MOV
Val_HiLim
1.50000000e+038

Dest
OSet_HiLim
1.50000000e+038

Operator-Entered Low
Status Threshold
(EU)
MOV
Move
Source
Val_LoLim
-1.50000000e+038

Dest
OSet_LoLim
-1.50000000e+038

Operator-Entere
Low-Low Statu
Threshold (EU
MOV
Move
Source Val_LoLoLim
-1.50000000e+038

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 62
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated

Current High-High
Status Threshold
Dest
Val_HiHiLim
1.50000000e+038

Current Low-Low
Status Threshold
Dest
Val_LoLoLim
-1.50000000e+038

Operator-Entered
High-High Status
Threshold (EU)
Dest OSet_HiHiLim
1.50000000e+038

Operator-Entered
Low-Low Status
Threshold (EU)
Dest OSet_LoLoLim
-1.50000000e+038

Current Low-Low
Status Threshold
Dest
Val_LoLoLim
-1.50000000e+038

Program-Entered
Low-Low Status
Threshold (EU)
Dest PSet_LoLoLim
-1.50000000e+038

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 63
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Ready to receive other Operator Settings (OSet_xxx) if tracking is NOT enabled,
or we're in Operator or Maintenance Mode.

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack
/

1=Ready to receive
OSets (enables data
entry fields)
Rdy_OSet

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
Analog Input Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Mode.Sts_Oper

7(XIC) 8(XIC)

Rdy_OSet

*8(OTE)

Sts_Maint

13(XIC)

============================================================
SUBSTITUTE PV / INPUT PV COMMAND PROCESSING
============================================================
These rungs handle the Substitute PV and Input PV Commands:
MCmd_SubstPV: Maintenance Command to select Maintenance-entered substitute PV

Maintenance Command
to use Substitute PV
(override input)
MCmd_SubstPV
9

Do not allow this Command if Cfg_NoSubstPV is set.


Analog Input Mode
Selection 1=Mode is
Maintenance
Maintenance Command
(supersedes Ovrd,
to use Substitute PV
Prog, Oper)
1=Disallow selection
(override input)
of Substitute PV
Mode.Sts_Maint
<Sts_Maint>
Cfg_NoSubstPV
MCmd_SubstPV
U
/

Cfg_NoSubstPV

9(XIO) 10(XIC) 13(XIO)

MCmd_SubstPV

9(XIC) *9(OTU)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Sts_Maint

13(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

Internal flag: Using


Substitute PV
Wrk_SubstPV
L

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 64
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


MCmd_InpPV: Maintenance Command to cancel Substitute PV and return to Live Input PV.
Analog Input Mode
Selection 1=Mode is
Maintenance
Maintenance Command
Maintenance Command
(supersedes Ovrd,
to use Input PV
to use Input PV
Internal flag: Using
Prog, Oper)
(normal)
(normal)
Substitute PV
Mode.Sts_Maint
MCmd_InpPV
MCmd_InpPV
<Sts_Maint>
Wrk_SubstPV
U
U

10

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV

Cfg_NoSubstPV

9(XIO) 10(XIC) 13(XIO)

MCmd_InpPV

10(XIC) *10(OTU)

Mode.Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC)

Sts_Maint

13(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

Show the Substitute or Input PV Status


Internal flag: Using
Substitute PV
Wrk_SubstPV

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

11
Internal flag: Using
Substitute PV
Wrk_SubstPV
/

Sts_InpPV

*11(OTE)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIO) 11(XIC) 13(XIC) 13(XIO) 18(XIC) 31(XIO) 32(XIO)

1=Using Input PV
(normal)
Sts_InpPV

Substitute PV is the only Maintenance Bypass for an Analog Input.


1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

1=A Maintenance
Bypass is Active,
display icon
Sts_MaintByp

12

Sts_MaintByp

*12(OTE)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 65
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


In Maintenance Mode, commands for Substitue PV and Input PV are available
based on the current state of the internal toggle bit.
1=Mode is
Maintenance
(supersedes Prog,
Oper)
Sts_Maint
<Mode.Sts_Maint>
13

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV
/

Cfg_NoSubstPV

9(XIO) 10(XIC) 13(XIO)

Rdy_InpPV

*13(OTE)

Rdy_SubstPV

*13(OTE)

Sts_Maint

7(XIC) 8(XIC) 9(XIC) 10(XIC) 13(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIO) 11(XIC) 13(XIC) 13(XIO) 18(XIC) 31(XIO) 32(XIO)

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

1=Ready for
MCmd_SubstPV
Rdy_SubstPV

Internal flag: Using


Substitute PV
Wrk_SubstPV

1=Ready for
MCmd_InpPV
Rdy_InpPV

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 66
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

14
Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll

Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll
U

High-High Alarm
Program Command to
Reset latched alarm
HiHi.PCmd_Reset
L

High-High Alarm
Program Command to
Acknowledge alarm
HiHi.PCmd_Ack
<PCmd_HiHiAck>
L
High Alarm Program
Command to
Acknowledge alarm
Hi.PCmd_Ack
<PCmd_HiAck>
L
Low Alarm Program
Command to
Acknowledge alarm
Lo.PCmd_Ack
<PCmd_LoAck>
L
Low-Low Alarm
Program Command to
Acknowledge alarm
LoLo.PCmd_Ack
<PCmd_LoLoAck>
L
Analog Input Failure
Alarm (bad quality
or out of range)
Program Command to
Acknowledge alarm
Fail.PCmd_Ack
<PCmd_FailAck>
L

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U
NOP

1=Reset all Alarms


requiring reset
Inp_Reset

High Alarm Program


Command to Reset
latched alarm
Hi.PCmd_Reset
L

Cfg_PCmdClear

14(XIC) 34(XIC)

Fail.PCmd_Ack

*14(OTL)

Low Alarm Program


Command to Reset
latched alarm
Lo.PCmd_Reset
L

Low-Low Alarm
Program Command to
Reset latched alarm
LoLo.PCmd_Reset
L

Analog Input Failure


Alarm (bad quality
or out of range)
Program Command to
Reset latched alarm
Fail.PCmd_Reset
L

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Fail.PCmd_Reset

*14(OTL)

Hi.PCmd_Ack

*14(OTL)

Hi.PCmd_Reset

*14(OTL)

HiHi.PCmd_Ack

*14(OTL)

HiHi.PCmd_Reset

*14(OTL)

Inp_Reset

14(XIC)

Lo.PCmd_Ack

*14(OTL)

Lo.PCmd_Reset

*14(OTL)

LoLo.PCmd_Ack

*14(OTL)

LoLo.PCmd_Reset

*14(OTL)

OCmd_Reset

*14(OTU) 14(XIC)

OCmd_ResetAckAll

*14(OTU) 14(XIC)

PCmd_Reset

*14(OTU) 14(XIC)

Page 67
22/12/2015 08,53,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
ANALOG INPUT PROCESSING
============================================================
This rung checks the bit pattern of the REAL input (by copying to a DINT) to see if
the input is +Infinity, -Infinity or Not a Number. Per ANSI 32-bit Float
format, in these cases the Exponent bits (.30 thru .23) will all be 1s:
0111 1111 1000 0000 0000 0000 0000 0000 = +Infinity
1111 1111 1000 0000 0000 0000 0000 0000 = -Infinity
x111 1111 1xxx xxxx xxxx xxxx xxxx xxxx = Not a Number

15

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source
Inp_PV
Length
1

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Dest Wrk_InpDINT

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source Set_SimPV
Length
1

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
MEQ
Mask Equal
Source
Wrk_InpDINT
16#0000_0000
Mask
16#7F80_0000
Compare 16#7F80_0000

Dest Wrk_InpDINT

Input is Infinite or
Not a Number
Wrk_InpInfNaN

Inp_PV

15(COP) 16(CPT) 16(MOV)

Inp_Sim

15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Set_SimPV

15(COP) 16(MOV) *17(MOV)

Wrk_InpDINT

*15(COP) 15(MEQ)

Wrk_InpInfNaN

*15(OTE) 16(XIO) 16(XIC) 17(XIO)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 68
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated

The Process Variable Input Value (Val_InpP


regardless of the settings of Mode, Substitute PV, etc.

If NOT in simulation, if the scaling configuration is valid, the


In Simulation the Simulated Input must be pro

16

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
/

1=Error in Config:
Scaled EU Min = Max
Err_EU
/

Input is Infinite or
Not a Number
Wrk_InpInfNaN
/

Compute
Expression (Inp_PV-Cfg_InpRaw

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
1=Error in Config:
Scaled EU Min = Max
Err_EU

Input is Infinite or
Not a Number
Wrk_InpInfNaN

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Cfg_InpRawMax

4(EQU) 16(CPT)

Cfg_InpRawMin

4(EQU) 16(CPT)

Cfg_PVEUMax

3(MOV) 3(LES) 3(GEQ) 4(EQU) 16(CPT)

Cfg_PVEUMin

3(LES) 3(MOV) 3(GEQ) 4(EQU) 16(CPT) 16(MOV)

Err_EU

*4(OTE) 6(XIC) 16(XIO) 16(XIC)

Err_Raw

*4(OTE) 6(XIC) 16(XIC) 16(XIO)

Inp_PV

15(COP) 16(MOV) 16(CPT)

Inp_Sim

15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 31(XIC) 31(XIO) 32(XIO)

Set_SimPV

15(COP) 16(MOV) *17(MOV)

Val_InpPV

*16(CPT) *16(MOV) 17(MOV) 18(MOV) 31(LEQ) 31(GEQ) 31(CMP)

Wrk_InpInfNaN

*15(OTE) 16(XIC) 16(XIO) 17(XIO)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 69
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


nput Value (Val_InpPV) shows the scaled input,
de, Substitute PV, etc., EVEN WHEN EnableIn IS FALSE!

figuration is valid, the Raw Input is scaled to Engineering Units.


ated Input must be provided in Engineering Units.
Analog Input Value
(actual, before
Substitute PV
selection)
CPT

(Inp_PV-Cfg_InpRawMin)*(Cfg_PVEUMax-Cfg_PVEUMin)/(Cfg_InpRawMax-Cfg_InpRawMin)+Cfg_PVEUMin

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source Cfg_PVEUMin
0.0

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source

Inp_PV
0.0

Dest Val_InpPV
0.0

Analog Input Value


(actual, before
Substitute PV
selection)
MOV
Move
Source Set_SimPV
0.0

17

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Dest Val_InpPV
0.0

When this Analog Input is not simulated and tracking is configured ON (default),
the Simulated PV Setting tracks the selected PV for bumpless transfer into Simulation.
1=PSets track OSets
in Oper, OSets track
PV used in
PSets in Prog, 0=no
Input is Infinite or
Simulation
tracking
Not a Number
(Inp_Sim=1) (EU)
Cfg_SetTrack
Wrk_InpInfNaN
MOV
/
Move
Source Val_InpPV
Dest Set_SimPV
0.0
0.0

Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

Inp_Sim

15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Set_SimPV

15(COP) 16(MOV) *17(MOV)

Val_InpPV

*16(CPT) *16(MOV) 17(MOV) 18(MOV) 31(GEQ) 31(CMP) 31(LEQ)

Wrk_InpInfNaN

*15(OTE) 16(XIO) 16(XIC) 17(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!

Page 70
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
SELECT NORMAL OR SUBSTITUTE PV
============================================================
The Value shows the selected PV.
With Substitute PV enabled, it's the value of the entered MSet_SubstPV.
In normal operation, it's the value (Val_InpPV) selected above:
the scaled Input (Inp_PV) or Simulatied PV (Set_SimPV).
1=Using Substitute
PV (Input being
Unfiltered PV, input
overridden)
to 1st order filter
Sts_SubstPV
MOV
/
Move
Source Val_InpPV
Dest Wrk_UnfiltPV
0.0
0.0

18

Internal flag: Using


Substitute PV
Wrk_SubstPV

Unfiltered PV, input


to 1st order filter
MOV
Move
Source MSet_SubstPV
0.0

MSet_SubstPV

18(MOV) *20(MOV)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

Val_InpPV

*16(CPT) *16(MOV) 17(MOV) 18(MOV) 31(LEQ) 31(GEQ) 31(CMP)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIO) 11(XIC) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

19

Dest Wrk_UnfiltPV
0.0

============================================================
PV FIRST-ORDER FILTER PROCESSING
============================================================
This rung determines whether the Analog PV (unfiltered) is +/-Infinity or +/- NotANumber.
In either case, the value cannot be passed into the filter calculation. Instead, it is
just copied to the PV directly.
Selected PV check
Selected PV check
for Infinite or Non
for Infinite or Non
A Number
A Number
COP
MEQ
Copy File
Mask Equal
Source Wrk_UnfiltPV
Dest Wrk_SelPVDINT
Source Wrk_SelPVDINT
Length
1
16#0000_0000
Mask
16#7F80_0000

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN

Compare 16#7F80_0000

Wrk_SelPVDINT

19(MEQ) *19(COP)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 71
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


If tracking is enabled and the Untiltered PV is NOT Infinite or NaN,
copy it to the Substitute PV Setting.
1=PSets track OSets
in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack
20

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/

Maintenance-Entered
Substitute PV (EU)
MOV
Move
Source Wrk_UnfiltPV
0.0

Cfg_SetTrack

7(XIC) 8(XIO) 17(XIC) 20(XIC)

MSet_SubstPV

18(MOV) *20(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

Dest MSet_SubstPV
0.0

In preparation for calculating the Filtered PV, this rung


determines the time since the previous scan, using a non-stop TON timer.
When we get here, we read the accumulator (in milliseconds, so
divide by 1000.0 to get seconds), then clear the accumulator. Next scan the accumulator will have
incremented up to the number of milliseconds since last scan. (Works for scan times up to 2 million seconds.....)
Scan Timer
(milliseconds,
always runs)
MOV
Move
Source 2147483647

21

Dest Wrk_ScanT.PRE
2147483647

Time since this


instance was last
scanned
DIV
Divide
Source A Wrk_ScanT.ACC
0
Source B
1000.0

Wrk_ScanT

*21(TON)

Wrk_ScanT.ACC

*21(CLR) 21(DIV)

Wrk_ScanT.PRE

*21(MOV)

Wrk_ScanTime

*21(DIV) 23(CPT)

Dest Wrk_ScanTime
0.0

Scan Timer
(milliseconds,
always runs)
TON
Timer On Delay
Timer
Wrk_ScanT
Preset 2147483647
Accum
0

EN
DN

Scan Timer
(milliseconds,
always runs)
CLR
Clear
Dest Wrk_ScanT.ACC
0

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

22

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/

Page 72
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


If the input was +/-Infinity or Not a Number and it becomes a valid number,
initialize the filter to start from the first valid value.
Selected PV goes
from Infinite or Not
a Number to VALID
Filtered PV
Wrk_ValidONS
MOV
ONS
Move
Source Wrk_UnfiltPV
Dest Wrk_FiltPV
0.0
0.0

Wrk_FiltPV

*22(MOV) *23(CPT) 23(CPT) 24(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIO) 24(XIC) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

Wrk_ValidONS

*22(ONS)

23

Calculate the FILTERED PV.


First, calculate "alpha", the portion of the difference between input and previous value to move toward the input.
Then calculate the new value.
PV Filter Time
Constant (sec),
Filter multiplier =
0.0 = unfiltered
(1 / (1+TC/dT) )
GRT
CPT
Greater Than (A>B)
Compute
Source A Cfg_FiltTC
Expression 1.0/(1.0+Wrk_ScanTime/Cfg_FiltTC)
Dest Wrk_Alpha
0.0
0.0
Source B
0.0

PV Filter Time
Constant (sec),
0.0 = unfiltered
LEQ
Less Than or Eql (A<=B)
Cfg_FiltTC
Source A
0.0
Source B
0.0

Filter multiplier =
(1 / (1+TC/dT) )
CLR
Clear
Wrk_Alpha
Dest
0.0

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/
Filtered PV
CPT
Compute
Expression (Wrk_Alpha*Wrk_FiltPV)+((1.0-Wrk_Alpha)*Wrk_UnfiltPV)

Cfg_FiltTC

4(LES) 23(CPT) 23(LEQ) 23(GRT)

Wrk_Alpha

23(CPT) *23(CPT) *23(CLR)

Wrk_FiltPV

*22(MOV) *23(CPT) 23(CPT) 24(MOV)

Wrk_ScanTime

*21(DIV) 23(CPT)

Dest Wrk_FiltPV
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!

Page 73
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

Sts_PVBad and Sts_PVUncertain take care of the PV Quality.


As for the ultimate Value (Val):
If the number is being filtered, pass thru the output of the filter. It's a "real" number.
If the number is not being filtered because it is not a number or infinite, pass that thru.
Selected PV (Input
Analog Value (after
or Substitute) is
Substitute PV, if
Infinite or NaN
used)
Wrk_SelPVInfNaN
MOV
/
Move
Source Wrk_FiltPV
Dest
0.0

24

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN

Val
0.0

Analog Value (after


Substitute PV, if
used)
MOV
Move
Source Wrk_UnfiltPV
0.0

Dest

Val
0.0

Val

*24(MOV) 25(LES) 25(GRT) 25(MOV) 26(MOV) 27(GEQ) 27(CMP) 28(CMP) 28(GEQ) 29(LEQ) 29(CMP) 30(LEQ) 30(CMP)

Wrk_FiltPV

*22(MOV) 23(CPT) *23(CPT) 24(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_UnfiltPV

*18(MOV) 19(COP) 20(MOV) 22(MOV) 23(CPT) 24(MOV)

============================================================
CAPTURE MIN / MAX PV EXCURSION
============================================================
Capture the PV Maximum Excursion (highest value reached) and
PV Minimum Excursion (lowest value reached) since last cleared.

25

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN
/

##### V2.0-00 2011-09-30: New Min / Max Capture function added #####
Analog Value (after
Captured PV Maximum
Substitute PV, if
(excursion) since
used)
last cleared
GRT
MOV
Greater Than (A>B)
Move
Source A
Val
Source
Val
Dest Val_PVMaxCapt
0.0
0.0
0.0
Source B Val_PVMaxCapt
0.0
Analog Value (after
Substitute PV, if
used)
LES
Less Than (A<B)
Source A

Val
0.0
Source B Val_PVMinCapt
0.0

Captured PV Minimum
(excursion) since
last cleared
MOV
Move
Source

Val
0.0

Dest Val_PVMinCapt
0.0

Val

*24(MOV) 25(LES) 25(MOV) 25(GRT) 26(MOV) 27(CMP) 27(GEQ) 28(CMP) 28(GEQ) 29(CMP) 29(LEQ) 30(LEQ) 30(CMP)

Val_PVMaxCapt

*25(MOV) 25(GRT) *26(MOV)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!

Page 74
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_PVMinCapt

25(LES) *25(MOV) *26(MOV)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

============================================================
CLEAR CAPTURED MIN / MAX COMMAND PROCESSING
============================================================
This rung "clears" the captured Minimum and Maximum
by setting them to the current PV Value.
##### V2.0-00 2011-09-30: New Min / Max Capture function added #####
Operator Command to
Clear the captured
min / max PV
excursion values
OCmd_ClearCapt

Operator Command to
Clear the captured
min / max PV
excursion values
OCmd_ClearCapt
U

Program Command to
Clear the captured
min / max PV
excursion values
PCmd_ClearCapt

Program Command to
Clear the captured
min / max PV
excursion values
PCmd_ClearCapt
U

26

Captured PV Maximum
(excursion) since
last cleared
MOV
Move
Source

Val
0.0

Dest Val_PVMaxCapt
0.0

Captured PV Minimum
(excursion) since
last cleared
MOV
Move
Source

Val
0.0

Dest Val_PVMinCapt
0.0

OCmd_ClearCapt

*26(OTU) 26(XIC)

PCmd_ClearCapt

*26(OTU) 26(XIC)

Val

*24(MOV) 25(MOV) 25(LES) 25(GRT) 26(MOV) 27(CMP) 27(GEQ) 28(GEQ) 28(CMP) 29(LEQ) 29(CMP) 30(LEQ) 30(CMP)

Val_PVMaxCapt

*25(MOV) 25(GRT) *26(MOV)

Val_PVMinCapt

*25(MOV) 25(LES) *26(MOV)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 75
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ANALOG THRESHOLD STATUS PROCESSING
============================================================
If the Analog Value exceeds the High-High limit for the On-Delay Time,
issue the PV High-High Status.
If the Analog Value falls back below the limit (minus deadband) for the
Off-Delay Time, clear the PV High-High Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

27

##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####


##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
High-High Status
High-High Status
used)
On-Dealy Timer
On-Dealy Timer
GEQ
TON
TON
Grtr Than or Eql (A>=B)
Timer On Delay
EN
Timer On Delay
Val
Timer Wrk_HiHiOnDlyT
DN
Timer Wrk_HiHiOnDlyT
Source A
0.0
Preset
0
Preset
0
Source B Val_HiHiLim
Accum
0
Accum
0
1.50000000e+038

CMP
Compare
Expression Val<(Val_HiHiLim-Cfg_HiHiDB)

High-High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiHiOffDlyT
Preset
0
Accum
0

High-High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiHiOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

High-High Status
On-Dealy Timer
Wrk_HiHiOnDlyT.DN

Internal flag:
High-High Status
Wrk_HiHi
L

High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT.DN

Internal flag:
High-High Status
Wrk_HiHi
U

Internal flag:
High-High Status
Wrk_HiHi

1=Analog Input is
above High-High
limit
Sts_HiHi
<HiHi.Inp>

Cfg_HiHiDB

6(LES) 27(CMP)

Sts_HiHi

*27(OTE) 33(XIC)

Val

*24(MOV) 25(LES) 25(GRT) 25(MOV) 26(MOV) 27(GEQ) 27(CMP) 28(GEQ) 28(CMP) 29(LEQ) 29(CMP) 30(CMP) 30(LEQ)

Val_HiHiLim

7(MOV) *7(MOV) 27(CMP) 27(GEQ)

Wrk_HiHi

*27(OTL) *27(OTU) 27(XIC)

Wrk_HiHiOffDlyT

*27(TON)

Wrk_HiHiOffDlyT.DN

27(XIC)

Wrk_HiHiOnDlyT

*27(TON)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Wrk_HiHiOnDlyT.DN

Page 76
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

27(XIC)

If the Analog Value exceeds the High limit for the On-Delay Time,
issue the PV High Status.
If the Analog Value falls back below the limit (minus deadband) for the
Off-Delay Time, clear the PV High Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

28

##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####


##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
High Status On-Delay
High Status On-Delay
used)
Timer
Timer
GEQ
TON
TON
Grtr Than or Eql (A>=B)
Timer On Delay
EN
Timer On Delay
Source A
Val
Timer Wrk_HiOnDlyT
DN
Timer Wrk_HiOnDlyT
0.0
Preset
0
Preset
0
Source B
Val_HiLim
Accum
0
Accum
0
1.50000000e+038

CMP
Compare
Expression Val<(Val_HiLim-Cfg_HiDB)

High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiOffDlyT
Preset
0
Accum
0

High Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_HiOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

High Status On-Delay


Timer
Wrk_HiOnDlyT.DN

Internal flag: High


Status
Wrk_Hi
L

High Status
Off-Delay Timer
Wrk_HiOffDlyT.DN

Internal flag: High


Status
Wrk_Hi
U

Internal flag: High


Status
Wrk_Hi

1=Analog Input is
above High limit
Sts_Hi
<Hi.Inp>

Cfg_HiDB

6(LES) 28(CMP)

Sts_Hi

*28(OTE) 33(XIC)

Val

*24(MOV) 25(MOV) 25(LES) 25(GRT) 26(MOV) 27(GEQ) 27(CMP) 28(GEQ) 28(CMP) 29(LEQ) 29(CMP) 30(CMP) 30(LEQ)

Val_HiLim

*7(MOV) 7(MOV) 28(CMP) 28(GEQ)

Wrk_Hi

*28(OTU) 28(XIC) *28(OTL)

Wrk_HiOffDlyT

*28(TON)

Wrk_HiOffDlyT.DN

28(XIC)

Wrk_HiOnDlyT

*28(TON)

Wrk_HiOnDlyT.DN

28(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!

Page 77
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If the Analog Value falls below the Low limit for the On-Delay Time,
issue the PV Low Status.
If the Analog Value rises back above the limit (plus deadband) for the
Off-Delay Time, clear the PV Low Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

29

##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####


##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
Low Status On-Delay
Low Status On-Delay
used)
Timer
Timer
LEQ
TON
TON
Less Than or Eql (A<=B)
Timer On Delay
EN
Timer On Delay
Source A
Val
Timer Wrk_LoOnDlyT
DN
Timer Wrk_LoOnDlyT
0.0
Preset
0
Preset
0
Source B
Val_LoLim
Accum
0
Accum
0
-1.50000000e+038

CMP
Compare
Expression Val>(Val_LoLim+Cfg_LoDB)

Low Status Off-Delay


Timer
TON
Timer On Delay
Timer Wrk_LoOffDlyT
Preset
0
Accum
0

Low Status Off-Delay


Timer
TON
Timer On Delay
Timer Wrk_LoOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

Low Status On-Delay


Timer
Wrk_LoOnDlyT.DN

Internal flag: Low


Status
Wrk_Lo
L

Low Status Off-Delay


Timer
Wrk_LoOffDlyT.DN

Internal flag: Low


Status
Wrk_Lo
U

Internal flag: Low


Status
Wrk_Lo

1=Analog Input is
below Low limit
Sts_Lo
<Lo.Inp>

Cfg_LoDB

6(LES) 29(CMP)

Sts_Lo

*29(OTE) 33(XIC)

Val

*24(MOV) 25(GRT) 25(MOV) 25(LES) 26(MOV) 27(CMP) 27(GEQ) 28(CMP) 28(GEQ) 29(LEQ) 29(CMP) 30(LEQ) 30(CMP)

Val_LoLim

*7(MOV) 7(MOV) 29(CMP) 29(LEQ)

Wrk_Lo

*29(OTL) *29(OTU) 29(XIC)

Wrk_LoOffDlyT

*29(TON)

Wrk_LoOffDlyT.DN

29(XIC)

Wrk_LoOnDlyT

*29(TON)

Wrk_LoOnDlyT.DN

29(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!

Page 78
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If the Analog Value falls below the Low-Low limit for the On-Delay Time,
issue the PV Low-Low Status.
If the Analog Value rises back above the limit (plus deadband) for the
Off-Delay Time, clear the PV Low-Low Status.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####
##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Analog Value (after
Substitute PV, if
used)
LEQ
Less Than or Eql (A<=B)
Source A
Val
0.0
Source B Val_LoLoLim
-1.50000000e+038

30

Low-Low Status
On-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOnDlyT
Preset
0
Accum
0

Low-Low Status
On-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOnDlyT
Preset
0
Accum
0

CMP
Compare
Expression Val>(Val_LoLoLim+Cfg_LoLoDB)

Low-Low Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOffDlyT
Preset
0
Accum
0

Low-Low Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_LoLoOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

EN
DN

EN
DN

Low-Low Status
On-Delay Timer
Wrk_LoLoOnDlyT.DN

Internal flag:
Low-Low Status
Wrk_LoLo
L

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT.DN

Internal flag:
Low-Low Status
Wrk_LoLo
U

Internal flag:
Low-Low Status
Wrk_LoLo

1=Analog Input is
below Low-Low limit
Sts_LoLo
<LoLo.Inp>

Cfg_LoLoDB

6(LES) 30(CMP)

Sts_LoLo

*30(OTE) 33(XIC)

Val

*24(MOV) 25(MOV) 25(GRT) 25(LES) 26(MOV) 27(GEQ) 27(CMP) 28(CMP) 28(GEQ) 29(CMP) 29(LEQ) 30(CMP) 30(LEQ)

Val_LoLoLim

*7(MOV) 7(MOV) 30(CMP) 30(LEQ)

Wrk_LoLo

*30(OTL) *30(OTU) 30(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Wrk_LoLoOffDlyT

*30(TON)

Wrk_LoLoOffDlyT.DN

30(XIC)

Wrk_LoLoOnDlyT

*30(TON)

Wrk_LoLoOnDlyT.DN

30(XIC)

Page 79
22/12/2015 08,53,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 80
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ANALOG QUALITY / STATUS PROCESSING
============================================================
If the Analog Value rises above the Fail High Limit or falls below the
Fail Low Limit for the On-Delay Time, or if the Bad PV Input is
asserted and the input is not in Simulation, raise a PV Fail Status.
If the Analog Value is back in range, that is, it is below the Fail High Limit (minus
deadband) and above the Fail Low Limit (plus deadband), for the Off-Delay Time,
AND if the Bad PV input clears or the input is Siimulated,
clear the PV Fail Status.
NOTE: The GEQ and LEQ take care of +/- Inf and +/- NaN for us automatically!
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-00 2011-09-30: Modified rung for On-Delay, Off-Delay. #####
##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####

31

Analog Input Value


(actual, before
Substitute PV
selection)
GEQ
Grtr Than or Eql (A>=B)
Val_InpPV
Source A
0.0
Source B Cfg_FailHiLim
103.958336

Fail Status On-Delay


Timer
TON
Timer On Delay
Timer Wrk_FailOnDlyT
Preset
0
Accum
0

EN
DN

Analog Input Value


(actual, before
Substitute PV
selection)
LEQ
Less Than or Eql (A<=B)
Source A
Val_InpPV
0.0
Source B Cfg_FailLoLim
-2.0833333

Fail Status On-Delay


Timer
TON
Timer On Delay
Timer Wrk_FailOnDlyT
Preset
0
Accum
0

EN
DN

CMP
Compare
Expression Val_InpPV<(Cfg_FailHiLim-Cfg_FailDB)

CMP
Compare
Expression Val_InpPV>(Cfg_FailLoLim+Cfg_FailDB)

Fail Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_FailOffDlyT
Preset
0
Accum
0

Fail Status
Off-Delay Timer
TON
Timer On Delay
Timer Wrk_FailOffDlyT
Preset
0
Accum
0
Fail Status On-Delay
Timer
Wrk_FailOnDlyT.DN

EN
DN

EN
DN

Internal flag: Fail


Status
Wrk_Fail

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 81
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Wrk_FailOnDlyT.DN

1=PV or I/O Comms


Status Bad, 0=OK
Inp_PVBad
Fail Status
Off-Delay Timer
Wrk_FailOffDlyT.DN

Wrk_Fail
L

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/
1=PV or I/O Comms
Status Bad, 0=OK
Inp_PVBad
/

Internal flag: Fail


Status
Wrk_Fail
U

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

Internal flag: Fail


Status
Wrk_Fail

1=Analog Input is
Out of Range or PV
Bad
Sts_Fail
<Fail.Inp>

1=PV Bad quality or


Out of Range
Sts_PVBad

Selected PV (Input
or Substitute) is
Infinite or NaN
Wrk_SelPVInfNaN

Cfg_FailDB

6(LES) 31(CMP)

Cfg_FailHiLim

31(GEQ) 31(CMP)

Cfg_FailLoLim

31(LEQ) 31(CMP)

Inp_PVBad

31(XIC) 31(XIO)

Inp_Sim

15(XIO) 15(XIC) 16(XIC) 16(XIO) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Sts_Fail

*31(OTE) 33(XIC)

Sts_PVBad

*31(OTE) 33(XIC)

Val_InpPV

*16(MOV) *16(CPT) 17(MOV) 18(MOV) 31(GEQ) 31(CMP) 31(LEQ)

Wrk_Fail

*31(OTU) *31(OTL) 31(XIC)

Wrk_FailOffDlyT

*31(TON)

Wrk_FailOffDlyT.DN

31(XIC)

Wrk_FailOnDlyT

*31(TON)

Wrk_FailOnDlyT.DN

31(XIC)

Wrk_SelPVInfNaN

*19(OTE) 20(XIO) 22(XIO) 23(XIO) 24(XIC) 24(XIO) 25(XIO) 31(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

1=PV Value Not


Reliable, 0=OK
Inp_PVUncertain
32

Page 82
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


If the PV is not substituted and it has a total Failure (rung above), or if it
is Infinite or Not a Number, flag it as BAD.
If the Uncertain input is set and the PV is not simulated or substituted,
flag it as UNCERTAIN.
1=Use simulated PV
(Set_SimPV); 0=Use
Internal flag: Using
Input (Inp_PV)
Substitute PV
Inp_Sim
Wrk_SubstPV
/
/

Inp_PVUncertain

32(XIC)

Inp_Sim

15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 31(XIO) 31(XIC) 32(XIO)

Sts_PVUncertain

*32(OTE) 33(XIC)

Wrk_SubstPV

*9(OTL) *10(OTU) 11(XIC) 11(XIO) 13(XIO) 13(XIC) 18(XIC) 31(XIO) 32(XIO)

1=PV Value is
Uncertain (quality)
Sts_PVUncertain

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 83
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ENUMERATED STATUS VALUES
============================================================
This rung generates the enumerated Device Status:
0 = Normal (PV Good)
5 = PV Uncertain
6 = PV Bad
7 = Substitute PV
33 = Disabled (set in EnableInFalse routine)
And this rung generates the enumerated Device Fault Status:
0 = none
20 = Lo
21 = Hi
24 = Lo-Lo
25 = Hi-Hi
32 = Failed (I/O fault or out of range)
34 = Config Error

33

##### V2.0-02 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Buffer for building
Val_Sts
Val_Fault
CLR
CLR
Clear
Clear
Wrk_Sts
Wrk_Fault
Dest
Dest
0
0
1=PV Value is
Uncertain (quality)
Sts_PVUncertain

Buffer for building


Val_Sts
MOV
Move
Source

1=PV Bad quality or


Out of Range
Sts_PVBad

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Analog Input is
below Low limit
Sts_Lo
<Lo.Inp>

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Analog Input is
above High limit
Sts_Hi
<Hi.Inp>

20

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Analog Input is
below Low-Low limit
Sts_LoLo
<LoLo.Inp>

21

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Analog Input is
above High-High
limit
Sts_HiHi
<HiHi.Inp>

24

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 84
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


<HiHi.Inp>
Move
Source

1=Analog Input is
Out of Range or PV
Bad
Sts_Fail
<Fail.Inp>

1=Error in Config
(see detail Err_
bits for reason),
display icon
Sts_Err

Device Confirmed Sts


0=PV Good, 5=PV
Uncertain, 6=PV Bad,
7=Substitute PV,
33=Disabled
MOV

Sts_Err

*6(OTE) 33(XIC)

Sts_Fail

*31(OTE) 33(XIC)

Sts_Hi

*28(OTE) 33(XIC)

Sts_HiHi

*27(OTE) 33(XIC)

Sts_Lo

*29(OTE) 33(XIC)

Sts_LoLo

*30(OTE) 33(XIC)

Sts_PVBad

*31(OTE) 33(XIC)

Sts_PVUncertain

*32(OTE) 33(XIC)

Sts_SubstPV

*11(OTE) 12(XIC) 18(XIO) 33(XIC)

Val_Fault

*33(MOV)

Val_Sts

*33(MOV)

Wrk_Fault

*33(CLR) *33(MOV) 33(MOV)

Wrk_Sts

*33(CLR) 33(MOV) *33(MOV)

Dest Wrk_Fault
0

32

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

Wrk_Sts
0

25

Buffer for building


Val_Fault
MOV
Move
Source

Move
Source

MOV

Dest

34

Dest Wrk_Fault
0

Device Fault Status


0=none, 20=Lo,
21=Hi, 24=LoLo,
25=HiHi, 32=Fail,
34=CfgErr
MOV
Val_Sts
0

Move
Source Wrk_Fault
0

Dest Val_Fault
0

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 85
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
ALARM PROCESSING
============================================================
Pass the Cfg_PCmdClear configuration down to each P_Alarm instance.
##### V2.0-01 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01 #####
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

High-High Alarm
1=Clear Program
Commands on receipt
0=Leave Set
HiHi.Cfg_PCmdClear

High Alarm 1=Clear


Program Commands on
receipt
0=Leave Set
Hi.Cfg_PCmdClear

Low Alarm 1=Clear


Program Commands on
receipt
0=Leave Set
Lo.Cfg_PCmdClear

Low-Low Alarm
1=Clear Program
Commands on receipt
0=Leave Set
LoLo.Cfg_PCmdClear

34
Analog Input Failure
Alarm (bad quality
or out of range)
1=Clear Program
Commands on receipt
0=Leave Set
Fail.Cfg_PCmdClear

Cfg_PCmdClear

14(XIC) 34(XIC)

Fail.Cfg_PCmdClear

*34(OTE)

Hi.Cfg_PCmdClear

*34(OTE)

HiHi.Cfg_PCmdClear

*34(OTE)

Lo.Cfg_PCmdClear

*34(OTE)

LoLo.Cfg_PCmdClear

*34(OTE)

Handle PV High-High Alarm Processing using the standard P_Alarm AOI.


High-High Alarm
P_Alarm
Alarm
P_Alarm
HiHi ...
Inp
1
Inp_Reset
0

35

HiHi

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*35(P_Alarm)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 86
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Handle PV High Alarm Processing using the standard P_Alarm AOI.
High Alarm
P_Alarm
Alarm
P_Alarm
Hi ...
Inp
1
Inp_Reset
0

36

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

Hi

*36(P_Alarm)

Handle PV Low Alarm Processing using the standard P_Alarm AOI.


Low Alarm
P_Alarm
Alarm
P_Alarm
Lo ...
Inp
1
Inp_Reset
0

37

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

Lo

*37(P_Alarm)

Handle PV Low-Low Alarm Processing using the standard P_Alarm AOI.


Low-Low Alarm
P_Alarm
Alarm
P_Alarm
LoLo ...
Inp
1
Inp_Reset
0

38

LoLo

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*38(P_Alarm)

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 87
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


Handle Input Failure Alarm Processing using the standard P_Alarm AOI.
Analog Input Failure
Alarm (bad quality
or out of range)
P_Alarm
Alarm
P_Alarm
Fail ...
Inp
1
Inp_Reset
0

39

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

Fail

*39(P_Alarm)

If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit


summary status bit (which puts the "I" box on the graphic symbol).
High-High Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
HiHi.Sts_AlmInh

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh

40
High Alarm 1=Alarm
has been inhibited,
disabled or
suppressed, display
"I" icon
Hi.Sts_AlmInh
Low Alarm 1=Alarm
has been inhibited,
disabled or
suppressed, display
"I" icon
Lo.Sts_AlmInh
Low-Low Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
LoLo.Sts_AlmInh
Analog Input Failure
Alarm (bad quality
or out of range)
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
Fail.Sts_AlmInh

Fail.Sts_AlmInh

40(XIC)

Hi.Sts_AlmInh

40(XIC)

HiHi.Sts_AlmInh

40(XIC)

Lo.Sts_AlmInh

40(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
LoLo.Sts_AlmInh

40(XIC)

Sts_AlmInh

*40(OTE)

Page 88
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 89
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).

41

##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and added the Rdy_Reset and Rdy_ResetAckAll logic. #####
Buffer for building
Val_Notify
CLR
Clear
Wrk_Notify
Dest
0
High-High Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A HiHi.Val_Notify
0
Source B
Wrk_Notify
0
High Alarm Current
Alarm Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A Hi.Val_Notify
0
Source B
Wrk_Notify
0
Low Alarm Current
Alarm Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A Lo.Val_Notify
0
Source B
Wrk_Notify
0
Low-Low Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A LoLo.Val_Notify
0
Source B
Wrk_Notify
0
Analog Input Failure
Alarm (bad quality
or out of range)
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A Fail.Val_Notify
0
Source B
Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source HiHi.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source Hi.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source Lo.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source LoLo.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source Fail.Val_Notify
0

Dest Wrk_Notify
0

High-High Alarm

RSLogix 5000

P_AIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Logic
Total number of rungs in routine: 42
Data Context: P_AIn <definition>

Page 90
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - PV is scaled and alarms are generated


High-High Alarm
Ready to receive
1=At least one Alarm
OCmd_Ack (enable
requires Reset or
button)
Acknowledgement
HiHi.Rdy_Ack
Rdy_ResetAckAll

Buffer for building


Val_Notify
Wrk_Notify.0

High Alarm Ready to


receive OCmd_Ack
(enable button)
Hi.Rdy_Ack
Low Alarm Ready to
receive OCmd_Ack
(enable button)
Lo.Rdy_Ack
Low-Low Alarm Ready
to receive OCmd_Ack
(enable button)
LoLo.Rdy_Ack
Analog Input Failure
Alarm (bad quality
or out of range)
Ready to receive
OCmd_Ack (enable
button)
Fail.Rdy_Ack
High-High Alarm
Ready to receive
OCmd_Reset (enable
button)
HiHi.Rdy_Reset

1=At least one Alarm


requires Reset
Rdy_Reset

High Alarm Ready to


receive OCmd_Reset
(enable button)
Hi.Rdy_Reset
Low Alarm Ready to
receive OCmd_Reset
(enable button)
Lo.Rdy_Reset
Low-Low Alarm Ready
to receive
OCmd_Reset (enable
button)
LoLo.Rdy_Reset
Analog Input Failure
Alarm (bad quality
or out of range)
Ready to receive
OCmd_Reset (enable
button)
Fail.Rdy_Reset

Current Alarm Level


and Acknowledgement
(enumeration)
MOV
Move
Source Wrk_Notify
0

Dest Val_Notify
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn
Total number of rungs in routine: %1!d!
Fail.Rdy_Ack

41(XIC)

Fail.Rdy_Reset

41(XIC)

Fail.Val_Notify

41(GRT) 41(MOV)

Hi.Rdy_Ack

41(XIC)

Hi.Rdy_Reset

41(XIC)

Hi.Val_Notify

41(MOV) 41(GRT)

HiHi.Rdy_Ack

41(XIC)

HiHi.Rdy_Reset

41(XIC)

HiHi.Val_Notify

41(MOV) 41(GRT)

Lo.Rdy_Ack

41(XIC)

Lo.Rdy_Reset

41(XIC)

Lo.Val_Notify

41(MOV) 41(GRT)

LoLo.Rdy_Ack

41(XIC)

LoLo.Rdy_Reset

41(XIC)

LoLo.Val_Notify

41(MOV) 41(GRT)

Rdy_Reset

*41(OTE)

Rdy_ResetAckAll

*41(OTE)

Val_Notify

*41(MOV)

Wrk_Notify

41(MOV) 41(GRT) *41(MOV) *41(CLR)

Wrk_Notify.0

*41(OTE)

Page 91
22/12/2015 08,53,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_AIn Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Prescan
Total number of rungs in routine: 5
Data Context: P_AIn <definition>

Clear Ownership. clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
CLR
CLR
Clear
Clear
Dest
Dest
PSet_Owner
Val_Owner
0
0

PSet_Owner

*0(CLR)

Val_Owner

*0(CLR)

Page 92
22/12/2015 08,53,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Maintenance Command
to use Input PV
(normal)
MCmd_InpPV
U

MCmd_InpPV

*1(OTU)

MCmd_SubstPV

*1(OTU)

OCmd_Reset

*1(OTU)

OCmd_ResetAckAll

*1(OTU)

PCmd_Reset

*1(OTU)

"Lurking" Operator Commands are cleared, as well as the Program Reset.


Operator Command to
Maintenance Command
Operator Command to
Reset and
to use Substitute PV
Reset all Alarms
Acknowledge all
Alarms
(override input)
requiring Reset
MCmd_SubstPV
OCmd_Reset
OCmd_ResetAckAll
U
U
U

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

Set up the filter initialization one-shot so filter will start from first valid value.
Selected PV goes
from Infinite or Not
a Number to VALID
Wrk_ValidONS
U

Wrk_ValidONS

*2(OTU)

RSLogix 5000

P_AIn Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:Prescan
Total number of rungs in routine: 5
Data Context: P_AIn <definition>

Page 93
22/12/2015 08,53,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership. clear "lurking" Commands


Set up the PV Min/Max Capture function to "clear" on first scan,
thus capturing the first PV value as "min" and "max"
Program Command to
Clear the captured
min / max PV
excursion values
PCmd_ClearCapt
L

PCmd_ClearCapt

*3(OTL)

High-High Status
On-Dealy Timer
Wrk_HiHiOnDlyT
RES

Reset the Threshold Status On-Delay and Off-Delay Timers.


High Status On-Delay
Low Status On-Delay
Low-Low Status
Timer
Timer
On-Delay Timer
Wrk_HiOnDlyT
Wrk_LoOnDlyT
Wrk_LoLoOnDlyT
RES
RES
RES

High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT
RES

Wrk_FailOffDlyT

*4(RES)

Wrk_FailOnDlyT

*4(RES)

Wrk_HiHiOffDlyT

*4(RES)

Wrk_HiHiOnDlyT

*4(RES)

Wrk_HiOffDlyT

*4(RES)

Wrk_HiOnDlyT

*4(RES)

Wrk_LoLoOffDlyT

*4(RES)

Wrk_LoLoOnDlyT

*4(RES)

Wrk_LoOffDlyT

*4(RES)

Wrk_LoOnDlyT

*4(RES)

High Status
Off-Delay Timer
Wrk_HiOffDlyT
RES

Low Status Off-Delay


Timer
Wrk_LoOffDlyT
RES

Fail Status On-Delay


Timer
Wrk_FailOnDlyT
RES

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT
RES

Fail Status
Off-Delay Timer
Wrk_FailOffDlyT
RES

(End)

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 94
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this device is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").

THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!
1=Clear Program
1=Clear Program
Commands on receipt
Commands on receipt
0=Leave Set
0=Leave Set
Analog Input Mode
Selection
Cfg_PCmdClear
Cfg_PCmdClear
<Mode.Cfg_PCmdClear> <Mode.Cfg_PCmdClear>
P_Mode
/
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock
Signature ID: C1F72CF2

Cfg_PCmdClear

0(XIC) 0(XIO)

Mode

*0(P_Mode)

First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
0
0
Source B
0
Dest
Val_Owner
0
Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

1(MOV) 1(EQU) 1(NEQ)

Val_Owner

*1(MOV) 1(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 95
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


This rung publishes the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the configuration of a PID, so the AIn and PID ranges are in lockstep.
Minimum of scaled
Maximum of scaled
range = MIN
range = MAX
PV (Output) Maximum
(Cfg_PVEUMin,
(Cfg_PVEUMin,
for Scaling to EU
Cfg_PVEUMax)
Cfg_PVEUMax)
GEQ
MOV
MOV
Grtr Than or Eql (A>=B)
Move
Move
Source A Cfg_PVEUMax
Source Cfg_PVEUMin
Source Cfg_PVEUMax
100.0
0.0
100.0
Source B Cfg_PVEUMin
Dest
Val_PVEUMin
Dest
Val_PVEUMax
0.0
0.0
100.0

PV (Output) Maximum
for Scaling to EU
LES
Less Than (A<B)
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0

Cfg_PVEUMax

2(LES) 2(GEQ) 2(MOV) 3(EQU) 5(CPT)

Cfg_PVEUMin

2(MOV) 2(LES) 2(GEQ) 3(EQU) 5(MOV) 5(CPT)

Val_PVEUMax

*2(MOV)

Val_PVEUMin

*2(MOV)

Maximum of scaled
range = MAX
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMin
0.0
Dest
Val_PVEUMax
100.0

Minimum of scaled
range = MIN
(Cfg_PVEUMin,
Cfg_PVEUMax)
MOV
Move
Source Cfg_PVEUMax
100.0
Dest
Val_PVEUMin
0.0

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 96
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


Flag a Configuration Error if the raw input range or scaled PV range
max and min are set the same (invalid range).
Since this Analog Input is disabled, indicate that the PV is bad
(Val is not being updated.)
Indicate that this Analog Input is DISABLED (Val_Sts = 33);
if there is a Configuration Error, indicate that as well (Val_Fault=34).

##### V2.0-02 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
1=A Maintenance
1=PV Bad quality or
Bypass is Active,
Out of Range
display icon
Sts_PVBad
Sts_MaintByp
U
L
Buffer for building
Val_Fault
CLR
Clear
Wrk_Fault
Dest
0

Input (unscaled)
Maximum for Scaling
EQU
Equal
Source A Cfg_InpRawMax
100.0
Source B Cfg_InpRawMin
0.0
PV (Output) Maximum
for Scaling to EU
EQU
Equal
Source A Cfg_PVEUMax
100.0
Source B Cfg_PVEUMin
0.0
PV Filter Time
Constant (sec),
0.0 = unfiltered
LES
Less Than (A<B)
Source A Cfg_FiltTC
0.0
Source B
0.0

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw

1=Error in Config
(see detail Err_
bits for reason),
display icon
Sts_Err

1=Error in Config:
Scaled EU Min = Max
Err_EU

1=Error in Config:
PV filter params
(RateTime, TC)
Err_Filt

Buffer for building


Val_Fault
MOV
Move
Source
34
Dest

Device Confirmed Sts


0=PV Good, 5=PV
Uncertain, 6=PV Bad,
7=Substitute PV,
33=Disabled
MOV
Move
33
Source
Dest

Val_Sts
0

Wrk_Fault
0

Device Fault Status


0=none, 20=Lo,
21=Hi, 24=LoLo,
25=HiHi, 32=Fail,
34=CfgErr
MOV
Move
Wrk_Fault
Source
0
Dest
Val_Fault
0

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 97
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.

Cfg_FiltTC

3(LES)

Cfg_InpRawMax

3(EQU) 5(CPT)

Cfg_InpRawMin

3(EQU) 5(CPT)

Cfg_PVEUMax

2(LES) 2(GEQ) 2(MOV) 3(EQU) 5(CPT)

Cfg_PVEUMin

2(MOV) 2(LES) 2(GEQ) 3(EQU) 5(MOV) 5(CPT)

Err_EU

*3(OTE) 5(XIO) 5(XIC)

Err_Filt

*3(OTE)

Err_Raw

*3(OTE) 5(XIC) 5(XIO)

Sts_Err

*3(OTE)

Sts_MaintByp

*3(OTU)

Sts_PVBad

*3(OTL)

Val_Fault

*3(MOV)

Val_Sts

*3(MOV)

Wrk_Fault

3(MOV) *3(CLR) *3(MOV)

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 98
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


============================================================
ANALOG INPUT PROCESSING
============================================================

This rung checks the bit pattern of the REAL input (by copying to a DINT) to see if
the input is +Infinity, -Infinity or Not a Number. Per ANSI 32-bit Float
format, in these cases the Exponent bits (.30 thru .23) will all be 1s:
0111 1111 1000 0000 0000 0000 0000 0000 = +Infinity
1111 1111 1000 0000 0000 0000 0000 0000 = -Infinity
x111 1111 1xxx xxxx xxxx xxxx xxxx xxxx = Not a Number
1=Use simulated PV
Input REAL bit
Input REAL bit
(Set_SimPV); 0=Use
pattern as a DINT
pattern as a DINT
Input (Inp_PV)
(check for Inf/NaN)
(check for Inf/NaN)
Inp_Sim
COP
MEQ
/
Copy File
Mask Equal
Inp_PV
Wrk_InpDINT
Source
Source
Dest
Wrk_InpDINT
16#0000_0000
Length
1
Mask
16#7F80_0000
1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Input REAL bit


pattern as a DINT
(check for Inf/NaN)
COP
Copy File
Source
Set_SimPV
Dest
Wrk_InpDINT
Length
1

Inp_PV

4(COP) 5(MOV) 5(CPT)

Inp_Sim

4(XIO) 4(XIC) 5(XIC) 5(XIO)

Set_SimPV

4(COP) 5(MOV)

Wrk_InpDINT

*4(COP) 4(MEQ)

Wrk_InpInfNaN

*4(OTE) 5(XIO) 5(XIC)

Input is Infinite or
Not a Number
Wrk_InpInfNaN

Compare 16#7F80_0000

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

Page 99
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


The Process Variable Input Value (Val_InpPV) shows th
regardless of the settings of Mode, Substitute PV, etc., EVEN WH

If NOT in simulation, if the scaling configuration is valid, the Raw Input


In Simulation the Simulated Input must be provided in En

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
/

1=Error in Config:
Scaled EU Min = Max
Err_EU
/

Input is Infinite or
Not a Number
Wrk_InpInfNaN
/

Compute
Dest

Expression (Inp_PV-Cfg_InpRaw

1=Error in Config:
Raw Input Scaling
Min = Max
Err_Raw
1=Error in Config:
Scaled EU Min = Max
Err_EU

Input is Infinite or
Not a Number
Wrk_InpInfNaN

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Cfg_InpRawMax

3(EQU) 5(CPT)

Cfg_InpRawMin

3(EQU) 5(CPT)

Cfg_PVEUMax

2(MOV) 2(LES) 2(GEQ) 3(EQU) 5(CPT)

Cfg_PVEUMin

2(MOV) 2(GEQ) 2(LES) 3(EQU) 5(CPT) 5(MOV)

Err_EU

*3(OTE) 5(XIO) 5(XIC)

Err_Raw

*3(OTE) 5(XIC) 5(XIO)

Inp_PV

4(COP) 5(MOV) 5(CPT)

Inp_Sim

4(XIO) 4(XIC) 5(XIC) 5(XIO)

Set_SimPV

4(COP) 5(MOV)

Val_InpPV

*5(CPT) *5(MOV)

Wrk_InpInfNaN

*4(OTE) 5(XIC) 5(XIO)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Page 100
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(Val_InpPV) shows the scaled input,


e PV, etc., EVEN WHEN EnableIn IS FALSE!

valid, the Raw Input is scaled to Engineering Units.


ust be provided in Engineering Units.
Analog Input Value
(actual, before
Substitute PV
selection)
CPT

Val_InpPV
0.0
(Inp_PV-Cfg_InpRawMin)*(Cfg_PVEUMax-Cfg_PVEUMin)/(Cfg_InpRawMax-Cfg_InpRawMin)+Cfg_PVEUMin
Analog Input Value
(actual, before
Substitute PV
selection)
MOV
Move
Source Cfg_PVEUMin
0.0
Dest
Val_InpPV
0.0
Analog Input Value
(actual, before
Substitute PV
selection)
MOV
Move
Source
Inp_PV
0.0
Dest
Val_InpPV
0.0
Analog Input Value
(actual, before
Substitute PV
selection)
MOV
Move
Source
Set_SimPV
0.0
Dest
Val_InpPV
0.0

Maintenance Command
to use Input PV
(normal)
MCmd_InpPV
U

MCmd_InpPV

*6(OTU)

MCmd_SubstPV

*6(OTU)

OCmd_Reset

*6(OTU)

OCmd_ResetAckAll

*6(OTU)

PCmd_Reset

*6(OTU)

"Lurking" Operator Commands are cleared, as well as the Program Reset.


Operator Command to
Maintenance Command
Operator Command to
Reset and
to use Substitute PV
Reset all Alarms
Acknowledge all
(override input)
requiring Reset
Alarms
MCmd_SubstPV
OCmd_Reset
OCmd_ResetAckAll
U
U
U

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Page 101
22/12/2015 08,53,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Since we're not processing Operator Commands or Settings, we're not READY for any of them either!
1=At least one Alarm
1=Ready to receive
1=Ready for
1=Ready for
1=At least one Alarm
requires Reset or
OSets (enables data
MCmd_InpPV
MCmd_SubstPV
requires Reset
Acknowledgement
entry fields)
Rdy_InpPV
Rdy_SubstPV
Rdy_Reset
Rdy_ResetAckAll
Rdy_OSet
U
U
U
U
U

Rdy_InpPV

*7(OTU)

Rdy_OSet

*7(OTU)

Rdy_Reset

*7(OTU)

Rdy_ResetAckAll

*7(OTU)

Rdy_SubstPV

*7(OTU)

The first-order filter's scan timer must run and clear every scan, whether the Instruction
is true or not. Doing so here avoids a bump in the Value on transition to EnableIn TRUE.
Scan Timer
Scan Timer
(milliseconds,
(milliseconds,
always runs)
always runs)
TON
CLR
Timer On Delay
EN
Clear
Timer
Wrk_ScanT
Dest Wrk_ScanT.ACC
Preset 2147483647
DN
0
Accum
0

Wrk_ScanT

*8(TON)

Wrk_ScanT.ACC

*8(CLR)

Set up the filter initialization one-shot so filter of "Val" in main Logic


will start from first valid value on transition from false to true.
Selected PV goes
from Infinite or Not
a Number to VALID
Wrk_ValidONS
U

Wrk_ValidONS

*9(OTU)

RSLogix 5000

P_AIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_AIn <definition>

10

Page 102
22/12/2015 08,53,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Off-Scan: no Val update or alarm checking. PV Bad Quality ("stale") is asserted.


Reset the Threshold Status On-Delay and Off-Delay Timers.
High-High Status
High Status On-Delay
Low Status On-Delay
Low-Low Status
On-Dealy Timer
Timer
Timer
On-Delay Timer
Wrk_HiHiOnDlyT
Wrk_HiOnDlyT
Wrk_LoOnDlyT
Wrk_LoLoOnDlyT
RES
RES
RES
RES
High-High Status
Off-Delay Timer
Wrk_HiHiOffDlyT
RES

Wrk_FailOffDlyT

*10(RES)

Wrk_FailOnDlyT

*10(RES)

Wrk_HiHiOffDlyT

*10(RES)

Wrk_HiHiOnDlyT

*10(RES)

Wrk_HiOffDlyT

*10(RES)

Wrk_HiOnDlyT

*10(RES)

Wrk_LoLoOffDlyT

*10(RES)

Wrk_LoLoOnDlyT

*10(RES)

Wrk_LoOffDlyT

*10(RES)

Wrk_LoOnDlyT

*10(RES)

High Status
Off-Delay Timer
Wrk_HiOffDlyT
RES

Low Status Off-Delay


Timer
Wrk_LoOffDlyT
RES

Fail Status On-Delay


Timer
Wrk_FailOnDlyT
RES

Low-Low Status
Off-Delay Timer
Wrk_LoLoOffDlyT
RES

Fail Status
Off-Delay Timer
Wrk_FailOffDlyT
RES

Clear the threshold Status and Alarms.


Clear the Alarm Notify Value, and show the Alarms Inhibited breadcrumb.

11

1=Analog Input is in
High-High Alarm
Alm_HiHi
<HiHi.Alm>
U

1=Analog Input is in
High Alarm
Alm_Hi
<Hi.Alm>
U

1=Analog Input is
above High-High
limit
Sts_HiHi
<HiHi.Inp>
U

1=Analog Input is
above High limit
Sts_Hi
<Hi.Inp>
U

1=Analog Input is in
Low Alarm
Alm_Lo
<Lo.Alm>
U
1=Analog Input is
below Low limit
Sts_Lo
<Lo.Inp>
U

1=Analog Input is in
Low-Low Alarm
Alm_LoLo
<LoLo.Alm>
U
1=Analog Input is
below Low-Low limit
Sts_LoLo
<LoLo.Inp>
U

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh
L

Alm_Fail

*11(OTU)

Alm_Hi

*11(OTU)

Alm_HiHi

*11(OTU)

Alm_Lo

*11(OTU)

Alm_LoLo

*11(OTU)

1=Analog Input
Failure Alarm (PV
Bad or Out of Range)
Alm_Fail
<Fail.Alm>
U
1=Analog Input is
Out of Range or PV
Bad
Sts_Fail
<Fail.Inp>
U

Current Alarm Level


and Acknowledgement
(enumeration)
CLR
Clear
Dest
Val_Notify
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AIn

Sts_AlmInh

*11(OTL)

Sts_Fail

*11(OTU)

Sts_Hi

*11(OTU)

Sts_HiHi

*11(OTU)

Sts_Lo

*11(OTU)

Sts_LoLo

*11(OTU)

Val_Notify

*11(CLR)

Page 103
22/12/2015 08,53,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_Alarm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Page 1
22/12/2015 08,55,04
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Alarm v2.0 01 Release


Rockwell Automation

Alarm
Available Languages
Relay Ladder

Function Block

Structured Text
P_Alarm();
Parameters
Required
X

Name
P_Alarm
EnableIn
EnableOut
Inp
Inp_Reset
Cfg_Exists
Cfg_ResetReqd
Cfg_AckReqd
Cfg_PCmdClear

Data Type
P_Alarm
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input
Input
Input
Input
Input
Input

Cfg_Severity
Cfg_AlmMinOnT
PCmd_Reset
PCmd_Ack
PCmd_Inhibit
PCmd_Uninhibit
OCmd_Reset
OCmd_Ack
OCmd_Suppress
OCmd_Unsuppress
MCmd_Disable
MCmd_Enable
Val_Notify
Alm
Ack
Inhibited
Suppressed
Disabled
Sts_AlmInh
Sts_Err
Err_Timer
Err_Severity

SINT
DINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
SINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output

Description
Alarm
Alarm Condition Input 1=Alarm
1=Reset Alarm requiring reset
1=Alarm configured to exist, 0=Does not exist, don't scan
1=Reset required to clear Alarm
1=Acknowledge required for Alarm
1=Clear Program Commands on receipt
0=Leave Set
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Minimum time Alm output stays on (sec)
Program Command to Reset latched alarm
Program Command to Acknowledge alarm
Program Command to Inhibit alarm (force Alm to 0)
Program Command to Uninhibit alarm
Operator Command to Reset latched alarm
Operator Command to Acknowledge alarm
Operator Command to Suppress alarm
Operator Command to Unsuppress alarm
Maintenance Command to Disable alarm (force Alm to 0)
Maintenance Command to Enable alarm
Current Alarm Level and Acknowledgement (enumeration)
Alarm output 1=In Alarm
Alarm acknowledged status: 1=Ack rcvd
1=Alarm has been Inhibited by Program (will not be sent)
1=Alarm has been Suppressed by Operator (not visible on HMI)
1=Alarm has been Disabled by Maintanance (will not be sent)
1=Alarm has been inhibited, disabled or suppressed, display "I" icon
1=Error in Config: see detail Err_ bits for reason
1=Error in Config: Invalid timer preset (use 0 to 2147483)
1=Error in Config: Invalid Severity (use 1 to 4)
RSLogix 5000

P_Alarm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Rdy_Reset
Rdy_Ack
Rdy_Suppress
Rdy_Unsuppress
Rdy_Disable
Rdy_Enable

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Output
Output
Output
Output
Output
Output

Page 2
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Ready to receive OCmd_Reset (enable button)


Ready to receive OCmd_Ack (enable button)
Ready to receive OCmd_Suppress (enable button)
Ready to receive OCmd_Unsuppress (enable button)
Ready to receive MCmd_Disable (enable button)
Ready to receive MCmd_Enable (enable button)

Extended Description
This instruction monitors one input condition and provides one Alarm with:
* configurable latching, acknowledgement, and severity
* configurable minimum ON time (e.g., to ensure it is seen by the HMI)
* commands to inhibit/uninhibit (Prog), suppress/unsuppress (Oper)
and disable/enable (Maint) the alarm.
* FTA&E support for suppress/unsuppress and disable/enable.
NOTE regarding parameter naming:
FTA&E names (same as ALMD instruction) are used instead
of the ANSI/ISA 18.2-2009 names, as follows:
"Disabled" is the equivalent of "Out of Service" in ISA 18.2.
"Suppressed" is the equivalent of "Shelved" in ISA 18.2.
"Inhibited" is the equivalent of "Suppressed by Design" in ISA 18.2.
This instruction is usually nested within other instructions, with one instance
used for each Alarm generated by the containing instruction. It may also be
used as a standalone instruction for Alarm conditions generated by custom logic.

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress
Clear "lurking" Commands

Revision v2.0 01 Release Notes


Edge/Level Configuration for PCmd_Inhibit, PCmd_Uninhibit.
Change History
Created:
Created By:
Edited:
Edited By:

29/02/2008 02,40,04
Not Available
23/08/2012 01,28,51
PLANTPAX\Library

Signature
ID:
Timestamp:

8815AF7A
2012-08-23T19:28:51.441Z

Cross Reference
Container
P_AIn
P_AIn
P_AIn
P_AIn
P_AIn
P_AOut
P_AOut
P_DIn
P_DIn
P_DoseFM

Routine
Logic
Logic
Logic
Logic
Logic
Logic
Logic
EnableInFalse
Logic
Logic

Location
Rung 35
Rung 36
Rung 37
Rung 38
Rung 39
Rung 36
Rung 37
Rung 18
Rung 19
Rung 55

Tag
HiHi
Hi
Lo
LoLo
Fail
IntlkTrip
IOFault
TgtDisagree
TgtDisagree
OverTol
RSLogix 5000

P_Alarm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

P_DoseFM
P_DoseFM
P_DoseFM
P_Motor
P_Motor
P_Motor
P_Motor
P_ValveSO
P_ValveSO
P_ValveSO
P_ValveSO

Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic
Logic

Rung 56
Rung 57
Rung 58
Rung 37
Rung 38
Rung 39
Rung 40
Rung 45
Rung 46
Rung 47
Rung 48

Page 3
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

UnderTol
ZeroFault
EqpFault
FailToStart
FailToStop
IntlkTrip
IOFault
FullStall
TransitStall
IntlkTrip
IOFault

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 4
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
Data Type
Scope
1
BOOL
P_Alarm
Ack
Alarm acknowledged status: 1=Ack rcvd
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Ack - P_Alarm/EnableInFalse - *11(OTL), *13(OTU), *16(OTL), *2(OTL), *9(OTL), 14(XIO), 15(XIO), 16(XIO)
Ack - P_Alarm/Logic - *11(OTL), *13(OTU), *16(OTL), *2(OTL), *9(OTL), 14(XIO), 15(XIO), 16(XIO)
0
Alm
Alarm output 1=In Alarm
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Alm - P_Alarm/EnableInFalse - *16(OTE)
Alm - P_Alarm/Logic - *16(OTE)

BOOL

P_Alarm

1
Cfg_AckReqd
1=Acknowledge required for Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_AckReqd - P_Alarm/EnableInFalse - 16(XIO)
Cfg_AckReqd - P_Alarm/Logic - 16(XIO)

BOOL

P_Alarm

5
Cfg_AlmMinOnT
Minimum time Alm output stays on (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_AlmMinOnT - P_Alarm/EnableInFalse - 0(MUL)
Cfg_AlmMinOnT - P_Alarm/Logic - 0(MUL)

DINT

P_Alarm

1
BOOL
Cfg_Exists
1=Alarm configured to exist, 0=Does not exist, don't scan
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Exists - P_Alarm/EnableInFalse - 0(XIC), 15(XIC), 16(XIC), 2(XIO)
Cfg_Exists - P_Alarm/Logic - 0(XIC), 15(XIC), 16(XIC), 2(XIO)

P_Alarm

1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PCmdClear - P_Alarm/EnableInFalse - 3(XIC), 4(XIO)
Cfg_PCmdClear - P_Alarm/Logic - 3(XIC), 4(XIO)
Cfg_PCmdClear - P_Alarm/Prescan - 0(XIC)

BOOL

P_Alarm

0
Cfg_ResetReqd
1=Reset required to clear Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ResetReqd - P_Alarm/EnableInFalse - 11(XIC), 12(XIO), 15(XIC)
Cfg_ResetReqd - P_Alarm/Logic - 11(XIC), 12(XIO), 15(XIC)

BOOL

P_Alarm

3
Cfg_Severity
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault

SINT

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>
Cfg_Severity (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Severity - P_Alarm/EnableInFalse - 0(LIM)
Cfg_Severity - P_Alarm/Logic - 0(LIM)
1
Cfg_Severity.0
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Cfg_Severity.0 - P_Alarm/EnableInFalse - 16(XIC)
Cfg_Severity.0 - P_Alarm/Logic - 16(XIC)
1
Cfg_Severity.1
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Cfg_Severity.1 - P_Alarm/EnableInFalse - 16(XIC)
Cfg_Severity.1 - P_Alarm/Logic - 16(XIC)
0
Cfg_Severity.2
1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
Cfg_Severity.2 - P_Alarm/EnableInFalse - 16(XIC)
Cfg_Severity.2 - P_Alarm/Logic - 16(XIC)

Page 5
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL

BOOL

BOOL

0
BOOL
P_Alarm
Disabled
1=Alarm has been Disabled by Maintanance (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Disabled - P_Alarm/EnableInFalse - *2(OTU), *7(OTL), *8(OTU), 10(XIO), 11(XIC), 15(XIC), 15(XIO), 16(XIC)
Disabled - P_Alarm/Logic - *2(OTU), *7(OTL), *8(OTU), 10(XIO), 11(XIC), 15(XIC), 15(XIO), 16(XIC)
1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Alarm

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Alarm

0
Err_Severity
1=Error in Config: Invalid Severity (use 1 to 4)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Severity - P_Alarm/EnableInFalse - *0(OTE)
Err_Severity - P_Alarm/Logic - *0(OTE)

BOOL

P_Alarm

0
Err_Timer
1=Error in Config: Invalid timer preset (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_Alarm/EnableInFalse - *0(OTE)
Err_Timer - P_Alarm/Logic - *0(OTE)

BOOL

P_Alarm

0
Inhibited
1=Alarm has been Inhibited by Program (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 6
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inhibited (Continued)
Inhibited - P_Alarm/EnableInFalse - *16(OTE), 16(XIC)
Inhibited - P_Alarm/Logic - *16(OTE), 16(XIC)
1
Inp
Alarm Condition Input 1=Alarm
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Inp - P_Alarm/EnableInFalse - 10(XIO)
Inp - P_Alarm/Logic - 10(XIC)

BOOL

P_Alarm

0
Inp_Reset
1=Reset Alarm requiring reset
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Reset - P_Alarm/EnableInFalse - 11(XIC)
Inp_Reset - P_Alarm/Logic - 11(XIC)

BOOL

P_Alarm

0
MCmd_Disable
Maintenance Command to Disable alarm (force Alm to 0)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Disable - P_Alarm/EnableInFalse - *2(OTU), *7(OTU), 7(XIC)
MCmd_Disable - P_Alarm/Logic - *2(OTU), *7(OTU), 7(XIC)
MCmd_Disable - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
MCmd_Enable
Maintenance Command to Enable alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Enable - P_Alarm/EnableInFalse - *2(OTU), *8(OTU), 8(XIC)
MCmd_Enable - P_Alarm/Logic - *2(OTU), *8(OTU), 8(XIC)
MCmd_Enable - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
OCmd_Ack
Operator Command to Acknowledge alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Ack - P_Alarm/EnableInFalse - *2(OTU), *9(OTU), 9(XIC)
OCmd_Ack - P_Alarm/Logic - *2(OTU), *9(OTU), 9(XIC)
OCmd_Ack - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
OCmd_Reset
Operator Command to Reset latched alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_Alarm/EnableInFalse - *11(OTU), *2(OTU), 11(XIC)
OCmd_Reset - P_Alarm/Logic - *11(OTU), *2(OTU), 11(XIC)
OCmd_Reset - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
OCmd_Suppress
Operator Command to Suppress alarm
Usage:
Input Parameter
Required:
No
Visible:
No

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 7
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OCmd_Suppress (Continued)
External Access:
Read/Write
OCmd_Suppress - P_Alarm/EnableInFalse - *2(OTU), *5(OTU), 5(XIC)
OCmd_Suppress - P_Alarm/Logic - *2(OTU), *5(OTU), 5(XIC)
OCmd_Suppress - P_Alarm/Prescan - *0(OTU)
0
BOOL
OCmd_Unsuppress
Operator Command to Unsuppress alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Unsuppress - P_Alarm/EnableInFalse - *2(OTU), *6(OTU), 6(XIC)
OCmd_Unsuppress - P_Alarm/Logic - *2(OTU), *6(OTU), 6(XIC)
OCmd_Unsuppress - P_Alarm/Prescan - *0(OTU)

P_Alarm

0
PCmd_Ack
Program Command to Acknowledge alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Ack - P_Alarm/EnableInFalse - *2(OTU), *9(OTU), 9(XIC)
PCmd_Ack - P_Alarm/Logic - *2(OTU), *9(OTU), 9(XIC)
PCmd_Ack - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
BOOL
PCmd_Inhibit
Program Command to Inhibit alarm (force Alm to 0)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Inhibit - P_Alarm/EnableInFalse - *2(OTU), *3(OTU), 3(XIC), 4(XIO)
PCmd_Inhibit - P_Alarm/Logic - *2(OTU), *3(OTU), 3(XIC), 4(XIO)
PCmd_Inhibit - P_Alarm/Prescan - *0(OTU)

P_Alarm

0
PCmd_Reset
Program Command to Reset latched alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_Alarm/EnableInFalse - *11(OTU), *2(OTU), 11(XIC)
PCmd_Reset - P_Alarm/Logic - *11(OTU), *2(OTU), 11(XIC)
PCmd_Reset - P_Alarm/Prescan - *0(OTU)

BOOL

P_Alarm

0
BOOL
PCmd_Uninhibit
Program Command to Uninhibit alarm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Uninhibit - P_Alarm/EnableInFalse - *2(OTU), *4(OTU), 4(XIC)
PCmd_Uninhibit - P_Alarm/Logic - *2(OTU), *4(OTU), 4(XIC)
PCmd_Uninhibit - P_Alarm/Prescan - *0(OTU)

P_Alarm

0
Rdy_Ack
Ready to receive OCmd_Ack (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Ack - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Ack - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Rdy_Disable
Ready to receive MCmd_Disable (enable button)

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 8
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Rdy_Disable (Continued)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Disable - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Disable - P_Alarm/Logic - *15(OTE)
0
Rdy_Enable
Ready to receive MCmd_Enable (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Enable - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Enable - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Rdy_Reset
Ready to receive OCmd_Reset (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_Alarm/EnableInFalse - *15(OTE), 16(XIC)
Rdy_Reset - P_Alarm/Logic - *15(OTE), 16(XIC)

BOOL

P_Alarm

0
Rdy_Suppress
Ready to receive OCmd_Suppress (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Suppress - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Suppress - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Rdy_Unsuppress
Ready to receive OCmd_Unsuppress (enable button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Unsuppress - P_Alarm/EnableInFalse - *15(OTE)
Rdy_Unsuppress - P_Alarm/Logic - *15(OTE)

BOOL

P_Alarm

0
Sts_AlmInh
1=Alarm has been inhibited, disabled or suppressed, display "I" icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_Alarm/EnableInFalse - *16(OTE)
Sts_AlmInh - P_Alarm/Logic - *16(OTE)

BOOL

P_Alarm

0
Sts_Err
1=Error in Config: see detail Err_ bits for reason
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Err - P_Alarm/EnableInFalse - *0(OTE)
Sts_Err - P_Alarm/Logic - *0(OTE)

BOOL

P_Alarm

0
Suppressed
1=Alarm has been Suppressed by Operator (not visible on HMI)
Usage:
Output Parameter
Required:
No
Visible:
Yes

BOOL

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Type Size: 44 byte (s)
Data Context: P_Alarm <definition>

Page 9
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Suppressed (Continued)
External Access:
Read/Write
Suppressed - P_Alarm/EnableInFalse - *2(OTU), *5(OTL), *6(OTU), 11(XIC), 15(XIC), 15(XIO), 16(XIC), 16(XIO)
Suppressed - P_Alarm/Logic - *2(OTU), *5(OTL), *6(OTU), 11(XIC), 15(XIC), 15(XIO), 16(XIC), 16(XIO)
0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
0
Val_Notify.0
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.0 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.0 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.1
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.1 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.1 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.2
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.2 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.2 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.3
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.3 - P_Alarm/EnableInFalse - *16(OTE)
Val_Notify.3 - P_Alarm/Logic - *16(OTE)
0
Val_Notify.4
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.4 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.4 - P_Alarm/Logic - *16(OTU)
0
Val_Notify.5
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.5 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.5 - P_Alarm/Logic - *16(OTU)
0
Val_Notify.6
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.6 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.6 - P_Alarm/Logic - *16(OTU)
0
Val_Notify.7
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.7 - P_Alarm/EnableInFalse - *16(OTU)
Val_Notify.7 - P_Alarm/Logic - *16(OTU)

SINT

P_Alarm

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

RSLogix 5000

P_Alarm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Context: P_Alarm <definition>

Page 10
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
Data Type
0
BOOL
Wrk_Abnormal
Abnormal: Input in Alarm state, and not disabled or inhibited
Usage:
Local Tag
External Access:
None
Wrk_Abnormal - P_Alarm/EnableInFalse - *10(OTE), 11(XIO), 12(XIO), 13(XIC), 15(XIO)
Wrk_Abnormal - P_Alarm/Logic - *10(OTE), 11(XIO), 12(XIO), 13(XIC), 15(XIO)

Scope
P_Alarm

0
BOOL
Wrk_Alm
Internal Alarm Status
Usage:
Local Tag
External Access:
None
Wrk_Alm - P_Alarm/EnableInFalse - *11(OTU), *12(OTU), *13(OTL), *2(OTU), 13(XIO), 15(XIC), 16(XIC)
Wrk_Alm - P_Alarm/Logic - *11(OTU), *12(OTU), *13(OTL), *2(OTU), 13(XIO), 15(XIC), 16(XIC)

P_Alarm

TIMER
Wrk_AlmMinOnT
Alarm output minimum ON time to be seen by alarm server
Usage:
Local Tag
External Access:
None
Wrk_AlmMinOnT - P_Alarm/EnableInFalse - *16(TON), *2(RES)
Wrk_AlmMinOnT - P_Alarm/Logic - *16(TON), *2(RES)
5000
DINT
Wrk_AlmMinOnT.PRE
Alarm output minimum ON time to be seen by alarm server
Wrk_AlmMinOnT.PRE - P_Alarm/EnableInFalse - *0(MOV), *0(MUL), *1(MOV), 1(LES)
Wrk_AlmMinOnT.PRE - P_Alarm/Logic - *0(MOV), *0(MUL), *1(MOV), 1(LES)
0
BOOL
Wrk_AlmMinOnT.PRE.31
Alarm output minimum ON time to be seen by alarm server
Wrk_AlmMinOnT.PRE.31 - P_Alarm/EnableInFalse - 0(XIC)
Wrk_AlmMinOnT.PRE.31 - P_Alarm/Logic - 0(XIC)
0
DINT
Wrk_AlmMinOnT.ACC
Alarm output minimum ON time to be seen by alarm server
0
BOOL
Wrk_AlmMinOnT.EN
Alarm output minimum ON time to be seen by alarm server
0
BOOL
Wrk_AlmMinOnT.TT
Alarm output minimum ON time to be seen by alarm server
Wrk_AlmMinOnT.TT - P_Alarm/EnableInFalse - 12(XIO)
Wrk_AlmMinOnT.TT - P_Alarm/Logic - 12(XIO)
0
BOOL
Wrk_AlmMinOnT.DN
Alarm output minimum ON time to be seen by alarm server

P_Alarm

0
Wrk_AutoAckONS
Alarm Unacknowledged ONS for AutoAck Timer
Usage:
Local Tag
External Access:
None
Wrk_AutoAckONS - P_Alarm/EnableInFalse - *14(ONS)
Wrk_AutoAckONS - P_Alarm/Logic - *14(ONS)

P_Alarm

BOOL

TIMER
Wrk_AutoAckT
Time to clear Ack bit when Ack not required
Usage:
Local Tag
External Access:
None
Wrk_AutoAckT - P_Alarm/EnableInFalse - *14(TOF)
Wrk_AutoAckT - P_Alarm/Logic - *14(TOF)
5000
DINT
Wrk_AutoAckT.PRE
Time to clear Ack bit when Ack not required
Wrk_AutoAckT.PRE - P_Alarm/EnableInFalse - *1(MOV)
Wrk_AutoAckT.PRE - P_Alarm/Logic - *1(MOV)
0
DINT
Wrk_AutoAckT.ACC
Time to clear Ack bit when Ack not required
0
BOOL
Wrk_AutoAckT.EN
Time to clear Ack bit when Ack not required
0
BOOL
Wrk_AutoAckT.TT
Time to clear Ack bit when Ack not required
0
BOOL
Wrk_AutoAckT.DN
Time to clear Ack bit when Ack not required
Wrk_AutoAckT.DN - P_Alarm/EnableInFalse - 11(XIO), 15(XIO), 16(XIO), 2(XIO), 9(XIO)
Wrk_AutoAckT.DN - P_Alarm/Logic - 11(XIO), 15(XIO), 16(XIO), 2(XIO), 9(XIO)

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Data Context: P_Alarm <definition>

0
BOOL
Wrk_Inhibited
Internal Alarm Inhibit Status
Usage:
Local Tag
External Access:
None
Wrk_Inhibited - P_Alarm/EnableInFalse - *2(OTU), *3(OTL), *4(OTU), 10(XIO), 16(XIC)
Wrk_Inhibited - P_Alarm/Logic - *2(OTU), *3(OTL), *4(OTU), 10(XIO), 16(XIC)

Page 11
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Alarm

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 12
22/12/2015 08,55,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
P_Alarm: PROCESS -- ALARM (sub-block)
============================================================
Revision 2.0-01 Release: 2012-07-17
V2.0-00 2011-09-30: Removed MinDuration timer (On-Delay and Off-Delay
timing has been pushed to containing instruction's / routine's respondibility).
Added separate "Auto Ack" timer and method for Ack Not Required
(to be compatible with View 32 / ME / SE Legacy alarming).
Added Sts_AlmInh for "Alarm Inhibited" breadcrumb.
Added Cfg_AlmMinOnT to make the minimum Alm ON time configurable.
No longer automatically Acknowledge or Reset on Program Inhibit.
Fixed Disable logic to clearm alarm when Reset Required in order to
aligned Disable behavior with that of FTA&E Tag Alarm Server.
V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear.
============================================================
This instruction monitors one input condition and provides one Alarm with:
* configurable latching, acknowledgement, and severity
* configurable minimum ON time (e.g., to ensure it is seen by the HMI)
* commands to inhibit/uninhibit (Prog), suppress/unsuppress (Oper)
and disable/enable (Maint) the alarm.
* FTA&E support for suppress/unsuppress and disable/enable.
NOTE regarding parameter naming:
FTA&E names (same as ALMD instruction) are used instead
of the ANSI/ISA 18.2-2009 names, as follows:
"Disabled" is the equivalent of "Out of Service" in ISA 18.2.
"Suppressed" is the equivalent of "Shelved" in ISA 18.2.
"Inhibited" is the equivalent of "Suppressed by Design" in ISA 18.2.
This instruction is usually nested within other instructions, with one instance
used for each Alarm generated by the containing instruction. It may also be
used as a standalone instruction for Alarm conditions generated by custom logic.
============================================================
POWERUP / INVALID STATE HANDLING
============================================================
All internal Work (state) bits maintain states through a power cycle and are
independent. No first-scan logic is required. See the Prescan routine for
powerup / prescan code.
============================================================
CONFIGURATION
============================================================
This rung gets the Alarm Minimum ON Time Configuration
value and sets the corresponding timer preset.
If the Minimum ON Time Configuration results in a timer preset
that is negative or less than 5 seconds, the preset is set to
5 seconds. The bad Config is flagged (Err_Timer).
Bad Config is also flagged if the Cfg_Severity is out of range (valid = 1..4)
##### V2.0-00 2011-09-30: Removed configuration for Min Duration, #####
##### added Configuration for Minimum ON Time. #####
1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
0

Alarm output minimum


ON time to be seen
by alarm server
MUL
Multiply
Source A Cfg_AlmMinOnT
5
Source B
1000

Dest Wrk_AlmMinOnT.PRE
5000

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT.PRE.31

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source

5000

Dest Wrk_AlmMinOnT.PRE
5000

1=Error in Config:
Invalid timer preset
(use 0 to 2147483)
Err_Timer
1=Info Only;
2=Warning; 3=Process

1=Error in Config:
Invalid Severity

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 13
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay,2=Warning;


latch/reset,3=Process
acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress
Invalid Severity
(use 1 to 4)
Exception; 4=Fault
Err_Severity
LIM
Limit Test (CIRC)
Low Limit
5
Test

Cfg_Severity
3
High Limit
0

1=Error in Config:
see detail Err_ bits
for reason
Sts_Err

Cfg_AlmMinOnT

0(MUL)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity

0(LIM)

Err_Severity

*0(OTE)

Err_Timer

*0(OTE)

Sts_Err

*0(OTE)

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

Wrk_AlmMinOnT.PRE.31 0(XIC)

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 14
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


The Auto Ack time is ALWAYS five seconds, and if the
Minimun alarm ON time is limited to a minimum of five seconds.
##### V2.0-00 2011-09-30: Added rung. #####
Time to clear Ack
bit when Ack not
required
MOV
Move
5000
Dest Wrk_AutoAckT.PRE
Source
5000

Alarm output minimum


ON time to be seen
by alarm server
LES
Less Than (A<B)
Source A Wrk_AlmMinOnT.PRE
5000
Source B
5000

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

Wrk_AutoAckT.PRE

*1(MOV)

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source

5000

Dest Wrk_AlmMinOnT.PRE
5000

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 15
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


If this alarm does not exist, set it to its default state (no alarm, acknowleded,
uninhibited, unsuppressed, enabled) and clear any received commands.
Then jump over the remainder of the Logic and return.

##### V2.0-00 2011-09-30: Added reset of timers. #####


1=Alarm has been
1=Alarm has been
Suppressed by
Disabled by
Internal Alarm
Operator (not
Maintanance (will
Inhibit Status
visible on HMI)
not be sent)
Wrk_Inhibited
Suppressed
Disabled
U
U
U

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Reset latched alarm
PCmd_Reset
U

Internal Alarm
Status
Wrk_Alm
U

End
JMP

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Program Command to
Acknowledge alarm
PCmd_Ack
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
U
Program Command to
Uninhibit alarm
PCmd_Uninhibit
U

Operator Command to
Reset latched alarm
OCmd_Reset
U

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Operator Command to
Suppress alarm
OCmd_Suppress
U
Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Maintenance Command
to Enable alarm
MCmd_Enable
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

MCmd_Disable

*2(OTU) 7(XIC) *7(OTU)

MCmd_Enable

*2(OTU) *8(OTU) 8(XIC)

OCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

OCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

OCmd_Suppress

*2(OTU) *5(OTU) 5(XIC)

OCmd_Unsuppress

*2(OTU) 6(XIC) *6(OTU)

PCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

PCmd_Inhibit

*2(OTU) *3(OTU) 3(XIC) 4(XIO)

PCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

PCmd_Uninhibit

*2(OTU) 4(XIC) *4(OTU)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT
RES

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!

Page 16
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
Operator Commands (OCmd_xx) and Maintenance Commands
(MCmd_xx) from the HMI and
Program Command (PCmd_xx) from other objects.
NOTE: ALARM COMMANDS ARE ACCEPTED REGARDLESS OF MODE.
This rung receives the Program Alarm Inhibit Command.
If configured for EDGE, the Command is cleared.
Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
3

##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####


1=Clear Program
Program Command to
Commands on receipt
Inhibit alarm (force
0=Leave Set
Alm to 0)
Cfg_PCmdClear
PCmd_Inhibit
U
Internal Alarm
Inhibit Status
Wrk_Inhibited
L

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) 3(XIC) *3(OTU) 4(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

This rung receives the Program Alarm Uninhibit Command (Uninhibit wins over Inhibit)
If configured for LEVEL, Inhibit is cleared if PCmd_Inhibit is cleared.
##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####
Program Command to
Program Command to
Uninhibit alarm
Uninhibit alarm
PCmd_Uninhibit
PCmd_Uninhibit
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
/

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) *3(OTU) 3(XIC) 4(XIO)

PCmd_Uninhibit

*2(OTU) *4(OTU) 4(XIC)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Internal Alarm
Inhibit Status
Wrk_Inhibited
U

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
/

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 17
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


This rung receives the Operator Alarm Suppress Command
1=Alarm has been
Suppressed by
Operator Command to
Operator Command to
Operator (not
Suppress alarm
Suppress alarm
visible on HMI)
OCmd_Suppress
OCmd_Suppress
Suppressed
U
L

OCmd_Suppress

*2(OTU) *5(OTU) 5(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

This rung receives the Operator Alarm Unsuppress Command (Unsuppress wins over Suppress)
NOTE: Suppressed can also be set/cleared directly by the HMI (FTA&E support).
Operator Command to
Unsuppress alarm
OCmd_Unsuppress

Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

OCmd_Unsuppress

*2(OTU) *6(OTU) 6(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
U

This rung receives the Maintenance Alarm Disable Command


Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

MCmd_Disable

*2(OTU) 7(XIC) *7(OTU)

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
L

This rung receives the Maintenance Alarm Enable Command (Enable wins over Disable)
NOTE: Disabled can also be set/cleared directly by the HMI (FTA&E support).
Maintenance Command
to Enable alarm
MCmd_Enable
8

Disabled

Maintenance Command
to Enable alarm
MCmd_Enable
U

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
U

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!
MCmd_Enable

Page 18
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) 8(XIC) *8(OTU)

This rung receives the Alarm Acknowledge Commands


NOTE: Acknowledge can also be set/cleared directly by the HMI.

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Acknowledge alarm
PCmd_Ack

Program Command to
Acknowledge alarm
PCmd_Ack
U

Operator Command to
Acknowledge alarm
OCmd_Ack

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

OCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

PCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

An "Abnormal Condition" is declared if the Input is in its alarm state,


and the alarm is not disabled or inhibited.
NOTE: The alarm (Alm) bit is still set when the alarm is Suppressed, because
it must still be logged by the A&E Server (just not shown to Operator).

Alarm Condition
Input 1=Alarm
Inp
10

NOTE: This rung appears here because the "Abnormal" work bit is
used throughout the logic that follows.
1=Alarm has been
Disabled by
Maintanance (will
Internal Alarm
not be sent)
Inhibit Status
Disabled
Wrk_Inhibited
/
/

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inp

10(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 19
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


This rung receives the Alarm Reset Commands.
If the Alarm Reset Command is received and the Input condition is no longer true,
the Alarm is CLEARED and ACKNOWLEDGED (to match ALMD behavior!!!).
If the Alarm is Disabled or Inhibited, the Alarm is cleared, but if it was
waiting for an Acknowledge, it still needs to be Acked.

11

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Operator Command to
Reset latched alarm
OCmd_Reset

Operator Command to
Reset latched alarm
OCmd_Reset
U

Program Command to
Reset latched alarm
PCmd_Reset

Program Command to
Reset latched alarm
PCmd_Reset
U

1=Reset required to
clear Alarm
Cfg_ResetReqd

1=Reset Alarm
requiring reset
Inp_Reset
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

Inp_Reset

11(XIC)

OCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

PCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIO) 16(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Internal Alarm
Status
Wrk_Alm
U

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 20
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
ALARM GENERATION
============================================================
This rung CLEARS the Alarm when the alarm condition clears and its
Minimum On Time has expired, IF Reset is NOT Required.

12

1=Reset required to
clear Alarm
Cfg_ResetReqd
/

NOTE that Reset Required is also bypassed if the Alarm


is Suppressed by the Operator!
Abnormal: Input in
Alarm output minimum
Alarm state, and not
ON time to be seen
disabled or
by alarm server
inhibited
Wrk_AlmMinOnT.TT
Wrk_Abnormal
/
/

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AlmMinOnT.TT

12(XIO)

Internal Alarm
Status
Wrk_Alm
U

If the Alarm Input (Inp) is true (inverted in EnableInFalse) and the alarm is
(or becomes) Enabled and Uninhibited, this rung sets the Alarm (Alm) bit.
The Acknowledge (Ack) bit is cleared when the Alarm initially occurs.
##### V2.0-00 2011-09-30: Removed Min Duration timing function. #####
Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
13

Internal Alarm
Status
Wrk_Alm
/

Alarm acknowledged
status: 1=Ack rcvd
Ack
U
Internal Alarm
Status
Wrk_Alm
L

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 21
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


When the Alarm initially occurs, the Auto Ack timer is started.
If this Alarm is set for "Ack Not Required", it is automatically
Acknowledged after the AutoAck time expires.
This pulsing of the Ack bit OFF then ON allows the "Ack Not Required"
configuration to be used with View 32, View ME and other legacy
alarm systems that don't support optional ack.

14

End
LBL

##### V2.0-00 2011-09-30: Added AutoAck implementation of "Ack Not Required" #####
Alarm Unacknowledged
Time to clear Ack
Alarm acknowledged
ONS for AutoAck
bit when Ack not
status: 1=Ack rcvd
Timer
required
Ack
Wrk_AutoAckONS
TOF
/
ONS
Timer Off Delay
Timer Wrk_AutoAckT
Preset
5000
Accum
0

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Wrk_AutoAckONS

*14(ONS)

Wrk_AutoAckT

*14(TOF)

EN
DN

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 22
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
OPERATOR COMMAND READIES
============================================================
This Alarm is ready for (requires) an Acknowledgement if the Alarm
is not Acknowledged (an Acknowledge was Required when the alarm occurred).
This Alarm is ready for (requires) a Reset if there is an Alarm, Reset is Required,
and the alarm condition has CLEARED.
If the Alarm is NOT Suppressed, it is ready for Suppress.
If the Alarm IS Suppressed, it is ready for Unsuppress.
If the Alarm is NOT Disabled, it is ready for Disable.
If the Alarm IS Disabled, it is ready for Enable.

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
15

NOTE: This rung appears before the Values/Status rung because the Rdy_Reset
condition is used to eliminate redundant logic in the rung below for Val_Notify.0.
Time to clear Ack
Ready to receive
Alarm acknowledged
bit when Ack not
OCmd_Ack (enable
status: 1=Ack rcvd
required
button)
Ack
Wrk_AutoAckT.DN
Rdy_Ack
/
/

Internal Alarm
Status
Wrk_Alm

1=Reset required to
clear Alarm
Cfg_ResetReqd

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
/
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Rdy_Ack

*15(OTE)

Rdy_Disable

*15(OTE)

Rdy_Enable

*15(OTE)

Ready to receive
OCmd_Suppress
(enable button)
Rdy_Suppress

Ready to receive
OCmd_Unsuppress
(enable button)
Rdy_Unsuppress

Ready to receive
MCmd_Disable (enable
button)
Rdy_Disable

Ready to receive
MCmd_Enable (enable
button)
Rdy_Enable

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!
Rdy_Reset

*15(OTE) 16(XIC)

Rdy_Suppress

*15(OTE)

Rdy_Unsuppress

*15(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Page 23
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 24
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress


============================================================
VALUE / STATUS GENERATION
============================================================
This rung copies the internal working status to public Values, Status, Alarm and Ack bits.
Note that internal working bits are used so that outside objects cannot manipulate
the state of this object by setting/clearing its Status and Alarm bits.
Public Status is generated for:
Alarm (with minimum ON time to be seen by polling)
Notify Level (color, blink)
Alarm Inhibited
(Ack, Suppressed and Disabled can be set/cleared by the HMI directly.)
"AutoAck" (Ack not required with timing) is handled here as well.
NOTE that the alarm bell icon will blink, even though the alarm is Acknowledged,
if an Alarm Reset is required (to get the Operator's attention).

16

##### V2.0-00 2011-09-30: Added Sts_AlmInh to support "Inhibited" breadcrumb on HMI. #####
##### Changed Minimum On Time to be configurable. Changed Ack logic to use Auto Ack timer #####
##### and to NOT Ack the alarm on Program Inhibit. #####
Time to clear Ack
bit when Ack not
1=Acknowledge
Alarm acknowledged
required
required for Alarm
status: 1=Ack rcvd
Wrk_AutoAckT.DN
Cfg_AckReqd
Ack
/
/
L
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
Current Alarm Level
and Acknowledgement
(enumeration)
Val_Notify.0

Alarm acknowledged
status: 1=Ack rcvd
Ack
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

Internal Alarm
Status
Wrk_Alm

Alarm output 1=In


Alarm
Alm

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/

Current Alarm Level


and Acknowledgement

Alarm output minimum


ON time to be seen
by alarm server
TON
Timer On Delay
Timer Wrk_AlmMinOnT
Preset
5000
Accum
0

EN
DN

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.0

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.1

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.1

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.2

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.2

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.3

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

RSLogix 5000

P_Alarm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Logic
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 25
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing:


delay, latch/reset, acknowledge,
enable/disable,
inhibit/uninhibit,
suppress/unsuppress
and Acknowledgement
and Acknowledgement
and
Acknowledgement
and Acknowledgement
(enumeration)
(enumeration)
(enumeration)
(enumeration)
Val_Notify.4
Val_Notify.5
Val_Notify.6
Val_Notify.7
U
U
U
U
1=Alarm has been
Inhibited by Program
(will not be sent)
Inhibited

Internal Alarm
Inhibit Status
Wrk_Inhibited

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled

1=Alarm has been


inhibited, disabled
or suppressed,
display "I" icon
Sts_AlmInh

1=Alarm has been


Inhibited by Program
(will not be sent)
Inhibited
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Alm

*16(OTE)

Cfg_AckReqd

16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity.0

16(XIC)

Cfg_Severity.1

16(XIC)

Cfg_Severity.2

16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inhibited

*16(OTE) 16(XIC)

Rdy_Reset

*15(OTE) 16(XIC)

Sts_AlmInh

*16(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIO) 16(XIC)

Val_Notify.0

*16(OTE)

Val_Notify.1

*16(OTE)

Val_Notify.2

*16(OTE)

Val_Notify.3

*16(OTE)

Val_Notify.4

*16(OTU)

Val_Notify.5

*16(OTU)

Val_Notify.6

*16(OTU)

Val_Notify.7

*16(OTU)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Total number of rungs in routine: %1!d!
Wrk_Inhibited

Page 26
22/12/2015 08,55,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

(End)

RSLogix 5000

P_Alarm Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:Prescan
Total number of rungs in routine: 1
Data Context: P_Alarm <definition>

Page 27
22/12/2015 08,55,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.
##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####
Program Command to
Program Command to
Program Command to
Reset latched alarm
Acknowledge alarm
Uninhibit alarm
PCmd_Reset
PCmd_Ack
PCmd_Uninhibit
U
U
U

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
Operator Command to
Reset latched alarm
OCmd_Reset
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
U
Operator Command to
Acknowledge alarm
OCmd_Ack
U

Operator Command to
Suppress alarm
OCmd_Suppress
U
Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Cfg_PCmdClear

0(XIC)

MCmd_Disable

*0(OTU)

MCmd_Enable

*0(OTU)

OCmd_Ack

*0(OTU)

OCmd_Reset

*0(OTU)

OCmd_Suppress

*0(OTU)

OCmd_Unsuppress

*0(OTU)

PCmd_Ack

*0(OTU)

PCmd_Inhibit

*0(OTU)

PCmd_Reset

*0(OTU)

PCmd_Uninhibit

*0(OTU)

Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U
Maintenance Command
to Enable alarm
MCmd_Enable
U

(End)

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 28
22/12/2015 08,55,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
P_Alarm: EnableInFalse (False Rung) Handling
============================================================
When EnableIn is FALSE (False Rung), the Input
("Inp") is inverted. This allows the P_Alarm instruction
to be used on a simple Ladder Diagram rung:
XIC (condition) P_Alarm (Alarm)
All processing is identical to the normal Logic
routine, except references to Inp are inverted!
============================================================
CONFIGURATION
============================================================
This rung gets the Alarm Minimum ON Time Configuration
value and sets the corresponding timer preset.
If the Minimum ON Time Configuration results in a timer preset
that is negative or less than 5 seconds, the preset is set to
5 seconds. The bad Config is flagged (Err_Timer).
Bad Config is also flagged if the Cfg_Severity is out of range (valid = 1..4)
##### V2.0-00 2011-09-30: Removed configuration for Min Duration, #####
##### added Configuration for Minimum ON Time. #####
1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists

Alarm output minimum


ON time to be seen
by alarm server
MUL
Multiply
Source A Cfg_AlmMinOnT
5
Source B
1000

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT.PRE.31

1=Error in Config:
see detail Err_ bits
for reason
Sts_Err

Dest Wrk_AlmMinOnT.PRE
5000

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source
5000

1=Error in Config:
Invalid timer preset
(use 0 to 2147483)
Err_Timer

Dest Wrk_AlmMinOnT.PRE
5000
1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
LIM
Limit Test (CIRC)
Low Limit
5

1=Error in Config:
Invalid Severity
(use 1 to 4)
Err_Severity

Test

Cfg_Severity
3
High Limit
0

Cfg_AlmMinOnT

0(MUL)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity

0(LIM)

Err_Severity

*0(OTE)

Err_Timer

*0(OTE)

Sts_Err

*0(OTE)

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Page 29
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_AlmMinOnT.PRE.31 0(XIC)

The Auto Ack time is ALWAYS five seconds, and if the


Minimun alarm ON time is limited to a minimum of five seconds.
##### V2.0-00 2011-09-30: Added rung. #####
Time to clear Ack
bit when Ack not
required
MOV
Move
5000
Source

Dest Wrk_AutoAckT.PRE
5000
Alarm output minimum
ON time to be seen
by alarm server
LES
Less Than (A<B)
Source A Wrk_AlmMinOnT.PRE
5000
Source B
5000

Wrk_AlmMinOnT.PRE

*0(MOV) *0(MUL) *1(MOV) 1(LES)

Wrk_AutoAckT.PRE

*1(MOV)

Alarm output minimum


ON time to be seen
by alarm server
MOV
Move
Source
5000
Dest Wrk_AlmMinOnT.PRE
5000

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 30
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
If this alarm does not exist, set it to its default state (no alarm, acknowleded,
uninhibited, unsuppressed, enabled) and clear any received commands.
Then jump over the remainder of the Logic and return.

##### V2.0-00 2011-09-30: Added reset of timers. #####


1=Alarm has been
1=Alarm has been
Suppressed by
Disabled by
Internal Alarm
Operator (not
Maintanance (will
Inhibit Status
visible on HMI)
not be sent)
Wrk_Inhibited
Suppressed
Disabled
U
U
U

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Reset latched alarm
PCmd_Reset
U

Internal Alarm
Status
Wrk_Alm
U

End
JMP

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Program Command to
Acknowledge alarm
PCmd_Ack
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
U
Program Command to
Uninhibit alarm
PCmd_Uninhibit
U

Operator Command to
Reset latched alarm
OCmd_Reset
U

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Operator Command to
Suppress alarm
OCmd_Suppress
U
Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Maintenance Command
to Enable alarm
MCmd_Enable
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

MCmd_Disable

*2(OTU) *7(OTU) 7(XIC)

MCmd_Enable

*2(OTU) 8(XIC) *8(OTU)

OCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

OCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

OCmd_Suppress

*2(OTU) 5(XIC) *5(OTU)

OCmd_Unsuppress

*2(OTU) *6(OTU) 6(XIC)

PCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

PCmd_Inhibit

*2(OTU) *3(OTU) 3(XIC) 4(XIO)

PCmd_Reset

*2(OTU) *11(OTU) 11(XIC)

PCmd_Uninhibit

*2(OTU) *4(OTU) 4(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Alarm output minimum


ON time to be seen
by alarm server
Wrk_AlmMinOnT
RES

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Page 31
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
Operator Commands (OCmd_xx) and Maintenance Commands
(MCmd_xx) from the HMI and
Program Command (PCmd_xx) from other objects.
NOTE: ALARM COMMANDS ARE ACCEPTED REGARDLESS OF MODE.
This rung receives the Program Alarm Inhibit Command.
If configured for EDGE, the Command is cleared.
Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
3

##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####


1=Clear Program
Program Command to
Commands on receipt
Inhibit alarm (force
0=Leave Set
Alm to 0)
Cfg_PCmdClear
PCmd_Inhibit
U
Internal Alarm
Inhibit Status
Wrk_Inhibited
L

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) 3(XIC) *3(OTU) 4(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

This rung receives the Program Alarm Uninhibit Command (Uninhibit wins over Inhibit)
If configured for LEVEL, Inhibit is cleared if PCmd_Inhibit is cleared.
##### V2.0-01 2012-07-17: Edge/Level behavior and Cfg_PCmdClear. #####
Program Command to
Program Command to
Uninhibit alarm
Uninhibit alarm
PCmd_Uninhibit
PCmd_Uninhibit
U

Program Command to
Inhibit alarm (force
Alm to 0)
PCmd_Inhibit
/

Cfg_PCmdClear

3(XIC) 4(XIO)

PCmd_Inhibit

*2(OTU) 3(XIC) *3(OTU) 4(XIO)

PCmd_Uninhibit

*2(OTU) 4(XIC) *4(OTU)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Internal Alarm
Inhibit Status
Wrk_Inhibited
U

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
/

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 32
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
This rung receives the Operator Alarm Suppress Command
Operator Command to
Suppress alarm
OCmd_Suppress

Operator Command to
Suppress alarm
OCmd_Suppress
U

OCmd_Suppress

*2(OTU) *5(OTU) 5(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIC) 16(XIO)

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
L

This rung receives the Operator Alarm Unsuppress Command (Unsuppress wins over Suppress)
NOTE: Suppressed can also be set/cleared directly by the HMI (FTA&E support).
Operator Command to
Unsuppress alarm
OCmd_Unsuppress

Operator Command to
Unsuppress alarm
OCmd_Unsuppress
U

OCmd_Unsuppress

*2(OTU) *6(OTU) 6(XIC)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIC) 16(XIO)

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
U

This rung receives the Maintenance Alarm Disable Command


Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable

Maintenance Command
to Disable alarm
(force Alm to 0)
MCmd_Disable
U

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

MCmd_Disable

*2(OTU) 7(XIC) *7(OTU)

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
L

This rung receives the Maintenance Alarm Enable Command (Enable wins over Disable)
NOTE: Disabled can also be set/cleared directly by the HMI (FTA&E support).
Maintenance Command
to Enable alarm
MCmd_Enable
8

Disabled

Maintenance Command
to Enable alarm
MCmd_Enable
U

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled
U

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

MCmd_Enable

Page 33
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) 8(XIC) *8(OTU)

This rung receives the Alarm Acknowledge Commands


NOTE: Acknowledge can also be set/cleared directly by the HMI.

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Program Command to
Acknowledge alarm
PCmd_Ack

Program Command to
Acknowledge alarm
PCmd_Ack
U

Operator Command to
Acknowledge alarm
OCmd_Ack

Operator Command to
Acknowledge alarm
OCmd_Ack
U

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

OCmd_Ack

*2(OTU) *9(OTU) 9(XIC)

PCmd_Ack

*2(OTU) 9(XIC) *9(OTU)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

An "Abnormal Condition" is declared if the Input is in its alarm state,


and the alarm is not disabled or inhibited.
NOTE: The alarm (Alm) bit is still set when the alarm is Suppressed, because
it must still be logged by the A&E Server (just not shown to Operator).
NOTE: This rung appears here because the "Abnormal" work bit is
used throughout the logic that follows.

10

Alarm Condition
Input 1=Alarm
Inp
/

NOTE: The "Inp" bit is inverted here (compared to the normal "Logic" routine).
When the rung / EnableIn is false, Input = 0 is the Alarm State.
1=Alarm has been
Disabled by
Internal Alarm
Maintanance (will
not be sent)
Inhibit Status
Wrk_Inhibited
Disabled
/
/

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inp

10(XIO)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Inhibited

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 34
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
This rung receives the Alarm Reset Commands.
If the Alarm Reset Command is received and the Input condition is no longer true,
the Alarm is CLEARED and ACKNOWLEDGED (to match ALMD behavior!!!).
If the Alarm is Disabled or Inhibited, the Alarm is cleared, but if it was
waiting for an Acknowledge, it still needs to be Acked.

11

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/

Operator Command to
Reset latched alarm
OCmd_Reset

Operator Command to
Reset latched alarm
OCmd_Reset
U

Program Command to
Reset latched alarm
PCmd_Reset

Program Command to
Reset latched alarm
PCmd_Reset
U

1=Reset required to
clear Alarm
Cfg_ResetReqd

1=Reset Alarm
requiring reset
Inp_Reset
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIC) 15(XIO) 16(XIC)

Inp_Reset

11(XIC)

OCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

PCmd_Reset

*2(OTU) 11(XIC) *11(OTU)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIC) 16(XIO)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Alarm acknowledged
status: 1=Ack rcvd
Ack
L

Internal Alarm
Status
Wrk_Alm
U

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 35
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
ALARM GENERATION
============================================================
This rung CLEARS the Alarm when the alarm condition clears and its
Minimum On Time has expired, IF Reset is NOT Required.

12

1=Reset required to
clear Alarm
Cfg_ResetReqd
/

NOTE that Reset Required is also bypassed if the Alarm


is Suppressed by the Operator!
Abnormal: Input in
Alarm output minimum
Alarm state, and not
ON time to be seen
disabled or
by alarm server
inhibited
Wrk_AlmMinOnT.TT
Wrk_Abnormal
/
/

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AlmMinOnT.TT

12(XIO)

Internal Alarm
Status
Wrk_Alm
U

If the Alarm Input (Inp) is true (inverted in EnableInFalse) and the alarm is
(or becomes) Enabled and Uninhibited, this rung sets the Alarm (Alm) bit.
The Acknowledge (Ack) bit is cleared when the Alarm initially occurs.
##### V2.0-00 2011-09-30: Removed Min Duration timing function. #####
Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
13

Internal Alarm
Status
Wrk_Alm
/

Alarm acknowledged
status: 1=Ack rcvd
Ack
U
Internal Alarm
Status
Wrk_Alm
L

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 36
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
When the Alarm initially occurs, the Auto Ack timer is started.
If this Alarm is set for "Ack Not Required", it is automatically
Acknowledged after the AutoAck time expires.
This pulsing of the Ack bit OFF then ON allows the "Ack Not Required"
configuration to be used with View 32, View ME and other legacy
alarm systems that don't support optional ack.

14

End
LBL

##### V2.0-00 2011-09-30: Added AutoAck implementation of "Ack Not Required" #####
Alarm Unacknowledged
Time to clear Ack
Alarm acknowledged
ONS for AutoAck
bit when Ack not
status: 1=Ack rcvd
Timer
required
Ack
Wrk_AutoAckONS
TOF
/
ONS
Timer Off Delay
Timer Wrk_AutoAckT
Preset
5000
Accum
0

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) 16(XIO) *16(OTL)

Wrk_AutoAckONS

*14(ONS)

Wrk_AutoAckT

*14(TOF)

EN
DN

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 37
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
OPERATOR COMMAND READIES
============================================================
This Alarm is ready for (requires) an Acknowledgement if the Alarm
is not Acknowledged (an Acknowledge was Required when the alarm occurred).
This Alarm is ready for (requires) a Reset if there is an Alarm, Reset is Required,
and the alarm condition has CLEARED.
If the Alarm is NOT Suppressed, it is ready for Suppress.
If the Alarm IS Suppressed, it is ready for Unsuppress.
If the Alarm is NOT Disabled, it is ready for Disable.
If the Alarm IS Disabled, it is ready for Enable.

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists
15

NOTE: This rung appears before the Values/Status rung because the Rdy_Reset
condition is used to eliminate redundant logic in the rung below for Val_Notify.0.
Time to clear Ack
Ready to receive
Alarm acknowledged
bit when Ack not
OCmd_Ack (enable
status: 1=Ack rcvd
required
button)
Ack
Wrk_AutoAckT.DN
Rdy_Ack
/
/

Internal Alarm
Status
Wrk_Alm

1=Reset required to
clear Alarm
Cfg_ResetReqd

Abnormal: Input in
Alarm state, and not
disabled or
inhibited
Wrk_Abnormal
/

Time to clear Ack


bit when Ack not
required
Wrk_AutoAckT.DN
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
/
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_ResetReqd

11(XIC) 12(XIO) 15(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Rdy_Ack

*15(OTE)

Rdy_Disable

*15(OTE)

Rdy_Enable

*15(OTE)

Ready to receive
OCmd_Suppress
(enable button)
Rdy_Suppress

Ready to receive
OCmd_Unsuppress
(enable button)
Rdy_Unsuppress

Ready to receive
MCmd_Disable (enable
button)
Rdy_Disable

Ready to receive
MCmd_Enable (enable
button)
Rdy_Enable

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm
Rdy_Reset

*15(OTE) 16(XIC)

Rdy_Suppress

*15(OTE)

Rdy_Unsuppress

*15(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIC) 15(XIO) 16(XIO) 16(XIC)

Wrk_Abnormal

*10(OTE) 11(XIO) 12(XIO) 13(XIC) 15(XIO)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) 13(XIO) *13(OTL) 15(XIC) 16(XIC)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

Page 38
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 39
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)
============================================================
VALUE / STATUS GENERATION
============================================================
This rung copies the internal working status to public Values, Status, Alarm and Ack bits.
Note that internal working bits are used so that outside objects cannot manipulate
the state of this object by setting/clearing its Status and Alarm bits.
Public Status is generated for:
Alarm (with minimum ON time to be seen by polling)
Notify Level (color, blink)
Alarm Inhibited
(Ack, Suppressed and Disabled can be set/cleared by the HMI directly.)
"AutoAck" (Ack not required with timing) is handled here as well.
NOTE that the alarm bell icon will blink, even though the alarm is Acknowledged,
if an Alarm Reset is required (to get the Operator's attention).

16

##### V2.0-00 2011-09-30: Added Sts_AlmInh to support "Inhibited" breadcrumb on HMI. #####
##### Changed Minimum On Time to be configurable. Changed Ack logic to use Auto Ack timer #####
##### and to NOT Ack the alarm on Program Inhibit. #####
Time to clear Ack
bit when Ack not
1=Acknowledge
Alarm acknowledged
required
required for Alarm
status: 1=Ack rcvd
Wrk_AutoAckT.DN
Cfg_AckReqd
Ack
/
/
L
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed
1=Alarm has been
Disabled by
Maintanance (will
not be sent)
Disabled
Current Alarm Level
and Acknowledgement
(enumeration)
Val_Notify.0

Alarm acknowledged
status: 1=Ack rcvd
Ack
/
Ready to receive
OCmd_Reset (enable
button)
Rdy_Reset

Internal Alarm
Status
Wrk_Alm

Alarm output 1=In


Alarm
Alm

1=Alarm has been


Suppressed by
Operator (not
visible on HMI)
Suppressed
/

Current Alarm Level


and Acknowledgement

Alarm output minimum


ON time to be seen
by alarm server
TON
Timer On Delay
Timer Wrk_AlmMinOnT
Preset
5000
Accum
0

EN
DN

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.0

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.1

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.1

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.2

1=Info Only;
2=Warning; 3=Process
Exception; 4=Fault
Cfg_Severity.2

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.3

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

Current Alarm Level


and Acknowledgement

RSLogix 5000

P_Alarm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_Alarm <definition>

Page 40
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Perform Alarm
processing, but Invertand
Alarm
Input ("Inp") for useand
on LD
rung (EnableIn False)
and Acknowledgement
Acknowledgement
Acknowledgement
and Acknowledgement
(enumeration)
(enumeration)
(enumeration)
(enumeration)
Val_Notify.4
Val_Notify.5
Val_Notify.6
Val_Notify.7
U
U
U
U
1=Alarm has been
Inhibited by Program
(will not be sent)
Inhibited

Internal Alarm
Inhibit Status
Wrk_Inhibited

1=Alarm configured
to exist, 0=Does not
exist, don't scan
Cfg_Exists

1=Alarm has been


Disabled by
Maintanance (will
not be sent)
Disabled

1=Alarm has been


inhibited, disabled
or suppressed,
display "I" icon
Sts_AlmInh

1=Alarm has been


Inhibited by Program
(will not be sent)
Inhibited
1=Alarm has been
Suppressed by
Operator (not
visible on HMI)
Suppressed

Ack

*2(OTL) *9(OTL) *11(OTL) *13(OTU) 14(XIO) 15(XIO) *16(OTL) 16(XIO)

Alm

*16(OTE)

Cfg_AckReqd

16(XIO)

Cfg_Exists

0(XIC) 2(XIO) 15(XIC) 16(XIC)

Cfg_Severity.0

16(XIC)

Cfg_Severity.1

16(XIC)

Cfg_Severity.2

16(XIC)

Disabled

*2(OTU) *7(OTL) *8(OTU) 10(XIO) 11(XIC) 15(XIO) 15(XIC) 16(XIC)

Inhibited

16(XIC) *16(OTE)

Rdy_Reset

*15(OTE) 16(XIC)

Sts_AlmInh

*16(OTE)

Suppressed

*2(OTU) *5(OTL) *6(OTU) 11(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC)

Val_Notify.0

*16(OTE)

Val_Notify.1

*16(OTE)

Val_Notify.2

*16(OTE)

Val_Notify.3

*16(OTE)

Val_Notify.4

*16(OTU)

Val_Notify.5

*16(OTU)

Val_Notify.6

*16(OTU)

Val_Notify.7

*16(OTU)

Wrk_Alm

*2(OTU) *11(OTU) *12(OTU) *13(OTL) 13(XIO) 15(XIC) 16(XIC)

Wrk_AlmMinOnT

*2(RES) *16(TON)

Wrk_AutoAckT.DN

2(XIO) 9(XIO) 11(XIO) 15(XIO) 16(XIO)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Alarm

Wrk_Inhibited

Page 41
22/12/2015 08,55,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*2(OTU) *3(OTL) *4(OTU) 10(XIO) 16(XIC)

(End)

RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Page 1
22/12/2015 08,56,17
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_AOut v2.0 03 Release


Rockwell Automation

Analog Output
Available Languages
Relay Ladder

Function Block

Structured Text
P_AOut();
Parameters
Required
X

Name
P_AOut

Data Type
P_AOut

Usage
InOut

EnableIn
EnableOut
Inp_Tieback

BOOL
BOOL
REAL

Input
Output
Input

Inp_IntlkOK

BOOL

Input

Inp_NBIntlkOK

BOOL

Input

Inp_IOFault

BOOL

Input

Inp_Sim

BOOL

Input

Description
Analog
Output
Tieback CV (in raw, Out_CV
units) used in Hand or Init
1=Interlocks
OK, Analog
Output can be
set
1=Non-Bypassable Interlocks
OK, Analog Output can be set
Input
Communication
Status 0=OK,
1=fail
1=I/O are being simulated, set output
CV to 0, ignore I/O Fault

RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Inp_Hand

BOOL

Input

Inp_Ovrd

BOOL

Input

Inp_OvrdCV

REAL

Input

Inp_Reset

BOOL

Input

Cfg_ShedHold

BOOL

Input

Cfg_SkipRoCLim

BOOL

Input

Cfg_SetTrack

BOOL

Input

Cfg_SetTrackOvrdHand

BOOL

Input

Cfg_HasIntlkObj

BOOL

Input

Cfg_PCmdClear

BOOL

Input

Cfg_ProgDefault

BOOL

Input

Cfg_OvrdIntlk

BOOL

Input

Cfg_ShedOnIOFault

BOOL

Input

Cfg_HasIntlkTripAlm

BOOL

Input

Cfg_HasIOFaultAlm

BOOL

Input

Cfg_IntlkTripResetReqd

BOOL

Input

Cfg_IOFaultResetReqd

BOOL

Input

Cfg_IntlkTripAckReqd

BOOL

Input

Cfg_IOFaultAckReqd

BOOL

Input

Cfg_IntlkTripSeverity

SINT

Input

Cfg_IOFaultSeverity

SINT

Input

Cfg_MinCV

REAL

Input

Page 2
22/12/2015 08,56,17
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Select Hand
(hardwired)
Control Strategy
1=Select
Override
control
strategy
CV target
in
Override
Mode
1=Reset
latched
Alarms
1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
1=Skip RoC Limiting
in Intlk, Maint, Ovrd
modes
1=PSets track OSets in Oper, OSets track
PSets in Prog, 0=no tracking
1=Prog/Oper
Settings track
Override/Hand CV
1=Tells HMI a P_Intlk
is connected to
Inp_Intlk
1=Clear Program
Commands on receipt
0=Leave Set
Default Mode: 1=Program Mode if no requests;
0=Operator Mode if no requests
1=Override ignores Bypassable
Intlk; 0=always use Intlk
1=Stop Motor and Alarm on I/O Fault;
0=Alarm only on I/O Fault
1=Interlock Trip Alarm
exists and will be
checked
1=I/O Fault Alarm
exists and will be
checked
1=Reset required to
clear Interlock Trip
Alarm
1=Reset
required to
clear I/O Fault
Alarm
1=Acknowledge
required for
Interlock Trip Alarm
1=Acknowledge
required for I/O
Fault Alarm
Interlock Trip Alarm Severity
1=info, 2=warn, 3=excep, 4=fault
I/O Fault Alarm Severity
1=info, 2=warn, 3=excep,
4=fault
Minimum CV
(in EU,
for
limiting)

RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Cfg_MaxCV

REAL

Input

Cfg_MaxCVRoCInc

REAL

Input

Cfg_MaxCVRoCDec

REAL

Input

Cfg_IntlkCV

REAL

Input

Cfg_CVEUMin

REAL

Input

Cfg_CVEUMax

REAL

Input

Cfg_CVRawMin

REAL

Input

Cfg_CVRawMax

REAL

Input

Cfg_MaxInactiveCV

REAL

Input

PSet_CV

REAL

Input

PSet_CVRoCLimInc

REAL

Input

PSet_CVRoCLimDec

REAL

Input

PSet_Owner

DINT

Input

OSet_CV

REAL

Input

OSet_CVRoCLimInc

REAL

Input

OSet_CVRoCLimDec

REAL

Input

PCmd_Acq

BOOL

Input

PCmd_Rel

BOOL

Input

PCmd_Lock

BOOL

Input

PCmd_Unlock

BOOL

Input

PCmd_Reset

BOOL

Input

PCmd_IntlkTripAck

BOOL

Input

PCmd_IntlkTripInhibit

BOOL

Input

PCmd_IntlkTripUninhibit

BOOL

Input

Page 3
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Maximum CV
(in EU,
for
limiting)
Maximum allowed CV Rate of Change
(Increasing) Setting (EU/sec)
Maximum allowed CV Rate of Change
(Decreasing) Setting (EU/sec)
CV Target when
interlocked (if not
Cfg_ShedHold)
CV Minimum in
Engineering Units
(for scaling)
CV Maximum in
Engineering Units
(for scaling)
CV Minimum in I/O
(raw) Units (for
scaling)
CV Maximum in I/O
(raw) Units (for
scaling)
When Val_CVOut is greater than this value (in CV
EU) set Sts_Active (for HMI)
Program Setting of Controlled
Variable (output) (in EU)
Program Setting of CV Rate of Change
Limit, Increasing, (in EU/sec)
Program Setting of CV Rate of Change
Limit, Decreasing, (in EU/sec)
Program Owner Request ID
(non-zero) or Release
(zero)
Operator Setting of Controlled
Variable (output) (in EU)
Operator Setting of CV Rate of Change
Limit, Increasing, (in EU/sec)
Operator Setting of CV Rate of Change
Limit, Decreasing, (in EU/sec)
Program Command to
Acquire ownership (Oper
to Prog)
Program Command to
Release ownership (Prog
to Oper)
Program
Command to
Lock Mode
in Prog
Program
Command to
Unlock
Mode
Program Command to
Reset Alarms
requiring Reset
Program Command to
Acknowledge Interlock
Trip Alarm
Program Command to
Inhibit Interlock
Trip Alarm
Program Command to
Uninhibit Interlock
Trip Alarm

RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

PCmd_IOFaultAck

BOOL

Input

PCmd_IOFaultInhibit

BOOL

Input

PCmd_IOFaultUninhibit

BOOL

Input

OCmd_Bypass

BOOL

Input

OCmd_Check

BOOL

Input

MCmd_Disable

BOOL

Input

MCmd_Enable

BOOL

Input

OCmd_Reset

BOOL

Input

OCmd_ResetAckAll

BOOL

Input

Out_CV

REAL

Output

Val_CVSet

REAL

Output

Val_CVOut

REAL

Output

Val_CVRoCLimInc

REAL

Output

Val_CVRoCLimDec

REAL

Output

Val_CVEUMin

REAL

Output

Val_CVEUMax

REAL

Output

Val_Sts

SINT

Output

Val_Fault

SINT

Output

Val_Mode

DINT

Output

Val_Owner

DINT

Output

Val_Notify

SINT

Output

Sts_Ramping

BOOL

Output

Sts_Clamped

BOOL

Output

Sts_SkipRoCLim

BOOL

Output

Sts_Active

BOOL

Output

Sts_Available

BOOL

Output

Page 4
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program Command to
Acknowledge I/O
Fault Alarm
Program Command
to Inhibit I/O
Fault Alarm
Program Command to
Uninhibit I/O
Fault Alarm
Operator Command to Bypass
all Bypassable Interlocks
Operator Command to Check
(not bypass) all Interlocks
Maintenance
Command to Disable
Analog Output
Maintenance
Command to Enable
Analog Output
Operator Command to Reset
all Alarms requiring Reset
Operator Command to Reset all Alarms
and latched Shed conditions
CV Output
in Raw
(I/O Card)
Units
Value of selected CV Setting
(before rate limiting, in EU)
Value of CV Output
(after rate limiting)
(in EU)
Value of CV Rate of Change
Limit, Increasing, (in EU/sec)
Value of CV Rate of Change
Limit, Decreasing, (in EU/sec)
Minimum of scaled range = MIN
(Cfg_CVEUMin, Cfg_CVEUMax)
Maximum of scaled range = MAX
(Cfg_CVEUMin, Cfg_CVEUMax)
0=AtTgt 1=RampDn 2=RampUp
3=ClampMin 4=ClampMax 33=Disa
Device Fault Status
0=none, 32=I/OFault,
34=CfgErr
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P
Def), 8=P (P Def), 9=O (O def)
Current
Object
Owner ID
(0=not
owned)
Current Alarm Level and
Acknowledgement
(enumeration)
1=CV is
ramping to
target
1=CV Set is
clamped at
CVMin or
CVMax
1=Rate of Change Limiting was skipped this scan
(Maint, Ovrd, Intlk, Hand)
1=CV is greater than Cfg_MaxInactiveCV, show
graphic symbol as "active"
1=Analog Output available for
control by automation (Prog)
RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Sts_Bypass

BOOL

Output

Sts_BypActive

BOOL

Output

Sts_Disabled

BOOL

Output

Sts_NotRdy

BOOL

Output

Sts_MaintByp

BOOL

Output

Sts_AlmInh

BOOL

Output

Sts_Err

BOOL

Output

Err_Limit

BOOL

Output

Err_EU

BOOL

Output

Err_Raw

BOOL

Output

Err_Alarm

BOOL

Output

Sts_Hand

BOOL

Output

Sts_Maint

BOOL

Output

Sts_Ovrd

BOOL

Output

Sts_Prog

BOOL

Output

Sts_Oper

BOOL

Output

Sts_ProgOperLock

BOOL

Output

Sts_NoMode

BOOL

Output

Sts_IntlkTrip

BOOL

Output

Alm_IntlkTrip

BOOL

Output

Ack_IntlkTrip

BOOL

Output

Page 5
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Bypassab
le
Interlocks
are
Bypassed
1=Bypassing Active
(Bypassed or
Maintenance)
1=Output
is
Disabled
1=Device
is Not
Ready to
be
operated
1=Device has a
Maintenance Bypass
function active
1=One or more Alarms
Inhibited, Disabled or
Suppressed
1=Error in Config:
see detail bits for
reason
1=Error in
Config: CV
Limits
swapped
1=Error in
Config: Scaled
CV EU Min = Max
1=Error in Config:
Raw Output Scaling
Min = Max
1=Error in Config: Alarm
Throttle Time or
Severity
1=Mode is Hand
(supersedes Maint, Ovrd,
Prog, Oper)
1=Mode is Maintenance
(supersedes Ovrd, Prog,
Oper)
1=Mode is
Override
(supersedes
Prog, Oper)
1=Mode is
Program
(auto)
1=Mode is
Operator
(manual)
1=Program or
Operator has
requested Mode Lock
1=NoMode (Disabled
because EnableIn is
False)
1=Status: CV held or forced by
interlock NOT OK (1-shot)
1=Alarm: CV held or
forced by interlock
NOT OK
1=Interlock Trip
Alarm has been
acknowledged
RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Sts_IntlkTripDisabled

BOOL

Output

Sts_IntlkTripInhibited

BOOL

Output

Sts_IntlkTripSuppressed

BOOL

Output

Sts_IOFault

BOOL

Output

Alm_IOFault

BOOL

Output

Ack_IOFault

BOOL

Output

Sts_IOFaultDisabled

BOOL

Output

Sts_IOFaultInhibited

BOOL

Output

Sts_IOFaultSuppressed

BOOL

Output

Rdy_Bypass

BOOL

Output

Rdy_Check

BOOL

Output

Rdy_Disable

BOOL

Output

Rdy_Enable

BOOL

Output

Rdy_Reset

BOOL

Output

Rdy_ResetAckAll

BOOL

Output

Rdy_CV

BOOL

Output

Rdy_CVRoCLimInc

BOOL

Output

Rdy_CVRoCLimDec

BOOL

Output

P_AOut

BOOL

Output

Page 6
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Interlock Trip Alarm is
Disabled (not saved or sent)
1=Interlock Trip Alarm
has been inhibited by
logic
1=Interlock Trip Alarm has
been suppressed (logged only)
1=I/O
Fault
Status
(0=OK,
1=Bad)
1=I/O
Fault
Alarm
1=I/O Fault
Alarm has
been
acknowledged
1=I/O Fault Alarm is
Disabled (not saved or
sent)
1=I/O Fault Alarm
has been inhibited
by logic
1=I/O Fault Alarm has
been suppressed (logged
only)
1=Ready to receive
OCmd_Bypass (enables HMI
button)
1=Ready to receive
OCmd_Check (enables HMI
button)
1=Ready to receive
MCmd_Disable (enables HMI
button)
1=Ready to receive
MCmd_Enable (enables HMI
button)
1=At least
one Alarm
requires
Reset
1=At least one Alarm or latched Shed
condition requires Reset or Ack
1=Ready to receive OSet_CV
(enables data entry field)
1=Ready to receive OSet_CVRoCLimInc
(enables data entry field)
1=Ready to receive OSet_CVRoCLimDec
(enables data entry field)
Unique Parameter
Name for auto discovery

Extended Description

RSLogix 5000

P_AOut - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Page 7
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

This Instruction controls an Analog Output and provides:


*
*
*
*
*
*
*
*
*
*

Program and Operator entry of target CV in Engineering Units


Ramping of Output CV to target at specified Rate of Change (EU/sec)
Clamping of Output CV at configured minimum and maximum limits
Scaling of Output CV from Engineering Units to Raw (I/O card) Units
Monitoring of Interlock conditions which cause output to shed
Configurable shed to HOLD or to configured value
Monitoring of I/O communication faults
Alarms for Interlock Trip, I/O Fault
Operation in Hand, Maintenance, Override, Program and Operator Modes
"Available" status for use by automation logic to know whether Output
can be controlled by other objects.

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Disabled is asserted, Output OFF (zero), Alarms disabled
Normal Scan: control Analog Output
Clear Ownership. clear "lurking" Commands

Revision v2.0 03 Release Notes


Edge/Level behavior for P_Alarm 2.0-01. Buffering of Val_*.
Change History
Created:
Created By:
Edited:
Edited By:

27/03/2008 01,50,50
Not Available
18/03/2013 11,23,08
PLANTPAX\Library

Signature
ID:
Timestamp:

DB0820C0
2013-03-18T17:23:08.911Z

Cross Reference
Container
Equipos
Equipos

Routine
Blk_Valvulas
Blk_Valvulas

Location
Sheet 4, G2
Sheet 6, D1

Tag
P_AOut_V320
P_AOut_V360

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>
Name
Default
1
Ack_IntlkTrip
1=Interlock Trip Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Ack
Base Tag:
IntlkTrip.Ack
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

Page 8
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_AOut

1
Ack_IOFault
1=I/O Fault Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Ack
Base Tag:
IOFault.Ack
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

0
Alm_IntlkTrip
1=Alarm: CV held or forced by interlock NOT OK
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Alm
Base Tag:
IntlkTrip.Alm
Constant
No
External Access:
Read Only
Alm_IntlkTrip - P_AOut/EnableInFalse - *4(OTU)
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

0
Alm_IOFault
1=I/O Fault Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Alm
Base Tag:
IOFault.Alm
Constant
No
External Access:
Read Only
Alm_IOFault - P_AOut/EnableInFalse - *4(OTU)
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

100.0
REAL
Cfg_CVEUMax
CV Maximum in Engineering Units (for scaling)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_CVEUMax - P_AOut/EnableInFalse - 2(GEQ), 2(LES), 2(MOV), 3(EQU), 4(CPT)
Cfg_CVEUMax - P_AOut/Logic - 24(CPT), 3(GEQ), 3(LES), 3(MOV), 31(CPT), 6(EQU)

P_AOut

0.0
REAL
Cfg_CVEUMin
CV Minimum in Engineering Units (for scaling)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_CVEUMin - P_AOut/EnableInFalse - 2(GEQ), 2(LES), 2(MOV), 3(EQU), 4(CPT)
Cfg_CVEUMin - P_AOut/Logic - 24(CPT), 3(GEQ), 3(LES), 3(MOV), 31(CPT), 6(EQU)

P_AOut

100.0
Cfg_CVRawMax
CV Maximum in I/O (raw) Units (for scaling)

P_AOut

REAL

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 9
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_CVRawMax (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_CVRawMax - P_AOut/EnableInFalse - 3(EQU), 4(CPT)
Cfg_CVRawMax - P_AOut/Logic - 24(CPT), 31(CPT), 6(EQU)
0.0
Cfg_CVRawMin
CV Minimum in I/O (raw) Units (for scaling)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_CVRawMin - P_AOut/EnableInFalse - 3(EQU), 4(CPT)
Cfg_CVRawMin - P_AOut/Logic - 24(CPT), 31(CPT), 6(EQU)

REAL

P_AOut

0
Cfg_HasIntlkObj
1=Tells HMI a P_Intlk is connected to Inp_Intlk
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_AOut

1
Cfg_HasIntlkTripAlm
1=Interlock Trip Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_Exists
Base Tag:
IntlkTrip.Cfg_Exists
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

1
Cfg_HasIOFaultAlm
1=I/O Fault Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_Exists
Base Tag:
IOFault.Cfg_Exists
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

0.0
REAL
Cfg_IntlkCV
CV Target when interlocked (if not Cfg_ShedHold)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_IntlkCV - P_AOut/EnableInFalse - 4(MOV)
Cfg_IntlkCV - P_AOut/Logic - 23(MOV), 25(MOV), 27(MOV), 31(MOV)

P_AOut

1
Cfg_IntlkTripAckReqd
1=Acknowledge required for Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_AckReqd
Base Tag:
IntlkTrip.Cfg_AckReqd
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

BOOL

P_AOut

Cfg_IntlkTripResetReqd

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 10
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_IntlkTripResetReqd (Continued)
1=Reset required to clear Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_ResetReqd
Base Tag:
IntlkTrip.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)
3
Cfg_IntlkTripSeverity
Interlock Trip Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_Severity
Base Tag:
IntlkTrip.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_AOut

1
Cfg_IOFaultAckReqd
1=Acknowledge required for I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_AckReqd
Base Tag:
IOFault.Cfg_AckReqd
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

0
Cfg_IOFaultResetReqd
1=Reset required to clear I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_ResetReqd
Base Tag:
IOFault.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

3
Cfg_IOFaultSeverity
I/O Fault Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_Severity
Base Tag:
IOFault.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_AOut

100.0
Cfg_MaxCV
Maximum CV (in EU, for limiting)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_MaxCV - P_AOut/EnableInFalse - 3(LES)
Cfg_MaxCV - P_AOut/Logic - 34(EQU), 6(LES), 7(GRT), 7(MOV)

REAL

P_AOut

10.0
Cfg_MaxCVRoCDec
Maximum allowed CV Rate of Change (Decreasing) Setting (EU/sec)
Usage:
Input Parameter
Required:
No
Visible:
No

REAL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 11
22/12/2015 08,56,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_MaxCVRoCDec (Continued)
External Access:
Read/Write
Cfg_MaxCVRoCDec - P_AOut/Logic - *5(MOV), 12(GRT), 5(GRT), 5(LES), 8(GRT), 8(MOV)
10.0
REAL
Cfg_MaxCVRoCInc
Maximum allowed CV Rate of Change (Increasing) Setting (EU/sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_MaxCVRoCInc - P_AOut/EnableInFalse - 3(LEQ)
Cfg_MaxCVRoCInc - P_AOut/Logic - *4(MOV), 12(GRT), 4(GRT), 4(LES), 8(GRT), 8(MOV)

P_AOut

0.0
REAL
Cfg_MaxInactiveCV
When Val_CVOut is greater than this value (in CV EU) set Sts_Active (for HMI)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_MaxInactiveCV - P_AOut/Logic - 33(GRT)

P_AOut

0.0
Cfg_MinCV
Minimum CV (in EU, for limiting)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_MinCV - P_AOut/EnableInFalse - 3(LES)
Cfg_MinCV - P_AOut/Logic - 34(EQU), 6(LES), 7(LES), 7(MOV)

REAL

P_AOut

0
Cfg_OvrdIntlk
1=Override ignores Bypassable Intlk; 0=always use Intlk
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OvrdIntlk - P_AOut/Logic - 15(XIC)

BOOL

P_AOut

1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_PCmdClear
Base Tag:
Mode.Cfg_PCmdClear
Constant
No
External Access:
Read/Write
Cfg_PCmdClear - P_AOut/EnableInFalse - 0(XIC), 0(XIO)
Cfg_PCmdClear - P_AOut/Logic - 22(XIC), 35(XIC)
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

0
BOOL
Cfg_ProgDefault
Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_ProgDefault
Base Tag:
Mode.Cfg_ProgDefault
Constant
No
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

P_AOut

1
Cfg_SetTrack
1=PSets track OSets in Oper, OSets track PSets in Prog, 0=no tracking
Usage:
Input Parameter

P_AOut

BOOL

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 12
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_SetTrack (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SetTrack - P_AOut/Logic - 11(XIO), 12(XIO), 32(XIC)
0
Cfg_SetTrackOvrdHand
1=Prog/Oper Settings track Override/Hand CV
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SetTrackOvrdHand - P_AOut/Logic - 11(XIO), 32(XIC)

BOOL

P_AOut

0
Cfg_ShedHold
1=Hold Output on Interlock, 0=Go to Cfg_IntlkCV
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedHold - P_AOut/Logic - 23(XIC), 23(XIO), 27(XIC), 27(XIO)

BOOL

P_AOut

1
Cfg_ShedOnIOFault
1=Stop Motor and Alarm on I/O Fault; 0=Alarm only on I/O Fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnIOFault - P_AOut/Logic - 9(XIC)

BOOL

P_AOut

0
Cfg_SkipRoCLim
1=Skip RoC Limiting in Intlk, Maint, Ovrd modes
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SkipRoCLim - P_AOut/Logic - 29(XIC)

BOOL

P_AOut

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_AOut

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_AOut

0
Err_Alarm
1=Error in Config: Alarm Throttle Time or Severity
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Alarm - P_AOut/EnableInFalse - *3(OTE)
Err_Alarm - P_AOut/Logic - *6(OTE)

BOOL

P_AOut

0
Err_EU
1=Error in Config: Scaled CV EU Min = Max
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 13
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Err_EU (Continued)
Err_EU - P_AOut/EnableInFalse - *3(OTE)
Err_EU - P_AOut/Logic - *6(OTE), 31(XIC), 31(XIO)
0
Err_Limit
1=Error in Config: CV Limits swapped
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Limit - P_AOut/EnableInFalse - *3(OTE)
Err_Limit - P_AOut/Logic - *6(OTE)

BOOL

P_AOut

0
Err_Raw
1=Error in Config: Raw Output Scaling Min = Max
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Raw - P_AOut/EnableInFalse - *3(OTE)
Err_Raw - P_AOut/Logic - *6(OTE), 31(XIC), 31(XIO)

BOOL

P_AOut

0
Inp_Hand
1=Select Hand (hardwired) Control Strategy
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Inp_Hand
Base Tag:
Mode.Inp_Hand
Constant
No
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

1
Inp_IntlkOK
1=Interlocks OK, Analog Output can be set
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_IntlkOK - P_AOut/Logic - 23(XIO), 29(XIO), 9(XIO)

BOOL

P_AOut

0
Inp_IOFault
Input Communication Status 0=OK, 1=fail
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_IOFault - P_AOut/Logic - 39(XIO), 9(XIC)

BOOL

P_AOut

1
Inp_NBIntlkOK
1=Non-Bypassable Interlocks OK, Analog Output can be set
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_NBIntlkOK - P_AOut/Logic - 23(XIO), 29(XIO), 9(XIO)

BOOL

P_AOut

BOOL

P_AOut

Inp_Ovrd
1=Select Override control strategy
Usage:
Required:
Visible:
AliasFor:
Base Tag:
Constant
External Access:

0
Input Parameter
No
Yes
Mode.Inp_Ovrd
Mode.Inp_Ovrd
No
Read/Write

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 14
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Ovrd (Continued)
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
0.0
Inp_OvrdCV
CV target in Override Mode
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_OvrdCV - P_AOut/Logic - 7(MOV)

REAL

P_AOut

0
Inp_Reset
1=Reset latched Alarms
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Reset - P_AOut/Logic - 22(XIC)

BOOL

P_AOut

0
Inp_Sim
1=I/O are being simulated, set output CV to 0, ignore I/O Fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Sim - P_AOut/EnableInFalse - 4(XIC), 4(XIO)
Inp_Sim - P_AOut/Logic - 31(XIC), 31(XIO), 9(XIO)

BOOL

P_AOut

0.0
Inp_Tieback
Tieback CV (in raw, Out_CV units) used in Hand or Init
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Tieback - P_AOut/Logic - 24(CPT)

REAL

P_AOut

0
MCmd_Disable
Maintenance Command to Disable Analog Output
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Disable - P_AOut/EnableInFalse - *6(OTU)
MCmd_Disable - P_AOut/Logic - *18(OTU), 18(XIC)
MCmd_Disable - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

0
MCmd_Enable
Maintenance Command to Enable Analog Output
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Enable - P_AOut/EnableInFalse - *6(OTU)
MCmd_Enable - P_AOut/Logic - *19(OTU), 19(XIC)
MCmd_Enable - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

0
OCmd_Bypass
Operator Command to Bypass all Bypassable Interlocks
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Bypass - P_AOut/EnableInFalse - *6(OTU)
OCmd_Bypass - P_AOut/Logic - *13(OTU), 13(XIC)
OCmd_Bypass - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 15
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
OCmd_Check
Operator Command to Check (not bypass) all Interlocks
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Check - P_AOut/EnableInFalse - *6(OTU)
OCmd_Check - P_AOut/Logic - *14(OTU), 14(XIC)
OCmd_Check - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

0
OCmd_Reset
Operator Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_AOut/EnableInFalse - *6(OTU)
OCmd_Reset - P_AOut/Logic - *22(OTU), 22(XIC)
OCmd_Reset - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

0
OCmd_ResetAckAll
Operator Command to Reset all Alarms and latched Shed conditions
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ResetAckAll - P_AOut/EnableInFalse - *6(OTU)
OCmd_ResetAckAll - P_AOut/Logic - *22(OTU), 22(XIC)
OCmd_ResetAckAll - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

0.0
REAL
OSet_CV
Operator Setting of Controlled Variable (output) (in EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_CV - P_AOut/Logic - *32(MOV), *7(MOV), 7(GRT), 7(LES), 7(MOV)

P_AOut

0.0
OSet_CVRoCLimDec
Operator Setting of CV Rate of Change Limit, Decreasing, (in EU/sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_CVRoCLimDec - P_AOut/Logic - *32(MOV), 7(MOV)

REAL

P_AOut

0.0
OSet_CVRoCLimInc
Operator Setting of CV Rate of Change Limit, Increasing, (in EU/sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_CVRoCLimInc - P_AOut/Logic - *32(MOV), 7(MOV)

REAL

P_AOut

0.0
Out_CV
CV Output in Raw (I/O Card) Units
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_CV - P_AOut/EnableInFalse - *4(CLR), *4(CPT)
Out_CV - P_AOut/Logic - *31(CLR), *31(CPT), *31(MOV)

REAL

P_AOut

0
PCmd_Acq
Program Command to Acquire ownership (Oper to Prog)
Usage:
Input Parameter
Required:
No

BOOL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 16
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_Acq (Continued)
Visible:
No
AliasFor:
Mode.PCmd_Acq
Base Tag:
Mode.PCmd_Acq
Constant
No
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
0
PCmd_IntlkTripAck
Program Command to Acknowledge Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Ack
Base Tag:
IntlkTrip.PCmd_Ack
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)
IntlkTrip.PCmd_Ack - P_AOut/Logic - *22(OTL)

BOOL

P_AOut

0
PCmd_IntlkTripInhibit
Program Command to Inhibit Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Inhibit
Base Tag:
IntlkTrip.PCmd_Inhibit
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

0
PCmd_IntlkTripUninhibit
Program Command to Uninhibit Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Uninhibit
Base Tag:
IntlkTrip.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

0
PCmd_IOFaultAck
Program Command to Acknowledge I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Ack
Base Tag:
IOFault.PCmd_Ack
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)
IOFault.PCmd_Ack - P_AOut/Logic - *22(OTL)

BOOL

P_AOut

0
PCmd_IOFaultInhibit
Program Command to Inhibit I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Inhibit
Base Tag:
IOFault.PCmd_Inhibit
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

BOOL

P_AOut

PCmd_IOFaultUninhibit

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 17
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_IOFaultUninhibit (Continued)
Program Command to Uninhibit I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Uninhibit
Base Tag:
IOFault.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)
0
PCmd_Lock
Program Command to Lock Mode in Prog
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Lock
Base Tag:
Mode.PCmd_Lock
Constant
No
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

0
PCmd_Rel
Program Command to Release ownership (Prog to Oper)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Rel
Base Tag:
Mode.PCmd_Rel
Constant
No
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

0
PCmd_Reset
Program Command to Reset Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_AOut/EnableInFalse - *6(OTU)
PCmd_Reset - P_AOut/Logic - *22(OTU), 22(XIC)
PCmd_Reset - P_AOut/Prescan - *1(OTU)

BOOL

P_AOut

0
PCmd_Unlock
Program Command to Unlock Mode
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Unlock
Base Tag:
Mode.PCmd_Unlock
Constant
No
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

0.0
REAL
PSet_CV
Program Setting of Controlled Variable (output) (in EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_CV - P_AOut/Logic - *32(MOV), *7(MOV), 7(GRT), 7(LES), 7(MOV)

P_AOut

0.0
PSet_CVRoCLimDec
Program Setting of CV Rate of Change Limit, Decreasing, (in EU/sec)

P_AOut

REAL

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 18
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PSet_CVRoCLimDec (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_CVRoCLimDec - P_AOut/Logic - *32(MOV), 7(MOV)
0.0
PSet_CVRoCLimInc
Program Setting of CV Rate of Change Limit, Increasing, (in EU/sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_CVRoCLimInc - P_AOut/Logic - *32(MOV), 7(MOV)

REAL

P_AOut

0
PSet_Owner
Program Owner Request ID (non-zero) or Release (zero)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_Owner - P_AOut/EnableInFalse - 1(EQU), 1(MOV), 1(NEQ)
PSet_Owner - P_AOut/Logic - 2(EQU), 2(MOV), 2(NEQ)
PSet_Owner - P_AOut/Prescan - *0(CLR)

DINT

P_AOut

0
P_AOut
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_AOut

0
Rdy_Bypass
1=Ready to receive OCmd_Bypass (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Bypass - P_AOut/EnableInFalse - *7(OTU)
Rdy_Bypass - P_AOut/Logic - *17(OTE)

BOOL

P_AOut

0
Rdy_Check
1=Ready to receive OCmd_Check (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Check - P_AOut/EnableInFalse - *7(OTU)
Rdy_Check - P_AOut/Logic - *17(OTE)

BOOL

P_AOut

0
Rdy_CV
1=Ready to receive OSet_CV (enables data entry field)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_CV - P_AOut/EnableInFalse - *7(OTU)
Rdy_CV - P_AOut/Logic - *11(OTE)

BOOL

P_AOut

0
Rdy_CVRoCLimDec
1=Ready to receive OSet_CVRoCLimDec (enables data entry field)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_CVRoCLimDec - P_AOut/EnableInFalse - *7(OTU)
Rdy_CVRoCLimDec - P_AOut/Logic - *12(OTE)

BOOL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 19
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Rdy_CVRoCLimInc
1=Ready to receive OSet_CVRoCLimInc (enables data entry field)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_CVRoCLimInc - P_AOut/EnableInFalse - *7(OTU)
Rdy_CVRoCLimInc - P_AOut/Logic - *12(OTE)

BOOL

P_AOut

0
Rdy_Disable
1=Ready to receive MCmd_Disable (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Disable - P_AOut/EnableInFalse - *7(OTU)
Rdy_Disable - P_AOut/Logic - *21(OTE)

BOOL

P_AOut

0
Rdy_Enable
1=Ready to receive MCmd_Enable (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Enable - P_AOut/EnableInFalse - *7(OTU)
Rdy_Enable - P_AOut/Logic - *21(OTE)

BOOL

P_AOut

0
Rdy_Reset
1=At least one Alarm requires Reset
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_AOut/EnableInFalse - *7(OTU)
Rdy_Reset - P_AOut/Logic - *39(OTE)

BOOL

P_AOut

0
Rdy_ResetAckAll
1=At least one Alarm or latched Shed condition requires Reset or Ack
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ResetAckAll - P_AOut/EnableInFalse - *7(OTU)
Rdy_ResetAckAll - P_AOut/Logic - *39(OTE)

BOOL

P_AOut

0
BOOL
Sts_Active
1=CV is greater than Cfg_MaxInactiveCV, show graphic symbol as "active"
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Active - P_AOut/EnableInFalse - *4(OTU)
Sts_Active - P_AOut/Logic - *33(OTE)

P_AOut

0
Sts_AlmInh
1=One or more Alarms Inhibited, Disabled or Suppressed
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_AOut/EnableInFalse - *4(OTL)
Sts_AlmInh - P_AOut/Logic - *38(OTE)

BOOL

P_AOut

0
Sts_Available
1=Analog Output available for control by automation (Prog)
Usage:
Output Parameter
Required:
No

BOOL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 20
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Available (Continued)
Visible:
No
External Access:
Read Only
Sts_Available - P_AOut/EnableInFalse - *4(OTU)
Sts_Available - P_AOut/Logic - *10(OTE)
0
Sts_BypActive
1=Bypassing Active (Bypassed or Maintenance)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_BypActive - P_AOut/Logic - *15(OTE), 23(XIO), 29(XIO), 9(XIO)

BOOL

P_AOut

0
Sts_Bypass
1=Bypassable Interlocks are Bypassed
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Bypass - P_AOut/Logic - *15(OTE), 16(XIC)

BOOL

P_AOut

0
Sts_Clamped
1=CV Set is clamped at CVMin or CVMax
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Clamped - P_AOut/Logic - *7(OTE), 34(XIC)

BOOL

P_AOut

0
BOOL
Sts_Disabled
1=Output is Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Disabled - P_AOut/EnableInFalse - *4(OTL)
Sts_Disabled - P_AOut/Logic - *20(OTE), 25(XIC), 29(XIC), 34(XIC), 9(XIC)

P_AOut

0
BOOL
Sts_Err
1=Error in Config: see detail bits for reason
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_AOut/EnableInFalse - *3(OTE), 4(XIC), 4(XIO), 8(XIC)
Sts_Err - P_AOut/Logic - *6(OTE), 23(XIO), 25(XIC), 29(XIC), 34(XIC), 9(XIC)

P_AOut

0
BOOL
Sts_Hand
1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Hand
Base Tag:
Mode.Sts_Hand
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
Mode.Sts_Hand - P_AOut/Logic - 11(XIC), 23(XIO), 24(XIC), 29(XIC), 32(XIO), 7(XIO)

P_AOut

1
Sts_IntlkTrip
1=Status: CV held or forced by interlock NOT OK (1-shot)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Inp

P_AOut

BOOL

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 21
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_IntlkTrip (Continued)
Base Tag:
IntlkTrip.Inp
Constant
No
External Access:
Read Only
Sts_IntlkTrip - P_AOut/Logic - *23(OTE)
IntlkTrip - P_AOut/Logic - *36(P_Alarm)
0
Sts_IntlkTripDisabled
1=Interlock Trip Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Disabled
Base Tag:
IntlkTrip.Disabled
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

0
Sts_IntlkTripInhibited
1=Interlock Trip Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Inhibited
Base Tag:
IntlkTrip.Inhibited
Constant
No
External Access:
Read Only
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

0
Sts_IntlkTripSuppressed
1=Interlock Trip Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Suppressed
Base Tag:
IntlkTrip.Suppressed
Constant
No
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)

BOOL

P_AOut

1
Sts_IOFault
1=I/O Fault Status (0=OK, 1=Bad)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Inp
Base Tag:
IOFault.Inp
Constant
No
External Access:
Read Only
Sts_IOFault - P_AOut/Logic - *9(OTE)
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

0
Sts_IOFaultDisabled
1=I/O Fault Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Disabled
Base Tag:
IOFault.Disabled
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

0
Sts_IOFaultInhibited
1=I/O Fault Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No

BOOL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 22
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_IOFaultInhibited (Continued)
Visible:
No
AliasFor:
IOFault.Inhibited
Base Tag:
IOFault.Inhibited
Constant
No
External Access:
Read Only
IOFault - P_AOut/Logic - *37(P_Alarm)
0
Sts_IOFaultSuppressed
1=I/O Fault Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Suppressed
Base Tag:
IOFault.Suppressed
Constant
No
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)

BOOL

P_AOut

0
BOOL
Sts_Maint
1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Maint
Base Tag:
Mode.Sts_Maint
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
Mode.Sts_Maint - P_AOut/Logic - 11(XIC), 12(XIC), 15(XIC), 23(XIO), 29(XIC), 7(XIC), 7(XIO), 8(XIO)

P_AOut

0
Sts_MaintByp
1=Device has a Maintenance Bypass function active
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_MaintByp - P_AOut/EnableInFalse - *4(OTU)
Sts_MaintByp - P_AOut/Logic - *16(OTE)

BOOL

P_AOut

0
Sts_NoMode
1=NoMode (Disabled because EnableIn is False)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_NoMode
Base Tag:
Mode.Sts_NoMode
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

0
Sts_NotRdy
1=Device is Not Ready to be operated
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_NotRdy - P_AOut/EnableInFalse - *4(OTL)
Sts_NotRdy - P_AOut/Logic - *9(OTE), 10(XIO)

BOOL

P_AOut

BOOL

P_AOut

Sts_Oper
1=Mode is Operator (manual)
Usage:
Required:
Visible:

1
Output Parameter
No
Yes

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 23
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Oper (Continued)
AliasFor:
Mode.Sts_Oper
Base Tag:
Mode.Sts_Oper
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
Mode.Sts_Oper - P_AOut/Logic - 11(XIC), 12(XIC), 7(XIC)
0
BOOL
Sts_Ovrd
1=Mode is Override (supersedes Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Ovrd
Base Tag:
Mode.Sts_Ovrd
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
Mode.Sts_Ovrd - P_AOut/Logic - 11(XIC), 15(XIC), 29(XIC), 32(XIO), 7(XIC)

P_AOut

0
Sts_Prog
1=Mode is Program (auto)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Prog
Base Tag:
Mode.Sts_Prog
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
Mode.Sts_Prog - P_AOut/Logic - 10(XIC), 7(XIC)

BOOL

P_AOut

0
Sts_ProgOperLock
1=Program or Operator has requested Mode Lock
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_ProgOperLock
Base Tag:
Mode.Sts_ProgOperLock
Constant
No
External Access:
Read Only
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)

BOOL

P_AOut

0
Sts_Ramping
1=CV is ramping to target
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Ramping - P_AOut/Logic - *30(OTE), 34(XIC)

BOOL

P_AOut

0
BOOL
Sts_SkipRoCLim
1=Rate of Change Limiting was skipped this scan (Maint, Ovrd, Intlk, Hand)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_SkipRoCLim - P_AOut/Logic - *29(OTE), 30(XIO)

P_AOut

100.0
Val_CVEUMax
Maximum of scaled range = MAX (Cfg_CVEUMin, Cfg_CVEUMax)
Usage:
Output Parameter
Required:
No

P_AOut

REAL

RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 24
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_CVEUMax (Continued)
Visible:
No
External Access:
Read Only
Val_CVEUMax - P_AOut/EnableInFalse - *2(MOV)
Val_CVEUMax - P_AOut/Logic - *3(MOV)
0.0
Val_CVEUMin
Minimum of scaled range = MIN (Cfg_CVEUMin, Cfg_CVEUMax)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_CVEUMin - P_AOut/EnableInFalse - *2(MOV)
Val_CVEUMin - P_AOut/Logic - *3(MOV)

REAL

P_AOut

0.0
Val_CVOut
Value of CV Output (after rate limiting) (in EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_CVOut - P_AOut/Logic - *32(MOV), 33(GRT)

REAL

P_AOut

0.0
Val_CVRoCLimDec
Value of CV Rate of Change Limit, Decreasing, (in EU/sec)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_CVRoCLimDec - P_AOut/Logic - *32(MOV), 32(MOV)

REAL

P_AOut

0.0
Val_CVRoCLimInc
Value of CV Rate of Change Limit, Increasing, (in EU/sec)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_CVRoCLimInc - P_AOut/Logic - *32(MOV), 32(MOV)

REAL

P_AOut

0.0
Val_CVSet
Value of selected CV Setting (before rate limiting, in EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_CVSet - P_AOut/Logic - *32(MOV), 32(MOV)

REAL

P_AOut

0
Val_Fault
Device Fault Status 0=none, 32=I/OFault, 34=CfgErr
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fault - P_AOut/EnableInFalse - *8(CLR), *8(MOV)
Val_Fault - P_AOut/Logic - *34(MOV)

SINT

P_AOut

0
DINT
P_AOut
Val_Mode
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Val
Base Tag:
Mode.Val
Constant
No
External Access:
Read Only
Val_Notify

SINT

P_AOut
RSLogix 5000

P_AOut Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Type Size: 400 byte (s)
Data Context: P_AOut <definition>

Page 25
22/12/2015 08,56,19
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_Notify (Continued)
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Notify - P_AOut/EnableInFalse - *4(CLR)
Val_Notify - P_AOut/Logic - *39(MOV)
0
Val_Owner
Current Object Owner ID (0=not owned)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Owner - P_AOut/EnableInFalse - *1(MOV), 1(EQU)
Val_Owner - P_AOut/Logic - *2(MOV), 2(EQU)
Val_Owner - P_AOut/Prescan - *0(CLR)

DINT

P_AOut

0
Val_Sts
0=AtTgt 1=RampDn 2=RampUp 3=ClampMin 4=ClampMax 33=Disa
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Sts - P_AOut/EnableInFalse - *8(MOV)
Val_Sts - P_AOut/Logic - *34(MOV)

SINT

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

Name
Default
'Analog Output'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_AOut/Logic - 0(CONCAT)
13
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI
'%'
Cfg_EU
Engineering Units for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_EU - P_AOut/Logic - *0(CONCAT)
1
Cfg_EU.LEN
Engineering Units for display on HMI
Cfg_EU.DATA
Engineering Units for display on HMI

Page 26
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_40

DINT
SINT
STRING_8

SINT
STRING_20

'P_AOut'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_AOut/Logic - 0(LOWER)
6
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

STRING_20

P_AOut

DINT

'Analog Output'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_AOut/Logic - 0(CONCAT)
13
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

Scope
P_AOut

P_AOut

DINT
SINT
P_AOut

DINT
SINT
SINT

P_AOut

STRING_16

P_AOut

Local Tag
Read/Write

'P_AOut'
Inf_Type
Must contain AOI name, used for HMI and Information S/W
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_AOut/Logic - *0(LOWER)
6
Inf_Type.LEN
Must contain AOI name, used for HMI and Information S/W
Inf_Type.DATA
Must contain AOI name, used for HMI and Information S/W
IntlkTrip
Interlock Trip Alarm
Usage:
Local Tag
External Access:
Read/Write
IntlkTrip - P_AOut/Logic - *36(P_Alarm)
1
IntlkTrip.EnableIn
Interlock Trip Alarm Enable Input - System Defined Parameter
0
IntlkTrip.EnableOut
Interlock Trip Alarm Enable Output - System Defined Parameter
1
IntlkTrip.Inp
Interlock Trip Alarm Alarm Condition Input 1=Alarm

DINT
SINT
P_Alarm

P_AOut

BOOL
BOOL
BOOL

RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

Page 27
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

IntlkTrip (Continued)
Sts_IntlkTrip - P_AOut/Logic - *23(OTE)
0
BOOL
IntlkTrip.Inp_Reset
Interlock Trip Alarm 1=Reset Alarm requiring reset
1
BOOL
IntlkTrip.Cfg_Exists
Interlock Trip Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
IntlkTrip.Cfg_ResetReqd
Interlock Trip Alarm 1=Reset required to clear Alarm
1
BOOL
IntlkTrip.Cfg_AckReqd
Interlock Trip Alarm 1=Acknowledge required for Alarm
0
BOOL
IntlkTrip.Cfg_PCmdClear
Interlock Trip Alarm 1=Clear Program Commands on receipt 0=Leave Set
IntlkTrip.Cfg_PCmdClear - P_AOut/Logic - *35(OTE)
3
SINT
IntlkTrip.Cfg_Severity
Interlock Trip Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
IntlkTrip.Cfg_AlmMinOnT
Interlock Trip Alarm Minimum time Alm output stays on (sec)
0
BOOL
IntlkTrip.PCmd_Reset
Interlock Trip Alarm Program Command to Reset latched alarm
IntlkTrip.PCmd_Reset - P_AOut/Logic - *22(OTL)
0
BOOL
IntlkTrip.PCmd_Ack
Interlock Trip Alarm Program Command to Acknowledge alarm
IntlkTrip.PCmd_Ack - P_AOut/Logic - *22(OTL)
0
BOOL
IntlkTrip.PCmd_Inhibit
Interlock Trip Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
IntlkTrip.PCmd_Uninhibit
Interlock Trip Alarm Program Command to Uninhibit alarm
0
BOOL
IntlkTrip.OCmd_Reset
Interlock Trip Alarm Operator Command to Reset latched alarm
0
BOOL
IntlkTrip.OCmd_Ack
Interlock Trip Alarm Operator Command to Acknowledge alarm
0
BOOL
IntlkTrip.OCmd_Suppress
Interlock Trip Alarm Operator Command to Suppress alarm
0
BOOL
IntlkTrip.OCmd_Unsuppress
Interlock Trip Alarm Operator Command to Unsuppress alarm
0
BOOL
IntlkTrip.MCmd_Disable
Interlock Trip Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
IntlkTrip.MCmd_Enable
Interlock Trip Alarm Maintenance Command to Enable alarm
0
SINT
IntlkTrip.Val_Notify
Interlock Trip Alarm Current Alarm Level and Acknowledgement (enumeration)
IntlkTrip.Val_Notify - P_AOut/Logic - 39(GRT), 39(MOV)
0
BOOL
IntlkTrip.Alm
Interlock Trip Alarm Alarm output 1=In Alarm
Alm_IntlkTrip - P_AOut/EnableInFalse - *4(OTU)
1
BOOL
IntlkTrip.Ack
Interlock Trip Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
IntlkTrip.Inhibited
Interlock Trip Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
IntlkTrip.Suppressed
Interlock Trip Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
IntlkTrip.Disabled
Interlock Trip Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
IntlkTrip.Sts_AlmInh
Interlock Trip Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
IntlkTrip.Sts_AlmInh - P_AOut/Logic - 38(XIC)
0
BOOL
IntlkTrip.Sts_Err
Interlock Trip Alarm 1=Error in Config: see detail Err_ bits for reason
IntlkTrip.Sts_Err - P_AOut/EnableInFalse - 3(XIC)
IntlkTrip.Sts_Err - P_AOut/Logic - 6(XIC)
0
BOOL
IntlkTrip.Err_Timer
Interlock Trip Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
IntlkTrip.Err_Severity
Interlock Trip Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
IntlkTrip.Rdy_Reset
Interlock Trip Alarm Ready to receive OCmd_Reset (enable button)
IntlkTrip.Rdy_Reset - P_AOut/Logic - 39(XIC)
RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

IntlkTrip (Continued)
0
IntlkTrip.Rdy_Ack
Interlock Trip Alarm Ready to receive OCmd_Ack (enable button)
IntlkTrip.Rdy_Ack - P_AOut/Logic - 39(XIC)
0
IntlkTrip.Rdy_Suppress
Interlock Trip Alarm Ready to receive OCmd_Suppress (enable button)
0
IntlkTrip.Rdy_Unsuppress
Interlock Trip Alarm Ready to receive OCmd_Unsuppress (enable button)
1
IntlkTrip.Rdy_Disable
Interlock Trip Alarm Ready to receive MCmd_Disable (enable button)
0
IntlkTrip.Rdy_Enable
Interlock Trip Alarm Ready to receive MCmd_Enable (enable button)

Page 28
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL
BOOL
BOOL
BOOL

P_Alarm
IOFault
I/O Fault Alarm
Usage:
Local Tag
External Access:
Read/Write
IOFault - P_AOut/Logic - *37(P_Alarm)
1
BOOL
IOFault.EnableIn
I/O Fault Alarm Enable Input - System Defined Parameter
0
BOOL
IOFault.EnableOut
I/O Fault Alarm Enable Output - System Defined Parameter
1
BOOL
IOFault.Inp
I/O Fault Alarm Alarm Condition Input 1=Alarm
Sts_IOFault - P_AOut/Logic - *9(OTE)
0
BOOL
IOFault.Inp_Reset
I/O Fault Alarm 1=Reset Alarm requiring reset
1
BOOL
IOFault.Cfg_Exists
I/O Fault Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
IOFault.Cfg_ResetReqd
I/O Fault Alarm 1=Reset required to clear Alarm
1
BOOL
IOFault.Cfg_AckReqd
I/O Fault Alarm 1=Acknowledge required for Alarm
0
BOOL
IOFault.Cfg_PCmdClear
I/O Fault Alarm 1=Clear Program Commands on receipt 0=Leave Set
IOFault.Cfg_PCmdClear - P_AOut/Logic - *35(OTE)
3
SINT
IOFault.Cfg_Severity
I/O Fault Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
IOFault.Cfg_AlmMinOnT
I/O Fault Alarm Minimum time Alm output stays on (sec)
0
BOOL
IOFault.PCmd_Reset
I/O Fault Alarm Program Command to Reset latched alarm
IOFault.PCmd_Reset - P_AOut/Logic - *22(OTL)
0
BOOL
IOFault.PCmd_Ack
I/O Fault Alarm Program Command to Acknowledge alarm
IOFault.PCmd_Ack - P_AOut/Logic - *22(OTL)
0
BOOL
IOFault.PCmd_Inhibit
I/O Fault Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
IOFault.PCmd_Uninhibit
I/O Fault Alarm Program Command to Uninhibit alarm
0
BOOL
IOFault.OCmd_Reset
I/O Fault Alarm Operator Command to Reset latched alarm
0
BOOL
IOFault.OCmd_Ack
I/O Fault Alarm Operator Command to Acknowledge alarm
0
BOOL
IOFault.OCmd_Suppress
I/O Fault Alarm Operator Command to Suppress alarm
0
BOOL
IOFault.OCmd_Unsuppress
I/O Fault Alarm Operator Command to Unsuppress alarm
0
BOOL
IOFault.MCmd_Disable
I/O Fault Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
IOFault.MCmd_Enable
I/O Fault Alarm Maintenance Command to Enable alarm
0
SINT
IOFault.Val_Notify
I/O Fault Alarm Current Alarm Level and Acknowledgement (enumeration)
IOFault.Val_Notify - P_AOut/Logic - 39(GRT), 39(MOV)
0
BOOL
IOFault.Alm
I/O Fault Alarm Alarm output 1=In Alarm

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

Page 29
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

IOFault (Continued)
Alm_IOFault - P_AOut/EnableInFalse - *4(OTU)
1
BOOL
IOFault.Ack
I/O Fault Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
IOFault.Inhibited
I/O Fault Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
IOFault.Suppressed
I/O Fault Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
IOFault.Disabled
I/O Fault Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
IOFault.Sts_AlmInh
I/O Fault Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
IOFault.Sts_AlmInh - P_AOut/Logic - 38(XIC)
0
BOOL
IOFault.Sts_Err
I/O Fault Alarm 1=Error in Config: see detail Err_ bits for reason
IOFault.Sts_Err - P_AOut/EnableInFalse - 3(XIC)
IOFault.Sts_Err - P_AOut/Logic - 6(XIC)
0
BOOL
IOFault.Err_Timer
I/O Fault Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
IOFault.Err_Severity
I/O Fault Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
IOFault.Rdy_Reset
I/O Fault Alarm Ready to receive OCmd_Reset (enable button)
IOFault.Rdy_Reset - P_AOut/Logic - 39(XIC)
0
BOOL
IOFault.Rdy_Ack
I/O Fault Alarm Ready to receive OCmd_Ack (enable button)
IOFault.Rdy_Ack - P_AOut/Logic - 39(XIC)
0
BOOL
IOFault.Rdy_Suppress
I/O Fault Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
IOFault.Rdy_Unsuppress
I/O Fault Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
IOFault.Rdy_Disable
I/O Fault Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
IOFault.Rdy_Enable
I/O Fault Alarm Ready to receive MCmd_Enable (enable button)
P_Mode
P_AOut
Mode
Analog Output Mode Selection
Usage:
Local Tag
External Access:
Read/Write
Mode - P_AOut/EnableInFalse - *0(P_Mode)
Mode - P_AOut/Logic - *1(P_Mode)
1
BOOL
Mode.EnableIn
Analog Output Mode Selection Enable Input - System Defined Parameter
0
BOOL
Mode.EnableOut
Analog Output Mode Selection Enable Output - System Defined Parameter
0
BOOL
Mode.Inp_Hand
Analog Output Mode Selection 1=Select Hand (typ. hardwired) Mode
0
BOOL
Mode.Inp_Ovrd
Analog Output Mode Selection 1=Select Override (typ. Process/Safety Interlock) Mode
1
BOOL
Mode.Cfg_PCmdClear
Analog Output Mode Selection 1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds
Cfg_PCmdClear - P_AOut/EnableInFalse - 0(XIC), 0(XIO)
Cfg_PCmdClear - P_AOut/Logic - 22(XIC), 35(XIC)
1
BOOL
Mode.Cfg_OvrdOverLock
Analog Output Mode Selection 1=Override supersedes Prog/Oper Lock, 0=don't override Lock
0
BOOL
Mode.Cfg_ProgDefault
Analog Output Mode Selection Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
0
BOOL
Mode.PCmd_Acq
Analog Output Mode Selection Program Command to Acquire Ownership (Oper to Prog)
0
BOOL
Mode.PCmd_Rel
Analog Output Mode Selection Program Command to Release Ownership (Prog to Oper)
0
BOOL
Mode.PCmd_Lock
Analog Output Mode Selection Program Command to Lock Mode in Prog
0
BOOL
Mode.PCmd_Unlock
Analog Output Mode Selection Program Command to Unlock Mode
0
BOOL
Mode.MCmd_Acq
RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

Page 30
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode (Continued)
Analog Output Mode Selection Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)
0
BOOL
Mode.MCmd_Rel
Analog Output Mode Selection Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)
0
BOOL
Mode.OCmd_AcqLock
Analog Output Mode Selection Operator Command to Acquire and Lock Mode in Oper
0
BOOL
Mode.OCmd_Unlock
Analog Output Mode Selection Operator Command to Unlock Operator Mode
0
DINT
Mode.Val
Analog Output Mode Selection Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O
def)
0
BOOL
Mode.Sts_Hand
Analog Output Mode Selection 1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Mode.Sts_Hand - P_AOut/Logic - 11(XIC), 23(XIO), 24(XIC), 29(XIC), 32(XIO), 7(XIO)
0
BOOL
Mode.Sts_Maint
Analog Output Mode Selection 1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Mode.Sts_Maint - P_AOut/Logic - 11(XIC), 12(XIC), 15(XIC), 23(XIO), 29(XIC), 7(XIC), 7(XIO), 8(XIO)
0
BOOL
Mode.Sts_Ovrd
Analog Output Mode Selection 1=Mode is Override (supersedes Prog, Oper)
Mode.Sts_Ovrd - P_AOut/Logic - 11(XIC), 15(XIC), 29(XIC), 32(XIO), 7(XIC)
0
BOOL
Mode.Sts_Prog
Analog Output Mode Selection 1=Mode is Program
Mode.Sts_Prog - P_AOut/Logic - 10(XIC), 7(XIC)
1
BOOL
Mode.Sts_Oper
Analog Output Mode Selection 1=Mode is Operator
Mode.Sts_Oper - P_AOut/Logic - 11(XIC), 12(XIC), 7(XIC)
0
BOOL
Mode.Sts_ProgOperLock
Analog Output Mode Selection 1=Program or Operator has requested Mode Lock
0
BOOL
Mode.Sts_ProgOperSel
Analog Output Mode Selection Prog/Oper selection 1=Program, 0=Operator
Mode.Sts_ProgOperSel - P_AOut/Logic - 7(XIC), 7(XIO)
0
BOOL
Mode.Sts_NoMode
Analog Output Mode Selection 1=Mode is NO mode (no owner)
0
BOOL
Mode.Rdy_Acq
Analog Output Mode Selection 1=Ready for MCmd_Acq
0
BOOL
Mode.Rdy_Rel
Analog Output Mode Selection 1=Ready for MCmd_Rel
Mode.Rdy_Rel - P_AOut/Logic - 18(XIC), 19(XIC), 21(XIC)
1
BOOL
Mode.Rdy_AcqLock
Analog Output Mode Selection 1=Ready for OCmd_AcqLock
0
BOOL
Mode.Rdy_Unlock
Analog Output Mode Selection 1=Ready for OCmd_Unlock
0
BOOL
Wrk_Bypass
Internal Bypassable Interlocks are Bypassed flag
Usage:
Local Tag
External Access:
None
Wrk_Bypass - P_AOut/Logic - *13(OTL), *14(OTU), 15(XIC), 17(XIC), 17(XIO)

P_AOut

0.0
REAL
Wrk_CV
Working copy of Speed Reference (for limiting)
Usage:
Local Tag
External Access:
None
Wrk_CV - P_AOut/Logic - *23(MOV), *24(CPT), *25(MOV), *7(MOV), 23(NEQ), 26(MOV)

P_AOut

0.0
REAL
P_AOut
Wrk_CVOut
Wroking value of CV after Rate Limiting
Usage:
Local Tag
External Access:
None
Wrk_CVOut - P_AOut/EnableInFalse - *4(MOV), 4(CPT)
Wrk_CVOut - P_AOut/Logic - *29(MOV), *30(ADD), *30(MOV), *30(SUB), 27(MOV), 30(ADD), 30(CMP), 30(NEQ), 30(SUB), 31(CPT),
32(MOV), 34(EQU), 34(GRT), 34(LES)
0.0
Wrk_CVRoCLimDec
Selected CV Rate of Change Limit Decreasing
Usage:
Local Tag

REAL

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

Page 31
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_CVRoCLimDec (Continued)
External Access:
None
Wrk_CVRoCLimDec - P_AOut/Logic - *7(MOV), *8(MOV), 30(MUL), 32(MOV), 8(EQU), 8(GRT), 8(LES)
0.0
REAL
P_AOut
Wrk_CVRoCLimInc
Selected CV Rate of Change Limit Increasing
Usage:
Local Tag
External Access:
None
Wrk_CVRoCLimInc - P_AOut/Logic - *7(MOV), *8(MOV), 29(EQU), 30(MUL), 32(MOV), 8(EQU), 8(GRT), 8(LES)
0.0
REAL
P_AOut
Wrk_CVSet
Final selected CV to feed to RoC Limiter
Usage:
Local Tag
External Access:
None
Wrk_CVSet - P_AOut/EnableInFalse - *4(MOV)
Wrk_CVSet - P_AOut/Logic - *26(MOV), *27(MOV), 23(MOV), 23(NEQ), 27(COP), 29(MOV), 30(CMP), 30(MOV), 30(NEQ), 32(MOV),
34(GRT), 34(LES)
0
BOOL
Wrk_Disabled
Internal Analog Output is Disabled
Usage:
Local Tag
External Access:
None
Wrk_Disabled - P_AOut/Logic - *18(OTL), *19(OTU), 20(XIC), 21(XIC), 21(XIO), 23(XIO)

P_AOut

0
Wrk_Fault
Buffer for building Val_Fault
Usage:
Local Tag
External Access:
None
Wrk_Fault - P_AOut/EnableInFalse - 8(MOV)
Wrk_Fault - P_AOut/Logic - *34(CLR), *34(MOV), 34(MOV)

SINT

P_AOut

0
Wrk_IntlkTripONS
Interlock Tripped This Scan
Usage:
Local Tag
External Access:
None
Wrk_IntlkTripONS - P_AOut/Logic - *23(ONS)

BOOL

P_AOut

0
BOOL
Wrk_IOFault
I/O Fault (latched) sheds (hold or to Interlock CV) and requires reset
Usage:
Local Tag
External Access:
None
Wrk_IOFault - P_AOut/EnableInFalse - *5(OTU)
Wrk_IOFault - P_AOut/Logic - *22(OTU), *9(OTL), 23(XIC), 34(XIC), 39(XIC), 9(XIC)

P_AOut

0
DINT
Wrk_Notify
Buffer for building Val_Notify
Usage:
Local Tag
External Access:
None
Wrk_Notify - P_AOut/Logic - *39(CLR), *39(MOV), 39(GRT), 39(MOV)
0
BOOL
Wrk_Notify.0
Buffer for building Val_Notify
Wrk_Notify.0 - P_AOut/Logic - *39(OTE)

P_AOut

Wrk_ScanT
Scan Timer (milliseconds, always runs)
Usage:
Local Tag
External Access:
None
Wrk_ScanT - P_AOut/EnableInFalse - *5(TON)
Wrk_ScanT - P_AOut/Logic - *28(TON)
2147483647
Wrk_ScanT.PRE
Scan Timer (milliseconds, always runs)
Wrk_ScanT.PRE - P_AOut/Logic - *28(MOV)
0
Wrk_ScanT.ACC
Scan Timer (milliseconds, always runs)
Wrk_ScanT.ACC - P_AOut/EnableInFalse - *5(CLR)
Wrk_ScanT.ACC - P_AOut/Logic - *28(CLR), 28(DIV)
0
Wrk_ScanT.EN

TIMER

P_AOut

DINT
DINT

BOOL
RSLogix 5000

P_AOut Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Data Context: P_AOut <definition>

Wrk_ScanT (Continued)
Scan Timer (milliseconds, always runs)
0
Wrk_ScanT.TT
Scan Timer (milliseconds, always runs)
0
Wrk_ScanT.DN
Scan Timer (milliseconds, always runs)

Page 32
22/12/2015 08,56,20
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL

0.0
Wrk_ScanTime
Seconds since previous scan
Usage:
Local Tag
External Access:
None
Wrk_ScanTime - P_AOut/Logic - *28(DIV), 30(MUL), 30(NEQ)

REAL

P_AOut

16#0000_0000
Wrk_SelCVDINT
Selected CV check for Infinite or Non A Number
Usage:
Local Tag
External Access:
None
Wrk_SelCVDINT - P_AOut/Logic - *27(COP), 27(MEQ)

DINT

P_AOut

0.0
Wrk_StepDec
Amount to change CVOut this scan for decrease rate limiting
Usage:
Local Tag
External Access:
None
Wrk_StepDec - P_AOut/Logic - *30(MUL), 30(CMP), 30(SUB)

REAL

P_AOut

0.0
Wrk_StepInc
Amount to change CVOut this scan for increase rate limiting
Usage:
Local Tag
External Access:
None
Wrk_StepInc - P_AOut/Logic - *30(MUL), 30(ADD), 30(CMP)

REAL

P_AOut

0
Wrk_Sts
Buffer for building Val_Sts
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_AOut/Logic - *34(CLR), *34(MOV), 34(MOV)

SINT

P_AOut

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 33
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
P_AOut : PROCESS -- ANALOG OUTPUT
============================================================
Revision 2.0-03 Release: 2013-03-15
V2.0-00 2011-09-30: Fix Inp_Tieback to use Raw (downstream block)
units, same as Out_CV. Add Val_Sts, Val_Fault, Val_Mode, Inf_Tab,
Inf_Type, Sts_Clamped; add logic for Sts_MaintByp, Sts_AlmInh,
Sts_NotRdy for breadcrumbs. Using P_Alarm, P_Mode 2.0.
Made Ovrd, Hand inputs not visible by default.
Added OCmd_ResetAckAll, Rdy_ResetAckAll.
Added Cfg_MaxInactiveCV, Sts_Active.
Now has separate Rate of Change Limits for Increasing, Decreasing;
changed Rdy_OSet to Rdy_CVRoCLimInc and Rdy_CVRoCLimDec
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2011-11-10: Modified Sts_NotRdy logic to correctly
ignore conditions configured to not shed.
V2.0-02 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01
V2.0-03 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction controls an Analog Output and provides:
* Program and Operator entry of target CV in Engineering Units
* Ramping of Output CV to target at specified Rate of Change (EU/sec)
* Clamping of Output CV at configured minimum and maximum limits
* Scaling of Output CV from Engineering Units to Raw (I/O card) Units
* Monitoring of Interlock conditions which cause output to shed
* Configurable shed to HOLD or to configured SAFE value
* Monitoring of I/O communication faults
* Alarms for Interlock Trip, I/O Fault
* "Available" status for use by automation logic to know whether Output
can be controlled by other objects.
Modes are provided by a P_Mode Add-On Instruction instance.
Alarms are provided by P_Alarm Add-On Instruction instances.
Modes of operation: Operator, Program, Override, Maintenance, Hand
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

Cfg_Desc

0(CONCAT)

Cfg_EU

*0(CONCAT)

Cfg_Label

0(CONCAT)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
CONCAT
Lower Case
String Concatenate
Dest Inf_Type
Dest
Source Cfg_Tag
Source A Cfg_Label
'P_AOut'
'P_AOut'
'Analog Output'
Source B Cfg_Desc
'Analog Output'

Cfg_EU
'%'

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 34
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
MODE PROCESSING
============================================================
This rung handles received Mode Inputs and Commands:

NOTE: All Commands for Mode, Alarm are aliased directly to the
corresponding Commands in the contained P_Mode and P_Alarm AOIs.
Analog Output Mode
Selection
P_Mode
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock

SkipText
LBL

Signature ID: C1F72CF2

Mode

*1(P_Mode)

This rung handles simple First-Come First-Served Ownership Arbitration.


If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
Dest Val_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

2(MOV) 2(EQU) 2(NEQ)

Val_Owner

*2(MOV) 2(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 35
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
CONFIGURATION
============================================================
These rungs get Configuration data (such as timer presets) and distribute as needed.
Note that some Configuration data are used directly in-place.
This rung publishes the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the CV EU configuration of a PID, so the AOut and PID ranges are in lockstep.
CV Maximum in
Engineering Units
(for scaling)
GEQ
Grtr Than or Eql (A>=B)
Source A Cfg_CVEUMax
100.0
Source B Cfg_CVEUMin
0.0

Minimum of scaled
range = MIN
(Cfg_CVEUMin,
Cfg_CVEUMax)
MOV
Move
Source Cfg_CVEUMin
0.0

Dest Val_CVEUMin
0.0

Maximum of scaled
range = MAX
(Cfg_CVEUMin,
Cfg_CVEUMax)
MOV
Move
Source Cfg_CVEUMax
100.0

CV Maximum in
Engineering Units
(for scaling)
LES
Less Than (A<B)
Source A Cfg_CVEUMax
100.0
Source B Cfg_CVEUMin
0.0

Dest Val_CVEUMax
100.0

Maximum of scaled
range = MAX
(Cfg_CVEUMin,
Cfg_CVEUMax)
MOV
Move
Source Cfg_CVEUMin
0.0

Dest Val_CVEUMax
100.0

Minimum of scaled
range = MIN
(Cfg_CVEUMin,
Cfg_CVEUMax)
MOV
Move
Source Cfg_CVEUMax
100.0

Cfg_CVEUMax

3(MOV) 3(GEQ) 3(LES) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVEUMin

3(GEQ) 3(MOV) 3(LES) 6(EQU) 24(CPT) 31(CPT)

Val_CVEUMax

*3(MOV)

Val_CVEUMin

*3(MOV)

Dest Val_CVEUMin
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 36
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


Enter the maximum allowed Rate of Change (Increasing) Setting (in EU/sec)
If the rate is negative, infinite or not a number, no valid Rate of Change can be entered. Set the maximum to zero.
This will force the CV Rate of Change to zero, which does NO ramping/limiting of increasing CV

##### V2.0-00 Separate Rate of Change Limits for Increasing and Decreasing CV (comment only this rung) #####
Maximum allowed CV
Maximum allowed CV
Rate of Change
Rate of Change
(Increasing) Setting
(Increasing) Setting
(EU/sec)
(EU/sec)
LES
MOV
Less Than (A<B)
Move
Source A Cfg_MaxCVRoCInc
Source
0.0
Dest Cfg_MaxCVRoCInc
10.0
10.0
Source B
0.0

Maximum allowed CV
Rate of Change
(Increasing) Setting
(EU/sec)
GRT
Greater Than (A>B)
Source A Cfg_MaxCVRoCInc
10.0
Source B
3.40282347E38

Cfg_MaxCVRoCInc

*4(MOV) 4(LES) 4(GRT) 8(MOV) 8(GRT) 12(GRT)

Enter the maximum allowed Rate of Change (Decreasing) Setting (in EU/sec)
If the rate is negative, infinite or not a number, no valid Rate of Change can be entered. Set the maximum to zero.
This will force the CV Rate of Change to zero, which does NO ramping/limiting of decreasing CV.

##### V2.0-00 Separate Rate of Change Limits for Increasing and Decreasing CV #####
Maximum allowed CV
Maximum allowed CV
Rate of Change
Rate of Change
(Decreasing) Setting
(Decreasing) Setting
(EU/sec)
(EU/sec)
LES
MOV
Less Than (A<B)
Move
Source A Cfg_MaxCVRoCDec
Source
0.0
Dest Cfg_MaxCVRoCDec
10.0
10.0
Source B
0.0

Maximum allowed CV
Rate of Change
(Decreasing) Setting
(EU/sec)
GRT
Greater Than (A>B)
Source A Cfg_MaxCVRoCDec
10.0
Source B
3.40282347E38

Cfg_MaxCVRoCDec

5(GRT) 5(LES) *5(MOV) 8(MOV) 8(GRT) 12(GRT)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 37
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


This rung handles the reports of all Bad Configuration Status.
Individual bits are provided for various status:
Crossed CV Limits
Bad Engineering Units Scaling configs (Max = Min)
Bad Raw Scaling configs (Max = Min)
Then a summary Bad Config status is provided, simply an OR of the individual bits.
##### V2.0-00 Removed check of CV Max Rate of Change Limit -- clamped above #####
Maximum CV (in EU,
for limiting)
LES
Less Than (A<B)
Source A Cfg_MaxCV
100.0
Source B Cfg_MinCV
0.0

1=Error in Config:
CV Limits swapped
Err_Limit

CV Maximum in
Engineering Units
(for scaling)
EQU
Equal
Source A Cfg_CVEUMax
100.0
Source B Cfg_CVEUMin
0.0

1=Error in Config:
Scaled CV EU Min =
Max
Err_EU

CV Maximum in I/O
(raw) Units (for
scaling)
EQU
Equal
Source A Cfg_CVRawMax
100.0
Source B Cfg_CVRawMin
0.0

1=Error in Config:
Raw Output Scaling
Min = Max
Err_Raw

Interlock Trip Alarm


1=Error in Config:
see detail Err_ bits
for reason
IntlkTrip.Sts_Err

1=Error in Config:
see detail bits for
reason
Sts_Err

1=Error in Config:
Alarm Throttle Time
or Severity
Err_Alarm

I/O Fault Alarm


1=Error in Config:
see detail Err_ bits
for reason
IOFault.Sts_Err

Cfg_CVEUMax

3(LES) 3(MOV) 3(GEQ) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVEUMin

3(MOV) 3(LES) 3(GEQ) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVRawMax

6(EQU) 24(CPT) 31(CPT)

Cfg_CVRawMin

6(EQU) 24(CPT) 31(CPT)

Cfg_MaxCV

6(LES) 7(MOV) 7(GRT) 34(EQU)

Cfg_MinCV

6(LES) 7(LES) 7(MOV) 34(EQU)

Err_Alarm

*6(OTE)

Err_EU

*6(OTE) 31(XIO) 31(XIC)

Err_Limit

*6(OTE)

Err_Raw

*6(OTE) 31(XIC) 31(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!
IntlkTrip.Sts_Err

6(XIC)

IOFault.Sts_Err

6(XIC)

Sts_Err

*6(OTE) 9(XIC) 23(XIO) 25(XIC) 29(XIC) 34(XIC)

Page 38
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 39
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
SETTINGS PROCESSING
============================================================
This rung handles received Settings:
Limit the Program and Operator CV Settings to the hard limits, regardless of Mode
(in case tracking is off....).
When the Mode is Program, use the Program Settings for the CV and Rate of Change Limit..
When the Mode is Operator or Maintenance, use the Operator Settings.
When the Mode is Override, use the Override CV input for the CV.
##### V2.0-00 Separate Rate of Change Limits for Increasing and Decreasing CV #####

Program Setting of
Controlled Variable
(output) (in EU)
GRT
Greater Than (A>B)
Source A
PSet_CV
0.0
Source B Cfg_MaxCV
100.0

Move
Source Cfg_MaxCV
100.0

Program Setting of
Controlled Variable
(output) (in EU)
LES
Less Than (A<B)
Source A
PSet_CV
0.0
Source B Cfg_MinCV
0.0

Analog Output Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

Analog Output Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Setting of
Controlled Variable
(output) (in EU)
MOV
Dest PSet_CV
0.0

Program Setting of
Controlled Variable
(output) (in EU)
MOV
Move
Source Cfg_MinCV
0.0

Dest PSet_CV
0.0

Analog Output Mode


Selection 1=Mode is
Hand (supersedes
Maint, Ovrd, Prog,
Oper)
Mode.Sts_Hand
<Sts_Hand>
/
Operator Setting of
Controlled Variable
(output) (in EU)
GRT
Greater Than (A>B)
Source A
OSet_CV
0.0
Source B Cfg_MaxCV
100.0
Operator Setting of
Controlled Variable
(output) (in EU)
LES
Less Than (A<B)
Source A
OSet_CV
0.0
Source B Cfg_MinCV
0.0

Operator Setting of
Controlled Variable
(output) (in EU)
MOV
Move
Source Cfg_MaxCV
100.0

Dest OSet_CV
0.0

Operator Setting of
Controlled Variable
(output) (in EU)
MOV
Move
Source Cfg_MinCV
0.0

Dest OSet_CV
0.0

1=CV Set is clamped


at CVMin or CVMax
Sts_Clamped
Analog Output Mode
Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Working copy of
Speed Reference (for
limiting)
MOV
Move
Source PSet_CV
0.0

Dest

Wrk_CV
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 40
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 41
22/12/2015 08,56,21
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


Analog Output Mode
Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
Analog Output Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
Analog Output Mode
Selection 1=Mode is
Override (supersedes
Prog, Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

0.0

Working copy of
Speed Reference (for
limiting)
MOV
Move
Source OSet_CV
0.0

Dest

Wrk_CV
0.0

Working copy of
Speed Reference (for
limiting)
MOV
Move
Source Inp_OvrdCV
0.0

Analog Output Mode


Selection Prog/Oper
selection 1=Program,
0=Operator
Mode.Sts_ProgOperSel

0.0

Dest

Wrk_CV
0.0

Selected CV Rate of
Change Limit
Increasing
MOV
Move
Source PSet_CVRoCLimInc
0.0

Dest Wrk_CVRoCLimInc
0.0

Selected CV Rate of
Change Limit
Decreasing
MOV
Move
Source PSet_CVRoCLimDec
0.0

Analog Output Mode


Selection Prog/Oper
selection 1=Program,
0=Operator
Mode.Sts_ProgOperSel
/

Dest Wrk_CVRoCLimDec
0.0

Selected CV Rate of
Change Limit
Increasing
MOV
Move
Source OSet_CVRoCLimInc
0.0

Dest Wrk_CVRoCLimInc
0.0

Selected CV Rate of
Change Limit
Decreasing
MOV
Move
Source OSet_CVRoCLimDec
0.0

Cfg_MaxCV

6(LES) 7(MOV) 7(GRT) 34(EQU)

Cfg_MinCV

6(LES) 7(LES) 7(MOV) 34(EQU)

Inp_OvrdCV

7(MOV)

Dest Wrk_CVRoCLimDec
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!
Mode.Sts_Hand

7(XIO) 11(XIC) 23(XIO) 24(XIC) 29(XIC) 32(XIO)

Mode.Sts_Maint

7(XIC) 7(XIO) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Mode.Sts_Oper

7(XIC) 11(XIC) 12(XIC)

Mode.Sts_Ovrd

7(XIC) 11(XIC) 15(XIC) 29(XIC) 32(XIO)

Mode.Sts_Prog

7(XIC) 10(XIC)

Mode.Sts_ProgOperSel

7(XIO) 7(XIC)

OSet_CV

7(GRT) 7(LES) 7(MOV) *7(MOV) *32(MOV)

OSet_CVRoCLimDec

7(MOV) *32(MOV)

OSet_CVRoCLimInc

7(MOV) *32(MOV)

PSet_CV

7(GRT) *7(MOV) 7(MOV) 7(LES) *32(MOV)

PSet_CVRoCLimDec

7(MOV) *32(MOV)

PSet_CVRoCLimInc

7(MOV) *32(MOV)

Sts_Clamped

*7(OTE) 34(XIC)

Wrk_CV

*7(MOV) 23(NEQ) *23(MOV) *24(CPT) *25(MOV) 26(MOV)

Wrk_CVRoCLimDec

*7(MOV) 8(GRT) 8(LES) 8(EQU) *8(MOV) 30(MUL) 32(MOV)

Wrk_CVRoCLimInc

*7(MOV) 8(EQU) 8(GRT) *8(MOV) 8(LES) 29(EQU) 30(MUL) 32(MOV)

Page 42
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 43
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 44
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


Always limit the entered Rate of Change Limit to be between 0.0 and the configured Maximum.
##### V2.0-00 Separate Rate of Change Limits for Increasing and Decreasing CV #####
##### Enforce rate of change limit non-zero EXCEPT in Maintenance Mode #####

Selected CV Rate of
Change Limit
Increasing
GRT
Greater Than (A>B)
Source A Wrk_CVRoCLimInc
0.0
Source B Cfg_MaxCVRoCInc
10.0
Selected CV Rate of
Change Limit
Increasing
LES
Less Than (A<B)
Source A Wrk_CVRoCLimInc
0.0
Source B
0.0

Selected CV Rate of
Change Limit
Increasing
EQU
Equal
Source A Wrk_CVRoCLimInc
0.0
Source B
0.0

Analog Output Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

Selected CV Rate of
Change Limit
Increasing
MOV
Move
Source Cfg_MaxCVRoCInc
10.0

Dest Wrk_CVRoCLimInc
0.0

Selected CV Rate of
Change Limit
Decreasing
GRT
Greater Than (A>B)
Source A Wrk_CVRoCLimDec
0.0
Source B Cfg_MaxCVRoCDec
10.0
Selected CV Rate of
Change Limit
Decreasing
LES
Less Than (A<B)
Source A Wrk_CVRoCLimDec
0.0
Source B
0.0

Selected CV Rate of
Change Limit
Decreasing
EQU
Equal
Source A Wrk_CVRoCLimDec
0.0

Analog Output Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 45
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


Source B

0.0
0.0

Selected CV Rate of
Change Limit
Decreasing
MOV
Move
Source Cfg_MaxCVRoCDec
10.0

Cfg_MaxCVRoCDec

5(GRT) 5(LES) *5(MOV) 8(MOV) 8(GRT) 12(GRT)

Cfg_MaxCVRoCInc

*4(MOV) 4(GRT) 4(LES) 8(MOV) 8(GRT) 12(GRT)

Mode.Sts_Maint

7(XIO) 7(XIC) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Wrk_CVRoCLimDec

*7(MOV) 8(LES) 8(EQU) 8(GRT) *8(MOV) 30(MUL) 32(MOV)

Wrk_CVRoCLimInc

*7(MOV) 8(LES) 8(GRT) 8(EQU) *8(MOV) 29(EQU) 30(MUL) 32(MOV)

Dest Wrk_CVRoCLimDec
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 46
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


The Analog Output is NOT READY to be controlled (by the owner specified by Mode):
if it is Disabled,
if there is a Configuration Error,
if interlocks are not OK (accounting for bypassing), or
if I/O Communication is faulted and is configured as a Shed condition.
##### 2.0-01 2011-11-10: Pulled in shed and alarm logic, #####
##### fixed to not show Not Ready if not a shed condition. #####
1=Output is Disabled
Sts_Disabled
9
1=Error in Config:
see detail bits for
reason
Sts_Err
1=Interlocks OK,
Analog Output can be
set
Inp_IntlkOK
/

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

1=Non-Bypassable
Interlocks OK,
Analog Output can be
set
Inp_NBIntlkOK
/

Input Communication
Status 0=OK, 1=fail
Inp_IOFault

1=I/O are being


simulated, set
output CV to 0,
ignore I/O Fault
Inp_Sim
/

1=I/O Fault Status


(0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>

1=Stop Motor and


Alarm on I/O Fault;
0=Alarm only on I/O
Fault
Cfg_ShedOnIOFault

I/O Fault (latched)


sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault
L

I/O Fault (latched)


sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault

1=Device is Not
Ready to be operated
Sts_NotRdy

Cfg_ShedOnIOFault

9(XIC)

Inp_IntlkOK

9(XIO) 23(XIO) 29(XIO)

Inp_IOFault

9(XIC) 39(XIO)

Inp_NBIntlkOK

9(XIO) 23(XIO) 29(XIO)

Inp_Sim

9(XIO) 31(XIO) 31(XIC)

Sts_BypActive

9(XIO) *15(OTE) 23(XIO) 29(XIO)

Sts_Disabled

9(XIC) *20(OTE) 25(XIC) 29(XIC) 34(XIC)

Sts_Err

*6(OTE) 9(XIC) 23(XIO) 25(XIC) 29(XIC) 34(XIC)

Sts_IOFault

*9(OTE)

Sts_NotRdy

*9(OTE) 10(XIO)

Wrk_IOFault

9(XIC) *9(OTL) *22(OTU) 23(XIC) 34(XIC) 39(XIC)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 47
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


The device is AVAILABLE to be controlled by other objects
if it IS in Program Mode and it IS NOT "Not Ready".
Analog Output Mode
Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>
10

Mode.Sts_Prog

7(XIC) 10(XIC)

Sts_Available

*10(OTE)

Sts_NotRdy

*9(OTE) 10(XIO)

1=Device is Not
Ready to be operated
Sts_NotRdy
/

1=Analog Output
available for
control by
automation (Prog)
Sts_Available

Ready to receive a new OSet_CV if tracking is NOT enabled,


or we're in Operator or Maintenance Mode, or,
if we're in Hand or Ovrd, tracking is NOT configured for Ovrd and Hand.

11

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack
/

1=Ready to receive
OSet_CV (enables
data entry field)
Rdy_CV

Analog Output Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
Analog Output Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
Analog Output Mode
Selection 1=Mode is
Hand (supersedes
Maint, Ovrd, Prog,
Oper)
Mode.Sts_Hand
<Sts_Hand>

1=Prog/Oper Settings
track Override/Hand
CV
Cfg_SetTrackOvrdHand
/

Analog Output Mode


Selection 1=Mode is
Override (supersedes
Prog, Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

Cfg_SetTrack

11(XIO) 12(XIO) 32(XIC)

Cfg_SetTrackOvrdHand 11(XIO) 32(XIC)


Mode.Sts_Hand

7(XIO) 11(XIC) 23(XIO) 24(XIC) 29(XIC) 32(XIO)

Mode.Sts_Maint

7(XIC) 7(XIO) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Mode.Sts_Oper

7(XIC) 11(XIC) 12(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!
Mode.Sts_Ovrd

7(XIC) 11(XIC) 15(XIC) 29(XIC) 32(XIO)

Rdy_CV

*11(OTE)

Page 48
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Ready to receive other Operator Settings (OSet_xxx) if tracking is NOT enabled,


or we're in Operator or Maintenance Mode.
##### V2.0-00 2011-09-30: Changed CVRoCLim to CVRoCLimInc and CVRoCLimDec #####
1=PSets track OSets
1=Ready to receive
Maximum allowed CV
in Oper, OSets track
OSet_CVRoCLimInc
Rate of Change
PSets in Prog, 0=no
(enables data entry
(Increasing) Setting
tracking
field)
(EU/sec)
Cfg_SetTrack
Rdy_CVRoCLimInc
GRT
/
Greater Than (A>B)
Source A Cfg_MaxCVRoCInc
Analog Output Mode
10.0
Selection 1=Mode is
Source B
0.0
Operator
Mode.Sts_Oper
<Sts_Oper>
1=Ready to receive
Maximum allowed CV
OSet_CVRoCLimDec
Rate of Change
Analog Output Mode
(enables data entry
(Decreasing) Setting
Selection 1=Mode is
field)
(EU/sec)
Maintenance
Rdy_CVRoCLimDec
GRT
(supersedes Ovrd,
Greater Than (A>B)
Prog, Oper)
Source A Cfg_MaxCVRoCDec
Mode.Sts_Maint
10.0
<Sts_Maint>
Source B
0.0

12

Cfg_MaxCVRoCDec

5(GRT) *5(MOV) 5(LES) 8(MOV) 8(GRT) 12(GRT)

Cfg_MaxCVRoCInc

4(GRT) 4(LES) *4(MOV) 8(GRT) 8(MOV) 12(GRT)

Cfg_SetTrack

11(XIO) 12(XIO) 32(XIC)

Mode.Sts_Maint

7(XIO) 7(XIC) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Mode.Sts_Oper

7(XIC) 11(XIC) 12(XIC)

Rdy_CVRoCLimDec

*12(OTE)

Rdy_CVRoCLimInc

*12(OTE)

Operator Command to
Bypass all
Bypassable
Interlocks
OCmd_Bypass
13

============================================================
INTERLOCK / PERMISSIVE BYPASS / CHECK COMMAND HANDLING
============================================================
The Bypass Command bypasses the Bypassable Permissives and Interlocks.
Operator Command to
Bypass all
Bypassable
Interlocks
OCmd_Bypass
U

OCmd_Bypass

*13(OTU) 13(XIC)

Wrk_Bypass

*13(OTL) *14(OTU) 15(XIC) 17(XIO) 17(XIC)

Internal Bypassable
Interlocks are
Bypassed flag
Wrk_Bypass
L

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 49
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


The Check Command enables checking of ALL
Permissives and Interlocks (cancels the bypass).
Operator Command to
Check (not bypass)
all Interlocks
OCmd_Check
U

Operator Command to
Check (not bypass)
all Interlocks
OCmd_Check
14

OCmd_Check

*14(OTU) 14(XIC)

Wrk_Bypass

*13(OTL) *14(OTU) 15(XIC) 17(XIO) 17(XIC)

Internal Bypassable
Interlocks are
Bypassed flag
Wrk_Bypass
U

If the internal Bypass flag is set, Bypassable Interlocks ARE BYPASSED.


Bypassing is ACTIVE if Bypass selected OR in Maintenance Mode,
or in Override Mode if Override Bypassing is configured.
##### V2.0-00 2011-09-30: Moved Rung to take advantage of these bits in logic below #####
Internal Bypassable
1=Bypassable
1=Bypassing Active
Interlocks are
Interlocks are
(Bypassed or
Bypassed flag
Bypassed
Maintenance)
Wrk_Bypass
Sts_Bypass
Sts_BypActive
15
Analog Output Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
Analog Output Mode
Selection 1=Mode is
Override (supersedes
Prog, Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

Cfg_OvrdIntlk

15(XIC)

Mode.Sts_Maint

7(XIO) 7(XIC) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Mode.Sts_Ovrd

7(XIC) 11(XIC) 15(XIC) 29(XIC) 32(XIO)

Sts_BypActive

9(XIO) *15(OTE) 23(XIO) 29(XIO)

Sts_Bypass

*15(OTE) 16(XIC)

Wrk_Bypass

*13(OTL) *14(OTU) 15(XIC) 17(XIO) 17(XIC)

1=Override ignores
Bypassable Intlk;
0=always use Intlk
Cfg_OvrdIntlk

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 50
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


If a Maintenance Bypass function is active, display the Maintenance Bypass
Indicator (triangle symbol) on the graphic symbol. Bypass functions are:
* Interlock Bypass function is enabled
##### V2.0-00 2011-09-30 : Rung moved to be with other Bypass rungs. #####
1=Bypassable
Interlocks are
Bypassed
Sts_Bypass

1=Device has a
Maintenance Bypass
function active
Sts_MaintByp

16

Sts_Bypass

*15(OTE) 16(XIC)

Sts_MaintByp

*16(OTE)

Ready for Interlock Bypass if not bypassed.


Ready to cancel Bypass (resume checking) if bypassed.
##### V2.0-00 2011-09-30 : Rung moved to be with other Bypass rungs. #####
Internal Bypassable
1=Ready to receive
Interlocks are
OCmd_Bypass (enables
Bypassed flag
HMI button)
Wrk_Bypass
Rdy_Bypass
/

17

Internal Bypassable
Interlocks are
Bypassed flag
Wrk_Bypass

Rdy_Bypass

*17(OTE)

Rdy_Check

*17(OTE)

Wrk_Bypass

*13(OTL) *14(OTU) 15(XIC) 17(XIO) 17(XIC)

1=Ready to receive
OCmd_Check (enables
HMI button)
Rdy_Check

============================================================
DEVICE DISABLE/ENABLE COMMAND HANDLING
============================================================
The Disable Command disables the Analog Output.

18

##### V2.0-00 2011-09-30 : Modified to require Maintenance ACQUIRED #####


##### (and so Ready to Release Maintenance Acq.!) to Enable / Disable. #####
Maintenance Command
Maintenance Command
Analog Output Mode
to Disable Analog
to Disable Analog
Selection 1=Ready
Output
Output
for MCmd_Rel
MCmd_Disable
MCmd_Disable
Mode.Rdy_Rel
U

MCmd_Disable

*18(OTU) 18(XIC)

Mode.Rdy_Rel

18(XIC) 19(XIC) 21(XIC)

Wrk_Disabled

*18(OTL) *19(OTU) 20(XIC) 21(XIC) 21(XIO) 23(XIO)

Internal Analog
Output is Disabled
Wrk_Disabled
L

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!

Page 51
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

The Enable Command cancels the Disable and enables the Analog Output.

19

##### V2.0-00 2011-09-30 : Modified to require Maintenance ACQUIRED #####


##### (and so Ready to Release Maintenance Acq.!) to Enable / Disable. #####
Maintenance Command
Maintenance Command
Analog Output Mode
to Enable Analog
to Enable Analog
Selection 1=Ready
Output
Output
for MCmd_Rel
MCmd_Enable
MCmd_Enable
Mode.Rdy_Rel
U

MCmd_Enable

19(XIC) *19(OTU)

Mode.Rdy_Rel

18(XIC) 19(XIC) 21(XIC)

Wrk_Disabled

*18(OTL) *19(OTU) 20(XIC) 21(XIC) 21(XIO) 23(XIO)

Internal Analog
Output is Disabled
Wrk_Disabled
U

If the internal Disabled flag is set, the Drive is DISABLED.


Internal Analog
Output is Disabled
Wrk_Disabled

1=Output is Disabled
Sts_Disabled

20

Sts_Disabled

9(XIC) *20(OTE) 25(XIC) 29(XIC) 34(XIC)

Wrk_Disabled

*18(OTL) *19(OTU) 20(XIC) 21(XIC) 21(XIO) 23(XIO)

Ready to Disable device if in Maintenance Mode and device is NOT Disabled.


Ready to Enable device if in Maintenance Mode and device IS Disabled.
##### V2.0-00 2011-09-30: Modified to require Maintenance Mode, #####
##### and moved to be grouped with other Disable/Enable logic #####
Analog Output Mode
Selection 1=Ready
for MCmd_Rel
Mode.Rdy_Rel
21

Internal Analog
Output is Disabled
Wrk_Disabled
/
Internal Analog
Output is Disabled
Wrk_Disabled

Mode.Rdy_Rel

18(XIC) 19(XIC) 21(XIC)

Rdy_Disable

*21(OTE)

Rdy_Enable

*21(OTE)

Wrk_Disabled

*18(OTL) *19(OTU) 20(XIC) 21(XIC) 21(XIO) 23(XIO)

1=Ready to receive
MCmd_Disable
(enables HMI button)
Rdy_Disable
1=Ready to receive
MCmd_Enable (enables
HMI button)
Rdy_Enable

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 52
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
This rung processes received Reset Commands from:
1. The Operator via HMI Operator Command, or
2. Higher-level strategies via Program Command
3. Pushbuttons or other block via Input
and forwards the Reset to ALL Alarms and latched Shed conditions.
Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

22
Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Interlock Trip Alarm


Program Command to
Acknowledge alarm
IntlkTrip.PCmd_Ack
<PCmd_IntlkTripAck>
L
I/O Fault Alarm
Program Command to
Acknowledge alarm
IOFault.PCmd_Ack
<PCmd_IOFaultAck>
L

Program Command to
Reset Alarms
requiring Reset
PCmd_Reset

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Reset Alarms
requiring Reset
PCmd_Reset
U
NOP

1=Reset latched
Alarms
Inp_Reset

Interlock Trip Alarm


Program Command to
Reset latched alarm
IntlkTrip.PCmd_Reset
L

I/O Fault Alarm


Program Command to
Reset latched alarm
IOFault.PCmd_Reset
L
I/O Fault (latched)
sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault
U

Cfg_PCmdClear

22(XIC) 35(XIC)

Inp_Reset

22(XIC)

IntlkTrip.PCmd_Ack

*22(OTL)

IntlkTrip.PCmd_Reset

*22(OTL)

IOFault.PCmd_Ack

*22(OTL)

IOFault.PCmd_Reset

*22(OTL)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!
OCmd_Reset

22(XIC) *22(OTU)

OCmd_ResetAckAll

22(XIC) *22(OTU)

PCmd_Reset

*22(OTU) 22(XIC)

Wrk_IOFault

9(XIC) *9(OTL) *22(OTU) 23(XIC) 34(XIC) 39(XIC)

Page 53
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 54
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
ANALOG OUTPUT HANDLING
============================================================
If Interlocks are not OK (non-bypassable always checked, bypassable checked if not bypassed
(bypassables not checked in Maintenance Mode, or in Override Mode if Override ignores bypassable interlocks...),
or if there is an I/O Fault, either HOLD the CV or SHED it to the configured Interlock CV,
depending on the state of the Shed/Hold configuration.
We don't want the Interlock Trip alarm occuring if Hand or Disabled is going to win down below....

23

Analog Output Mode


Selection 1=Mode is
Hand (supersedes
Maint, Ovrd, Prog,
Oper)
Mode.Sts_Hand
<Sts_Hand>
/

1=Non-Bypassable
Interlocks OK,
Analog Output can be
set
Inp_NBIntlkOK
/
1=Interlocks OK,
Analog Output can be
set
Inp_IntlkOK
/

I/O Fault (latched)


sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault

Internal Analog
Output is Disabled
Wrk_Disabled
/

1=Error in Config:
see detail bits for
reason
Sts_Err
/

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/
Analog Output Mode
Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/
1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
Cfg_ShedHold
/

Working copy of
Speed Reference (for
limiting)
MOV
Move
Source Cfg_IntlkCV
0.0

1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
Cfg_ShedHold

1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
Cfg_ShedHold
/

Cfg_IntlkCV

23(MOV) 25(MOV) 27(MOV) 31(MOV)

Cfg_ShedHold

23(XIC) 23(XIO) 27(XIO) 27(XIC)

Inp_IntlkOK

9(XIO) 23(XIO) 29(XIO)

Wrk_CV
0.0

Working copy of
Speed Reference (for
limiting)
MOV
Move
Source Wrk_CVSet
0.0

Interlock Tripped
This Scan
Wrk_IntlkTripONS
ONS

Dest

1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
Cfg_ShedHold

Dest

Wrk_CV
0.0

1=Status: CV held or
forced by interlock
NOT OK (1-shot)
Sts_IntlkTrip
<IntlkTrip.Inp>

Final selected CV to
feed to RoC Limiter
NEQ
Not Equal
Source A Wrk_CVSet
0.0
Source B
Wrk_CV
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!

Page 55
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_NBIntlkOK

9(XIO) 23(XIO) 29(XIO)

Mode.Sts_Hand

7(XIO) 11(XIC) 23(XIO) 24(XIC) 29(XIC) 32(XIO)

Mode.Sts_Maint

7(XIC) 7(XIO) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Sts_BypActive

9(XIO) *15(OTE) 23(XIO) 29(XIO)

Sts_Err

*6(OTE) 9(XIC) 23(XIO) 25(XIC) 29(XIC) 34(XIC)

Sts_IntlkTrip

*23(OTE)

Wrk_CV

*7(MOV) *23(MOV) 23(NEQ) *24(CPT) *25(MOV) 26(MOV)

Wrk_CVSet

23(NEQ) 23(MOV) *26(MOV) 27(COP) *27(MOV) 29(MOV) 30(CMP) 30(NEQ) 30(MOV) 32(MOV) 34(LES) 34(GRT)

Wrk_Disabled

*18(OTL) *19(OTU) 20(XIC) 21(XIC) 21(XIO) 23(XIO)

Wrk_IntlkTripONS

*23(ONS)

Wrk_IOFault

*9(OTL) 9(XIC) *22(OTU) 23(XIC) 34(XIC) 39(XIC)

In HAND mode, set the CV (in EU) to match the tieback (in Raw units) from the downstream block.
##### V2.0-00, 2011-09-30: changed MOV to CPT to scale Inp_Tieback #####
##### from Raw units (same as Out_CV) to Engineering Units. #####
Analog Output Mode
Selection 1=Mode is
Hand (supersedes
Maint, Ovrd, Prog,
Oper)
Mode.Sts_Hand
<Sts_Hand>

Working copy of
Speed Reference (for
limiting)
CPT

Compute
Expression (Inp_Tieback-Cfg_CVRawMin)*(Cfg_CVEUMax-Cfg_CVEUMin)/(Cfg_CVRawMax-Cfg_CVRawMin)+

24

Cfg_CVEUMax

3(LES) 3(GEQ) 3(MOV) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVEUMin

3(LES) 3(MOV) 3(GEQ) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVRawMax

6(EQU) 24(CPT) 31(CPT)

Cfg_CVRawMin

6(EQU) 24(CPT) 31(CPT)

Inp_Tieback

24(CPT)

Mode.Sts_Hand

7(XIO) 11(XIC) 23(XIO) 24(XIC) 29(XIC) 32(XIO)

Wrk_CV

*7(MOV) 23(NEQ) *23(MOV) *24(CPT) *25(MOV) 26(MOV)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 56
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

ax-Cfg_CVRawMin)+Cfg_CVEUMin

25

Dest

Wrk_CV
0.0

If the Analog Output is DISABLED, set the CV to the configured Interlock ("safe") CV.
Working copy of
Speed Reference (for
1=Output is Disabled
limiting)
Sts_Disabled
MOV
Move
Dest
Source Cfg_IntlkCV
1=Error in Config:
0.0
see detail bits for
reason
Sts_Err

Cfg_IntlkCV

23(MOV) 25(MOV) 27(MOV) 31(MOV)

Sts_Disabled

9(XIC) *20(OTE) 25(XIC) 29(XIC) 34(XIC)

Sts_Err

*6(OTE) 9(XIC) 23(XIO) 25(XIC) 29(XIC) 34(XIC)

Wrk_CV

*7(MOV) 23(NEQ) *23(MOV) *24(CPT) *25(MOV) 26(MOV)

Wrk_CV
0.0

After all that selecting, copy the final result to a holding register. (We needed it above to do
the HOLD function on Interlock!)

26

This is where the CV will be when ramping (if any) is done.


Final selected CV to
feed to RoC Limiter
MOV
Move
Source Wrk_CV
Dest Wrk_CVSet
0.0
0.0

Wrk_CV

*7(MOV) 23(NEQ) *23(MOV) *24(CPT) *25(MOV) 26(MOV)

Wrk_CVSet

23(MOV) 23(NEQ) *26(MOV) *27(MOV) 27(COP) 29(MOV) 30(MOV) 30(NEQ) 30(CMP) 32(MOV) 34(GRT) 34(LES)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 57
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


This rung determines whether the selected Analog Output CV is +/- Infinity or +/- NotANumber.
In either case, the value cannot be passed into the rate limiter calculation or to the final output.
Instead, perform the designated SHED action: hold last output or shed to the Interlock CV.
Selected CV check
for Infinite or Non
A Number
COP
27

Copy File
Source Wrk_CVSet
Length
1

Dest Wrk_SelCVDINT

Selected CV check
for Infinite or Non
A Number
MEQ
Mask Equal
Source Wrk_SelCVDINT
16#0000_0000
Mask
16#7F80_0000
Compare 16#7F80_0000

1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
Cfg_ShedHold
/

1=Hold Output on
Interlock, 0=Go to
Cfg_IntlkCV
Cfg_ShedHold

Final selected CV to
feed to RoC Limiter
MOV
Move
Source Cfg_IntlkCV
0.0

Dest Wrk_CVSet
0.0

Final selected CV to
feed to RoC Limiter
MOV
Move
Source Wrk_CVOut
0.0

Dest Wrk_CVSet
0.0

Cfg_IntlkCV

23(MOV) 25(MOV) 27(MOV) 31(MOV)

Cfg_ShedHold

23(XIC) 23(XIO) 27(XIC) 27(XIO)

Wrk_CVOut

27(MOV) *29(MOV) *30(MOV) 30(ADD) *30(SUB) *30(ADD) 30(CMP) 30(NEQ) 30(SUB) 31(CPT) 32(MOV) 34(GRT) 34(EQU)
34(LES)

Wrk_CVSet

23(NEQ) 23(MOV) *26(MOV) 27(COP) *27(MOV) 29(MOV) 30(MOV) 30(NEQ) 30(CMP) 32(MOV) 34(GRT) 34(LES)

Wrk_SelCVDINT

*27(COP) 27(MEQ)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 58
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


In preparation for rate limiting the CV, this rung
determines the time since the previous scan, using a non-stop TON timer.
When we get here, we read the accumulator (in milliseconds, so
divide by 1000.0 to get seconds), then clear the accumulator. Next scan the accumulator will have
incremented up to the number of milliseconds since last scan. (Works for scan times up to 2 million seconds.....)
Scan Timer
(milliseconds,
always runs)
MOV
Move
Source 2147483647

28

Dest Wrk_ScanT.PRE
2147483647

Seconds since
previous scan
DIV
Divide
Source A Wrk_ScanT.ACC
0
Source B
1000.0

Wrk_ScanT

*28(TON)

Wrk_ScanT.ACC

*28(CLR) 28(DIV)

Wrk_ScanT.PRE

*28(MOV)

Wrk_ScanTime

*28(DIV) 30(NEQ) 30(MUL)

Dest Wrk_ScanTime
0.0

Scan Timer
(milliseconds,
always runs)
TON
Timer On Delay
Timer
Wrk_ScanT
Preset 2147483647
Accum
0

EN
DN

Scan Timer
(milliseconds,
always runs)
CLR
Clear
Dest Wrk_ScanT.ACC
0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 59
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


Under these conditions, SKIP the output ramping:
* The AOut is disabled
* The AOut is in Hand
* Rate of Change Skip is configures TRUE and, either, the Mode is Maintenance,
the Mode is Override, or an Interlock holds us out.
* The entered CV Rate of Change Limits are ZERO.
##### V2.0-00 Separate Rate of Change Limits for Increasing and Decreasing CV #####
1=Rate of Change
Limiting was skipped
this scan (Maint,
Ovrd, Intlk, Hand)
Sts_SkipRoCLim

1=Output is Disabled
Sts_Disabled
29
1=Error in Config:
see detail bits for
reason
Sts_Err
Analog Output Mode
Selection 1=Mode is
Hand (supersedes
Maint, Ovrd, Prog,
Oper)
Mode.Sts_Hand
<Sts_Hand>

1=Skip RoC Limiting


in Intlk, Maint,
Ovrd modes
Cfg_SkipRoCLim

Analog Output Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
Analog Output Mode
Selection 1=Mode is
Override (supersedes
Prog, Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>
1=Non-Bypassable
Interlocks OK,
Analog Output can be
set
Inp_NBIntlkOK
/
1=Interlocks OK,
Analog Output can be
set
Inp_IntlkOK
/

Selected CV Rate of
Change Limit
Increasing
EQU
Equal
Source A Wrk_CVRoCLimInc
0.0
Source B
0.0

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

Selected CV Rate of
Change Limit
Increasing
EQU
Equal
Source A Wrk_CVRoCLimInc
0.0
Source B
0.0

Wroking value of CV
after Rate Limiting
MOV
Move
Source Wrk_CVSet
0.0

Dest Wrk_CVOut
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 60
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

Cfg_SkipRoCLim

29(XIC)

Inp_IntlkOK

9(XIO) 23(XIO) 29(XIO)

Inp_NBIntlkOK

9(XIO) 23(XIO) 29(XIO)

Mode.Sts_Hand

7(XIO) 11(XIC) 23(XIO) 24(XIC) 29(XIC) 32(XIO)

Mode.Sts_Maint

7(XIO) 7(XIC) 8(XIO) 11(XIC) 12(XIC) 15(XIC) 23(XIO) 29(XIC)

Mode.Sts_Ovrd

7(XIC) 11(XIC) 15(XIC) 29(XIC) 32(XIO)

Sts_BypActive

9(XIO) *15(OTE) 23(XIO) 29(XIO)

Sts_Disabled

9(XIC) *20(OTE) 25(XIC) 29(XIC) 34(XIC)

Sts_Err

*6(OTE) 9(XIC) 23(XIO) 25(XIC) 29(XIC) 34(XIC)

Sts_SkipRoCLim

*29(OTE) 30(XIO)

Wrk_CVOut

27(MOV) *29(MOV) *30(MOV) *30(SUB) *30(ADD) 30(ADD) 30(SUB) 30(CMP) 30(NEQ) 31(CPT) 32(MOV) 34(EQU) 34(GRT)
34(LES)

Wrk_CVRoCLimInc

*7(MOV) *8(MOV) 8(EQU) 8(GRT) 8(LES) 29(EQU) 30(MUL) 32(MOV)

Wrk_CVSet

23(NEQ) 23(MOV) *26(MOV) 27(COP) *27(MOV) 29(MOV) 30(MOV) 30(CMP) 30(NEQ) 32(MOV) 34(GRT) 34(LES)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 61
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

If the conditions abov

If the time since

* Calculate the amoun


* If we're within
* If we're not within a single step, step on
and sho

##### V2.0-00 Separate Rate of Ch

30

1=Rate of Change
Limiting was skipped
this scan (Maint,
Ovrd, Intlk, Hand)
Sts_SkipRoCLim
/

Final selected CV to
feed to RoC Limiter
NEQ
Not Equal
Source A Wrk_CVSet
0.0
Source B Wrk_CVOut
0.0

Seconds since
previous scan
NEQ
Not Equal
Source A Wrk_ScanTime
0.0
Source B
0.0

CMP
Compare
Expression Wrk_CVOut<=(Wrk

Sts_Ramping

*30(OTE) 34(XIC)

Sts_SkipRoCLim

*29(OTE) 30(XIO)

Wrk_CVOut

27(MOV) *29(MOV) 30(CMP) *30(SUB) *30(MOV) 30(ADD) *30(ADD) 30(NEQ) 30(SUB) 31(CPT) 32(MOV) 34(GRT) 34(EQU)
34(LES)

Wrk_CVRoCLimDec

*7(MOV) 8(GRT) *8(MOV) 8(EQU) 8(LES) 30(MUL) 32(MOV)

Wrk_CVRoCLimInc

*7(MOV) 8(LES) 8(EQU) 8(GRT) *8(MOV) 29(EQU) 30(MUL) 32(MOV)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Total number of rungs in routine: %1!d!

Page 62
22/12/2015 08,56,22
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_CVSet

23(MOV) 23(NEQ) *26(MOV) 27(COP) *27(MOV) 29(MOV) 30(CMP) 30(MOV) 30(NEQ) 32(MOV) 34(GRT) 34(LES)

Wrk_ScanTime

*28(DIV) 30(MUL) 30(NEQ)

Wrk_StepDec

30(CMP) *30(MUL) 30(SUB)

Wrk_StepInc

30(CMP) 30(ADD) *30(MUL)

If the conditions above are NOT TRUE, do the rate limiting:


If the time since the previous scan is not ZERO:

* Calculate the amount to step this scan toward the final CV


* If we're within a single setp, go to the final CV
a single step, step one step closer (up or down, whichever way we need to go)
and show the "Ramping" status.
Separate Rate of Change Limits for Increasing and Decreasing CV #####
Amount to change
CVOut this scan for
increase rate
limiting
MUL
Multiply
Dest Wrk_StepInc
Source A Wrk_CVRoCLimInc
0.0
0.0
Source B
Wrk_ScanTime
0.0

Wrk_CVOut<=(Wrk_CVSet+Wrk_StepDec)

Amount to change
CVOut this scan for
decrease rate
limiting
MUL
Multiply
Source A Wrk_CVRoCLimDec
0.0
Source B
Wrk_ScanTime
0.0

CMP
Compare
Expression Wrk_CVOut>=(Wrk_CVSet-Wrk_StepInc)

Dest Wrk_

Wroking value of CV
after Rate Limiting
MOV
Move
Source Wrk_CVSet
0.0

Dest Wrk

1=CV
CMP
Compare
Expression Wrk_CVOut>(Wrk_CVSet+Wrk_StepDec)

Sts

Wroking value of CV
after Rate Limiting
SUB
Subtract
Source A

Wrk_CVOut
0.0
Source B Wrk_StepDec
0.0

Dest Wrk_CVOut
0.0

CMP
Compare
Expression Wrk_CVOut<=(Wrk_CVSet-Wrk_StepInc)

Wroking value of CV
after Rate Limiting
ADD
Add
Source A

Wrk_CVOut
0.0
Source B Wrk_StepInc
0.0

Dest Wrk_CVOut
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 63
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

Wrk_StepDec
0.0

Wrk_CVOut
0.0
1=CV is ramping to
target
Sts_Ramping

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 64
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

=============================================
OUTPUT GENERATION
=============================================
This rung generates the instruction Outpu

If not in simulation, scale the generated Wrk_CVOut to Ra


If in Simulation, set Out_CV to zero.

Ffixed scaling CPT -- previously, raw and EU were swapped. Fix

31

1=I/O are being


simulated, set
output CV to 0,
ignore I/O Fault
Inp_Sim
/

1=Error in Config:
Scaled CV EU Min =
Max
Err_EU
/

1=Error in Config:
Raw Output Scaling
Min = Max
Err_Raw
/

Compute
Expression (Wrk_CVOut-Cfg_CVEUMin)*(Cfg_CVRawMax

1=Error in Config:
Scaled CV EU Min =
Max
Err_EU
1=Error in Config:
Raw Output Scaling
Min = Max
Err_Raw

1=I/O are being


simulated, set
output CV to 0,
ignore I/O Fault
Inp_Sim

Cfg_CVEUMax

3(LES) 3(GEQ) 3(MOV) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVEUMin

3(LES) 3(GEQ) 3(MOV) 6(EQU) 24(CPT) 31(CPT)

Cfg_CVRawMax

6(EQU) 24(CPT) 31(CPT)

Cfg_CVRawMin

6(EQU) 24(CPT) 31(CPT)

Cfg_IntlkCV

23(MOV) 25(MOV) 27(MOV) 31(MOV)

Err_EU

*6(OTE) 31(XIC) 31(XIO)

Err_Raw

*6(OTE) 31(XIC) 31(XIO)

Inp_Sim

9(XIO) 31(XIC) 31(XIO)

Out_CV

*31(MOV) *31(CPT) *31(CLR)

Wrk_CVOut

27(MOV) *29(MOV) 30(CMP) *30(ADD) 30(NEQ) 30(ADD) *30(MOV) *30(SUB) 30(SUB) 31(CPT) 32(MOV) 34(LES) 34(EQU)
34(GRT)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 65
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

===============================

===============================
s the instruction Output

ed Wrk_CVOut to Raw Units in Out_CV

U were swapped. Fixed Err_EU and Err_Raw.


CV Output in Raw
(I/O Card) Units
CPT

Min)*(Cfg_CVRawMax-Cfg_CVRawMin)/(Cfg_CVEUMax-Cfg_CVEUMin)+Cfg_CVRawMin

Dest

Out_CV
0.0

CV Output in Raw
(I/O Card) Units
MOV
Move
Source Cfg_IntlkCV
0.0

Dest

Out_CV
0.0

CV Output in Raw
(I/O Card) Units
CLR
Clear
Out_CV
Dest
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 66
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

==========

==========
Based

##### V2.0-00 Se

32

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack

Analog Output Mode


Selection 1=Mode is
Override (supersedes
Prog, Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>
/

Analog Output Mode


Selection 1=Mode is
Hand (supersedes
Maint, Ovrd, Prog,
Oper)
Mode.Sts_Hand
<Sts_Hand>
/

1=Prog/Oper Settings
track Override/Hand
CV
Cfg_SetTrackOvrdHand

Program Setting of
CV Rate of Change
Limit, Increasing,
(in EU/sec)
MOV
Move
Source Val_CVRoCLimInc
0.0

Dest PSet_CVRoCLimInc
0.0

Program S
CV Rate of
Limit, Dec
(in EU
MO
Move
Source Val_CVRoCLimDec
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 67
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
VALUES PROCESSING
============================================================
Val_CVSet (commanded output)
Based on Mode and Tracking settings, copy the working CV setting
back into the Operator and Program Settings.
##### V2.0-00 Separate Rate of Change Limits for Increasing and Decreasing CV #####
Value of selected CV
Setting (before rate
limiting, in EU)
MOV
Move
Source Wrk_CVSet
0.0

Dest Val_CVSet
0.0

Move
Source Wrk

Move
Source Wrk_CV

Program Setting of
Controlled Variable
(output) (in EU)
MOV
Move
Source Val_CVSet
0.0
Program Setting of
CV Rate of Change
Limit, Decreasing,
(in EU/sec)
MOV
Dest PSet_CVRoCLimDec
0.0

Operator Setting of
CV Rate of Change
Limit, Increasing,
(in EU/sec)
MOV
Move
Source Val_CVRoCLimInc
0.0

Dest OSet_CVRoCLimInc
0.0

Dest PSet_CV
0.0

Op
CV
Lim

Move
Source Val_CVRoCLi

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 68
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

Value of CV Output
(after rate
limiting) (in EU)
MOV
Move
Source Wrk_CVOut
0.0

Dest Val_CVOut
0.0

Value of CV Rate of
Change Limit,
Increasing, (in
EU/sec)
MOV
Wrk_CVRoCLimInc
0.0

Dest Val_CVRoCLimInc
0.0

Value of CV Rate of
Change Limit,
Decreasing, (in
EU/sec)
MOV
Wrk_CVRoCLimDec
0.0

Dest Val_CVRoCLimDec
0.0

Operator Setting of
Controlled Variable
(output) (in EU)
MOV
Move
Source Val_CVSet
0.0

Dest OSet_CV
0.0

Operator Setting of
CV Rate of Change
Limit, Decreasing,
(in EU/sec)
MOV
Val_CVRoCLimDec
0.0

Dest OSet_CVRoCLimDec
0.0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Cfg_SetTrack

Page 69
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


11(XIO) 12(XIO) 32(XIC)

Cfg_SetTrackOvrdHand 11(XIO) 32(XIC)


Mode.Sts_Hand

7(XIO) 11(XIC) 23(XIO) 24(XIC) 29(XIC) 32(XIO)

Mode.Sts_Ovrd

7(XIC) 11(XIC) 15(XIC) 29(XIC) 32(XIO)

OSet_CV

7(LES) 7(GRT) 7(MOV) *7(MOV) *32(MOV)

OSet_CVRoCLimDec

7(MOV) *32(MOV)

OSet_CVRoCLimInc

7(MOV) *32(MOV)

PSet_CV

7(GRT) 7(LES) *7(MOV) 7(MOV) *32(MOV)

PSet_CVRoCLimDec

7(MOV) *32(MOV)

PSet_CVRoCLimInc

7(MOV) *32(MOV)

Val_CVOut

*32(MOV) 33(GRT)

Val_CVRoCLimDec

*32(MOV) 32(MOV)

Val_CVRoCLimInc

32(MOV) *32(MOV)

Val_CVSet

32(MOV) *32(MOV)

Wrk_CVOut

27(MOV) *29(MOV) *30(ADD) 30(SUB) 30(NEQ) 30(CMP) *30(SUB) 30(ADD) *30(MOV) 31(CPT) 32(MOV) 34(GRT) 34(LES)
34(EQU)

Wrk_CVRoCLimDec

*7(MOV) 8(EQU) *8(MOV) 8(GRT) 8(LES) 30(MUL) 32(MOV)

Wrk_CVRoCLimInc

*7(MOV) 8(LES) *8(MOV) 8(EQU) 8(GRT) 29(EQU) 30(MUL) 32(MOV)

Wrk_CVSet

23(MOV) 23(NEQ) *26(MOV) *27(MOV) 27(COP) 29(MOV) 30(NEQ) 30(CMP) 30(MOV) 32(MOV) 34(GRT) 34(LES)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 70
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 71
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


If the Output CV (in CV Engineering Units, Val_CVOut) is above the
configured maximum "inactive" CV, show the analog output graphic symbol
on the HMI as "active" (e.g., valve open).

33

Value of CV Output
(after rate
limiting) (in EU)
GRT
Greater Than (A>B)
Source A
Val_CVOut
0.0
Source B Cfg_MaxInactiveCV
0.0

Cfg_MaxInactiveCV

33(GRT)

Sts_Active

*33(OTE)

Val_CVOut

*32(MOV) 33(GRT)

1=CV is greater than


Cfg_MaxInactiveCV,
show graphic symbol
as "active"
Sts_Active

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 72
22/12/2015 08,56,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


This rung generates the enumerated Device Status:
0 = At Target
1 = Ramping Down
2 = Ramping Up
3 = Clamped at CVMin
4 = Clamped at CVMax
33 = Disabled (here or in EnableInFalse routine)
And this rung generates the enumerated Device Fault Status:
0 = none
32 = I/O Fault
34 = Configuration Error

34

##### V2.0-03 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Buffer for building
Val_Sts
Val_Fault
CLR
CLR
Clear
Clear
Wrk_Sts
Wrk_Fault
Dest
Dest
0
0
1=CV is ramping to
target
Sts_Ramping

Wroking value of CV
after Rate Limiting
GRT
Greater Than (A>B)
Source A Wrk_CVOut
0.0
Source B Wrk_CVSet
0.0
Wroking value of CV
after Rate Limiting
LES
Less Than (A<B)
Source A Wrk_CVOut
0.0
Source B Wrk_CVSet
0.0

1=CV Set is clamped


at CVMin or CVMax
Sts_Clamped

Wroking value of CV
after Rate Limiting
EQU
Equal
Source A Wrk_CVOut
0.0
Source B Cfg_MinCV
0.0
Wroking value of CV
after Rate Limiting
EQU
Equal
Source A Wrk_CVOut
0.0
Source B Cfg_MaxCV
100.0

Buffer for building


Val_Sts
MOV
Move
Source

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

I/O Fault (latched)


sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV
Move
Source

32

Dest Wrk_Fault
0

Buffer for building


Val_Sts
MOV

1=Output is Disabled
Sts_Disabled
Move
Source

1=Error in Config:
see detail bits for
reason
Sts_Err

Dest

33

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 73
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

Sts_Err

MOV
Move
Source

0=AtTgt 1=RampDn
2=RampUp 3=ClampMin
4=ClampMax 33=Disa
MOV
Move
Source Wrk_Sts
Dest
Val_Sts
0
0

34

Dest Wrk_Fault
0

Device Fault Status


0=none, 32=I/OFault,
34=CfgErr
MOV
Move
Source Wrk_Fault
0

Dest Val_Fault
0

Cfg_MaxCV

6(LES) 7(GRT) 7(MOV) 34(EQU)

Cfg_MinCV

6(LES) 7(LES) 7(MOV) 34(EQU)

Sts_Clamped

*7(OTE) 34(XIC)

Sts_Disabled

9(XIC) *20(OTE) 25(XIC) 29(XIC) 34(XIC)

Sts_Err

*6(OTE) 9(XIC) 23(XIO) 25(XIC) 29(XIC) 34(XIC)

Sts_Ramping

*30(OTE) 34(XIC)

Val_Fault

*34(MOV)

Val_Sts

*34(MOV)

Wrk_CVOut

27(MOV) *29(MOV) *30(MOV) *30(ADD) 30(SUB) *30(SUB) 30(ADD) 30(NEQ) 30(CMP) 31(CPT) 32(MOV) 34(GRT) 34(EQU)
34(LES)

Wrk_CVSet

23(MOV) 23(NEQ) *26(MOV) 27(COP) *27(MOV) 29(MOV) 30(NEQ) 30(MOV) 30(CMP) 32(MOV) 34(LES) 34(GRT)

Wrk_Fault

*34(CLR) *34(MOV) 34(MOV)

Wrk_IOFault

9(XIC) *9(OTL) *22(OTU) 23(XIC) 34(XIC) 39(XIC)

Wrk_Sts

34(MOV) *34(MOV) *34(CLR)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 74
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
ALARM PROCESSING
============================================================
Pass the Cfg_PCmdClear configuration down to each P_Alarm instance.
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

##### V2.0-02 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01 #####


Interlock Trip Alarm
1=Clear Program
Commands on receipt
0=Leave Set
IntlkTrip.Cfg_PCmdClear

I/O Fault Alarm


1=Clear Program
Commands on receipt
0=Leave Set
IOFault.Cfg_PCmdClear

35

Cfg_PCmdClear

22(XIC) 35(XIC)

IntlkTrip.Cfg_PCmdClear *35(OTE)
IOFault.Cfg_PCmdClear *35(OTE)

Handle Interlock Trip Alarm Processing using the standard P_Alarm AOI.
Interlock Trip Alarm
P_Alarm
Alarm
P_Alarm
IntlkTrip ...
Inp
1
Inp_Reset
0

36

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

IntlkTrip

*36(P_Alarm)

Handle I/O Fault Alarm Processing using the standard P_Alarm AOI.
I/O Fault Alarm
P_Alarm
Alarm
P_Alarm
IOFault ...
Inp
1
Inp_Reset
0

37

IOFault

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*37(P_Alarm)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 75
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit
summary status bit (which puts the "I" box on the graphic symbol).
Interlock Trip Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
IntlkTrip.Sts_AlmInh

1=One or more Alarms


Inhibited, Disabled
or Suppressed
Sts_AlmInh

38
I/O Fault Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
IOFault.Sts_AlmInh

IntlkTrip.Sts_AlmInh

38(XIC)

IOFault.Sts_AlmInh

38(XIC)

Sts_AlmInh

*38(OTE)

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 76
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).

39

##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and moved down to after the Rdy_Reset logic. #####
Buffer for building
Val_Notify
CLR
Clear
Wrk_Notify
Dest
0
Interlock Trip Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A IntlkTrip.Val_Notify
0
Source B
Wrk_Notify
0
I/O Fault Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A IOFault.Val_Notify
0
Source B
Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source IntlkTrip.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source IOFault.Val_Notify
0

Interlock Trip Alarm


Ready to receive
OCmd_Ack (enable
button)
IntlkTrip.Rdy_Ack

Dest Wrk_Notify
0

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll

I/O Fault Alarm


Ready to receive
OCmd_Ack (enable
button)
IOFault.Rdy_Ack
Interlock Trip Alarm
Ready to receive
OCmd_Reset (enable
button)
IntlkTrip.Rdy_Reset

1=At least one Alarm


requires Reset
Rdy_Reset

I/O Fault Alarm


Ready to receive
OCmd_Reset (enable
button)
IOFault.Rdy_Reset
I/O Fault (latched)
sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault

Input Communication
Status 0=OK, 1=fail
Inp_IOFault
/

Buffer for building

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 77
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output

Buffer for building


Val_Notify
Wrk_Notify.0
Current Alarm Level
and Acknowledgement
(enumeration)
MOV
Move
Source Wrk_Notify
0

Inp_IOFault

9(XIC) 39(XIO)

IntlkTrip.Rdy_Ack

39(XIC)

IntlkTrip.Rdy_Reset

39(XIC)

IntlkTrip.Val_Notify

39(GRT) 39(MOV)

IOFault.Rdy_Ack

39(XIC)

IOFault.Rdy_Reset

39(XIC)

IOFault.Val_Notify

39(MOV) 39(GRT)

Rdy_Reset

*39(OTE)

Rdy_ResetAckAll

*39(OTE)

Val_Notify

*39(MOV)

Wrk_IOFault

*9(OTL) 9(XIC) *22(OTU) 23(XIC) 34(XIC) 39(XIC)

Wrk_Notify

39(GRT) 39(MOV) *39(CLR) *39(MOV)

Wrk_Notify.0

*39(OTE)

Dest Val_Notify
0

RSLogix 5000

P_AOut Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Logic
Total number of rungs in routine: 40
Data Context: P_AOut <definition>

Page 78
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control Analog Output


(End)

RSLogix 5000

P_AOut Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:Prescan
Total number of rungs in routine: 2
Data Context: P_AOut <definition>

Page 79
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership. clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
CLR
CLR
Clear
Clear
Dest
Dest
PSet_Owner
Val_Owner
0
0

PSet_Owner

*0(CLR)

Val_Owner

*0(CLR)

"Lurking" Operator Commands are cleared, as well as a Program Reset.


Operator Command to
Bypass all
Operator Command to
Maintenance Command
Maintenance Command
Bypassable
Check (not bypass)
to Disable Analog
to Enable Analog
Interlocks
all Interlocks
Output
Output
OCmd_Bypass
OCmd_Check
MCmd_Disable
MCmd_Enable
U
U
U
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

MCmd_Disable

*1(OTU)

MCmd_Enable

*1(OTU)

OCmd_Bypass

*1(OTU)

OCmd_Check

*1(OTU)

OCmd_Reset

*1(OTU)

OCmd_ResetAckAll

*1(OTU)

PCmd_Reset

*1(OTU)

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Program Command to
Reset Alarms
requiring Reset
PCmd_Reset
U

(End)

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 80
22/12/2015 08,56,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled


============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this device is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").

THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!
1=Clear Program
1=Clear Program
Commands on receipt
Commands on receipt
0=Leave Set
0=Leave Set
Analog Output Mode
Selection
Cfg_PCmdClear
Cfg_PCmdClear
<Mode.Cfg_PCmdClear> <Mode.Cfg_PCmdClear>
P_Mode
/
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock
Signature ID: C1F72CF2

Cfg_PCmdClear

0(XIO) 0(XIC)

Mode

*0(P_Mode)

First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
0
0
Source B
0
Dest
Val_Owner
0
Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

1(MOV) 1(EQU) 1(NEQ)

Val_Owner

*1(MOV) 1(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 81
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled


This rung publishes the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the CV EU configuration of a PID, so the AOut and PID ranges are in lockstep.
Minimum of scaled
Maximum of scaled
CV Maximum in
range = MIN
range = MAX
Engineering Units
(Cfg_CVEUMin,
(Cfg_CVEUMin,
(for scaling)
Cfg_CVEUMax)
Cfg_CVEUMax)
GEQ
MOV
MOV
Grtr Than or Eql (A>=B)
Move
Move
Source A Cfg_CVEUMax
Source Cfg_CVEUMin
Source Cfg_CVEUMax
100.0
0.0
100.0
Source B Cfg_CVEUMin
Dest
Val_CVEUMin
Dest
Val_CVEUMax
0.0
0.0
100.0

CV Maximum in
Engineering Units
(for scaling)
LES
Less Than (A<B)
Source A Cfg_CVEUMax
100.0
Source B Cfg_CVEUMin
0.0

Cfg_CVEUMax

2(MOV) 2(GEQ) 2(LES) 3(EQU) 4(CPT)

Cfg_CVEUMin

2(GEQ) 2(MOV) 2(LES) 3(EQU) 4(CPT)

Val_CVEUMax

*2(MOV)

Val_CVEUMin

*2(MOV)

Maximum of scaled
range = MAX
(Cfg_CVEUMin,
Cfg_CVEUMax)
MOV
Move
Source Cfg_CVEUMin
0.0
Dest
Val_CVEUMax
100.0

Minimum of scaled
range = MIN
(Cfg_CVEUMin,
Cfg_CVEUMax)
MOV
Move
Source Cfg_CVEUMax
100.0
Dest
Val_CVEUMin
0.0

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 82
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled


This rung handles the reports of all Bad Configuration Status.
Individual bits are provided for various status:
Crossed CV Limits or Invalid Rate of Change Limit
Bad Engineering Units Scaling configs (Max = Min)
Bad Raw Scaling configs (Max = Min)
Then a summary Bad Config status is provided, simply an OR of the individual bits.
Maximum CV (in EU,
for limiting)
LES
Less Than (A<B)
Source A Cfg_MaxCV
100.0
Source B Cfg_MinCV
0.0

1=Error in Config:
CV Limits swapped
Err_Limit

1=Error in Config:
see detail bits for
reason
Sts_Err

Maximum allowed CV
Rate of Change
(Increasing) Setting
(EU/sec)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_MaxCVRoCInc
10.0
Source B
0.0

CV Maximum in
Engineering Units
(for scaling)
EQU
Equal
Source A Cfg_CVEUMax
100.0
Source B Cfg_CVEUMin
0.0

1=Error in Config:
Scaled CV EU Min =
Max
Err_EU

CV Maximum in I/O
(raw) Units (for
scaling)
EQU
Equal
Source A Cfg_CVRawMax
100.0
Source B Cfg_CVRawMin
0.0

1=Error in Config:
Raw Output Scaling
Min = Max
Err_Raw

Interlock Trip Alarm


1=Error in Config:
see detail Err_ bits
for reason
IntlkTrip.Sts_Err

1=Error in Config:
Alarm Throttle Time
or Severity
Err_Alarm

I/O Fault Alarm


1=Error in Config:
see detail Err_ bits
for reason
IOFault.Sts_Err

Cfg_CVEUMax

2(LES) 2(MOV) 2(GEQ) 3(EQU) 4(CPT)

Cfg_CVEUMin

2(LES) 2(GEQ) 2(MOV) 3(EQU) 4(CPT)

Cfg_CVRawMax

3(EQU) 4(CPT)

Cfg_CVRawMin

3(EQU) 4(CPT)

Cfg_MaxCV

3(LES)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut

Cfg_MaxCVRoCInc

3(LEQ)

Cfg_MinCV

3(LES)

Err_Alarm

*3(OTE)

Err_EU

*3(OTE)

Err_Limit

*3(OTE)

Err_Raw

*3(OTE)

IntlkTrip.Sts_Err

3(XIC)

IOFault.Sts_Err

3(XIC)

Sts_Err

*3(OTE) 4(XIC) 4(XIO) 8(XIC)

Page 83
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 84
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled


If this Analog Output is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Reset the Alarm Timers
Clear the Alarms and the Alarm Notification level
Show the Analog Output as "Disabled"
Set the Output to the configured ("safe") Interlock CV value.
(In simulation, Out_CV is set to zero.)
Other data are left in Last State!
Fixed scaling CPT -- previously, raw and EU were swapped.
1=Alarm: CV held or
forced by interlock
NOT OK
1=I/O Fault Alarm
Alm_IntlkTrip
Alm_IOFault
<IntlkTrip.Alm>
<IOFault.Alm>
U
U

1=Output is Disabled
Sts_Disabled
L

1=Device is Not
Ready to be operated
Sts_NotRdy
L

1=One o
Inhibit
or S
St

1=Analog Output
available for
control by
automation (Prog)
Sts_Available
U

Final selected
feed to RoC
MOV
Move
Source
Dest

1=I/O are being


simulated, set
output CV to 0,
ignore I/O Fault
Inp_Sim
/

1=Error in Config:
see detail bits for
reason
Sts_Err
/

CV Output in Raw
(I/O Card) Units
CPT
Compute
Dest

Expression (Wrk_CVOut-Cfg_CVEUMin)*(Cfg_CVRawMax-Cfg_CVRawMin)/(Cfg_CV
1=I/O are being
simulated, set
output CV to 0,
ignore I/O Fault
Inp_Sim
1=Error in Config:
see detail bits for
reason
Sts_Err

Alm_IntlkTrip

*4(OTU)

Alm_IOFault

*4(OTU)

Cfg_CVEUMax

2(GEQ) 2(LES) 2(MOV) 3(EQU) 4(CPT)

Cfg_CVEUMin

2(LES) 2(GEQ) 2(MOV) 3(EQU) 4(CPT)

Cfg_CVRawMax

3(EQU) 4(CPT)

Cfg_CVRawMin

3(EQU) 4(CPT)

Cfg_IntlkCV

4(MOV)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut
Inp_Sim

4(XIC) 4(XIO)

Out_CV

*4(CPT) *4(CLR)

Sts_Active

*4(OTU)

Sts_AlmInh

*4(OTL)

Sts_Available

*4(OTU)

Sts_Disabled

*4(OTL)

Sts_Err

*3(OTE) 4(XIO) 4(XIC) 8(XIC)

Sts_MaintByp

*4(OTU)

Sts_NotRdy

*4(OTL)

Val_Notify

*4(CLR)

Wrk_CVOut

4(CPT) *4(MOV)

Wrk_CVSet

*4(MOV)

1=One or more Alarms


Inhibited, Disabled
or Suppressed
Sts_AlmInh
L

automation (Prog)

Current Alarm Level


and Acknowledgement
(enumeration)
CLR
Clear
Dest
Val_Notify
0

1=Device has a
Maintenance Bypass
function active
Sts_MaintByp
U

Final selected CV to
feed to RoC Limiter
MOV
Cfg_IntlkCV
0.0
Wrk_CVSet
0.0

Page 85
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1=CV is greater than


Cfg_MaxInactiveCV,
show graphic symbol
as "active"
Sts_Active
U

Wroking value of CV
after Rate Limiting
MOV
Move
Source Cfg_IntlkCV
0.0
Dest
Wrk_CVOut
0.0

Out_CV
0.0
CVRawMin)/(Cfg_CVEUMax-Cfg_CVEUMin)+Cfg_CVRawMin

CV Output in Raw
(I/O Card) Units
CLR
Clear
Dest
Out_CV
0.0

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 86
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled

The rate limiter's scan timer must run and clear every scan, whether the Instruction
is true or not. Doing so here avoids a bump in the Value on transition to EnableIn TRUE.
Scan Timer
(milliseconds,
always runs)
TON
Timer On Delay
Timer
Wrk_ScanT
Preset 2147483647
Accum
0

Wrk_IOFault

*5(OTU)

Wrk_ScanT

*5(TON)

Wrk_ScanT.ACC

*5(CLR)

EN
DN

Scan Timer
(milliseconds,
always runs)
CLR
Clear
Dest Wrk_ScanT.ACC
0

I/O Fault (latched)


sheds (hold or to
Interlock CV) and
requires reset
Wrk_IOFault
U

"Lurking" Operator Commands are cleared, as well as a Program Reset.


Operator Command to
Bypass all
Operator Command to
Maintenance Command
Maintenance Command
Bypassable
Check (not bypass)
to Disable Analog
to Enable Analog
Interlocks
all Interlocks
Output
Output
OCmd_Bypass
OCmd_Check
MCmd_Disable
MCmd_Enable
U
U
U
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

MCmd_Disable

*6(OTU)

MCmd_Enable

*6(OTU)

OCmd_Bypass

*6(OTU)

OCmd_Check

*6(OTU)

OCmd_Reset

*6(OTU)

OCmd_ResetAckAll

*6(OTU)

PCmd_Reset

*6(OTU)

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Program Command to
Reset Alarms
requiring Reset
PCmd_Reset
U

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 87
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled


Since we're not processing Operator Commands or Settings, we're not READY for any of them either!

##### V2.0-00 2011-09-30: Changed Rdy_OSet to Rdy_CVRoCLimInc and Rdy_CVRoCLimDec #####


1=Ready to receive
1=Ready to receive
1=Ready to receive
1=Ready to receive
OCmd_Bypass (enables
OCmd_Check (enables
MCmd_Disable
MCmd_Enable (enables
HMI button)
HMI button)
(enables HMI button)
HMI button)
Rdy_Bypass
Rdy_Check
Rdy_Disable
Rdy_Enable
U
U
U
U

1=At least one Alarm


requires Reset
Rdy_Reset
U

Rdy_Bypass

*7(OTU)

Rdy_Check

*7(OTU)

Rdy_CV

*7(OTU)

Rdy_CVRoCLimDec

*7(OTU)

Rdy_CVRoCLimInc

*7(OTU)

Rdy_Disable

*7(OTU)

Rdy_Enable

*7(OTU)

Rdy_Reset

*7(OTU)

Rdy_ResetAckAll

*7(OTU)

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll
U

1=Ready to receive
OSet_CV (enables
data entry field)
Rdy_CV
U

1=Ready to receive
OSet_CVRoCLimInc
(enables data entry
field)
Rdy_CVRoCLimInc
U

1=Ready to receive
OSet_CVRoCLimDec
(enables data entry
field)
Rdy_CVRoCLimDec
U

RSLogix 5000

P_AOut Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_AOut:EnableInFalse
Total number of rungs in routine: 9
Data Context: P_AOut <definition>

Page 88
22/12/2015 08,56,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted, Output OFF (zero), Alarms disabled


This rung generates the enumerated Device Status:
0 = At Target
1 = Ramping Down
2 = Ramping Up
3 = Clamped at CVMin
4 = Clamped at CVMax
33 = Disabled (here or in EnableInFalse routine)
And this rung generates the enumerated Device Fault Status:
0 = none
32 = I/O Fault
34 = Configuration Error
##### V2.0-03 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Device Fault Status
0=none, 32=I/OFault,
34=CfgErr
CLR
Clear
Dest
Val_Fault
0

1=Error in Config:
see detail bits for
reason
Sts_Err

Device Fault Status


0=none, 32=I/OFault,
34=CfgErr
MOV
Move
Source
34
Dest

0=AtTgt 1=RampDn
2=RampUp 3=ClampMin
4=ClampMax 33=Disa
MOV
Move
33
Source
Dest

Sts_Err

*3(OTE) 4(XIC) 4(XIO) 8(XIC)

Val_Fault

*8(MOV) *8(CLR)

Val_Sts

*8(MOV)

Wrk_Fault

8(MOV)

Val_Sts
0

Val_Fault
0

Device Fault Status


0=none, 32=I/OFault,
34=CfgErr
MOV
Move
Wrk_Fault
Source
0
Dest
Val_Fault
0

(End)

RSLogix 5000

P_DIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn

Page 1
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_DIn v2.0 03 Release


Rockwell Automation

Discrete Input
Available Languages
Relay Ladder

Function Block

Structured Text
P_DIn();
Parameters
Required
X

Name
P_DIn
EnableIn
EnableOut
Inp_PV
Inp_PVBad
Inp_Target
Inp_Gate
Inp_Sim
Inp_Reset
Cfg_NoSubstPV
Cfg_NormTextVis
Cfg_PCmdClear

Data Type
P_DIn
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input
Input
Input
Input
Input
Input
Input
Input
Input

Cfg_HasTgtDisagreeAlm
Cfg_TgtDisagreeResetReqd
Cfg_TgtDisagreeAckReqd
Cfg_TgtDisagreeSeverity
Cfg_GateDly
Cfg_Debounce
Cfg_TgtDisagreeOnDly
Cfg_TgtDisagreeOffDly
MSet_SubstPV
Set_SimPV
PCmd_Reset
PCmd_TgtDisagreeAck
PCmd_TgtDisagreeInhibit
PCmd_TgtDisagreeUninhibit
MCmd_SubstPV
MCmd_InpPV
OCmd_Reset
OCmd_ResetAckAll
Val_Sts
Val_Fault
Val_Notify
Sts
Sts_PV

BOOL
BOOL
BOOL
SINT
DINT
REAL
DINT
DINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
SINT
SINT
SINT
BOOL
BOOL

Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Output
Output
Output
Output
Output

Description
Discrete Input
Input Signal (process variable) from Sensor
Input Comm Status or Quality 1=Bad, 0=OK
Target State of Input (Disagree Status if not in Target State)
Gate Condition (=1 to enable Disagree Status)
1=Use simulated PV (Set_SimPV); 0=Use Input (Inp_PV)
1=Reset Alarm requiring reset
1=Disallow selection of Substitute PV
1=Display state text in "normal" state (= target), 0=hide (some HMI objects)
1=Clear Program Commands on receipt
0=Leave Set
1=Target Disagree Alarm exists and will be checked
1=Target Disagree Alarm is latched in, requires Reset Command to clear
1=Target Disagree Alarm must be acknowledged
Target Disagree Alarm Severity: 1=info, 2=warn, 3=excep, 4=fault
Time Inp_Gate must be true before Disagree Status is checked (sec)
Minimum time Input Sts must maintain state (sec)
Minimum time for Input to disagree with Target to raise Status (sec)
Minimum time for Input to agree with Target to clear Status (sec)
Maintenance-Entered Substitute PV
PV used in Simulation (Inp_Sim=1)
Program Command to Reset all latched Alarms
Program Command to Acknowledge the Target Disagree Alarm
Program Command to Inhibit the Target Disagree Alarm
Program Command to Uninhibit the Target Disagree Alarm
Maintenance Command to use Substitute PV (override input)
Maintenance Command to use Input PV (normal)
Operator Command to Reset all latched Alarms
Operator Command to Reset and Acknowledge all Alarms
Device Confirmed Sts 0=PV Good, 6=PV Bad, 7=Substitute PV
Device Fault Status 0=none, 16=Tgt Disagree, 34=CfgErr
Current Alarm Level and Acknowledgement (enumeration)
Discrete Input Status (incl. Debounce, Manual Override, if used)
Discrete Input Status (actual, not subject to Override)
RSLogix 5000

P_DIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn

Sts_SubstPV
Sts_InpPV
Sts_PVBad
Sts_MaintByp
Sts_AlmInh
Sts_Err
Err_Timer
Err_Alarm
Sts_TgtDisagree
Alm_TgtDisagree
Ack_TgtDisagree
Sts_TgtDisagreeDisabled
Sts_TgtDisagreeInhibited
Sts_TgtDisagreeSuppressed
Rdy_SubstPV
Rdy_InpPV
Rdy_Reset
Rdy_ResetAckAll
P_DIn

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output

Page 2
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Using Substitute PV (Input being overridden)
1=Using Input PV (normal)
Input Comm Status/ Quality (0=OK, 1=Bad)
1=Device has a Maintenance Bypass function active
1=One or more Alarms Inhibited, Disabled or Suppressed
1=Error in Config: see detail bits for reason
1=Error in Config: Invalid Timer Preset (use 0 to 2147483)
1=Error in Config: Alarm Throttle Time or Severity
1=Input is not in Target state
1=Alarm: Input is not in Target state
1=Target Disagree Alarm has been acknowledged
1=Target Disagree Alarm is Disabled (not saved or sent)
1=Target Disagree Alarm is Inhibited by logic
1=Target Disagree Alarm is Suppressed (logged only)
1=Ready for MCmd_SubstPV
1=Ready for MCmd_InpPV
1=At least one Alarm requires Reset
1=At least one Alarm requires Acknowledgement
Unique Parameter Name for auto - discovery

Extended Description
This instruction monitors a discrete (1 / 0) input and checks for alarm conditions.
The Inp_Gate input must be set (=1, its default value) and the alarm enabled for
the alarm (Alm) to occur. The alarm will not occur until the Inp_Gate input has
been set for the Gate Delay (Cfg_GateDly) time. The Gate is used to enable the
alarm when some other condition is true; for example, a high vibration switch should
only generate an alarm when the associated motor has been running long enough
to stabilize.
The alarm is generated when the Inp_PV (process variable) input is different from
the Inp_Target (target) input. The Target indicates the "normal" condition. For
example, a flow switch should indicate flow when a pump is running and should
not indicate flow when a pump is stopped. The pump run status is used as the
Target input, and when the switch does not match the target (within the allotted
time), the Alarm (Flow Loss / Switch Failure) is generated.
NOTE: the Inp_PV is inverted when the rung condition is false -- this allows the
input to be a condition on the rung with P_DIn rather than mapped into Inp_PV.
See P_DIn documentation for details.
This instruction includes a substitute PV capability for a manually-entered state.
This may be useful when a sensor is out for repair or for simulation and testing.
Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Inverts Inp_PV to allow mapping input using XIC/XIO on rung
Normal Scan - status is updated and alarms are generated
Clear "lurking" Commands

Revision v2.0 03 Release Notes


Edge/Level behavior for P_Alarm 2.0-01. Improved handling of timers with presets = 0. Buffering of Val_*.
Change History
Created:
Created By:
Edited:
Edited By:

25/09/2004 07,40,40
Not Available
18/03/2013 11,23,29
PLANTPAX\Library

Signature

RSLogix 5000

P_DIn - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn

ID:
Timestamp:

Page 3
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

16779BEF
2013-03-18T17:23:29.470Z

Cross Reference
Container
Equipos
Equipos
Equipos
Equipos

Routine
Blk_Nivel_Dig
Blk_Nivel_Dig
Blk_Nivel_Dig
Blk_Nivel_Dig

Location
Sheet 1, C1
Sheet 2, C1
Sheet 3, C1
Sheet 4, C1

Tag
P_DIn_LS110
P_DIn_LS100
P_DIn_LS210
P_DIn_LS200

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>
Name
Default
1
Ack_TgtDisagree
1=Target Disagree Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Ack
Base Tag:
TgtDisagree.Ack
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

Page 4
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_DIn

0
Alm_TgtDisagree
1=Alarm: Input is not in Target state
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Alm
Base Tag:
TgtDisagree.Alm
Constant
No
External Access:
Read Only
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

0.0
Cfg_Debounce
Minimum time Input Sts must maintain state (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Debounce - P_DIn/EnableInFalse - 0(MUL)
Cfg_Debounce - P_DIn/Logic - 1(MUL)

REAL

P_DIn

0
Cfg_GateDly
Time Inp_Gate must be true before Disagree Status is checked (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_GateDly - P_DIn/EnableInFalse - 0(MUL)
Cfg_GateDly - P_DIn/Logic - 1(MUL)

DINT

P_DIn

1
Cfg_HasTgtDisagreeAlm
1=Target Disagree Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Cfg_Exists
Base Tag:
TgtDisagree.Cfg_Exists
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

1
BOOL
Cfg_NormTextVis
1=Display state text in "normal" state (= target), 0=hide (some HMI objects)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

P_DIn

0
Cfg_NoSubstPV
1=Disallow selection of Substitute PV
Usage:
Input Parameter
Required:
No
Visible:
No

P_DIn

BOOL

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 5
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_NoSubstPV (Continued)
External Access:
Read/Write
Cfg_NoSubstPV - P_DIn/EnableInFalse - 2(XIO), 3(XIC), 5(XIO)
Cfg_NoSubstPV - P_DIn/Logic - 3(XIO), 4(XIC), 6(XIO)
1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Cfg_PCmdClear
Base Tag:
TgtDisagree.Cfg_PCmdClear
Constant
No
External Access:
Read/Write
Cfg_PCmdClear - P_DIn/EnableInFalse - 6(XIC)
Cfg_PCmdClear - P_DIn/Logic - 7(XIC)
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

1
Cfg_TgtDisagreeAckReqd
1=Target Disagree Alarm must be acknowledged
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Cfg_AckReqd
Base Tag:
TgtDisagree.Cfg_AckReqd
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

0
Cfg_TgtDisagreeOffDly
Minimum time for Input to agree with Target to clear Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_TgtDisagreeOffDly - P_DIn/EnableInFalse - 0(MUL)
Cfg_TgtDisagreeOffDly - P_DIn/Logic - 1(MUL)

DINT

P_DIn

0
Cfg_TgtDisagreeOnDly
Minimum time for Input to disagree with Target to raise Status (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_TgtDisagreeOnDly - P_DIn/EnableInFalse - 0(MUL)
Cfg_TgtDisagreeOnDly - P_DIn/Logic - 1(MUL)

DINT

P_DIn

0
Cfg_TgtDisagreeResetReqd
1=Target Disagree Alarm is latched in, requires Reset Command to clear
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Cfg_ResetReqd
Base Tag:
TgtDisagree.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

3
Cfg_TgtDisagreeSeverity
Target Disagree Alarm Severity: 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Cfg_Severity

SINT

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 6
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_TgtDisagreeSeverity (Continued)
Base Tag:
TgtDisagree.Cfg_Severity
Constant
No
External Access:
Read/Write
1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_DIn

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_DIn

0
Err_Alarm
1=Error in Config: Alarm Throttle Time or Severity
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Alarm - P_DIn/EnableInFalse - *1(OTE)
Err_Alarm - P_DIn/Logic - *2(OTE)

BOOL

P_DIn

0
Err_Timer
1=Error in Config: Invalid Timer Preset (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_DIn/EnableInFalse - *0(OTE), 1(XIC)
Err_Timer - P_DIn/Logic - *1(OTE), 2(XIC)

BOOL

P_DIn

1
Inp_Gate
Gate Condition (=1 to enable Disagree Status)
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Gate - P_DIn/EnableInFalse - 15(XIC)
Inp_Gate - P_DIn/Logic - 16(XIC)

BOOL

P_DIn

1
Inp_PV
Input Signal (process variable) from Sensor
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_PV - P_DIn/EnableInFalse - 8(XIO)
Inp_PV - P_DIn/Logic - 9(XIC)

BOOL

P_DIn

0
Inp_PVBad
Input Comm Status or Quality 1=Bad, 0=OK
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_PVBad - P_DIn/EnableInFalse - 7(XIC)
Inp_PVBad - P_DIn/Logic - 8(XIC)

BOOL

P_DIn

BOOL

P_DIn

Inp_Reset
1=Reset Alarm requiring reset
Usage:

0
Input Parameter

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 7
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Reset (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Reset - P_DIn/EnableInFalse - 6(XIC)
Inp_Reset - P_DIn/Logic - 7(XIC)
0
Inp_Sim
1=Use simulated PV (Set_SimPV); 0=Use Input (Inp_PV)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Sim - P_DIn/EnableInFalse - 7(XIO), 8(XIC), 8(XIO), 9(XIO)
Inp_Sim - P_DIn/Logic - 10(XIO), 8(XIO), 9(XIC), 9(XIO)

BOOL

P_DIn

1
Inp_Target
Target State of Input (Disagree Status if not in Target State)
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Target - P_DIn/EnableInFalse - 16(XIC), 16(XIO)
Inp_Target - P_DIn/Logic - 17(XIC), 17(XIO)

BOOL

P_DIn

0
MCmd_InpPV
Maintenance Command to use Input PV (normal)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_InpPV - P_DIn/EnableInFalse - *3(OTU), 3(XIC)
MCmd_InpPV - P_DIn/Logic - *4(OTU), 4(XIC)
MCmd_InpPV - P_DIn/Prescan - *0(OTU)

BOOL

P_DIn

0
MCmd_SubstPV
Maintenance Command to use Substitute PV (override input)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_SubstPV - P_DIn/EnableInFalse - *2(OTU), 2(XIC)
MCmd_SubstPV - P_DIn/Logic - *3(OTU), 3(XIC)
MCmd_SubstPV - P_DIn/Prescan - *0(OTU)

BOOL

P_DIn

0
MSet_SubstPV
Maintenance-Entered Substitute PV
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MSet_SubstPV - P_DIn/EnableInFalse - *14(OTL), *14(OTU), 10(XIC)
MSet_SubstPV - P_DIn/Logic - *15(OTL), *15(OTU), 11(XIC)

BOOL

P_DIn

0
OCmd_Reset
Operator Command to Reset all latched Alarms
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_DIn/EnableInFalse - *6(OTU), 6(XIC)
OCmd_Reset - P_DIn/Logic - *7(OTU), 7(XIC)
OCmd_Reset - P_DIn/Prescan - *0(OTU)

BOOL

P_DIn

0
OCmd_ResetAckAll
Operator Command to Reset and Acknowledge all Alarms
Usage:
Input Parameter

BOOL

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 8
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OCmd_ResetAckAll (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ResetAckAll - P_DIn/EnableInFalse - *6(OTU), 6(XIC)
OCmd_ResetAckAll - P_DIn/Logic - *7(OTU), 7(XIC)
OCmd_ResetAckAll - P_DIn/Prescan - *0(OTU)
0
PCmd_Reset
Program Command to Reset all latched Alarms
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_DIn/EnableInFalse - *6(OTU), 6(XIC)
PCmd_Reset - P_DIn/Logic - *7(OTU), 7(XIC)

BOOL

P_DIn

0
PCmd_TgtDisagreeAck
Program Command to Acknowledge the Target Disagree Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.PCmd_Ack
Base Tag:
TgtDisagree.PCmd_Ack
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)
TgtDisagree.PCmd_Ack - P_DIn/EnableInFalse - *6(OTL)
TgtDisagree.PCmd_Ack - P_DIn/Logic - *7(OTL)

BOOL

P_DIn

0
PCmd_TgtDisagreeInhibit
Program Command to Inhibit the Target Disagree Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.PCmd_Inhibit
Base Tag:
TgtDisagree.PCmd_Inhibit
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

0
PCmd_TgtDisagreeUninhibit
Program Command to Uninhibit the Target Disagree Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.PCmd_Uninhibit
Base Tag:
TgtDisagree.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

0
P_DIn
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_DIn

BOOL

P_DIn

Rdy_InpPV
1=Ready for MCmd_InpPV
Usage:
Required:
Visible:

0
Output Parameter
No
No

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 9
22/12/2015 08,56,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Rdy_InpPV (Continued)
External Access:
Read Only
Rdy_InpPV - P_DIn/EnableInFalse - *5(OTE)
Rdy_InpPV - P_DIn/Logic - *6(OTE)
0
Rdy_Reset
1=At least one Alarm requires Reset
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_DIn/EnableInFalse - *20(OTE)
Rdy_Reset - P_DIn/Logic - *21(OTE)

BOOL

P_DIn

0
Rdy_ResetAckAll
1=At least one Alarm requires Acknowledgement
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ResetAckAll - P_DIn/EnableInFalse - *20(OTE)
Rdy_ResetAckAll - P_DIn/Logic - *21(OTE)

BOOL

P_DIn

0
Rdy_SubstPV
1=Ready for MCmd_SubstPV
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_SubstPV - P_DIn/EnableInFalse - *5(OTE)
Rdy_SubstPV - P_DIn/Logic - *6(OTE)

BOOL

P_DIn

0
Set_SimPV
PV used in Simulation (Inp_Sim=1)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Set_SimPV - P_DIn/EnableInFalse - *9(OTL), *9(OTU), 8(XIC)
Set_SimPV - P_DIn/Logic - *10(OTL), *10(OTU), 9(XIC)

BOOL

P_DIn

0
BOOL
Sts
Discrete Input Status (incl. Debounce, Manual Override, if used)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts - P_DIn/EnableInFalse - *13(OTE), 14(XIC), 14(XIO), 16(XIC), 16(XIO)
Sts - P_DIn/Logic - *14(OTE), 15(XIC), 15(XIO), 17(XIC), 17(XIO)

P_DIn

0
Sts_AlmInh
1=One or more Alarms Inhibited, Disabled or Suppressed
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_DIn/EnableInFalse - *19(OTE)
Sts_AlmInh - P_DIn/Logic - *20(OTE)

BOOL

P_DIn

0
Sts_Err
1=Error in Config: see detail bits for reason
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_DIn/EnableInFalse - *1(OTE), 17(XIC), 17(XIO)
Sts_Err - P_DIn/Logic - *2(OTE), 18(XIC), 18(XIO)

BOOL

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 10
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Sts_InpPV
1=Using Input PV (normal)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_InpPV - P_DIn/EnableInFalse - *4(OTE)
Sts_InpPV - P_DIn/Logic - *5(OTE)

BOOL

P_DIn

0
Sts_MaintByp
1=Device has a Maintenance Bypass function active
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_MaintByp - P_DIn/EnableInFalse - *4(OTE)
Sts_MaintByp - P_DIn/Logic - *5(OTE)

BOOL

P_DIn

0
Sts_PV
Discrete Input Status (actual, not subject to Override)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_PV - P_DIn/EnableInFalse - *8(OTE), 10(XIC), 9(XIC), 9(XIO)
Sts_PV - P_DIn/Logic - *9(OTE), 10(XIC), 10(XIO), 11(XIC)

BOOL

P_DIn

0
Sts_PVBad
Input Comm Status/ Quality (0=OK, 1=Bad)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_PVBad - P_DIn/EnableInFalse - *7(OTE), 17(XIC), 17(XIO)
Sts_PVBad - P_DIn/Logic - *8(OTE), 18(XIC), 18(XIO)

BOOL

P_DIn

0
BOOL
Sts_SubstPV
1=Using Substitute PV (Input being overridden)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_SubstPV - P_DIn/EnableInFalse - *4(OTE), 17(XIC), 17(XIO), 4(XIC)
Sts_SubstPV - P_DIn/Logic - *5(OTE), 18(XIC), 18(XIO), 5(XIC)

P_DIn

1
Sts_TgtDisagree
1=Input is not in Target state
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Inp
Base Tag:
TgtDisagree.Inp
Constant
No
External Access:
Read Only
Sts_TgtDisagree - P_DIn/EnableInFalse - 17(XIC), 17(XIO)
Sts_TgtDisagree - P_DIn/Logic - 18(XIC), 18(XIO)
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)
TgtDisagree.Inp - P_DIn/EnableInFalse - *16(OTE)
TgtDisagree.Inp - P_DIn/Logic - *17(OTE)

BOOL

P_DIn

0
Sts_TgtDisagreeDisabled
1=Target Disagree Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Disabled

BOOL

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Type Size: 272 byte (s)
Data Context: P_DIn <definition>

Page 11
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_TgtDisagreeDisabled (Continued)
Base Tag:
TgtDisagree.Disabled
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)
0
Sts_TgtDisagreeInhibited
1=Target Disagree Alarm is Inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Inhibited
Base Tag:
TgtDisagree.Inhibited
Constant
No
External Access:
Read Only
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

0
Sts_TgtDisagreeSuppressed
1=Target Disagree Alarm is Suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TgtDisagree.Suppressed
Base Tag:
TgtDisagree.Suppressed
Constant
No
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)

BOOL

P_DIn

0
Val_Fault
Device Fault Status 0=none, 16=Tgt Disagree, 34=CfgErr
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fault - P_DIn/EnableInFalse - *17(CLR), *17(MOV)
Val_Fault - P_DIn/Logic - *18(CLR), *18(MOV)

SINT

P_DIn

0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Notify - P_DIn/EnableInFalse - *20(MOV)
Val_Notify - P_DIn/Logic - *21(MOV)
0
Val_Notify.0
Current Alarm Level and Acknowledgement (enumeration)
Val_Notify.0 - P_DIn/EnableInFalse - *20(OTL)
Val_Notify.0 - P_DIn/Logic - *21(OTL)

SINT

P_DIn

0
Val_Sts
Device Confirmed Sts 0=PV Good, 6=PV Bad, 7=Substitute PV
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Sts - P_DIn/EnableInFalse - *17(CLR), *17(MOV)
Val_Sts - P_DIn/Logic - *18(CLR), *18(MOV)

BOOL

SINT

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Context: P_DIn <definition>

Page 12
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
'Off'
Cfg_0StText
Text to display in PV=0 State
Usage:
Local Tag
External Access:
Read/Write
Cfg_0StText - P_DIn/Logic - 0(LOWER)
3
Cfg_0StText.LEN
Text to display in PV=0 State
Cfg_0StText.DATA
Text to display in PV=0 State

Data Type
STRING_8

'On'
Cfg_1StText
Text to display in PV=1 State
Usage:
Local Tag
External Access:
Read/Write
Cfg_1StText - P_DIn/Logic - *0(LOWER)
2
Cfg_1StText.LEN
Text to display in PV=1 State
Cfg_1StText.DATA
Text to display in PV=1 State

STRING_8

DINT
SINT

SINT
STRING_40

'Discrete Input'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_DIn/Logic - 0(LOWER)
14
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

STRING_20

'P_DIn'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_DIn/Logic - 0(LOWER)
5
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

STRING_20

P_DIn

DINT
SINT
P_DIn

DINT
SINT
P_DIn

DINT
SINT
SINT

P_DIn

STRING_16

P_DIn

Local Tag
Read/Write

'P_DIn'
Inf_Type
Must contain AOI name, used for HMI and Information S/W
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_DIn/Logic - *0(LOWER)
5
Inf_Type.LEN
Must contain AOI name, used for HMI and Information S/W
Inf_Type.DATA
Must contain AOI name, used for HMI and Information S/W
TgtDisagree

P_DIn

DINT

'Discrete Input'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_DIn/Logic - *0(LOWER)
14
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

Scope
P_DIn

DINT
SINT
P_Alarm

P_DIn
RSLogix 5000

P_DIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Context: P_DIn <definition>

Page 13
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

TgtDisagree (Continued)
Target Disagree Alarm
Usage:
Local Tag
External Access:
Read/Write
TgtDisagree - P_DIn/EnableInFalse - *18(P_Alarm)
TgtDisagree - P_DIn/Logic - *19(P_Alarm)
1
BOOL
TgtDisagree.EnableIn
Target Disagree Alarm Enable Input - System Defined Parameter
0
BOOL
TgtDisagree.EnableOut
Target Disagree Alarm Enable Output - System Defined Parameter
1
BOOL
TgtDisagree.Inp
Target Disagree Alarm Alarm Condition Input 1=Alarm
TgtDisagree.Inp - P_DIn/EnableInFalse - *16(OTE)
TgtDisagree.Inp - P_DIn/Logic - *17(OTE)
Sts_TgtDisagree - P_DIn/EnableInFalse - 17(XIC), 17(XIO)
Sts_TgtDisagree - P_DIn/Logic - 18(XIC), 18(XIO)
0
BOOL
TgtDisagree.Inp_Reset
Target Disagree Alarm 1=Reset Alarm requiring reset
1
BOOL
TgtDisagree.Cfg_Exists
Target Disagree Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
TgtDisagree.Cfg_ResetReqd
Target Disagree Alarm 1=Reset required to clear Alarm
1
BOOL
TgtDisagree.Cfg_AckReqd
Target Disagree Alarm 1=Acknowledge required for Alarm
1
BOOL
TgtDisagree.Cfg_PCmdClear
Target Disagree Alarm 1=Clear Program Commands on receipt 0=Leave Set
Cfg_PCmdClear - P_DIn/EnableInFalse - 6(XIC)
Cfg_PCmdClear - P_DIn/Logic - 7(XIC)
3
SINT
TgtDisagree.Cfg_Severity
Target Disagree Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
TgtDisagree.Cfg_AlmMinOnT
Target Disagree Alarm Minimum time Alm output stays on (sec)
0
BOOL
TgtDisagree.PCmd_Reset
Target Disagree Alarm Program Command to Reset latched alarm
TgtDisagree.PCmd_Reset - P_DIn/EnableInFalse - *6(OTL)
TgtDisagree.PCmd_Reset - P_DIn/Logic - *7(OTL)
0
BOOL
TgtDisagree.PCmd_Ack
Target Disagree Alarm Program Command to Acknowledge alarm
TgtDisagree.PCmd_Ack - P_DIn/EnableInFalse - *6(OTL)
TgtDisagree.PCmd_Ack - P_DIn/Logic - *7(OTL)
0
BOOL
TgtDisagree.PCmd_Inhibit
Target Disagree Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
TgtDisagree.PCmd_Uninhibit
Target Disagree Alarm Program Command to Uninhibit alarm
0
BOOL
TgtDisagree.OCmd_Reset
Target Disagree Alarm Operator Command to Reset latched alarm
0
BOOL
TgtDisagree.OCmd_Ack
Target Disagree Alarm Operator Command to Acknowledge alarm
0
BOOL
TgtDisagree.OCmd_Suppress
Target Disagree Alarm Operator Command to Suppress alarm
BOOL
TgtDisagree.OCmd_Unsuppress 0
Target Disagree Alarm Operator Command to Unsuppress alarm
0
BOOL
TgtDisagree.MCmd_Disable
Target Disagree Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
TgtDisagree.MCmd_Enable
Target Disagree Alarm Maintenance Command to Enable alarm
0
SINT
TgtDisagree.Val_Notify
Target Disagree Alarm Current Alarm Level and Acknowledgement (enumeration)
TgtDisagree.Val_Notify - P_DIn/EnableInFalse - 20(MOV)
TgtDisagree.Val_Notify - P_DIn/Logic - 21(MOV)
0
BOOL
TgtDisagree.Alm
Target Disagree Alarm Alarm output 1=In Alarm
1
BOOL
TgtDisagree.Ack
Target Disagree Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
TgtDisagree.Inhibited
Target Disagree Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
TgtDisagree.Suppressed
RSLogix 5000

P_DIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Context: P_DIn <definition>

Page 14
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

TgtDisagree (Continued)
Target Disagree Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
TgtDisagree.Disabled
Target Disagree Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
TgtDisagree.Sts_AlmInh
Target Disagree Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
TgtDisagree.Sts_AlmInh - P_DIn/EnableInFalse - 19(XIC)
TgtDisagree.Sts_AlmInh - P_DIn/Logic - 20(XIC)
0
BOOL
TgtDisagree.Sts_Err
Target Disagree Alarm 1=Error in Config: see detail Err_ bits for reason
TgtDisagree.Sts_Err - P_DIn/EnableInFalse - 1(XIC)
TgtDisagree.Sts_Err - P_DIn/Logic - 2(XIC)
0
BOOL
TgtDisagree.Err_Timer
Target Disagree Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
TgtDisagree.Err_Severity
Target Disagree Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
TgtDisagree.Rdy_Reset
Target Disagree Alarm Ready to receive OCmd_Reset (enable button)
TgtDisagree.Rdy_Reset - P_DIn/EnableInFalse - 20(XIC)
TgtDisagree.Rdy_Reset - P_DIn/Logic - 21(XIC)
0
BOOL
TgtDisagree.Rdy_Ack
Target Disagree Alarm Ready to receive OCmd_Ack (enable button)
TgtDisagree.Rdy_Ack - P_DIn/EnableInFalse - 20(XIC)
TgtDisagree.Rdy_Ack - P_DIn/Logic - 21(XIC)
0
BOOL
TgtDisagree.Rdy_Suppress
Target Disagree Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
TgtDisagree.Rdy_Unsuppress
Target Disagree Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
TgtDisagree.Rdy_Disable
Target Disagree Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
TgtDisagree.Rdy_Enable
Target Disagree Alarm Ready to receive MCmd_Enable (enable button)
Wrk_FallT
Timer to ensure Status LOW time on falling edge
Usage:
Local Tag
External Access:
None
Wrk_FallT - P_DIn/EnableInFalse - *12(TON)
Wrk_FallT - P_DIn/Logic - *13(TON)
0
Wrk_FallT.PRE
Timer to ensure Status LOW time on falling edge
Wrk_FallT.PRE - P_DIn/EnableInFalse - *0(MOV)
Wrk_FallT.PRE - P_DIn/Logic - *1(MOV)
0
Wrk_FallT.ACC
Timer to ensure Status LOW time on falling edge
0
Wrk_FallT.EN
Timer to ensure Status LOW time on falling edge
0
Wrk_FallT.TT
Timer to ensure Status LOW time on falling edge
Wrk_FallT.TT - P_DIn/EnableInFalse - 11(XIO), 12(XIC)
Wrk_FallT.TT - P_DIn/Logic - 12(XIO), 13(XIC)
0
Wrk_FallT.DN
Timer to ensure Status LOW time on falling edge

TIMER

Wrk_GateDlyT
Gate Delay timer
Usage:
Local Tag
External Access:
None
Wrk_GateDlyT - P_DIn/EnableInFalse - *15(TON)
Wrk_GateDlyT - P_DIn/Logic - *16(TON)
0
Wrk_GateDlyT.PRE
Gate Delay timer
Wrk_GateDlyT.PRE - P_DIn/EnableInFalse - *0(CLR), *0(MUL)
Wrk_GateDlyT.PRE - P_DIn/Logic - *1(CLR), *1(MUL)
0
Wrk_GateDlyT.PRE.31
Gate Delay timer
Wrk_GateDlyT.PRE.31 - P_DIn/EnableInFalse - 0(XIC)

TIMER

P_DIn

DINT

DINT
BOOL
BOOL

BOOL
P_DIn

DINT

BOOL

RSLogix 5000

P_DIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Context: P_DIn <definition>

Wrk_GateDlyT (Continued)
Wrk_GateDlyT.PRE.31 - P_DIn/Logic - 1(XIC)
0
Wrk_GateDlyT.ACC
Gate Delay timer
0
Wrk_GateDlyT.EN
Gate Delay timer
0
Wrk_GateDlyT.TT
Gate Delay timer
0
Wrk_GateDlyT.DN
Gate Delay timer
Wrk_GateDlyT.DN - P_DIn/EnableInFalse - 16(XIC)
Wrk_GateDlyT.DN - P_DIn/Logic - 17(XIC)

Page 15
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
BOOL
BOOL

Wrk_RiseT
Timer to ensure Status HIGH time on rising edge
Usage:
Local Tag
External Access:
None
Wrk_RiseT - P_DIn/EnableInFalse - *11(TON)
Wrk_RiseT - P_DIn/Logic - *12(TON)
0
Wrk_RiseT.PRE
Timer to ensure Status HIGH time on rising edge
Wrk_RiseT.PRE - P_DIn/EnableInFalse - *0(CLR), *0(MUL), 0(MOV)
Wrk_RiseT.PRE - P_DIn/Logic - *1(CLR), *1(MUL), 1(MOV)
0
Wrk_RiseT.PRE.31
Timer to ensure Status HIGH time on rising edge
Wrk_RiseT.PRE.31 - P_DIn/EnableInFalse - 0(XIC)
Wrk_RiseT.PRE.31 - P_DIn/Logic - 1(XIC)
0
Wrk_RiseT.ACC
Timer to ensure Status HIGH time on rising edge
0
Wrk_RiseT.EN
Timer to ensure Status HIGH time on rising edge
Wrk_RiseT.EN - P_DIn/EnableInFalse - 13(XIC)
Wrk_RiseT.EN - P_DIn/Logic - 14(XIC)
0
Wrk_RiseT.TT
Timer to ensure Status HIGH time on rising edge
Wrk_RiseT.TT - P_DIn/EnableInFalse - 11(XIC), 12(XIO)
Wrk_RiseT.TT - P_DIn/Logic - 12(XIC), 13(XIO)
0
Wrk_RiseT.DN
Timer to ensure Status HIGH time on rising edge

TIMER

0
Wrk_Sts
Internal Status (after Manual Override selection)
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_DIn/EnableInFalse - *10(OTE), 11(XIC), 12(XIO)
Wrk_Sts - P_DIn/Logic - *11(OTE), 12(XIC), 13(XIO)

BOOL

P_DIn

DINT

BOOL

DINT
BOOL

BOOL

BOOL
P_DIn

0
BOOL
P_DIn
Wrk_SubstPV
Internal flag: Using Substitute PV
Usage:
Local Tag
External Access:
None
Wrk_SubstPV - P_DIn/EnableInFalse - *2(OTL), *3(OTU), 10(XIC), 10(XIO), 14(XIO), 4(XIC), 4(XIO), 5(XIC), 5(XIO)
Wrk_SubstPV - P_DIn/Logic - *3(OTL), *4(OTU), 11(XIC), 11(XIO), 15(XIO), 5(XIC), 5(XIO), 6(XIC), 6(XIO)
TIMER
Wrk_TgtDisagreeOffDlyT
Target Disagree Status minimum false time to clear
Usage:
Local Tag
External Access:
None
Wrk_TgtDisagreeOffDlyT - P_DIn/EnableInFalse - *16(TOF)
Wrk_TgtDisagreeOffDlyT - P_DIn/Logic - *17(TOF)
DINT
Wrk_TgtDisagreeOffDlyT.PRE 0
Target Disagree Status minimum false time to clear
Wrk_TgtDisagreeOffDlyT.PRE - P_DIn/EnableInFalse - *0(CLR), *0(MUL)
Wrk_TgtDisagreeOffDlyT.PRE - P_DIn/Logic - *1(CLR), *1(MUL)
Wrk_TgtDisagreeOffDlyT.PRE.31
0
BOOL
Target Disagree Status minimum false time to clear

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Data Context: P_DIn <definition>

Wrk_TgtDisagreeOffDlyT (Continued)
Wrk_TgtDisagreeOffDlyT.PRE.31 - P_DIn/EnableInFalse - 0(XIC)
Wrk_TgtDisagreeOffDlyT.PRE.31 - P_DIn/Logic - 1(XIC)
Wrk_TgtDisagreeOffDlyT.ACC 0
Target Disagree Status minimum false time to clear
0
Wrk_TgtDisagreeOffDlyT.EN
Target Disagree Status minimum false time to clear
0
Wrk_TgtDisagreeOffDlyT.TT
Target Disagree Status minimum false time to clear
0
Wrk_TgtDisagreeOffDlyT.DN
Target Disagree Status minimum false time to clear
Wrk_TgtDisagreeOffDlyT.DN - P_DIn/EnableInFalse - 16(XIC)
Wrk_TgtDisagreeOffDlyT.DN - P_DIn/Logic - 17(XIC)

Page 16
22/12/2015 08,56,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
BOOL
BOOL

TIMER
Wrk_TgtDisagreeOnDlyT
Target Disagree Status minimum true time to raise
Usage:
Local Tag
External Access:
None
Wrk_TgtDisagreeOnDlyT - P_DIn/EnableInFalse - *16(TON)
Wrk_TgtDisagreeOnDlyT - P_DIn/Logic - *17(TON)
0
DINT
Wrk_TgtDisagreeOnDlyT.PRE
Target Disagree Status minimum true time to raise
Wrk_TgtDisagreeOnDlyT.PRE - P_DIn/EnableInFalse - *0(CLR), *0(MUL)
Wrk_TgtDisagreeOnDlyT.PRE - P_DIn/Logic - *1(CLR), *1(MUL)
BOOL
Wrk_TgtDisagreeOnDlyT.PRE.31 0
Target Disagree Status minimum true time to raise
Wrk_TgtDisagreeOnDlyT.PRE.31 - P_DIn/EnableInFalse - 0(XIC)
Wrk_TgtDisagreeOnDlyT.PRE.31 - P_DIn/Logic - 1(XIC)
DINT
Wrk_TgtDisagreeOnDlyT.ACC 0
Target Disagree Status minimum true time to raise
0
BOOL
Wrk_TgtDisagreeOnDlyT.EN
Target Disagree Status minimum true time to raise
0
BOOL
Wrk_TgtDisagreeOnDlyT.TT
Target Disagree Status minimum true time to raise
0
BOOL
Wrk_TgtDisagreeOnDlyT.DN
Target Disagree Status minimum true time to raise
Wrk_TgtDisagreeOnDlyT.DN - P_DIn/EnableInFalse - 16(XIC)
Wrk_TgtDisagreeOnDlyT.DN - P_DIn/Logic - 17(XIC)

P_DIn

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 17
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


============================================================
P_DIn: PROCESS -- DISCRETE INPUT
============================================================
Revision 2.0-03 Release: 2013-03-15
V2.0-00 2011-09-30: Added logic for Sts_MaintByp,
Sts_AlmInh for breadcrumbs. Using P_Alarm 2.0.
Added logic for On-Delay, Off-Delay.
Added OCmd_ResetAckAll, Rdy_ResetAckAll.
Added Val_Sts, Val_Fault.
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2012-05-30: Handling of Target Disagree Off Delay
V2.0-02 2012-07-17: Edge/Level behavior for P_Alarm 2.0-0 (via
Alias). Improved handling of timers with presets = 0.
V2.0-03 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction monitors a Discrete Input from a flow switch, motor overload,
or any other discrete signal, and provides:
* Status, with configurable names for the 0- and 1-states
* An Alarm "Gate" signal (with delay), used to enable an Alarm under appropriate process conditions
* A "Target" input -- the Alarm is raised when the input is not in the same
state as the Target for a configurable period of time
* Input debounce for both the rising and falling transitions
* Commands to inhibit or enable alarms
* Monitoring of input communication status
* Setting of a simulated input signal for process simulation
* Selection of Substitute PV (by Maintenance personnel) or normal PV
Alarm is provided by a P_Alarm Add-On Instruction instance.
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!
To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click
to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.

SkipText
JMP

Tagname for display


on HMI
LOWER
Lower Case
Source Cfg_Tag
Dest
'P_DIn'

Inf_Type
'P_DIn'

Label for graphic


symbol displayed on
HMI
LOWER
Lower Case
Source Cfg_Label
Dest Cfg_Desc
'Discrete Input'
'Discrete Input'

Text to display in
PV=0 State
LOWER
Lower Case
Source Cfg_0StText
'Off'

Cfg_0StText

0(LOWER)

Cfg_1StText

*0(LOWER)

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

Dest Cfg_1StText
'On'

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Total number of rungs in routine: %1!d!

Page 18
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 19
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


============================================================
CONFIGURATION
============================================================
These rungs get Configuration data (such as timer presets) and distribute as needed.
Note that some Configuration data are used directly in-place.
Enter the time (in seconds) the Status must remain in each state (debounce time).
This time is used in a rising-edge debounce timer and a falling-edge debounce timer.
Enter the time (in seconds) the alarm Gate must be true before alarm detection is activated.
Enter the On-Delay and Off-Delay times (in seconds) for the Target Disagree Status
(which feeds the Target Disagree Alarm).
If the timer preset calcuated wraps negative (more than 2.14... million seconds), then establish
a valid limit value for the Preset. Note that a negative timer preset will fault the controller!!!
##### V2.0-00 2011-09-30: Changed MinDuration to On-Delay and added Off-Delay #####
##### V2.0-02 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####

SkipText
LBL

Gate Delay timer


Wrk_GateDlyT.PRE.31

Gate Delay timer


MUL
Multiply
Source A Cfg_GateDly
0
Source B
1000

Dest Wrk_GateDlyT.PRE
0

Gate Delay timer


CLR
Clear
Dest Wrk_GateDlyT.PRE

Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.PRE.31

Timer to ensure
Status HIGH time on
rising edge
MUL
Multiply
Source A Cfg_Debounce
0.0
Source B
1000.0

Dest Wrk_RiseT.PRE
0

Timer to ensure
Status HIGH time on
rising edge
CLR
Clear
Dest Wrk_RiseT.PRE

Target Disagree
Status minimum true
time to raise
MUL
Multiply
Source A Cfg_TgtDisagreeOnDly
0
Source B
1000

Target Disagree
Status minimum true
time to raise
Wrk_TgtDisagreeOnDlyT.PR

Dest Wrk_TgtDisagreeOnDlyT.PRE
0

Target Disagree
Status minimum true
time to raise
CLR

Clear
Dest Wrk_TgtDisagreeOnDlyT.PRE

Target Disagree

Target Disagree

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 20
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated

Wrk_GateDlyT.PRE
0

Wrk_RiseT.PRE
0

tDisagreeOnDlyT.PRE.31

DisagreeOnDlyT.PRE
0

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 21
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


Target Disagree
Status minimum false
time to clear
MUL
Multiply
Source A Cfg_TgtDisagreeOffDly
Dest Wrk_TgtDisagreeOffDlyT.PRE
0
0
Source B
1000

Target Disagree
Status minimum false
time to clear
Wrk_TgtDisagreeOffDlyT.PR

Target Disagree
Status minimum false
time to clear
CLR

Clear
Dest Wrk_TgtDisagreeOffDlyT.PRE

1=Error in C
Invalid Timer
(use 0 to 21
Err_Tim
Timer to ensure
Status LOW time on
falling edge
MOV
Move
Source Wrk_RiseT.PRE
0

Cfg_Debounce

1(MUL)

Cfg_GateDly

1(MUL)

Cfg_TgtDisagreeOffDly

1(MUL)

Cfg_TgtDisagreeOnDly

1(MUL)

Err_Timer

*1(OTE) 2(XIC)

Wrk_FallT.PRE

*1(MOV)

Wrk_GateDlyT.PRE

*1(CLR) *1(MUL)

Wrk_GateDlyT.PRE.31

1(XIC)

Wrk_RiseT.PRE

*1(MUL) *1(CLR) 1(MOV)

Wrk_RiseT.PRE.31

1(XIC)

Dest Wrk_FallT.P

Wrk_TgtDisagreeOffDlyT.*1(CLR) *1(MUL)
PRE
Wrk_TgtDisagreeOffDlyT.1(XIC)
PRE.31
Wrk_TgtDisagreeOnDlyT. *1(CLR) *1(MUL)
PRE
Wrk_TgtDisagreeOnDlyT. 1(XIC)
PRE.31

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 22
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated

tDisagreeOffDlyT.PRE.31

DisagreeOffDlyT.PRE
0

1=Error in Config:
Invalid Timer Preset
(use 0 to 2147483)
Err_Timer

Wrk_FallT.PRE
0

This rung handles the reports of all Bad Configuration Status.


Individual bits are provided for various status:
Bad timer presets are determined in the Configuration logic above.
Bad Alarm configuration is determined by the P_Alarm instruction.
Then a summary Bad Config status is provided, simply an OR of the individual bits.
1=Error in Config:
Invalid Timer Preset
(use 0 to 2147483)
Err_Timer

1=Error in Config:
see detail bits for
reason
Sts_Err

2
Target Disagree
Alarm 1=Error in
Config: see detail
Err_ bits for reason
TgtDisagree.Sts_Err

Err_Alarm

*2(OTE)

Err_Timer

*1(OTE) 2(XIC)

Sts_Err

*2(OTE) 18(XIO) 18(XIC)

TgtDisagree.Sts_Err

2(XIC)

1=Error in Config:
Alarm Throttle Time
or Severity
Err_Alarm

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 23
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
NOTE: Operator Commands for P_Alarm are sent directly to the contained AOI.
MCmd_SubstPV: Maintenance Command to select Maintenance-entered substitute PV
Maintenance Command
to use Substitute PV
(override input)
MCmd_SubstPV
3

Do not allow this Command if Cfg_NoSubstPV is set.


Maintenance Command
to use Substitute PV
1=Disallow selection
(override input)
of Substitute PV
MCmd_SubstPV
Cfg_NoSubstPV
U
/

Cfg_NoSubstPV

3(XIO) 4(XIC) 6(XIO)

MCmd_SubstPV

*3(OTU) 3(XIC)

Wrk_SubstPV

*3(OTL) *4(OTU) 5(XIO) 5(XIC) 6(XIO) 6(XIC) 11(XIO) 11(XIC) 15(XIO)

Internal flag: Using


Substitute PV
Wrk_SubstPV
L

MCmd_InpPV: Maintenance Command to cancel Substitute PV and return to Live Input PV.
Maintenance Command
Maintenance Command
to use Input PV
to use Input PV
Internal flag: Using
(normal)
(normal)
Substitute PV
MCmd_InpPV
MCmd_InpPV
Wrk_SubstPV
U
U
1=Disallow selection
of Substitute PV
Cfg_NoSubstPV

Cfg_NoSubstPV

3(XIO) 4(XIC) 6(XIO)

MCmd_InpPV

*4(OTU) 4(XIC)

Wrk_SubstPV

*3(OTL) *4(OTU) 5(XIO) 5(XIC) 6(XIO) 6(XIC) 11(XIO) 11(XIC) 15(XIO)

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 24
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


Show the Substitute / Input PV Status, and if Substitute PV
is selected, show the Maintenance Bypass breadcrumb.
1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

Internal flag: Using


Substitute PV
Wrk_SubstPV
5

Sts_InpPV

*5(OTE)

Sts_MaintByp

*5(OTE)

Sts_SubstPV

*5(OTE) 5(XIC) 18(XIO) 18(XIC)

Wrk_SubstPV

*3(OTL) *4(OTU) 5(XIC) 5(XIO) 6(XIO) 6(XIC) 11(XIO) 11(XIC) 15(XIO)

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV
/

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

1=Using Input PV
(normal)
Sts_InpPV

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

1=Device has a
Maintenance Bypass
function active
Sts_MaintByp

Commands for Substitue PV and Input PV are available


based on the current state of the internal toggle bit.
Internal flag: Using
Substitute PV
Wrk_SubstPV
/
Internal flag: Using
Substitute PV
Wrk_SubstPV

Cfg_NoSubstPV

3(XIO) 4(XIC) 6(XIO)

Rdy_InpPV

*6(OTE)

Rdy_SubstPV

*6(OTE)

Wrk_SubstPV

*3(OTL) *4(OTU) 5(XIO) 5(XIC) 6(XIO) 6(XIC) 11(XIO) 11(XIC) 15(XIO)

1=Ready for
MCmd_SubstPV
Rdy_SubstPV
1=Ready for
MCmd_InpPV
Rdy_InpPV

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 25
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
Operator Command to
Reset all latched
Alarms
OCmd_Reset

Operator Command to
Reset all latched
Alarms
OCmd_Reset
U

7
Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll

Program Command to
Reset all latched
Alarms
PCmd_Reset

Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll
U
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<TgtDisagree.Cfg_PCmdClear>

Target Disagree
Alarm Program
Command to Reset
latched alarm
TgtDisagree.PCmd_Reset
L

Target Disagree
Alarm Program
Command to
Acknowledge alarm
TgtDisagree.PCmd_Ack
<PCmd_TgtDisagreeAck>
L
Program Command to
Reset all latched
Alarms
PCmd_Reset
U
NOP

1=Reset Alarm
requiring reset
Inp_Reset

Cfg_PCmdClear

7(XIC)

Inp_Reset

7(XIC)

OCmd_Reset

7(XIC) *7(OTU)

OCmd_ResetAckAll

7(XIC) *7(OTU)

PCmd_Reset

*7(OTU) 7(XIC)

TgtDisagree.PCmd_Ack *7(OTL)
TgtDisagree.PCmd_Rese *7(OTL)
t

============================================================
DISCRETE INPUT PROCESSING
============================================================
Sts_PVBad: If the I/O communication / data quality is OK,
or in Simulation or substituted, show NO Bad PV Status.

Input Comm Status or


Quality 1=Bad, 0=OK
Inp_PVBad
8

Inp_PVBad

If the I/O communication is faulted or data quality is BAD and we're NOT
in Simulation or using substitute PV, show the Bad PV Status.
1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Input Comm Status/


Quality (0=OK,
1=Bad)
Sts_PVBad

8(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Total number of rungs in routine: %1!d!
Inp_Sim

8(XIO) 9(XIO) 9(XIC) 10(XIO)

Sts_PVBad

*8(OTE) 18(XIO) 18(XIC)

Page 26
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

The Process Variable Status (Sts_PV) bit shows the state of the selected input,
regardless of the settings of Mode.
1=Use simulated PV
Input Signal
(Set_SimPV); 0=Use
(process variable)
Input (Inp_PV)
from Sensor
Inp_Sim
Inp_PV
/
1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

Discrete Input
Status (actual, not
subject to Override)
Sts_PV

PV used in
Simulation
(Inp_Sim=1)
Set_SimPV

Inp_PV

9(XIC)

Inp_Sim

8(XIO) 9(XIC) 9(XIO) 10(XIO)

Set_SimPV

9(XIC) *10(OTU) *10(OTL)

Sts_PV

*9(OTE) 10(XIC) 10(XIO) 11(XIC)

The Simulated PV Setting tracks the selected PV for bumpless transfer into Simulation.

10

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

NOTE: Tracking must be done with latch/unlatch instructions to keep the


Set_SimPV setting retentive through a power cycle.
In order to avoid overwriting asynchronous inputs, the Set_SimPV bit is only written
when Simulation is NOT selected (live PV is used).
Discrete Input
Status (actual, not
subject to Override)
Sts_PV
Discrete Input
Status (actual, not
subject to Override)
Sts_PV
/

Inp_Sim

8(XIO) 9(XIC) 9(XIO) 10(XIO)

Set_SimPV

9(XIC) *10(OTU) *10(OTL)

Sts_PV

*9(OTE) 10(XIC) 10(XIO) 11(XIC)

PV used in
Simulation
(Inp_Sim=1)
Set_SimPV
L
PV used in
Simulation
(Inp_Sim=1)
Set_SimPV
U

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

11

Page 27
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


The Status (Sts) bit shows the state of the selected input (after debounce, below).
This rung selects which PV is used: the input/simulation PV or the substitute PV.
In normal operation, it's the state of the Input (Sts_PV).
In Substitute PV, it's the state of the entered Substitute PV (Oper or Prog).
Discrete Input
Internal flag: Using
Status (actual, not
Substitute PV
subject to Override)
Wrk_SubstPV
Sts_PV
/
Internal flag: Using
Substitute PV
Wrk_SubstPV

Internal Status
(after Manual
Override selection)
Wrk_Sts

Maintenance-Entered
Substitute PV
MSet_SubstPV

MSet_SubstPV

11(XIC) *15(OTU) *15(OTL)

Sts_PV

*9(OTE) 10(XIO) 10(XIC) 11(XIC)

Wrk_Sts

*11(OTE) 12(XIC) 13(XIO)

Wrk_SubstPV

*3(OTL) *4(OTU) 5(XIC) 5(XIO) 6(XIO) 6(XIC) 11(XIO) 11(XIC) 15(XIO)

These two rungs debounce the selected PV, ensuring the Status stays in
each state a minimum time, while not delaying the Status on transition after an
extended period of time in the prior state.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-02 2012-07-17: Improved handling of timers with presets = 0 #####
Internal Status
(after Manual
Override selection)
Wrk_Sts
12

Timer to ensure
Status LOW time on
falling edge
Wrk_FallT.TT
/

Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.TT

Timer to ensure
Status HIGH time on
rising edge
TON
Timer On Delay
Timer
Wrk_RiseT
Preset
0
Accum
0

Timer to ensure
Status HIGH time on
rising edge
TON
Timer On Delay
Timer
Wrk_RiseT
Preset
0
Accum
0

Wrk_FallT.TT

12(XIO) 13(XIC)

Wrk_RiseT

*12(TON)

Wrk_RiseT.TT

12(XIC) 13(XIO)

Wrk_Sts

*11(OTE) 12(XIC) 13(XIO)

EN
DN

EN
DN

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 28
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-02 2012-07-17: Improved handling of timers with presets = 0 #####

13

Internal Status
(after Manual
Override selection)
Wrk_Sts
/

Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.TT
/

Timer to ensure
Status LOW time on
falling edge
Wrk_FallT.TT

Timer to ensure
Status LOW time on
falling edge
TON
Timer On Delay
Timer
Wrk_FallT
Preset
0
Accum
0

Timer to ensure
Status LOW time on
falling edge
TON
Timer On Delay
Timer
Wrk_FallT
Preset
0
Accum
0

Wrk_FallT

*13(TON)

Wrk_FallT.TT

12(XIO) 13(XIC)

Wrk_RiseT.TT

12(XIC) 13(XIO)

Wrk_Sts

*11(OTE) 12(XIC) 13(XIO)

EN
DN

EN
DN

The Rising Edge triggered timer ENABLE bit (sealed in using the Timing bit)
is our debounced input. Pass it along as the Status.
Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.EN

Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts

14

Sts

*14(OTE) 15(XIO) 15(XIC) 17(XIO) 17(XIC)

Wrk_RiseT.EN

14(XIC)

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

15

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

Page 29
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


Finally, if we are NOT using the Substitute PV, have it track the
debounced Status for bumpless transfer to Substitute.
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts
/
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts

MSet_SubstPV

11(XIC) *15(OTL) *15(OTU)

Sts

*14(OTE) 15(XIO) 15(XIC) 17(XIC) 17(XIO)

Wrk_SubstPV

*3(OTL) *4(OTU) 5(XIO) 5(XIC) 6(XIO) 6(XIC) 11(XIO) 11(XIC) 15(XIO)

Maintenance-Entered
Substitute PV
MSet_SubstPV
U

Maintenance-Entered
Substitute PV
MSet_SubstPV
L

============================================================
TARGET DISAGREE STATUS GENERATION
============================================================
The Target Disagree Status is "gated" by a signal such as "pump running", which must
be true for a certain period of time before disagreement checking is activated.
For example, a High Vibration status for a pump is only checked when the pump has
been running long enough to settle down from initial startup vibration.
The High Vibration expected to be seen when the pump is first starting.
If no gating signal is available, set Inp_Gate to 1 and Cfg_GateT to 0 (defaults).
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### V2.0-00 2011-09-30: Removed "Alarm Disabled", as this is STATUS only #####
##### 2.0-02 2012-07-17: Improved handling of timers with presets = 0 #####
Gate Condition (=1
to enable Disagree
Status)
Inp_Gate
16

Inp_Gate

16(XIC)

Wrk_GateDlyT

*16(TON)

Gate Delay timer


TON
Timer On Delay
Timer Wrk_GateDlyT
Preset
0
Accum
0

EN
DN

Gate Delay timer


TON
Timer On Delay
Timer Wrk_GateDlyT
Preset
0
Accum
0

EN
DN

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 30
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


Target Disagree Status: The gate is true, the gate delay is done (from th
the (Process) input is in the state opposite of the Target state, and s
for the On-Delay Time. The Status persists for the Off-Delay time afte

@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@


@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@

Gate Delay timer


Wrk_GateDlyT.DN
17

Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts
/
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts

##### 2.0-00 2011-09-30: Changed MinDuration to On-Delay and added


##### 2.0-01 2012-05-30: Fixed handling of Off Delay (moved bran
##### 2.0-02 2012-07-17: Improved handling of timers with presets
Target State of
Input (Disagree
Target Disa
Status if not in
Status minimu
Target State)
time to ra
Inp_Target
TON
Timer On Delay
Timer Wrk_TgtDisa
Target State of
Preset
Input (Disagree
Accum
Status if not in
Target State)
Target Disagree
Target Disa
Inp_Target
Status minimum true
Status minimu
/
time to raise
time to cl
Wrk_TgtDisagreeOnDlyT.DN
TOF
Timer Off Delay
Timer Wrk_TgtDisag
Preset
Accum

Target Disagree
Status minimum false
time to clear
Wrk_TgtDisagreeOffDlyT.DN

Inp_Target

17(XIO) 17(XIC)

Sts

*14(OTE) 15(XIO) 15(XIC) 17(XIC) 17(XIO)

Sts_TgtDisagree

18(XIO) 18(XIC)

TgtDisagree.Inp

*17(OTE)

Wrk_GateDlyT.DN

17(XIC)

Wrk_TgtDisagreeOffDlyT *17(TOF)
Wrk_TgtDisagreeOffDlyT.17(XIC)
DN
Wrk_TgtDisagreeOnDlyT *17(TON)
Wrk_TgtDisagreeOnDlyT. 17(XIC)
DN

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 31
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated

delay is done (from the rung above),


he Target state, and stays there
he Off-Delay time after agreement.

ed to ensure that @@@@@


an if Preset = 0 ! @@@@@

On-Delay and added Off-Delay #####


Off Delay (moved branch) #####
of timers with presets = 0 #####
Target Disagree
Status minimum true
time to raise
Wrk_TgtDisagreeOnDlyT
0
0

EN
DN

Target Disagree
Status minimum false
time to clear
Wrk_TgtDisagreeOffDlyT
0
0

EN
DN

Target Disagree
Status minimum true
time to raise
TON
Timer On Delay
Timer Wrk_TgtDisagreeOnDlyT
Preset
0
Accum
0
Target Disagree
Status minimum false
time to clear
TOF
Timer Off Delay
Timer Wrk_TgtDisagreeOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

Target Disagree
Alarm Alarm
Condition Input
1=Alarm
TgtDisagree.Inp
<Sts_TgtDisagree>

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 32
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


============================================================
ENUMERATED STATUS VALUES
============================================================
This rung generates the enumerated Device Status:
0 = Normal (PV Good)
6 = PV Bad
7 = Substitute PV
And this rung generates the enumerated Device Fault Status:
0 = none
16 = Target Disagree
34 = Config Error

18

##### V2.0-03 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Input Comm Status/
1=Using Substitute
Device Confirmed Sts
Quality (0=OK,
PV (Input being
0=PV Good, 6=PV Bad,
1=Bad)
overridden)
7=Substitute PV
Sts_PVBad
Sts_SubstPV
CLR
/
/
Clear
Dest
Val_Sts
0
Input Comm Status/
Quality (0=OK,
1=Bad)
Sts_PVBad

Device Confirmed Sts


0=PV Good, 6=PV Bad,
7=Substitute PV
MOV
Move
Source

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

1=Error in Config:
see detail bits for
reason
Sts_Err
/

1=Input is not in
Target state
Sts_TgtDisagree
<TgtDisagree.Inp>

1=Error in Config:
see detail bits for
reason
Sts_Err

Sts_PVBad

*8(OTE) 18(XIO) 18(XIC)

Sts_SubstPV

*5(OTE) 5(XIC) 18(XIO) 18(XIC)

Sts_TgtDisagree

*17(OTE) 18(XIO) 18(XIC)

Dest

Val_Sts
0

Device Fault Status


0=none, 16=Tgt
Disagree, 34=CfgErr
CLR
Clear
Val_Fault
Dest
0

16

Dest Val_Fault
0

Device Fault Status


0=none, 16=Tgt
Disagree, 34=CfgErr
MOV
Move
Source

*2(OTE) 18(XIC) 18(XIO)

Val_Sts
0

Device Fault Status


0=none, 16=Tgt
Disagree, 34=CfgErr
MOV
Move
Source

Sts_Err

Dest

Device Confirmed Sts


0=PV Good, 6=PV Bad,
7=Substitute PV
MOV
Move
Source

1=Input is not in
Target state
Sts_TgtDisagree
<TgtDisagree.Inp>
/

34

Dest Val_Fault
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Total number of rungs in routine: %1!d!
Val_Fault

*18(CLR) *18(MOV)

Val_Sts

*18(CLR) *18(MOV)

Page 33
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Handle Alarm Processing using the standard P_Alarm AOI


Target Disagree
Alarm
P_Alarm
Alarm
P_Alarm
TgtDisagree ...
Inp
1
Inp_Reset
0

19

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

TgtDisagree

*19(P_Alarm)

If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit


summary status bit (which puts the "I" box on the graphic symbol).
Target Disagree
Alarm 1=Alarm has
been inhibited,
disabled or
suppressed, display
"I" icon
TgtDisagree.Sts_AlmInh

1=One or more Alarms


Inhibited, Disabled
or Suppressed
Sts_AlmInh

20

Sts_AlmInh

*20(OTE)

TgtDisagree.Sts_AlmInh 20(XIC)

RSLogix 5000

P_DIn Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Logic
Total number of rungs in routine: 22
Data Context: P_DIn <definition>

Page 34
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan - status is updated and alarms are generated


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).
##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and moved down to after the Rdy_Reset logic. #####
Current Alarm Level
and Acknowledgement
(enumeration)
MOV
Move
Source TgtDisagree.Val_Notify
Dest Val_Notify
0
0

21

Target Disagree
Alarm Ready to
receive OCmd_Ack
(enable button)
TgtDisagree.Rdy_Ack
Target Disagree
Alarm Ready to
receive OCmd_Reset
(enable button)
TgtDisagree.Rdy_Reset

Rdy_Reset

*21(OTE)

Rdy_ResetAckAll

*21(OTE)

TgtDisagree.Rdy_Ack

21(XIC)

1=At least one Alarm


requires
Acknowledgement
Rdy_ResetAckAll

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.0
L

1=At least one Alarm


requires Reset
Rdy_Reset

TgtDisagree.Rdy_Reset 21(XIC)
TgtDisagree.Val_Notify

21(MOV)

Val_Notify

*21(MOV)

Val_Notify.0

*21(OTL)

(End)

RSLogix 5000

P_DIn Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:Prescan
Total number of rungs in routine: 1
Data Context: P_DIn <definition>

Page 35
22/12/2015 08,56,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.
Operator Command to
Operator Command to
Reset and
Maintenance Command
Reset all latched
Acknowledge all
to use Input PV
Alarms
Alarms
(normal)
OCmd_Reset
OCmd_ResetAckAll
MCmd_InpPV
U
U
U

MCmd_InpPV

*0(OTU)

MCmd_SubstPV

*0(OTU)

OCmd_Reset

*0(OTU)

OCmd_ResetAckAll

*0(OTU)

Maintenance Command
to use Substitute PV
(override input)
MCmd_SubstPV
U

(End)

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 36
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


============================================================
ENABLE_IN_FALSE ROUTINE
============================================================
This logic is identical to the main LOGIC Routine, except that the
Inp_PV signal is inverted. This is to support Ladder Diagram instances
of the form: XIC (discrete input) P_DIn (P_DIn Tag)
============================================================
POWERUP / INVALID STATE HANDLING
============================================================
All internal Work (state) bits maintain states through a power cycle and are
independent. No Powerup / Invalid State Handling logic is required.
============================================================
CONFIGURATION
============================================================
These rungs get Configuration data (such as timer presets) and distribute as needed.
Note that some Configuration data are used directly in-place.
Enter the time (in seconds) the Status must remain in each state (debounce time).
This time is used in a rising-edge debounce timer and a falling-edge debounce timer.
Enter the time (in seconds) the alarm Gate must be true before alarm detection is activated.
Enter the On-Delay and Off-Delay times (in seconds) for the Target Disagree Status
(which feeds the Target Disagree Alarm).
If the timer preset calcuated wraps negative (more than 2.14... million seconds), then establish
a valid limit value for the Preset. Note that a negative timer preset will fault the controller!!!
##### V2.0-00 2011-09-30: Changed MinDuration to On-Delay and added Off-Delay #####
##### V2.0-02 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####

Gate Delay timer


MUL
Multiply
Source A
Cfg_GateDly
0
Source B
1000

Gate Delay timer


Wrk_GateDlyT.PRE.31

Gate Delay timer


CLR
Clear
Dest Wrk_GateDlyT.PRE
0

Dest Wrk_GateDlyT.PRE
0
Timer to ensure
Status HIGH time on
rising edge
MUL
Multiply
Source A Cfg_Debounce
0.0
Source B
1000.0
Dest

Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.PRE.31

Timer to ensure
Status HIGH time on
rising edge
CLR
Clear
Dest Wrk_RiseT.PRE
0

Wrk_RiseT.PRE
0

Target Disagree
Status minimum true
time to raise
MUL
Multiply
Source A
Cfg_TgtDisagreeOnDly
0
Source B
1000

Target Disagree
Status minimum true
time to raise
Wrk_TgtDisagreeOnDlyT.PRE.31

Dest Wrk_TgtDisagreeOnDlyT.PRE
0

Target Disagree
Status minimum true
time to raise
CLR
Clear
Dest Wrk_TgtDisagreeOnDlyT.PRE
0

Target Disagree
Status minimum false
time to clear

Target Disagree
Status minimum false
time to clear

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 37
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


time to clear
time to clear
Wrk_TgtDisagreeOffDlyT.PRE.31
MUL
Multiply
Cfg_TgtDisagreeOffDly
Source A
0
Source B
1000
Dest Wrk_TgtDisagreeOffDlyT.PRE
0

Target Disagree
Status minimum false
time to clear
CLR
Clear
Dest Wrk_TgtDisagreeOffDlyT.PRE
0

1=Error in Config:
Invalid Timer Preset
(use 0 to 2147483)
Err_Timer
Timer to ensure
Status LOW time on
falling edge
MOV
Move
Source Wrk_RiseT.PRE
0
Dest
Wrk_FallT.PRE
0

Cfg_Debounce

0(MUL)

Cfg_GateDly

0(MUL)

Cfg_TgtDisagreeOffDly

0(MUL)

Cfg_TgtDisagreeOnDly

0(MUL)

Err_Timer

*0(OTE) 1(XIC)

Wrk_FallT.PRE

*0(MOV)

Wrk_GateDlyT.PRE

*0(CLR) *0(MUL)

Wrk_GateDlyT.PRE.31

0(XIC)

Wrk_RiseT.PRE

*0(MUL) *0(CLR) 0(MOV)

Wrk_RiseT.PRE.31

0(XIC)

Wrk_TgtDisagreeOffDlyT.*0(CLR) *0(MUL)
PRE
Wrk_TgtDisagreeOffDlyT.0(XIC)
PRE.31
Wrk_TgtDisagreeOnDlyT. *0(CLR) *0(MUL)
PRE
Wrk_TgtDisagreeOnDlyT. 0(XIC)
PRE.31

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 38
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


This rung handles the reports of all Bad Configuration Status.
Individual bits are provided for various status:
Bad timer presets are determined in the Configuration logic above.
Bad Alarm configuration is determined by the P_Alarm instruction.
Then a summary Bad Config status is provided, simply an OR of the individual bits.
1=Error in Config:
Invalid Timer Preset
(use 0 to 2147483)
Err_Timer

1=Error in Config:
see detail bits for
reason
Sts_Err

1
Target Disagree
Alarm 1=Error in
Config: see detail
Err_ bits for reason
TgtDisagree.Sts_Err

Err_Alarm

*1(OTE)

Err_Timer

*0(OTE) 1(XIC)

Sts_Err

*1(OTE) 17(XIO) 17(XIC)

TgtDisagree.Sts_Err

1(XIC)

1=Error in Config:
Alarm Throttle Time
or Severity
Err_Alarm

============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
NOTE: Operator Commands for P_Alarm are sent directly to the contained AOI.
MCmd_SubstPV: Maintenance Command to select Maintenance-entered substitute PV
Maintenance Command
to use Substitute PV
(override input)
MCmd_SubstPV
2

Do not allow this Command if Cfg_NoSubstPV is set.


Maintenance Command
to use Substitute PV
1=Disallow selection
(override input)
of Substitute PV
MCmd_SubstPV
Cfg_NoSubstPV
U
/

Cfg_NoSubstPV

2(XIO) 3(XIC) 5(XIO)

MCmd_SubstPV

*2(OTU) 2(XIC)

Wrk_SubstPV

*2(OTL) *3(OTU) 4(XIC) 4(XIO) 5(XIO) 5(XIC) 10(XIO) 10(XIC) 14(XIO)

Internal flag: Using


Substitute PV
Wrk_SubstPV
L

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 39
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


MCmd_InpPV: Maintenance Command to cancel Substitute PV and return to Live Input PV.
Maintenance Command
Maintenance Command
Internal flag: Using
to use Input PV
to use Input PV
Substitute PV
(normal)
(normal)
Wrk_SubstPV
MCmd_InpPV
MCmd_InpPV
U
U

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV

Cfg_NoSubstPV

2(XIO) 3(XIC) 5(XIO)

MCmd_InpPV

*3(OTU) 3(XIC)

Wrk_SubstPV

*2(OTL) *3(OTU) 4(XIC) 4(XIO) 5(XIO) 5(XIC) 10(XIO) 10(XIC) 14(XIO)

Show the Substitute / Input PV Status, and if Substitute PV


is selected, show the Maintenance Bypass breadcrumb.
1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

Internal flag: Using


Substitute PV
Wrk_SubstPV
4

Sts_InpPV

*4(OTE)

Sts_MaintByp

*4(OTE)

Sts_SubstPV

*4(OTE) 4(XIC) 17(XIO) 17(XIC)

Wrk_SubstPV

*2(OTL) *3(OTU) 4(XIO) 4(XIC) 5(XIO) 5(XIC) 10(XIO) 10(XIC) 14(XIO)

Cfg_NoSubstPV

1=Disallow selection
of Substitute PV
Cfg_NoSubstPV
/

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

1=Using Input PV
(normal)
Sts_InpPV

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

1=Device has a
Maintenance Bypass
function active
Sts_MaintByp

Commands for Substitue PV and Input PV are available


based on the current state of the internal toggle bit.
Internal flag: Using
Substitute PV
Wrk_SubstPV
/
Internal flag: Using
Substitute PV
Wrk_SubstPV

1=Ready for
MCmd_SubstPV
Rdy_SubstPV
1=Ready for
MCmd_InpPV
Rdy_InpPV

2(XIO) 3(XIC) 5(XIO)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn

Page 40
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Rdy_InpPV

*5(OTE)

Rdy_SubstPV

*5(OTE)

Wrk_SubstPV

*2(OTL) *3(OTU) 4(XIC) 4(XIO) 5(XIO) 5(XIC) 10(XIO) 10(XIC) 14(XIO)

============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
Operator Command to
Reset all latched
Alarms
OCmd_Reset

Operator Command to
Reset all latched
Alarms
OCmd_Reset
U

6
Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll

Program Command to
Reset all latched
Alarms
PCmd_Reset

Operator Command to
Reset and
Acknowledge all
Alarms
OCmd_ResetAckAll
U
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<TgtDisagree.Cfg_PCmdClear>

Target Disagree
Alarm Program
Command to Reset
latched alarm
TgtDisagree.PCmd_Reset
L

Target Disagree
Alarm Program
Command to
Acknowledge alarm
TgtDisagree.PCmd_Ack
<PCmd_TgtDisagreeAck>
L
Program Command to
Reset all latched
Alarms
PCmd_Reset
U
NOP

1=Reset Alarm
requiring reset
Inp_Reset

Cfg_PCmdClear

6(XIC)

Inp_Reset

6(XIC)

OCmd_Reset

6(XIC) *6(OTU)

OCmd_ResetAckAll

6(XIC) *6(OTU)

PCmd_Reset

*6(OTU) 6(XIC)

TgtDisagree.PCmd_Ack *6(OTL)
TgtDisagree.PCmd_Rese *6(OTL)
t

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 41
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


============================================================
DISCRETE INPUT PROCESSING
============================================================
Sts_PVBad: If the I/O communication / data quality is OK,
or in Simulation or substituted, show NO Bad PV Status.

Input Comm Status or


Quality 1=Bad, 0=OK
Inp_PVBad
7

If the I/O communication is faulted or data quality is BAD and we're NOT
in Simulation or using substitute PV, show the Bad PV Status.
1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

Inp_PVBad

7(XIC)

Inp_Sim

7(XIO) 8(XIC) 8(XIO) 9(XIO)

Sts_PVBad

*7(OTE) 17(XIO) 17(XIC)

Input Comm Status/


Quality (0=OK,
1=Bad)
Sts_PVBad

FOR THE ENABLE_IN_FALSE ROUTINE, the Process Variable Status (Sts_PV) bit shows
the INVERSE of the state of the Inp_PV Input, to support the XIC (discrete input) P_DIn (P_DIn Tag)
construct for instantiation and I/O mapping. This will typically use Inp_PV = 1, making Sts_PV
follow the rung condition.
1=Use simulated PV
Input Signal
Discrete Input
(Set_SimPV); 0=Use
(process variable)
Status (actual, not
Input (Inp_PV)
from Sensor
subject to Override)
Inp_Sim
Inp_PV
Sts_PV
/
/
1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim

PV used in
Simulation
(Inp_Sim=1)
Set_SimPV

Inp_PV

8(XIO)

Inp_Sim

7(XIO) 8(XIC) 8(XIO) 9(XIO)

Set_SimPV

8(XIC) *9(OTU) *9(OTL)

Sts_PV

*8(OTE) 9(XIC) 9(XIO) 10(XIC)

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 42
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


The Simulated PV Setting tracks the selected PV for bumpless transfer into Simulation.

1=Use simulated PV
(Set_SimPV); 0=Use
Input (Inp_PV)
Inp_Sim
/

NOTE: Tracking must be done with latch/unlatch instructions to keep the


Set_SimPV setting retentive through a power cycle.
In order to avoid overwriting asynchronous inputs, the Set_SimPV bit is only written
when Simulation is NOT selected (live PV is used).
Discrete Input
Status (actual, not
subject to Override)
Sts_PV
Discrete Input
Status (actual, not
subject to Override)
Sts_PV
/

Inp_Sim

7(XIO) 8(XIC) 8(XIO) 9(XIO)

Set_SimPV

8(XIC) *9(OTU) *9(OTL)

Sts_PV

*8(OTE) 9(XIC) 9(XIO) 10(XIC)

10

The Status (Sts) bit shows the state of the selected input (after debounce, below).
This rung selects which PV is used: the input/simulation PV or the substitute PV.
In normal operation, it's the state of the Input (Sts_PV).
In Substitute PV, it's the state of the entered Substitute PV (Oper or Prog).
Discrete Input
Internal flag: Using
Status (actual, not
Substitute PV
subject to Override)
Wrk_SubstPV
Sts_PV
/
Internal flag: Using
Substitute PV
Wrk_SubstPV

PV used in
Simulation
(Inp_Sim=1)
Set_SimPV
L
PV used in
Simulation
(Inp_Sim=1)
Set_SimPV
U

Internal Status
(after Manual
Override selection)
Wrk_Sts

Maintenance-Entered
Substitute PV
MSet_SubstPV

MSet_SubstPV

10(XIC) *14(OTU) *14(OTL)

Sts_PV

*8(OTE) 9(XIO) 9(XIC) 10(XIC)

Wrk_Sts

*10(OTE) 11(XIC) 12(XIO)

Wrk_SubstPV

*2(OTL) *3(OTU) 4(XIO) 4(XIC) 5(XIO) 5(XIC) 10(XIO) 10(XIC) 14(XIO)

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 43
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


These two rungs debounce the selected PV, ensuring the Status stays in
each state a minimum time, while not delaying the Status on transition after an
extended period of time in the prior state.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-02 2012-07-17: Improved handling of timers with presets = 0 #####
Internal Status
(after Manual
Override selection)
Wrk_Sts
11

Timer to ensure
Status LOW time on
falling edge
Wrk_FallT.TT
/

Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.TT

Timer to ensure
Status HIGH time on
rising edge
TON
Timer On Delay
Timer
Wrk_RiseT
Preset
0
Accum
0

Timer to ensure
Status HIGH time on
rising edge
TON
Timer On Delay
Timer
Wrk_RiseT
Preset
0
Accum
0

Wrk_FallT.TT

11(XIO) 12(XIC)

Wrk_RiseT

*11(TON)

Wrk_RiseT.TT

11(XIC) 12(XIO)

Wrk_Sts

*10(OTE) 11(XIC) 12(XIO)

EN
DN

EN
DN

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 44
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-02 2012-07-17: Improved handling of timers with presets = 0 #####

12

Internal Status
(after Manual
Override selection)
Wrk_Sts
/

Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.TT
/

Timer to ensure
Status LOW time on
falling edge
Wrk_FallT.TT

Timer to ensure
Status LOW time on
falling edge
TON
Timer On Delay
Timer
Wrk_FallT
Preset
0
Accum
0

Timer to ensure
Status LOW time on
falling edge
TON
Timer On Delay
Timer
Wrk_FallT
Preset
0
Accum
0

Wrk_FallT

*12(TON)

Wrk_FallT.TT

11(XIO) 12(XIC)

Wrk_RiseT.TT

11(XIC) 12(XIO)

Wrk_Sts

*10(OTE) 11(XIC) 12(XIO)

EN
DN

EN
DN

The Rising Edge triggered timer ENABLE bit (sealed in using the Timing bit)
is our debounced input. Pass it along as the Status.
Timer to ensure
Status HIGH time on
rising edge
Wrk_RiseT.EN

Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts

13

Sts

*13(OTE) 14(XIO) 14(XIC) 16(XIO) 16(XIC)

Wrk_RiseT.EN

13(XIC)

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

14

Internal flag: Using


Substitute PV
Wrk_SubstPV
/

Page 45
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


Finally, if we are NOT using the Substitute PV, have it track the
debounced Status for bumpless transfer to Substitute.
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts
/
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts

MSet_SubstPV

10(XIC) *14(OTL) *14(OTU)

Sts

*13(OTE) 14(XIO) 14(XIC) 16(XIC) 16(XIO)

Wrk_SubstPV

*2(OTL) *3(OTU) 4(XIO) 4(XIC) 5(XIO) 5(XIC) 10(XIC) 10(XIO) 14(XIO)

Maintenance-Entered
Substitute PV
MSet_SubstPV
U

Maintenance-Entered
Substitute PV
MSet_SubstPV
L

============================================================
TARGET DISAGREE STATUS GENERATION
============================================================
The Target Disagree Status is "gated" by a signal such as "pump running", which must
be true for a certain period of time before disagreement checking is activated.
For example, a High Vibration status for a pump is only checked when the pump has
been running long enough to settle down from initial startup vibration.
The High Vibration expected to be seen when the pump is first starting.
If no gating signal is available, set Inp_Gate to 1 and Cfg_GateT to 0 (defaults).
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### V2.0-00 2011-09-30: Removed "Alarm Disabled", as this is STATUS only #####
##### 2.0-02 2012-07-17: Improved handling of timers with presets = 0 #####
Gate Condition (=1
to enable Disagree
Status)
Inp_Gate
15

Inp_Gate

15(XIC)

Wrk_GateDlyT

*15(TON)

Gate Delay timer


TON
Timer On Delay
Timer Wrk_GateDlyT
Preset
0
Accum
0

EN
DN

Gate Delay timer


TON
Timer On Delay
Timer Wrk_GateDlyT
Preset
0
Accum
0

EN
DN

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 46
22/12/2015 08,56,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


Target Disagree Status: The gate is true, the gate delay is done (from th
the (Process) input is in the state opposite of the Target state, and s
for the On-Delay Time. The Status persists for the Off-Delay time afte

@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@


@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@

Gate Delay timer


Wrk_GateDlyT.DN
16

Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts
/
Discrete Input
Status (incl.
Debounce, Manual
Override, if used)
Sts

##### 2.0-00 2011-09-30: Changed MinDuration to On-Delay and added


##### 2.0-01 2012-05-30: Fixed handling of Off Delay (moved bran
##### 2.0-02 2012-07-17: Improved handling of timers with presets
Target State of
Input (Disagree
Target Disa
Status if not in
Status minimu
Target State)
time to ra
Inp_Target
TON
Timer On Delay
Timer Wrk_TgtDisa
Target State of
Preset
Input (Disagree
Accum
Status if not in
Target State)
Target Disagree
Target Disa
Inp_Target
Status minimum true
Status minimu
/
time to raise
time to cl
Wrk_TgtDisagreeOnDlyT.DN
TOF
Timer Off Delay
Timer Wrk_TgtDisag
Preset
Accum

Target Disagree
Status minimum false
time to clear
Wrk_TgtDisagreeOffDlyT.DN

Inp_Target

16(XIO) 16(XIC)

Sts

*13(OTE) 14(XIO) 14(XIC) 16(XIC) 16(XIO)

Sts_TgtDisagree

17(XIO) 17(XIC)

TgtDisagree.Inp

*16(OTE)

Wrk_GateDlyT.DN

16(XIC)

Wrk_TgtDisagreeOffDlyT *16(TOF)
Wrk_TgtDisagreeOffDlyT.16(XIC)
DN
Wrk_TgtDisagreeOnDlyT *16(TON)
Wrk_TgtDisagreeOnDlyT. 16(XIC)
DN

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 47
22/12/2015 08,56,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung

delay is done (from the rung above),


he Target state, and stays there
he Off-Delay time after agreement.

ed to ensure that @@@@@


an if Preset = 0 ! @@@@@

On-Delay and added Off-Delay #####


Off Delay (moved branch) #####
of timers with presets = 0 #####
Target Disagree
Status minimum true
time to raise
EN
Wrk_TgtDisagreeOnDlyT
0
0

DN

Target Disagree
Status minimum false
time to clear
EN
Wrk_TgtDisagreeOffDlyT
0
0

DN

Target Disagree
Status minimum true
time to raise
TON
Timer On Delay
Timer Wrk_TgtDisagreeOnDlyT
Preset
0
Accum
0
Target Disagree
Status minimum false
time to clear
TOF
Timer Off Delay
Timer Wrk_TgtDisagreeOffDlyT
Preset
0
Accum
0

EN
DN

EN
DN

Target Disagree
Alarm Alarm
Condition Input
1=Alarm
TgtDisagree.Inp
<Sts_TgtDisagree>

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 48
22/12/2015 08,56,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


============================================================
ENUMERATED STATUS VALUES
============================================================
This rung generates the enumerated Device Status:
0 = Normal (PV Good)
6 = PV Bad
7 = Substitute PV
And this rung generates the enumerated Device Fault Status:
0 = none
16 = Target Disagree
34 = Config Error

17

##### V2.0-03 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Input Comm Status/
1=Using Substitute
Device Confirmed Sts
Quality (0=OK,
PV (Input being
0=PV Good, 6=PV Bad,
1=Bad)
overridden)
7=Substitute PV
Sts_PVBad
Sts_SubstPV
CLR
/
/
Clear
Dest
Val_Sts
0
Input Comm Status/
Quality (0=OK,
1=Bad)
Sts_PVBad

Device Confirmed Sts


0=PV Good, 6=PV Bad,
7=Substitute PV
MOV
Move
Source
6
Dest

1=Using Substitute
PV (Input being
overridden)
Sts_SubstPV

Device Confirmed Sts


0=PV Good, 6=PV Bad,
7=Substitute PV
MOV
Move
Source
7
Dest

1=Input is not in
Target state
Sts_TgtDisagree
<TgtDisagree.Inp>
/

1=Input is not in
Target state
Sts_TgtDisagree
<TgtDisagree.Inp>

1=Error in Config:
see detail bits for
reason
Sts_Err
/

Val_Sts
0

Device Fault Status


0=none, 16=Tgt
Disagree, 34=CfgErr
CLR
Clear
Dest
Val_Fault
0
Device Fault Status
0=none, 16=Tgt
Disagree, 34=CfgErr
MOV
Move
Source
16
Dest

1=Error in Config:
see detail bits for
reason
Sts_Err

Val_Sts
0

Val_Fault
0

Device Fault Status


0=none, 16=Tgt
Disagree, 34=CfgErr
MOV
Move
Source
34
Dest

Val_Fault
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn
Sts_Err

*1(OTE) 17(XIO) 17(XIC)

Sts_PVBad

*7(OTE) 17(XIO) 17(XIC)

Sts_SubstPV

4(XIC) *4(OTE) 17(XIC) 17(XIO)

Sts_TgtDisagree

*16(OTE) 17(XIO) 17(XIC)

Val_Fault

*17(MOV) *17(CLR)

Val_Sts

*17(MOV) *17(CLR)

Page 49
22/12/2015 08,56,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Handle Alarm Processing using the standard P_Alarm AOI


Target Disagree
Alarm
P_Alarm
Alarm
P_Alarm
TgtDisagree ...
Inp
1
Inp_Reset
0

18

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

TgtDisagree

*18(P_Alarm)

If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit


summary status bit (which puts the "I" box on the graphic symbol).
Target Disagree
Alarm 1=Alarm has
been inhibited,
disabled or
suppressed, display
"I" icon
TgtDisagree.Sts_AlmInh

1=One or more Alarms


Inhibited, Disabled
or Suppressed
Sts_AlmInh

19

Sts_AlmInh

*19(OTE)

TgtDisagree.Sts_AlmInh 19(XIC)

RSLogix 5000

P_DIn Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DIn:EnableInFalse
Total number of rungs in routine: 21
Data Context: P_DIn <definition>

Page 50
22/12/2015 08,56,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inverts Inp_PV to allow mapping input using XIC/XIO on rung


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).
##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and moved down to after the Rdy_Reset logic. #####
Current Alarm Level
and Acknowledgement
(enumeration)
MOV
Move
Source TgtDisagree.Val_Notify
0
Dest
Val_Notify
0

20

Target Disagree
Alarm Ready to
receive OCmd_Ack
(enable button)
TgtDisagree.Rdy_Ack
Target Disagree
Alarm Ready to
receive OCmd_Reset
(enable button)
TgtDisagree.Rdy_Reset

Rdy_Reset

*20(OTE)

Rdy_ResetAckAll

*20(OTE)

TgtDisagree.Rdy_Ack

20(XIC)

1=At least one Alarm


requires
Acknowledgement
Rdy_ResetAckAll

Current Alarm Level


and Acknowledgement
(enumeration)
Val_Notify.0
L

1=At least one Alarm


requires Reset
Rdy_Reset

TgtDisagree.Rdy_Reset 20(XIC)
TgtDisagree.Val_Notify

20(MOV)

Val_Notify

*20(MOV)

Val_Notify.0

*20(OTL)

(End)

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Page 1
22/12/2015 08,57,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_DoseFM v2.0 04 Release


Rockwell Automation

Dosing with Flowmeter


Available Languages
Relay Ladder

Function Block

Structured Text
P_DoseFM();
Parameters
Required
X

Name
P_DoseFM

Data Type
P_DoseFM

Usage
InOut

EnableIn
EnableOut

BOOL
BOOL

Input
Output

Description
Dosing
with
Flowmeter

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Inp_RatePV

REAL

Input

Inp_QtyPV

REAL

Input

Inp_RunFdbk

BOOL

Input

Inp_DribbleFdbk

BOOL

Input

Inp_StopFdbk

BOOL

Input

Inp_RatePVBad

BOOL

Input

Inp_RatePVUncertain

BOOL

Input

Inp_QtyPVBad

BOOL

Input

Inp_QtyPVUncertain

BOOL

Input

Inp_CtrldEqpFault

BOOL

Input

Inp_Sim

BOOL

Input

Inp_Reset

BOOL

Input

Page 2
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Flow Rate
from
Flowmeter
(EU/time,
see
Cfg_RateTi
me)
Quantity
from
Flowmeter
(EU or
Pulse
Count)
1=Controll
ed
Equipment
is
Delivering
(Running)
1=Controll
ed
Equipment
is
Delivering
at Dribble
1=Controll
ed
Equipment
is
confirmed
Stopped
1=Rate PV
Input
Quality =
Bad (fail)
1=Rate PV
Input
Quality =
Uncertain
1=Quantity
PV Input
Quality =
Bad (fail)
1=Quantity
PV Input
Quality =
Uncertain
Controlled
Equipment
device or
I/O status
0=OK,
1=fail
1=Simulate
working
flowmeter;
0=use
actual
flowmeter
1=Reset
all fault
conditions
and
latched
Alarms

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Cfg_HasDribble

BOOL

Input

Cfg_HasEqpFdbk

BOOL

Input

Cfg_UseEqpFdbk

BOOL

Input

Cfg_AutoAdjPreact

BOOL

Input

Cfg_CalcRate

BOOL

Input

Cfg_CalcQty

BOOL

Input

Cfg_SetTrack

BOOL

Input

Cfg_PCmdClear

BOOL

Input

Cfg_ProgDefault

BOOL

Input

Cfg_ShedOnEqpFault

BOOL

Input

Cfg_HasOverTolAlm

BOOL

Input

Cfg_HasUnderTolAlm

BOOL

Input

Page 3
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Slow to
Dribble before
complete,
0=Run full
flow until
complete
1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
1=Use run
/ dribble
/ stop
feedback,
0=Assume
equipment
state
1=Enable
automatic
adjustment
of preact
after each
delivery
1=differen
tiate
Inp_Qty to
get Rate,
0=use
Inp_Rate
1=integrat
e Inp_Rate
to get
Quantity,
0=use
Inp_Qty
1=PSets track
OSets in Oper,
OSets track PSets
in Prog, 0=no
tracking
1=Clear
Program
Commands
on receipt
0=Leave
Set
Default Mode: 1=Program
Mode if no requests;
0=Operator Mode if no
requests
1=Stop delivery and Alarm
on Equipment Fault;
0=Alarm only on Equipment
Fault
1=Over
Tolerance
Alarm
exists and
will be
checked
1=Under
Tolerance
Alarm
exists and
will be
checked

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Cfg_HasZeroFaultAlm

BOOL

Input

Cfg_HasEqpFaultAlm

BOOL

Input

Cfg_OverTolResetReqd

BOOL

Input

Cfg_UnderTolResetReqd

BOOL

Input

Cfg_ZeroFaultResetReqd

BOOL

Input

Cfg_EqpFaultResetReqd

BOOL

Input

Cfg_OverTolAckReqd

BOOL

Input

Cfg_UnderTolAckReqd

BOOL

Input

Cfg_ZeroFaultAckReqd

BOOL

Input

Cfg_EqpFaultAckReqd

BOOL

Input

Cfg_OverTolSeverity

SINT

Input

Page 4
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Zero
Fault
Alarm
exists and
will be
checked
1=Equipmen
t Fault
Alarm
exists and
will be
checked
1=Reset
requied to
clear Out
of
Tolerance
High Alarm
1=Reset
required
to clear
Out of
Tolerance
Low Alarm
1=Reset
required
to clear
Zero Fault
Alarm
1=Reset
required
to clear
Equipment
Fault
Alarm
1=Acknowle
dge
required
for Out of
Tolerance
High Alarm
1=Acknowle
dge
required
for Out of
Tolerance
Low Alarm
1=Acknowle
dge
required
for Zero
Fault
Alarm
1=Acknowle
dge
required
for
Equipment
Fault
Alarm
Over
Tolerance
Alarm
Severity
1=info,
2=warn,
3=excep,
4=fault
RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Cfg_UnderTolSeverity

SINT

Input

Cfg_ZeroFaultSeverity

SINT

Input

Cfg_EqpFaultSeverity

SINT

Input

Cfg_MaxQty

REAL

Input

Cfg_EUQtyMult

REAL

Input

Cfg_Rollover

REAL

Input

Cfg_CountsPerEU

REAL

Input

Cfg_RateTime

REAL

Input

Cfg_RateFiltTC

REAL

Input

Cfg_LoRateCutoff

REAL

Input

Cfg_BumpT

REAL

Input

Page 5
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Under
Tolerance
Alarm
Severity
1=info,
2=warn,
3=excep,
4=fault
Zero Fault
Alarm
Severity
1=info,
2=warn,
3=excep,
4=fault
Equipment
Fault Alarm
Severity
1=info,
2=warn,
3=excep,
4=fault
Maximum
allowed
quantity
to deliver
(setpoint)
(EU)
Rate to
Quantity
EU
Multiplier
(e.g., Gal
to Bbl.)
Quantity
Rollover
(e.g., max
count for
pulse
input)
Number of
Counts in
Inp_QtyPV
which
equal 1.0
EU
Time
factor for
rate (60
for /min,
3600 for
/hr) (Sec)
Filter
Time
Constant
(sec) for
calculated
Rate
Rate below
which to
report
zero flow
(Inp_RateP
V untis)
Bump
(manual
top-off)
Time (Sec)
RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Cfg_AutoAdjPct

REAL

Input

Cfg_SimRate

REAL

Input

Cfg_SimDribbleRate

REAL

Input

Cfg_ClearPulseT

DINT

Input

Cfg_FaultT

DINT

Input

Cfg_OperKeep

SINT

Input

Cfg_ProgKeep

SINT

Input

PSet_SP

REAL

Input

PSet_DribbleQty

REAL

Input

PSet_Preact

REAL

Input

PSet_TolHi

REAL

Input

Page 6
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Percentage
of
delivery
error to
auto-adjus
t preact
(%)
Rate at which
to deliver when
running in
Simulation
(EU/rate time)
Rate at which
to dribble when
running in
Simulation
(EU/rate time)
Time to
pulse
Out_Clear
to clear
external
totalizer
(sec)
Time for
Equipment
Feedback to
follow
Output
before Fault
(sec)
Oper keeps control in Prog Mode:
.0=Start/Stop, .1=SP,
.2=Dribble/Preact, .3=Tolerances
Prog keeps control in Oper Mode:
.0=Start/Stop, .1=SP,
.2=Dribble/Preact, .3=Tolerances
Program
Setting of
total
quantity
to deliver
(EU)
Program
Setting of
quantity
to dribble
(EU)
Program
Setting of
amount
before
total to
stop flow
(EU)
Program
Setting of
High
Tolerance
Limit (OK
amount >
SP)

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

PSet_TolLo

REAL

Input

PSet_Owner

DINT

Input

OSet_SP

REAL

Input

OSet_DribbleQty

REAL

Input

OSet_Preact

REAL

Input

OSet_TolHi

REAL

Input

OSet_TolLo

REAL

Input

PCmd_ClearTot

BOOL

Input

PCmd_StartTot

BOOL

Input

PCmd_StopTot

BOOL

Input

PCmd_StartFlow

BOOL

Input

PCmd_StopFlow

BOOL

Input

Page 7
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program
Setting of
Low
Tolerance
Limit (OK
amount <
SP)
Program
Owner
Request ID
(non-zero)
or Release
(zero)
Operator
Setting of
total
quantity
to deliver
(EU)
Operator
Setting of
quantity
to dribble
(EU)
Operator
Setting of
amount
before
total to
stop flow
(EU)
Operator
Setting of
High
Tolerance
Limit (OK
amount >
SP)
Operator
Setting of
Low
Tolerance
Limit (OK
amount <
SP)
Program
Command to
Clear
Totalizer
Qty
Program
Command to
Start
Totalizer
Program
Command to
Stop
Totalizer
Program
Command to
Start
Delivery
Program
Command to
Stop/Pause
Delivery

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

PCmd_CheckTol

BOOL

Input

PCmd_Acq

BOOL

Input

PCmd_Rel

BOOL

Input

PCmd_Lock

BOOL

Input

PCmd_Unlock

BOOL

Input

PCmd_Reset

BOOL

Input

PCmd_OverTolAck

BOOL

Input

PCmd_OverTolInhibit

BOOL

Input

PCmd_OverTolUninhibit

BOOL

Input

PCmd_UnderTolAck

BOOL

Input

PCmd_UnderTolInhibit

BOOL

Input

PCmd_UnderTolUninhibit

BOOL

Input

Page 8
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program
Command to
Check
Tolerances
Program
Command to
Acquire
ownership
(Oper to
Prog)
Program
Command to
Release
ownership
(Prog to
Oper)
Program
Command to
Lock Mode
in Prog
Program
Command to
Unlock
Mode
Program
Command to
Reset all
Alarms
requiring
Reset
Program
Command to
Acknowledg
e Out of
Tolerance
High Alarm
Program
Command to
Inhibit
Out of
Tolerance
High Alarm
Program
Command to
Uninhibit
Out of
Tolerance
High Alarm
Program
Command to
Acknowledg
e Out of
Tolerance
Low Alarm
Program
Command to
Inhibit
Out of
Tolerance
Low Alarm
Program
Command to
Uninhibit
Out of
Tolerance
Low Alarm

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

PCmd_ZeroFaultAck

BOOL

Input

PCmd_ZeroFaultInhibit

BOOL

Input

PCmd_ZeroFaultUninhibit

BOOL

Input

PCmd_EqpFaultAck

BOOL

Input

PCmd_EqpFaultInhibit

BOOL

Input

PCmd_EqpFaultUninhibit

BOOL

Input

OCmd_ClearTot

BOOL

Input

OCmd_StartTot

BOOL

Input

OCmd_StopTot

BOOL

Input

OCmd_StartFlow

BOOL

Input

OCmd_StopFlow

BOOL

Input

OCmd_CheckTol

BOOL

Input

OCmd_Bump

BOOL

Input

Page 9
22/12/2015 08,57,44
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program
Command to
Acknowledg
e Zero
Fault
Alarm
Program
Command to
Inhibit
Zero Fault
Alarm
Program
Command to
Uninhibit
Zero Fault
Alarm
Program
Command to
Acknowledg
e
Equipment
Fault
Alarm
Program
Command to
Inhibit
Equipment
Fault
Alarm
Program
Command to
Uninhibit
Equipment
Fault
Alarm
Operator
Command to
Clear
Totalizer
Qty
Operator
Command to
Start
Totalizer
Operator
Command to
Stop
Totalizer
Operator
command to
Start
Deliver
Operator
Command to
Stop/Pause
Delivery
Operator
Command to
Check
Tolerances
Operator
Command to
Bump
Delivery
for Under
Tolerance

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

OCmd_Reset

BOOL

Input

OCmd_ResetAckAll

BOOL

Input

Out_RunFlow

BOOL

Output

Out_DribbleFlow

BOOL

Output

Out_StopFlow

BOOL

Output

Out_RunTot

BOOL

Output

Out_ClearTot

BOOL

Output

Val_Qty

REAL

Output

Val_Rate

REAL

Output

Val_Remain

REAL

Output

Val_PctComplete

REAL

Output

Val_SP

REAL

Output

Page 10
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Operator
Command to
Reset all
Alarms
requiring
Reset
Operator
Command to
Reset all
Alarms and
latched Shed
conditions
1=Deliver
at Full
(fast)
Flow
1=Deliver
at Dribble
(slow)
Flow
1=Stop
Delivery
Equipment
1=Run
external
totalizer
(e.g.
onboard
flowmeter)
1=Reset
external
totalizer
(e.g.
onboard
flowmeter)
Quantity
actually
delivered
(totalizer
output)
(EU)
Current
Delivery
Rate
(EU/time)
(see
Cfg_RateTi
me)
Amount yet
to deliver
to reach
Setpoint
(EU)
Percent
Complete
(for
Progress
Bar on
HMI) 0.0
to 100.0%
Amount to
be
delivered
(Setpoint)
(EU)

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Val_DribbleQty

REAL

Output

Val_Preact

REAL

Output

Val_TolHi

REAL

Output

Val_TolLo

REAL

Output

Val_Cmd

SINT

Output

Val_Fdbk

SINT

Output

Val_Sts

SINT

Output

Val_Fault

SINT

Output

Val_Mode

DINT

Output

Val_Owner

DINT

Output

Val_Notify

SINT

Output

Sts_Cleared

BOOL

Output

Sts_TotRunning

BOOL

Output

Sts_FlowStarting

BOOL

Output

Sts_FlowRunning

BOOL

Output

Page 11
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Amount to
be
delivered
at slow
rate (EU)
Amount
before SP
at which
flow will
be stopped
(EU)
Allowed
Amount >
SP (EU)
Allowed
Amount <
SP (EU)
Dosing Command 0=None, 1=ClrTot, 2=StartTot,
3=StartFlow, 4=StartDrib, 5=Bump, 6=StopFlow,
7=StopTot
Equipment Feedback
0=None/Transition, 1=Flow Stopped,
2=Flow Running, 3=Flow Dribbling
Dosing Confirmed Sts 0=? 1=Stop, 2=TotRun, 3=FlowRun, 4=Dribble,
5=Bump 6=StartFlow, 7=StartDrib, 8=Stopping, 33=Disabled
Device
Fault
Status
0=None,
17=Equipme
ntFault,
34=CfgErr
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock,
6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Current
Object
Owner ID
(0=not
owned)
Current
Alarm
Level and
Acknowledg
ement
(enumerati
on)
1=Totalize
r Clear
completed
1=Totalize
r Running,
0=Totalize
r Stopped
1=Flow is
Starting
(Out_Run
is ON,
Fdbk not
showing
Run)
1=Flow is
Running
(Out_Run
is ON,
Fdbk shows
Running)

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Sts_DribbleStarting

BOOL

Output

Sts_FlowDribble

BOOL

Output

Sts_FlowStopping

BOOL

Output

Sts_FlowStopped

BOOL

Output

Sts_Bumping

BOOL

Output

Sts_LoRateCutoff

BOOL

Output

Sts_Complete

BOOL

Output

Sts_InTol

BOOL

Output

Sts_Available

BOOL

Output

Sts_QtyBad

BOOL

Output

Sts_QtyUncertain

BOOL

Output

Sts_RateBad

BOOL

Output

Sts_RateUncertain

BOOL

Output

Sts_NotRdy

BOOL

Output

Page 12
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Dribble
Starting
(Out_Dribble
is ON, Fdbk
not showing
Dribble)
1=Flow is
Dribbling
(Out_Dribb
le is ON,
Fdbk shows
Dribble)
1=Flow is
Stopping
(Out_Stop
is ON,
Fdbk not
showing
Stopped)
1=Flow is
Stopped
(Out_Stop
is ON,
Fdbk shows
Stopped)
1=Bump
flow is
active
1=Rate PV
below low
rate
cutoff,
flow
assumed to
be zero
1=Total
Delivered
> (SP Preact)
1=Total
Delivered
is Within
Tolerances
1=Dosing
available
for
control by
automation
(Prog)
1=Quantity
Value is
Bad (PV
Fail)
1=Quantity
Value is
Uncertain
1=Rate
Value is
Bad (PV
Fail)
1=Rate
Value is
Uncertain
1=Device
is Not
Ready to
be
operated
RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Sts_MaintByp

BOOL

Output

Sts_AlmInh

BOOL

Output

Sts_Err

BOOL

Output

Err_EU

BOOL

Output

Err_Rate

BOOL

Output

Err_Cutoff

BOOL

Output

Err_Limit

BOOL

Output

Err_Sim

BOOL

Output

Err_Timer

BOOL

Output

Err_Alarm

BOOL

Output

Err_Keep

BOOL

Output

Sts_Maint

BOOL

Output

Page 13
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=A
Maintenanc
e Bypass
is Active,
display
icon
1=One or
more
Alarms
Inhibited,
Disabled
or
Suppressed
1=Error:
Bad
Configurat
ion, see
detail Err
bits for
reason
1=Error:
Cfg_CountsPer
EU,
Cfg_EUQtyMult
or
Cfg_Rollowver
invalid
1=Error:
Cfg_RateFi
ltTC or
Cfg_RateTi
me invalid
1=Error:
Cfg_LoRate
Cutoff
invalid
1=Error:
Cfg_MaxQty
invalid
1=Error:
Cfg_SimDri
bbleRate
or
Cfg_SimRat
e invalid
1=Error: Cfg_BumpT,
Cfg_FaultT or
Cfg_ClearPulseT (use
0.0 to 2147483.647)
1=Error in
Config:
Alarm Min
On Time or
Severity
1=Error in
Config:
Invalid setup
of
Cfg_OperKeep
and
Cfg_ProgKeep
1=Mode is
Maintenanc
e
(supersede
s Prog,
Oper)

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Sts_Prog

BOOL

Output

Sts_Oper

BOOL

Output

Sts_ProgOperLock

BOOL

Output

Sts_NoMode

BOOL

Output

Sts_OverTol

BOOL

Output

Alm_OverTol

BOOL

Output

Ack_OverTol

BOOL

Output

Sts_OverTolDisabled

BOOL

Output

Sts_OverTolInhibited

BOOL

Output

Sts_OverTolSuppressed

BOOL

Output

Sts_UnderTol

BOOL

Output

Alm_UnderTol

BOOL

Output

Ack_UnderTol

BOOL

Output

Sts_UnderTolDisabled

BOOL

Output

Page 14
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Mode is
Program
(auto)
1=Mode is
Operator
(manual)
1=Program
or
Operator
has
requested
Mode Lock
1=NoMode
(Disabled
because
EnableIn
is False)
1=Delivery
Out of
Tolerance
High
1=Delivery
Out of
Tolerance
High Alarm
1=Out of
Tolerance
High Alarm
has been
acknowledg
ed
1=Out of
Tolerance High
Alarm has been
disabled (will
not be sent)
1=Out of
Tolerance
High Alarm
has been
inhibited
by logic
1=Out of
Tolerance
High Alarm
has been
suppressed
(logged
only)
1=Delivery
Out of
Tolerance
Low
1=Delivery
Out of
Tolerance
Low Alarm
1=Out of
Tolerance
Low Alarm
has been
acknowledg
ed
1=Out of
Tolerance Low
Alarm has been
disabled (will
not be sent)
RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Sts_UnderTolInhibited

BOOL

Output

Sts_UnderTolSuppressed

BOOL

Output

Sts_ZeroFault

BOOL

Output

Alm_ZeroFault

BOOL

Output

Ack_ZeroFault

BOOL

Output

Sts_ZeroFaultDisabled

BOOL

Output

Sts_ZeroFaultInhibited

BOOL

Output

Sts_ZeroFaultSuppressed

BOOL

Output

Sts_EqpFault

BOOL

Output

Alm_EqpFault

BOOL

Output

Ack_EqpFault

BOOL

Output

Sts_EqpFaultDisabled

BOOL

Output

Page 15
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Out of
Tolerance
Low Alarm
has been
inhibited
by logic
1=Out of
Tolerance
Low Alarm
has been
suppressed
(logged
only)
1=Total
did not
clear or
unexpected
flow
1=Warning:
Total did
not clear
or still
flowing
1=Zero
Fault
Alarm has
been
acknowledg
ed
1=Zero
Fault
Alarm is
Disabled
(not saved
or sent)
1=Zero
Fault
Alarm has
been
inhibited
by logic
1=Zero
Fault
Alarm has
been
suppressed
(logged
only)
1=Equipmen
t Fault
Detected
1=Equipmen
t Fault
Alarm
1=Equipmen
t Fault
Alarm has
been
acknowledg
ed
1=Equipmen
t Fault
Alarm is
Disabled
(not saved
or sent)

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Sts_EqpFaultInhibited

BOOL

Output

Sts_EqpFaultSuppressed

BOOL

Output

Rdy_ClearTot

BOOL

Output

Rdy_StartTot

BOOL

Output

Rdy_StopTot

BOOL

Output

Rdy_StartFlow

BOOL

Output

Rdy_StopFlow

BOOL

Output

Rdy_CheckTol

BOOL

Output

Rdy_Bump

BOOL

Output

Rdy_Reset

BOOL

Output

Rdy_ResetAckAll

BOOL

Output

Rdy_SP

BOOL

Output

Page 16
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Equipmen
t Fault
Alarm has
been
inhibited
by logic
1=Equipmen
t Fault
Alarm has
been
suppressed
(logged
only)
1=Ready
for
OCmd_Clear
Tot
(enables
button)
1=Ready
for
OCmd_Start
Tot
(enables
button)
1=Ready
for
OCmd_StopT
ot
(enables
button)
1=Ready
for
OCmd_Start
Flow
(enables
button)
1=Ready
for
OCmd_StopF
low
(enables
button)
1-Ready
for
OCmd_Check
Tol
(enables
button)
1=Ready
for
OCmd_Bump
(enables
button)
1=At least
one Alarm
or Latched
Shed
requires
Reset
1=At least one
Alarm or latched
Shed condition
requires Reset or
Ack
1=Ready to
receive
OSet_SP
RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Rdy_DribPre

BOOL

Output

Rdy_Tol

BOOL

Output

P_DoseFM

BOOL

Output

Page 17
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Ready to
receive
OSet_Dribb
leQty or
OSet_Preac
t
1=Ready to
receive
OSet_TolHi
or
Oset_TolLo
Unique
Parameter
Name for
auto discovery

Extended Description
This Instruction monitors a flowmeter which provides flow rate (AI),
quantity pulses (e.g., 1756-CFM/HSC), or rate and total (fieldbus),
and provides:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Optional integration (totalizing) of analog flow to a Quantity


Optional differentiation of pulse count or quantity to a flow Rate
Commands to Start, Stop and Clear the Quantity (total)
Outputs to run and clear an external totalizer (e.g. on a fieldbus flowmeter)
Commands to Start and Stop Flow for a dose
Optional switching to a slow delivery (dribble) when approaching setpoint
Stopping flow just before reaching setpoint using a Preact value
Optional automatic adjustment of the preact value to fine tune the stop point
Commands to check if the delivered quantity is within user-specified tolerances and alarm if not
Program and Operator Settings for Setpoint, Preact, Dribble Quantity, High and Low Tolerances
Zero failure alarm if quantity does not zero when totalizer is cleared
Configurable Low Flow Cutoff to account for zero error on analog flowmeters
Conversion of flow units to alternate quantity units (say, GPM to Barrels)
Monitoring of input communication status
Monitoring of optional equipment status feedback
Mode selection (Operator, Program or Maintenance)
Simulation using configured simulated Delivery Rate and simulated Dribble Rate

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Clear any "lurking" Commands and all Readies, set NO MODE
Normal Scan: control / monitor Dosing with Flowmeter
Clear Ownership, clear "lurking" Commands, all Readies

Revision v2.0 04 Release Notes


Modified OperKeep, ProgKeep to allow all aspects to be kept, enforce no aspect kept by both Prog and Oper; changed low cutoff to ignore ALL
negative flow, not use ABS(). Buffering of Val_*.
Change History
Created:
Created By:
Edited:
Edited By:

23/09/2008 11,08,03
Not Available
18/03/2013 11,23,41
PLANTPAX\Library

Signature
ID:
Timestamp:

F9A49A1D
2013-03-18T17:23:41.758Z

RSLogix 5000

P_DoseFM - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Page 18
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cross Reference

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>
Name
Default
1
Ack_EqpFault
1=Equipment Fault Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Ack
Base Tag:
EqpFault.Ack
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

Page 19
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_DoseFM

1
Ack_OverTol
1=Out of Tolerance High Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Ack
Base Tag:
OverTol.Ack
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

1
Ack_UnderTol
1=Out of Tolerance Low Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Ack
Base Tag:
UnderTol.Ack
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

1
Ack_ZeroFault
1=Zero Fault Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Ack
Base Tag:
ZeroFault.Ack
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
Alm_EqpFault
1=Equipment Fault Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Alm
Base Tag:
EqpFault.Alm
Constant
No
External Access:
Read Only
Alm_EqpFault - P_DoseFM/EnableInFalse - *16(OTU)
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
Alm_OverTol
1=Delivery Out of Tolerance High Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Alm
Base Tag:
OverTol.Alm
Constant
No
External Access:
Read Only
Alm_OverTol - P_DoseFM/EnableInFalse - *16(OTU)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 20
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Alm_OverTol (Continued)
OverTol - P_DoseFM/Logic - *55(P_Alarm)
0
Alm_UnderTol
1=Delivery Out of Tolerance Low Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Alm
Base Tag:
UnderTol.Alm
Constant
No
External Access:
Read Only
Alm_UnderTol - P_DoseFM/EnableInFalse - *16(OTU)
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

0
Alm_ZeroFault
1=Warning: Total did not clear or still flowing
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Alm
Base Tag:
ZeroFault.Alm
Constant
No
External Access:
Read Only
Alm_ZeroFault - P_DoseFM/EnableInFalse - *16(OTU)
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

10.0
REAL
Cfg_AutoAdjPct
Percentage of delivery error to auto-adjust preact (%)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_AutoAdjPct - P_DoseFM/Logic - *5(CLR), *5(MOV), 22(CPT), 5(GRT), 5(LES)

P_DoseFM

0
Cfg_AutoAdjPreact
1=Enable automatic adjustment of preact after each delivery
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_AutoAdjPreact - P_DoseFM/Logic - 22(XIC)

BOOL

P_DoseFM

0.0
Cfg_BumpT
Bump (manual top-off) Time (Sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_BumpT - P_DoseFM/Logic - 7(MUL)

REAL

P_DoseFM

0
BOOL
P_DoseFM
Cfg_CalcQty
1=integrate Inp_Rate to get Quantity, 0=use Inp_Qty
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_CalcQty - P_DoseFM/EnableInFalse - 12(XIO), 8(XIC), 8(XIO)
Cfg_CalcQty - P_DoseFM/Logic - 12(XIC), 12(XIO), 17(XIC), 17(XIO), 21(XIC), 21(XIO), 26(XIO), 28(XIC), 29(XIC), 30(XIO), 35(XIC),
35(XIO)
0
Cfg_CalcRate
1=differentiate Inp_Qty to get Rate, 0=use Inp_Rate
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 21
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_CalcRate (Continued)
Cfg_CalcRate - P_DoseFM/EnableInFalse - 10(XIO), 13(XIC), 8(XIC), 8(XIO)
Cfg_CalcRate - P_DoseFM/Logic - 12(XIC), 12(XIO), 25(XIO), 31(XIC), 34(XIC), 34(XIO), 36(XIC), 36(XIO)
1
Cfg_ClearPulseT
Time to pulse Out_Clear to clear external totalizer (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ClearPulseT - P_DoseFM/Logic - 7(MUL)

DINT

P_DoseFM

1.0
REAL
Cfg_CountsPerEU
Number of Counts in Inp_QtyPV which equal 1.0 EU
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_CountsPerEU - P_DoseFM/EnableInFalse - 12(DIV), 12(GRT), 12(LEQ)
Cfg_CountsPerEU - P_DoseFM/Logic - 26(CPT), 26(GRT), 26(LEQ), 30(DIV), 30(GRT), 30(LEQ), 7(LEQ)

P_DoseFM

1
Cfg_EqpFaultAckReqd
1=Acknowledge required for Equipment Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Cfg_AckReqd
Base Tag:
EqpFault.Cfg_AckReqd
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
Cfg_EqpFaultResetReqd
1=Reset required to clear Equipment Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Cfg_ResetReqd
Base Tag:
EqpFault.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

3
Cfg_EqpFaultSeverity
Equipment Fault Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Cfg_Severity
Base Tag:
EqpFault.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_DoseFM

1.0
Cfg_EUQtyMult
Rate to Quantity EU Multiplier (e.g., Gal to Bbl.)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_EUQtyMult - P_DoseFM/Logic - 28(CPT), 7(LEQ)

REAL

P_DoseFM

10
Cfg_FaultT
Time for Equipment Feedback to follow Output before Fault (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

DINT

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 22
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_FaultT (Continued)
Cfg_FaultT - P_DoseFM/Logic - 37(GRT), 7(MUL)
0
Cfg_HasDribble
1=Slow to Dribble before complete, 0=Run full flow until complete
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HasDribble - P_DoseFM/Logic - 45(XIC), 45(XIO), 46(XIC)

BOOL

P_DoseFM

1
Cfg_HasEqpFaultAlm
1=Equipment Fault Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Cfg_Exists
Base Tag:
EqpFault.Cfg_Exists
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
BOOL
Cfg_HasEqpFdbk
1=Controlled Equipment provides Run (Dribble if used) and Stop Feedback
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HasEqpFdbk - P_DoseFM/EnableInFalse - 6(XIC), 6(XIO)
Cfg_HasEqpFdbk - P_DoseFM/Logic - 3(XIO), 37(XIC), 4(XIC), 8(XIC), 8(XIO)

P_DoseFM

1
Cfg_HasOverTolAlm
1=Over Tolerance Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Cfg_Exists
Base Tag:
OverTol.Cfg_Exists
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

1
Cfg_HasUnderTolAlm
1=Under Tolerance Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Cfg_Exists
Base Tag:
UnderTol.Cfg_Exists
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

1
Cfg_HasZeroFaultAlm
1=Zero Fault Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Cfg_Exists
Base Tag:
ZeroFault.Cfg_Exists
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0.0
Cfg_LoRateCutoff
Rate below which to report zero flow (Inp_RatePV untis)
Usage:
Input Parameter

REAL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 23
22/12/2015 08,57,45
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_LoRateCutoff (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LoRateCutoff - P_DoseFM/Logic - 28(LES), 7(LES)
1.50000000e+038
REAL
Cfg_MaxQty
Maximum allowed quantity to deliver (setpoint) (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_MaxQty - P_DoseFM/Logic - 10(GRT), 10(MOV), 7(LEQ), 9(GRT), 9(MOV)

P_DoseFM

2#0000_0000
SINT
P_DoseFM
Cfg_OperKeep
Oper keeps control in Prog Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
0
BOOL
Cfg_OperKeep.0
Oper keeps control in Prog Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_OperKeep.0 - P_DoseFM/Logic - *6(OTU), 15(XIC), 15(XIO), 16(XIC), 16(XIO), 17(XIC), 17(XIO), 18(XIC), 18(XIO), 19(XIC),
21(XIC), 21(XIO), 22(XIC), 22(XIO), 50(XIC), 6(XIC)
0
BOOL
Cfg_OperKeep.1
Oper keeps control in Prog Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_OperKeep.1 - P_DoseFM/Logic - *6(OTU), 11(XIC), 11(XIO), 51(XIC), 6(XIC)
0
BOOL
Cfg_OperKeep.2
Oper keeps control in Prog Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_OperKeep.2 - P_DoseFM/Logic - *6(OTU), 11(XIC), 11(XIO), 52(XIC), 6(XIC)
0
BOOL
Cfg_OperKeep.3
Oper keeps control in Prog Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_OperKeep.3 - P_DoseFM/Logic - *6(OTU), 11(XIC), 11(XIO), 53(XIC), 6(XIC)
1
Cfg_OverTolAckReqd
1=Acknowledge required for Out of Tolerance High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Cfg_AckReqd
Base Tag:
OverTol.Cfg_AckReqd
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

0
Cfg_OverTolResetReqd
1=Reset requied to clear Out of Tolerance High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Cfg_ResetReqd
Base Tag:
OverTol.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

3
Cfg_OverTolSeverity
Over Tolerance Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Cfg_Severity
Base Tag:
OverTol.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_DoseFM

BOOL

P_DoseFM

Cfg_PCmdClear

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 24
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_PCmdClear (Continued)
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_PCmdClear
Base Tag:
Mode.Cfg_PCmdClear
Constant
No
External Access:
Read/Write
Cfg_PCmdClear - P_DoseFM/EnableInFalse - 0(XIC), 0(XIO), 2(XIC)
Cfg_PCmdClear - P_DoseFM/Logic - 13(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 21(XIC), 22(XIC), 54(XIC)
Cfg_PCmdClear - P_DoseFM/Prescan - 2(XIC)
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)
0
BOOL
Cfg_ProgDefault
Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_ProgDefault
Base Tag:
Mode.Cfg_ProgDefault
Constant
No
External Access:
Read/Write
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

P_DoseFM

2#0000_0000
SINT
P_DoseFM
Cfg_ProgKeep
Prog keeps control in Oper Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
0
BOOL
Cfg_ProgKeep.0
Prog keeps control in Oper Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_ProgKeep.0 - P_DoseFM/Logic - *6(OTU), 15(XIC), 15(XIO), 16(XIC), 16(XIO), 17(XIC), 17(XIO), 18(XIC), 18(XIO), 19(XIO),
21(XIC), 21(XIO), 22(XIC), 22(XIO), 50(XIO), 6(XIC)
0
BOOL
Cfg_ProgKeep.1
Prog keeps control in Oper Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_ProgKeep.1 - P_DoseFM/Logic - *6(OTU), 11(XIC), 11(XIO), 51(XIO), 6(XIC)
0
BOOL
Cfg_ProgKeep.2
Prog keeps control in Oper Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_ProgKeep.2 - P_DoseFM/Logic - *6(OTU), 11(XIC), 11(XIO), 52(XIO), 6(XIC)
0
BOOL
Cfg_ProgKeep.3
Prog keeps control in Oper Mode: .0=Start/Stop, .1=SP, .2=Dribble/Preact, .3=Tolerances
Cfg_ProgKeep.3 - P_DoseFM/Logic - *6(OTU), 11(XIC), 11(XIO), 53(XIO), 6(XIC)
0.1
REAL
Cfg_RateFiltTC
Filter Time Constant (sec) for calculated Rate
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_RateFiltTC - P_DoseFM/EnableInFalse - 13(CPT), 13(GRT), 13(LEQ)
Cfg_RateFiltTC - P_DoseFM/Logic - 31(CPT), 31(GRT), 31(LEQ), 7(LES)

P_DoseFM

1.0
REAL
Cfg_RateTime
Time factor for rate (60 for /min, 3600 for /hr) (Sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_RateTime - P_DoseFM/Logic - 28(CPT), 28(GRT), 28(LEQ), 31(CPT), 7(LEQ)

P_DoseFM

0.0
Cfg_Rollover
Quantity Rollover (e.g., max count for pulse input)
Usage:
Input Parameter

P_DoseFM

REAL

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 25
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_Rollover (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Rollover - P_DoseFM/EnableInFalse - 12(LEQ)
Cfg_Rollover - P_DoseFM/Logic - 26(CPT), 26(GRT), 29(GRT), 30(LEQ), 7(LES)
0
Cfg_SetTrack
1=PSets track OSets in Oper, OSets track PSets in Prog, 0=no tracking
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SetTrack - P_DoseFM/Logic - 11(XIC), 51(XIO), 52(XIO), 53(XIO)

BOOL

P_DoseFM

0
BOOL
Cfg_ShedOnEqpFault
1=Stop delivery and Alarm on Equipment Fault; 0=Alarm only on Equipment Fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnEqpFault - P_DoseFM/Logic - 21(XIC), 39(XIC)

P_DoseFM

0.1
Cfg_SimDribbleRate
Rate at which to dribble when running in Simulation (EU/rate time)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SimDribbleRate - P_DoseFM/Logic - 24(MOV), 7(LEQ)

REAL

P_DoseFM

1.0
Cfg_SimRate
Rate at which to deliver when running in Simulation (EU/rate time)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SimRate - P_DoseFM/Logic - 24(MOV), 7(LEQ)

REAL

P_DoseFM

1
Cfg_UnderTolAckReqd
1=Acknowledge required for Out of Tolerance Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Cfg_AckReqd
Base Tag:
UnderTol.Cfg_AckReqd
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

0
Cfg_UnderTolResetReqd
1=Reset required to clear Out of Tolerance Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Cfg_ResetReqd
Base Tag:
UnderTol.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

3
Cfg_UnderTolSeverity
Under Tolerance Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Cfg_Severity

SINT

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 26
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_UnderTolSeverity (Continued)
Base Tag:
UnderTol.Cfg_Severity
Constant
No
External Access:
Read/Write
0
Cfg_UseEqpFdbk
1=Use run / dribble / stop feedback, 0=Assume equipment state
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseEqpFdbk - P_DoseFM/Logic - *3(OTU), 4(XIO)

BOOL

P_DoseFM

1
Cfg_ZeroFaultAckReqd
1=Acknowledge required for Zero Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Cfg_AckReqd
Base Tag:
ZeroFault.Cfg_AckReqd
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
Cfg_ZeroFaultResetReqd
1=Reset required to clear Zero Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Cfg_ResetReqd
Base Tag:
ZeroFault.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

3
Cfg_ZeroFaultSeverity
Zero Fault Alarm Severity 1=info, 2=warn, 3=excep, 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Cfg_Severity
Base Tag:
ZeroFault.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_DoseFM

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_DoseFM

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_DoseFM

0
Err_Alarm
1=Error in Config: Alarm Min On Time or Severity
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Alarm - P_DoseFM/Logic - *7(OTE)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 27
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Err_Cutoff
1=Error: Cfg_LoRateCutoff invalid
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Cutoff - P_DoseFM/Logic - *7(OTE)

BOOL

P_DoseFM

0
Err_EU
1=Error: Cfg_CountsPerEU, Cfg_EUQtyMult or Cfg_Rollowver invalid
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_EU - P_DoseFM/Logic - *7(OTE)

BOOL

P_DoseFM

0
Err_Keep
1=Error in Config: Invalid setup of Cfg_OperKeep and Cfg_ProgKeep
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Keep - P_DoseFM/Logic - *6(OTU), 7(XIC)

BOOL

P_DoseFM

0
Err_Limit
1=Error: Cfg_MaxQty invalid
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Limit - P_DoseFM/Logic - *7(OTE)

BOOL

P_DoseFM

0
Err_Rate
1=Error: Cfg_RateFiltTC or Cfg_RateTime invalid
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Rate - P_DoseFM/Logic - *7(OTE)

BOOL

P_DoseFM

0
Err_Sim
1=Error: Cfg_SimDribbleRate or Cfg_SimRate invalid
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Sim - P_DoseFM/Logic - *7(OTE)

BOOL

P_DoseFM

0
BOOL
Err_Timer
1=Error: Cfg_BumpT, Cfg_FaultT or Cfg_ClearPulseT (use 0.0 to 2147483.647)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_DoseFM/Logic - *7(OTE)

P_DoseFM

0
Inp_CtrldEqpFault
Controlled Equipment device or I/O status 0=OK, 1=fail
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_CtrldEqpFault - P_DoseFM/Logic - 21(XIC), 38(XIC)

BOOL

P_DoseFM

0
Inp_DribbleFdbk
1=Controlled Equipment is Delivering at Dribble
Usage:
Input Parameter

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 28
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_DribbleFdbk (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
Inp_DribbleFdbk - P_DoseFM/EnableInFalse - 6(XIC), 6(XIO)
Inp_DribbleFdbk - P_DoseFM/Logic - 8(XIC), 8(XIO)
0.0
REAL
P_DoseFM
Inp_QtyPV
Quantity from Flowmeter (EU or Pulse Count)
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_QtyPV - P_DoseFM/EnableInFalse - 11(MOV), 12(DIV), 12(MOV), 8(COP), 8(MOV)
Inp_QtyPV - P_DoseFM/Logic - 12(COP), 12(MOV), 26(CPT), 26(GEQ), 26(LES), 27(MOV), 30(DIV), 30(MOV)
0
Inp_QtyPVBad
1=Quantity PV Input Quality = Bad (fail)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_QtyPVBad - P_DoseFM/Logic - 17(XIC), 21(XIC), 34(XIC)

BOOL

P_DoseFM

0
Inp_QtyPVUncertain
1=Quantity PV Input Quality = Uncertain
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_QtyPVUncertain - P_DoseFM/Logic - 35(XIC), 36(XIC)

BOOL

P_DoseFM

0.0
Inp_RatePV
Flow Rate from Flowmeter (EU/time, see Cfg_RateTime)
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_RatePV - P_DoseFM/EnableInFalse - 10(MOV), 8(COP), 8(MOV)
Inp_RatePV - P_DoseFM/Logic - 12(COP), 12(MOV), 25(MOV)

REAL

P_DoseFM

0
Inp_RatePVBad
1=Rate PV Input Quality = Bad (fail)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_RatePVBad - P_DoseFM/Logic - 17(XIC), 21(XIC), 34(XIC)

BOOL

P_DoseFM

0
Inp_RatePVUncertain
1=Rate PV Input Quality = Uncertain
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_RatePVUncertain - P_DoseFM/Logic - 35(XIC), 36(XIC)

BOOL

P_DoseFM

0
Inp_Reset
1=Reset all fault conditions and latched Alarms
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Reset - P_DoseFM/Logic - 13(XIC)

BOOL

P_DoseFM

0
Inp_RunFdbk
1=Controlled Equipment is Delivering (Running)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 29
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_RunFdbk (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_RunFdbk - P_DoseFM/EnableInFalse - 6(XIC), 6(XIO)
Inp_RunFdbk - P_DoseFM/Logic - 8(XIC), 8(XIO)
0
BOOL
P_DoseFM
Inp_Sim
1=Simulate working flowmeter; 0=use actual flowmeter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Sim - P_DoseFM/EnableInFalse - 10(XIO), 12(XIO), 6(XIC), 6(XIO), 9(XIC)
Inp_Sim - P_DoseFM/Logic - 17(XIO), 21(XIO), 24(XIC), 25(XIO), 26(XIO), 28(XIC), 29(XIC), 30(XIO), 34(XIO), 35(XIO), 36(XIO),
37(XIO), 38(XIO), 8(XIC), 8(XIO)
0
Inp_StopFdbk
1=Controlled Equipment is confirmed Stopped
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_StopFdbk - P_DoseFM/EnableInFalse - 6(XIC), 6(XIO)
Inp_StopFdbk - P_DoseFM/Logic - 8(XIC), 8(XIO)

BOOL

P_DoseFM

0
OCmd_Bump
Operator Command to Bump Delivery for Under Tolerance
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Bump - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_Bump - P_DoseFM/Logic - *19(OTU), 19(XIC), 20(XIO)
OCmd_Bump - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_CheckTol
Operator Command to Check Tolerances
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_CheckTol - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_CheckTol - P_DoseFM/Logic - *22(OTU), 22(XIC)
OCmd_CheckTol - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_ClearTot
Operator Command to Clear Totalizer Qty
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ClearTot - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_ClearTot - P_DoseFM/Logic - *15(OTU), 15(XIC)
OCmd_ClearTot - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_Reset
Operator Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_Reset - P_DoseFM/Logic - *13(OTU), 13(XIC)
OCmd_Reset - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 30
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
OCmd_ResetAckAll
Operator Command to Reset all Alarms and latched Shed conditions
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ResetAckAll - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_ResetAckAll - P_DoseFM/Logic - *13(OTU), 13(XIC)
OCmd_ResetAckAll - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_StartFlow
Operator command to Start Deliver
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_StartFlow - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_StartFlow - P_DoseFM/Logic - *18(OTU), 18(XIC)
OCmd_StartFlow - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_StartTot
Operator Command to Start Totalizer
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_StartTot - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_StartTot - P_DoseFM/Logic - *16(OTU), 16(XIC)
OCmd_StartTot - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_StopFlow
Operator Command to Stop/Pause Delivery
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_StopFlow - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_StopFlow - P_DoseFM/Logic - *21(OTU), 21(XIC)
OCmd_StopFlow - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0
OCmd_StopTot
Operator Command to Stop Totalizer
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_StopTot - P_DoseFM/EnableInFalse - *3(OTU)
OCmd_StopTot - P_DoseFM/Logic - *17(OTU), 17(XIC)
OCmd_StopTot - P_DoseFM/Prescan - *3(OTU)

BOOL

P_DoseFM

0.0
REAL
OSet_DribbleQty
Operator Setting of quantity to dribble (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_DribbleQty - P_DoseFM/Logic - *10(CLR), *10(MOV), *11(MOV), 10(GRT), 10(LES), 11(MOV)

P_DoseFM

0.0
REAL
OSet_Preact
Operator Setting of amount before total to stop flow (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_Preact - P_DoseFM/Logic - *10(CLR), *10(MOV), *11(MOV), *22(MOV), 10(GRT), 10(LES), 11(MOV)

P_DoseFM

OSet_SP

0.0

REAL

P_DoseFM
RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 31
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OSet_SP (Continued)
Operator Setting of total quantity to deliver (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_SP - P_DoseFM/Logic - *10(CLR), *10(MOV), *11(MOV), 10(GRT), 10(LES), 10(MOV), 11(MOV)
0.0
OSet_TolHi
Operator Setting of High Tolerance Limit (OK amount > SP)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_TolHi - P_DoseFM/Logic - *11(MOV), 11(MOV)

REAL

P_DoseFM

0.0
OSet_TolLo
Operator Setting of Low Tolerance Limit (OK amount < SP)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OSet_TolLo - P_DoseFM/Logic - *11(MOV), 11(MOV)

REAL

P_DoseFM

0
Out_ClearTot
1=Reset external totalizer (e.g. onboard flowmeter)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Out_ClearTot - P_DoseFM/Logic - *42(OTE)

BOOL

P_DoseFM

0
BOOL
Out_DribbleFlow
1=Deliver at Dribble (slow) Flow
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_DribbleFlow - P_DoseFM/EnableInFalse - *15(OTU)
Out_DribbleFlow - P_DoseFM/Logic - *46(OTE), 37(XIC), 47(XIO), 48(XIC), 8(XIC), 8(XIO)
Out_DribbleFlow - P_DoseFM/Prescan - *6(OTU)

P_DoseFM

0
BOOL
Out_RunFlow
1=Deliver at Full (fast) Flow
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_RunFlow - P_DoseFM/EnableInFalse - *15(OTU)
Out_RunFlow - P_DoseFM/Logic - *45(OTE), 37(XIC), 47(XIO), 48(XIC), 8(XIC), 8(XIO)
Out_RunFlow - P_DoseFM/Prescan - *6(OTU)

P_DoseFM

0
Out_RunTot
1=Run external totalizer (e.g. onboard flowmeter)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Out_RunTot - P_DoseFM/Logic - *44(OTE), 48(XIC)

BOOL

P_DoseFM

0
Out_StopFlow
1=Stop Delivery Equipment
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_StopFlow - P_DoseFM/EnableInFalse - *15(OTL)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 32
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Out_StopFlow (Continued)
Out_StopFlow - P_DoseFM/Logic - *47(OTE), 37(XIC), 48(XIC)
Out_StopFlow - P_DoseFM/Prescan - *6(OTU)
0
PCmd_Acq
Program Command to Acquire ownership (Oper to Prog)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Acq
Base Tag:
Mode.PCmd_Acq
Constant
No
External Access:
Read/Write
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

BOOL

P_DoseFM

0
PCmd_CheckTol
Program Command to Check Tolerances
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_CheckTol - P_DoseFM/EnableInFalse - *2(OTU)
PCmd_CheckTol - P_DoseFM/Logic - *22(OTU), 22(XIC)
PCmd_CheckTol - P_DoseFM/Prescan - *2(OTU)

BOOL

P_DoseFM

0
PCmd_ClearTot
Program Command to Clear Totalizer Qty
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_ClearTot - P_DoseFM/EnableInFalse - *2(OTU)
PCmd_ClearTot - P_DoseFM/Logic - *15(OTU), 15(XIC)
PCmd_ClearTot - P_DoseFM/Prescan - *2(OTU)

BOOL

P_DoseFM

0
PCmd_EqpFaultAck
Program Command to Acknowledge Equipment Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.PCmd_Ack
Base Tag:
EqpFault.PCmd_Ack
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)
EqpFault.PCmd_Ack - P_DoseFM/Logic - *13(OTL)

BOOL

P_DoseFM

0
PCmd_EqpFaultInhibit
Program Command to Inhibit Equipment Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.PCmd_Inhibit
Base Tag:
EqpFault.PCmd_Inhibit
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
PCmd_EqpFaultUninhibit
Program Command to Uninhibit Equipment Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.PCmd_Uninhibit
Base Tag:
EqpFault.PCmd_Uninhibit
Constant
No

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 33
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_EqpFaultUninhibit (Continued)
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)
0
PCmd_Lock
Program Command to Lock Mode in Prog
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Lock
Base Tag:
Mode.PCmd_Lock
Constant
No
External Access:
Read/Write
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

BOOL

P_DoseFM

0
PCmd_OverTolAck
Program Command to Acknowledge Out of Tolerance High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.PCmd_Ack
Base Tag:
OverTol.PCmd_Ack
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)
OverTol.PCmd_Ack - P_DoseFM/Logic - *13(OTL)

BOOL

P_DoseFM

0
PCmd_OverTolInhibit
Program Command to Inhibit Out of Tolerance High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.PCmd_Inhibit
Base Tag:
OverTol.PCmd_Inhibit
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

0
PCmd_OverTolUninhibit
Program Command to Uninhibit Out of Tolerance High Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.PCmd_Uninhibit
Base Tag:
OverTol.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

0
PCmd_Rel
Program Command to Release ownership (Prog to Oper)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Rel
Base Tag:
Mode.PCmd_Rel
Constant
No
External Access:
Read/Write
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

BOOL

P_DoseFM

0
PCmd_Reset
Program Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 34
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_Reset (Continued)
External Access:
Read/Write
PCmd_Reset - P_DoseFM/EnableInFalse - *3(OTU)
PCmd_Reset - P_DoseFM/Logic - *13(OTU), 13(XIC)
PCmd_Reset - P_DoseFM/Prescan - *3(OTU)
0
PCmd_StartFlow
Program Command to Start Delivery
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_StartFlow - P_DoseFM/EnableInFalse - *2(OTU)
PCmd_StartFlow - P_DoseFM/Logic - *18(OTU), 18(XIC)
PCmd_StartFlow - P_DoseFM/Prescan - *2(OTU)

BOOL

P_DoseFM

0
PCmd_StartTot
Program Command to Start Totalizer
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_StartTot - P_DoseFM/EnableInFalse - *2(OTU)
PCmd_StartTot - P_DoseFM/Logic - *16(OTU), 16(XIC)
PCmd_StartTot - P_DoseFM/Prescan - *2(OTU)

BOOL

P_DoseFM

0
PCmd_StopFlow
Program Command to Stop/Pause Delivery
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_StopFlow - P_DoseFM/EnableInFalse - *2(OTU)
PCmd_StopFlow - P_DoseFM/Logic - *21(OTU), 21(XIC)
PCmd_StopFlow - P_DoseFM/Prescan - *2(OTU)

BOOL

P_DoseFM

0
PCmd_StopTot
Program Command to Stop Totalizer
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_StopTot - P_DoseFM/EnableInFalse - *2(OTU)
PCmd_StopTot - P_DoseFM/Logic - *17(OTU), 17(XIC)
PCmd_StopTot - P_DoseFM/Prescan - *2(OTU)

BOOL

P_DoseFM

0
PCmd_UnderTolAck
Program Command to Acknowledge Out of Tolerance Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.PCmd_Ack
Base Tag:
UnderTol.PCmd_Ack
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)
UnderTol.PCmd_Ack - P_DoseFM/Logic - *13(OTL)

BOOL

P_DoseFM

0
PCmd_UnderTolInhibit
Program Command to Inhibit Out of Tolerance Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.PCmd_Inhibit
Base Tag:
UnderTol.PCmd_Inhibit
Constant
No
External Access:
Read/Write

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 35
22/12/2015 08,57,46
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_UnderTolInhibit (Continued)
UnderTol - P_DoseFM/Logic - *56(P_Alarm)
0
PCmd_UnderTolUninhibit
Program Command to Uninhibit Out of Tolerance Low Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.PCmd_Uninhibit
Base Tag:
UnderTol.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

0
PCmd_Unlock
Program Command to Unlock Mode
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Unlock
Base Tag:
Mode.PCmd_Unlock
Constant
No
External Access:
Read/Write
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

BOOL

P_DoseFM

0
PCmd_ZeroFaultAck
Program Command to Acknowledge Zero Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.PCmd_Ack
Base Tag:
ZeroFault.PCmd_Ack
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)
ZeroFault.PCmd_Ack - P_DoseFM/Logic - *13(OTL)

BOOL

P_DoseFM

0
PCmd_ZeroFaultInhibit
Program Command to Inhibit Zero Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.PCmd_Inhibit
Base Tag:
ZeroFault.PCmd_Inhibit
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
PCmd_ZeroFaultUninhibit
Program Command to Uninhibit Zero Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.PCmd_Uninhibit
Base Tag:
ZeroFault.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0.0
REAL
PSet_DribbleQty
Program Setting of quantity to dribble (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_DribbleQty - P_DoseFM/Logic - *11(MOV), *9(CLR), *9(MOV), 11(MOV), 9(GRT), 9(LES)

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>
0
PSet_Owner
Program Owner Request ID (non-zero) or Release (zero)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_Owner - P_DoseFM/EnableInFalse - 1(EQU), 1(MOV), 1(NEQ)
PSet_Owner - P_DoseFM/Logic - 2(EQU), 2(MOV), 2(NEQ)
PSet_Owner - P_DoseFM/Prescan - *0(CLR)

Page 36
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT

P_DoseFM

0.0
REAL
PSet_Preact
Program Setting of amount before total to stop flow (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_Preact - P_DoseFM/Logic - *11(MOV), *22(MOV), *9(CLR), *9(MOV), 11(MOV), 9(GRT), 9(LES)

P_DoseFM

0.0
REAL
PSet_SP
Program Setting of total quantity to deliver (EU)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_SP - P_DoseFM/Logic - *11(MOV), *9(CLR), *9(MOV), 11(MOV), 9(GRT), 9(LES), 9(MOV)

P_DoseFM

0.0
PSet_TolHi
Program Setting of High Tolerance Limit (OK amount > SP)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_TolHi - P_DoseFM/Logic - *11(MOV), 11(MOV)

REAL

P_DoseFM

0.0
PSet_TolLo
Program Setting of Low Tolerance Limit (OK amount < SP)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_TolLo - P_DoseFM/Logic - *11(MOV), 11(MOV)

REAL

P_DoseFM

0
P_DoseFM
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_DoseFM

0
Rdy_Bump
1=Ready for OCmd_Bump (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Bump - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_Bump - P_DoseFM/Logic - *50(OTE)

BOOL

P_DoseFM

0
Rdy_CheckTol
1-Ready for OCmd_CheckTol (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_CheckTol - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_CheckTol - P_DoseFM/Logic - *50(OTE)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 37
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Rdy_ClearTot
1=Ready for OCmd_ClearTot (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ClearTot - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_ClearTot - P_DoseFM/Logic - *50(OTE)

BOOL

P_DoseFM

0
Rdy_DribPre
1=Ready to receive OSet_DribbleQty or OSet_Preact
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_DribPre - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_DribPre - P_DoseFM/Logic - *52(OTE)

BOOL

P_DoseFM

0
Rdy_Reset
1=At least one Alarm or Latched Shed requires Reset
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_Reset - P_DoseFM/Logic - *60(OTE)

BOOL

P_DoseFM

0
Rdy_ResetAckAll
1=At least one Alarm or latched Shed condition requires Reset or Ack
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ResetAckAll - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_ResetAckAll - P_DoseFM/Logic - *60(OTE)

BOOL

P_DoseFM

0
Rdy_SP
1=Ready to receive OSet_SP
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_SP - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_SP - P_DoseFM/Logic - *51(OTE)

BOOL

P_DoseFM

0
Rdy_StartFlow
1=Ready for OCmd_StartFlow (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_StartFlow - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_StartFlow - P_DoseFM/Logic - *50(OTE)

BOOL

P_DoseFM

0
Rdy_StartTot
1=Ready for OCmd_StartTot (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_StartTot - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_StartTot - P_DoseFM/Logic - *50(OTE)

BOOL

P_DoseFM

0
Rdy_StopFlow
1=Ready for OCmd_StopFlow (enables button)
Usage:
Output Parameter
Required:
No

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 38
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Rdy_StopFlow (Continued)
Visible:
No
External Access:
Read Only
Rdy_StopFlow - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_StopFlow - P_DoseFM/Logic - *50(OTE)
0
Rdy_StopTot
1=Ready for OCmd_StopTot (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_StopTot - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_StopTot - P_DoseFM/Logic - *50(OTE)

BOOL

P_DoseFM

0
Rdy_Tol
1=Ready to receive OSet_TolHi or Oset_TolLo
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Tol - P_DoseFM/EnableInFalse - *4(OTU)
Rdy_Tol - P_DoseFM/Logic - *53(OTE)

BOOL

P_DoseFM

0
Sts_AlmInh
1=One or more Alarms Inhibited, Disabled or Suppressed
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_DoseFM/EnableInFalse - *16(OTL)
Sts_AlmInh - P_DoseFM/Logic - *59(OTE)

BOOL

P_DoseFM

0
Sts_Available
1=Dosing available for control by automation (Prog)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Available - P_DoseFM/EnableInFalse - *5(OTU)
Sts_Available - P_DoseFM/Logic - *41(OTE)

BOOL

P_DoseFM

0
Sts_Bumping
1=Bump flow is active
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Bumping - P_DoseFM/Logic - *48(OTE), 49(XIC)

BOOL

P_DoseFM

0
Sts_Cleared
1=Totalizer Clear completed
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Cleared - P_DoseFM/Logic - *48(OTE), 22(XIO), 50(XIO)

BOOL

P_DoseFM

0
Sts_Complete
1=Total Delivered > (SP - Preact)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Complete - P_DoseFM/Logic - *48(OTE), 50(XIO)

BOOL

P_DoseFM

BOOL

P_DoseFM

Sts_DribbleStarting

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 39
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_DribbleStarting (Continued)
1=Dribble Starting (Out_Dribble is ON, Fdbk not showing Dribble)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_DribbleStarting - P_DoseFM/EnableInFalse - *5(OTU)
Sts_DribbleStarting - P_DoseFM/Logic - *48(OTE), 49(XIC)
1
BOOL
Sts_EqpFault
1=Equipment Fault Detected
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Inp
Base Tag:
EqpFault.Inp
Constant
No
External Access:
Read Only
Sts_EqpFault - P_DoseFM/EnableInFalse - *16(OTU)
Sts_EqpFault - P_DoseFM/Logic - *38(OTE), 39(XIC), 49(XIC), 60(XIO)
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

P_DoseFM

0
Sts_EqpFaultDisabled
1=Equipment Fault Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Disabled
Base Tag:
EqpFault.Disabled
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
Sts_EqpFaultInhibited
1=Equipment Fault Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Inhibited
Base Tag:
EqpFault.Inhibited
Constant
No
External Access:
Read Only
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
Sts_EqpFaultSuppressed
1=Equipment Fault Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
EqpFault.Suppressed
Base Tag:
EqpFault.Suppressed
Constant
No
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)

BOOL

P_DoseFM

0
BOOL
Sts_Err
1=Error: Bad Configuration, see detail Err bits for reason
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_DoseFM/Logic - *7(OTE), 21(XIC), 40(XIC), 49(XIC), 50(XIO)

P_DoseFM

0
Sts_FlowDribble
1=Flow is Dribbling (Out_Dribble is ON, Fdbk shows Dribble)
Usage:
Output Parameter
Required:
No

P_DoseFM

BOOL

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 40
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_FlowDribble (Continued)
Visible:
Yes
External Access:
Read Only
Sts_FlowDribble - P_DoseFM/EnableInFalse - *6(OTE)
Sts_FlowDribble - P_DoseFM/Logic - *48(OTE), 24(XIC), 49(XIC)
0
Sts_FlowRunning
1=Flow is Running (Out_Run is ON, Fdbk shows Running)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_FlowRunning - P_DoseFM/EnableInFalse - *6(OTE)
Sts_FlowRunning - P_DoseFM/Logic - *48(OTE), 24(XIC), 49(XIC)

BOOL

P_DoseFM

0
Sts_FlowStarting
1=Flow is Starting (Out_Run is ON, Fdbk not showing Run)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_FlowStarting - P_DoseFM/EnableInFalse - *5(OTU)
Sts_FlowStarting - P_DoseFM/Logic - *48(OTE), 49(XIC)

BOOL

P_DoseFM

0
Sts_FlowStopped
1=Flow is Stopped (Out_Stop is ON, Fdbk shows Stopped)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_FlowStopped - P_DoseFM/EnableInFalse - *6(OTE)
Sts_FlowStopped - P_DoseFM/Logic - *48(OTE), 49(XIC)

BOOL

P_DoseFM

0
Sts_FlowStopping
1=Flow is Stopping (Out_Stop is ON, Fdbk not showing Stopped)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_FlowStopping - P_DoseFM/EnableInFalse - *5(OTU)
Sts_FlowStopping - P_DoseFM/Logic - *48(OTE), 49(XIC)

BOOL

P_DoseFM

0
Sts_InTol
1=Total Delivered is Within Tolerances
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_InTol - P_DoseFM/Logic - *48(OTE)

BOOL

P_DoseFM

0
Sts_LoRateCutoff
1=Rate PV below low rate cutoff, flow assumed to be zero
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_LoRateCutoff - P_DoseFM/Logic - *28(OTE), 28(XIO)

BOOL

P_DoseFM

0
Sts_Maint
1=Mode is Maintenance (supersedes Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Maint
Base Tag:
Mode.Sts_Maint
Constant
No
External Access:
Read Only

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 41
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Maint (Continued)
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)
Mode.Sts_Maint - P_DoseFM/Logic - 11(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 19(XIC), 21(XIC), 22(XIC), 50(XIC), 51(XIC), 52(XIC),
53(XIC)
0
Sts_MaintByp
1=A Maintenance Bypass is Active, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_MaintByp - P_DoseFM/EnableInFalse - *5(OTU)
Sts_MaintByp - P_DoseFM/Logic - *4(OTE)

BOOL

P_DoseFM

0
Sts_NoMode
1=NoMode (Disabled because EnableIn is False)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_NoMode
Base Tag:
Mode.Sts_NoMode
Constant
No
External Access:
Read Only
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

BOOL

P_DoseFM

0
BOOL
Sts_NotRdy
1=Device is Not Ready to be operated
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_NotRdy - P_DoseFM/EnableInFalse - *5(OTL)
Sts_NotRdy - P_DoseFM/Logic - *40(OTE), 41(XIO), 45(XIO), 46(XIO), 50(XIO)

P_DoseFM

1
BOOL
P_DoseFM
Sts_Oper
1=Mode is Operator (manual)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Oper
Base Tag:
Mode.Sts_Oper
Constant
No
External Access:
Read Only
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)
Mode.Sts_Oper - P_DoseFM/Logic - 11(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 19(XIC), 21(XIC), 22(XIC), 50(XIC), 51(XIC), 52(XIC),
53(XIC)
1
Sts_OverTol
1=Delivery Out of Tolerance High
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Inp
Base Tag:
OverTol.Inp
Constant
No
External Access:
Read Only
Sts_OverTol - P_DoseFM/EnableInFalse - *16(OTU)
Sts_OverTol - P_DoseFM/Logic - *48(OTE)
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

0
Sts_OverTolDisabled
1=Out of Tolerance High Alarm has been disabled (will not be sent)
Usage:
Output Parameter
Required:
No

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 42
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_OverTolDisabled (Continued)
Visible:
No
AliasFor:
OverTol.Disabled
Base Tag:
OverTol.Disabled
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)
0
Sts_OverTolInhibited
1=Out of Tolerance High Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Inhibited
Base Tag:
OverTol.Inhibited
Constant
No
External Access:
Read Only
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

0
Sts_OverTolSuppressed
1=Out of Tolerance High Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
OverTol.Suppressed
Base Tag:
OverTol.Suppressed
Constant
No
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)

BOOL

P_DoseFM

0
BOOL
P_DoseFM
Sts_Prog
1=Mode is Program (auto)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Prog
Base Tag:
Mode.Sts_Prog
Constant
No
External Access:
Read Only
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)
Mode.Sts_Prog - P_DoseFM/Logic - 11(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 19(XIC), 21(XIC), 22(XIC), 41(XIC), 50(XIC), 51(XIC),
52(XIC), 53(XIC)
0
Sts_ProgOperLock
1=Program or Operator has requested Mode Lock
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_ProgOperLock
Base Tag:
Mode.Sts_ProgOperLock
Constant
No
External Access:
Read Only
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)

BOOL

P_DoseFM

0
Sts_QtyBad
1=Quantity Value is Bad (PV Fail)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_QtyBad - P_DoseFM/Logic - *21(OTE), 38(XIC), 40(XIC), 50(XIO)

BOOL

P_DoseFM

BOOL

P_DoseFM

Sts_QtyUncertain
1=Quantity Value is Uncertain
Usage:

Output Parameter
RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 43
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_QtyUncertain (Continued)
Required:
No
Visible:
No
External Access:
Read Only
Sts_QtyUncertain - P_DoseFM/Logic - *35(OTE)
0
Sts_RateBad
1=Rate Value is Bad (PV Fail)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_RateBad - P_DoseFM/Logic - *34(OTE), 50(XIO)

BOOL

P_DoseFM

0
Sts_RateUncertain
1=Rate Value is Uncertain
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_RateUncertain - P_DoseFM/Logic - *36(OTE)

BOOL

P_DoseFM

0
Sts_TotRunning
1=Totalizer Running, 0=Totalizer Stopped
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_TotRunning - P_DoseFM/EnableInFalse - *5(OTU)
Sts_TotRunning - P_DoseFM/Logic - *48(OTE), 49(XIC)

BOOL

P_DoseFM

1
Sts_UnderTol
1=Delivery Out of Tolerance Low
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Inp
Base Tag:
UnderTol.Inp
Constant
No
External Access:
Read Only
Sts_UnderTol - P_DoseFM/EnableInFalse - *16(OTU)
Sts_UnderTol - P_DoseFM/Logic - *48(OTE)
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

0
Sts_UnderTolDisabled
1=Out of Tolerance Low Alarm has been disabled (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Disabled
Base Tag:
UnderTol.Disabled
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

0
Sts_UnderTolInhibited
1=Out of Tolerance Low Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Inhibited
Base Tag:
UnderTol.Inhibited
Constant
No
External Access:
Read Only
UnderTol - P_DoseFM/Logic - *56(P_Alarm)

BOOL

P_DoseFM

BOOL

P_DoseFM

Sts_UnderTolSuppressed

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 44
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_UnderTolSuppressed (Continued)
1=Out of Tolerance Low Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
UnderTol.Suppressed
Base Tag:
UnderTol.Suppressed
Constant
No
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)
1
Sts_ZeroFault
1=Total did not clear or unexpected flow
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Inp
Base Tag:
ZeroFault.Inp
Constant
No
External Access:
Read Only
Sts_ZeroFault - P_DoseFM/EnableInFalse - *16(OTU)
Sts_ZeroFault - P_DoseFM/Logic - *48(OTE)
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
Sts_ZeroFaultDisabled
1=Zero Fault Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Disabled
Base Tag:
ZeroFault.Disabled
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
Sts_ZeroFaultInhibited
1=Zero Fault Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Inhibited
Base Tag:
ZeroFault.Inhibited
Constant
No
External Access:
Read Only
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
Sts_ZeroFaultSuppressed
1=Zero Fault Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
ZeroFault.Suppressed
Base Tag:
ZeroFault.Suppressed
Constant
No
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)

BOOL

P_DoseFM

0
SINT
Val_Cmd
Dosing Command 0=None, 1=ClrTot, 2=StartTot, 3=StartFlow, 4=StartDrib, 5=Bump, 6=StopFlow, 7=StopTot
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Cmd - P_DoseFM/EnableInFalse - *5(CLR)
Val_Cmd - P_DoseFM/Logic - *49(MOV)
Val_Cmd - P_DoseFM/Prescan - *7(CLR)

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 45
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0.0
REAL
Val_DribbleQty
Amount to be delivered at slow rate (EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_DribbleQty - P_DoseFM/Logic - *11(MOV), 11(MOV), 45(CMP), 46(CMP)

P_DoseFM

0
Val_Fault
Device Fault Status 0=None, 17=EquipmentFault, 34=CfgErr
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fault - P_DoseFM/EnableInFalse - *5(CLR)
Val_Fault - P_DoseFM/Logic - *49(MOV)

P_DoseFM

SINT

0
SINT
Val_Fdbk
Equipment Feedback 0=None/Transition, 1=Flow Stopped, 2=Flow Running, 3=Flow Dribbling
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fdbk - P_DoseFM/EnableInFalse - *6(MOV)
Val_Fdbk - P_DoseFM/Logic - *8(MOV), 37(NEQ), 48(EQU), 48(NEQ)
Val_Fdbk - P_DoseFM/Prescan - *7(CLR)

P_DoseFM

0
DINT
P_DoseFM
Val_Mode
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Val
Base Tag:
Mode.Val
Constant
No
External Access:
Read Only
0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Notify - P_DoseFM/EnableInFalse - *16(CLR)
Val_Notify - P_DoseFM/Logic - *60(MOV)

SINT

P_DoseFM

0
Val_Owner
Current Object Owner ID (0=not owned)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Owner - P_DoseFM/EnableInFalse - *1(MOV), 1(EQU)
Val_Owner - P_DoseFM/Logic - *2(MOV), 2(EQU)
Val_Owner - P_DoseFM/Prescan - *0(CLR)

DINT

P_DoseFM

0.0
Val_PctComplete
Percent Complete (for Progress Bar on HMI) 0.0 to 100.0%
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_PctComplete - P_DoseFM/EnableInFalse - *14(CLR)
Val_PctComplete - P_DoseFM/Logic - *33(MOV)

REAL

P_DoseFM

0.0
Val_Preact
Amount before SP at which flow will be stopped (EU)

REAL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 46
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_Preact (Continued)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_Preact - P_DoseFM/Logic - *11(MOV), *22(CPT), 11(MOV), 22(CPT), 22(MOV), 45(CMP), 46(CMP), 48(CMP)
0.0
REAL
P_DoseFM
Val_Qty
Quantity actually delivered (totalizer output) (EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_Qty - P_DoseFM/EnableInFalse - *12(DIV), *12(MOV), *8(MOV)
Val_Qty - P_DoseFM/Logic - *12(MOV), *29(ADD), *30(DIV), *30(MOV), 22(CMP), 22(CPT), 32(SUB), 33(CPT), 43(EQU), 43(NEQ),
45(CMP), 46(CMP), 48(CMP), 48(EQU), 50(LES)
0.0
Val_Rate
Current Delivery Rate (EU/time) (see Cfg_RateTime)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_Rate - P_DoseFM/EnableInFalse - *13(MOV), *8(MOV)
Val_Rate - P_DoseFM/Logic - *12(MOV), *31(MOV)

REAL

P_DoseFM

0.0
Val_Remain
Amount yet to deliver to reach Setpoint (EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_Remain - P_DoseFM/EnableInFalse - *14(CLR)
Val_Remain - P_DoseFM/Logic - *32(SUB)

REAL

P_DoseFM

0.0
REAL
P_DoseFM
Val_SP
Amount to be delivered (Setpoint) (EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_SP - P_DoseFM/Logic - *11(MOV), 11(MOV), 22(CMP), 22(CPT), 32(SUB), 33(CPT), 33(GRT), 33(LEQ), 45(CMP), 46(CMP),
48(CMP), 50(LES)
0
SINT
P_DoseFM
Val_Sts
Dosing Confirmed Sts 0=? 1=Stop, 2=TotRun, 3=FlowRun, 4=Dribble, 5=Bump 6=StartFlow, 7=StartDrib, 8=Stopping, 33=Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Sts - P_DoseFM/EnableInFalse - *5(MOV)
Val_Sts - P_DoseFM/Logic - *49(MOV)
Val_Sts - P_DoseFM/Prescan - *7(CLR)
0.0
Val_TolHi
Allowed Amount > SP (EU)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_TolHi - P_DoseFM/Logic - *11(MOV), 11(MOV), 22(CMP)
Val_TolLo
Allowed Amount < SP (EU)
Usage:
Required:
Visible:

0.0

REAL

P_DoseFM

REAL

P_DoseFM

Output Parameter
No
Yes
RSLogix 5000

P_DoseFM Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Type Size: 596 byte (s)
Data Context: P_DoseFM <definition>

Page 47
22/12/2015 08,57,47
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_TolLo (Continued)
External Access:
Read Only
Val_TolLo - P_DoseFM/Logic - *11(MOV), 11(MOV), 22(CMP)

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Name
Default
'Dosing with Flowmeter'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_DoseFM/Logic - *0(LOWER)
21
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

Page 48
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_40

DINT
SINT

'Flowmeter Dosing'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_DoseFM/Logic - 0(LOWER)
16
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

STRING_20

'kg'
Cfg_QtyEU
Engineering Units for Quantity for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_QtyEU - P_DoseFM/Logic - 0(LOWER)
2
Cfg_QtyEU.LEN
Engineering Units for Quantity for display on HMI
Cfg_QtyEU.DATA
Engineering Units for Quantity for display on HMI

STRING_8

'kg/sec'
Cfg_RateEU
Engineering Units for Rate (flow) for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_RateEU - P_DoseFM/Logic - *0(LOWER)
6
Cfg_RateEU.LEN
Engineering Units for Rate (flow) for display on HMI
Cfg_RateEU.DATA
Engineering Units for Rate (flow) for display on HMI

STRING_8

'P_DoseFM'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_DoseFM/Logic - 0(LOWER)
8
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

Scope
P_DoseFM

P_DoseFM

DINT
SINT
P_DoseFM

DINT
SINT
P_DoseFM

DINT
SINT
STRING_20

P_DoseFM

DINT
SINT

P_Alarm
EqpFault
Equipment (Sensor, Controlled Equip.) Fault Alarm
Usage:
Local Tag
External Access:
Read/Write
EqpFault - P_DoseFM/Logic - *58(P_Alarm)
1
BOOL
EqpFault.EnableIn
Equipment (Sensor, Controlled Equip.) Fault Alarm Enable Input - System Defined Parameter
0
BOOL
EqpFault.EnableOut
Equipment (Sensor, Controlled Equip.) Fault Alarm Enable Output - System Defined Parameter
1
BOOL
EqpFault.Inp
Equipment (Sensor, Controlled Equip.) Fault Alarm Alarm Condition Input 1=Alarm
Sts_EqpFault - P_DoseFM/EnableInFalse - *16(OTU)
Sts_EqpFault - P_DoseFM/Logic - *38(OTE), 39(XIC), 49(XIC), 60(XIO)
0
BOOL
EqpFault.Inp_Reset
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Reset Alarm requiring reset
1
BOOL
EqpFault.Cfg_Exists

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 49
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

EqpFault (Continued)
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
EqpFault.Cfg_ResetReqd
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Reset required to clear Alarm
1
BOOL
EqpFault.Cfg_AckReqd
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Acknowledge required for Alarm
0
BOOL
EqpFault.Cfg_PCmdClear
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Clear Program Commands on receipt 0=Leave Set
EqpFault.Cfg_PCmdClear - P_DoseFM/Logic - *54(OTE)
3
SINT
EqpFault.Cfg_Severity
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
EqpFault.Cfg_AlmMinOnT
Equipment (Sensor, Controlled Equip.) Fault Alarm Minimum time Alm output stays on (sec)
0
BOOL
EqpFault.PCmd_Reset
Equipment (Sensor, Controlled Equip.) Fault Alarm Program Command to Reset latched alarm
EqpFault.PCmd_Reset - P_DoseFM/Logic - *13(OTL)
0
BOOL
EqpFault.PCmd_Ack
Equipment (Sensor, Controlled Equip.) Fault Alarm Program Command to Acknowledge alarm
EqpFault.PCmd_Ack - P_DoseFM/Logic - *13(OTL)
0
BOOL
EqpFault.PCmd_Inhibit
Equipment (Sensor, Controlled Equip.) Fault Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
EqpFault.PCmd_Uninhibit
Equipment (Sensor, Controlled Equip.) Fault Alarm Program Command to Uninhibit alarm
0
BOOL
EqpFault.OCmd_Reset
Equipment (Sensor, Controlled Equip.) Fault Alarm Operator Command to Reset latched alarm
0
BOOL
EqpFault.OCmd_Ack
Equipment (Sensor, Controlled Equip.) Fault Alarm Operator Command to Acknowledge alarm
0
BOOL
EqpFault.OCmd_Suppress
Equipment (Sensor, Controlled Equip.) Fault Alarm Operator Command to Suppress alarm
0
BOOL
EqpFault.OCmd_Unsuppress
Equipment (Sensor, Controlled Equip.) Fault Alarm Operator Command to Unsuppress alarm
0
BOOL
EqpFault.MCmd_Disable
Equipment (Sensor, Controlled Equip.) Fault Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
EqpFault.MCmd_Enable
Equipment (Sensor, Controlled Equip.) Fault Alarm Maintenance Command to Enable alarm
0
SINT
EqpFault.Val_Notify
Equipment (Sensor, Controlled Equip.) Fault Alarm Current Alarm Level and Acknowledgement (enumeration)
EqpFault.Val_Notify - P_DoseFM/Logic - 60(GRT), 60(MOV)
0
BOOL
EqpFault.Alm
Equipment (Sensor, Controlled Equip.) Fault Alarm Alarm output 1=In Alarm
Alm_EqpFault - P_DoseFM/EnableInFalse - *16(OTU)
1
BOOL
EqpFault.Ack
Equipment (Sensor, Controlled Equip.) Fault Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
EqpFault.Inhibited
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
EqpFault.Suppressed
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
EqpFault.Disabled
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
EqpFault.Sts_AlmInh
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
EqpFault.Sts_AlmInh - P_DoseFM/Logic - 59(XIC)
0
BOOL
EqpFault.Sts_Err
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Error in Config: see detail Err_ bits for reason
EqpFault.Sts_Err - P_DoseFM/Logic - 7(XIC)
0
BOOL
EqpFault.Err_Timer
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
EqpFault.Err_Severity
Equipment (Sensor, Controlled Equip.) Fault Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
EqpFault.Rdy_Reset
Equipment (Sensor, Controlled Equip.) Fault Alarm Ready to receive OCmd_Reset (enable button)
EqpFault.Rdy_Reset - P_DoseFM/Logic - 60(XIC)
0
BOOL
EqpFault.Rdy_Ack
Equipment (Sensor, Controlled Equip.) Fault Alarm Ready to receive OCmd_Ack (enable button)
EqpFault.Rdy_Ack - P_DoseFM/Logic - 60(XIC)
0
BOOL
EqpFault.Rdy_Suppress
Equipment (Sensor, Controlled Equip.) Fault Alarm Ready to receive OCmd_Suppress (enable button)
RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 50
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

EqpFault (Continued)
0
BOOL
EqpFault.Rdy_Unsuppress
Equipment (Sensor, Controlled Equip.) Fault Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
EqpFault.Rdy_Disable
Equipment (Sensor, Controlled Equip.) Fault Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
EqpFault.Rdy_Enable
Equipment (Sensor, Controlled Equip.) Fault Alarm Ready to receive MCmd_Enable (enable button)
Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

SINT

P_DoseFM

STRING_16

P_DoseFM

Local Tag
Read/Write

'P_DoseFM'
Inf_Type
Must contain AOI name, used for HMI and Information S/W
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_DoseFM/Logic - *0(LOWER)
8
Inf_Type.LEN
Must contain AOI name, used for HMI and Information S/W
Inf_Type.DATA
Must contain AOI name, used for HMI and Information S/W

DINT
SINT

P_Mode
P_DoseFM
Mode
Analog Input Mode Selection
Usage:
Local Tag
External Access:
Read/Write
Mode - P_DoseFM/EnableInFalse - *0(P_Mode)
Mode - P_DoseFM/Logic - *1(P_Mode)
1
BOOL
Mode.EnableIn
Analog Input Mode Selection Enable Input - System Defined Parameter
0
BOOL
Mode.EnableOut
Analog Input Mode Selection Enable Output - System Defined Parameter
0
BOOL
Mode.Inp_Hand
Analog Input Mode Selection 1=Select Hand (typ. hardwired) Mode
Mode.Inp_Hand - P_DoseFM/Logic - *1(OTU)
0
BOOL
Mode.Inp_Ovrd
Analog Input Mode Selection 1=Select Override (typ. Process/Safety Interlock) Mode
Mode.Inp_Ovrd - P_DoseFM/Logic - *1(OTU)
1
BOOL
Mode.Cfg_PCmdClear
Analog Input Mode Selection 1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds
Cfg_PCmdClear - P_DoseFM/EnableInFalse - 0(XIC), 0(XIO), 2(XIC)
Cfg_PCmdClear - P_DoseFM/Logic - 13(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 21(XIC), 22(XIC), 54(XIC)
Cfg_PCmdClear - P_DoseFM/Prescan - 2(XIC)
1
BOOL
Mode.Cfg_OvrdOverLock
Analog Input Mode Selection 1=Override supersedes Prog/Oper Lock, 0=don't override Lock
0
BOOL
Mode.Cfg_ProgDefault
Analog Input Mode Selection Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
0
BOOL
Mode.PCmd_Acq
Analog Input Mode Selection Program Command to Acquire Ownership (Oper to Prog)
0
BOOL
Mode.PCmd_Rel
Analog Input Mode Selection Program Command to Release Ownership (Prog to Oper)
0
BOOL
Mode.PCmd_Lock
Analog Input Mode Selection Program Command to Lock Mode in Prog
0
BOOL
Mode.PCmd_Unlock
Analog Input Mode Selection Program Command to Unlock Mode
0
BOOL
Mode.MCmd_Acq
Analog Input Mode Selection Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)
0
BOOL
Mode.MCmd_Rel
Analog Input Mode Selection Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)
0
BOOL
Mode.OCmd_AcqLock
Analog Input Mode Selection Operator Command to Acquire and Lock Mode in Oper
0
BOOL
Mode.OCmd_Unlock
Analog Input Mode Selection Operator Command to Unlock Operator Mode
0
DINT
Mode.Val
Analog Input Mode Selection Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
0
BOOL
Mode.Sts_Hand
RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 51
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode (Continued)
Analog Input Mode Selection 1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
0
BOOL
Mode.Sts_Maint
Analog Input Mode Selection 1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Mode.Sts_Maint - P_DoseFM/Logic - 11(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 19(XIC), 21(XIC), 22(XIC), 50(XIC), 51(XIC), 52(XIC),
53(XIC)
0
BOOL
Mode.Sts_Ovrd
Analog Input Mode Selection 1=Mode is Override (supersedes Prog, Oper)
0
BOOL
Mode.Sts_Prog
Analog Input Mode Selection 1=Mode is Program
Mode.Sts_Prog - P_DoseFM/Logic - 11(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 19(XIC), 21(XIC), 22(XIC), 41(XIC), 50(XIC), 51(XIC),
52(XIC), 53(XIC)
1
BOOL
Mode.Sts_Oper
Analog Input Mode Selection 1=Mode is Operator
Mode.Sts_Oper - P_DoseFM/Logic - 11(XIC), 15(XIC), 16(XIC), 17(XIC), 18(XIC), 19(XIC), 21(XIC), 22(XIC), 50(XIC), 51(XIC), 52(XIC),
53(XIC)
0
BOOL
Mode.Sts_ProgOperLock
Analog Input Mode Selection 1=Program or Operator has requested Mode Lock
0
BOOL
Mode.Sts_ProgOperSel
Analog Input Mode Selection Prog/Oper selection 1=Program, 0=Operator
0
BOOL
Mode.Sts_NoMode
Analog Input Mode Selection 1=Mode is NO mode (no owner)
0
BOOL
Mode.Rdy_Acq
Analog Input Mode Selection 1=Ready for MCmd_Acq
1
BOOL
Mode.Rdy_Rel
Analog Input Mode Selection 1=Ready for MCmd_Rel
1
BOOL
Mode.Rdy_AcqLock
Analog Input Mode Selection 1=Ready for OCmd_AcqLock
0
BOOL
Mode.Rdy_Unlock
Analog Input Mode Selection 1=Ready for OCmd_Unlock
P_Alarm
OverTol
Final Quantity Above High Tolerance Alarm
Usage:
Local Tag
External Access:
Read/Write
OverTol - P_DoseFM/Logic - *55(P_Alarm)
1
BOOL
OverTol.EnableIn
Final Quantity Above High Tolerance Alarm Enable Input - System Defined Parameter
0
BOOL
OverTol.EnableOut
Final Quantity Above High Tolerance Alarm Enable Output - System Defined Parameter
1
BOOL
OverTol.Inp
Final Quantity Above High Tolerance Alarm Alarm Condition Input 1=Alarm
Sts_OverTol - P_DoseFM/EnableInFalse - *16(OTU)
Sts_OverTol - P_DoseFM/Logic - *48(OTE)
0
BOOL
OverTol.Inp_Reset
Final Quantity Above High Tolerance Alarm 1=Reset Alarm requiring reset
1
BOOL
OverTol.Cfg_Exists
Final Quantity Above High Tolerance Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
OverTol.Cfg_ResetReqd
Final Quantity Above High Tolerance Alarm 1=Reset required to clear Alarm
1
BOOL
OverTol.Cfg_AckReqd
Final Quantity Above High Tolerance Alarm 1=Acknowledge required for Alarm
0
BOOL
OverTol.Cfg_PCmdClear
Final Quantity Above High Tolerance Alarm 1=Clear Program Commands on receipt 0=Leave Set
OverTol.Cfg_PCmdClear - P_DoseFM/Logic - *54(OTE)
3
SINT
OverTol.Cfg_Severity
Final Quantity Above High Tolerance Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
OverTol.Cfg_AlmMinOnT
Final Quantity Above High Tolerance Alarm Minimum time Alm output stays on (sec)
0
BOOL
OverTol.PCmd_Reset
Final Quantity Above High Tolerance Alarm Program Command to Reset latched alarm
OverTol.PCmd_Reset - P_DoseFM/Logic - *13(OTL)
0
BOOL
OverTol.PCmd_Ack
Final Quantity Above High Tolerance Alarm Program Command to Acknowledge alarm
OverTol.PCmd_Ack - P_DoseFM/Logic - *13(OTL)
0
BOOL
OverTol.PCmd_Inhibit
Final Quantity Above High Tolerance Alarm Program Command to Inhibit alarm (force Alm to 0)

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 52
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OverTol (Continued)
0
BOOL
OverTol.PCmd_Uninhibit
Final Quantity Above High Tolerance Alarm Program Command to Uninhibit alarm
0
BOOL
OverTol.OCmd_Reset
Final Quantity Above High Tolerance Alarm Operator Command to Reset latched alarm
0
BOOL
OverTol.OCmd_Ack
Final Quantity Above High Tolerance Alarm Operator Command to Acknowledge alarm
0
BOOL
OverTol.OCmd_Suppress
Final Quantity Above High Tolerance Alarm Operator Command to Suppress alarm
0
BOOL
OverTol.OCmd_Unsuppress
Final Quantity Above High Tolerance Alarm Operator Command to Unsuppress alarm
0
BOOL
OverTol.MCmd_Disable
Final Quantity Above High Tolerance Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
OverTol.MCmd_Enable
Final Quantity Above High Tolerance Alarm Maintenance Command to Enable alarm
0
SINT
OverTol.Val_Notify
Final Quantity Above High Tolerance Alarm Current Alarm Level and Acknowledgement (enumeration)
OverTol.Val_Notify - P_DoseFM/Logic - 60(GRT), 60(MOV)
0
BOOL
OverTol.Alm
Final Quantity Above High Tolerance Alarm Alarm output 1=In Alarm
Alm_OverTol - P_DoseFM/EnableInFalse - *16(OTU)
1
BOOL
OverTol.Ack
Final Quantity Above High Tolerance Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
OverTol.Inhibited
Final Quantity Above High Tolerance Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
OverTol.Suppressed
Final Quantity Above High Tolerance Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
OverTol.Disabled
Final Quantity Above High Tolerance Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
OverTol.Sts_AlmInh
Final Quantity Above High Tolerance Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
OverTol.Sts_AlmInh - P_DoseFM/Logic - 59(XIC)
0
BOOL
OverTol.Sts_Err
Final Quantity Above High Tolerance Alarm 1=Error in Config: see detail Err_ bits for reason
OverTol.Sts_Err - P_DoseFM/Logic - 7(XIC)
0
BOOL
OverTol.Err_Timer
Final Quantity Above High Tolerance Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
OverTol.Err_Severity
Final Quantity Above High Tolerance Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
OverTol.Rdy_Reset
Final Quantity Above High Tolerance Alarm Ready to receive OCmd_Reset (enable button)
OverTol.Rdy_Reset - P_DoseFM/Logic - 60(XIC)
0
BOOL
OverTol.Rdy_Ack
Final Quantity Above High Tolerance Alarm Ready to receive OCmd_Ack (enable button)
OverTol.Rdy_Ack - P_DoseFM/Logic - 60(XIC)
0
BOOL
OverTol.Rdy_Suppress
Final Quantity Above High Tolerance Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
OverTol.Rdy_Unsuppress
Final Quantity Above High Tolerance Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
OverTol.Rdy_Disable
Final Quantity Above High Tolerance Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
OverTol.Rdy_Enable
Final Quantity Above High Tolerance Alarm Ready to receive MCmd_Enable (enable button)
P_Alarm
UnderTol
Final Quantity Below Low Tolerance Alarm
Usage:
Local Tag
External Access:
Read/Write
UnderTol - P_DoseFM/Logic - *56(P_Alarm)
1
BOOL
UnderTol.EnableIn
Final Quantity Below Low Tolerance Alarm Enable Input - System Defined Parameter
0
BOOL
UnderTol.EnableOut
Final Quantity Below Low Tolerance Alarm Enable Output - System Defined Parameter
1
BOOL
UnderTol.Inp
Final Quantity Below Low Tolerance Alarm Alarm Condition Input 1=Alarm
Sts_UnderTol - P_DoseFM/EnableInFalse - *16(OTU)
Sts_UnderTol - P_DoseFM/Logic - *48(OTE)

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 53
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

UnderTol (Continued)
0
BOOL
UnderTol.Inp_Reset
Final Quantity Below Low Tolerance Alarm 1=Reset Alarm requiring reset
1
BOOL
UnderTol.Cfg_Exists
Final Quantity Below Low Tolerance Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
UnderTol.Cfg_ResetReqd
Final Quantity Below Low Tolerance Alarm 1=Reset required to clear Alarm
1
BOOL
UnderTol.Cfg_AckReqd
Final Quantity Below Low Tolerance Alarm 1=Acknowledge required for Alarm
0
BOOL
UnderTol.Cfg_PCmdClear
Final Quantity Below Low Tolerance Alarm 1=Clear Program Commands on receipt 0=Leave Set
UnderTol.Cfg_PCmdClear - P_DoseFM/Logic - *54(OTE)
3
SINT
UnderTol.Cfg_Severity
Final Quantity Below Low Tolerance Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
UnderTol.Cfg_AlmMinOnT
Final Quantity Below Low Tolerance Alarm Minimum time Alm output stays on (sec)
0
BOOL
UnderTol.PCmd_Reset
Final Quantity Below Low Tolerance Alarm Program Command to Reset latched alarm
UnderTol.PCmd_Reset - P_DoseFM/Logic - *13(OTL)
0
BOOL
UnderTol.PCmd_Ack
Final Quantity Below Low Tolerance Alarm Program Command to Acknowledge alarm
UnderTol.PCmd_Ack - P_DoseFM/Logic - *13(OTL)
0
BOOL
UnderTol.PCmd_Inhibit
Final Quantity Below Low Tolerance Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
UnderTol.PCmd_Uninhibit
Final Quantity Below Low Tolerance Alarm Program Command to Uninhibit alarm
0
BOOL
UnderTol.OCmd_Reset
Final Quantity Below Low Tolerance Alarm Operator Command to Reset latched alarm
0
BOOL
UnderTol.OCmd_Ack
Final Quantity Below Low Tolerance Alarm Operator Command to Acknowledge alarm
0
BOOL
UnderTol.OCmd_Suppress
Final Quantity Below Low Tolerance Alarm Operator Command to Suppress alarm
0
BOOL
UnderTol.OCmd_Unsuppress
Final Quantity Below Low Tolerance Alarm Operator Command to Unsuppress alarm
0
BOOL
UnderTol.MCmd_Disable
Final Quantity Below Low Tolerance Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
UnderTol.MCmd_Enable
Final Quantity Below Low Tolerance Alarm Maintenance Command to Enable alarm
0
SINT
UnderTol.Val_Notify
Final Quantity Below Low Tolerance Alarm Current Alarm Level and Acknowledgement (enumeration)
UnderTol.Val_Notify - P_DoseFM/Logic - 60(GRT), 60(MOV)
0
BOOL
UnderTol.Alm
Final Quantity Below Low Tolerance Alarm Alarm output 1=In Alarm
Alm_UnderTol - P_DoseFM/EnableInFalse - *16(OTU)
1
BOOL
UnderTol.Ack
Final Quantity Below Low Tolerance Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
UnderTol.Inhibited
Final Quantity Below Low Tolerance Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
UnderTol.Suppressed
Final Quantity Below Low Tolerance Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
UnderTol.Disabled
Final Quantity Below Low Tolerance Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
UnderTol.Sts_AlmInh
Final Quantity Below Low Tolerance Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
UnderTol.Sts_AlmInh - P_DoseFM/Logic - 59(XIC)
0
BOOL
UnderTol.Sts_Err
Final Quantity Below Low Tolerance Alarm 1=Error in Config: see detail Err_ bits for reason
UnderTol.Sts_Err - P_DoseFM/Logic - 7(XIC)
0
BOOL
UnderTol.Err_Timer
Final Quantity Below Low Tolerance Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
UnderTol.Err_Severity
Final Quantity Below Low Tolerance Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
UnderTol.Rdy_Reset
Final Quantity Below Low Tolerance Alarm Ready to receive OCmd_Reset (enable button)
UnderTol.Rdy_Reset - P_DoseFM/Logic - 60(XIC)
0
BOOL
UnderTol.Rdy_Ack
Final Quantity Below Low Tolerance Alarm Ready to receive OCmd_Ack (enable button)
RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 54
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

UnderTol (Continued)
UnderTol.Rdy_Ack - P_DoseFM/Logic - 60(XIC)
0
BOOL
UnderTol.Rdy_Suppress
Final Quantity Below Low Tolerance Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
UnderTol.Rdy_Unsuppress
Final Quantity Below Low Tolerance Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
UnderTol.Rdy_Disable
Final Quantity Below Low Tolerance Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
UnderTol.Rdy_Enable
Final Quantity Below Low Tolerance Alarm Ready to receive MCmd_Enable (enable button)
0.0
REAL
Wrk_Alpha
Filter multiplier = (1 / (1+TC/dT) )
Usage:
Local Tag
External Access:
None
Wrk_Alpha - P_DoseFM/EnableInFalse - *13(CLR), *13(CPT), 13(CPT)
Wrk_Alpha - P_DoseFM/Logic - *31(CLR), *31(CPT), 31(CPT)

P_DoseFM

0.0
REAL
Wrk_AmtToAdd
Amount to add to Quantity this scan based on Rate
Usage:
Local Tag
External Access:
None
Wrk_AmtToAdd - P_DoseFM/Logic - *26(CLR), *26(CPT), *28(CLR), *28(CPT), 29(ADD), 31(CPT)

P_DoseFM

0
BOOL
P_DoseFM
Wrk_BumpFlow
Operator requested bump flow to make up Under Tolerance
Usage:
Local Tag
External Access:
None
Wrk_BumpFlow - P_DoseFM/Logic - *19(OTL), *20(OTU), *21(OTU), 15(XIO), 18(XIO), 20(XIC), 45(XIC), 46(XIC), 48(XIC), 48(XIO),
50(XIC), 50(XIO)
Wrk_BumpFlow - P_DoseFM/Prescan - *4(OTU)
0
BOOL
Wrk_BumpNoAdj
Do NOT auto-adjust Preact if flow was Bumped since Clearing Totalizer
Usage:
Local Tag
External Access:
None
Wrk_BumpNoAdj - P_DoseFM/Logic - *15(OTU), *19(OTL), *22(OTL), 22(XIO)
Wrk_BumpNoAdj - P_DoseFM/Prescan - *4(OTL)

P_DoseFM

TIMER
Wrk_BumpT
Bump Timer for shot of flow to make up Under Tolerance
Usage:
Local Tag
External Access:
None
Wrk_BumpT - P_DoseFM/Logic - *20(TON)
Wrk_BumpT - P_DoseFM/Prescan - *4(RES)
0
DINT
Wrk_BumpT.PRE
Bump Timer for shot of flow to make up Under Tolerance
Wrk_BumpT.PRE - P_DoseFM/Logic - *7(CLR), *7(MUL), 19(NEQ), 20(EQU), 20(GRT), 50(EQU)
0
BOOL
Wrk_BumpT.PRE.31
Bump Timer for shot of flow to make up Under Tolerance
Wrk_BumpT.PRE.31 - P_DoseFM/Logic - 7(XIC)
0
DINT
Wrk_BumpT.ACC
Bump Timer for shot of flow to make up Under Tolerance
0
BOOL
Wrk_BumpT.EN
Bump Timer for shot of flow to make up Under Tolerance
0
BOOL
Wrk_BumpT.TT
Bump Timer for shot of flow to make up Under Tolerance
0
BOOL
Wrk_BumpT.DN
Bump Timer for shot of flow to make up Under Tolerance
Wrk_BumpT.DN - P_DoseFM/Logic - 20(XIC)

P_DoseFM

Wrk_ClearPulseT
Time to pulse Out_Clear to clear external timer
Usage:
Local Tag
External Access:
None
Wrk_ClearPulseT - P_DoseFM/Logic - *42(TON)
Wrk_ClearPulseT - P_DoseFM/Prescan - *4(RES)

TIMER

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Wrk_ClearPulseT (Continued)
1000
Wrk_ClearPulseT.PRE
Time to pulse Out_Clear to clear external timer
Wrk_ClearPulseT.PRE - P_DoseFM/Logic - *7(CLR), *7(MUL)
0
Wrk_ClearPulseT.PRE.31
Time to pulse Out_Clear to clear external timer
Wrk_ClearPulseT.PRE.31 - P_DoseFM/Logic - 7(XIC)
0
Wrk_ClearPulseT.ACC
Time to pulse Out_Clear to clear external timer
0
Wrk_ClearPulseT.EN
Time to pulse Out_Clear to clear external timer
0
Wrk_ClearPulseT.TT
Time to pulse Out_Clear to clear external timer
Wrk_ClearPulseT.TT - P_DoseFM/Logic - 42(XIC)
0
Wrk_ClearPulseT.DN
Time to pulse Out_Clear to clear external timer
Wrk_ClearPulseT.DN - P_DoseFM/Logic - 43(XIC)

Page 55
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
DINT
BOOL
BOOL
BOOL

0
BOOL
Wrk_ClearTot
Request to Clear Total received
Usage:
Local Tag
External Access:
None
Wrk_ClearTot - P_DoseFM/Logic - *15(OTL), *18(OTU), *19(OTU), *43(OTU), 42(XIC), 43(XIC)
Wrk_ClearTot - P_DoseFM/Prescan - *4(OTU)

P_DoseFM

0
SINT
Wrk_Cmd
Buffer for building Val_Cmd
Usage:
Local Tag
External Access:
None
Wrk_Cmd - P_DoseFM/Logic - *14(CLR), *16(MOV), *17(MOV), *42(MOV), *49(MOV), 49(MOV)

P_DoseFM

0
BOOL
Wrk_EqpFault
Equipment Fault (latched) stops delivery and requires reset
Usage:
Local Tag
External Access:
None
Wrk_EqpFault - P_DoseFM/Logic - *13(OTU), *39(OTL), 21(XIC), 40(XIC), 60(XIC)
Wrk_EqpFault - P_DoseFM/Prescan - *4(OTU)

P_DoseFM

0
Wrk_Fault
Buffer for building Val_Fault
Usage:
Local Tag
External Access:
None
Wrk_Fault - P_DoseFM/Logic - *49(CLR), *49(MOV), 49(MOV)

SINT

P_DoseFM

Wrk_FaultT
Timer for Equipment Fault (Feedback not matching output)
Usage:
Local Tag
External Access:
None
Wrk_FaultT - P_DoseFM/Logic - *37(TON)
Wrk_FaultT - P_DoseFM/Prescan - *4(RES)
0
Wrk_FaultT.PRE
Timer for Equipment Fault (Feedback not matching output)
Wrk_FaultT.PRE - P_DoseFM/Logic - *7(CLR), *7(MUL)
0
Wrk_FaultT.PRE.31
Timer for Equipment Fault (Feedback not matching output)
Wrk_FaultT.PRE.31 - P_DoseFM/Logic - 7(XIC)
0
Wrk_FaultT.ACC
Timer for Equipment Fault (Feedback not matching output)
0
Wrk_FaultT.EN
Timer for Equipment Fault (Feedback not matching output)
0
Wrk_FaultT.TT
Timer for Equipment Fault (Feedback not matching output)
0
Wrk_FaultT.DN
Timer for Equipment Fault (Feedback not matching output)
Wrk_FaultT.DN - P_DoseFM/Logic - 38(XIC)

TIMER

P_DoseFM

Wrk_Fdbk

DINT
BOOL
DINT
BOOL
BOOL
BOOL

SINT

P_DoseFM
RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 56
22/12/2015 08,57,48
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Fdbk (Continued)
Buffer for building Val_Fdbk
Usage:
Local Tag
External Access:
None
Wrk_Fdbk - P_DoseFM/EnableInFalse - *6(CLR), *6(MOV), 6(MOV)
Wrk_Fdbk - P_DoseFM/Logic - *8(CLR), *8(MOV), 8(MOV)
0.0
REAL
Wrk_FiltRate
Working register for calculating filtered delivery rate
Usage:
Local Tag
External Access:
None
Wrk_FiltRate - P_DoseFM/EnableInFalse - *13(CPT), *13(MOV), 13(CPT), 13(MOV)
Wrk_FiltRate - P_DoseFM/Logic - *31(CPT), *31(MOV), 31(CPT), 31(MOV)

P_DoseFM

0
DINT
Wrk_HiOrderTot
Integer Amount of Totalizer (high-order of cascaded registers)
Usage:
Local Tag
External Access:
None
Wrk_HiOrderTot - P_DoseFM/Logic - *29(CPT), *43(CLR), 29(ADD), 29(CPT)

P_DoseFM

0
BOOL
Wrk_InTol
Delivery is In Tolerance
Usage:
Local Tag
External Access:
None
Wrk_InTol - P_DoseFM/Logic - *15(OTU), *18(OTU), *19(OTU), *22(OTL), *22(OTU), 22(XIC), 48(XIC)

P_DoseFM

0.0
REAL
Wrk_LoOrderTot
Fractional Amount of Totalizer (low-order of cascaded registers)
Usage:
Local Tag
External Access:
None
Wrk_LoOrderTot - P_DoseFM/Logic - *29(ADD), *29(CPT), *43(CLR), 29(ADD), 29(CPT)

P_DoseFM

0
DINT
Wrk_Notify
Buffer for building Val_Notify
Usage:
Local Tag
External Access:
None
Wrk_Notify - P_DoseFM/Logic - *60(CLR), *60(MOV), 60(GRT), 60(MOV)
0
BOOL
Wrk_Notify.0
Buffer for building Val_Notify
Wrk_Notify.0 - P_DoseFM/Logic - *60(OTE)

P_DoseFM

0
Wrk_OperKeep0ONS
Oper Keep bit 0 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_OperKeep0ONS - P_DoseFM/Logic - *6(ONS)
Wrk_OperKeep0ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
Wrk_OperKeep1ONS
Oper Keep bit 1 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_OperKeep1ONS - P_DoseFM/Logic - *6(ONS)
Wrk_OperKeep1ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
Wrk_OperKeep2ONS
Oper Keep bit 2 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_OperKeep2ONS - P_DoseFM/Logic - *6(ONS)
Wrk_OperKeep2ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
Wrk_OperKeep3ONS
Oper Keep bit 3 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_OperKeep3ONS - P_DoseFM/Logic - *6(ONS)

BOOL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 57
22/12/2015 08,57,49
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_OperKeep3ONS (Continued)
Wrk_OperKeep3ONS - P_DoseFM/Prescan - *1(OTU)
0
BOOL
P_DoseFM
Wrk_OverTol
Delivery is Over Tolerance (too much)
Usage:
Local Tag
External Access:
None
Wrk_OverTol - P_DoseFM/Logic - *13(OTU), *15(OTU), *18(OTU), *19(OTU), *22(OTL), *22(OTU), 22(XIO), 48(XIC)
0.0
REAL
Wrk_PctComplete
Percent Complete calculation intermediate
Usage:
Local Tag
External Access:
None
Wrk_PctComplete - P_DoseFM/Logic - *33(CLR), *33(CPT), *33(MOV), 33(GRT), 33(LES), 33(MOV)

P_DoseFM

0.0
REAL
Wrk_PrevQty
Previous scan's Inp_QtyPV value
Usage:
Local Tag
External Access:
None
Wrk_PrevQty - P_DoseFM/EnableInFalse - *11(MOV)
Wrk_PrevQty - P_DoseFM/Logic - *27(MOV), 26(CPT), 26(GEQ), 26(LES)

P_DoseFM

0
Wrk_ProgKeep0ONS
Prog Keep bit 0 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_ProgKeep0ONS - P_DoseFM/Logic - *6(ONS)
Wrk_ProgKeep0ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
Wrk_ProgKeep1ONS
Prog Keep bit 1 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_ProgKeep1ONS - P_DoseFM/Logic - *6(ONS)
Wrk_ProgKeep1ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
Wrk_ProgKeep2ONS
Prog Keep bit 2 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_ProgKeep2ONS - P_DoseFM/Logic - *6(ONS)
Wrk_ProgKeep2ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
Wrk_ProgKeep3ONS
Prog Keep bit 3 one-shot store
Usage:
Local Tag
External Access:
None
Wrk_ProgKeep3ONS - P_DoseFM/Logic - *6(ONS)
Wrk_ProgKeep3ONS - P_DoseFM/Prescan - *1(OTU)

BOOL

P_DoseFM

0
BOOL
Wrk_QtyInfNaN
Quantity PV is Infinite or NaN
Usage:
Local Tag
External Access:
None
Wrk_QtyInfNaN - P_DoseFM/EnableInFalse - *8(OTL), *8(OTU), 12(XIO)
Wrk_QtyInfNaN - P_DoseFM/Logic - *12(OTL), *12(OTU), 17(XIC), 21(XIC), 29(XIO), 30(XIO)

P_DoseFM

16#0000_0000
Wrk_QtyInpDINT
Inp_QtyPV check for Infinite or Not A Number
Usage:
Local Tag
External Access:
None
Wrk_QtyInpDINT - P_DoseFM/EnableInFalse - *8(COP), 8(MEQ)
Wrk_QtyInpDINT - P_DoseFM/Logic - *12(COP), 12(MEQ)

DINT

P_DoseFM

0.0
Wrk_Rate
Instantaneous Rate based on change in Inp_Qty
Usage:
Local Tag

REAL

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 58
22/12/2015 08,57,49
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Rate (Continued)
External Access:
None
Wrk_Rate - P_DoseFM/EnableInFalse - *10(MOV), *13(CLR), *9(CLR), 13(CPT), 13(MOV)
Wrk_Rate - P_DoseFM/Logic - *24(CLR), *24(MOV), *25(MOV), *31(CLR), *31(CPT), 28(CPT), 28(LES), 31(CPT), 31(MOV)
0
BOOL
Wrk_RateInfNaN
Rate PV is Infinite or NaN
Usage:
Local Tag
External Access:
None
Wrk_RateInfNaN - P_DoseFM/EnableInFalse - *8(OTL), *8(OTU), 10(XIO), 13(XIO)
Wrk_RateInfNaN - P_DoseFM/Logic - *12(OTL), *12(OTU), 25(XIO), 31(XIO), 34(XIC)

P_DoseFM

16#0000_0000
Wrk_RateInpDINT
Inp_RatePV check for Infinite or Not A Number
Usage:
Local Tag
External Access:
None
Wrk_RateInpDINT - P_DoseFM/EnableInFalse - *8(COP), 8(MEQ)
Wrk_RateInpDINT - P_DoseFM/Logic - *12(COP), 12(MEQ)

P_DoseFM

DINT

0
BOOL
P_DoseFM
Wrk_RunFlow
1=Flow (full)( should be running
Usage:
Local Tag
External Access:
None
Wrk_RunFlow - P_DoseFM/Logic - *18(OTL), *21(OTU), *48(OTU), 15(XIO), 19(XIO), 45(XIC), 46(XIC), 50(XIC), 50(XIO)
Wrk_RunFlow - P_DoseFM/Prescan - *4(OTU)
0
BOOL
P_DoseFM
Wrk_RunTot
1=Totalizaer should be ruuuning
Usage:
Local Tag
External Access:
None
Wrk_RunTot - P_DoseFM/Logic - *16(OTL), *17(OTU), 26(XIC), 28(XIC), 29(XIC), 44(XIC), 50(XIC), 50(XIO)
Wrk_RunTot - P_DoseFM/Prescan - *4(OTU)
Wrk_ScanT
Scan Timer (milliseconds, always runs)
Usage:
Local Tag
External Access:
None
Wrk_ScanT - P_DoseFM/EnableInFalse - *7(TON)
Wrk_ScanT - P_DoseFM/Logic - *23(TON)
Wrk_ScanT - P_DoseFM/Prescan - *4(RES)
2147483647
Wrk_ScanT.PRE
Scan Timer (milliseconds, always runs)
Wrk_ScanT.PRE - P_DoseFM/EnableInFalse - *7(MOV)
Wrk_ScanT.PRE - P_DoseFM/Logic - *23(MOV)
0
Wrk_ScanT.ACC
Scan Timer (milliseconds, always runs)
Wrk_ScanT.ACC - P_DoseFM/EnableInFalse - *7(CLR), 7(DIV)
Wrk_ScanT.ACC - P_DoseFM/Logic - *23(CLR), 23(DIV)
0
Wrk_ScanT.EN
Scan Timer (milliseconds, always runs)
0
Wrk_ScanT.TT
Scan Timer (milliseconds, always runs)
0
Wrk_ScanT.DN
Scan Timer (milliseconds, always runs)

TIMER

P_DoseFM

DINT

DINT

BOOL
BOOL
BOOL

0.0
REAL
Wrk_ScanTime
Time since previous scan (sec)
Usage:
Local Tag
External Access:
None
Wrk_ScanTime - P_DoseFM/EnableInFalse - *7(DIV), 13(CPT)
Wrk_ScanTime - P_DoseFM/Logic - *23(DIV), 28(CPT), 31(CPT), 31(GRT), 31(LEQ)

P_DoseFM

0
Wrk_Sts
Buffer for building Val_Sts
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_DoseFM/Logic - *49(CLR), *49(MOV), 49(MOV)

P_DoseFM

SINT

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 59
22/12/2015 08,57,49
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
BOOL
P_DoseFM
Wrk_UnderTol
Delivery is Under Tolerance (short)
Usage:
Local Tag
External Access:
None
Wrk_UnderTol - P_DoseFM/Logic - *13(OTU), *15(OTU), *18(OTU), *19(OTU), *22(OTL), *22(OTU), 22(XIO), 48(XIC)
0
Wrk_ValidONS
Rate PV goes from Infinite or Not a Number to VALID
Usage:
Local Tag
External Access:
None
Wrk_ValidONS - P_DoseFM/EnableInFalse - *13(ONS)
Wrk_ValidONS - P_DoseFM/Logic - *31(ONS)
Wrk_ValidONS - P_DoseFM/Prescan - *5(OTU)

BOOL

P_DoseFM

0
BOOL
P_DoseFM
Wrk_ZeroFault
Total did not clear or moved off zero
Usage:
Local Tag
External Access:
None
Wrk_ZeroFault - P_DoseFM/Logic - *13(OTU), *15(OTU), *18(OTU), *19(OTU), *43(OTL), *43(OTU), 48(XIC)
P_Alarm
ZeroFault
Rate Not Zero when Expected Alarm
Usage:
Local Tag
External Access:
Read/Write
ZeroFault - P_DoseFM/Logic - *57(P_Alarm)
1
BOOL
ZeroFault.EnableIn
Rate Not Zero when Expected Alarm Enable Input - System Defined Parameter
0
BOOL
ZeroFault.EnableOut
Rate Not Zero when Expected Alarm Enable Output - System Defined Parameter
1
BOOL
ZeroFault.Inp
Rate Not Zero when Expected Alarm Alarm Condition Input 1=Alarm
Sts_ZeroFault - P_DoseFM/EnableInFalse - *16(OTU)
Sts_ZeroFault - P_DoseFM/Logic - *48(OTE)
0
BOOL
ZeroFault.Inp_Reset
Rate Not Zero when Expected Alarm 1=Reset Alarm requiring reset
1
BOOL
ZeroFault.Cfg_Exists
Rate Not Zero when Expected Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
ZeroFault.Cfg_ResetReqd
Rate Not Zero when Expected Alarm 1=Reset required to clear Alarm
1
BOOL
ZeroFault.Cfg_AckReqd
Rate Not Zero when Expected Alarm 1=Acknowledge required for Alarm
0
BOOL
ZeroFault.Cfg_PCmdClear
Rate Not Zero when Expected Alarm 1=Clear Program Commands on receipt 0=Leave Set
ZeroFault.Cfg_PCmdClear - P_DoseFM/Logic - *54(OTE)
3
SINT
ZeroFault.Cfg_Severity
Rate Not Zero when Expected Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
ZeroFault.Cfg_AlmMinOnT
Rate Not Zero when Expected Alarm Minimum time Alm output stays on (sec)
0
BOOL
ZeroFault.PCmd_Reset
Rate Not Zero when Expected Alarm Program Command to Reset latched alarm
ZeroFault.PCmd_Reset - P_DoseFM/Logic - *13(OTL)
0
BOOL
ZeroFault.PCmd_Ack
Rate Not Zero when Expected Alarm Program Command to Acknowledge alarm
ZeroFault.PCmd_Ack - P_DoseFM/Logic - *13(OTL)
0
BOOL
ZeroFault.PCmd_Inhibit
Rate Not Zero when Expected Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
ZeroFault.PCmd_Uninhibit
Rate Not Zero when Expected Alarm Program Command to Uninhibit alarm
0
BOOL
ZeroFault.OCmd_Reset
Rate Not Zero when Expected Alarm Operator Command to Reset latched alarm
0
BOOL
ZeroFault.OCmd_Ack
Rate Not Zero when Expected Alarm Operator Command to Acknowledge alarm
0
BOOL
ZeroFault.OCmd_Suppress
Rate Not Zero when Expected Alarm Operator Command to Suppress alarm
0
BOOL
ZeroFault.OCmd_Unsuppress
Rate Not Zero when Expected Alarm Operator Command to Unsuppress alarm
0
BOOL
ZeroFault.MCmd_Disable

P_DoseFM

RSLogix 5000

P_DoseFM Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Data Context: P_DoseFM <definition>

Page 60
22/12/2015 08,57,49
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

ZeroFault (Continued)
Rate Not Zero when Expected Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
ZeroFault.MCmd_Enable
Rate Not Zero when Expected Alarm Maintenance Command to Enable alarm
0
SINT
ZeroFault.Val_Notify
Rate Not Zero when Expected Alarm Current Alarm Level and Acknowledgement (enumeration)
ZeroFault.Val_Notify - P_DoseFM/Logic - 60(GRT), 60(MOV)
0
BOOL
ZeroFault.Alm
Rate Not Zero when Expected Alarm Alarm output 1=In Alarm
Alm_ZeroFault - P_DoseFM/EnableInFalse - *16(OTU)
1
BOOL
ZeroFault.Ack
Rate Not Zero when Expected Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
ZeroFault.Inhibited
Rate Not Zero when Expected Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
ZeroFault.Suppressed
Rate Not Zero when Expected Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
ZeroFault.Disabled
Rate Not Zero when Expected Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
ZeroFault.Sts_AlmInh
Rate Not Zero when Expected Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
ZeroFault.Sts_AlmInh - P_DoseFM/Logic - 59(XIC)
0
BOOL
ZeroFault.Sts_Err
Rate Not Zero when Expected Alarm 1=Error in Config: see detail Err_ bits for reason
ZeroFault.Sts_Err - P_DoseFM/Logic - 7(XIC)
0
BOOL
ZeroFault.Err_Timer
Rate Not Zero when Expected Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
ZeroFault.Err_Severity
Rate Not Zero when Expected Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
ZeroFault.Rdy_Reset
Rate Not Zero when Expected Alarm Ready to receive OCmd_Reset (enable button)
ZeroFault.Rdy_Reset - P_DoseFM/Logic - 60(XIC)
0
BOOL
ZeroFault.Rdy_Ack
Rate Not Zero when Expected Alarm Ready to receive OCmd_Ack (enable button)
ZeroFault.Rdy_Ack - P_DoseFM/Logic - 60(XIC)
0
BOOL
ZeroFault.Rdy_Suppress
Rate Not Zero when Expected Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
ZeroFault.Rdy_Unsuppress
Rate Not Zero when Expected Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
ZeroFault.Rdy_Disable
Rate Not Zero when Expected Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
ZeroFault.Rdy_Enable
Rate Not Zero when Expected Alarm Ready to receive MCmd_Enable (enable button)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 61
22/12/2015 08,57,50
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
P_DoseFM: PROCESS -- FLOWMETER DOSING
============================================================
Revision 2.0-04 Release: 2013-03-15
V2.0-00 2011-09-30: Using P_Alarm, P_Mode 2.0. Added monitoring
of optional equipment status feedback.
Added Cfg_OperKeep, Cfg_ProgKeep, Err_Keep.
Added logic for Sts_AlmInh, Sts_NotRdy for breadcrumbs.
Added OCmd_ResetAckAll, Rdy_ResetAckAll.
Added Val_Fdbk, Val_Sts, Val_Fault, Val_Mode.
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2011-11-10: Modified to correct conditions which stop flow.
V2.0-02 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01. Modified
Rdy_Bump to allow bump even if Sts_Complete set.
V2.0-03 2012-11-18: Modified OperKeep, ProgKeep to allow all aspects
to be kept, enforce no aspect kept by both Prog and Oper;
changed low cutoff to ignore ALL negative flow, not use ABS().
V2.0-04 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction monitors a flowmeter which provides flow rate (AI),
quantity pulses (e.g., 1756-CFM / -HSC), or rate and total (fieldbus),
and provides:
* Optional integration (totalizing) of analog flow to a Quantity
* Optional differentiation of pulse count or quantity to a flow Rate
* Commands to Start, Stop and Clear the Quantity (total)
* Outputs to run and clear an external totalizer (say, on fieldbus flowmeter)
* Commands to Start and Stop Flow for a dosing
* Optional switching to a slow delivery (dribble) when approaching setpoint
* Stopping flow just before reaching setpoint using a Preact value
* Optional automatic adjustment of the preact value to fine tune the stop point
* Commands to check if the delivered quantity is within user-specified tolerances and alarm if not
* Program and Operator Settings for Setpoint, Preact, Dribble Quantity, High and Low Tolerances
* Equipment Failure Alarm on sensor failure (stops totalizer, stops flow),
Equipment Feedback failure or other controlled equipment failure (stops flow)
* Zero failure alarm if quantity does not zero when totalizer is cleared
* Configurable Low Flow Cutoff to account for zero error on analog flowmeters
* Conversion of flow units to alternate quantity units (e.g., GPM to Barrels)
* Monitoring of optional equipment status feedback
* Simulation using a provided simulated Rate and simulated Dribble Rate
Modes are provided by a P_Mode Add-On Instruction instance.
Alarms are provided by P_Alarm Add-On Instruction instances.
Modes of operation: Operator, Program, Maintenance
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!
To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click
to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.

SkipText
JMP

Tagname for display


on HMI
LOWER
Lower Case
Source Cfg_Tag
Dest Inf_Type
'P_DoseFM'
'P_DoseFM'

Label for graphic


symbol displayed on
HMI
LOWER
Lower Case
Source
Cfg_Label
'Flowmeter Dosing'

Dest
Cfg_Desc
'Dosing with Flowmete'

Engineering Units
for Quantity for
display on HMI
LOWER
Lower Case
Source Cfg_QtyEU
Dest Cfg_RateEU
'kg'
'kg/sec'

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 62
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_QtyEU

0(LOWER)

Cfg_RateEU

*0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 63
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
MODE PROCESSING
============================================================
This rung handles received Mode Inputs and Commands:
NOTE: All Commands for Mode, Alarm are aliased directly to the
corresponding Commands in the contained P_Mode and P_Alarm AOIs.

This object does NOT have the following Modes:


Hand
Override
Analog Input Mode
Analog Input Mode
Selection 1=Select
Selection 1=Select
Override (typ.
Hand (typ.
Process/Safety
Analog Input Mode
hardwired) Mode
Interlock) Mode
Selection
Mode.Inp_Hand
Mode.Inp_Ovrd
P_Mode
U
U
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock

SkipText
LBL

Signature ID: C1F72CF2

Mode

*1(P_Mode)

Mode.Inp_Hand

*1(OTU)

Mode.Inp_Ovrd

*1(OTU)

This rung handles simple First-Come First-Served Ownership Arbitration.


If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
Dest Val_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

2(MOV) 2(EQU) 2(NEQ)

Val_Owner

*2(MOV) 2(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 64
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
CONFIGURATION PROCESSING
============================================================
If the device is configured to not HAVE device feedback input (engineer),
it cannot be USE the feedback for fail checking (maintenance).
##### V2.0-00 2011-09-30 : Added Equipment Feedback functions. #####

1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk
/

1=Use run / dribble


/ stop feedback,
0=Assume equipment
state
Cfg_UseEqpFdbk
U

Cfg_HasEqpFdbk

3(XIO) 4(XIC) 8(XIC) 8(XIO) 37(XIC)

Cfg_UseEqpFdbk

*3(OTU) 4(XIO)

If a Maintenance Bypass function is active, display the Maintenance Bypass


Indicator (triangle symbol) on the graphic symbol. Bypass functions are:
* Controlled Equipment HAS feedback designated by engineer, but
maintenance has selected to NOT USE equipment feedback
##### V2.0-00 2011-09-30 : Added Equipment Feedback functions. #####
1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk
4

1=Use run / dribble


/ stop feedback,
0=Assume equipment
state
Cfg_UseEqpFdbk
/

Cfg_HasEqpFdbk

3(XIO) 4(XIC) 8(XIC) 8(XIO) 37(XIC)

Cfg_UseEqpFdbk

*3(OTU) 4(XIO)

Sts_MaintByp

*4(OTE)

1=A Maintenance
Bypass is Active,
display icon
Sts_MaintByp

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Normal Scan: control / monitor Dosing with Flowmeter


Cfg_AutoAdjPct: Limit the Preact Auto Adjustment Percentage to a value between 0.0 and 100.0 percent.
Percentage of
Percentage of
delivery error to
delivery error to
auto-adjust preact
auto-adjust preact
(%)
(%)
LES
CLR
Less Than (A<B)
Clear
Source A Cfg_AutoAdjPct
Dest Cfg_AutoAdjPct
10.0
10.0
Source B
0.0

Percentage of
delivery error to
auto-adjust preact
(%)
GRT
Greater Than (A>B)
Source A Cfg_AutoAdjPct
10.0
Source B
100.0

Cfg_AutoAdjPct

Page 65
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Percentage of
delivery error to
auto-adjust preact
(%)
MOV
Move
Source

100.0

Dest Cfg_AutoAdjPct
10.0

5(GRT) 5(LES) *5(CLR) *5(MOV) 22(CPT)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 66
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


The bits within Cfg_OperKeep and Cfg_ProgKeep determine which functions
are retained by the Operator in Program Mode, or by the Program in Operator
Mode (respectively).
It is not allowed to have any given function retained by BOTH Operator and Program.

##### V2.0-00 2011-09-30: Added Cfg_OperKeep, Cfg_ProgKeep, Err_Keep #####


##### V2.0-03 2012-11-28 Modified OperKeep, ProgKeep to allow all aspects #####
##### to be kept, enforce no aspect kept by both Prog and Oper. #####
Oper keeps control
Prog keeps control
in Prog Mode:
in Oper Mode:
.0=Start/Stop,
.0=Start/Stop,
.1=SP,
.1=SP,
.2=Dribble/Preact,
Oper Keep bit 0
.2=Dribble/Preact,
.3=Tolerances
one-shot store
.3=Tolerances
Cfg_OperKeep.0
Cfg_ProgKeep.0
Wrk_OperKeep0ONS
ONS
U
Oper keeps control
in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.1
Oper keeps control
in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.2
Oper keeps control
in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.3
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.1
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.2
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.3

Oper Keep bit 1


one-shot store
Wrk_OperKeep1ONS
ONS

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.1
U

Oper Keep bit 2


one-shot store
Wrk_OperKeep2ONS
ONS

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.2
U

Oper Keep bit 3


one-shot store
Wrk_OperKeep3ONS
ONS

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.3
U

Prog Keep bit 0


one-shot store
Wrk_ProgKeep0ONS
ONS

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
U

Prog Keep bit 1


one-shot store
Wrk_ProgKeep1ONS
ONS

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.1
U

Prog Keep bit 2


one-shot store
Wrk_ProgKeep2ONS
ONS

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.2
U

Prog Keep bit 3


one-shot store
Wrk_ProgKeep3ONS
ONS

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.3
U
1=Error in Config:
Invalid setup of
Cfg_OperKeep and
Cfg_ProgKeep
Err_Keep

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 67
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Err_Keep
U

Cfg_OperKeep.0

*6(OTU) 6(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIO) 18(XIC) 19(XIC) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 50(XIC)

Cfg_OperKeep.1

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 51(XIC)

Cfg_OperKeep.2

6(XIC) *6(OTU) 11(XIO) 11(XIC) 52(XIC)

Cfg_OperKeep.3

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 53(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIO) 18(XIC) 19(XIO) 21(XIO) 21(XIC) 22(XIC) 22(XIO) 50(XIO)

Cfg_ProgKeep.1

6(XIC) *6(OTU) 11(XIC) 11(XIO) 51(XIO)

Cfg_ProgKeep.2

6(XIC) *6(OTU) 11(XIO) 11(XIC) 52(XIO)

Cfg_ProgKeep.3

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 53(XIO)

Err_Keep

*6(OTU) 7(XIC)

Wrk_OperKeep0ONS

*6(ONS)

Wrk_OperKeep1ONS

*6(ONS)

Wrk_OperKeep2ONS

*6(ONS)

Wrk_OperKeep3ONS

*6(ONS)

Wrk_ProgKeep0ONS

*6(ONS)

Wrk_ProgKeep1ONS

*6(ONS)

Wrk_ProgKeep2ONS

*6(ONS)

Wrk_ProgKeep3ONS

*6(ONS)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 68
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


This rung handles the reports of all Error (Bad Configuration) Status.
Individual bits are provided for various status:
Invalid Engineering Units Scaling configs
Invalid Rate calculation configs
Invalid Limit configs
Invalid Simulation configs
Invalid Timer configs (determined in Configuration section above)
Invalid Alarm configs
Invalid Cfg_OperKeep, Cfg_ProgKeep
Then a summary Error Status is provided, simply an OR of the individual bits.

##### V2.0-00 2011-09-30: Moved rung, pulled in Err_Timer logic #####


##### Added Cfg_OperKeep, Cfg_ProgKeep, Err_Keep #####
##### V2.0-02 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####
1=Error:
Cfg_CountsPerEU,
Cfg_EUQtyMult or
Number of Counts in
Cfg_Rollowver
Inp_QtyPV which
invalid
equal 1.0 EU
Err_EU
LEQ
Less Than or Eql (A<=B)
Source A Cfg_CountsPerEU
1.0
Source B
0.0

Rate to Quantity EU
Multiplier (e.g.,
Gal to Bbl.)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_EUQtyMult
1.0
Source B
0.0

Quantity Rollover
(e.g., max count for
pulse input)
LES
Less Than (A<B)
Source A Cfg_Rollover
0.0
Source B
0.0

Filter Time Constant


(sec) for calculated
Rate
LES
Less Than (A<B)
Source A Cfg_RateFiltTC
0.1
Source B
0.0

1=Error:
Cfg_RateFiltTC or
Cfg_RateTime invalid
Err_Rate

Time factor for rate


(60 for /min, 3600
for /hr) (Sec)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_RateTime
1.0
Source B
0.0

Rate below which to


report zero flow
(Inp_RatePV untis)
LES
Less Than (A<B)
Source A Cfg_LoRateCutoff
0.0
Source B
0.0

1=Error:
Cfg_LoRateCutoff
invalid
Err_Cutoff

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 69
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

1=Error: Bad
Configuration, see
detail Err bits for
reason
Sts_Err

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 70
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Maximum allowed
quantity to deliver
(setpoint) (EU)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_MaxQty
1.50000000e+038
Source B
0.0

1=Error: Cfg_MaxQty
invalid
Err_Limit

1=Error:
Cfg_SimDribbleRate
or Cfg_SimRate
invalid
Err_Sim

Rate at which to
dribble when running
in Simulation
(EU/rate time)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_SimDribbleRate
0.1
Source B
0.0

Rate at which to
deliver when running
in Simulation
(EU/rate time)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_SimRate
1.0
Source B
0.0

Bump Timer for shot


of flow to make up
Under Tolerance
MUL
Multiply
Source A Cfg_BumpT
0.0
Source B
1000.0

Bump Timer for shot


of flow to make up
Under Tolerance
Wrk_BumpT.PRE.31

Dest Wrk_BumpT.PRE
0

Time to pulse
Out_Clear to clear
external timer
Wrk_ClearPulseT.PRE.31

Time to pulse
Out_Clear to clear
external timer
MUL
Multiply
Source A Cfg_ClearPulseT
1
Source B
1000

Bump Timer for shot


of flow to make up
Under Tolerance
CLR
Clear
Dest Wrk_BumpT.PRE
0

Dest Wrk_ClearPulseT.PRE
1000

Time to pulse
Out_Clear to clear
external timer
CLR
Clear
Dest Wrk_ClearPulseT.PRE
1000
Timer for Equipment
Fault (Feedback not
matching output)
MUL
Multiply
Source A Cfg_FaultT
10
Source B
1000

Dest Wrk_FaultT.PRE
0

Timer for Equipment


Fault (Feedback not
matching output)
Wrk_FaultT.PRE.31

Timer for Equipment


Fault (Feedback not
matching output)
CLR
Clear
Dest Wrk_FaultT.PRE
0

1=Error: Cfg_BumpT,
Cfg_FaultT or
Cfg_ClearPulseT (use

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 71
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 72
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Final Quantity Above


High Tolerance Alarm
1=Error in Config:
see detail Err_ bits
for reason
OverTol.Sts_Err

Cfg_ClearPulseT (use
0.0 to 2147483.647)
Err_Timer

1=Error in Config:
Alarm Min On Time or
Severity
Err_Alarm

Final Quantity Below


Low Tolerance Alarm
1=Error in Config:
see detail Err_ bits
for reason
UnderTol.Sts_Err
Rate Not Zero when
Expected Alarm
1=Error in Config:
see detail Err_ bits
for reason
ZeroFault.Sts_Err
Equipment (Sensor,
Controlled Equip.)
Fault Alarm 1=Error
in Config: see
detail Err_ bits for
reason
EqpFault.Sts_Err
1=Error in Config:
Invalid setup of
Cfg_OperKeep and
Cfg_ProgKeep
Err_Keep

Cfg_BumpT

7(MUL)

Cfg_ClearPulseT

7(MUL)

Cfg_CountsPerEU

7(LEQ) 26(CPT) 26(GRT) 26(LEQ) 30(DIV) 30(LEQ) 30(GRT)

Cfg_EUQtyMult

7(LEQ) 28(CPT)

Cfg_FaultT

7(MUL) 37(GRT)

Cfg_LoRateCutoff

7(LES) 28(LES)

Cfg_MaxQty

7(LEQ) 9(GRT) 9(MOV) 10(GRT) 10(MOV)

Cfg_RateFiltTC

7(LES) 31(CPT) 31(GRT) 31(LEQ)

Cfg_RateTime

7(LEQ) 28(CPT) 28(GRT) 28(LEQ) 31(CPT)

Cfg_Rollover

7(LES) 26(CPT) 26(GRT) 29(GRT) 30(LEQ)

Cfg_SimDribbleRate

7(LEQ) 24(MOV)

Cfg_SimRate

7(LEQ) 24(MOV)

EqpFault.Sts_Err

7(XIC)

Err_Alarm

*7(OTE)

Err_Cutoff

*7(OTE)

Err_EU

*7(OTE)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!
Err_Keep

*6(OTU) 7(XIC)

Err_Limit

*7(OTE)

Err_Rate

*7(OTE)

Err_Sim

*7(OTE)

Err_Timer

*7(OTE)

OverTol.Sts_Err

7(XIC)

Sts_Err

*7(OTE) 21(XIC) 40(XIC) 49(XIC) 50(XIO)

UnderTol.Sts_Err

7(XIC)

Wrk_BumpT.PRE

*7(CLR) *7(MUL) 19(NEQ) 20(GRT) 20(EQU) 50(EQU)

Wrk_BumpT.PRE.31

7(XIC)

Wrk_ClearPulseT.PRE

*7(CLR) *7(MUL)

Page 73
22/12/2015 08,57,51
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_ClearPulseT.PRE.317(XIC)
Wrk_FaultT.PRE

*7(CLR) *7(MUL)

Wrk_FaultT.PRE.31

7(XIC)

ZeroFault.Sts_Err

7(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 74
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
EQUIPMENT FEEDBACK PROCESSING
============================================================
If the equipment is being simulated or provides no feedback,
loop back the outputs to provide "fake" feedback.
If the equipment is NOT being simulated and it HAS feedback,
use the state of the run feedback input and dribble feedback
input to show the current equipment state.
##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk
/
1=Deliver at Full
(fast) Flow
Out_RunFlow
/

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow
/

1=Deliver at Full
(fast) Flow
Out_RunFlow

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow
/

1=Deliver at Full
(fast) Flow
Out_RunFlow
/

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk

1=Controlled
Equipment is
Delivering (Running)
Inp_RunFdbk
/

1=Controlled
Equipment is
Delivering (Running)
Inp_RunFdbk

1=Controlled
Equipment is
Delivering (Running)
Inp_RunFdbk

1=Controlled
Equipment is
Delivering at
Dribble
Inp_DribbleFdbk
/

Buff
Move
Source

Buff
Move
Source

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow

Buff
Move
Source

1=Controlled
Equipment is
confirmed Stopped
Inp_StopFdbk

Buff
Move
Source

1=Controlled
Equipment is
Delivering at
Dribble
Inp_DribbleFdbk
/

1=Controlled
Equipment is
confirmed Stopped
Inp_StopFdbk
/

1=Controlled
Equipment is
Delivering at
Dribble
Inp_DribbleFdbk

1=Controlled
Equipment is
confirmed Stopped
Inp_StopFdbk

Buff
Move
Source

Buff

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 75
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Buffer for building


Val_Fdbk
CLR
Clear
Dest
Wrk_Fdbk
0

Buffer for building


Val_Fdbk
MOV
1

Dest Wrk_Fdbk
0

Buffer for building


Val_Fdbk
MOV
2

Dest Wrk_Fdbk
0

Buffer for building


Val_Fdbk
MOV
3

Dest Wrk_Fdbk
0

Buffer for building


Val_Fdbk
MOV
1

Dest Wrk_Fdbk
0

Buffer for building


Val_Fdbk
MOV
2

Dest Wrk_Fdbk
0

Buffer for building


Val_Fdbk
MOV

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 76
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Inp_RunFdbk
Inp_DribbleFdbk
/

Inp_StopFdbk
/

Move
Source

Move
Source

Cfg_HasEqpFdbk

3(XIO) 4(XIC) 8(XIO) 8(XIC) 37(XIC)

Inp_DribbleFdbk

8(XIC) 8(XIO)

Inp_RunFdbk

8(XIO) 8(XIC)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Inp_StopFdbk

8(XIO) 8(XIC)

Out_DribbleFlow

8(XIC) 8(XIO) 37(XIC) *46(OTE) 47(XIO) 48(XIC)

Out_RunFlow

8(XIO) 8(XIC) 37(XIC) *45(OTE) 47(XIO) 48(XIC)

Val_Fdbk

*8(MOV) 37(NEQ) 48(NEQ) 48(EQU)

Wrk_Fdbk

*8(CLR) *8(MOV) 8(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Normal Scan: control / monitor Dosing with Flowmeter

MOV
3

Page 77
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Dest Wrk_Fdbk
0

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
MOV
Wrk_Fdbk
0

Dest Val_Fdbk
0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 78
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
SETTINGS PROCESSING
============================================================
The following two rungs check the Settings (Program Settings here, Operator
Settings below) to be sure they "make sense". They are limited unconditionally
in case Setting Tracking is disabled.
Program Setting of
Program Setting of
total quantity to
total quantity to
deliver (EU)
deliver (EU)
GRT
MOV
Greater Than (A>B)
Move
Source A
PSet_SP
Source Cfg_MaxQty
Dest PSet_SP
0.0
1.50000000e+038
0.0
Source B Cfg_MaxQty
1.50000000e+038
Program Setting of
total quantity to
deliver (EU)
LES
Less Than (A<B)
PSet_SP
Source A
0.0
Source B
0.0

Program Setting of
amount before total
to stop flow (EU)
GRT
Greater Than (A>B)
Source A PSet_Preact
0.0
Source B
PSet_SP
0.0

Program Setting of
total quantity to
deliver (EU)
CLR
Clear
PSet_SP
Dest
0.0

Program Setting of
amount before total
to stop flow (EU)
MOV
Move
Source PSet_SP
0.0

Program Setting of
amount before total
to stop flow (EU)
LES
Less Than (A<B)
Source A PSet_Preact
0.0
Source B
0.0

Program Setting of
quantity to dribble
(EU)
GRT
Greater Than (A>B)
Source A PSet_DribbleQty
0.0
Source B
PSet_SP
0.0
Program Setting of
quantity to dribble
(EU)
LES
Less Than (A<B)
Source A PSet_DribbleQty
0.0
Source B
0.0

Cfg_MaxQty

7(LEQ) 9(GRT) 9(MOV) 10(MOV) 10(GRT)

PSet_DribbleQty

*9(MOV) 9(GRT) 9(LES) *9(CLR) *11(MOV) 11(MOV)

Dest PSet_Preact
0.0

Program Setting of
amount before total
to stop flow (EU)
CLR
Clear
Dest
PSet_Preact
0.0

Program Setting of
quantity to dribble
(EU)
MOV
Move
Source PSet_SP
0.0

Dest PSet_DribbleQty
0.0

Program Setting of
quantity to dribble
(EU)
CLR
Clear
Dest PSet_DribbleQty
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!
PSet_Preact

*9(MOV) 9(GRT) 9(LES) *9(CLR) *11(MOV) 11(MOV) *22(MOV)

PSet_SP

*9(MOV) 9(LES) *9(CLR) 9(MOV) 9(GRT) *11(MOV) 11(MOV)

10

Page 79
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Operator Setting of
total quantity to
deliver (EU)
GRT
Greater Than (A>B)
Source A
OSet_SP
0.0
Source B Cfg_MaxQty
1.50000000e+038

Operator Setting of
total quantity to
deliver (EU)
MOV
Move
Source Cfg_MaxQty
1.50000000e+038

Operator Setting of
total quantity to
deliver (EU)
LES
Less Than (A<B)
Source A
OSet_SP
0.0
Source B
0.0

Operator Setting of
total quantity to
deliver (EU)
CLR
Clear
Dest
OSet_SP
0.0

Operator Setting of
amount before total
to stop flow (EU)
GRT
Greater Than (A>B)
Source A OSet_Preact
0.0
Source B
OSet_SP
0.0

Operator Setting of
amount before total
to stop flow (EU)
MOV
Move
Source OSet_SP
0.0

Operator Setting of
amount before total
to stop flow (EU)
LES
Less Than (A<B)
Source A OSet_Preact
0.0
Source B
0.0

Operator Setting of
quantity to dribble
(EU)
GRT
Greater Than (A>B)
Source A OSet_DribbleQty
0.0
Source B
OSet_SP
0.0

Dest OSet_SP
0.0

Dest OSet_Preact
0.0

Operator Setting of
amount before total
to stop flow (EU)
CLR
Clear
Dest
OSet_Preact
0.0

Operator Setting of
quantity to dribble
(EU)
MOV
Move
Source OSet_SP
0.0

Operator Setting of
quantity to dribble
(EU)
LES
Less Than (A<B)
Source A OSet_DribbleQty
0.0
Source B
0.0

Cfg_MaxQty

7(LEQ) 9(GRT) 9(MOV) 10(MOV) 10(GRT)

OSet_DribbleQty

*10(MOV) *10(CLR) 10(LES) 10(GRT) 11(MOV) *11(MOV)

OSet_Preact

10(GRT) 10(LES) *10(CLR) *10(MOV) 11(MOV) *11(MOV) *22(MOV)

OSet_SP

10(MOV) *10(CLR) *10(MOV) 10(LES) 10(GRT) *11(MOV) 11(MOV)

Dest OSet_DribbleQty
0.0

Operator Setting of
quantity to dribble
(EU)
CLR
Clear
Dest OSet_DribbleQty
0.0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 80
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 81
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


==========================================================
SETTINGS PROCESSING
==========================================================
This rung handles received Settings:

When the Mode is Program, use the Program Settings for the Quantities
Tolerances, etc., and (if so enabled) copy the Program Settings to the Operator S
for bumpless transition from Program to Operator.

When the Mode is Operator, use the Operator Settings for the Quantities
Tolerances, etc., and (if so enabled) copy the Operator Settings to the Program S
for bumpless transition from Operator to Program.

##### V2.0-00 2011-09-30: Added Cfg_OperKeep, Cfg_ProgKeep ####


Analog Input Mode
Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>
11

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.1
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.1

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.2
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.2

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.3
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.3

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 82
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

===================

===================

ngs for the Quantities,


tings to the Operator Settings

ngs for the Quantities,


tings to the Program Settings
Cfg_ProgKeep #####

Amount to be
delivered (Setpoint)
(EU)
MOV
Move
Source PSet_SP
0.0

Dest

Val_SP
0.0

Amount to be
delivered at slow
rate (EU)
MOV
Move
Source PSet_DribbleQty
0.0

Dest Val_DribbleQty
0.0

Amount before SP at
which flow will be
stopped (EU)
MOV
Move
Source PSet_Preact
0.0

Dest Val_Preact
0.0

Allowed Amount > SP


(EU)
MOV
Move
Source PSet_TolHi
0.0

Dest Val_TolHi
0.0

Allowed Amount < SP


(EU)
MOV

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 83
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.1
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.1

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.2
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.2

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.3
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 84
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


MOV
Move
Source PSet_TolLo
0.0

Dest Val_TolLo
0.0

Amount to be
delivered (Setpoint)
(EU)
MOV
Move
Source OSet_SP
0.0

Dest

Val_SP
0.0

Amount to be
delivered at slow
rate (EU)
MOV
Move
Source OSet_DribbleQty
0.0

Dest Val_DribbleQty
0.0

Amount before SP at
which flow will be
stopped (EU)
MOV
Move
Source OSet_Preact
0.0

Dest Val_Preact
0.0

Allowed Amount > SP


(EU)
MOV
Move
Source OSet_TolHi
0.0

Dest Val_TolHi
0.0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Page 85
22/12/2015 08,57,52
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.3

1=PSets track OSets


in Oper, OSets track
PSets in Prog, 0=no
tracking
Cfg_SetTrack

Operator Setting of
total quantity to
deliver (EU)
MOV
Move
Source

Operator Setting of
amount before total
to stop flow (EU)
MOV
Move
Source Val_Preact
0.0

Dest OSet_Preact
0.0

Val_SP
0.0

Dest OSet_SP
0.0

Operator Setting of
High Tolerance Limit
(OK amount > SP)
MOV
Move
Source Val_TolHi
0.0

Dest OSet_TolH

Program Setting of
total quantity to
deliver (EU)
MOV
Move
Source

Program Setting of
amount before total
to stop flow (EU)
MOV
Move
Source Val_Preact
0.0

Cfg_OperKeep.1

*6(OTU) 6(XIC) 11(XIO) 11(XIC) 51(XIC)

Cfg_OperKeep.2

*6(OTU) 6(XIC) 11(XIO) 11(XIC) 52(XIC)

Cfg_OperKeep.3

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 53(XIC)

Cfg_ProgKeep.1

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 51(XIO)

Cfg_ProgKeep.2

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 52(XIO)

Cfg_ProgKeep.3

6(XIC) *6(OTU) 11(XIO) 11(XIC) 53(XIO)

Cfg_SetTrack

11(XIC) 51(XIO) 52(XIO) 53(XIO)

Dest PSet_Preact
0.0

Val_SP
0.0

Dest PSet_SP
0.0

Program Setting of
High Tolerance Limit
(OK amount > SP)
MOV
Move
Source Val_TolHi
0.0

Dest PSet_TolH

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 86
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OSet_DribbleQty

*10(CLR) *10(MOV) 10(GRT) 10(LES) *11(MOV) 11(MOV)

OSet_Preact

10(LES) *10(MOV) *10(CLR) 10(GRT) *11(MOV) 11(MOV) *22(MOV)

OSet_SP

10(LES) 10(MOV) 10(GRT) *10(CLR) *10(MOV) *11(MOV) 11(MOV)

OSet_TolHi

*11(MOV) 11(MOV)

OSet_TolLo

11(MOV) *11(MOV)

PSet_DribbleQty

*9(CLR) 9(GRT) *9(MOV) 9(LES) *11(MOV) 11(MOV)

PSet_Preact

9(GRT) *9(CLR) *9(MOV) 9(LES) 11(MOV) *11(MOV) *22(MOV)

PSet_SP

9(MOV) *9(CLR) *9(MOV) 9(LES) 9(GRT) *11(MOV) 11(MOV)

PSet_TolHi

11(MOV) *11(MOV)

PSet_TolLo

11(MOV) *11(MOV)

Val_DribbleQty

*11(MOV) 11(MOV) 45(CMP) 46(CMP)

Val_Preact

*11(MOV) 11(MOV) *22(CPT) 22(MOV) 22(CPT) 45(CMP) 46(CMP) 48(CMP)

Val_SP

11(MOV) *11(MOV) 22(CMP) 22(CPT) 32(SUB) 33(LEQ) 33(CPT) 33(GRT) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Val_TolHi

11(MOV) *11(MOV) 22(CMP)

Val_TolLo

*11(MOV) 11(MOV) 22(CMP)

Allowed Amount < SP


(EU)
MOV
Move
Source OSet_TolLo
0.0

Dest Val_TolLo
0.0

Operator Setting of
quantity to dribble
(EU)
MOV
Move
Source Val_DribbleQty
0.0

Dest OSet_DribbleQty
0.0

Operator Setting of
Low Tolerance Limit
(OK amount < SP)
MOV
Move
Source Val_TolLo
0.0

OSet_TolHi
0.0

Dest OSet_TolLo
0.0

Program Setting of
quantity to dribble
(EU)
MOV
Move

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 87
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(EU)Normal Scan: control / monitor Dosing with Flowmeter


MOV
Move
Source Val_DribbleQty
0.0

Dest PSet_DribbleQty
0.0

Program Setting of
Low Tolerance Limit
(OK amount < SP)
MOV
PSet_TolHi
0.0

Move
Source Val_TolLo
0.0

Dest PSet_TolLo
0.0

======================================
CHECK INPUTS FOR INFINITE / N
======================================
This rung determines whether the Quantity PV Input
and whether the Rate PV Input is +/- Infinit

If the Quantity Input PV is an exception, if the quantity is not calcula


and if the rate IS calculated from the bad qu

12

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
U

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
U

If the Rate Input PV is an exception, if the rate is not calculated


and if the quantity IS calculated from the bad
Inp_QtyPV check for
Inp_QtyPV check for
Infinite or Not A
Infinite or Not A
Number
Number
COP
MEQ
Copy File
Mask Equal
Source Inp_QtyPV
Dest Wrk_QtyInpDINT
Source Wrk_QtyInpDINT
Length
1
16#0000_0000
Mask
16#7F80_0000
Compare 16#7F80_0000

Inp_RatePV check for


Infinite or Not A
Number
COP
Copy File
Source Inp_RatePV
Length
1

Dest Wrk_RateInpDINT

Inp_RatePV check for


Infinite or Not A
Number
MEQ
Mask Equal
Source Wrk_RateInpDINT
16#0000_0000
Mask
16#7F80_0000
Compare

Cfg_CalcQty

12(XIO) 12(XIC) 17(XIC) 17(XIO) 21(XIC) 21(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Cfg_CalcRate

12(XIC) 12(XIO) 25(XIO) 31(XIC) 34(XIO) 34(XIC) 36(XIO) 36(XIC)

16#7F80_0000

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 88
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_QtyPV

12(MOV) 12(COP) 26(LES) 26(GEQ) 26(CPT) 27(MOV) 30(MOV) 30(DIV)

Inp_RatePV

12(MOV) 12(COP) 25(MOV)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(EQU)
48(CMP) 50(LES)

Val_Rate

*12(MOV) *31(MOV)

Wrk_QtyInfNaN

*12(OTL) *12(OTU) 17(XIC) 21(XIC) 29(XIO) 30(XIO)

Wrk_QtyInpDINT

*12(COP) 12(MEQ)

Wrk_RateInfNaN

*12(OTL) *12(OTU) 25(XIO) 31(XIO) 34(XIC)

Wrk_RateInpDINT

*12(COP) 12(MEQ)

======================================
TS FOR INFINITE / NOT A NUMBER
======================================
he Quantity PV Input is +/-Infinity or +/- NotANumber,
e PV Input is +/- Infinity or +/- NotANumber.

quantity is not calculated from rate, the bad quantity is being used,
ulated from the bad quantity, the rate is bad.

rate is not calculated from quantity, the bad rate is being used,
culated from the bad rate, the quantity is bad.
1=integrate Inp_Rate
to get Quantity,
Quantity PV is
0=use Inp_Qty
Infinite or NaN
Cfg_CalcQty
Wrk_QtyInfNaN
/
L

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate
/

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
L

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
L

Wrk_RateInpDINT
16#0000_0000
16#7F80_0000
16#7F80_0000

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
L

Quantity actually
delivered (totalizer
output) (EU)
MOV
Move
Source Inp_QtyPV
0.0

Dest

Val_Qty
0.0

Current Delivery
Rate (EU/time) (see
Cfg_RateTime)
MOV
Move
Source Inp_QtyPV
0.0

Dest Val_Rate
0.0

Current Delivery
Rate (EU/time) (see
Cfg_RateTime)
MOV
Move
Source Inp_RatePV
0.0

Dest Val_Rate
0.0

Quantity actually
delivered (totalizer
output) (EU)
MOV
Move
Source Inp_RatePV
0.0

Dest

Val_Qty
0.0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 89
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
This rung processes received Reset Commands from:
1. The Operator via HMI Operator Command, or
2. Higher-level strategies via Program Command
3. Pushbuttons or other block via Input
and forwards the Reset to ALL Alarms and latched Shed conditions.
Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

13
Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Final Quantity Above


High Tolerance Alarm
Program Command to
Acknowledge alarm
OverTol.PCmd_Ack
<PCmd_OverTolAck>
L
Final Quantity Below
Low Tolerance Alarm
Program Command to
Acknowledge alarm
UnderTol.PCmd_Ack
<PCmd_UnderTolAck>
L
Rate Not Zero when
Expected Alarm
Program Command to
Acknowledge alarm
ZeroFault.PCmd_Ack
<PCmd_ZeroFaultAck>
L
Equipment (Sensor,
Controlled Equip.)
Fault Alarm Program
Command to
Acknowledge alarm
EqpFault.PCmd_Ack
<PCmd_EqpFaultAck>
L

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U
NOP

1=Reset all fault


conditions and
latched Alarms
Inp_Reset

Final Quantity Above


High Tolerance Alarm
Program Command to
Reset latched alarm
OverTol.PCmd_Reset
L

Final Quantity Below


Low Tolerance Alarm
Program Command to
Reset latched alarm
UnderTol.PCmd_Reset
L

Delivery is Over
Tolerance (too much)
Wrk_OverTol
U

Rate Not Zero when


Expected Alarm
Program Command to
Reset latched alarm
ZeroFault.PCmd_Reset
L

Delivery is Under
Tolerance (short)
Wrk_UnderTol
U

Equipment (Sensor,
Controlled Equip.)
Fault Alarm Program
Command to Reset
latched alarm
EqpFault.PCmd_Reset
L

Total did not clear


or moved off zero
Wrk_ZeroFault
U

Equipment Fault
(latched) stops
delivery and
requires reset
Wrk_EqpFault
U

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 90
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control


U / monitor Dosing withUFlowmeter

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

EqpFault.PCmd_Ack

*13(OTL)

EqpFault.PCmd_Reset

*13(OTL)

Inp_Reset

13(XIC)

OCmd_Reset

*13(OTU) 13(XIC)

OCmd_ResetAckAll

*13(OTU) 13(XIC)

OverTol.PCmd_Ack

*13(OTL)

OverTol.PCmd_Reset

*13(OTL)

PCmd_Reset

13(XIC) *13(OTU)

UnderTol.PCmd_Ack

*13(OTL)

UnderTol.PCmd_Reset

*13(OTL)

Wrk_EqpFault

*13(OTU) 21(XIC) *39(OTL) 40(XIC) 60(XIC)

Wrk_OverTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) 22(XIO) *22(OTU) *22(OTL) 48(XIC)

Wrk_UnderTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTL) 22(XIO) *22(OTU) 48(XIC)

Wrk_ZeroFault

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *43(OTL) *43(OTU) 48(XIC)

ZeroFault.PCmd_Ack

*13(OTL)

ZeroFault.PCmd_Reset

*13(OTL)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 91
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
COMMAND PROCESSING
============================================================
The rungs below handle received Commands.
Clear Val_Cmd in preparation.

14

Wrk_Cmd

##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Val_Cmd
CLR
Clear
Dest
Wrk_Cmd
0

*14(CLR) *16(MOV) *17(MOV) *42(MOV) *49(MOV) 49(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 92
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


OCmd_ClearTot / PCmd_ClearTot: Clear Totalizer Total
##### V2.0-00 2011-09-30: Separated Alarming (add Wrk_*** bits) #####

Operator Command to
Clear Totalizer Qty
OCmd_ClearTot
15

Cfg_OperKeep.0

Operator Command to
Clear Totalizer Qty
OCmd_ClearTot
U

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Command to
Clear Totalizer Qty
PCmd_ClearTot

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Program Command to
Clear Totalizer Qty
PCmd_ClearTot
U
NOP

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

1=Flow (full)(
should be running
Wrk_RunFlow
/

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
/

Request to Clear
Total received
Wrk_ClearTot
L

Do NOT auto-adjust
Preact if flow was
Bumped since
Clearing Totalizer
Wrk_BumpNoAdj
U

Delivery is Over
Tolerance (too much)
Wrk_OverTol
U

Total did not clear


or moved off zero
Wrk_ZeroFault
U

Delivery is Under
Tolerance (short)
Wrk_UnderTol
U

Delivery is In
Tolerance
Wrk_InTol
U

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIC) 16(XIO) 17(XIC) 17(XIO) 18(XIC) 18(XIO) 19(XIC) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 50(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 93
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIO) 18(XIC) 19(XIO) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 50(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_ClearTot

15(XIC) *15(OTU)

PCmd_ClearTot

*15(OTU) 15(XIC)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) *20(OTU) 20(XIC) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIO) 50(XIC)

Wrk_BumpNoAdj

*15(OTU) *19(OTL) 22(XIO) *22(OTL)

Wrk_ClearTot

*15(OTL) *18(OTU) *19(OTU) 42(XIC) *43(OTU) 43(XIC)

Wrk_InTol

*15(OTU) *18(OTU) *19(OTU) 22(XIC) *22(OTU) *22(OTL) 48(XIC)

Wrk_OverTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTU) *22(OTL) 22(XIO) 48(XIC)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIC) 50(XIO)

Wrk_UnderTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) 22(XIO) *22(OTU) *22(OTL) 48(XIC)

Wrk_ZeroFault

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *43(OTU) *43(OTL) 48(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 94
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


OCmd_StartTot / PCmd_StartTot: Start Totalizer
##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####

Operator Command to
Start Totalizer
OCmd_StartTot
16

Operator Command to
Start Totalizer
OCmd_StartTot
U

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Command to
Start Totalizer
PCmd_StartTot

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Program Command to
Start Totalizer
PCmd_StartTot
U
NOP

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0

1=Totalizaer should
be ruuuning
Wrk_RunTot
L

Buffer for building


Val_Cmd
MOV
Move
Source

Dest Wrk_Cmd
0

Cfg_OperKeep.0

*6(OTU) 6(XIC) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIC) 18(XIO) 19(XIC) 21(XIO) 21(XIC) 22(XIO) 22(XIC) 50(XIC)

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 17(XIC) 18(XIO) 18(XIC) 19(XIO) 21(XIO) 21(XIC) 22(XIO) 22(XIC) 50(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 95
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_StartTot

*16(OTU) 16(XIC)

PCmd_StartTot

16(XIC) *16(OTU)

Wrk_Cmd

*14(CLR) *16(MOV) *17(MOV) *42(MOV) 49(MOV) *49(MOV)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIC) 50(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 96
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


OCmd_StopTot / PCmd_StopTot: Stop Totalizer
##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####

Operator Command to
Stop Totalizer
OCmd_StopTot
17

Operator Command to
Stop Totalizer
OCmd_StopTot
U

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Command to
Stop Totalizer
PCmd_StopTot

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Program Command to
Stop Totalizer
PCmd_StopTot
U
NOP

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

1=Rate PV Input
Quality = Bad (fail)
Inp_RatePVBad

1=Quantity PV Input
Quality = Bad (fail)
Inp_QtyPVBad

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty
/

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN

1=Totalizaer should
be ruuuning
Wrk_RunTot
U

Buffer for building


Val_Cmd
MOV
Move
Source

Dest Wrk_Cmd

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 97
22/12/2015 08,57,53
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Source

Dest Wrk_Cmd
0

Cfg_CalcQty

12(XIC) 12(XIO) 17(XIC) 17(XIO) 21(XIO) 21(XIC) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Cfg_OperKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIO) 18(XIC) 19(XIC) 21(XIO) 21(XIC) 22(XIO) 22(XIC) 50(XIC)

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIC) 16(XIO) 17(XIO) 17(XIC) 18(XIC) 18(XIO) 19(XIO) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 50(XIO)

Inp_QtyPVBad

17(XIC) 21(XIC) 34(XIC)

Inp_RatePVBad

17(XIC) 21(XIC) 34(XIC)

Inp_Sim

8(XIO) 8(XIC) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_StopTot

17(XIC) *17(OTU)

PCmd_StopTot

*17(OTU) 17(XIC)

Wrk_Cmd

*14(CLR) *16(MOV) *17(MOV) *42(MOV) 49(MOV) *49(MOV)

Wrk_QtyInfNaN

*12(OTU) *12(OTL) 17(XIC) 21(XIC) 29(XIO) 30(XIO)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIO) 50(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 98
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


OCmd_StartFlow / PCmd_StartFlow: Start Dosing (flow)
##### V2.0-00 2011-09-30: Separated Alarming (add Wrk_*** bits) #####

Operator command to
Start Deliver
OCmd_StartFlow
18

Cfg_OperKeep.0

Operator command to
Start Deliver
OCmd_StartFlow
U

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Command to
Start Delivery
PCmd_StartFlow

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Program Command to
Start Delivery
PCmd_StartFlow
U
NOP

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
/

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0

1=Flow (full)(
should be running
Wrk_RunFlow
L

Request to Clear
Total received
Wrk_ClearTot
U

Delivery is Over
Tolerance (too much)
Wrk_OverTol
U

Total did not clear


or moved off zero
Wrk_ZeroFault
U

Delivery is Under
Tolerance (short)
Wrk_UnderTol
U

Delivery is In
Tolerance
Wrk_InTol
U

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIO) 17(XIC) 18(XIO) 18(XIC) 19(XIC) 21(XIO) 21(XIC) 22(XIC) 22(XIO) 50(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 99
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 17(XIC) 18(XIO) 18(XIC) 19(XIO) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 50(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_StartFlow

18(XIC) *18(OTU)

PCmd_StartFlow

*18(OTU) 18(XIC)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) *20(OTU) 20(XIC) *21(OTU) 45(XIC) 46(XIC) 48(XIO) 48(XIC) 50(XIO) 50(XIC)

Wrk_ClearTot

*15(OTL) *18(OTU) *19(OTU) 42(XIC) 43(XIC) *43(OTU)

Wrk_InTol

*15(OTU) *18(OTU) *19(OTU) *22(OTU) *22(OTL) 22(XIC) 48(XIC)

Wrk_OverTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTU) *22(OTL) 22(XIO) 48(XIC)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIC) 50(XIO)

Wrk_UnderTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTL) *22(OTU) 22(XIO) 48(XIC)

Wrk_ZeroFault

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *43(OTL) *43(OTU) 48(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 100
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


OCmd_Bump: Run / Dribble Flow to make up for under-tolerance.
If the Bump Timer Preset is NONZERO, bump for a fixed time ("Bump Time").
If the Bump Timer Preset is ZERO, bump until the bump command bit is turned
off (works like JOG on a drive).
##### V2.0-00 2011-09-30: Separated Alarming (add Wrk_*** bits) #####
Operator Command to
Bump Delivery for
Under Tolerance
OCmd_Bump
19

Bump Timer for shot


of flow to make up
Under Tolerance
NEQ
Not Equal
Source A Wrk_BumpT.PRE
0
Source B
0

Operator Command to
Bump Delivery for
Under Tolerance
OCmd_Bump
U

1=Flow (full)(
should be running
Wrk_RunFlow
/

NOP

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
L
Request to Clear
Total received
Wrk_ClearTot
U
Delivery is Over
Tolerance (too much)
Wrk_OverTol
U

Do NOT auto-adjust
Preact if flow was
Bumped since
Clearing Totalizer
Wrk_BumpNoAdj
L
Total did not clear
or moved off zero
Wrk_ZeroFault
U

Delivery is Under
Tolerance (short)
Wrk_UnderTol
U

Delivery is In
Tolerance
Wrk_InTol
U

Cfg_OperKeep.0

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIO) 17(XIC) 18(XIO) 18(XIC) 19(XIC) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 50(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 17(XIC) 18(XIC) 18(XIO) 19(XIO) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 50(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 101
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_Bump

*19(OTU) 19(XIC) 20(XIO)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) 20(XIC) *20(OTU) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIC) 50(XIO)

Wrk_BumpNoAdj

*15(OTU) *19(OTL) *22(OTL) 22(XIO)

Wrk_BumpT.PRE

*7(CLR) *7(MUL) 19(NEQ) 20(GRT) 20(EQU) 50(EQU)

Wrk_ClearTot

*15(OTL) *18(OTU) *19(OTU) 42(XIC) *43(OTU) 43(XIC)

Wrk_InTol

*15(OTU) *18(OTU) *19(OTU) *22(OTU) *22(OTL) 22(XIC) 48(XIC)

Wrk_OverTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTU) 22(XIO) *22(OTL) 48(XIC)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIC) 50(XIO)

Wrk_UnderTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) 22(XIO) *22(OTL) *22(OTU) 48(XIC)

Wrk_ZeroFault

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *43(OTL) *43(OTU) 48(XIC)

20

If a Bump Flow is running and the Bump Timer expires (non-zero preset, bump for time)
or the Bump Command is cleared (zero preset, bump like a JOG), stop bump flow.
Operator requested
Bump Timer for shot
bump flow to make up
of flow to make up
Under Tolerance
Under Tolerance
Wrk_BumpFlow
TON
Timer On Delay
Timer
Wrk_BumpT
Preset
0
Accum
0

EN
DN

Bump Timer for shot


of flow to make up
Under Tolerance
GRT
Greater Than (A>B)
Source A Wrk_BumpT.PRE
0
Source B
0

Bump Timer for shot


of flow to make up
Under Tolerance
Wrk_BumpT.DN

Bump Timer for shot


of flow to make up
Under Tolerance
EQU
Equal
Source A Wrk_BumpT.PRE
0
Source B
0

Operator Command to
Bump Delivery for
Under Tolerance
OCmd_Bump
/

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
U

OCmd_Bump

*19(OTU) 19(XIC) 20(XIO)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) 20(XIC) *20(OTU) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIO) 50(XIC)

Wrk_BumpT

*20(TON)

Wrk_BumpT.DN

20(XIC)

Wrk_BumpT.PRE

*7(CLR) *7(MUL) 19(NEQ) 20(GRT) 20(EQU) 50(EQU)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 102
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 103
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


OCmd_StopFlow / PCmd_StopFlow: Stop Dosing (flow)
If the input being used to calculate the Quantity (total) is BAD,
the Quantity is BAD (failed). If the Quantity is bad or
the controlled equipment sheds, or there is a
configuration error, we stop the delivery.
##### Revision 2.0-01 2011-11-10: Modified to correct #####
##### conditions which stop flow (Cfg_Err) #####

Operator Command to
Stop/Pause Delivery
OCmd_StopFlow
21

Operator Command to
Stop/Pause Delivery
OCmd_StopFlow
U

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Command to
Stop/Pause Delivery
PCmd_StopFlow

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Program Command to
Stop/Pause Delivery
PCmd_StopFlow
U
NOP

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0

1=Error: Bad
Configuration, see
detail Err bits for
reason
Sts_Err

1=Rate PV Input
Quality = Bad (fail)
Inp_RatePVBad

1=Quantity PV Input
Quality = Bad (fail)

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=Quantity Value is
Bad (PV Fail)
Sts_QtyBad

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 104
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal
/ monitor
Dosing with Flowmeter
Quality
= BadScan:
(fail) control 0=use
Inp_Qty
Inp_QtyPVBad
Cfg_CalcQty
/
Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN

Controlled Equipment
device or I/O status
0=OK, 1=fail
Inp_CtrldEqpFault

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=Stop delivery and


Alarm on Equipment
Fault; 0=Alarm only
on Equipment Fault
Cfg_ShedOnEqpFault

Equipment Fault
(latched) stops
delivery and
requires reset
Wrk_EqpFault

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
U

1=Flow (full)(
should be running
Wrk_RunFlow
U

Cfg_CalcQty

12(XIO) 12(XIC) 17(XIC) 17(XIO) 21(XIO) 21(XIC) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Cfg_OperKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIC) 18(XIO) 19(XIC) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 50(XIC)

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIC) 16(XIO) 17(XIO) 17(XIC) 18(XIO) 18(XIC) 19(XIO) 21(XIO) 21(XIC) 22(XIO) 22(XIC) 50(XIO)

Cfg_ShedOnEqpFault

21(XIC) 39(XIC)

Inp_CtrldEqpFault

21(XIC) 38(XIC)

Inp_QtyPVBad

17(XIC) 21(XIC) 34(XIC)

Inp_RatePVBad

17(XIC) 21(XIC) 34(XIC)

Inp_Sim

8(XIO) 8(XIC) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_StopFlow

*21(OTU) 21(XIC)

PCmd_StopFlow

21(XIC) *21(OTU)

Sts_Err

*7(OTE) 21(XIC) 40(XIC) 49(XIC) 50(XIO)

Sts_QtyBad

*21(OTE) 38(XIC) 40(XIC) 50(XIO)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) *20(OTU) 20(XIC) *21(OTU) 45(XIC) 46(XIC) 48(XIO) 48(XIC) 50(XIO) 50(XIC)

Wrk_EqpFault

*13(OTU) 21(XIC) *39(OTL) 40(XIC) 60(XIC)

Wrk_QtyInfNaN

*12(OTL) *12(OTU) 17(XIC) 21(XIC) 29(XIO) 30(XIO)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIC) 50(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 105
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

OCmd_CheckTol / PCmd_CheckTol: Check Tota


against Setpoint and Tolerances: Is delivery in to

##### V2.0-00 2011-09-30: Separated Alarming (add W

Operator Command to
Check Tolerances
OCmd_CheckTol
22

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Operator Command to
Check Tolerances
OCmd_CheckTol
U

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Program Command to
Check Tolerances
PCmd_CheckTol

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

Program Command to
Check Tolerances
PCmd_CheckTol
U
NOP

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0
/
Prog keeps control
in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0

1=Totalizer Clear
completed
Sts_Cleared
/

CMP
Compare
Expression Val_Qty>(Val_SP+Val_TolHi)

CMP
Compare
Expression Val_Qty<(Val_SP-Val_TolLo)
Delivery is Over
Tolerance (too much)

Delivery is Under
Tolerance (short)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 106
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

CheckTol: Check Total Quantity


ances: Is delivery in tolerance?

ated Alarming (add Wrk_*** bits) #####

Delivery is Over
Tolerance (too much)
Wrk_OverTol
U

Delivery is Under
Tolerance (short)
Wrk_UnderTol
U

Delivery is In
Tolerance
Wrk_InTol
U

Delivery is Over
Tolerance (too much)
Wrk_OverTol
L

Delivery is Under
Tolerance (short)
Wrk_UnderTol
L

Delivery is In
Tolerance

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 107
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal(too
Scan:
control Tolerance
/ monitor Dosing
Tolerance
much)
(short) with Flowmeter
Wrk_OverTol
Wrk_UnderTol
/
/
1=Enable automatic
adjustment of preact
after each delivery
Cfg_AutoAdjPreact

Do NOT auto-adjust
Preact if flow was
Bumped since
Clearing Totalizer
Wrk_BumpNoAdj
/

Do NOT auto-adjust
Preact if flow was
Bumped since
Clearing Totalizer
Wrk_BumpNoAdj
L

Delivery is In
Tolerance
Wrk_InTol

am

Move
Source Val_

Cfg_AutoAdjPct

5(LES) *5(CLR) 5(GRT) *5(MOV) 22(CPT)

Cfg_AutoAdjPreact

22(XIC)

Cfg_OperKeep.0

6(XIC) *6(OTU) 15(XIC) 15(XIO) 16(XIO) 16(XIC) 17(XIO) 17(XIC) 18(XIO) 18(XIC) 19(XIC) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 50(XIC)

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIO) 18(XIC) 19(XIO) 21(XIO) 21(XIC) 22(XIC) 22(XIO) 50(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

OCmd_CheckTol

*22(OTU) 22(XIC)

OSet_Preact

*10(MOV) 10(LES) 10(GRT) *10(CLR) *11(MOV) 11(MOV) *22(MOV)

PCmd_CheckTol

22(XIC) *22(OTU)

PSet_Preact

9(LES) 9(GRT) *9(CLR) *9(MOV) 11(MOV) *11(MOV) *22(MOV)

Sts_Cleared

22(XIO) *48(OTE) 50(XIO)

Val_Preact

*11(MOV) 11(MOV) 22(MOV) 22(CPT) *22(CPT) 45(CMP) 46(CMP) 48(CMP)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(EQU)
48(CMP) 50(LES)

Val_SP

11(MOV) *11(MOV) 22(CPT) 22(CMP) 32(SUB) 33(LEQ) 33(GRT) 33(CPT) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Val_TolHi

*11(MOV) 11(MOV) 22(CMP)

Val_TolLo

*11(MOV) 11(MOV) 22(CMP)

Wrk_BumpNoAdj

*15(OTU) *19(OTL) 22(XIO) *22(OTL)

Wrk_InTol

*15(OTU) *18(OTU) *19(OTU) 22(XIC) *22(OTU) *22(OTL) 48(XIC)

Wrk_OverTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTL) 22(XIO) *22(OTU) 48(XIC)

Wrk_UnderTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) 22(XIO) *22(OTL) *22(OTU) 48(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 108
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter Tolerance


Wrk_InTol
L
Amount before SP at
which flow will be
stopped (EU)
CPT
Compute
Expression Val_Preact-((Val_SP-Val_Qty)*Cfg_AutoAdjPct/100.0)

Program Setting of
amount before total
to stop flow (EU)
MOV
Val_Preact
0.0

Dest PSet_Preact
0.0

Dest Val_Preact
0.0

Operator Setting of
amount before total
to stop flow (EU)
MOV
Move
Source Val_Preact
0.0

Dest OSet_Preact
0.0

============================================================
VALUES PROCESSING
============================================================
In preparation for calculating Values (Rate, Quantity, Remaining),
this determines the time since the previous scan (used for
rate, totalizing functions).using a non-stop TON timer.
When we get here, we read the accumulator (in milliseconds, so
divide by 1000.0 to get seconds), then clear the accumulator. Next scan the accumulator will have
incremented up to the number of milliseconds since last scan. (Works for scan times up to 2 million seconds.....)
Scan Timer
(milliseconds,
always runs)
MOV
Move
Source 2147483647

23

Dest Wrk_ScanT.PRE
2147483647

Time since previous


scan (sec)
DIV
Divide
Source A Wrk_ScanT.ACC
0
Source B
1000.0

Wrk_ScanT

*23(TON)

Wrk_ScanT.ACC

*23(CLR) 23(DIV)

Wrk_ScanT.PRE

*23(MOV)

Wrk_ScanTime

*23(DIV) 28(CPT) 31(LEQ) 31(GRT) 31(CPT)

Dest Wrk_ScanTime
0.0

Scan Timer
(milliseconds,
always runs)
TON
Timer On Delay
Timer
Wrk_ScanT
Preset 2147483647
Accum
0

EN
DN

Scan Timer
(milliseconds,
always runs)
CLR
Clear
Dest Wrk_ScanT.ACC
0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 109
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


These two rungs select whether to use a Simulated flowmeter rate
or the actual flowmeter rate.
In simulation, start with the rate at zero. But if Flow is Running, use the full
simulation rate, and if Flow is Dribbling, use the dribble simulation rate.

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
24

NOTE: simulation ALWAYS uses the configured simulation rates to determine rate
and total, regardless of the configuration of Cfg_CalcRate and Cfg_CalcQty.
Instantaneous Rate
based on change in
Inp_Qty
CLR
Clear
Wrk_Rate
Dest
0.0
1=Flow is Running
(Out_Run is ON, Fdbk
shows Running)
Sts_FlowRunning

Instantaneous Rate
based on change in
Inp_Qty
MOV
Move
Source Cfg_SimRate
1.0

1=Flow is Dribbling
(Out_Dribble is ON,
Fdbk shows Dribble)
Sts_FlowDribble

Dest Wrk_Rate
0.0

Instantaneous Rate
based on change in
Inp_Qty
MOV
Move
Source Cfg_SimDribbleRate
0.1

Dest Wrk_Rate
0.0

Cfg_SimDribbleRate

7(LEQ) 24(MOV)

Cfg_SimRate

7(LEQ) 24(MOV)

Inp_Sim

8(XIO) 8(XIC) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Sts_FlowDribble

24(XIC) *48(OTE) 49(XIC)

Sts_FlowRunning

24(XIC) *48(OTE) 49(XIC)

Wrk_Rate

*24(MOV) *24(CLR) *25(MOV) 28(CPT) 28(LES) 31(CPT) 31(MOV) *31(CPT) *31(CLR)

25

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

If the Rate is not simulated, not calculated from changes in Quantity, and is
not Infinite or Not a Number, use it for the Rate in remaining calculations.
1=differentiate
Instantaneous Rate
Inp_Qty to get Rate,
Rate PV is Infinite
based on change in
0=use Inp_Rate
or NaN
Inp_Qty
Cfg_CalcRate
Wrk_RateInfNaN
MOV
/
/
Move
Source Inp_RatePV
Dest Wrk_Rate
0.0
0.0

Cfg_CalcRate

12(XIC) 12(XIO) 25(XIO) 31(XIC) 34(XIO) 34(XIC) 36(XIO) 36(XIC)

Inp_RatePV

12(COP) 12(MOV) 25(MOV)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Wrk_Rate

*24(CLR) *24(MOV) *25(MOV) 28(CPT) 28(LES) 31(CPT) *31(CPT) 31(MOV) *31(CLR)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!
Wrk_RateInfNaN

*12(OTU) *12(OTL) 25(XIO) 31(XIO) 34(XIC)

1=Totalizaer should
be ruuuning
Wrk_RunTot
26

Page 110
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty
/

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

Quantity Rollover
(e.g., max count for
pulse input)
GRT
Greater Than (A>B)
Source A Cfg_Rollover
0.0
Source B
0.0

If the Totalizer is Running,


simulated, and there
changed since last scan, a
The multiplier fo
Number of Counts in
Inp_QtyPV which
equal 1.0 EU
GRT
Greater Than (A>B)
Source A Cfg_Counts
Source B

Number of Counts in
Inp_QtyPV which
equal 1.0 EU
LEQ
Less Than or Eql (A<=B
Source A Cfg_Counts
Source B

Cfg_CalcQty

12(XIC) 12(XIO) 17(XIC) 17(XIO) 21(XIC) 21(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Cfg_CountsPerEU

7(LEQ) 26(CPT) 26(LEQ) 26(GRT) 30(DIV) 30(GRT) 30(LEQ)

Cfg_Rollover

7(LES) 26(GRT) 26(CPT) 29(GRT) 30(LEQ)

Inp_QtyPV

12(COP) 12(MOV) 26(LES) 26(GEQ) 26(CPT) 27(MOV) 30(DIV) 30(MOV)

Inp_Sim

8(XIO) 8(XIC) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Wrk_AmtToAdd

*26(CPT) *26(CLR) *28(CLR) *28(CPT) 29(ADD) 31(CPT)

Wrk_PrevQty

26(GEQ) 26(LES) 26(CPT) *27(MOV)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIC) 50(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 111
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Totalizer is Running, we're not using the Rate to calculate Quantity, the input is not
simulated, and there is a Rollover value, calculate how much the quantity has
ged since last scan, accounting for the input rolling over its maximum back to zero.
The multiplier for counts per EU must be valid (greater than zero).
Number of Counts in
Quantity from
Amount to add to
Flowmeter (EU or
Quantity this scan
Pulse Count)
based on Rate
LES
CPT
Less Than (A<B)
Compute
Cfg_CountsPerEU
Source A
Inp_QtyPV
Expression (Cfg_Rollover+Inp_QtyPV-Wrk_PrevQty)/Cfg_CountsPerEU
1.0
0.0
0.0
Source B Wrk_PrevQty
0.0
Quantity from
Flowmeter (EU or
Pulse Count)
GEQ
Grtr Than or Eql (A>=B)
Source A
Inp_QtyPV
0.0
Source B Wrk_PrevQty
0.0

Amount to add to
Quantity this scan
based on Rate
CPT
Compute
Expression (Inp_QtyPV-Wrk_PrevQty)/Cfg_CountsPerEU

Number of Counts in

ess Than or Eql (A<=B)


Cfg_CountsPerEU
1.0
0.0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 112
22/12/2015 08,57,54
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Dest Wrk_AmtToAdd
0.0

Dest Wrk_AmtToAdd
0.0

Amount to add to
Quantity this scan
based on Rate
CLR
Clear
Dest Wrk_AmtToAdd
0.0

27

Copy the current input to a "Previous Quantity" rung for use in the
difference calculations (CPTs) in the rung above next scan.
Previous scan's
Inp_QtyPV value
MOV
Move
Source Inp_QtyPV
Dest Wrk_PrevQty
0.0
0.0

Inp_QtyPV

12(COP) 12(MOV) 26(LES) 26(GEQ) 26(CPT) 27(MOV) 30(DIV) 30(MOV)

Wrk_PrevQty

26(LES) 26(GEQ) 26(CPT) *27(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 113
22/12/2015 08,57,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If the totalizer is running, and we are totalizing (integrating) t
calculate the amount to totalize this scan based on the

NOTE: the simulation rates are ALWAYS integrated to get get quan

1=Totalizaer should
be ruuuning
Wrk_RunTot

##### V2.0-03 2012-11-28: Since P_DoseFM can only deli


##### changed low cutoff to ignore ALL negative flow, n
Instantaneous Rate
based on change in
Inp_Qty
LES
Less Than (A<B)
Source A
Wrk_Rate
0.0
Source B Cfg_LoRateCutoff
0.0

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty

28
1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim

1=Rate PV below low


rate cutoff, flow
assumed to be zero
Sts_LoRateCutoff
/

Time factor for rate


(60 for /min, 3600
for /hr) (Sec)
GRT
Greater Than (A>B)
Source A Cfg_RateTime
1.0
Source B
0.0

Comp
Expre

Time factor for rate


(60 for /min, 3600
for /hr) (Sec)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_RateTime
1.0
Source B
0.0

Cfg_CalcQty

12(XIC) 12(XIO) 17(XIC) 17(XIO) 21(XIC) 21(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Cfg_EUQtyMult

7(LEQ) 28(CPT)

Cfg_LoRateCutoff

7(LES) 28(LES)

Cfg_RateTime

7(LEQ) 28(LEQ) 28(GRT) 28(CPT) 31(CPT)

Inp_Sim

8(XIO) 8(XIC) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Sts_LoRateCutoff

28(XIO) *28(OTE)

Wrk_AmtToAdd

*26(CLR) *26(CPT) *28(CPT) *28(CLR) 29(ADD) 31(CPT)

Wrk_Rate

*24(MOV) *24(CLR) *25(MOV) 28(CPT) 28(LES) *31(CPT) *31(CLR) 31(CPT) 31(MOV)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIC) 50(XIO)

Wrk_ScanTime

*23(DIV) 28(CPT) 31(CPT) 31(GRT) 31(LEQ)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 114
22/12/2015 08,57,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

otalizing (integrating) the Rate to get Quantity,


is scan based on the rate and scan time.

grated to get get quantity when running in simulation.

DoseFM can only deliver 'positive' flow, #####


e ALL negative flow, not use ABS(). #####
1=Rate PV below low
rate cutoff, flow
assumed to be zero
Sts_LoRateCutoff

Amount to add to
Quantity this scan
based on Rate
CLR
Clear
Dest Wrk_AmtToAdd
0.0

Amount to add to
Quantity this scan
based on Rate
CPT
Compute
Expression Wrk_Rate/Cfg_RateTime*Wrk_ScanTime*Cfg_EUQtyMult

Dest Wrk_AmtToAdd
0.0

Amount to add to
Quantity this scan
based on Rate
CLR
Clear
Dest Wrk_AmtToAdd
0.0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 115
22/12/2015 08,57,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Now for the cases where we are adding with the totalizer (not just using the quantity input d
add the amount this scan to the totalizer. We use TWO registers: an Integer for the wh
units and a Real for the fractional units. This lets us accumulate over 2 billion units
while still keeping the five- or six-digits accuracy after the decimal.

29

Quantity Rollover
(e.g., max count for
pulse input)
GRT
Greater Than (A>B)
Source A Cfg_Rollover
0.0
Source B
0.0

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
/

1=Totalizaer should
be ruuuning
Wrk_RunTot
Add
Source A
Source B

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty
1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim

Integer
Tot
(highcascade

Compute
Expression Wrk_HiOrderTot+(TRN(W

Fractiona
Totalizer
of ca
reg

Compute
Expression Wrk_LoOrderTot-(TRN(W

Cfg_CalcQty

12(XIO) 12(XIC) 17(XIC) 17(XIO) 21(XIO) 21(XIC) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIO) 35(XIC)

Cfg_Rollover

7(LES) 26(CPT) 26(GRT) 29(GRT) 30(LEQ)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Val_Qty

*12(MOV) 22(CMP) 22(CPT) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(EQU)
48(CMP) 50(LES)

Wrk_AmtToAdd

*26(CPT) *26(CLR) *28(CPT) *28(CLR) 29(ADD) 31(CPT)

Wrk_HiOrderTot

*29(CPT) 29(CPT) 29(ADD) *43(CLR)

Wrk_LoOrderTot

*29(ADD) 29(ADD) 29(CPT) *29(CPT) *43(CLR)

Wrk_QtyInfNaN

*12(OTL) *12(OTU) 17(XIC) 21(XIC) 29(XIO) 30(XIO)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIO) 50(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 116
22/12/2015 08,57,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

g the quantity input directly),


an Integer for the whole
Fractional Amount of
Totalizer (low-order
of cascaded
registers)
ADD
Wrk_AmtToAdd
0.0
Wrk_LoOrderTot
0.0

Dest Wrk_LoOrderTot
0.0

Integer Amount of
Totalizer
(high-order of
cascaded registers)
CPT

_HiOrderTot+(TRN(Wrk_LoOrderTot))

Dest Wrk_HiOrderTot
0

Fractional Amount of
Totalizer (low-order
of cascaded
registers)
CPT

_LoOrderTot-(TRN(Wrk_LoOrderTot))

Dest Wrk_LoOrderTot
0.0

Quantity actually
delivered (totalizer
output) (EU)
ADD
Add
Source A Wrk_LoOrderTot
0.0
Source B Wrk_HiOrderTot
0

Dest

Val_Qty
0.0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 117
22/12/2015 08,57,55
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


This rung handles the case where the Quantity input is used directly, for example, when
the flowmeter has a totalizer on board and we are using its total.

30

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty
/

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

Quantity Rollover
(e.g., max count for
pulse input)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_Rollover
0.0
Source B
0.0

Number of Counts in
Inp_QtyPV which
equal 1.0 EU
GRT
Greater Than (A>B)
Source A Cfg_CountsPerEU
1.0
Source B
0.0

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
/

Quantity actually
delivered (totalizer
output) (EU)
DIV
Divide
Source A

Inp_QtyPV
0.0
Source B Cfg_CountsPerEU
1.0

Number of Counts in
Inp_QtyPV which
equal 1.0 EU
LEQ
Less Than or Eql (A<=B)
Source A Cfg_CountsPerEU
1.0
Source B
0.0

Dest

Val_Qty
0.0

Quantity actually
delivered (totalizer
output) (EU)
MOV
Move
Source Inp_QtyPV
0.0

Dest

Val_Qty
0.0

Cfg_CalcQty

12(XIC) 12(XIO) 17(XIO) 17(XIC) 21(XIC) 21(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Cfg_CountsPerEU

7(LEQ) 26(LEQ) 26(GRT) 26(CPT) 30(GRT) 30(LEQ) 30(DIV)

Cfg_Rollover

7(LES) 26(CPT) 26(GRT) 29(GRT) 30(LEQ)

Inp_QtyPV

12(COP) 12(MOV) 26(LES) 26(GEQ) 26(CPT) 27(MOV) 30(MOV) 30(DIV)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(DIV) *30(MOV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(EQU)
48(CMP) 50(LES)

Wrk_QtyInfNaN

*12(OTU) *12(OTL) 17(XIC) 21(XIC) 29(XIO) 30(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 118
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If the Rate is to be calculated based on change in quantity, take the change in Quantity
calculated above, divide by scan time, adjust for per second, per minute, per hour (etc.),
and adjust for conversion of quantity units to rate units (e.g. GPM to BBL/Day...).
Then filter (1st order) based on the entered time constant.
If the rate is NOT to be calculated, just pass through the input Rate PV to the Val_Rate.

31

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
/

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate

If the input was +/-Infinity or Not a Number and it becomes a valid number,
initialize the filter to start from the first valid value.
Instantaneou
Time since previous
based on cha
scan (sec)
Inp_Qt
GRT
CPT
Greater Than (A>B)
Compute
Source A Wrk_ScanTime
Expression Wrk_AmtToAdd/Wrk_ScanTim
0.0
Source B
0.0

Time since previous


scan (sec)
LEQ
Less Than or Eql (A<=B)
Source A Wrk_ScanTime
0.0
Source B
0.0

Filter Time Constant


(sec) for calculated
Rate
GRT
Greater Than (A>B)
Source A Cfg_RateFiltTC
0.1
Source B
0.0

Filte
(1 /

Compute
Expression 1.0/(1.0+Wrk_Scan

Filter Time Constant


(sec) for calculated
Rate
LEQ
Less Than or Eql (A<=B)
Source A Cfg_RateFiltTC
0.1
Source B
0.0

Rate PV goes from


Infinite or Not a
Number to VALID
Wrk_ValidONS
ONS

Working regi
calculating f
delivery
CPT

Compute
Expression (Wrk_Alpha*Wrk_FiltRate)+((1.0-W

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 119
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Instantaneous Rate
based on change in
Inp_Qty
CPT

mtToAdd/Wrk_ScanTime*Cfg_RateTime

Dest Wrk_Rate
0.0

Instantaneous Rate
based on change in
Inp_Qty
CLR
Clear
Dest
Wrk_Rate
0.0

Filter multiplier =
(1 / (1+TC/dT) )
CPT
1.0/(1.0+Wrk_ScanTime/Cfg_RateFiltTC)

Dest Wrk_Alpha
0.0

Filter multiplier =
(1 / (1+TC/dT) )
CLR
Clear
Dest
Wrk_Alpha
0.0

Working register for


calculating filtered
delivery rate
MOV
Move
Source Wrk_Rate
0.0

Dest Wrk_FiltRate
0.0

Working register for


calculating filtered
delivery rate
CPT

Wrk_FiltRate)+((1.0-Wrk_Alpha)*Wrk_Rate)

Dest Wrk_FiltRate
0.0

Current Delivery
Rate (EU/time) (see
Cfg_RateTime)
MOV
Move
Source Wrk_FiltRate
0.0

Dest Val_Rate
0.0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 120
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Cfg_CalcRate

12(XIC) 12(XIO) 25(XIO) 31(XIC) 34(XIO) 34(XIC) 36(XIO) 36(XIC)

Cfg_RateFiltTC

7(LES) 31(GRT) 31(CPT) 31(LEQ)

Cfg_RateTime

7(LEQ) 28(GRT) 28(CPT) 28(LEQ) 31(CPT)

Val_Rate

*12(MOV) *31(MOV)

Wrk_Alpha

*31(CLR) 31(CPT) *31(CPT)

Wrk_AmtToAdd

*26(CLR) *26(CPT) *28(CLR) *28(CPT) 29(ADD) 31(CPT)

Wrk_FiltRate

31(MOV) 31(CPT) *31(MOV) *31(CPT)

Wrk_Rate

*24(CLR) *24(MOV) *25(MOV) 28(LES) 28(CPT) *31(CLR) *31(CPT) 31(CPT) 31(MOV)

Wrk_RateInfNaN

*12(OTU) *12(OTL) 25(XIO) 31(XIO) 34(XIC)

Wrk_ScanTime

*23(DIV) 28(CPT) 31(CPT) 31(LEQ) 31(GRT)

Wrk_ValidONS

*31(ONS)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 121
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

We have Rate, Quantity and Setpoint all determined above.


Now find the quantity yet to be delivered (Val_Remain).
Amount yet to
deliver to reach
Setpoint (EU)
SUB
Subtract
Source A

32

Source B

Val_SP
0.0
Val_Qty
0.0

Dest Val_Remain
0.0

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(CMP)
48(EQU) 50(LES)

Val_Remain

*32(SUB)

Val_SP

11(MOV) *11(MOV) 22(CMP) 22(CPT) 32(SUB) 33(CPT) 33(GRT) 33(LEQ) 45(CMP) 46(CMP) 48(CMP) 50(LES)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 122
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


This rung gives us a Percent Complete value that is between zero and 100%,
and always makes sense based on the Setpoint and actual quantity delivered.
Amount to be
Percent Complete
delivered (Setpoint)
calculation
(EU)
intermediate
GRT
CPT
Greater Than (A>B)
Compute
Source A
Val_SP
Expression 100.0*Val_Qty/Val_SP
Dest Wrk_PctComplete
0.0
0.0
Source B
0.0

33

Amount to be
delivered (Setpoint)
(EU)
LEQ
Less Than or Eql (A<=B)
Source A
Val_SP
0.0
Source B
0.0

Percent Complete
calculation
intermediate
MOV
Move
Source

100.0

Percent Complete
calculation
intermediate
LES
Less Than (A<B)
Source A Wrk_PctComplete
0.0
Source B
0.0

Percent Complete
calculation
intermediate
GRT
Greater Than (A>B)
Source A Wrk_PctComplete
0.0
Source B
100.0

Dest Wrk_PctComplete
0.0

Percent Complete
calculation
intermediate
CLR
Clear
Dest Wrk_PctComplete
0.0

Percent Complete
calculation
intermediate
MOV
Move
Source

100.0

Dest Wrk_PctComplete
0.0

Percent Complete
(for Progress Bar on
HMI) 0.0 to 100.0%
MOV
Move
Source Wrk_PctComplete
0.0

Dest Val_PctComplete
0.0

Val_PctComplete

*33(MOV)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(EQU) 43(NEQ) 45(CMP) 46(CMP) 48(CMP)
48(EQU) 50(LES)

Val_SP

*11(MOV) 11(MOV) 22(CPT) 22(CMP) 32(SUB) 33(CPT) 33(LEQ) 33(GRT) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Wrk_PctComplete

33(GRT) 33(LES) 33(MOV) *33(CLR) *33(CPT) *33(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

34

Page 123
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
EQUIPMENT FAULT DETERMINATION
============================================================
If the input being used to calculate the Rate (flow) is BAD, the Rate is BAD (failed).
1=differentiate
1=Simulate working
1=Quantity PV Input
Inp_Qty to get Rate,
flowmeter; 0=use
Quality = Bad (fail)
0=use Inp_Rate
actual flowmeter
Inp_QtyPVBad
Cfg_CalcRate
Inp_Sim
/
1=Rate PV Input
Quality = Bad (fail)
Inp_RatePVBad

1=Rate Value is Bad


(PV Fail)
Sts_RateBad

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate
/

Rate PV is Infinite
or NaN
Wrk_RateInfNaN

Cfg_CalcRate

12(XIC) 12(XIO) 25(XIO) 31(XIC) 34(XIO) 34(XIC) 36(XIC) 36(XIO)

Inp_QtyPVBad

17(XIC) 21(XIC) 34(XIC)

Inp_RatePVBad

17(XIC) 21(XIC) 34(XIC)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Sts_RateBad

*34(OTE) 50(XIO)

Wrk_RateInfNaN

*12(OTU) *12(OTL) 25(XIO) 31(XIO) 34(XIC)

35

If the input being used to calculate the Quantity (total) is UNCERTAIN, the Quantity is UNCERTAIN.
1=integrate Inp_Rate
1=Simulate working
to get Quantity,
flowmeter; 0=use
1=Rate PV Input
1=Quantity Value is
0=use Inp_Qty
actual flowmeter
Quality = Uncertain
Uncertain
Cfg_CalcQty
Inp_Sim
Inp_RatePVUncertain
Sts_QtyUncertain
/
1=Quantity PV Input
Quality = Uncertain
Inp_QtyPVUncertain

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty
/

Cfg_CalcQty

12(XIO) 12(XIC) 17(XIC) 17(XIO) 21(XIO) 21(XIC) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 35(XIC) 35(XIO)

Inp_QtyPVUncertain

35(XIC) 36(XIC)

Inp_RatePVUncertain

35(XIC) 36(XIC)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Sts_QtyUncertain

*35(OTE)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

36

Page 124
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If the input being used to calculate the Rate (flow) is UNCERTAIN, the Rate is UNCERTAIN.
1=differentiate
1=Simulate working
1=Rate PV Input
1=Rate Value is
Inp_Qty to get Rate,
flowmeter; 0=use
Quality = Uncertain
Uncertain
0=use Inp_Rate
actual flowmeter
Inp_RatePVUncertain
Sts_RateUncertain
Cfg_CalcRate
Inp_Sim
/
/
1=Quantity PV Input
Quality = Uncertain
Inp_QtyPVUncertain

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate

Cfg_CalcRate

12(XIO) 12(XIC) 25(XIO) 31(XIC) 34(XIO) 34(XIC) 36(XIC) 36(XIO)

Inp_QtyPVUncertain

35(XIC) 36(XIC)

Inp_RatePVUncertain

35(XIC) 36(XIC)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Sts_RateUncertain

*36(OTE)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 125
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If we have equipment feedback and are not running in simulation,
and if the Fault Time is set to a number other than 0,
check the equipment feedback to see if the equipment
is following the output that is commanding it.
If the equipment state doesn't match the output state, run the Fault timer.
##### V2.0-00 2011-09-30: Added Equipment Feedback and Fault Timer #####
1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk
37

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=Stop Delivery
Equipment
Out_StopFlow

1=Deliver at Full
(fast) Flow
Out_RunFlow

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow

Time for Equipment


Feedback to follow
Output before Fault
(sec)
GRT
Greater Than (A>B)
Source A Cfg_FaultT
10
Source B
0

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
NEQ
Not Equal
Val_Fdbk
Source A
0
Source B
1

Timer for Equipment


Fault (Feedback not
matching output)
TON
Timer On Delay
Timer
Wrk_FaultT
Preset
0
Accum
0

EN
DN

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
2

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
3

Cfg_FaultT

7(MUL) 37(GRT)

Cfg_HasEqpFdbk

3(XIO) 4(XIC) 8(XIC) 8(XIO) 37(XIC)

Inp_Sim

8(XIC) 8(XIO) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Out_DribbleFlow

8(XIO) 8(XIC) 37(XIC) *46(OTE) 47(XIO) 48(XIC)

Out_RunFlow

8(XIC) 8(XIO) 37(XIC) *45(OTE) 47(XIO) 48(XIC)

Out_StopFlow

37(XIC) *47(OTE) 48(XIC)

Val_Fdbk

*8(MOV) 37(NEQ) 48(EQU) 48(NEQ)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!
Wrk_FaultT

Page 126
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*37(TON)

If the controlled equipment faults, or if the input being used to control quantity fails,
or if the equipment feedback is being used and the equipment is not going
to the commanded state, show an Equipment Fault (and alarm).
##### V2.0-00 2011-09-30: Removed Sts_RateBad #####
##### (doesn't matter for quantity), added Fault Time done. #####
1=Equipment Fault
Detected
Sts_EqpFault
<EqpFault.Inp>

1=Quantity Value is
Bad (PV Fail)
Sts_QtyBad
38
Controlled Equipment
device or I/O status
0=OK, 1=fail
Inp_CtrldEqpFault

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

Timer for Equipment


Fault (Feedback not
matching output)
Wrk_FaultT.DN

Inp_CtrldEqpFault

21(XIC) 38(XIC)

Inp_Sim

8(XIO) 8(XIC) 17(XIO) 21(XIO) 24(XIC) 25(XIO) 26(XIO) 28(XIC) 29(XIC) 30(XIO) 34(XIO) 35(XIO) 36(XIO) 37(XIO) 38(XIO)

Sts_EqpFault

*38(OTE) 39(XIC) 49(XIC) 60(XIO)

Sts_QtyBad

*21(OTE) 38(XIC) 40(XIC) 50(XIO)

Wrk_FaultT.DN

38(XIC)

============================================================
SHED ON FAULT LOGIC
============================================================
This rung handles latching in of conditions which are configured to cause
motor to shed (de-energize).

1=Equipment Fault
Detected
Sts_EqpFault
<EqpFault.Inp>

##### V2.0-00 2011-09-30 : New rung, new Shed function added #####
1=Stop delivery and
Alarm on Equipment
Fault; 0=Alarm only
on Equipment Fault
Cfg_ShedOnEqpFault

39

Cfg_ShedOnEqpFault

21(XIC) 39(XIC)

Sts_EqpFault

*38(OTE) 39(XIC) 49(XIC) 60(XIO)

Wrk_EqpFault

*13(OTU) 21(XIC) *39(OTL) 40(XIC) 60(XIC)

Equipment Fault
(latched) stops
delivery and
requires reset
Wrk_EqpFault
L

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 127
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


The dosing is NOT READY to be controlled (by the owner specified by Mode) if it has
a bad Quantity input or if the controlled dosing equipment is Faulted.
Equipment Fault
(latched) stops
delivery and
requires reset
Wrk_EqpFault

1=Device is Not
Ready to be operated
Sts_NotRdy

40
1=Quantity Value is
Bad (PV Fail)
Sts_QtyBad
1=Error: Bad
Configuration, see
detail Err bits for
reason
Sts_Err

Sts_Err

*7(OTE) 21(XIC) 40(XIC) 49(XIC) 50(XIO)

Sts_NotRdy

*40(OTE) 41(XIO) 45(XIO) 46(XIO) 50(XIO)

Sts_QtyBad

*21(OTE) 38(XIC) 40(XIC) 50(XIO)

Wrk_EqpFault

*13(OTU) 21(XIC) *39(OTL) 40(XIC) 60(XIC)

The dosing is AVAILABLE to be controlled by other objects


if it IS in Program Mode and it IS NOT "Not Ready".
Analog Input Mode
Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>
41

1=Device is Not
Ready to be operated
Sts_NotRdy
/

1=Dosing available
for control by
automation (Prog)
Sts_Available

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Sts_Available

*41(OTE)

Sts_NotRdy

*40(OTE) 41(XIO) 45(XIO) 46(XIO) 50(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 128
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
OUTPUT HANDLING
============================================================
This rung generates the Out_ClearTot signal
to clear an external Totalizer (say, on board a fieldbus flowmeter).

42

##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Time to pulse
Request to Clear
Out_Clear to clear
Total received
external timer
Wrk_ClearTot
TON
Timer On Delay
EN
Timer Wrk_ClearPulseT
DN
Time to pulse
Preset
1000
Out_Clear to clear
Accum
0
external timer
Wrk_ClearPulseT.TT
1=Reset external
totalizer (e.g.
Buffer for building
onboard flowmeter)
Val_Cmd
Out_ClearTot
MOV
Move
Source
1
Dest Wrk_Cmd
0

Out_ClearTot

*42(OTE)

Wrk_ClearPulseT

*42(TON)

Wrk_ClearPulseT.TT

42(XIC)

Wrk_ClearTot

*15(OTL) *18(OTU) *19(OTU) 42(XIC) *43(OTU) 43(XIC)

Wrk_Cmd

*14(CLR) *16(MOV) *17(MOV) *42(MOV) *49(MOV) 49(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Request to Clear
Total received
Wrk_ClearTot
43

Page 129
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


This rung clears the internal totalizer used when we only have a rate input.
When the totalizer clear pulse is complete, this rung makes sure the reported total coming
back from the device is zero (or the internal totalizer cleared and did not count up).
Integer Amount of
Fractional Amount of
Totalizer
Totalizer (low-order
(high-order of
of cascaded
cascaded registers)
registers)
CLR
CLR
Clear
Clear
Dest Wrk_HiOrderTot
Dest Wrk_LoOrderTot
0
0.0

Time to pulse
Out_Clear to clear
external timer
Wrk_ClearPulseT.DN
Quantity actually
delivered (totalizer
output) (EU)
EQU
Equal
Val_Qty
Source A
0.0
Source B
0.0

Total did not clear


or moved off zero
Wrk_ZeroFault
U

Request to Clear
Total received
Wrk_ClearTot
U
Quantity actually
delivered (totalizer
output) (EU)
NEQ
Not Equal
Source A
Val_Qty
0.0
Source B
0.0

Total did not clear


or moved off zero
Wrk_ZeroFault
L

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(DIV) *30(MOV) 32(SUB) 33(CPT) 43(EQU) 43(NEQ) 45(CMP) 46(CMP) 48(CMP)
48(EQU) 50(LES)

Wrk_ClearPulseT.DN

43(XIC)

Wrk_ClearTot

*15(OTL) *18(OTU) *19(OTU) 42(XIC) 43(XIC) *43(OTU)

Wrk_HiOrderTot

29(CPT) *29(CPT) 29(ADD) *43(CLR)

Wrk_LoOrderTot

*29(CPT) *29(ADD) 29(ADD) 29(CPT) *43(CLR)

Wrk_ZeroFault

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *43(OTU) *43(OTL) 48(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 130
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If the totalizer should be running, tell the device, in case we are using a totalizer on board the meter.
1=Run external
1=Totalizaer should
totalizer (e.g.
be ruuuning
onboard flowmeter)
Wrk_RunTot
Out_RunTot
44

Out_RunTot

*44(OTE) 48(XIC)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIO) 50(XIC)

If flow should be running (and not dribbling), tell the controlled equipment to run.

1=Flow (full)(
should be running
Wrk_RunFlow

1=Slow to Dribble
before complete,
0=Run full flow
until complete
Cfg_HasDribble

45

1=Slow to Dribble
before complete,
0=Run full flow
until complete
Cfg_HasDribble
/

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow

CMP
Compare
Expression Val_Qty<(Val_SP-Val_Preact-Val_DribbleQty)

CMP
Compare
Expression Val_Qty<(Val_SP-Val_Preact)

1=Slow to Dribble
before complete,
0=Run full flow
until complete
Cfg_HasDribble
/

1=Device is Not
Ready to be operated
Sts_NotRdy
/

1=Deliver at Full
(fast) Flow
Out_RunFlow

Cfg_HasDribble

45(XIO) 45(XIC) 46(XIC)

Out_RunFlow

8(XIO) 8(XIC) 37(XIC) *45(OTE) 47(XIO) 48(XIC)

Sts_NotRdy

*40(OTE) 41(XIO) 45(XIO) 46(XIO) 50(XIO)

Val_DribbleQty

11(MOV) *11(MOV) 45(CMP) 46(CMP)

Val_Preact

11(MOV) *11(MOV) 22(CPT) 22(MOV) *22(CPT) 45(CMP) 46(CMP) 48(CMP)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(DIV) *30(MOV) 32(SUB) 33(CPT) 43(EQU) 43(NEQ) 45(CMP) 46(CMP) 48(EQU)
48(CMP) 50(LES)

Val_SP

11(MOV) *11(MOV) 22(CPT) 22(CMP) 32(SUB) 33(GRT) 33(LEQ) 33(CPT) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) 20(XIC) *20(OTU) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIC) 50(XIO)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIC) 50(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 131
22/12/2015 08,57,56
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If the flow should be dribbling (on running or bumping), tell the controlled equipment to run at the dribble rate.
1=Slow to Dribble
before complete,
0=Run full flow
until complete
Cfg_HasDribble

1=Flow (full)(
should be running
Wrk_RunFlow

46

CMP
Compare
Expression Val_Qty>=(Val_SP-Val_Preact-Val_DribbleQty)

CMP
Compare
Expression Val_Qty<(Val_SP-Val_Preact)
Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow

1=Device is Not
Ready to be operated
Sts_NotRdy
/

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow

Cfg_HasDribble

45(XIC) 45(XIO) 46(XIC)

Out_DribbleFlow

8(XIO) 8(XIC) 37(XIC) *46(OTE) 47(XIO) 48(XIC)

Sts_NotRdy

*40(OTE) 41(XIO) 45(XIO) 46(XIO) 50(XIO)

Val_DribbleQty

11(MOV) *11(MOV) 45(CMP) 46(CMP)

Val_Preact

*11(MOV) 11(MOV) 22(MOV) *22(CPT) 22(CPT) 45(CMP) 46(CMP) 48(CMP)

Val_Qty

*12(MOV) 22(CMP) 22(CPT) *29(ADD) *30(DIV) *30(MOV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(CMP)
48(EQU) 50(LES)

Val_SP

11(MOV) *11(MOV) 22(CMP) 22(CPT) 32(SUB) 33(GRT) 33(LEQ) 33(CPT) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) *20(OTU) 20(XIC) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIC) 50(XIO)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIO) 50(XIC)

47

1=Deliver at Full
(fast) Flow
Out_RunFlow
/

If not dribbling, not bumping, not flowing, tell the controlled equipment to stop.
1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow
/

Out_DribbleFlow

8(XIC) 8(XIO) 37(XIC) *46(OTE) 47(XIO) 48(XIC)

Out_RunFlow

8(XIC) 8(XIO) 37(XIC) *45(OTE) 47(XIO) 48(XIC)

Out_StopFlow

37(XIC) *47(OTE) 48(XIC)

1=Stop Delivery
Equipment
Out_StopFlow

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 132
22/12/2015 08,57,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


The following rungs generate Status bits (not already generated above) for this object.

48

Quantity actually
delivered (totalizer
output) (EU)
EQU
Equal
Source A
Val_Qty
0.0
Source B
0.0

1=Totalizer Clear
completed
Sts_Cleared

1=Run external
totalizer (e.g.
onboard flowmeter)
Out_RunTot

1=Stop Delivery
Equipment
Out_StopFlow

1=Totalizer Running,
0=Totalizer Stopped
Sts_TotRunning
Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
EQU
Equal
Source A
Val_Fdbk
0
Source B
1

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
NEQ
Not Equal
Val_Fdbk
Source A
0
Source B
1

1=Deliver at Full
(fast) Flow
Out_RunFlow

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
EQU
Equal
Source A
Val_Fdbk
0
Source B
2

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
2

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
EQU
Equal
Source A
Val_Fdbk
0
Source B
3

1=Flow is Stopped
(Out_Stop is ON,
Fdbk shows Stopped)
Sts_FlowStopped

1=Flow is Stopping
(Out_Stop is ON,
Fdbk not showing
Stopped)
Sts_FlowStopping

1=Flow is Running
(Out_Run is ON, Fdbk
shows Running)
Sts_FlowRunning

1=Flow is Starting
(Out_Run is ON, Fdbk
not showing Run)
Sts_FlowStarting

1=Flow is Dribbling
(Out_Dribble is ON,
Fdbk shows Dribble)
Sts_FlowDribble

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 133
22/12/2015 08,57,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
3

1=Dribble Starting
(Out_Dribble is ON,
Fdbk not showing
Dribble)
Sts_DribbleStarting

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow

CMP
Compare
Expression Val_Qty>=(Val_SP-Val_Preact)

1=Bump flow is
active
Sts_Bumping

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
/

1=Flow (full)(
should be running
Wrk_RunFlow
U

1=Total Delivered >


(SP - Preact)
Sts_Complete

Delivery is Over
Tolerance (too much)
Wrk_OverTol

1=Delivery Out of
Tolerance High
Sts_OverTol
<OverTol.Inp>

Delivery is Under
Tolerance (short)
Wrk_UnderTol

1=Delivery Out of
Tolerance Low
Sts_UnderTol
<UnderTol.Inp>

Delivery is In
Tolerance
Wrk_InTol

1=Total Delivered is
Within Tolerances
Sts_InTol

Total did not clear


or moved off zero
Wrk_ZeroFault

1=Total did not


clear or unexpected
flow
Sts_ZeroFault
<ZeroFault.Inp>

Out_DribbleFlow

8(XIO) 8(XIC) 37(XIC) *46(OTE) 47(XIO) 48(XIC)

Out_RunFlow

8(XIO) 8(XIC) 37(XIC) *45(OTE) 47(XIO) 48(XIC)

Out_RunTot

*44(OTE) 48(XIC)

Out_StopFlow

37(XIC) *47(OTE) 48(XIC)

Sts_Bumping

*48(OTE) 49(XIC)

Sts_Cleared

22(XIO) *48(OTE) 50(XIO)

Sts_Complete

*48(OTE) 50(XIO)

Sts_DribbleStarting

*48(OTE) 49(XIC)

Sts_FlowDribble

24(XIC) *48(OTE) 49(XIC)

Sts_FlowRunning

24(XIC) *48(OTE) 49(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!

Page 134
22/12/2015 08,57,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_FlowStarting

*48(OTE) 49(XIC)

Sts_FlowStopped

*48(OTE) 49(XIC)

Sts_FlowStopping

*48(OTE) 49(XIC)

Sts_InTol

*48(OTE)

Sts_OverTol

*48(OTE)

Sts_TotRunning

*48(OTE) 49(XIC)

Sts_UnderTol

*48(OTE)

Sts_ZeroFault

*48(OTE)

Val_Fdbk

*8(MOV) 37(NEQ) 48(NEQ) 48(EQU)

Val_Preact

11(MOV) *11(MOV) 22(CPT) 22(MOV) *22(CPT) 45(CMP) 46(CMP) 48(CMP)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(NEQ) 43(EQU) 45(CMP) 46(CMP) 48(EQU)
48(CMP) 50(LES)

Val_SP

*11(MOV) 11(MOV) 22(CPT) 22(CMP) 32(SUB) 33(CPT) 33(GRT) 33(LEQ) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) 20(XIC) *20(OTU) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIC) 50(XIO)

Wrk_InTol

*15(OTU) *18(OTU) *19(OTU) *22(OTU) *22(OTL) 22(XIC) 48(XIC)

Wrk_OverTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTL) 22(XIO) *22(OTU) 48(XIC)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIO) 50(XIC)

Wrk_UnderTol

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *22(OTU) *22(OTL) 22(XIO) 48(XIC)

Wrk_ZeroFault

*13(OTU) *15(OTU) *18(OTU) *19(OTU) *43(OTL) *43(OTU) 48(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 135
22/12/2015 08,57,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


This rung generates the enumerated Device Status:
0 = PowerUp/Reset
1 = Stopped
2 = Totalizing
3 = Delivering
4 = Dribbling
5 = Bumping
6 = Starting Delivery
7 = Starting Dribble
8 = Stopping
33 = Disabled (here or in EnableInFalse routine)
And this rung generates the enumerated Device Fault Status:
0 = none
17 = Equipment Fault
34 = Configuration Error
##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Buffer for building
Val_Sts
Val_Fault
CLR
CLR
Clear
Clear
Dest
Wrk_Sts
Dest
Wrk_Fault
0
0

49

1=Flow is Stopped
(Out_Stop is ON,
Fdbk shows Stopped)
Sts_FlowStopped

Buffer for building


Val_Sts
MOV
Move
Source

1=Totalizer Running,
0=Totalizer Stopped
Sts_TotRunning

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Flow is Running
(Out_Run is ON, Fdbk
shows Running)
Sts_FlowRunning

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Flow is Dribbling
(Out_Dribble is ON,
Fdbk shows Dribble)
Sts_FlowDribble

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Bump flow is
active
Sts_Bumping

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Dest

Wrk_Sts
0

Buffer for building


Val_Cmd
MOV
Wrk_Sts
0

Move
Source

1=Flow is Starting
(Out_Run is ON, Fdbk
not showing Run)
Sts_FlowStarting

Dest Wrk_Cmd
0

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Wrk_Sts
0

Buffer for building


Val_Cmd
MOV
Move
Source

Dest Wrk_Cmd

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 136
22/12/2015 08,57,57
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Source

1=Dribble Starting
(Out_Dribble is ON,
Fdbk not showing
Dribble)
Sts_DribbleStarting

Dest Wrk_Cmd
0

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Wrk_Sts
0

Buffer for building


Val_Cmd
MOV
Move
Source

1=Flow is Stopping
(Out_Stop is ON,
Fdbk not showing
Stopped)
Sts_FlowStopping

Dest Wrk_Cmd
0

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Wrk_Sts
0

Buffer for building


Val_Cmd
MOV
Move
Source

1=Equipment Fault
Detected
Sts_EqpFault
<EqpFault.Inp>

Dest Wrk_Cmd
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Error: Bad
Configuration, see
detail Err bits for
reason
Sts_Err

17

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

Dosing Command
0=None, 1=ClrTot,
2=StartTot,
3=StartFlow,
4=StartDrib, 5=Bump,
6=StopFlow,
7=StopTot
MOV
Move
Source Wrk_Cmd
0

Dest Val_Cmd
0

34

Dest Wrk_Fault
0

Dosing Confirmed Sts


0=? 1=Stop,
2=TotRun, 3=FlowRun,
4=Dribble, 5=Bump
6=StartFlow,
7=StartDrib,
8=Stopping,
33=Disabled
MOV
Move
Source

Wrk_Sts
0

Dest

Val_Sts
0

Device Fault Status


0=None,
17=EquipmentFault,
34=CfgErr
MOV
Move
Source Wrk_Fault
0

Dest Val_Fault
0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 137
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


0

Sts_Bumping

*48(OTE) 49(XIC)

Sts_DribbleStarting

*48(OTE) 49(XIC)

Sts_EqpFault

*38(OTE) 39(XIC) 49(XIC) 60(XIO)

Sts_Err

*7(OTE) 21(XIC) 40(XIC) 49(XIC) 50(XIO)

Sts_FlowDribble

24(XIC) *48(OTE) 49(XIC)

Sts_FlowRunning

24(XIC) *48(OTE) 49(XIC)

Sts_FlowStarting

*48(OTE) 49(XIC)

Sts_FlowStopped

*48(OTE) 49(XIC)

Sts_FlowStopping

*48(OTE) 49(XIC)

Sts_TotRunning

*48(OTE) 49(XIC)

Val_Cmd

*49(MOV)

Val_Fault

*49(MOV)

Val_Sts

*49(MOV)

Wrk_Cmd

*14(CLR) *16(MOV) *17(MOV) *42(MOV) 49(MOV) *49(MOV)

Wrk_Fault

*49(MOV) 49(MOV) *49(CLR)

Wrk_Sts

*49(CLR) *49(MOV) 49(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 138
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
OPERATOR COMMAND READIES
============================================================
All commands require Mode to be Operator or Maintenance.
Ready to Clear Total at any time if no flow requested.
Ready to Start Totalizer if not Running and PV not BAD.
Ready to Stop Totalizer if Running.
Ready to Start flow if not flowing, totalizer running and not past Preact.
Ready to Stop flow if flowing or in bump.
Ready to Check Tolerances if PV is not BAD and not flowing.
Ready to bump if PV not BAD, past preact but not complete, totalizer is running, and not
NOTE: Keep the BUMP button active as long as a bump is in progress if
the Bump Time is 0 -- this keeps the button on-screen so the bump command is
cleared if the operator releases the button!!!

##### V2.0-00 2011-09-30: Added Cfg_OperKeep, Cfg_ProgKeep, Err_Keep ###


##### V2.0-02 2012-07-17: Modified Rdy_Bump to allow even if Sts_Complete set.
Analog Input Mode
Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>
50

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.0
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

1=Flow (full)(
should be running
Wrk_RunFlow
/

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
/

1=Totalizaer should
be ruuuning
Wrk_RunTot
/

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.0

1=Rate Value is Bad


(PV Fail)
Sts_RateBad
/

1=Error: Bad
Configuration, see
detail Err bits for
reason
Sts_Err
/

1=Totalizaer should
be ruuuning
Wrk_RunTot

1=Flow (full)(
should be running
Wrk_RunFlow
/

1=Total Delivered >


(SP - Preact)
Sts_Complete
/

1=Totalizaer should
be ruuuning
Wrk_RunTot

1=Devic
Ready to b
Sts_N

Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow
/

1=Quantity
Bad (PV
Sts_Qty

1=Flow (full)(
should be running
Wrk_RunFlow
Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow

1=Totalizer Clear
completed
Sts_Cleared
/

1=Flow (full)(
should be running
Wrk_RunFlow
/

Quantity actually
delivered (totalizer
output) (EU)
LES
Less Than (A<B)
Source A
Val_Qty
0.0
Source B
Val_SP
0.0
Operator requested
bump flow to make up
Under Tolerance
Wrk_BumpFlow

1=Totalizaer should
be ruuuning
Wrk_RunTot

1=Flow (full)(
should be runnin
Wrk_RunFlow
/

Bump Timer for shot


of flow to make up
Under Tolerance
EQU
Equal
Source A Wrk_BumpT.PRE
0
Source B
0

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 139
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

er is running, and not flowing.

gKeep, Err_Keep #####


f Sts_Complete set. #####

1=Ready for
OCmd_ClearTot
(enables button)
Rdy_ClearTot

1=Ready for
OCmd_StartTot
(enables button)
Rdy_StartTot
1=Ready for
OCmd_StopTot
(enables button)
Rdy_StopTot

1=Device is Not
Ready to be operated
Sts_NotRdy
/

1=Ready for
OCmd_StartFlow
(enables button)
Rdy_StartFlow
1=Ready for
OCmd_StopFlow
(enables button)
Rdy_StopFlow

1-Ready for
OCmd_CheckTol
(enables button)
Rdy_CheckTol

1=Quantity Value is
Bad (PV Fail)
Sts_QtyBad

should be running

1=Device is Not
Ready to be operated
Sts_NotRdy
/

1=Ready for
OCmd_Bump (enables
button)
Rdy_Bump

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 140
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Cfg_OperKeep.0

*6(OTU) 6(XIC) 15(XIO) 15(XIC) 16(XIC) 16(XIO) 17(XIO) 17(XIC) 18(XIC) 18(XIO) 19(XIC) 21(XIO) 21(XIC) 22(XIC) 22(XIO) 50(XIC)

Cfg_ProgKeep.0

6(XIC) *6(OTU) 15(XIO) 15(XIC) 16(XIO) 16(XIC) 17(XIC) 17(XIO) 18(XIC) 18(XIO) 19(XIO) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 50(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Rdy_Bump

*50(OTE)

Rdy_CheckTol

*50(OTE)

Rdy_ClearTot

*50(OTE)

Rdy_StartFlow

*50(OTE)

Rdy_StartTot

*50(OTE)

Rdy_StopFlow

*50(OTE)

Rdy_StopTot

*50(OTE)

Sts_Cleared

22(XIO) *48(OTE) 50(XIO)

Sts_Complete

*48(OTE) 50(XIO)

Sts_Err

*7(OTE) 21(XIC) 40(XIC) 49(XIC) 50(XIO)

Sts_NotRdy

*40(OTE) 41(XIO) 45(XIO) 46(XIO) 50(XIO)

Sts_QtyBad

*21(OTE) 38(XIC) 40(XIC) 50(XIO)

Sts_RateBad

*34(OTE) 50(XIO)

Val_Qty

*12(MOV) 22(CPT) 22(CMP) *29(ADD) *30(MOV) *30(DIV) 32(SUB) 33(CPT) 43(EQU) 43(NEQ) 45(CMP) 46(CMP) 48(CMP)
48(EQU) 50(LES)

Val_SP

*11(MOV) 11(MOV) 22(CPT) 22(CMP) 32(SUB) 33(LEQ) 33(GRT) 33(CPT) 45(CMP) 46(CMP) 48(CMP) 50(LES)

Wrk_BumpFlow

15(XIO) 18(XIO) *19(OTL) 20(XIC) *20(OTU) *21(OTU) 45(XIC) 46(XIC) 48(XIC) 48(XIO) 50(XIO) 50(XIC)

Wrk_BumpT.PRE

*7(CLR) *7(MUL) 19(NEQ) 20(EQU) 20(GRT) 50(EQU)

Wrk_RunFlow

15(XIO) *18(OTL) 19(XIO) *21(OTU) 45(XIC) 46(XIC) *48(OTU) 50(XIC) 50(XIO)

Wrk_RunTot

*16(OTL) *17(OTU) 26(XIC) 28(XIC) 29(XIC) 44(XIC) 50(XIO) 50(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 141
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter

Ready to receive Operator Setpoint Setting (OSet_SP) if tracking is NOT enabled,


or we're in Operator or Maintenance Mode and Program doesn't KEEP this setting,
of if we're in Program Mode and Program DOES keep this setting.

51

##### V2.0-00 2011-09-30: Added Rdy bits as part of Cfg_OperKeep, Cfg_ProgKeep, Err_Keep #####
1=PSets track OSets
in Oper, OSets track
PSets in Prog, 0=no
1=Ready to receive
tracking
OSet_SP
Cfg_SetTrack
Rdy_SP
/

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.1
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.1

Cfg_OperKeep.1

6(XIC) *6(OTU) 11(XIO) 11(XIC) 51(XIC)

Cfg_ProgKeep.1

*6(OTU) 6(XIC) 11(XIO) 11(XIC) 51(XIO)

Cfg_SetTrack

11(XIC) 51(XIO) 52(XIO) 53(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Rdy_SP

*51(OTE)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 142
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Ready to receive Operator Dribble and Preact Settings (OSet_DribbleQty, OSet_Preact)
if tracking is NOT enabled, or we're in Operator or Maintenance Mode and Program doesn't
KEEP these settings, of if we're in Program Mode and Program DOES keep these settings.

52

##### V2.0-00 2011-09-30: Added Rdy bits as part of Cfg_OperKeep, Cfg_ProgKeep, Err_Keep #####
1=PSets track OSets
in Oper, OSets track
1=Ready to receive
PSets in Prog, 0=no
OSet_DribbleQty or
tracking
OSet_Preact
Cfg_SetTrack
Rdy_DribPre
/

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.2
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.2

Cfg_OperKeep.2

6(XIC) *6(OTU) 11(XIC) 11(XIO) 52(XIC)

Cfg_ProgKeep.2

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 52(XIO)

Cfg_SetTrack

11(XIC) 51(XIO) 52(XIO) 53(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Rdy_DribPre

*52(OTE)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 143
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Ready to receive Operator Tolerance Settings (OSet_TolHi, OSet_TolLo)
if tracking is NOT enabled, or we're in Operator or Maintenance Mode and Program doesn't
KEEP these settings, of if we're in Program Mode and Program DOES keep these settings.

53

##### V2.0-00 2011-09-30: Added Rdy bits as part of Cfg_OperKeep, Cfg_ProgKeep, Err_Keep #####
1=PSets track OSets
in Oper, OSets track
1=Ready to receive
PSets in Prog, 0=no
OSet_TolHi or
tracking
Oset_TolLo
Cfg_SetTrack
Rdy_Tol
/

Analog Input Mode


Selection 1=Mode is
Operator
Mode.Sts_Oper
<Sts_Oper>

Prog keeps control


in Oper Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_ProgKeep.3
/

Analog Input Mode


Selection 1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Analog Input Mode


Selection 1=Mode is
Program
Mode.Sts_Prog
<Sts_Prog>

Oper keeps control


in Prog Mode:
.0=Start/Stop,
.1=SP,
.2=Dribble/Preact,
.3=Tolerances
Cfg_OperKeep.3

Cfg_OperKeep.3

*6(OTU) 6(XIC) 11(XIC) 11(XIO) 53(XIC)

Cfg_ProgKeep.3

6(XIC) *6(OTU) 11(XIC) 11(XIO) 53(XIO)

Cfg_SetTrack

11(XIC) 51(XIO) 52(XIO) 53(XIO)

Mode.Sts_Maint

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Oper

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Mode.Sts_Prog

11(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 19(XIC) 21(XIC) 22(XIC) 41(XIC) 50(XIC) 51(XIC) 52(XIC) 53(XIC)

Rdy_Tol

*53(OTE)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 144
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
ALARM PROCESSING
============================================================
Pass the Cfg_PCmdClear configuration down to each P_Alarm instance.
##### V2.0-02 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01 #####
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Final Quantity Above


High Tolerance Alarm
1=Clear Program
Commands on receipt
0=Leave Set
OverTol.Cfg_PCmdClear

Final Quantity Below


Low Tolerance Alarm
1=Clear Program
Commands on receipt
0=Leave Set
UnderTol.Cfg_PCmdClear

Rate Not Zero when


Expected Alarm
1=Clear Program
Commands on receipt
0=Leave Set
ZeroFault.Cfg_PCmdClear

54
Equipment (Sensor,
Controlled Equip.)
Fault Alarm 1=Clear
Program Commands on
receipt
0=Leave Set
EqpFault.Cfg_PCmdClear

Cfg_PCmdClear

13(XIC) 15(XIC) 16(XIC) 17(XIC) 18(XIC) 21(XIC) 22(XIC) 54(XIC)

EqpFault.Cfg_PCmdClear*54(OTE)
OverTol.Cfg_PCmdClear *54(OTE)
UnderTol.Cfg_PCmdClea *54(OTE)
r
ZeroFault.Cfg_PCmdClea *54(OTE)
r

Handle Delivery Over Tolerance Alarm Processing using the standard P_Alarm AOI.
Final Quantity Above
High Tolerance Alarm
P_Alarm
Alarm
P_Alarm
OverTol ...
Inp
1
Inp_Reset
0

55

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

OverTol

*55(P_Alarm)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 145
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Handle Delivery Under Tolerance Processing using the standard P_Alarm AOI.
Final Quantity Below
Low Tolerance Alarm
P_Alarm
Alarm
P_Alarm
UnderTol ...
Inp
1
Inp_Reset
0

56

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

UnderTol

*56(P_Alarm)

Handle Zero Fault Alarm Processing using the standard P_Alarm AOI.
Rate Not Zero when
Expected Alarm
P_Alarm
Alarm
P_Alarm
ZeroFault ...
Inp
1
Inp_Reset
0

57

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

ZeroFault

*57(P_Alarm)

Handle Equipment Fault Alarm Processing using the standard P_Alarm AOI.
Equipment (Sensor,
Controlled Equip.)
Fault Alarm
P_Alarm
Alarm
P_Alarm
EqpFault ...
Inp
1
Inp_Reset
0

58

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

EqpFault

*58(P_Alarm)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 146
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit
summary status bit (which puts the "I" box on the graphic symbol).
##### V2.0-00 2011-09-30 : Added status bit for Alarm Inhibit breadcrumb #####
Final Quantity Above
High Tolerance Alarm
1=Alarm has been
inhibited, disabled
1=One or more Alarms
or suppressed,
Inhibited, Disabled
display "I" icon
or Suppressed
OverTol.Sts_AlmInh
Sts_AlmInh
59
Final Quantity Below
Low Tolerance Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
UnderTol.Sts_AlmInh
Rate Not Zero when
Expected Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
ZeroFault.Sts_AlmInh
Equipment (Sensor,
Controlled Equip.)
Fault Alarm 1=Alarm
has been inhibited,
disabled or
suppressed, display
"I" icon
EqpFault.Sts_AlmInh

EqpFault.Sts_AlmInh

59(XIC)

OverTol.Sts_AlmInh

59(XIC)

Sts_AlmInh

*59(OTE)

UnderTol.Sts_AlmInh

59(XIC)

ZeroFault.Sts_AlmInh

59(XIC)

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 147
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).

60

##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and moved down to after the Rdy_Reset logic. #####
Buffer for building
Val_Notify
CLR
Clear
Wrk_Notify
Dest
0
Final Quantity Above
High Tolerance Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A OverTol.Val_Notify
0
Source B
Wrk_Notify
0
Final Quantity Below
Low Tolerance Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A UnderTol.Val_Notify
0
Source B
Wrk_Notify
0
Rate Not Zero when
Expected Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A ZeroFault.Val_Notify
0
Source B
Wrk_Notify
0
Equipment (Sensor,
Controlled Equip.)
Fault Alarm Current
Alarm Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A EqpFault.Val_Notify
0
Source B
Wrk_Notify
0

Final Quantity Above


High Tolerance Alarm
Ready to receive
OCmd_Ack (enable
button)
OverTol.Rdy_Ack

Buffer for building


Val_Notify
MOV
Move
Source OverTol.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source UnderTol.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source ZeroFault.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source EqpFault.Val_Notify
0

Dest Wrk_Notify
0

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll

Final Quantity Below

RSLogix 5000

P_DoseFM Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Logic
Total number of rungs in routine: 61
Data Context: P_DoseFM <definition>

Page 148
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor Dosing with Flowmeter


Final Quantity Below
Low Tolerance Alarm
Ready to receive
OCmd_Ack (enable
button)
UnderTol.Rdy_Ack
Rate Not Zero when
Expected Alarm Ready
to receive OCmd_Ack
(enable button)
ZeroFault.Rdy_Ack
Equipment (Sensor,
Controlled Equip.)
Fault Alarm Ready to
receive OCmd_Ack
(enable button)
EqpFault.Rdy_Ack
Final Quantity Above
High Tolerance Alarm
Ready to receive
OCmd_Reset (enable
button)
OverTol.Rdy_Reset

1=At least one Alarm


or Latched Shed
requires Reset
Rdy_Reset

Final Quantity Below


Low Tolerance Alarm
Ready to receive
OCmd_Reset (enable
button)
UnderTol.Rdy_Reset
Rate Not Zero when
Expected Alarm Ready
to receive
OCmd_Reset (enable
button)
ZeroFault.Rdy_Reset
Equipment (Sensor,
Controlled Equip.)
Fault Alarm Ready to
receive OCmd_Reset
(enable button)
EqpFault.Rdy_Reset
Equipment Fault
(latched) stops
delivery and
requires reset
Wrk_EqpFault

1=Equipment Fault
Detected
Sts_EqpFault
<EqpFault.Inp>
/

Buffer for building


Val_Notify
Wrk_Notify.0
Current Alarm Level
and Acknowledgement
(enumeration)
MOV
Move
Source Wrk_Notify
0

Dest Val_Notify
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Total number of rungs in routine: %1!d!
EqpFault.Rdy_Ack

60(XIC)

EqpFault.Rdy_Reset

60(XIC)

EqpFault.Val_Notify

60(GRT) 60(MOV)

OverTol.Rdy_Ack

60(XIC)

OverTol.Rdy_Reset

60(XIC)

OverTol.Val_Notify

60(GRT) 60(MOV)

Rdy_Reset

*60(OTE)

Rdy_ResetAckAll

*60(OTE)

Sts_EqpFault

*38(OTE) 39(XIC) 49(XIC) 60(XIO)

UnderTol.Rdy_Ack

60(XIC)

UnderTol.Rdy_Reset

60(XIC)

UnderTol.Val_Notify

60(MOV) 60(GRT)

Val_Notify

*60(MOV)

Wrk_EqpFault

*13(OTU) 21(XIC) *39(OTL) 40(XIC) 60(XIC)

Wrk_Notify

*60(MOV) 60(MOV) 60(GRT) *60(CLR)

Wrk_Notify.0

*60(OTE)

ZeroFault.Rdy_Ack

60(XIC)

ZeroFault.Rdy_Reset

60(XIC)

ZeroFault.Val_Notify

60(GRT) 60(MOV)

Page 149
22/12/2015 08,57,58
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_DoseFM Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Prescan
Total number of rungs in routine: 8
Data Context: P_DoseFM <definition>

Page 150
22/12/2015 08,57,59
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, clear "lurking" Commands, all Readies


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
CLR
CLR
Clear
Clear
Dest
Dest
PSet_Owner
Val_Owner
0
0

PSet_Owner

*0(CLR)

Val_Owner

*0(CLR)

Clear the OperKeep and ProgKeep one-shot store bits used to maintain
valid configuration (can't have an aspect 'kept' by both Prog and Oper).
##### V2.0-03 2012-11-28 Modified OperKeep, ProgKeep to allow all aspects #####
##### to be kept, enforce no aspect kept by both Prog and Oper. #####

Oper Keep bit 0


one-shot store
Wrk_OperKeep0ONS
U

Oper Keep bit 1


one-shot store
Wrk_OperKeep1ONS
U

Oper Keep bit 2


one-shot store
Wrk_OperKeep2ONS
U
Prog Keep bit 1
one-shot store
Wrk_ProgKeep1ONS
U

Wrk_OperKeep0ONS

*1(OTU)

Wrk_OperKeep1ONS

*1(OTU)

Wrk_OperKeep2ONS

*1(OTU)

Wrk_OperKeep3ONS

*1(OTU)

Wrk_ProgKeep0ONS

*1(OTU)

Wrk_ProgKeep1ONS

*1(OTU)

Wrk_ProgKeep2ONS

*1(OTU)

Wrk_ProgKeep3ONS

*1(OTU)

Oper Keep bit 3


one-shot store
Wrk_OperKeep3ONS
U
Prog Keep bit 2
one-shot store
Wrk_ProgKeep2ONS
U

Prog Keep bit 0


one-shot store
Wrk_ProgKeep0ONS
U
Prog Keep bit 3
one-shot store
Wrk_ProgKeep3ONS
U

RSLogix 5000

P_DoseFM Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Prescan
Total number of rungs in routine: 8
Data Context: P_DoseFM <definition>

Page 151
22/12/2015 08,57,59
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, clear "lurking" Commands, all Readies


"Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Start Totalizer
PCmd_StartTot
U

Program Command to
Stop Totalizer
PCmd_StopTot
U

Program Command to
Start Delivery
PCmd_StartFlow
U
Program Command to
Stop/Pause Delivery
PCmd_StopFlow
U

Program Command to
Clear Totalizer Qty
PCmd_ClearTot
U

Cfg_PCmdClear

2(XIC)

PCmd_CheckTol

*2(OTU)

PCmd_ClearTot

*2(OTU)

PCmd_StartFlow

*2(OTU)

PCmd_StartTot

*2(OTU)

PCmd_StopFlow

*2(OTU)

PCmd_StopTot

*2(OTU)

Program Command to
Check Tolerances
PCmd_CheckTol
U

"Lurking" Operator Commands are cleared, as well as Program Reset.


Operator Command to
Start Totalizer
OCmd_StartTot
U

Operator Command to
Stop Totalizer
OCmd_StopTot
U

Operator command to
Start Deliver
OCmd_StartFlow
U

Operator Command to
Stop/Pause Delivery
OCmd_StopFlow
U
Operator Command to
Clear Totalizer Qty
OCmd_ClearTot
U

Operator Command to
Check Tolerances
OCmd_CheckTol
U

Operator Command to
Bump Delivery for
Under Tolerance
OCmd_Bump
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U
Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

OCmd_Bump

*3(OTU)

OCmd_CheckTol

*3(OTU)

RSLogix 5000

Prescan - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
OCmd_ClearTot

*3(OTU)

OCmd_Reset

*3(OTU)

OCmd_ResetAckAll

*3(OTU)

OCmd_StartFlow

*3(OTU)

OCmd_StartTot

*3(OTU)

OCmd_StopFlow

*3(OTU)

OCmd_StopTot

*3(OTU)

PCmd_Reset

*3(OTU)

Page 152
22/12/2015 08,57,59
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

The Dosing "run" and latched fault stored latches are cleared on Prescan.
The logic should come up with the totalizer and flow "Stopped".
After Powerup, a "Check Tolerance" should NOT do a preact adjustment (invalid data)!
Do NOT auto-adjust
Operator requested
Preact if flow was
Request to Clear
1=Totalizaer should
1=Flow (full)(
bump flow to make up
Bumped since
Total received
be ruuuning
should be running
Under Tolerance
Clearing Totalizer
Wrk_ClearTot
Wrk_RunTot
Wrk_RunFlow
Wrk_BumpFlow
Wrk_BumpNoAdj
U
U
U
U
L
Equipment Fault
(latched) stops
delivery and
requires reset
Wrk_EqpFault
U

Wrk_BumpFlow

*4(OTU)

Wrk_BumpNoAdj

*4(OTL)

Wrk_BumpT

*4(RES)

Wrk_ClearPulseT

*4(RES)

Wrk_ClearTot

*4(OTU)

Wrk_EqpFault

*4(OTU)

Wrk_FaultT

*4(RES)

Wrk_RunFlow

*4(OTU)

Wrk_RunTot

*4(OTU)

Wrk_ScanT

*4(RES)

Bump Timer for shot


of flow to make up
Under Tolerance
Wrk_BumpT
RES

Time to pulse
Out_Clear to clear
external timer
Wrk_ClearPulseT
RES

Timer for Equipment


Fault (Feedback not
matching output)
Wrk_FaultT
RES

Scan Timer
(milliseconds,
always runs)
Wrk_ScanT
RES

Set up the filter initialization one-shot so filter will start from first valid value.
Rate PV goes from
Infinite or Not a
Number to VALID
Wrk_ValidONS
U

Wrk_ValidONS

*5(OTU)

RSLogix 5000

P_DoseFM Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:Prescan
Total number of rungs in routine: 8
Data Context: P_DoseFM <definition>

Page 153
22/12/2015 08,57,59
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, clear "lurking" Commands, all Readies


All Outputs are de-energized on Prescan.
1=Deliver at Full
(fast) Flow
Out_RunFlow
U

Out_DribbleFlow

*6(OTU)

Out_RunFlow

*6(OTU)

Out_StopFlow

*6(OTU)

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow
U

1=Stop Delivery
Equipment
Out_StopFlow
U

On Prescan, clear the following:


Val_Cmd (no command active)
Val_Fdbk (device position not determined)
Val_Sts (device status powerup / unknown)
##### Rev. 2.0, 2011-09-30: Added Val_Cmd, Val_Fdbk, Val_Sts #####
Dosing Command
0=None, 1=ClrTot,
2=StartTot,
3=StartFlow,
4=StartDrib, 5=Bump,
6=StopFlow,
7=StopTot
CLR
Clear
Dest
Val_Cmd
0

Val_Cmd

*7(CLR)

Val_Fdbk

*7(CLR)

Val_Sts

*7(CLR)

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling
CLR
Clear
Dest
Val_Fdbk
0

Dosing Confirmed Sts


0=? 1=Stop,
2=TotRun, 3=FlowRun,
4=Dribble, 5=Bump
6=StartFlow,
7=StartDrib,
8=Stopping,
33=Disabled
CLR
Clear
Dest
Val_Sts
0

(End)

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 154
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this device is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").

THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!
1=Clear Program
1=Clear Program
Commands on receipt
Commands on receipt
0=Leave Set
0=Leave Set
Analog Input Mode
Selection
Cfg_PCmdClear
Cfg_PCmdClear
<Mode.Cfg_PCmdClear> <Mode.Cfg_PCmdClear>
P_Mode
/
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock
Signature ID: C1F72CF2

Cfg_PCmdClear

0(XIC) 0(XIO) 2(XIC)

Mode

*0(P_Mode)

First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
0
0
Source B
0
Dest
Val_Owner
0
Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

1(MOV) 1(EQU) 1(NEQ)

Val_Owner

*1(MOV) 1(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 155
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


"Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Start Totalizer
PCmd_StartTot
U

Program Command to
Stop Totalizer
PCmd_StopTot
U

Program Command to
Start Delivery
PCmd_StartFlow
U
Program Command to
Stop/Pause Delivery
PCmd_StopFlow
U

Program Command to
Clear Totalizer Qty
PCmd_ClearTot
U

Cfg_PCmdClear

0(XIC) 0(XIO) 2(XIC)

PCmd_CheckTol

*2(OTU)

PCmd_ClearTot

*2(OTU)

PCmd_StartFlow

*2(OTU)

PCmd_StartTot

*2(OTU)

PCmd_StopFlow

*2(OTU)

PCmd_StopTot

*2(OTU)

Program Command to
Check Tolerances
PCmd_CheckTol
U

"Lurking" Operator Commands are cleared, as well as Program Reset.


Operator Command to
Start Totalizer
OCmd_StartTot
U

Operator Command to
Stop Totalizer
OCmd_StopTot
U

Operator command to
Start Deliver
OCmd_StartFlow
U

Operator Command to
Stop/Pause Delivery
OCmd_StopFlow
U
Operator Command to
Clear Totalizer Qty
OCmd_ClearTot
U

Operator Command to
Check Tolerances
OCmd_CheckTol
U

Operator Command to
Bump Delivery for
Under Tolerance
OCmd_Bump
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U
Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

OCmd_Bump

*3(OTU)

OCmd_CheckTol

*3(OTU)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
OCmd_ClearTot

*3(OTU)

OCmd_Reset

*3(OTU)

OCmd_ResetAckAll

*3(OTU)

OCmd_StartFlow

*3(OTU)

OCmd_StartTot

*3(OTU)

OCmd_StopFlow

*3(OTU)

OCmd_StopTot

*3(OTU)

PCmd_Reset

*3(OTU)

Page 156
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Since we're not processing Operator Commands or Settings, we're not READY for any of them either!
##### V2.0-00 2011-09-30: Added Cfg_OperKeep, Cfg_ProgKeep, Err_Keep #####
1=Ready for
1=Ready for
1=Ready for
1=Ready for
1=Ready for
OCmd_StartTot
OCmd_StopTot
OCmd_StartFlow
OCmd_StopFlow
OCmd_ClearTot
(enables button)
(enables button)
(enables button)
(enables button)
(enables button)
Rdy_StartTot
Rdy_StopTot
Rdy_StartFlow
Rdy_StopFlow
Rdy_ClearTot
U
U
U
U
U

1-Ready for
OCmd_CheckTol
(enables button)
Rdy_CheckTol
U

1=Ready for
OCmd_Bump (enables
button)
Rdy_Bump
U
1=Ready to receive
OSet_SP
Rdy_SP
U

Rdy_Bump

*4(OTU)

Rdy_CheckTol

*4(OTU)

Rdy_ClearTot

*4(OTU)

Rdy_DribPre

*4(OTU)

Rdy_Reset

*4(OTU)

Rdy_ResetAckAll

*4(OTU)

Rdy_SP

*4(OTU)

Rdy_StartFlow

*4(OTU)

Rdy_StartTot

*4(OTU)

Rdy_StopFlow

*4(OTU)

Rdy_StopTot

*4(OTU)

Rdy_Tol

*4(OTU)

1=At least one Alarm


or Latched Shed
requires Reset
Rdy_Reset
U
1=Ready to receive
OSet_DribbleQty or
OSet_Preact
Rdy_DribPre
U

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll
U
1=Ready to receive
OSet_TolHi or
Oset_TolLo
Rdy_Tol
U

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 157
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


Show the Dosing as Disabled and Not Ready, not Available.
Clear remaining Status bits.
Show the enumerated command as NONE.
Show the enumerated status as DISABLED.
Show the enumerated fault status as NONE.
##### V2.0-00 2011-09-30: Made into a separate rung, added enumerated values. #####
1=Dosing available
1=A Maintenance
1=Device is Not
for control by
Bypass is Active,
Ready to be operated
automation (Prog)
display icon
Sts_NotRdy
Sts_Available
Sts_MaintByp
L
U
U

1=Totalizer Running,
0=Totalizer Stopped
Sts_TotRunning
U
Dosing Command
0=None, 1=ClrTot,
2=StartTot,
3=StartFlow,
4=StartDrib, 5=Bump,
6=StopFlow,
7=StopTot
CLR
Clear
Val_Cmd
Dest
0

1=Flow is Starting
(Out_Run is ON, Fdbk
not showing Run)
Sts_FlowStarting
U

Dosing Confirmed Sts


0=? 1=Stop,
2=TotRun, 3=FlowRun,
4=Dribble, 5=Bump
6=StartFlow,
7=StartDrib,
8=Stopping,
33=Disabled
MOV
Move
33
Source
Dest

Sts_Available

*5(OTU)

Sts_DribbleStarting

*5(OTU)

Sts_FlowStarting

*5(OTU)

Sts_FlowStopping

*5(OTU)

Sts_MaintByp

*5(OTU)

Sts_NotRdy

*5(OTL)

Sts_TotRunning

*5(OTU)

Val_Cmd

*5(CLR)

Val_Fault

*5(CLR)

Val_Sts

*5(MOV)

1=Dribble Starting
(Out_Dribble is ON,
Fdbk not showing
Dribble)
Sts_DribbleStarting
U

1=Flow is Stopping
(Out_Stop is ON,
Fdbk not showing
Stopped)
Sts_FlowStopping
U

Device Fault Status


0=None,
17=EquipmentFault,
34=CfgErr
CLR
Clear
Val_Fault
Dest
0

Val_Sts
0

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 158
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


============================================================
EQUIPMENT FEEDBACK PROCESSING
============================================================
If the equipment is being simulated or provides no feedback,
loop back the outputs to provide "fake" feedback.
If the equipment is NOT being simulated and it HAS feedback,
use the state of the run feedback input and dribble feedback
input to show the current equipment state.
##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk

1=Controlled
Equipment is
Delivering (Running)
Inp_RunFdbk
/

1=Controlled
Equipment is
Delivering at
Dribble
Inp_DribbleFdbk
/

1=Controlled
Equipment is
confirmed Stopped
Inp_StopFdbk

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk
/

Buffer f
Val
Move
Source
Dest

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

1=Controlled
Equipment provides
Run (Dribble if
used) and Stop
Feedback
Cfg_HasEqpFdbk

1=Controlled
Equipment is
Delivering (Running)
Inp_RunFdbk

1=Controlled
Equipment is
Delivering at
Dribble
Inp_DribbleFdbk
/

1=Controlled
Equipment is
confirmed Stopped
Inp_StopFdbk
/

Buffer for buil


Val_Fdbk
MOV
Move
Source
Dest

1=Controlled
Equipment is
Delivering (Running)
Inp_RunFdbk
/

1=Controlled
Equipment is
Delivering at
Dribble
Inp_DribbleFdbk

1=Controlled
Equipment is
confirmed Stopped
Inp_StopFdbk
/

Buffer for b
Val_Fd
MO
Move
Source
Dest

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 159
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE

Buffer for building


Val_Fdbk
CLR
Clear
Dest
Wrk_Fdbk
0

1=Flow is Stopped
(Out_Stop is ON,
Fdbk shows Stopped)
Sts_FlowStopped

Buffer for building


Val_Fdbk
MOV
1
Wrk_Fdbk
0

1=Flow is Running
(Out_Run is ON, Fdbk
shows Running)
Sts_FlowRunning

Buffer for building


Val_Fdbk
2
Wrk_Fdbk
0

1=Flow is Dribbling
(Out_Dribble is ON,
Fdbk shows Dribble)
Sts_FlowDribble

Buffer for building


Val_Fdbk
MOV
3
Wrk_Fdbk
0

Equipment Feedback
0=None/Transition,
1=Flow Stopped,
2=Flow Running,
3=Flow Dribbling

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 160
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE

Cfg_HasEqpFdbk

6(XIO) 6(XIC)

Inp_DribbleFdbk

6(XIO) 6(XIC)

Inp_RunFdbk

6(XIC) 6(XIO)

Inp_Sim

6(XIC) 6(XIO) 9(XIC) 10(XIO) 12(XIO)

Inp_StopFdbk

6(XIC) 6(XIO)

Sts_FlowDribble

*6(OTE)

Sts_FlowRunning

*6(OTE)

Sts_FlowStopped

*6(OTE)

Val_Fdbk

*6(MOV)

Wrk_Fdbk

*6(MOV) *6(CLR) 6(MOV)

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 161
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


3=Flow Dribbling
MOV
Move
Wrk_Fdbk
Source
0
Dest
Val_Fdbk
0

============================================================
VALUES PROCESSING
============================================================
In preparation for calculating Values (Rate, Quantity, Remaining),
this determines the time since the previous scan (used for
rate, totalizing functions).using a non-stop TON timer.
When we get here, we read the accumulator (in milliseconds, so
divide by 1000.0 to get seconds), then clear the accumulator. Next scan the accumulator will have
incremented up to the number of milliseconds since last scan. (Works for scan times up to 2 million seconds.....)
Scan Timer
(milliseconds,
always runs)
MOV
Move
Source
2147483647

Dest Wrk_ScanT.PRE
2147483647

Scan Timer
(milliseconds,
always runs)
TON
Timer On Delay
Timer
Wrk_ScanT
Preset 2147483647
Accum
0

EN
DN

Time since previous


scan (sec)
DIV
Divide
Source A Wrk_ScanT.ACC
0
Source B
1000.0
Dest

Wrk_ScanTime
0.0

Scan Timer
(milliseconds,
always runs)
CLR
Clear
Dest Wrk_ScanT.ACC
0

Wrk_ScanT

*7(TON)

Wrk_ScanT.ACC

*7(CLR) 7(DIV)

Wrk_ScanT.PRE

*7(MOV)

Wrk_ScanTime

*7(DIV) 13(CPT)

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 162
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


========================================================
CHECK INPUTS FOR INFINITE / NOT A NUMBER
========================================================
This rung determines whether the Quantity PV Input is +/-Infinity or +/- NotAN
and whether the Rate PV Input is +/- Infinity or +/- NotANumber.

If the Quantity Input PV is an exception, if the quantity is not calculated from rate, the bad q
and if the rate IS calculated from the bad quantity, the rate is bad.

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
U

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
U

If the Rate Input PV is an exception, if the rate is not calculated from quantity, the bad r
and if the quantity IS calculated from the bad rate, the quantity is bad
1=integrate In
Inp_QtyPV check for
Inp_QtyPV check for
to get Qua
Infinite or Not A
Infinite or Not A
0=use Inp
Number
Number
Cfg_Cal
COP
MEQ
Copy File
Mask Equal
/
Source
Inp_QtyPV
Source Wrk_QtyInpDINT
Dest Wrk_QtyInpDINT
16#0000_0000
Length
1
Mask
16#7F80_0000
Compare 16#7F80_0000

1=differen
Inp_Qty to ge
0=use Inp_
Cfg_Calc

Inp_RatePV check for


Infinite or Not A
Number
COP
Copy File
Source
Inp_RatePV
Dest Wrk_RateInpDINT
Length
1

Inp_RatePV check for


Infinite or Not A
Number
MEQ
Mask Equal
Source Wrk_RateInpDINT
16#0000_0000
Mask
16#7F80_0000
Compare

1=differen
Inp_Qty to ge
0=use Inp_
Cfg_Calc
/

16#7F80_0000

1=integrate In
to get Qua
0=use Inp
Cfg_Cal

Cfg_CalcQty

8(XIO) 8(XIC) 12(XIO)

Cfg_CalcRate

8(XIO) 8(XIC) 10(XIO) 13(XIC)

Inp_QtyPV

8(COP) 8(MOV) 11(MOV) 12(MOV) 12(DIV)

Inp_RatePV

8(MOV) 8(COP) 10(MOV)

Val_Qty

*8(MOV) *12(DIV) *12(MOV)

Val_Rate

*8(MOV) *13(MOV)

Wrk_QtyInfNaN

*8(OTL) *8(OTU) 12(XIO)

Wrk_QtyInpDINT

8(MEQ) *8(COP)

Wrk_RateInfNaN

*8(OTU) *8(OTL) 10(XIO) 13(XIO)

Wrk_RateInpDINT

8(MEQ) *8(COP)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Page 163
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

====================

====================
+/-Infinity or +/- NotANumber,

d from rate, the bad quantity is being used,

om quantity, the bad rate is being used,


e, the quantity is bad.
1=integrate Inp_Rate
to get Quantity,
Quantity PV is
Infinite or NaN
0=use Inp_Qty
Cfg_CalcQty
Wrk_QtyInfNaN
L

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate

1=differentiate
Inp_Qty to get Rate,
0=use Inp_Rate
Cfg_CalcRate

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
L

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
L

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
L

Quantity actually
delivered (totalizer
output) (EU)
MOV
Move
Inp_QtyPV
Source
0.0
Dest
Val_Qty
0.0
Current Delivery
Rate (EU/time) (see
Cfg_RateTime)
MOV
Move
Source
Inp_QtyPV
0.0
Dest
Val_Rate
0.0
Current Delivery
Rate (EU/time) (see
Cfg_RateTime)
MOV
Move
Source Inp_RatePV
0.0
Dest
Val_Rate
0.0
Quantity actually
delivered (totalizer
output) (EU)
MOV
Move
Source Inp_RatePV
0.0
Dest
Val_Qty
0.0

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 164
22/12/2015 08,58,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


These two rungs select whether to use a Simulated flowmeter rate
or the actual flowmeter rate.
In simulation, start with the rate at zero. But if Flow is Running, use the full
simulation rate, and if Flow is Dribbling, use the dribble simulation rate.

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
9

NOTE: simulation ALWAYS uses the configured simulation rates to determine rate
and total, regardless of the configuration of Cfg_CalcRate and Cfg_CalcQty.
Instantaneous Rate
based on change in
Inp_Qty
CLR
Clear
Wrk_Rate
Dest
0.0

Inp_Sim

6(XIC) 6(XIO) 9(XIC) 10(XIO) 12(XIO)

Wrk_Rate

*9(CLR) *10(MOV) 13(MOV) 13(CPT) *13(CLR)

10

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

If the Rate is not simulated, not calculated from changes in Quantity, and is
not Infinite or Not a Number, use it for the Rate in remaining calculations.
1=differentiate
Instantaneous Rate
Rate PV is Infinite
Inp_Qty to get Rate,
based on change in
or NaN
0=use Inp_Rate
Inp_Qty
Cfg_CalcRate
Wrk_RateInfNaN
MOV
/
/
Move
Source Inp_RatePV
0.0
Dest
Wrk_Rate
0.0

Cfg_CalcRate

8(XIO) 8(XIC) 10(XIO) 13(XIC)

Inp_RatePV

8(COP) 8(MOV) 10(MOV)

Inp_Sim

6(XIO) 6(XIC) 9(XIC) 10(XIO) 12(XIO)

Wrk_Rate

*9(CLR) *10(MOV) 13(MOV) 13(CPT) *13(CLR)

Wrk_RateInfNaN

*8(OTU) *8(OTL) 10(XIO) 13(XIO)

Copy the current input to a "Previous Quantity" rung for use in the
difference calculations next TRUE scan.
Previous scan's
Inp_QtyPV value
MOV
Move
Source
Inp_QtyPV
0.0
Dest
Wrk_PrevQty
0.0

11

Inp_QtyPV

8(COP) 8(MOV) 11(MOV) 12(MOV) 12(DIV)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM

Wrk_PrevQty

Page 165
22/12/2015 08,58,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*11(MOV)

This rung handles the case where the Quantity input is used directly, for example, when
the flowmeter has a totalizer on board and we are using its total.

12

1=integrate Inp_Rate
to get Quantity,
0=use Inp_Qty
Cfg_CalcQty
/

1=Simulate working
flowmeter; 0=use
actual flowmeter
Inp_Sim
/

Quantity Rollover
(e.g., max count for
pulse input)
LEQ
Less Than or Eql (A<=B)
Source A Cfg_Rollover
0.0
Source B
0.0

Quantity PV is
Infinite or NaN
Wrk_QtyInfNaN
/

Number of Counts in
Inp_QtyPV which
equal 1.0 EU
GRT
Greater Than (A>B)
Source A Cfg_CountsPerEU
1.0
Source B
0.0

Quantity actually
delivered (totalizer
output) (EU)
DIV
Divide
Inp_QtyPV
Source A
0.0
Source B Cfg_CountsPerEU
1.0
Dest
Val_Qty
0.0

Number of Counts in
Inp_QtyPV which
equal 1.0 EU
LEQ
Less Than or Eql (A<=B)
Source A Cfg_CountsPerEU
1.0
Source B
0.0

Quantity actually
delivered (totalizer
output) (EU)
MOV
Move
Source
Inp_QtyPV
0.0
Dest
Val_Qty
0.0

Cfg_CalcQty

8(XIO) 8(XIC) 12(XIO)

Cfg_CountsPerEU

12(LEQ) 12(GRT) 12(DIV)

Cfg_Rollover

12(LEQ)

Inp_QtyPV

8(COP) 8(MOV) 11(MOV) 12(DIV) 12(MOV)

Inp_Sim

6(XIC) 6(XIO) 9(XIC) 10(XIO) 12(XIO)

Val_Qty

*8(MOV) *12(DIV) *12(MOV)

Wrk_QtyInfNaN

*8(OTU) *8(OTL) 12(XIO)

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 166
22/12/2015 08,58,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


If the Rate is to be calculated based on change in quantity, take the change in Quantity
calculated above, divide by scan time, adjust for per second, per minute, per hour (etc.),
and adjust for conversion of quantity units to rate units (e.g. GPM to BBL/Day...).
Then filter (1st order) based on the entered time constant.
If the rate is NOT to be calculated, just pass through the input Rate PV to the Val_Rate.

13

Rate PV is Infinite
or NaN
Wrk_RateInfNaN
/

If the input was +/-Infinity or Not a Number and it becomes a valid number,
initialize the filter to start from the first valid value.
1=differentiate
Instantaneous Rate
Inp_Qty to get Rate,
based on change in
0=use Inp_Rate
Inp_Qty
Cfg_CalcRate
CLR
Clear
Dest
Wrk_Rate
0.0
Filter Time Constant
(sec) for calculated
Rate
GRT
Greater Than (A>B)
Source A Cfg_RateFiltTC
0.1
Source B
0.0

Filter multiplier =
(1 / (1+TC/dT) )
CPT
Compute
Dest

Wrk_Alpha
0.0
Expression 1.0/(1.0+Wrk_ScanTime/Cfg_RateFiltTC)

Filter Time Constant


(sec) for calculated
Rate
LEQ
Less Than or Eql (A<=B)
Source A Cfg_RateFiltTC
0.1
Source B
0.0

Filter multiplier =
(1 / (1+TC/dT) )
CLR
Clear
Wrk_Alpha
Dest
0.0

Rate PV goes from


Infinite or Not a
Number to VALID
Wrk_ValidONS
ONS

Working register for


calculating filtered
delivery rate
MOV
Move
Source
Wrk_Rate
0.0
Dest
Wrk_FiltRate
0.0

Working register for


calculating filtered
delivery rate
CPT
Compute
Dest

Wrk_FiltRate
0.0
Expression (Wrk_Alpha*Wrk_FiltRate)+((1.0-Wrk_Alpha)*Wrk_Rate)

Current Delivery
Rate (EU/time) (see
Cfg_RateTime)
MOV
Move
Source Wrk_FiltRate
0.0
Dest
Val_Rate
0.0

Cfg_CalcRate

8(XIC) 8(XIO) 10(XIO) 13(XIC)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM
Cfg_RateFiltTC

13(CPT) 13(LEQ) 13(GRT)

Val_Rate

*8(MOV) *13(MOV)

Wrk_Alpha

*13(CPT) *13(CLR) 13(CPT)

Wrk_FiltRate

13(CPT) *13(CPT) *13(MOV) 13(MOV)

Wrk_Rate

*9(CLR) *10(MOV) 13(CPT) 13(MOV) *13(CLR)

Wrk_RateInfNaN

*8(OTL) *8(OTU) 10(XIO) 13(XIO)

Wrk_ScanTime

*7(DIV) 13(CPT)

Wrk_ValidONS

*13(ONS)

Page 167
22/12/2015 08,58,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear the quantity Remaining to Deliver and the Percent Complete.


Amount yet to
deliver to reach
Setpoint (EU)
CLR
Clear
Val_Remain
Dest
0.0

14

Val_PctComplete

*14(CLR)

Val_Remain

*14(CLR)

Flow is stopped on EnableIn False.


1=Deliver at Full
(fast) Flow
Out_RunFlow
U

15

Out_DribbleFlow

*15(OTU)

Out_RunFlow

*15(OTU)

Out_StopFlow

*15(OTL)

Percent Complete
(for Progress Bar on
HMI) 0.0 to 100.0%
CLR
Clear
Dest Val_PctComplete
0.0

1=Deliver at Dribble
(slow) Flow
Out_DribbleFlow
U

1=Stop Delivery
Equipment
Out_StopFlow
L

RSLogix 5000

P_DoseFM Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_DoseFM:EnableInFalse
Total number of rungs in routine: 17
Data Context: P_DoseFM <definition>

Page 168
22/12/2015 08,58,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear any "lurking" Commands and all Readies, set NO MODE


Clear the Alarms and the Notify Status, and show the Alarms Inhibited breadcrumb.
##### V2.0-00 2011-09-30: Made into a separate rung. #####
1=Delivery Out of
Tolerance High Alarm
Alm_OverTol
<OverTol.Alm>
U

16

1=Delivery Out of
Tolerance High
Sts_OverTol
<OverTol.Inp>
U

1=Delivery Out of
Tolerance Low Alarm
Alm_UnderTol
<UnderTol.Alm>
U
1=Delivery Out of
Tolerance Low
Sts_UnderTol
<UnderTol.Inp>
U

1=Equipment Fault
Alarm
Alm_EqpFault
<EqpFault.Alm>
U
1=Equipment Fault
Detected
Sts_EqpFault
<EqpFault.Inp>
U

1=One or more Alarms


Inhibited, Disabled
or Suppressed
Sts_AlmInh
L

Alm_EqpFault

*16(OTU)

Alm_OverTol

*16(OTU)

Alm_UnderTol

*16(OTU)

Alm_ZeroFault

*16(OTU)

Sts_AlmInh

*16(OTL)

Sts_EqpFault

*16(OTU)

Sts_OverTol

*16(OTU)

Sts_UnderTol

*16(OTU)

Sts_ZeroFault

*16(OTU)

Val_Notify

*16(CLR)

1=Warning: Total did


not clear or still
flowing
Alm_ZeroFault
<ZeroFault.Alm>
U
1=Total did not
clear or unexpected
flow
Sts_ZeroFault
<ZeroFault.Inp>
U

Current Alarm Level


and Acknowledgement
(enumeration)
CLR
Clear
Dest
Val_Notify
0

(End)

RSLogix 5000

P_Intlk - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk

Page 1
22/12/2015 08,58,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Intlk v2.0 00 Release


Rockwell Automation

Interlocks
Available Languages
Relay Ladder

Function Block

Structured Text
P_Intlk();
Parameters
Required
X

Name
P_Intlk
EnableIn
EnableOut
Inp_Intlk00
Inp_Intlk01
Inp_Intlk02
Inp_Intlk03
Inp_Intlk04
Inp_Intlk05
Inp_Intlk06
Inp_Intlk07
Inp_Intlk08
Inp_Intlk09
Inp_Intlk10
Inp_Intlk11
Inp_Intlk12
Inp_Intlk13
Inp_Intlk14

Data Type
P_Intlk
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input

Description
Interlocks
Interlock Cond. 00, Stop if not in configured OK state
Interlock Cond. 01, Stop if not in configured OK state
Interlock Cond. 02, Stop if not in configured OK state
Interlock Cond. 03, Stop if not in configured OK state
Interlock Cond. 04, Stop if not in configured OK state
Interlock Cond. 05, Stop if not in configured OK state
Interlock Cond. 06, Stop if not in configured OK state
Interlock Cond. 07, Stop if not in configured OK state
Interlock Cond. 08, Stop if not in configured OK state
Interlock Cond. 09, Stop if not in configured OK state
Interlock Cond. 10, Stop if not in configured OK state
Interlock Cond. 11, Stop if not in configured OK state
Interlock Cond. 12, Stop if not in configured OK state
Interlock Cond. 13, Stop if not in configured OK state
Interlock Cond. 14, Stop if not in configured OK state
RSLogix 5000

P_Intlk - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk

Inp_Intlk15
Inp_BypActive
Inp_LatchDefeat

BOOL
BOOL
BOOL

Input
Input
Input

Inp_Reset
Cfg_OKState
Cfg_Latched
Cfg_Bypassable
Cfg_PCmdClear

BOOL
INT
INT
INT
BOOL

Input
Input
Input
Input
Input

PCmd_Reset
OCmd_Reset
Sts_IntlkOK
Sts_NBIntlkOK
Sts_BypActive
Sts_Intlk
Sts_FirstOut
Rdy_Reset
P_Intlk

BOOL
BOOL
BOOL
BOOL
BOOL
INT
INT
BOOL
BOOL

Input
Input
Output
Output
Output
Output
Output
Output
Output

Page 2
22/12/2015 08,58,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Interlock Cond. 15, Stop if not in configured OK state


1=Interlock Bypassing is currently active
Latch Defeat 1=Do
not latch inputs even if configured for latching
1=Reset Latched Interlocks and First-Out
Bits indicate which state (0 or 1) of each input is OK to run
Set bits indicate which conditions are latched (sealed in)
Set bits indicate which conditions can be bypassed
1=Clear Program Commands on receipt
0=Leave Set
Program Command to Reset Latched Interlocks
Operator Command to Reset Latched Interlocks
Overall Interlock Status (1=OK to run, 0=Stop)
Non-Bypassable Interlock Status (1=All NB Interlocks OK to run)
1=Interlock Bypassing is Active (ignore bypassable interlocks)
Individual Interlock Status (1=Stop, 0=OK)
Interlock First Out Status (bit 1 is First Not-OK condition)
1=Ready to receive OCmd_Reset (reset required)
Unique Parameter Name for auto - discovery

Extended Description
This Instruction monitors up to 16 Interlock conditions. It provides these features:
* The "OK" state of each Interlock Input is configurable. By default,
each Input is 1 to trip, 0 when OK to run.
* Interlocks may be configured as Latched. Latched Interlocks
require a Reset Command to clear. The latching function can be
inhibited via a Latch Defeat input, for example, to avoid latching
Interlocks for a stopped motor.
* Interlocks may be configured as Bypassable; Non-Bypassable
Interlocks are reported separately so the destination object can
decide whether to bypass (ignore) bypassable interlocks, such
as in Maintenance Mode.
* First-Out reporting indicates the first condition that caused the
running equipment to be tripped.
Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Set summary "OK" Status bits to FALSE (0)
Check Interlock Conditions
Clear "lurking" Commands

Revision v2.0 00 Release Notes


See Release Notes for Library version 2.0 for details on changes for this release.
Change History
Created:
Created By:
Edited:
Edited By:

02/04/2008 10,58,50
Not Available
30/09/2011 08,10,57
PLANTPAX\Library

Signature
ID:
Timestamp:

A183CEE3
2011-09-30T14:10:57.328Z

Cross Reference
Container
Equipos

Routine
Blk_Agitadores

Location
Sheet 1, B1

Tag
P_Motor_M500_Intlk
RSLogix 5000

P_Intlk - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk

Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos

Blk_Agitadores
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas

Sheet 2, B1
Sheet 1, C1
Sheet 2, B1
Sheet 3, C1
Sheet 4, B1
Sheet 5, B1
Sheet 6, B1
Sheet 1, C1
Sheet 2, D1
Sheet 3, C1
Sheet 4, D2
Sheet 5, B1
Sheet 6, B2

Page 3
22/12/2015 08,58,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Motor_M600_Intlk
P_Motor_M400_Intlk
P_Motor_M100_Intlk
P_Motor_M300_Intlk
P_Motor_M700_Intlk
P_Motor_Alix_Intlk
P_Motor_Agua_Hielo_Intlk
P_ValveSO_300_Intlk
P_ValveSO_310_Intlk
P_ValveSO_V350_Intlk
P_AOut_V320_Intlk
P_ValveSO_V370_Intlk
P_AOut_V360_Intlk

RSLogix 5000

P_Intlk Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Type Size: 528 byte (s)
Data Context: P_Intlk <definition>
Name
Default
2#0000_0000_0000_0000
Cfg_Bypassable
Set bits indicate which conditions can be bypassed
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Bypassable - P_Intlk/Logic - 6(NOT)

Page 4
22/12/2015 08,58,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
INT

Scope
P_Intlk

2#0000_0000_0000_0000
Cfg_Latched
Set bits indicate which conditions are latched (sealed in)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Latched - P_Intlk/Logic - 11(CMP), 4(OR)

INT

P_Intlk

2#0000_0000_0000_0000
Cfg_OKState
Bits indicate which state (0 or 1) of each input is OK to run
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OKState - P_Intlk/Logic - 1(XOR)

INT

P_Intlk

1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PCmdClear - P_Intlk/Logic - 2(XIC)

BOOL

P_Intlk

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Intlk

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Intlk

0
BOOL
Inp_BypActive
1=Interlock Bypassing is currently active
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_BypActive - P_Intlk/Logic - 10(XIC), 7(XIC), 7(XIO), 8(XIC), 8(XIO), 9(XIC), 9(XIO)

P_Intlk

0
Inp_Intlk00
Interlock Cond. 00, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.0
Base Tag:
Wrk_Inp.0
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

BOOL

P_Intlk

Inp_Intlk01

RSLogix 5000

P_Intlk Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Type Size: 528 byte (s)
Data Context: P_Intlk <definition>

Page 5
22/12/2015 08,58,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Intlk01 (Continued)
Interlock Cond. 01, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.1
Base Tag:
Wrk_Inp.1
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)
0
Inp_Intlk02
Interlock Cond. 02, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.2
Base Tag:
Wrk_Inp.2
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk03
Interlock Cond. 03, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.3
Base Tag:
Wrk_Inp.3
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk04
Interlock Cond. 04, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.4
Base Tag:
Wrk_Inp.4
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk05
Interlock Cond. 05, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.5
Base Tag:
Wrk_Inp.5
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk06
Interlock Cond. 06, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.6
Base Tag:
Wrk_Inp.6
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

BOOL

P_Intlk

Inp_Intlk07

RSLogix 5000

P_Intlk Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Type Size: 528 byte (s)
Data Context: P_Intlk <definition>

Page 6
22/12/2015 08,58,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Intlk07 (Continued)
Interlock Cond. 07, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.7
Base Tag:
Wrk_Inp.7
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)
0
Inp_Intlk08
Interlock Cond. 08, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.8
Base Tag:
Wrk_Inp.8
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk09
Interlock Cond. 09, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.9
Base Tag:
Wrk_Inp.9
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk10
Interlock Cond. 10, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.10
Base Tag:
Wrk_Inp.10
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk11
Interlock Cond. 11, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.11
Base Tag:
Wrk_Inp.11
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk12
Interlock Cond. 12, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.12
Base Tag:
Wrk_Inp.12
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

BOOL

P_Intlk

Inp_Intlk13

RSLogix 5000

P_Intlk Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Type Size: 528 byte (s)
Data Context: P_Intlk <definition>

Page 7
22/12/2015 08,58,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Intlk13 (Continued)
Interlock Cond. 13, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.13
Base Tag:
Wrk_Inp.13
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)
0
Inp_Intlk14
Interlock Cond. 14, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.14
Base Tag:
Wrk_Inp.14
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_Intlk15
Interlock Cond. 15, Stop if not in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.15
Base Tag:
Wrk_Inp.15
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

BOOL

P_Intlk

0
Inp_LatchDefeat
Latch Defeat 1=Do not latch inputs even if configured for latching
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_LatchDefeat - P_Intlk/Logic - 3(XIC), 4(XIO)

BOOL

P_Intlk

0
Inp_Reset
1=Reset Latched Interlocks and First-Out
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Reset - P_Intlk/Logic - 2(XIC)

BOOL

P_Intlk

0
OCmd_Reset
Operator Command to Reset Latched Interlocks
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_Intlk/EnableInFalse - *0(OTU)
OCmd_Reset - P_Intlk/Logic - *2(OTU), 2(XIC)
OCmd_Reset - P_Intlk/Prescan - *0(OTU)

BOOL

P_Intlk

0
PCmd_Reset
Program Command to Reset Latched Interlocks
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_Intlk/EnableInFalse - *0(OTU)
PCmd_Reset - P_Intlk/Logic - *2(OTU), 2(XIC)

BOOL

P_Intlk

RSLogix 5000

P_Intlk Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Type Size: 528 byte (s)
Data Context: P_Intlk <definition>

Page 8
22/12/2015 08,58,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_Reset (Continued)
PCmd_Reset - P_Intlk/Prescan - *0(OTU)
0
P_Intlk
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Intlk

0
Rdy_Reset
1=Ready to receive OCmd_Reset (reset required)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_Intlk/EnableInFalse - *1(OTU)
Rdy_Reset - P_Intlk/Logic - *11(OTE)

BOOL

P_Intlk

0
Sts_BypActive
1=Interlock Bypassing is Active (ignore bypassable interlocks)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_BypActive - P_Intlk/Logic - *10(OTE)

BOOL

P_Intlk

2#0000_0000_0000_0000
Sts_FirstOut
Interlock First Out Status (bit 1 is First Not-OK condition)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_FirstOut - P_Intlk/Logic - *10(MOV)

INT

P_Intlk

2#0000_0000_0000_0000
Sts_Intlk
Individual Interlock Status (1=Stop, 0=OK)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Intlk - P_Intlk/Logic - *10(MOV)

INT

P_Intlk

1
Sts_IntlkOK
Overall Interlock Status (1=OK to run, 0=Stop)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_IntlkOK - P_Intlk/EnableInFalse - *2(OTU)
Sts_IntlkOK - P_Intlk/Logic - *10(OTE)

BOOL

P_Intlk

1
Sts_NBIntlkOK
Non-Bypassable Interlock Status (1=All NB Interlocks OK to run)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_NBIntlkOK - P_Intlk/EnableInFalse - *2(OTU)
Sts_NBIntlkOK - P_Intlk/Logic - *10(OTE)

BOOL

P_Intlk

RSLogix 5000

P_Intlk Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Context: P_Intlk <definition>

Name
Default
Cfg_CondTxt
Short HMI description of Interlock Conditions
Usage:
Local Tag
External Access:
Read/Write
'Enter Description #0'
Cfg_CondTxt[0]
Short HMI description of Interlock Conditions
Cfg_CondTxt[0] - P_Intlk/Logic - 0(LOWER)
20
Cfg_CondTxt[0].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[0].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[1]
Short HMI description of Interlock Conditions
Cfg_CondTxt[1] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[1].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[1].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[2]
Short HMI description of Interlock Conditions
Cfg_CondTxt[2] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[2].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[2].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[3]
Short HMI description of Interlock Conditions
Cfg_CondTxt[3] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[3].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[3].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[4]
Short HMI description of Interlock Conditions
Cfg_CondTxt[4] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[4].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[4].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[5]
Short HMI description of Interlock Conditions
Cfg_CondTxt[5] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[5].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[5].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[6]
Short HMI description of Interlock Conditions
Cfg_CondTxt[6] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[6].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[6].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[7]
Short HMI description of Interlock Conditions
Cfg_CondTxt[7] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[7].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[7].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[8]
Short HMI description of Interlock Conditions
Cfg_CondTxt[8] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[8].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[8].DATA

Page 9
22/12/2015 08,58,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_20[16]

Scope
P_Intlk

STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
RSLogix 5000

P_Intlk Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Context: P_Intlk <definition>

Cfg_CondTxt (Continued)
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[9]
Short HMI description of Interlock Conditions
Cfg_CondTxt[9] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[9].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[9].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[10]
Short HMI description of Interlock Conditions
Cfg_CondTxt[10] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[10].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[10].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[11]
Short HMI description of Interlock Conditions
Cfg_CondTxt[11] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[11].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[11].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[12]
Short HMI description of Interlock Conditions
Cfg_CondTxt[12] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[12].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[12].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[13]
Short HMI description of Interlock Conditions
Cfg_CondTxt[13] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[13].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[13].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[14]
Short HMI description of Interlock Conditions
Cfg_CondTxt[14] - P_Intlk/Logic - 0(LOWER)
0
Cfg_CondTxt[14].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[14].DATA
Short HMI description of Interlock Conditions
''
Cfg_CondTxt[15]
Short HMI description of Interlock Conditions
Cfg_CondTxt[15] - P_Intlk/Logic - *0(LOWER)
0
Cfg_CondTxt[15].LEN
Short HMI description of Interlock Conditions
Cfg_CondTxt[15].DATA
Short HMI description of Interlock Conditions

Page 10
22/12/2015 08,58,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT

'Interlocks with First Out'


Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_Intlk/Logic - *0(LOWER)
25
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

STRING_40

'Interlocks'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_Intlk/Logic - 0(LOWER)

STRING_20

P_Intlk

DINT
SINT
P_Intlk

RSLogix 5000

P_Intlk Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Context: P_Intlk <definition>

Cfg_Label (Continued)
10
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI
'P_Intlk'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_Intlk/Logic - 0(LOWER)
7
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI
Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

Page 11
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
SINT
STRING_20

P_Intlk

DINT
SINT
SINT

P_Intlk

STRING_16

P_Intlk

Local Tag
Read/Write

'P_Intlk'
Inf_Type
Type identifier for HMI navigation
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_Intlk/Logic - *0(LOWER)
7
Inf_Type.LEN
Type identifier for HMI navigation
Inf_Type.DATA
Type identifier for HMI navigation

DINT
SINT

2#0000_0000_0000_0000
Wrk_FirstOut
Working register for First Out logic
Usage:
Local Tag
External Access:
None
Wrk_FirstOut - P_Intlk/Logic - *7(CLR), *8(CPT), 10(MOV), 8(EQU)

INT

P_Intlk

2#0000_0000_0000_0000
Wrk_Inp
Collection copy of Inp_IntlkXXs
Usage:
Local Tag
External Access:
Read/Write
Wrk_Inp - P_Intlk/Logic - 1(XOR)

INT

P_Intlk

2#0000_0000_0000_0000
INT
Wrk_InpInv
Input states after inversion based on Cfg_OKState
Usage:
Local Tag
External Access:
None
Wrk_InpInv - P_Intlk/Logic - *1(XOR), 11(CMP), 4(MOV), 4(OR), 5(OR)

P_Intlk

2#0000_0000_0000_0000
Wrk_Intlk
Working register for Interlock logic
Usage:
Local Tag
External Access:
None
Wrk_Intlk - P_Intlk/Logic - *4(MOV), *4(OR), 4(AND)

INT

P_Intlk

1
Wrk_LatchEnable
1=Latch interlock if configured to latch, 0=don't latch
Usage:
Local Tag
External Access:
None
Wrk_LatchEnable - P_Intlk/Logic - *3(OTU), *4(OTL), 4(XIC), 4(XIO)

BOOL

P_Intlk

2#0000_0000_0000_0000
INT
Wrk_NB
Working register for Non-Bypassable Interlock ogic
Usage:
Local Tag
External Access:
None
Wrk_NB - P_Intlk/Logic - *6(AND), *6(NOT), 10(EQU), 6(AND), 7(EQU), 8(CPT), 9(MOV)

P_Intlk

RSLogix 5000

P_Intlk Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Data Context: P_Intlk <definition>

2#0000_0000_0000_0000
Wrk_PrevSts
Interlock Status previous scan
Usage:
Local Tag
External Access:
None
Wrk_PrevSts - P_Intlk/Logic - *9(MOV), 8(CPT)

Page 12
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

INT

P_Intlk

2#0000_0000_0000_0000
INT
P_Intlk
Wrk_Sts
Working register for generating Interlock status
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_Intlk/Logic - *2(CLR), *4(AND), *5(OR), 10(EQU), 10(MOV), 11(CMP), 3(EQU), 4(AND), 5(OR), 6(AND), 7(EQU), 8(CPT),
9(MOV)

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 13
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


============================================================
P_Intlk: PROCESS -- INTERLOCKS
============================================================
Revision 2.0-00 Release: 2011-09-30
Added self-name parameter and Inf_Type for navigation, auto-discovery.
Using V18 parameter aliasing, eliminated input mapping rungs.
Added Cfg_Desc, Cfg_Label, Cfg_Tag STRINGs.
Added display of Local STRING Tags on header (this) rung.
============================================================
This Instruction monitors up to 16 Interlock conditions. It provides these features:
* The "OK" state of each Interlock Input is configurable.
By default, each Input is 1 to trip, 0 when OK to run.
* Interlocks may be configured as Latched. Latched Interlocks
require a Reset Command to clear. The latching function can be inhibited
via a Latch Defeat input, for example, to avoid latching Interlocks for a stopped motor.
* Interlocks may be configured as Bypassable. Bypassable Interlocks are reported
separately; the destination object can use this information to bypass these
Interlocks in Maintenance Mode or upon command.
* First-Out reporting indicates the first condition that
caused the running equipment to be tripped.
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
LOWER
Lower Case
Lower Case
Source Cfg_Tag
Dest Inf_Type
Source Cfg_Label
Dest
Cfg_Desc
'P_Intlk'
'P_Intlk'
'Interlocks'
'Interlocks with Firs'

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[0]
'Enter Description #0'

Dest Cfg_CondTxt[1]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[2]
''

Dest Cfg_CondTxt[3]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[4]
''

Dest Cfg_CondTxt[5]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[6]

Dest Cfg_CondTxt[7]

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 14
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


Source Cfg_CondTxt[6]
''

Dest Cfg_CondTxt[7]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[8]
''

Dest Cfg_CondTxt[9]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[10]
''

Dest Cfg_CondTxt[11]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[12]
''

Dest Cfg_CondTxt[13]
''

Short HMI
description of
Interlock Conditions
LOWER
Lower Case
Source Cfg_CondTxt[14]
''

Cfg_CondTxt[0]

0(LOWER)

Cfg_CondTxt[1]

*0(LOWER)

Cfg_CondTxt[2]

0(LOWER)

Cfg_CondTxt[3]

*0(LOWER)

Cfg_CondTxt[4]

0(LOWER)

Cfg_CondTxt[5]

*0(LOWER)

Cfg_CondTxt[6]

0(LOWER)

Cfg_CondTxt[7]

*0(LOWER)

Cfg_CondTxt[8]

0(LOWER)

Cfg_CondTxt[9]

*0(LOWER)

Cfg_CondTxt[10]

0(LOWER)

Cfg_CondTxt[11]

*0(LOWER)

Cfg_CondTxt[12]

0(LOWER)

Cfg_CondTxt[13]

*0(LOWER)

Cfg_CondTxt[14]

0(LOWER)

Dest Cfg_CondTxt[15]
''

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Total number of rungs in routine: %1!d!
Cfg_CondTxt[15]

*0(LOWER)

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

SkipText
LBL

Page 15
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
INPUT GATHERING ##### V2.0 2011-09-30 #####
============================================================
This object uses word-wise logic. The 16 interlock inputs are aliased
to the Wrk_Inp word, so no logic is needed to collect the individual
conditions. We can immediately start processing the interlock logic.
============================================================
HANDLE "OK STATE" INVERSIONS
============================================================
This rung inverts the Input bits whose "OK State" is 1 (0 to Stop).
The resulting Wrk_Inp word is ZERO if all interlock inputs are "OK".
Input states after
inversion based on
Cfg_OKState
XOR
Bitwise Exclusive OR
Source A
Wrk_Inp
Dest
Wrk_InpInv
2#0000_0000_0000_0000
2#0000_0000_0000_0000
Source B
Cfg_OKState
2#0000_0000_0000_0000

Cfg_OKState

1(XOR)

Wrk_Inp

1(XOR)

Wrk_InpInv

*1(XOR) 4(OR) 4(MOV) 5(OR) 11(CMP)

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 16
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


============================================================
COMMAND PROCESSING
============================================================
On receipt of a Reset Command, the output
Interlock Status (internal copy, actually) is cleared.
(Later logic may fill this in again if some Interlock conditions are true...)
NOTE: This object is "Modeless" -- Operator and Program Commands
are accepted at any time.
1=Clear Program
Program Command to
Working register for
Commands on receipt
Reset Latched
generating Interlock
0=Leave Set
Interlocks
status
Cfg_PCmdClear
PCmd_Reset
CLR
U
Clear
Dest
Wrk_Sts
2#0000_0000_0000_0000
NOP

Program Command to
Reset Latched
Interlocks
PCmd_Reset
2

Operator Command to
Reset Latched
Interlocks
OCmd_Reset

Operator Command to
Reset Latched
Interlocks
OCmd_Reset
U

1=Reset Latched
Interlocks and
First-Out
Inp_Reset

Cfg_PCmdClear

2(XIC)

Inp_Reset

2(XIC)

OCmd_Reset

2(XIC) *2(OTU)

PCmd_Reset

2(XIC) *2(OTU)

Wrk_Sts

*2(CLR) 3(EQU) *4(AND) 4(AND) *5(OR) 5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(MOV) 10(EQU) 11(CMP)

If the Latch Defeat Input is ON (say, motor not running) and the stored interlock
status is clear (typically, after we get a reset in the rung above),
switch to "not latching" for all interlock inputs (regardless of Cfg_Latched).

This has the effect of keeping the Latch Enable work bit ON until a Reset is received.
Hence this is part of the "reset command processing" logic....
Latch Defeat 1=Do
not latch inputs
Working register for
even if configured
generating Interlock
for latching
status
Inp_LatchDefeat
EQU
Equal
Source A
Wrk_Sts
2#0000_0000_0000_0000
Source B
0

1=Latch interlock if
configured to latch,
0=don't latch
Wrk_LatchEnable
U

Inp_LatchDefeat

3(XIC) 4(XIO)

Wrk_LatchEnable

*3(OTU) 4(XIO) 4(XIC) *4(OTL)

Wrk_Sts

*2(CLR) 3(EQU) *4(AND) 4(AND) *5(OR) 5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(MOV) 10(EQU) 11(CMP)

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 17
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


============================================================
INTERLOCK PROCESSING
============================================================
This rung clears any bits in the stored Interlock status for which the
Input bit is OFF and the bit is NOT configured as Latched.
If the LatchDefeat input in OFF, set the internal Latch Enable work bit.
If this bit is ON, don't clear any latched bits with this rung (keep them latched).
If this bit is OFF, clear any bits that are NOT on in the input, whether
configured for latching or not!
Latch Defeat 1=Do
not latch inputs
even if configured
for latching
Inp_LatchDefeat
/

1=Latch interlock if
configured to latch,
0=don't latch
Wrk_LatchEnable

1=Latch interlock if
configured to latch,
0=don't latch
Wrk_LatchEnable
/

1=Latch interlock if
configured to latch,
0=don't latch
Wrk_LatchEnable
L
Working register for
Interlock logic
OR
Bitwise Inclusive OR
Source A
Cfg_Latched
Dest
Wrk_Intlk
2#0000_0000_0000_0000
2#0000_0000_0000_0000
Source B
Wrk_InpInv
2#0000_0000_0000_0000

Working register for


Interlock logic
MOV
Move
Wrk_InpInv
Source
2#0000_0000_0000_0000

Dest
Wrk_Intlk
2#0000_0000_0000_0000

Working register for


generating Interlock
status
AND
Bitwise AND
Wrk_Sts
Source A
2#0000_0000_0000_0000
Source B
Wrk_Intlk
2#0000_0000_0000_0000

Dest
Wrk_Sts
2#0000_0000_0000_0000

Cfg_Latched

4(OR) 11(CMP)

Inp_LatchDefeat

3(XIC) 4(XIO)

Wrk_InpInv

*1(XOR) 4(OR) 4(MOV) 5(OR) 11(CMP)

Wrk_Intlk

*4(OR) 4(AND) *4(MOV)

Wrk_LatchEnable

*3(OTU) *4(OTL) 4(XIO) 4(XIC)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) 5(OR) *5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(EQU) 10(MOV) 11(CMP)

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 18
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


This rung SETS Interlock status bits for any Interlock condition Input that is true.
Working register for
generating Interlock
status
OR
Bitwise Inclusive OR
Source A
Wrk_Sts
Dest
Wrk_Sts
2#0000_0000_0000_0000
2#0000_0000_0000_0000
Source B
Wrk_InpInv
2#0000_0000_0000_0000

Wrk_InpInv

*1(XOR) 4(OR) 4(MOV) 5(OR) 11(CMP)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) *5(OR) 5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(MOV) 10(EQU) 11(CMP)

The internal Non-Bypassable Interlocks word has bits set only if the Input is TRUE
AND the bit is configured as a NON-bypassable Interlock.
Working register for
Non-Bypassable
Interlock ogic
NOT
Bitwise NOT
Source
Cfg_Bypassable
2#0000_0000_0000_0000

Dest
Wrk_NB
2#0000_0000_0000_0000

Working register for


Non-Bypassable
Interlock ogic
AND
Bitwise AND
Source A
Wrk_Sts
2#0000_0000_0000_0000
Source B
Wrk_NB
2#0000_0000_0000_0000

Dest
Wrk_NB
2#0000_0000_0000_0000

Cfg_Bypassable

6(NOT)

Wrk_NB

*6(AND) 6(AND) *6(NOT) 7(EQU) 8(CPT) 9(MOV) 10(EQU)

Wrk_Sts

*2(CLR) 3(EQU) *4(AND) 4(AND) 5(OR) *5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(EQU) 10(MOV) 11(CMP)

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 19
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


If the stored Interlock status is now clear (all bits 0), then the
First Out storage is cleared.

1=Interlock
Bypassing is
currently active
Inp_BypActive
/

1=Interlock
Bypassing is
currently active
Inp_BypActive

Which stored Interlock status we check depends on whether


bypassable interlocks are bypassed or not.
Working register for
generating Interlock
status
EQU
Equal
Source A
Wrk_Sts
2#0000_0000_0000_0000
Source B
0

Working register for


First Out logic
CLR
Clear
Dest
Wrk_FirstOut
2#0000_0000_0000_0000

Working register for


Non-Bypassable
Interlock ogic
EQU
Equal
Wrk_NB
Source A
2#0000_0000_0000_0000
Source B
0

Inp_BypActive

7(XIC) 7(XIO) 8(XIO) 8(XIC) 9(XIO) 9(XIC) 10(XIC)

Wrk_FirstOut

*7(CLR) *8(CPT) 8(EQU) 10(MOV)

Wrk_NB

6(AND) *6(AND) *6(NOT) 7(EQU) 8(CPT) 9(MOV) 10(EQU)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) 5(OR) *5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(EQU) 10(MOV) 11(CMP)

RSLogix 5000

P_Intlk Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Logic
Total number of rungs in routine: 12
Data Context: P_Intlk <definition>

Page 20
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Interlock Conditions


Now that we have the final Interlock Status bits, if the First Out status is clear,
this rung will SET the First Out status for any Interlock conditions that
made it this far. (Ideally there would only be ONE: the "first" condition!)
Which condition we check for First Out" depends on whether
bypassable interlocks are bypassed or not.

Working register for


First Out logic
EQU
Equal
Source A
Wrk_FirstOut
2#0000_0000_0000_0000
Source B
0

1=Interlock
Bypassing is
currently active
Inp_BypActive
/

Working register for


First Out logic
CPT
Compute
Expression (Wrk_Sts)AND(NOT(Wrk_PrevSts))

1=Interlock
Bypassing is
currently active
Inp_BypActive

Dest
Wrk_FirstOut
2#0000_0000_0000_0000

Working register for


First Out logic
CPT
Compute
Expression (Wrk_NB)AND(NOT(Wrk_PrevSts))

Dest
Wrk_FirstOut
2#0000_0000_0000_0000

Inp_BypActive

7(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 9(XIC) 10(XIC)

Wrk_FirstOut

*7(CLR) 8(EQU) *8(CPT) 10(MOV)

Wrk_NB

*6(AND) *6(NOT) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(EQU)

Wrk_PrevSts

8(CPT) *9(MOV)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) *5(OR) 5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(MOV) 10(EQU) 11(CMP)

The value used for "First Out" generation this scan is stored
as the "previous" value for use in the above logic next scan.
1=Interlock
Bypassing is
Interlock Status
currently active
previous scan
Inp_BypActive
MOV
/
Move
Source
Wrk_Sts
Dest
Wrk_PrevSts
2#0000_0000_0000_0000
2#0000_0000_0000_0000
1=Interlock
Bypassing is
currently active
Inp_BypActive

Interlock Status
previous scan
MOV
Move
Source
Wrk_NB
2#0000_0000_0000_0000

Dest
Wrk_PrevSts
2#0000_0000_0000_0000

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Total number of rungs in routine: %1!d!

Page 21
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_BypActive

7(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 9(XIC) 10(XIC)

Wrk_NB

*6(NOT) *6(AND) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(EQU)

Wrk_PrevSts

8(CPT) *9(MOV)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) *5(OR) 5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(MOV) 10(EQU) 11(CMP)

============================================================
STATUS GENERATION
============================================================
This rung generates the public Status for this object.
If all the Interlock Status bits are zero, there is no condition to
shut down the affected equipment. In that case, show the Interlock Status as "OK"
Similar logic applies for the Non-Bypassable Interlocks OK Status.
Also show the individual Interlock Status bits and the First Out Status bits.
NOTE: Working registers are used to prevent outside writes to the Sts_xxx
parameters from affecting the state of this object!
Overall Interlock
Working register for
Status (1=OK to run,
generating Interlock
0=Stop)
status
Sts_IntlkOK
EQU
Equal
Wrk_Sts
Source A
2#0000_0000_0000_0000
Source B
0

10

Non-Bypassable
Interlock Status
(1=All NB Interlocks
OK to run)
Sts_NBIntlkOK

Working register for


Non-Bypassable
Interlock ogic
EQU
Equal
Source A
Wrk_NB
2#0000_0000_0000_0000
Source B
0

1=Interlock
Bypassing is Active
(ignore bypassable
interlocks)
Sts_BypActive

1=Interlock
Bypassing is
currently active
Inp_BypActive
Individual Interlock
Status (1=Stop,
0=OK)
MOV
Move
Source
Wrk_Sts
2#0000_0000_0000_0000

Dest
Sts_Intlk
2#0000_0000_0000_0000

Interlock First Out


Status (bit 1 is
First Not-OK
condition)
MOV
Move
Source
Wrk_FirstOut
2#0000_0000_0000_0000

Inp_BypActive

7(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 9(XIC) 10(XIC)

Sts_BypActive

*10(OTE)

Sts_FirstOut

*10(MOV)

Dest
Sts_FirstOut
2#0000_0000_0000_0000

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk
Total number of rungs in routine: %1!d!

Page 22
22/12/2015 08,58,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Intlk

*10(MOV)

Sts_IntlkOK

*10(OTE)

Sts_NBIntlkOK

*10(OTE)

Wrk_FirstOut

*7(CLR) *8(CPT) 8(EQU) 10(MOV)

Wrk_NB

6(AND) *6(AND) *6(NOT) 7(EQU) 8(CPT) 9(MOV) 10(EQU)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) *5(OR) 5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(MOV) 10(EQU) 11(CMP)

============================================================
COMMAND READIES
============================================================
This Interlock ojbect is ready for (needs) a RESET Command
if any Latched Interlocks are SET.

11

CMP
Compare
Expression (NOT(Wrk_InpInv))AND(Wrk_Sts)AND(Cfg_Latched)

1=Ready to receive
OCmd_Reset (reset
required)
Rdy_Reset

Cfg_Latched

4(OR) 11(CMP)

Rdy_Reset

*11(OTE)

Wrk_InpInv

*1(XOR) 4(OR) 4(MOV) 5(OR) 11(CMP)

Wrk_Sts

*2(CLR) 3(EQU) 4(AND) *4(AND) 5(OR) *5(OR) 6(AND) 7(EQU) 8(CPT) 9(MOV) 10(EQU) 10(MOV) 11(CMP)

(End)

RSLogix 5000

P_Intlk Instruction Definition - Prescan Routine (Inhibited)


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:Prescan
Total number of rungs in routine: 1
Data Context: P_Intlk <definition>

Page 23
22/12/2015 08,58,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.
Operator Command to
Reset Latched
Interlocks
OCmd_Reset
U

OCmd_Reset

*0(OTU)

PCmd_Reset

*0(OTU)

Program Command to
Reset Latched
Interlocks
PCmd_Reset
U

(End)

RSLogix 5000

P_Intlk Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Intlk:EnableInFalse
Total number of rungs in routine: 3
Data Context: P_Intlk <definition>

Page 24
22/12/2015 08,58,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Set summary "OK" Status bits to FALSE (0)


============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
Clear "Lurking" Commands (received while on false rung).
Operator Command to
Reset Latched
Interlocks
OCmd_Reset
U

OCmd_Reset

*0(OTU)

PCmd_Reset

*0(OTU)

Program Command to
Reset Latched
Interlocks
PCmd_Reset
U

Since we're not processing Operator Commands, we're not READY for them either!
1=Ready to receive
OCmd_Reset (reset
required)
Rdy_Reset
U

Rdy_Reset

*1(OTU)

If this Interlocks instruction is OFF-SCAN (rung is false or EnableIn is false in FBD),


then set the summary Interlock OK Status bits to FALSE (0).
Overall Interlock
Status (1=OK to run,
0=Stop)
Sts_IntlkOK
U

Sts_IntlkOK

*2(OTU)

Sts_NBIntlkOK

*2(OTU)

Non-Bypassable
Interlock Status
(1=All NB Interlocks
OK to run)
Sts_NBIntlkOK
U

(End)

RSLogix 5000

P_Logic - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic

Page 1
22/12/2015 08,59,05
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Logic v2.0 01 Release


Rockwell Automation

Boolean Logic
Available Languages
Relay Ladder

Function Block

Structured Text
P_Logic();
Parameters
Required
X

Name
P_Logic
EnableIn
EnableOut
Inp_0
Inp_1
Inp_2
Inp_3
Inp_4
Inp_5
Inp_6
Inp_7
Inp_Hold
Inp_Reset
Cfg_UseInpHold
Cfg_UsePCmd
Cfg_UseOCmd
Cfg_UseOut01

Data Type
P_Logic
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input

Description
Boolean Logic
Logic Input 0
Logic Input 1
Logic Input 2
Logic Input 3
Logic Input 4
Logic Input 5
Logic Input 6
Logic Input 7
1=Hold prev states in Snapshot; 0=Pass live states to Snapshot
1=Reset Snapshot latch, show live states
1=Use Inp_Hold to snap state; 0=Use Cmds or Output transition to snap
1=Enable snapshot on PCmd_Snap 0 --> 1 (edge)
1=Enable snapshot on OCmd_Snap 0 --> 1 (edge)
1=Enable snapshot on Output 0 --> 1 (rising edge)
RSLogix 5000

P_Logic - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic

Cfg_UseOut10
Cfg_TSonSnap
Cfg_SnapOver
Cfg_OnDelay
Cfg_OffDelay
PCmd_Snap
PCmd_Reset
OCmd_Snap
OCmd_Reset
Out_Live
Out_Snap
Val_DelayPctLive
Val_DelayPctSnap
Val_SnapInit
Sts_Snapped
Sts_InpLive
Sts_GateLive
Sts_InpSnap
Sts_GateSnap
Sts_GateSrc1Live
Sts_GateSrc2Live
Sts_GateSrc3Live
Sts_GateSrc4Live
Sts_GateSrc1Snap
Sts_GateSrc2Snap
Sts_GateSrc3Snap
Sts_GateSrc4Snap
Sts_OutInvLive
Sts_OutInvSnap
Sts_Err
Err_GateFunc
Err_GateSrcPtr
Err_GateSrcMask
Err_OutSrcPtr
Err_Timer
Rdy_Snap
Rdy_Reset
P_Logic

BOOL
BOOL
BOOL
DINT
DINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
DINT
DINT
DINT
BOOL
SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT
BOOL
BOOL
BOOL
SINT
SINT
SINT
BOOL
BOOL
BOOL
BOOL
BOOL

Input
Input
Input
Input
Input
Input
Input
Input
Input
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output

Page 2
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1=Enable snapshot on Output 1 --> 0 (falling edge)


1=Generate a TimeStamp when Snapshot occurs
1=New snapshot overwrites without reset, 0=save first snapshot till reset
Output ON delay time (sec)
Output OFF delay time (sec)
Program Command to capture Input, Gate states in Snapshot
Program Command to Reset (re-arm) Snapshot Latch
Operator Command to capture Input, Gate states in Snapshot
Operator Command to Reset (re-arm) Snapshot Latch
Condition Logic Output (result) after delay
Condition Logic Output (result) at Snapshot
Output OnDelay or OffDelay percent complete: live
Output OnDelay or OffDelay percent complete: snapshot
Snapshot Initiator: 1=OCmd, 2=PCmd, 3=Out 0-->1, 4=Out 1-->0, 5=Inp_Hold
1=Snapshot has been triggered, 0=Snapshot showing live states
Live Input Status bits: .0 to .7 = Inp_0 to Inp_7
Live Gate Result Status bits: .0 to .7 = Gate 0 to 7
Snapshot of Input Status bits: .0 to .7 = Inp_0 to Inp_7
Snapshot of Gate Result Status bits: .0 to .7 = Gate 0 to 7
Live wire state for Source 1 of each gate (bit# = gate#)
Live wire state for Source 2 of each gate (bit# = gate#)
Live wire state for Source 3 of each gate (bit# = gate#)
Live wire state for Source 4 of each gate (bit# = gate#)
Snapshot of Wire state for Source 1 of each gate (bit# = gate#)
Snapshot of Wire state for Source 2 of each gate (bit# = gate#)
Snapshot of Wire state for Source 3 of each gate (bit# = gate#)
Snapshot of Wire state for Source 4 of each gate (bit# = gate#)
Output after inverter but before TON/TOF timers
Snapshot of Output after inverter but before TON/TOF
1=Error in Config: see detail bits for reason
1=Error in each Gate's Function Code (use 0 to 6)
1=Error in each Gate's Source Pointer (use 0 to 15)
1=Error in each Gate's Mask (source used) configuration (qty, choice)
1=Error in Output's Source Pointer (use 0 to 15)
1=Error in Output's On Delay or Off Delay Preset (use 0 to 2147483)
1=Ready to receive OCmd_Snap (enables button)
1=Ready to receive OCmd_Reset (enables button)
Unique Parameter Name for auto - discovery

Extended Description

RSLogix 5000

P_Logic - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic

Page 3
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

This Instruction executes logic on up to 8 input conditions.


It provides these features:
* Up to eight 4-source logic gates can be used.
* Each of the gates can be configured as:
- an AND Gate(result true if ALL sources are true)
- an OR Gate (result true if ANY source is true)
- an XOR (exclusive OR) Gate (result true if an ODD
number of sources are true)
- a Majority (1oo1: 2oo2, 2oo3 or 3oo4) Voting Gate
(result true if a majority of sources are true)
- a Set-Reset (Latch) Gate (result turned ON by Set
source, turned OFF by Reset source)
- a Select Gate (result = Source A if selector false, Source B if true)
* Each of the 4 sources for each gate can be configured to be
any of the instruction's inputs or any gate's result.
* Each of the 4 sources for each gate can be enabled or disabled
and can be optionally inverted (logical NOT).
* Any input or gate result can be selected, and optionally inverted,
as the source for the instruction output
* The output has OnDelay and OffDelay timers; the output bit is set when
the source for the output is true for the OnDelay time; the
output is cleared when the source is false for the OffDelay time.
* A status register is updated with the states of all inputs and gate results.
* Snapshot registers capture the instruction state either when the Output
goes to its configured "snap state", on Command, or when
Inp_Hold input is true (configurable) (for example, for capture
for Root Cause Failure Analysis of Interlocks). The snapshot can be
configured for "snap first" requiring a reset before the next snapshot
can be taked, or "snap over" ("snap last") where a snapshot is
captured with each snapshot condition (without reset).
Configuration Error Rules:
* If a gate has no gate type selected (function code = 0),
no error is flagged (NULL gate) and its Result bit is cleared.
* If a gate has an invalid function code, an error (function code)
is flagged and the Result bit is held in its last state.
* If a gate has an invalid source pointer, an error (source pointer)
is flagged and the Result bit is held in its last state.
* If a gate has a valid function code but no sources enabled (used),
an error (sources used) is flagged and the Result bit is held in its
last state.
* For Set/Reset, at least one of the Set sources and at least one of
the Reset sources must be used.
* For Selector, source 3 (the select) must be used and at least one
of the A (source 1) or B (source 2) sources must be used.
* All other gates can have any number of sources used from 1 to 4.

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Set Output to False and reset On-Delay and Off-Delay output timers
Examine Inputs and execute Logic Gates and Output timers
Reset On-Delay and Off-Delay timers, clear snapshot timestamp and internal data, clear "lurking" commands

Revision v2.0 01 Release Notes


Improved handling of timers with presets = 0.
Change History
Created:
Created By:
Edited:
Edited By:

02/04/2008 10,58,50
Not Available
23/08/2012 01,41,42
PLANTPAX\Library
RSLogix 5000

P_Logic - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic

Page 4
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Signature
ID:
Timestamp:

88E83041
2012-08-23T19:41:42.950Z

Cross Reference

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>
Name
Default
0
Cfg_OffDelay
Output OFF delay time (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OffDelay - P_Logic/Logic - 16(MUL)

Page 5
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
DINT

Scope
P_Logic

0
Cfg_OnDelay
Output ON delay time (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OnDelay - P_Logic/Logic - 16(MUL)

DINT

P_Logic

0
Cfg_SnapOver
1=New snapshot overwrites without reset, 0=save first snapshot till reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SnapOver - P_Logic/Logic - 1(XIC), 28(XIC), 32(XIC)

BOOL

P_Logic

0
Cfg_TSonSnap
1=Generate a TimeStamp when Snapshot occurs
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_TSonSnap - P_Logic/Logic - 1(XIC), 29(XIC)

BOOL

P_Logic

0
Cfg_UseInpHold
1=Use Inp_Hold to snap state; 0=Use Cmds or Output transition to snap
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseInpHold - P_Logic/Logic - 1(XIC), 30(XIC)

BOOL

P_Logic

1
Cfg_UseOCmd
1=Enable snapshot on OCmd_Snap 0 --> 1 (edge)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseOCmd - P_Logic/Logic - 28(XIC), 32(XIC)

BOOL

P_Logic

1
Cfg_UseOut01
1=Enable snapshot on Output 0 --> 1 (rising edge)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseOut01 - P_Logic/Logic - 28(XIC)

BOOL

P_Logic

0
Cfg_UseOut10
1=Enable snapshot on Output 1 --> 0 (falling edge)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseOut10 - P_Logic/Logic - 28(XIC)

BOOL

P_Logic

1
Cfg_UsePCmd
1=Enable snapshot on PCmd_Snap 0 --> 1 (edge)

BOOL

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 6
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_UsePCmd (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UsePCmd - P_Logic/Logic - 28(XIC), 30(XIC)
1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Logic

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Logic

2#0000_0000
Err_GateFunc
1=Error in each Gate's Function Code (use 0 to 6)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_GateFunc - P_Logic/Logic - *23(MOV), 24(NEQ)

SINT

P_Logic

2#0000_0000
Err_GateSrcMask
1=Error in each Gate's Mask (source used) configuration (qty, choice)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_GateSrcMask - P_Logic/Logic - *23(MOV), 24(NEQ)

SINT

P_Logic

2#0000_0000
Err_GateSrcPtr
1=Error in each Gate's Source Pointer (use 0 to 15)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_GateSrcPtr - P_Logic/Logic - *23(MOV), 24(NEQ)

SINT

P_Logic

0
Err_OutSrcPtr
1=Error in Output's Source Pointer (use 0 to 15)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_OutSrcPtr - P_Logic/Logic - *24(OTE)

BOOL

P_Logic

0
Err_Timer
1=Error in Output's On Delay or Off Delay Preset (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_Logic/Logic - *16(OTE), 24(XIC)

BOOL

P_Logic

BOOL

P_Logic

Inp_0
Logic Input 0
Usage:
Required:
Visible:
AliasFor:

0
Input Parameter
No
Yes
Wrk_Src.0

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 7
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_0 (Continued)
Base Tag:
Wrk_Src.0
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
P_Logic
Inp_1
Logic Input 1
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.1
Base Tag:
Wrk_Src.1
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
P_Logic
Inp_2
Logic Input 2
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.2
Base Tag:
Wrk_Src.2
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
P_Logic
Inp_3
Logic Input 3
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.3
Base Tag:
Wrk_Src.3
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
P_Logic
Inp_4
Logic Input 4
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.4
Base Tag:
Wrk_Src.4
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
P_Logic
Inp_5
Logic Input 5
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.5
Base Tag:
Wrk_Src.5
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 8
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
BOOL
P_Logic
Inp_6
Logic Input 6
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.6
Base Tag:
Wrk_Src.6
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
P_Logic
Inp_7
Logic Input 7
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Src.7
Base Tag:
Wrk_Src.7
Constant
No
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
Inp_Hold
1=Hold prev states in Snapshot; 0=Pass live states to Snapshot
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Hold - P_Logic/Logic - 1(XIC), 30(XIO)

BOOL

P_Logic

0
Inp_Reset
1=Reset Snapshot latch, show live states
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Reset - P_Logic/Logic - 30(XIC)

BOOL

P_Logic

0
OCmd_Reset
Operator Command to Reset (re-arm) Snapshot Latch
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_Logic/Logic - *30(OTU), 30(XIC)
OCmd_Reset - P_Logic/Prescan - *2(OTU)

BOOL

P_Logic

0
OCmd_Snap
Operator Command to capture Input, Gate states in Snapshot
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Snap - P_Logic/Logic - *28(OTU), 28(XIC)
OCmd_Snap - P_Logic/Prescan - *2(OTU)

BOOL

P_Logic

0
BOOL
P_Logic
Out_Live
Condition Logic Output (result) after delay
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_Live - P_Logic/EnableInFalse - *0(OTU)
Out_Live - P_Logic/Logic - *21(OTL), *21(OTU), 1(XIC), 1(XIO), 22(XIC), 22(XIO), 28(XIC), 28(XIO), 29(XIC), 29(XIO)

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 9
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Out_Snap
Condition Logic Output (result) at Snapshot
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Out_Snap - P_Logic/Logic - *1(OTL), *1(OTU), *29(OTL), *29(OTU)

BOOL

P_Logic

0
PCmd_Reset
Program Command to Reset (re-arm) Snapshot Latch
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_Logic/Logic - *30(OTU), 30(XIC)
PCmd_Reset - P_Logic/Prescan - *2(OTU)

BOOL

P_Logic

0
PCmd_Snap
Program Command to capture Input, Gate states in Snapshot
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Snap - P_Logic/Logic - *28(OTU), 28(XIC)
PCmd_Snap - P_Logic/Prescan - *2(OTU)

BOOL

P_Logic

0
P_Logic
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Logic

0
Rdy_Reset
1=Ready to receive OCmd_Reset (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_Logic/Logic - *32(OTE)

BOOL

P_Logic

0
Rdy_Snap
1=Ready to receive OCmd_Snap (enables button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Snap - P_Logic/Logic - *32(OTE)

BOOL

P_Logic

0
Sts_Err
1=Error in Config: see detail bits for reason
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_Logic/Logic - *24(OTE)

BOOL

P_Logic

2#0000_0000
Sts_GateLive
Live Gate Result Status bits: .0 to .7 = Gate 0 to 7
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_GateLive - P_Logic/Logic - *25(BTD), 1(MOV), 29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSnap
Snapshot of Gate Result Status bits: .0 to .7 = Gate 0 to 7

SINT

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 10
22/12/2015 08,59,06
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_GateSnap (Continued)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_GateSnap - P_Logic/Logic - *1(MOV), *29(MOV)
2#0000_0000
Sts_GateSrc1Live
Live wire state for Source 1 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc1Live - P_Logic/Logic - *6(OTE), 1(MOV), 29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc1Snap
Snapshot of Wire state for Source 1 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc1Snap - P_Logic/Logic - *1(MOV), *29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc2Live
Live wire state for Source 2 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc2Live - P_Logic/Logic - *6(OTE), 1(MOV), 29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc2Snap
Snapshot of Wire state for Source 2 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc2Snap - P_Logic/Logic - *1(MOV), *29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc3Live
Live wire state for Source 3 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc3Live - P_Logic/Logic - *6(OTE), 1(MOV), 29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc3Snap
Snapshot of Wire state for Source 3 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc3Snap - P_Logic/Logic - *1(MOV), *29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc4Live
Live wire state for Source 4 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_GateSrc4Live - P_Logic/Logic - *6(OTE), 1(MOV), 29(MOV)

SINT

P_Logic

2#0000_0000
Sts_GateSrc4Snap
Snapshot of Wire state for Source 4 of each gate (bit# = gate#)
Usage:
Output Parameter
Required:
No

SINT

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 11
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_GateSrc4Snap (Continued)
Visible:
No
External Access:
Read Only
Sts_GateSrc4Snap - P_Logic/Logic - *1(MOV), *29(MOV)
2#0000_0000
Sts_InpLive
Live Input Status bits: .0 to .7 = Inp_0 to Inp_7
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_InpLive - P_Logic/Logic - *25(BTD), 1(MOV), 29(MOV)

SINT

P_Logic

2#0000_0000
Sts_InpSnap
Snapshot of Input Status bits: .0 to .7 = Inp_0 to Inp_7
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_InpSnap - P_Logic/Logic - *1(MOV), *29(MOV)

SINT

P_Logic

0
BOOL
P_Logic
Sts_OutInvLive
Output after inverter but before TON/TOF timers
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_OutInvLive - P_Logic/Logic - *19(OTE), 1(XIC), 1(XIO), 20(XIC), 21(XIC), 21(XIO), 22(XIC), 22(XIO), 29(XIC), 29(XIO)
0
BOOL
Sts_OutInvSnap
Snapshot of Output after inverter but before TON/TOF
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_OutInvSnap - P_Logic/Logic - *1(OTL), *1(OTU), *29(OTL), *29(OTU)

P_Logic

0
Sts_Snapped
1=Snapshot has been triggered, 0=Snapshot showing live states
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Snapped - P_Logic/Logic - *31(OTE)

P_Logic

BOOL

0
DINT
Val_DelayPctLive
Output OnDelay or OffDelay percent complete: live
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_DelayPctLive - P_Logic/Logic - *22(CPT), *22(MOV), 1(MOV), 29(MOV)

P_Logic

0
Val_DelayPctSnap
Output OnDelay or OffDelay percent complete: snapshot
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_DelayPctSnap - P_Logic/Logic - *1(MOV), *29(MOV)

DINT

P_Logic

0
DINT
Val_SnapInit
Snapshot Initiator: 1=OCmd, 2=PCmd, 3=Out 0-->1, 4=Out 1-->0, 5=Inp_Hold
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Type Size: 800 byte (s)
Data Context: P_Logic <definition>

Page 12
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_SnapInit (Continued)
Val_SnapInit - P_Logic/Logic - *1(MOV), *28(MOV), *30(CLR)

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Page 13
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
'OK'
Cfg_0StText
Text to display in Out=0 State
Usage:
Local Tag
External Access:
Read/Write
Cfg_0StText - P_Logic/Logic - 0(LOWER)
2
Cfg_0StText.LEN
Text to display in Out=0 State
Cfg_0StText.DATA
Text to display in Out=0 State

Data Type
STRING_8

'TRIPPED'
Cfg_1StText
Text to display in Out=1 State
Usage:
Local Tag
External Access:
Read/Write
Cfg_1StText - P_Logic/Logic - *0(LOWER)
7
Cfg_1StText.LEN
Text to display in Out=1 State
Cfg_1StText.DATA
Text to display in Out=1 State

STRING_8

'Configurable Boolean Logic Block'


Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_Logic/Logic - *0(LOWER)
32
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

STRING_40

Scope
P_Logic

DINT
SINT
P_Logic

DINT
SINT
P_Logic

DINT
SINT

DINT[8]
P_Logic
Cfg_GateFunc
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateFunc - P_Logic/Logic - 10(EQU), 11(EQU), 13(EQU), 14(EQU), 4(EQU), 4(LIM), 4(NEQ), 7(EQU), 8(EQU), 9(EQU)
0
DINT
Cfg_GateFunc[0]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[1]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[2]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[3]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[4]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[5]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[6]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
0
DINT
Cfg_GateFunc[7]
Function code for gate M (1=AND, 2=OR, 3=XOR, 4=2oo3, 5=Set-Reset)
2#0000_0000
Cfg_GateSrc1Inv
Gate M Source #1 is Inverted (M by bit) (1=invert)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc1Inv - P_Logic/Logic - 6(XIC), 6(XIO)

SINT

P_Logic

2#0000_0000
SINT
P_Logic
Cfg_GateSrc1Mask
Gate M Source #1 is Used (M by bit) (1=used)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc1Mask - P_Logic/Logic - 10(XIC), 10(XIO), 11(XIC), 12(XIC), 4(XIO), 5(XIC), 7(XIO), 8(XIC), 8(XIO), 9(XIO)
Cfg_GateSrc1Ptr
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)

DINT[8]

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Cfg_GateSrc1Ptr (Continued)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc1Ptr - P_Logic/Logic - 4(LIM), 5(MOV)
0
Cfg_GateSrc1Ptr[0]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[1]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[2]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[3]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[4]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[5]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[6]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc1Ptr[7]
Pointer to Gate M Source #1 (0..7 = inputs, 8..15 = gate outputs)
2#0000_0000
Cfg_GateSrc2Inv
Gate M Source #2 is Inverted (M by bit) (1=invert)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc2Inv - P_Logic/Logic - 6(XIC), 6(XIO)

Page 14
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
DINT
DINT
DINT
DINT
DINT
DINT
DINT
SINT

P_Logic

2#0000_0000
SINT
P_Logic
Cfg_GateSrc2Mask
Gate M Source #2 is Used (M by bit) (1=used)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc2Mask - P_Logic/Logic - 10(XIC), 10(XIO), 11(XIC), 12(XIC), 4(XIO), 5(XIC), 7(XIO), 8(XIC), 8(XIO), 9(XIO)
Cfg_GateSrc2Ptr
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc2Ptr - P_Logic/Logic - 4(LIM), 5(MOV)
0
Cfg_GateSrc2Ptr[0]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[1]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[2]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[3]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[4]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[5]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[6]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc2Ptr[7]
Pointer to Gate M Source #2 (0..7 = inputs, 8..15 = gate outputs)
2#0000_0000
Cfg_GateSrc3Inv
Gate M Source #3 is Inverted (M by bit) (1=invert)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc3Inv - P_Logic/Logic - 6(XIC), 6(XIO)

DINT[8]

P_Logic

DINT
DINT
DINT
DINT
DINT
DINT
DINT
DINT
SINT

P_Logic

2#0000_0000
SINT
P_Logic
Cfg_GateSrc3Mask
Gate M Source #3 is Used (M by bit) (1=used)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc3Mask - P_Logic/Logic - 10(XIC), 10(XIO), 11(XIC), 12(XIC), 4(XIO), 5(XIC), 7(XIO), 8(XIC), 8(XIO), 9(XIO)

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Cfg_GateSrc3Ptr
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc3Ptr - P_Logic/Logic - 4(LIM), 5(MOV)
0
Cfg_GateSrc3Ptr[0]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[1]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[2]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[3]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[4]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[5]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[6]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc3Ptr[7]
Pointer to Gate M Source #3 (0..7 = inputs, 8..15 = gate outputs)
2#0000_0000
Cfg_GateSrc4Inv
Gate M Source #4 is Inverted (M by bit) (1=invert)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc4Inv - P_Logic/Logic - 6(XIC), 6(XIO)

Page 15
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT[8]

P_Logic

DINT
DINT
DINT
DINT
DINT
DINT
DINT
DINT
SINT

P_Logic

2#0000_0000
SINT
P_Logic
Cfg_GateSrc4Mask
Gate M Source #4 is Used (M by bit) (1=used)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc4Mask - P_Logic/Logic - 10(XIC), 10(XIO), 11(XIC), 12(XIC), 4(XIO), 5(XIC), 7(XIO), 8(XIC), 8(XIO), 9(XIC)
Cfg_GateSrc4Ptr
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
Usage:
Local Tag
External Access:
Read/Write
Cfg_GateSrc4Ptr - P_Logic/Logic - 4(LIM), 5(MOV)
0
Cfg_GateSrc4Ptr[0]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[1]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[2]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[3]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[4]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[5]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[6]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
0
Cfg_GateSrc4Ptr[7]
Pointer to Gate M Source #4 (0..7 = inputs, 8..15 = gate outputs)
Cfg_InpTxt
Short HMI description of each Input
Usage:
Local Tag
External Access:
Read/Write
'Input Condition 0'
Cfg_InpTxt[0]
Short HMI description of each Input
Cfg_InpTxt[0] - P_Logic/Logic - 0(LOWER)
17
Cfg_InpTxt[0].LEN
Short HMI description of each Input
Cfg_InpTxt[0].DATA
Short HMI description of each Input

DINT[8]

P_Logic

DINT
DINT
DINT
DINT
DINT
DINT
DINT
DINT
STRING_20[8]

P_Logic

STRING_20
DINT
SINT

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Cfg_InpTxt (Continued)
''
Cfg_InpTxt[1]
Short HMI description of each Input
Cfg_InpTxt[1] - P_Logic/Logic - *0(LOWER)
0
Cfg_InpTxt[1].LEN
Short HMI description of each Input
Cfg_InpTxt[1].DATA
Short HMI description of each Input
''
Cfg_InpTxt[2]
Short HMI description of each Input
Cfg_InpTxt[2] - P_Logic/Logic - 0(LOWER)
0
Cfg_InpTxt[2].LEN
Short HMI description of each Input
Cfg_InpTxt[2].DATA
Short HMI description of each Input
''
Cfg_InpTxt[3]
Short HMI description of each Input
Cfg_InpTxt[3] - P_Logic/Logic - *0(LOWER)
0
Cfg_InpTxt[3].LEN
Short HMI description of each Input
Cfg_InpTxt[3].DATA
Short HMI description of each Input
''
Cfg_InpTxt[4]
Short HMI description of each Input
Cfg_InpTxt[4] - P_Logic/Logic - 0(LOWER)
0
Cfg_InpTxt[4].LEN
Short HMI description of each Input
Cfg_InpTxt[4].DATA
Short HMI description of each Input
''
Cfg_InpTxt[5]
Short HMI description of each Input
Cfg_InpTxt[5] - P_Logic/Logic - *0(LOWER)
0
Cfg_InpTxt[5].LEN
Short HMI description of each Input
Cfg_InpTxt[5].DATA
Short HMI description of each Input
''
Cfg_InpTxt[6]
Short HMI description of each Input
Cfg_InpTxt[6] - P_Logic/Logic - 0(LOWER)
0
Cfg_InpTxt[6].LEN
Short HMI description of each Input
Cfg_InpTxt[6].DATA
Short HMI description of each Input
''
Cfg_InpTxt[7]
Short HMI description of each Input
Cfg_InpTxt[7] - P_Logic/Logic - *0(LOWER)
0
Cfg_InpTxt[7].LEN
Short HMI description of each Input
Cfg_InpTxt[7].DATA
Short HMI description of each Input

Page 16
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT

'Configurable Logic'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_Logic/Logic - 0(LOWER)
18
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

STRING_20

0
Cfg_OutSrcInv
Out Source (before Min Duration Timer) is Inverted (1=invert)
Usage:
Local Tag
External Access:
Read/Write
Cfg_OutSrcInv - P_Logic/Logic - 19(XIC), 19(XIO)

BOOL

P_Logic

DINT
SINT
P_Logic

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Page 17
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Cfg_OutSrcPtr
Source bit for Output (0..7 = inputs, 8..15 = gates)
Usage:
Local Tag
External Access:
Read/Write
Cfg_OutSrcPtr - P_Logic/Logic - 17(LIM), 18(MOV), 19(XIC), 19(XIO)

DINT

P_Logic

'P_Logic'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_Logic/Logic - 0(LOWER)
7
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

STRING_20

P_Logic

Inf_Const
Constants (for use in HMI indirection of parameters)
Usage:
Local Tag
External Access:
Read Only
0
Inf_Const[0]
Constants (for use in HMI indirection of parameters)
1
Inf_Const[1]
Constants (for use in HMI indirection of parameters)
2
Inf_Const[2]
Constants (for use in HMI indirection of parameters)
3
Inf_Const[3]
Constants (for use in HMI indirection of parameters)
4
Inf_Const[4]
Constants (for use in HMI indirection of parameters)
5
Inf_Const[5]
Constants (for use in HMI indirection of parameters)
6
Inf_Const[6]
Constants (for use in HMI indirection of parameters)
7
Inf_Const[7]
Constants (for use in HMI indirection of parameters)

SINT[8]

Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

DINT
SINT
P_Logic

SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT
SINT

P_Logic

STRING_16

P_Logic

Local Tag
Read/Write

'P_Logic'
Inf_Type
Type identifier for HMI navigation
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_Logic/Logic - *0(LOWER)
7
Inf_Type.LEN
Type identifier for HMI navigation
Inf_Type.DATA
Type identifier for HMI navigation

DINT
SINT

DINT[8]
Val_LastGate
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
Usage:
Local Tag
External Access:
Read Only
Val_LastGate - P_Logic/Logic - *25(COP)
0
DINT
Val_LastGate[0]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
0
DINT
Val_LastGate[1]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
0
DINT
Val_LastGate[2]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
0
DINT
Val_LastGate[3]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
0
DINT
Val_LastGate[4]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Page 18
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_LastGate (Continued)
0
DINT
Val_LastGate[5]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
0
DINT
Val_LastGate[6]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
0
DINT
Val_LastGate[7]
Last Gate pin which uses this Gate Result (0=not used 1..3= gates, 33=output)
DINT[8]
Val_LastInp
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
Usage:
Local Tag
External Access:
Read Only
Val_LastInp - P_Logic/Logic - *25(COP)
0
DINT
Val_LastInp[0]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[1]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[2]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[3]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[4]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[5]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[6]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)
0
DINT
Val_LastInp[7]
Last Gate pin which uses this Input (0=not used 1..3= gates, 33=output) (for animation)

P_Logic

DINT[7]
Val_SnapTS
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
Usage:
Local Tag
External Access:
Read Only
Val_SnapTS - P_Logic/Logic - *1(COP), *29(COP)
Val_SnapTS - P_Logic/Prescan - *0(FLL)
0
DINT
Val_SnapTS[0]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
0
DINT
Val_SnapTS[1]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
0
DINT
Val_SnapTS[2]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
0
DINT
Val_SnapTS[3]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
0
DINT
Val_SnapTS[4]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
0
DINT
Val_SnapTS[5]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec
0
DINT
Val_SnapTS[6]
Snapshot Timestamp [0]=yr, [1]=mo, [2]=da, [3]=hr, [4]=min, [5]=sec, [6]=usec

P_Logic

0
BOOL
Wrk_Copy
1=Copy Live Data to Snapshot This Scan
Usage:
Local Tag
External Access:
None
Wrk_Copy - P_Logic/Logic - *1(OTU), *26(OTL), *28(OTL), *29(OTU), 29(XIC)

P_Logic

Wrk_DateTime
Date/Time Stamp from scan of logic
Usage:
Local Tag
External Access:
None
Wrk_DateTime - P_Logic/Logic - 1(COP), 29(COP)
0
Wrk_DateTime[0]
Date/Time Stamp from scan of logic
Wrk_DateTime[0] - P_Logic/Logic - *27(GSV)
0
Wrk_DateTime[1]
Date/Time Stamp from scan of logic

DINT[7]

P_Logic

DINT
DINT

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Wrk_DateTime (Continued)
0
Wrk_DateTime[2]
Date/Time Stamp from scan of logic
0
Wrk_DateTime[3]
Date/Time Stamp from scan of logic
0
Wrk_DateTime[4]
Date/Time Stamp from scan of logic
0
Wrk_DateTime[5]
Date/Time Stamp from scan of logic
0
Wrk_DateTime[6]
Date/Time Stamp from scan of logic

Page 19
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
DINT
DINT
DINT
DINT

0
Wrk_ErrFunc
Error detected in each gate's Function Code (must be 0..6)
Usage:
Local Tag
External Access:
None
Wrk_ErrFunc - P_Logic/Logic - *2(CLR), *4(OTL), 23(MOV)

SINT

P_Logic

0
Wrk_ErrGateSrcPtr
Error detected in each Gate's Source pointer (must be 0..15)
Usage:
Local Tag
External Access:
None
Wrk_ErrGateSrcPtr - P_Logic/Logic - *2(CLR), *4(OTL), 23(MOV)

SINT

P_Logic

0
SINT
Wrk_ErrMask
Error in Source Mask (sources used) for each gate
Usage:
Local Tag
External Access:
None
Wrk_ErrMask - P_Logic/Logic - *13(OTL), *14(OTL), *2(CLR), *4(OTL), *7(OTL), *9(OTL), 23(MOV)

P_Logic

0
Wrk_ErrOutSrcPtr
Error in Output Source Pointer (must be 0..15)
Usage:
Local Tag
External Access:
None
Wrk_ErrOutSrcPtr - P_Logic/Logic - *17(OTE), 24(XIC)

BOOL

P_Logic

0
Wrk_InpHoldONS
Inp_Hold 0 --> 1 One-Shot
Usage:
Local Tag
External Access:
None
Wrk_InpHoldONS - P_Logic/Logic - *1(ONS)

BOOL

P_Logic

DINT[16]
Wrk_LastGate
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
Usage:
Local Tag
External Access:
None
Wrk_LastGate - P_Logic/Logic - *18(MOV), *2(FLL), *5(CPT), 25(COP), 25(COP)
0
DINT
Wrk_LastGate[0]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[1]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[2]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[3]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[4]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[5]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[6]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[7]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[8]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[9]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Page 20
22/12/2015 08,59,07
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_LastGate (Continued)
0
DINT
Wrk_LastGate[10]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[11]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[12]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[13]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[14]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
Wrk_LastGate[15]
Last Gate pin which uses this Source (0=not used 1..4= gate 1.., 33=output) (for animation)
0
DINT
P_Logic
Wrk_M
Gate (0 to 7) currently being processed
Usage:
Local Tag
External Access:
None
Wrk_M - P_Logic/Logic - *15(ADD), *2(CLR), 10(EQU), 10(XIC), 10(XIO), 11(EQU), 11(XIC), 12(XIC), 13(EQU), 13(OTL), 14(EQU),
14(OTL), 15(ADD), 15(LES), 3(ADD), 4(EQU), 4(LIM), 4(NEQ), 4(OTL), 4(XIO), 5(CPT), 5(MOV), 5(XIC), 6(OTE), 6(XIC), 6(XIO),
7(EQU), 7(OTL), 7(XIO), 8(EQU), 8(XIC), 8(XIO), 9(EQU), 9(OTL), 9(XIC), 9(XIO)
Wrk_M - P_Logic/Prescan - *0(CLR)
0
DINT
P_Logic
Wrk_Mplus8
Pointer to Sts bit for gate result (.8 .. .15)
Usage:
Local Tag
External Access:
None
Wrk_Mplus8 - P_Logic/Logic - *3(ADD), 10(OTE), 11(OTE), 13(OTE), 14(OTE), 4(OTU), 8(OTL), 8(OTU), 9(OTE)
Wrk_Mplus8 - P_Logic/Prescan - *0(CLR)
TIMER
Wrk_OffDelayT
Output OFF Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_OffDelayT - P_Logic/EnableInFalse - *0(RES)
Wrk_OffDelayT - P_Logic/Logic - *17(RES), *20(TOF)
Wrk_OffDelayT - P_Logic/Prescan - *1(RES)
0
DINT
Wrk_OffDelayT.PRE
Output OFF Delay Timer
Wrk_OffDelayT.PRE - P_Logic/Logic - *16(CLR), *16(MUL), 22(CPT), 22(NEQ)
0
BOOL
Wrk_OffDelayT.PRE.31
Output OFF Delay Timer
Wrk_OffDelayT.PRE.31 - P_Logic/Logic - 16(XIC)
0
DINT
Wrk_OffDelayT.ACC
Output OFF Delay Timer
Wrk_OffDelayT.ACC - P_Logic/Logic - 22(CPT)
0
BOOL
Wrk_OffDelayT.EN
Output OFF Delay Timer
0
BOOL
Wrk_OffDelayT.TT
Output OFF Delay Timer
Wrk_OffDelayT.TT - P_Logic/Logic - 22(XIC), 22(XIO)
0
BOOL
Wrk_OffDelayT.DN
Output OFF Delay Timer
Wrk_OffDelayT.DN - P_Logic/Logic - 21(XIO)

P_Logic

TIMER
Wrk_OnDelayT
Output ON Delay Timer
Usage:
Local Tag
External Access:
None
Wrk_OnDelayT - P_Logic/EnableInFalse - *0(RES)
Wrk_OnDelayT - P_Logic/Logic - *17(RES), *20(TON)
Wrk_OnDelayT - P_Logic/Prescan - *1(RES)
0
DINT
Wrk_OnDelayT.PRE
Output ON Delay Timer
Wrk_OnDelayT.PRE - P_Logic/Logic - *16(CLR), *16(MUL), 22(CPT), 22(NEQ)
0
BOOL
Wrk_OnDelayT.PRE.31
Output ON Delay Timer

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Wrk_OnDelayT (Continued)
Wrk_OnDelayT.PRE.31 - P_Logic/Logic - 16(XIC)
0
Wrk_OnDelayT.ACC
Output ON Delay Timer
Wrk_OnDelayT.ACC - P_Logic/Logic - 22(CPT)
0
Wrk_OnDelayT.EN
Output ON Delay Timer
0
Wrk_OnDelayT.TT
Output ON Delay Timer
Wrk_OnDelayT.TT - P_Logic/Logic - 22(XIC), 22(XIO)
0
Wrk_OnDelayT.DN
Output ON Delay Timer
Wrk_OnDelayT.DN - P_Logic/Logic - 21(XIC)

Page 21
22/12/2015 08,59,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

DINT
BOOL
BOOL
BOOL

0
Wrk_Out01SnapONS
Snap on Output Transition 0 --> 1 (one-shot store)
Usage:
Local Tag
External Access:
None
Wrk_Out01SnapONS - P_Logic/Logic - *28(ONS)

BOOL

P_Logic

0
Wrk_Out10SnapONS
Snap on Output Transition 1 --> 0 (one-shot store)
Usage:
Local Tag
External Access:
None
Wrk_Out10SnapONS - P_Logic/Logic - *28(ONS)

BOOL

P_Logic

0
Wrk_PCmdSnapONS
Snap on Program Command 0 --> 1 (one-shot store)
Usage:
Local Tag
External Access:
None
Wrk_PCmdSnapONS - P_Logic/Logic - *28(ONS)

BOOL

P_Logic

0
BOOL
P_Logic
Wrk_SnapLatch
1=a snapshot has been captured, 0=armed, ready to get snapshot
Usage:
Local Tag
External Access:
None
Wrk_SnapLatch - P_Logic/Logic - *1(OTL), *28(OTL), *30(OTU), 1(XIO), 26(XIO), 28(XIO), 31(XIC), 32(XIC), 32(XIO)
2#0000_0000_0000_0000
INT
P_Logic
Wrk_Src
Working Source (Input and Gate Status) bits .0 to .15
Usage:
Local Tag
External Access:
Read/Write
Wrk_Src - P_Logic/Logic - *10(OTE), *11(OTE), *13(OTE), *14(OTE), *4(OTU), *8(OTL), *8(OTU), *9(OTE), 19(XIC), 19(XIO),
25(BTD), 6(XIC), 6(XIO)
0
BOOL
Wrk_Src1
This gate's Source #1 state (after inversion)
Usage:
Local Tag
External Access:
None
Wrk_Src1 - P_Logic/Logic - *6(OTE), 10(XIC), 11(XIC), 12(XIC), 8(XIC), 8(XIO), 9(XIC)

P_Logic

0
Wrk_Src1Ptr
Pointer to this gate's Source #1 bit in Sts
Usage:
Local Tag
External Access:
None
Wrk_Src1Ptr - P_Logic/Logic - *5(MOV), 5(CPT), 6(XIC), 6(XIO)

P_Logic

DINT

0
BOOL
Wrk_Src2
This gate's Source #2 state (after inversion)
Usage:
Local Tag
External Access:
None
Wrk_Src2 - P_Logic/Logic - *6(OTE), 10(XIC), 11(XIC), 12(XIC), 8(XIC), 8(XIO), 9(XIC)

P_Logic

0
Wrk_Src2Ptr
Pointer to this gate's Source #2 bit in Sts
Usage:
Local Tag
External Access:
None

P_Logic

DINT

RSLogix 5000

P_Logic Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Data Context: P_Logic <definition>

Page 22
22/12/2015 08,59,08
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Src2Ptr (Continued)
Wrk_Src2Ptr - P_Logic/Logic - *5(MOV), 5(CPT), 6(XIC), 6(XIO)
0
BOOL
Wrk_Src3
This gate's Source #3 state (after inversion)
Usage:
Local Tag
External Access:
None
Wrk_Src3 - P_Logic/Logic - *6(OTE), 10(XIC), 11(XIC), 12(XIC), 8(XIC), 8(XIO), 9(XIC), 9(XIO)

P_Logic

0
Wrk_Src3Ptr
Pointer to this gate's Source #3 bit in Sts
Usage:
Local Tag
External Access:
None
Wrk_Src3Ptr - P_Logic/Logic - *5(MOV), 5(CPT), 6(XIC), 6(XIO)

P_Logic

DINT

0
BOOL
Wrk_Src4
This gate's Source #4 state (after inversion)
Usage:
Local Tag
External Access:
None
Wrk_Src4 - P_Logic/Logic - *6(OTE), 10(XIC), 11(XIC), 12(XIC), 8(XIC), 8(XIO)

P_Logic

0
Wrk_Src4Ptr
Pointer to this gate's Source #4 bit in Sts
Usage:
Local Tag
External Access:
None
Wrk_Src4Ptr - P_Logic/Logic - *5(MOV), 5(CPT), 6(XIC), 6(XIO)

P_Logic

DINT

0
DINT
Wrk_SrcsTrue
Number or Sources (after inversion) which are True
Usage:
Local Tag
External Access:
None
Wrk_SrcsTrue - P_Logic/Logic - *12(ADD), *12(CLR), 12(ADD), 13(EQU), 13(LES), 14(GEQ), 14(LES)

P_Logic

0
DINT
Wrk_SrcsUsed
Number of Sources configured to be used
Usage:
Local Tag
External Access:
None
Wrk_SrcsUsed - P_Logic/Logic - *12(ADD), *12(CLR), 12(ADD), 13(LES), 14(EQU), 14(LES), 14(LIM)

P_Logic

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 23
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


============================================================
P_Logic: PROCESS -- BOOLEAN LOGIC
============================================================
Revision 2.0-01 Release: 2012-07-17
V2.0-00 2011-09-30: Initial Release (Part of PlantPAx Library 2.0,
so Major = 2).
V2.0-01 2012-07-17: Improved handling of timers with presets = 0.
============================================================
This Instruction executes logic on up to 8 input conditions.
It provides these features:
* Up to eight 4-source logic gates can be used.
* Each of the gates can be configured as:
- an AND Gate(result true if ALL sources are true)
- an OR Gate (result true if ANY source is true)
- an XOR (exclusive OR) Gate (result true if an ODD number of sources are true)
- a Majority (1oo1: 2oo2, 2oo3 or 3oo4) Voting Gate (result true if a majority of sources are true)
- a Set-Reset (Latch) Gate (result turned ON by Set source, turned OFF by Reset source)
- a Select Gate (result = Source A if selector false, Source B if true)
* Each of the 4 sources for each gate can be configured to be
any of the instruction's inputs or any gate's result.
* Each of the 4 sources for each gate can be enabled or disabled
and can be optionally inverted (logical NOT).
* Any input or gate result can be selected, and optionally inverted,
as the source for the instruction output
* The output has OnDelay and OffDelay timers; the output bit is set when
the source for the output is true for the OnDelay time; the
output is cleared when the source is false for the OffDelay time.
* A status register is updated with the states of all inputs and gate results.
* Snapshot registers capture the instruction state either when the Output
goes to its configured "snap state", on Command, or when
Inp_Hold input is true (configurable) (for example, for capture
for Root Cause Failure Analysis of Interlocks). The snapshot can be
configured for "snap first" requiring a reset before the next snapshot
can be taked, or "snap over" ("snap last") where a snapshot is
captured with each snapshot condition (without reset).
Configuration Error Rules:
* If a gate has no gate type selected (function code = 0), no error is flagged
(NULL gate) and its Result bit is cleared.
* If a gate has an invalid function code, an error (function code) is flagged and
the Result bit is held in its last state.
* If a gate has an invalid source pointer, an error (source pointer) is flagged and
the Result bit is held in its last state.
* If a gate has a valid function code but no sources enabled (used), an error
(sources used) is flagged and the Result bit is held in its last state.
* For Set/Reset, at least one of the Set sources and at least one of the Reset
sources must be used.
* For Selector, source 3 (the select) must be used and at least one of the
A (source 1) or B (source 2) sources must be used.
* All other gates can have any number of sources used from 1 to 4.
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!
To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click
to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.

SkipText
JMP

Tagname for display


on HMI
LOWER
Lower Case
Dest Inf_Type
Source Cfg_Tag
'P_Logic'
'P_Logic'

Label for graphic


symbol displayed on
HMI
LOWER

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 24
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers LOWER
Lower Case
Source
Cfg_Label
Dest
Cfg_Desc
'Configurable Logic'
'Configurable Boolean'

Text to display in
Out=0 State
LOWER
Lower Case
Source Cfg_0StText
'OK'

Dest Cfg_1StText
'TRIPPED'

Short HMI
description of each
Input
LOWER
Lower Case
Source Cfg_InpTxt[0]
'Input Condition 0'

Dest Cfg_InpTxt[1]
''

Short HMI
description of each
Input
LOWER
Lower Case
Source Cfg_InpTxt[2]
''

Dest Cfg_InpTxt[3]
''

Short HMI
description of each
Input
LOWER
Lower Case
Source Cfg_InpTxt[4]
''

Dest Cfg_InpTxt[5]
''

Short HMI
description of each
Input
LOWER
Lower Case
Source Cfg_InpTxt[6]
''

Cfg_0StText

0(LOWER)

Cfg_1StText

*0(LOWER)

Cfg_Desc

*0(LOWER)

Cfg_InpTxt[0]

0(LOWER)

Cfg_InpTxt[1]

*0(LOWER)

Cfg_InpTxt[2]

0(LOWER)

Cfg_InpTxt[3]

*0(LOWER)

Cfg_InpTxt[4]

0(LOWER)

Cfg_InpTxt[5]

*0(LOWER)

Cfg_InpTxt[6]

0(LOWER)

Dest Cfg_InpTxt[7]
''

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!
Cfg_InpTxt[7]

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

Page 25
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 26
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers

SkipText
LBL

1=Hold prev states


in Snapshot; 0=Pass
live states to
Snapshot
Inp_Hold

Inp_Hold 0 --> 1
One-Shot
Wrk_InpHoldONS
ONS

S:FS
/

1=Use Inp_Hold to
snap state; 0=Use
Cmds or Output
transition to snap
Cfg_UseInpHold

===================================
INP_HOLD SNAPSHOT: PREV
===================================
If the Inp_Hold bit becomes set, a
configured to be used to take a snaps
have a snapshot or snapshot overwrit
copy the live state FROM LAST SCA
(including last scan's t
1=a snapshot has
been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
/
1=New snapshot
overwrites without
reset, 0=save first
snapshot till reset
Cfg_SnapOver

Output af
inverter but b
TON/TOF ti
Sts_OutInv

Output af
inverter but b
TON/TOF ti
Sts_OutInv
/

Condition Lo
Output (resu
after delay
Out_Live

Condition Lo
Output (resu
after delay
Out_Live
/

Move
Source

Move
Source

1=Generat
TimeStamp w
Snapshot oc

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 27
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


==========================================
D SNAPSHOT: PREVIOUS SCAN'S DATA
==========================================
ld bit becomes set, and if the Inp_Hold bit is
used to take a snapshot, and if we don't already
or snapshot overwrite (last snap) is configured,
tate FROM LAST SCAN to the snapshot state
ncluding last scan's timestamp).
Snapshot Initiator:
1=OCmd, 2=PCmd,
3=Out 0-->1, 4=Out
1-->0, 5=Inp_Hold
MOV
Move
Source
5
Dest Val_SnapInit
0

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
L

Output after
inverter but before
TON/TOF timers
Sts_OutInvLive

Snapshot of Output
after inverter but
before TON/TOF
Sts_OutInvSnap
L

Output after
inverter but before
TON/TOF timers
Sts_OutInvLive

Snapshot of Output
after inverter but
before TON/TOF
Sts_OutInvSnap
U

Condition Logic
Output (result)
after delay
Out_Live

Condition Logic
Output (result) at
Snapshot
Out_Snap
L

Condition Logic
Output (result)
after delay
Out_Live

Condition Logic
Output (result) at
Snapshot
Out_Snap
U
Output OnDelay or
OffDelay percent
complete: snapshot
MOV
Move
Source Val_DelayPctLive
0

Snapshot of Input
Status bits: .0 to
.7 = Inp_0 to Inp_7
MOV
Move
Source Sts_InpLive
2#0000_0000

Dest Sts_InpSnap
2#0000_0000

Snapshot of Wire
state for Source 1
of each gate (bit# =
gate#)
MOV
Sts_GateSrc1Live
2#0000_0000

Dest Sts_GateSrc1Snap
2#0000_0000

Snapshot of Wire
state for Source 3
of each gate (bit# =
gate#)
MOV
Sts_GateSrc3Live
2#0000_0000

1=Generate a
TimeStamp when
Snapshot occurs

Dest Sts_GateSrc3Snap
2#0000_0000

Dest Val_DelayPctSnap
0

Snapshot of Gate
Result Status bits:
.0 to .7 = Gate 0 to
7
MOV
Move
Source Sts_GateLive
2#0000_0000

Dest Sts_GateSnap
2#0000_0000

Snapshot of Wire
state for Source 2
of each gate (bit# =
gate#)
MOV
Move
Source Sts_GateSrc2Live
2#0000_0000

Dest Sts_GateSrc2Snap
2#0000_0000

Snapshot of Wire
state for Source 4
of each gate (bit# =
gate#)
MOV
Move
Source Sts_GateSrc4Live
2#0000_0000

Dest Sts_GateSrc4Snap
2#0000_0000

Snapshot Timestamp
[0]=yr, [1]=mo,
[2]=da, [3]=hr,
[4]=min, [5]=sec,
[6]=usec

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 28
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers

Cfg_SnapOver

1(XIC) 28(XIC) 32(XIC)

Cfg_TSonSnap

1(XIC) 29(XIC)

Cfg_UseInpHold

1(XIC) 30(XIC)

Inp_Hold

1(XIC) 30(XIO)

Out_Live

1(XIC) 1(XIO) *21(OTU) *21(OTL) 22(XIC) 22(XIO) 28(XIC) 28(XIO) 29(XIO) 29(XIC)

Out_Snap

*1(OTL) *1(OTU) *29(OTL) *29(OTU)

Sts_GateLive

1(MOV) *25(BTD) 29(MOV)

Sts_GateSnap

*1(MOV) *29(MOV)

Sts_GateSrc1Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc1Snap

*1(MOV) *29(MOV)

Sts_GateSrc2Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc2Snap

*1(MOV) *29(MOV)

Sts_GateSrc3Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc3Snap

*1(MOV) *29(MOV)

Sts_GateSrc4Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc4Snap

*1(MOV) *29(MOV)

Sts_InpLive

1(MOV) *25(BTD) 29(MOV)

Sts_InpSnap

*1(MOV) *29(MOV)

Sts_OutInvLive

1(XIC) 1(XIO) *19(OTE) 20(XIC) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 29(XIC) 29(XIO)

Sts_OutInvSnap

*1(OTU) *1(OTL) *29(OTU) *29(OTL)

Val_DelayPctLive

1(MOV) *22(MOV) *22(CPT) 29(MOV)

Val_DelayPctSnap

*1(MOV) *29(MOV)

Val_SnapInit

*1(MOV) *28(MOV) *30(CLR)

Val_SnapTS

*1(COP) *29(COP)

Wrk_Copy

*1(OTU) *26(OTL) *28(OTL) *29(OTU) 29(XIC)

Wrk_DateTime

1(COP) 29(COP)

Wrk_InpHoldONS

*1(ONS)

Wrk_SnapLatch

1(XIO) *1(OTL) 26(XIO) *28(OTL) 28(XIO) *30(OTU) 31(XIC) 32(XIC) 32(XIO)

Snapshot oc
Cfg_TSonS

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 29
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers [6]=usec
COP
Copy File
Source Wrk_DateTime[0]
Length
7

Snapshot occurs
Cfg_TSonSnap

Dest Val_SnapTS[0]

1=Copy Live Data to


Snapshot This Scan
Wrk_Copy
U

============================================================
INPUT GATHERING
============================================================
This object uses pointerized, looping logic. The individual
Condition Inputs are aliased together into an 8-bit word
for indirect referencing (by bit #). No rungs needed for gathering.
============================================================
LOOP THROUGH THE GATES
============================================================
Set up a loop for the 8 Gates.
Clear the "last gate" values used for HMI faceplate animation.
Clear the flags for errors detected in configuration, and
set the loop index to start with the first Gate (0).
Last Gate pin which
uses this Source
(0=not used 1..4=
gate 1.., 33=output)
(for animation)
FLL
2

Fill File
Source
Length

0
16

Gate (0 to 7)
currently being
processed
CLR
Clear
Dest
Wrk_M
0

Dest Wrk_LastGate[0]

Error detected in
each Gate's Source
pointer (must be
0..15)
CLR
Clear
Dest Wrk_ErrGateSrcPtr
0

Error detected in
each gate's Function
Code (must be 0..6)
CLR
Clear
Dest
Wrk_ErrFunc
0

Error in Source Mask


(sources used) for
each gate
CLR
Clear
Dest
Wrk_ErrMask
0

Wrk_ErrFunc

*2(CLR) *4(OTL) 23(MOV)

Wrk_ErrGateSrcPtr

*2(CLR) *4(OTL) 23(MOV)

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Wrk_LastGate

*2(FLL) *5(CPT) *18(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(LIM) 4(XIO) 4(OTL) 4(NEQ) 4(EQU) 5(CPT) 5(MOV) 5(XIC) 6(XIC) 6(XIO) 6(OTE) 7(OTL) 7(EQU) 7(XIO) 8(EQU)
8(XIC) 8(XIO) 9(EQU) 9(XIC) 9(XIO) 9(OTL) 10(XIO) 10(XIC) 10(EQU) 11(EQU) 11(XIC) 12(XIC) 13(OTL) 13(EQU) 14(OTL)
14(EQU) 15(LES) 15(ADD) *15(ADD)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

NextGate
LBL

Page 30
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TOP OF LOOP, PER GATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For this gate:
* Set a pointer to the bit in Sts that receives the result of this gate.
Pointer to Sts bit
for gate result (.8
.. .15)
ADD
Add
Source A
Wrk_M
Dest Wrk_Mplus8
0
0
Source B
8

Wrk_M

*2(CLR) 3(ADD) 4(OTL) 4(NEQ) 4(XIO) 4(LIM) 4(EQU) 5(CPT) 5(MOV) 5(XIC) 6(OTE) 6(XIC) 6(XIO) 7(XIO) 7(OTL) 7(EQU) 8(EQU)
8(XIO) 8(XIC) 9(XIO) 9(XIC) 9(EQU) 9(OTL) 10(XIC) 10(EQU) 10(XIO) 11(EQU) 11(XIC) 12(XIC) 13(EQU) 13(OTL) 14(EQU)
14(OTL) 15(ADD) *15(ADD) 15(LES)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTU) 8(OTL) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 31
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


* Check the Gate function code:
- If it's zero, the gate is not used (null). Clear the result and skip to the next gate
- If it's invalid, flag the error, hold the result in its last state, and skip to the next gate.
* Check the Gate Source Pointers:
- If any are invalid, flag the error, hold the result in its last state and skip to the next gate.
* Check the Gate Source Used Flags:
- If a used (non null) gate has NO sources used, flag the error, hold the result
in its last state and skip to the next gate.
Working Source
Function code for
(Input and Gate
gate M (1=AND, 2=OR,
Status) bits .0 to
3=XOR, 4=2oo3,
.15
5=Set-Reset)
Wrk_Src.[Wrk_Mplus8]
EQU
Equal
U
Source A Cfg_GateFunc[Wrk_M]
0
Source B
0

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
LIM
Limit Test (CIRC)
Low Limit

EndGate
JMP

Error detected in
each gate's Function
Code (must be 0..6)
Wrk_ErrFunc.[Wrk_M]
L
7

Test Cfg_GateFunc[Wrk_M]
0
High Limit
-1

Pointer to Gate M
Source #1 (0..7 =
inputs, 8..15 = gate
outputs)
LIM
Limit Test (CIRC)
Low Limit

Error detected in
each Gate's Source
pointer (must be
0..15)
Wrk_ErrGateSrcPtr.[Wrk_M]
L
16

Test Cfg_GateSrc1Ptr[Wrk_M]
0
High Limit
-1

Pointer to Gate M
Source #2 (0..7 =
inputs, 8..15 = gate
outputs)
LIM
Limit Test (CIRC)
Low Limit

16

Test Cfg_GateSrc2Ptr[Wrk_M]
0
High Limit
-1

Pointer to Gate M
Source #3 (0..7 =
inputs, 8..15 = gate
outputs)
LIM
Limit Test (CIRC)
Low Limit

16

Test Cfg_GateSrc3Ptr[Wrk_M]
0
High Limit
-1

Pointer to Gate M
Source #4 (0..7 =
inputs, 8..15 = gate
outputs)
LIM
Limit Test (CIRC)
Low Limit

16

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 32
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


Test Cfg_GateSrc4Ptr[Wrk_M]
0
High Limit
-1

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
NEQ
Not Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
0

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]
/

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]
/

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]
/

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]
/

Error in Source Mask


(sources used) for
each gate
Wrk_ErrMask.[Wrk_M]
L

Cfg_GateFunc

4(LIM) 4(NEQ) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIO) 8(XIC) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc1Ptr

4(LIM) 5(MOV)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Ptr

4(LIM) 5(MOV)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIO) 8(XIC) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Ptr

4(LIM) 5(MOV)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc4Ptr

4(LIM) 5(MOV)

Wrk_ErrFunc

*2(CLR) *4(OTL) 23(MOV)

Wrk_ErrGateSrcPtr

*2(CLR) *4(OTL) 23(MOV)

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(XIO) 4(NEQ) 4(LIM) 4(EQU) 4(OTL) 5(XIC) 5(CPT) 5(MOV) 6(OTE) 6(XIC) 6(XIO) 7(EQU) 7(XIO) 7(OTL) 8(XIC)
8(XIO) 8(EQU) 9(XIO) 9(EQU) 9(OTL) 9(XIC) 10(XIO) 10(XIC) 10(EQU) 11(XIC) 11(EQU) 12(XIC) 13(EQU) 13(OTL) 14(EQU)
14(OTL) 15(LES) 15(ADD) *15(ADD)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTL) 8(OTU) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTU) *8(OTL) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIC) 19(XIO) 25(BTD)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 33
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


Copy this Gate's Source Pointers to working registers.
(We need to do this because Logix only lets us indirect one thing at a time!)
Once we have the pointers to the Sources, we can update the "Last Gate" registers
used to animate lines in the HMI Popup with "how far" to draw them for each input and gate.
Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]

Pointer to this
gate's Source #3 bit
in Sts
MOV
5

Move
Source Cfg_GateSrc3Ptr[Wrk_M]
0

Dest Wrk_Src3Ptr
0

Last Gate pin which


uses this Source
(0=not used 1..4=
gate 1.., 33=output)
(for animation)
CPT
Compute
Expression Wrk_M*4+1

Dest Wrk_LastGate[Wrk_Src3Ptr]
0

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]

Pointer to this
gate's Source #2 bit
in Sts
MOV
Move
Source Cfg_GateSrc2Ptr[Wrk_M]
0

Dest Wrk_Src2Ptr
0

Last Gate pin which


uses this Source
(0=not used 1..4=
gate 1.., 33=output)
(for animation)
CPT
Compute
Expression Wrk_M*4+2

Dest Wrk_LastGate[Wrk_Src2Ptr]
0

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

Pointer to this
gate's Source #4 bit
in Sts
MOV
Move
Source Cfg_GateSrc4Ptr[Wrk_M]
0

Dest Wrk_Src4Ptr
0

Last Gate pin which


uses this Source
(0=not used 1..4=
gate 1.., 33=output)
(for animation)
CPT
Compute
Expression Wrk_M*4+3

Dest Wrk_LastGate[Wrk_Src4Ptr]
0

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

Pointer to this
gate's Source #1 bit
in Sts
MOV
Move
Source Cfg_GateSrc1Ptr[Wrk_M]
0

Dest Wrk_Src1Ptr
0

Last Gate pin which


uses this Source
(0=not used 1..4=

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 34
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output


timers
(0=not
used 1..4=
gate 1.., 33=output)
(for animation)
CPT
Compute
Expression Wrk_M*4+4
Dest Wrk_LastGate[Wrk_Src1Ptr]
0

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc1Ptr

4(LIM) 5(MOV)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIO) 8(XIC) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Ptr

4(LIM) 5(MOV)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Ptr

4(LIM) 5(MOV)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc4Ptr

4(LIM) 5(MOV)

Wrk_LastGate

*2(FLL) *5(CPT) *18(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(LIM) 4(XIO) 4(EQU) 4(NEQ) 4(OTL) 5(CPT) 5(MOV) 5(XIC) 6(XIC) 6(OTE) 6(XIO) 7(XIO) 7(EQU) 7(OTL) 8(XIC)
8(EQU) 8(XIO) 9(EQU) 9(XIO) 9(OTL) 9(XIC) 10(XIO) 10(EQU) 10(XIC) 11(EQU) 11(XIC) 12(XIC) 13(OTL) 13(EQU) 14(OTL)
14(EQU) 15(ADD) 15(LES) *15(ADD)

Wrk_Src1Ptr

*5(MOV) 5(CPT) 6(XIO) 6(XIC)

Wrk_Src2Ptr

5(CPT) *5(MOV) 6(XIC) 6(XIO)

Wrk_Src3Ptr

*5(MOV) 5(CPT) 6(XIO) 6(XIC)

Wrk_Src4Ptr

5(CPT) *5(MOV) 6(XIC) 6(XIO)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 35
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


This rung handles gathering the pointed-to Sts bits
and inverting them if so configured.

The actual Source state for each Source on each Gate (before inversion)
is saved in a Status for use by the HMI Popup Display.
Working Source
(Input and Gate
Live wire state for
Gate M Source #1 is
Status) bits .0 to
Source 1 of each
Inverted (M by bit)
.15
gate (bit# = gate#)
(1=invert)
Wrk_Src.[Wrk_Src1Ptr]
Sts_GateSrc1Live.[Wrk_M]
Cfg_GateSrc1Inv.[Wrk_M]
/
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src1Ptr]
/
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src2Ptr]
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src2Ptr]
/
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src3Ptr]
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src3Ptr]
/
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src4Ptr]
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Src4Ptr]
/

Cfg_GateSrc1Inv

6(XIO) 6(XIC)

Cfg_GateSrc2Inv

6(XIC) 6(XIO)

Cfg_GateSrc3Inv

6(XIO) 6(XIC)

Cfg_GateSrc4Inv

6(XIC) 6(XIO)

Sts_GateSrc1Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc2Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc3Live

1(MOV) *6(OTE) 29(MOV)

This gate's Source


#1 state (after
inversion)
Wrk_Src1

Gate M Source #1 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc1Inv.[Wrk_M]

Live wire state for


Source 2 of each
gate (bit# = gate#)
Sts_GateSrc2Live.[Wrk_M]

Gate M Source #2 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc2Inv.[Wrk_M]
/

This gate's Source


#2 state (after
inversion)
Wrk_Src2

Gate M Source #3 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc3Inv.[Wrk_M]
/

This gate's Source


#3 state (after
inversion)
Wrk_Src3

Gate M Source #4 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc4Inv.[Wrk_M]
/

This gate's Source


#4 state (after
inversion)
Wrk_Src4

Gate M Source #2 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc2Inv.[Wrk_M]

Live wire state for


Source 3 of each
gate (bit# = gate#)
Sts_GateSrc3Live.[Wrk_M]

Gate M Source #3 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc3Inv.[Wrk_M]

Live wire state for


Source 4 of each
gate (bit# = gate#)
Sts_GateSrc4Live.[Wrk_M]

Gate M Source #4 is
Inverted (M by bit)
(1=invert)
Cfg_GateSrc4Inv.[Wrk_M]

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!

Page 36
22/12/2015 08,59,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_GateSrc4Live

1(MOV) *6(OTE) 29(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(OTL) 4(LIM) 4(EQU) 4(NEQ) 4(XIO) 5(XIC) 5(CPT) 5(MOV) 6(XIO) 6(OTE) 6(XIC) 7(OTL) 7(XIO) 7(EQU) 8(EQU)
8(XIC) 8(XIO) 9(OTL) 9(XIO) 9(XIC) 9(EQU) 10(XIO) 10(EQU) 10(XIC) 11(XIC) 11(EQU) 12(XIC) 13(OTL) 13(EQU) 14(EQU)
14(OTL) 15(ADD) *15(ADD) 15(LES)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIC) 19(XIO) 25(BTD)

Wrk_Src1

*6(OTE) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src1Ptr

*5(MOV) 5(CPT) 6(XIC) 6(XIO)

Wrk_Src2

*6(OTE) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src2Ptr

5(CPT) *5(MOV) 6(XIO) 6(XIC)

Wrk_Src3

*6(OTE) 8(XIO) 8(XIC) 9(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src3Ptr

5(CPT) *5(MOV) 6(XIC) 6(XIO)

Wrk_Src4

*6(OTE) 8(XIO) 8(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src4Ptr

*5(MOV) 5(CPT) 6(XIC) 6(XIO)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function Code = 5: SET - RESET
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTE: THIS FUNCTION IS PROCESSED FIRST
(and Function Code 6, Selector, is processed second)
BECAUSE ITS RESULT STATE IS LATCHED.
IF THIS FUNCTION IS USED, THE JMP AT THE END
KEEPS THE OTE's IN THE OTHER FUNCTIONS,
BELOW, FROM CLEARING THE LATCHED RESULT INADVERTANTLY!
This Function requires at least one "Set" Source (Source 1 or 3) and
at least one "Reset" Source (Source 2 or 4).
If both "Set" Sources are not used, or if both "Reset" Sources are
not used, flag an error and leave the gate Result in its last state.

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
EQU
Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
5

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]
/

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]
/

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]
/

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]
/
Error in Source Mask
(sources used) for
each gate
Wrk_ErrMask.[Wrk_M]
L

EndGate
JMP

Cfg_GateFunc

4(LIM) 4(EQU) 4(NEQ) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(LIM) 4(EQU) 4(NEQ) 4(XIO) 4(OTL) 5(CPT) 5(XIC) 5(MOV) 6(OTE) 6(XIC) 6(XIO) 7(OTL) 7(EQU) 7(XIO) 8(EQU)
8(XIC) 8(XIO) 9(EQU) 9(XIO) 9(OTL) 9(XIC) 10(EQU) 10(XIO) 10(XIC) 11(XIC) 11(EQU) 12(XIC) 13(EQU) 13(OTL) 14(OTL)
14(EQU) 15(ADD) 15(LES) *15(ADD)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!

Page 37
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Set - Reset Logic

The S-R has a dominant Set (1) and Reset (2) S


Set (3) and Reset (4) Source, allowing co
Set-Dominant or Reset-Dominant S
For each pair, the first one received wins, a
wins over the Non-Dominan

If the Non-Dominant Set Source is True and NEIT


Set (OTL) the Result
If the Non-Dominant Reset Source is True and N
Clear (OTU) the Resu
If the Dominant Set Source is True and the Domi
Set (OTL) the Result
If the Dominant Reset Source is True and the Do
Clear (OTU) the Resu
Otherwise, the Result maintains i

Cfg_GateFunc

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
EQU
Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
5

This gate's Source


#3 state (after
inversion)
Wrk_Src3

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]

This gate's Source


#2 state (after
inversion)
Wrk_Src2
/

Gat

Cfg_Ga

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]
/
This gate's Source
#4 state (after
inversion)
Wrk_Src4

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

This gate's Source


#1 state (after
inversion)
Wrk_Src1
/

Gat

Cfg_Ga

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]
/
This gate's Source
#1 state (after
inversion)
Wrk_Src1

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

This gate's Source


#2 state (after
inversion)
Wrk_Src2
/

Gat

Cfg_Ga

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]
/
This gate's Source
#2 state (after
inversion)
Wrk_Src2

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]

This gate's Source


#1 state (after
inversion)
Wrk_Src1
/

Gat

Cfg_Ga

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]
/

4(NEQ) 4(LIM) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!

Page 38
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Wrk_M

*2(CLR) 3(ADD) 4(EQU) 4(XIO) 4(NEQ) 4(LIM) 4(OTL) 5(MOV) 5(XIC) 5(CPT) 6(OTE) 6(XIC) 6(XIO) 7(OTL) 7(EQU) 7(XIO) 8(XIO)
8(XIC) 8(EQU) 9(EQU) 9(OTL) 9(XIO) 9(XIC) 10(EQU) 10(XIC) 10(XIO) 11(XIC) 11(EQU) 12(XIC) 13(OTL) 13(EQU) 14(EQU)
14(OTL) *15(ADD) 15(ADD) 15(LES)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTU) 8(OTL) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIO) 19(XIC) 25(BTD)

Wrk_Src1

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src2

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src3

*6(OTE) 8(XIO) 8(XIC) 9(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src4

*6(OTE) 8(XIO) 8(XIC) 10(XIC) 11(XIC) 12(XIC)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 39
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers

et (1) and Reset (2) Source, and a Non-Dominant


4) Source, allowing consturction of either a
or Reset-Dominant Set-Reset Gate.
t one received wins, and the Dominant pair
over the Non-Dominant pair.

urce is True and NEITHER Reset Source is True,


Set (OTL) the Result.
Source is True and NEITHER Set Source is True,
Clear (OTU) the Result.
is True and the Dominant Reset Source is False,
Set (OTL) the Result.
ce is True and the Dominant Set Source is False,
Clear (OTU) the Result.
the Result maintains its last state.
Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]

This gate's Source


#4 state (after
inversion)
Wrk_Src4
/

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]
L

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]
/
Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

This gate's Source


#3 state (after
inversion)
Wrk_Src3
/

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]
U

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]
/
Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]
L

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]
U

EndGate
JMP

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 40
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function Code = 6 A/B Selector
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This Function requires that the Select (#3) source is used and AT LEAST ONE of
its A / B sources (#1 or #2) is used. Source #4 must be UNUSED.
If source #3 is not used, if source #1 and #2 are BOTH unused, or if source #4 IS used,
flag the error and leave the gate result in its last state.
This Function selects either the A Source (#1) or the B Source (#2)
to pass through as its result, depending on the state of the A/B Select Source (#3).
If the A/B Select is FALSE (after inversion), pass through Source A (after inversion).
If the A/B Select is TRUE (after inversion), pass through Source B (after inversion).

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
EQU
Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
6

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]
/
Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]
/

Error in Source Mask


(sources used) for
each gate
Wrk_ErrMask.[Wrk_M]
L
Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]
/

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

EndGate
JMP
This gate's Source
#3 state (after
inversion)
Wrk_Src3
/

This gate's Source


#1 state (after
inversion)
Wrk_Src1

This gate's Source


#3 state (after
inversion)
Wrk_Src3

This gate's Source


#2 state (after
inversion)
Wrk_Src2

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]

EndGate
JMP

Cfg_GateFunc

4(LIM) 4(NEQ) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIO) 8(XIC) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!

Page 41
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(EQU) 4(XIO) 4(OTL) 4(LIM) 4(NEQ) 5(MOV) 5(XIC) 5(CPT) 6(XIO) 6(OTE) 6(XIC) 7(OTL) 7(XIO) 7(EQU) 8(XIO)
8(XIC) 8(EQU) 9(XIC) 9(EQU) 9(OTL) 9(XIO) 10(XIC) 10(XIO) 10(EQU) 11(XIC) 11(EQU) 12(XIC) 13(EQU) 13(OTL) 14(EQU)
14(OTL) *15(ADD) 15(ADD) 15(LES)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTU) 8(OTL) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIO) 19(XIC) 25(BTD)

Wrk_Src1

*6(OTE) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src2

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src3

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 9(XIO) 10(XIC) 11(XIC) 12(XIC)

~~~~~~~~~~

~~~~~~~~~~

If al

10

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
EQU
Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
1

This gate's Source


#1 state (after
inversion)
Wrk_Src1

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]
/

This gate's Source


#2 state (after
inversion)
Wrk_Src2

Gate M Source #2
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[W
/

Cfg_GateFunc

4(NEQ) 4(LIM) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Wrk_M

*2(CLR) 3(ADD) 4(EQU) 4(XIO) 4(NEQ) 4(LIM) 4(OTL) 5(MOV) 5(XIC) 5(CPT) 6(OTE) 6(XIC) 6(XIO) 7(OTL) 7(EQU) 7(XIO) 8(XIO)
8(XIC) 8(EQU) 9(EQU) 9(OTL) 9(XIO) 9(XIC) 10(EQU) 10(XIC) 10(XIO) 11(XIC) 11(EQU) 12(XIC) 13(OTL) 13(EQU) 14(EQU)
14(OTL) *15(ADD) 15(ADD) 15(LES)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTU) 8(OTL) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIO) 19(XIC) 25(BTD)

Wrk_Src1

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src2

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src3

*6(OTE) 8(XIO) 8(XIC) 9(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src4

*6(OTE) 8(XIO) 8(XIC) 10(XIC) 11(XIC) 12(XIC)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 42
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function Code = 1: LOGICAL "AND"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If all of the "Used" Sources are true, this gate's Result is true.
Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]
Gate M Source #2 is
Used (M by bit)

Cfg_GateSrc2Mask.[Wrk_M]

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

This gate's Source


#3 state (after
inversion)
Wrk_Src3

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]
/

This gate's Source


#4 state (after
inversion)
Wrk_Src4

Gate M
Use

Cfg_GateS

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]
/

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]

EndGate
JMP

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 43
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function Code = 2: LOGICAL "OR"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If any of the "Used" Sources are true, this gate's Result is true.

11

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
EQU
Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
2

This gate's Source


#1 state (after
inversion)
Wrk_Src1

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

This gate's Source


#2 state (after
inversion)
Wrk_Src2

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]

This gate's Source


#3 state (after
inversion)
Wrk_Src3

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]

This gate's Source


#4 state (after
inversion)
Wrk_Src4

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]

EndGate
JMP

Cfg_GateFunc

4(NEQ) 4(LIM) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Wrk_M

*2(CLR) 3(ADD) 4(EQU) 4(XIO) 4(NEQ) 4(LIM) 4(OTL) 5(MOV) 5(XIC) 5(CPT) 6(OTE) 6(XIC) 6(XIO) 7(OTL) 7(EQU) 7(XIO) 8(XIO)
8(XIC) 8(EQU) 9(EQU) 9(OTL) 9(XIO) 9(XIC) 10(EQU) 10(XIC) 10(XIO) 11(XIC) 11(EQU) 12(XIC) 13(OTL) 13(EQU) 14(EQU)
14(OTL) *15(ADD) 15(ADD) 15(LES)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTU) 8(OTL) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIO) 19(XIC) 25(BTD)

Wrk_Src1

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src2

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src3

*6(OTE) 8(XIO) 8(XIC) 9(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src4

*6(OTE) 8(XIO) 8(XIC) 10(XIC) 11(XIC) 12(XIC)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 44
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


The Logical Exclusive OR (XOR) and Majority (M out of N or "MooN") gates
need to know how many Sources are Used
and how many of the Used Sources are True (after input inverting).

12

Clear the totals, then add the numbers for each Source Used and True.
Number of Sources
Number or Sources
configured to be
(after inversion)
used
which are True
CLR
CLR
Clear
Clear
Dest Wrk_SrcsUsed
Dest Wrk_SrcsTrue
0
0

Gate M Source #1 is
Used (M by bit)
(1=used)
Cfg_GateSrc1Mask.[Wrk_M]

Number of Sources
configured to be
used
ADD
Add
Source A Wrk_SrcsUsed
0
Source B
1

This gate's Source


#1 state (after
inversion)
Wrk_Src1

Dest Wrk_SrcsUsed
0

Number or Sources
(after inversion)
which are True
ADD
Add
Source A Wrk_SrcsTrue
0
Source B
1

Dest Wrk_SrcsTrue
0

Gate M Source #2 is
Used (M by bit)
(1=used)
Cfg_GateSrc2Mask.[Wrk_M]

Number of Sources
configured to be
used
ADD
Add
Source A Wrk_SrcsUsed
0
Source B
1

This gate's Source


#2 state (after
inversion)
Wrk_Src2

Dest Wrk_SrcsUsed
0

Number or Sources
(after inversion)
which are True
ADD
Add
Source A Wrk_SrcsTrue
0
Source B
1

Dest Wrk_SrcsTrue
0

Gate M Source #3 is
Used (M by bit)
(1=used)
Cfg_GateSrc3Mask.[Wrk_M]

Number of Sources
configured to be
used

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 45
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


used
ADD
Add
Source A Wrk_SrcsUsed
0
Source B
1

This gate's Source


#3 state (after
inversion)
Wrk_Src3

Dest Wrk_SrcsUsed
0

Number or Sources
(after inversion)
which are True
ADD
Add
Source A Wrk_SrcsTrue
0
Source B
1

Dest Wrk_SrcsTrue
0

Gate M Source #4 is
Used (M by bit)
(1=used)
Cfg_GateSrc4Mask.[Wrk_M]

Number of Sources
configured to be
used
ADD
Add
Source A Wrk_SrcsUsed
0
Source B
1

This gate's Source


#4 state (after
inversion)
Wrk_Src4

Dest Wrk_SrcsUsed
0

Number or Sources
(after inversion)
which are True
ADD
Add
Source A Wrk_SrcsTrue
0
Source B
1

Dest Wrk_SrcsTrue
0

Cfg_GateSrc1Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc2Mask

4(XIO) 5(XIC) 7(XIO) 8(XIO) 8(XIC) 9(XIO) 10(XIO) 10(XIC) 11(XIC) 12(XIC)

Cfg_GateSrc3Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIO) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Cfg_GateSrc4Mask

4(XIO) 5(XIC) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO) 11(XIC) 12(XIC)

Wrk_M

*2(CLR) 3(ADD) 4(OTL) 4(LIM) 4(NEQ) 4(EQU) 4(XIO) 5(CPT) 5(XIC) 5(MOV) 6(XIC) 6(XIO) 6(OTE) 7(OTL) 7(XIO) 7(EQU) 8(XIO)
8(XIC) 8(EQU) 9(XIC) 9(EQU) 9(OTL) 9(XIO) 10(XIO) 10(EQU) 10(XIC) 11(EQU) 11(XIC) 12(XIC) 13(EQU) 13(OTL) 14(OTL)
14(EQU) 15(LES) 15(ADD) *15(ADD)

Wrk_Src1

*6(OTE) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src2

*6(OTE) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src3

*6(OTE) 8(XIC) 8(XIO) 9(XIC) 9(XIO) 10(XIC) 11(XIC) 12(XIC)

Wrk_Src4

*6(OTE) 8(XIC) 8(XIO) 10(XIC) 11(XIC) 12(XIC)

Wrk_SrcsTrue

12(ADD) *12(ADD) *12(CLR) 13(EQU) 13(LES) 14(LES) 14(GEQ)

Wrk_SrcsUsed

12(ADD) *12(CLR) *12(ADD) 13(LES) 14(EQU) 14(LES) 14(LIM)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!

Page 46
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function Code = 3: LOGICAL "EXCLUSIVE OR" (XOR)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If more Sources True than are Used, something is amiss. Flag the error and hold last state.
Of the Used sources, the XOR result is true if an ODD number of them (1 or 3) are True.

13

(This Function will likely be most often used with TWO Sources.)
Function code for
Error in Source Mask
gate M (1=AND, 2=OR,
Number of Sources
(sources used) for
3=XOR, 4=2oo3,
configured to be
each gate
5=Set-Reset)
used
Wrk_ErrMask.[Wrk_M]
EQU
LES
Equal
Less Than (A<B)
L
Source A Cfg_GateFunc[Wrk_M]
Source A Wrk_SrcsUsed
0
0
Source B
3
Source B Wrk_SrcsTrue
0

Number or Sources
(after inversion)
which are True
EQU
Equal
Source A Wrk_SrcsTrue
0
Source B
1

EndGate
JMP

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]

Number or Sources
(after inversion)
which are True
EQU
Equal
Source A Wrk_SrcsTrue
0
Source B
3

EndGate
JMP

Cfg_GateFunc

4(LIM) 4(NEQ) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(OTL) 4(NEQ) 4(XIO) 4(EQU) 4(LIM) 5(XIC) 5(MOV) 5(CPT) 6(OTE) 6(XIO) 6(XIC) 7(EQU) 7(XIO) 7(OTL) 8(XIO)
8(XIC) 8(EQU) 9(XIO) 9(EQU) 9(OTL) 9(XIC) 10(XIO) 10(XIC) 10(EQU) 11(EQU) 11(XIC) 12(XIC) 13(OTL) 13(EQU) 14(EQU)
14(OTL) 15(ADD) 15(LES) *15(ADD)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTL) 8(OTU) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIO) 19(XIC) 25(BTD)

Wrk_SrcsTrue

*12(CLR) 12(ADD) *12(ADD) 13(LES) 13(EQU) 14(LES) 14(GEQ)

Wrk_SrcsUsed

*12(CLR) *12(ADD) 12(ADD) 13(LES) 14(LIM) 14(LES) 14(EQU)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 47
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function Code = 4: M out of N (MooN, Majority)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If more Sources True than are Used, something is amiss. Flag the error and hold last state.
This Function's Result is True when a MAJORITY of its used Sources are true.
The Result is true when:
if one Source is Used, when that Source is true;
if two or three Sources are Used, when at least two are true;
if four Sources are Used, when at lest three are true.

14

Function code for


gate M (1=AND, 2=OR,
3=XOR, 4=2oo3,
5=Set-Reset)
EQU
Equal
Source A Cfg_GateFunc[Wrk_M]
0
Source B
4

Error in Source Mask


(sources used) for
each gate
Wrk_ErrMask.[Wrk_M]
L

Number of Sources
configured to be
used
LES
Less Than (A<B)
Source A Wrk_SrcsUsed
0
Source B Wrk_SrcsTrue
0

Number of Sources
configured to be
used
EQU
Equal
Source A Wrk_SrcsUsed
0
Source B
1

Number of Sources
configured to be
used
LIM
Limit Test (CIRC)
Low Limit

Test

Wrk_SrcsUsed
0
High Limit
3

Number of Sources
configured to be
used
EQU
Equal
Source A Wrk_SrcsUsed
0
Source B
4

Number or Sources
(after inversion)
which are True
GEQ
Grtr Than or Eql (A>=B)
Source A Wrk_SrcsTrue
0
Source B
1

EndGate
JMP

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Wrk_Mplus8]

Number or Sources
(after inversion)
which are True
GEQ
Grtr Than or Eql (A>=B)
Source A Wrk_SrcsTrue
0
Source B
2

Number or Sources
(after inversion)
which are True
GEQ
Grtr Than or Eql (A>=B)
Source A Wrk_SrcsTrue
0
Source B
3

EndGate
JMP

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 48
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


Cfg_GateFunc

4(LIM) 4(NEQ) 4(EQU) 7(EQU) 8(EQU) 9(EQU) 10(EQU) 11(EQU) 13(EQU) 14(EQU)

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Wrk_M

*2(CLR) 3(ADD) 4(OTL) 4(NEQ) 4(XIO) 4(EQU) 4(LIM) 5(XIC) 5(MOV) 5(CPT) 6(OTE) 6(XIO) 6(XIC) 7(EQU) 7(XIO) 7(OTL) 8(XIO)
8(XIC) 8(EQU) 9(XIO) 9(EQU) 9(OTL) 9(XIC) 10(XIO) 10(XIC) 10(EQU) 11(EQU) 11(XIC) 12(XIC) 13(OTL) 13(EQU) 14(EQU)
14(OTL) 15(ADD) 15(LES) *15(ADD)

Wrk_Mplus8

*3(ADD) 4(OTU) 8(OTL) 8(OTU) 9(OTE) 10(OTE) 11(OTE) 13(OTE) 14(OTE)

Wrk_Src

*4(OTU) 6(XIO) 6(XIC) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIO) 19(XIC) 25(BTD)

Wrk_SrcsTrue

*12(CLR) 12(ADD) *12(ADD) 13(LES) 13(EQU) 14(LES) 14(GEQ)

Wrk_SrcsUsed

*12(CLR) *12(ADD) 12(ADD) 13(LES) 14(LIM) 14(LES) 14(EQU)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

15

Wrk_M

EndGate
LBL

Page 49
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BOTTOM OF LOOP, PER GATE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Processing of this Gate is complete.
If this was not the last Gate, increment the Loop Index (Wrk_M)
and go back to process the next Gate.
Gate (0 to 7)
Gate (0 to 7)
currently being
currently being
processed
processed
LES
ADD
Less Than (A<B)
Add
Source A
Wrk_M
Source A
Wrk_M
Dest
Wrk_M
0
0
0
Source B
7
Source B
1

NextGate
JMP

*2(CLR) 3(ADD) 4(NEQ) 4(XIO) 4(EQU) 4(OTL) 4(LIM) 5(XIC) 5(MOV) 5(CPT) 6(XIO) 6(XIC) 6(OTE) 7(XIO) 7(EQU) 7(OTL) 8(EQU)
8(XIO) 8(XIC) 9(OTL) 9(EQU) 9(XIC) 9(XIO) 10(EQU) 10(XIC) 10(XIO) 11(XIC) 11(EQU) 12(XIC) 13(EQU) 13(OTL) 14(EQU)
14(OTL) *15(ADD) 15(LES) 15(ADD)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 50
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


============================================================
PROCESS THE OUTPUT
============================================================
The Output has OnDelay and OffDelay Timers applied to the selected input/gate Result.
* Multiply the configured presets in Seconds by 1000 to get milliseconds for the Timer Presets.
* Check the Presets for validity; if not valid (negative), clear and flag the error.
##### V2.0-01 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####
Output ON Delay
Timer
MUL
Multiply
Source A Cfg_OnDelay
0
Source B
1000

16

Dest Wrk_OnDelayT.PRE
0

Output OFF Delay


Timer
MUL
Multiply
Source A Cfg_OffDelay
0
Source B
1000

Output ON Delay
Timer
Wrk_OnDelayT.PRE.31

Output ON Delay
Timer
CLR
Clear
Dest Wrk_OnDelayT.PRE
0

Output OFF Delay


Timer
Wrk_OffDelayT.PRE.31

Output OFF Delay


Timer
CLR
Clear
Dest Wrk_OffDelayT.PRE
0

Cfg_OffDelay

16(MUL)

Cfg_OnDelay

16(MUL)

Err_Timer

*16(OTE) 24(XIC)

Wrk_OffDelayT.PRE

*16(MUL) *16(CLR) 22(CPT) 22(NEQ)

Dest Wrk_OffDelayT.PRE
0

1=Error in Output's
On Delay or Off
Delay Preset (use 0
to 2147483)
Err_Timer

Wrk_OffDelayT.PRE.31 16(XIC)
Wrk_OnDelayT.PRE

*16(CLR) *16(MUL) 22(NEQ) 22(CPT)

Wrk_OnDelayT.PRE.31

16(XIC)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 51
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


Check the Output Source Pointer to make sure it points to a valid
AOI Input (0 to 7) or Gate Result (8 to 15).
If not, flag the error and skip evaluation of the result (to avoid a major fault)
and reset the Output OnDelay and OffDelay Timers.

17

Source bit for


Output (0..7 =
inputs, 8..15 =
gates)
LIM
Limit Test (CIRC)
Low Limit

Error in Output
Source Pointer (must
be 0..15)
Wrk_ErrOutSrcPtr

Output ON Delay
Timer
Wrk_OnDelayT
RES

Output OFF Delay


Timer
Wrk_OffDelayT
RES

Output
JMP

16

Test

Cfg_OutSrcPtr
0
High Limit
-1

Cfg_OutSrcPtr

17(LIM) 18(MOV) 19(XIC) 19(XIO)

Wrk_ErrOutSrcPtr

*17(OTE) 24(XIC)

Wrk_OffDelayT

*17(RES) *20(TOF)

Wrk_OnDelayT

*17(RES) *20(TON)

18

Update the "last gate" values used in animating the HMI Popup with which
gate or input is tied to the output so a line can be drawn to the output.
Last Gate pin which
uses this Source
(0=not used 1..4=
gate 1.., 33=output)
(for animation)
MOV
Move
Source
33
Dest Wrk_LastGate[Cfg_OutSrcPtr]
0

Cfg_OutSrcPtr

17(LIM) 18(MOV) 19(XIO) 19(XIC)

Wrk_LastGate

*2(FLL) *5(CPT) *18(MOV)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

19

Page 52
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


If the Output Source Pointer is valid, de-reference it and grab the pointed-to bit,
invert it if so configured, and if that result is true, note it.
Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Cfg_OutSrcPtr]

Out Source (before


Min Duration Timer)
is Inverted
(1=invert)
Cfg_OutSrcInv
/
Out Source (before
Min Duration Timer)
is Inverted
(1=invert)
Cfg_OutSrcInv

Output after
inverter but before
TON/TOF timers
Sts_OutInvLive

Working Source
(Input and Gate
Status) bits .0 to
.15
Wrk_Src.[Cfg_OutSrcPtr]
/

Cfg_OutSrcInv

19(XIO) 19(XIC)

Cfg_OutSrcPtr

17(LIM) 18(MOV) 19(XIO) 19(XIC)

Sts_OutInvLive

1(XIC) 1(XIO) *19(OTE) 20(XIC) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 29(XIC) 29(XIO)

Wrk_Src

*4(OTU) 6(XIC) 6(XIO) *8(OTU) *8(OTL) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIC) 19(XIO) 25(BTD)

The Output OnDelay and OffDelay Timers follow the logic result to generate the final output.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@
##### 2.0-01 2012-07-17: Improved handling of timers with presets = 0 #####
Output after
inverter but before
TON/TOF timers
Sts_OutInvLive
20

Output ON Delay
Timer
TON
Timer On Delay
Timer Wrk_OnDelayT
Preset
0
Accum
0
Output OFF Delay
Timer
TOF
Timer Off Delay
Timer Wrk_OffDelayT
Preset
0
Accum
0

EN
DN

EN
DN

Sts_OutInvLive

1(XIC) 1(XIO) *19(OTE) 20(XIC) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 29(XIC) 29(XIO)

Wrk_OffDelayT

*17(RES) *20(TOF)

Wrk_OnDelayT

*17(RES) *20(TON)

Output ON Delay
Timer
TON
Timer On Delay
Timer Wrk_OnDelayT
Preset
0
Accum
0
Output OFF Delay
Timer
TOF
Timer Off Delay
Timer Wrk_OffDelayT
Preset
0
Accum
0

EN
DN

EN
DN

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 53
22/12/2015 08,59,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


If the OnDelay Timer goes DONE, or if the timer's input is true and its Preset is zero, set the Output.
If the OffDelay Timer is TIMING and its preset is nonzero, set the Output.

21

Output
LBL

(The extra branch and comparisons against the Presets are needed to ensure there is
no one-scan delay in the DN bit of the TON or the timing of the TOF affecting the Output.)
Output after
Condition Logic
inverter but before
Output ON Delay
Output (result)
TON/TOF timers
Timer
after delay
Sts_OutInvLive
Wrk_OnDelayT.DN
Out_Live
L
Output after
inverter but before
TON/TOF timers
Sts_OutInvLive
/

Output OFF Delay


Timer
Wrk_OffDelayT.DN
/

Out_Live

1(XIC) 1(XIO) *21(OTU) *21(OTL) 22(XIO) 22(XIC) 28(XIC) 28(XIO) 29(XIO) 29(XIC)

Sts_OutInvLive

1(XIO) 1(XIC) *19(OTE) 20(XIC) 21(XIO) 21(XIC) 22(XIC) 22(XIO) 29(XIO) 29(XIC)

Wrk_OffDelayT.DN

21(XIO)

Wrk_OnDelayT.DN

21(XIC)

Condition Logic
Output (result)
after delay
Out_Live
U

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 54
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


============================================================
GENERATE VALUES AND STATUS
============================================================
This rung generates the OnDelay / OffDelay "percent complete" value
for the HMI progress bar for output delay.
Output ON Delay
Timer
Wrk_OnDelayT.TT
22

Output ON Delay
Timer
NEQ
Not Equal
Source A Wrk_OnDelayT.PRE
0
Source B
0

Output OnDelay or
OffDelay percent
complete: live
CPT
Compute
Expression Wrk_OnDelayT.ACC*100/Wrk_OnDelayT.PRE

Output OFF Delay


Timer
Wrk_OffDelayT.TT

Dest Val_DelayPctLive
0

Output OFF Delay


Timer
NEQ
Not Equal
Source A Wrk_OffDelayT.PRE
0
Source B
0

Output OnDelay or
OffDelay percent
complete: live
CPT
Compute
Expression Wrk_OffDelayT.ACC*100/Wrk_OffDelayT.PRE

Output ON Delay
Timer
Wrk_OnDelayT.TT
/

Output OFF Delay


Timer
Wrk_OffDelayT.TT
/

Output after
inverter but before
TON/TOF timers
Sts_OutInvLive

Condition Logic
Output (result)
after delay
Out_Live

Output after
inverter but before
TON/TOF timers
Sts_OutInvLive
/

Condition Logic
Output (result)
after delay
Out_Live
/

Dest Val_DelayPctLive
0

Output OnDelay or
OffDelay percent
complete: live
MOV
Move
Source

100

Out_Live

1(XIC) 1(XIO) *21(OTL) *21(OTU) 22(XIO) 22(XIC) 28(XIO) 28(XIC) 29(XIC) 29(XIO)

Sts_OutInvLive

1(XIO) 1(XIC) *19(OTE) 20(XIC) 21(XIC) 21(XIO) 22(XIO) 22(XIC) 29(XIO) 29(XIC)

Val_DelayPctLive

1(MOV) *22(MOV) *22(CPT) 29(MOV)

Wrk_OffDelayT.ACC

22(CPT)

Wrk_OffDelayT.PRE

*16(MUL) *16(CLR) 22(NEQ) 22(CPT)

Wrk_OffDelayT.TT

22(XIO) 22(XIC)

Dest Val_DelayPctLive
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic
Total number of rungs in routine: %1!d!
Wrk_OnDelayT.ACC

22(CPT)

Wrk_OnDelayT.PRE

*16(MUL) *16(CLR) 22(CPT) 22(NEQ)

Wrk_OnDelayT.TT

22(XIO) 22(XIC)

Page 55
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

This rung generates the gate-wise Err_xxx configuration error bits


1=Error in each
Gate's Function Code
(use 0 to 6)
MOV
23

Move
Source Wrk_ErrFunc
0

Dest Err_GateFunc
2#0000_0000

1=Error in each
Gate's Source
Pointer (use 0 to
15)
MOV
Move
Source Wrk_ErrGateSrcPtr
0

Dest Err_GateSrcPtr
2#0000_0000

1=Error in each
Gate's Mask (source
used) configuration
(qty, choice)
MOV
Move
Source Wrk_ErrMask
0

Err_GateFunc

*23(MOV) 24(NEQ)

Err_GateSrcMask

*23(MOV) 24(NEQ)

Err_GateSrcPtr

*23(MOV) 24(NEQ)

Wrk_ErrFunc

*2(CLR) *4(OTL) 23(MOV)

Wrk_ErrGateSrcPtr

*2(CLR) *4(OTL) 23(MOV)

Wrk_ErrMask

*2(CLR) *4(OTL) *7(OTL) *9(OTL) *13(OTL) *14(OTL) 23(MOV)

Dest Err_GateSrcMask
2#0000_0000

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 56
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


This rung generates the remaining Err_xxx configuration error bits and
summarizes them all Err_ params into Sts_Err (summary configuration error status bit).
1=Error in each
Gate's Function Code
(use 0 to 6)
NEQ
Not Equal
Source A Err_GateFunc
2#0000_0000
Source B
0

24

1=Error in Config:
see detail bits for
reason
Sts_Err

1=Error in each
Gate's Source
Pointer (use 0 to
15)
NEQ
Not Equal
Source A Err_GateSrcPtr
2#0000_0000
Source B
0

1=Error in each
Gate's Mask (source
used) configuration
(qty, choice)
NEQ
Not Equal
Source A Err_GateSrcMask
2#0000_0000
Source B
0

Error in Output
Source Pointer (must
be 0..15)
Wrk_ErrOutSrcPtr

1=Error in Output's
Source Pointer (use
0 to 15)
Err_OutSrcPtr

1=Error in Output's
On Delay or Off
Delay Preset (use 0
to 2147483)
Err_Timer

Err_GateFunc

*23(MOV) 24(NEQ)

Err_GateSrcMask

*23(MOV) 24(NEQ)

Err_GateSrcPtr

*23(MOV) 24(NEQ)

Err_OutSrcPtr

*24(OTE)

Err_Timer

*16(OTE) 24(XIC)

Sts_Err

*24(OTE)

Wrk_ErrOutSrcPtr

*17(OTE) 24(XIC)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 57
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


This rung copies out the various Statuses and Values associated with Inputs and Gates:
Current State (Sts_Inp and Sts_Gate) and values used in HMI animation (Val_LastInp, Val_LastGate).

25

Live Input Status


bits: .0 to .7 =
Inp_0 to Inp_7
BTD
Bit Field Distribute
Source
Wrk_Src
Dest Sts_InpLive
2#0000_0000_0000_0000
2#0000_0000
Source Bit
0
Dest Bit
0
Length
8

Live Gate Result


Status bits: .0 to
.7 = Gate 0 to 7
BTD
Bit Field Distribute
Source
Wrk_Src
Dest Sts_GateLive
2#0000_0000_0000_0000
2#0000_0000
Source Bit
8
Dest Bit
0
Length
8

Last Gate pin which


uses this Input
(0=not used 1..3=
gates, 33=output)
(for animation)
COP
Copy File
Source Wrk_LastGate[0]
Length
8

Dest Val_LastInp[0]

Last Gate pin which


uses this Gate
Result (0=not used
1..3= gates,
33=output)
COP
Copy File
Source Wrk_LastGate[8]
Length
8

Dest Val_LastGate[0]

Sts_GateLive

1(MOV) *25(BTD) 29(MOV)

Sts_InpLive

1(MOV) *25(BTD) 29(MOV)

Val_LastGate

*25(COP)

Val_LastInp

*25(COP)

Wrk_LastGate

25(COP) 25(COP)

Wrk_Src

*4(OTU) 6(XIC) 6(XIO) *8(OTL) *8(OTU) *9(OTE) *10(OTE) *11(OTE) *13(OTE) *14(OTE) 19(XIC) 19(XIO) 25(BTD)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 58
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


============================================================
GENERATE SNAPSHOT
============================================================
The following rungs generate the logic snapshot used to display the
"shutdown cause" when this instruction is used for complex interlock logic (for example).
This rung sets us up to copy current logic status data to the snapshot area this scan.
If there has been no snapshot since last reset, plan on copying the live data to
the snap shot this scan.
NOTE: All the methods below of triggering a snapshot will copy data THIS scan's state.
Inp_Hold, which is checked at the top of this routine, captures LAST scan's state!!!

26

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
/

1=Copy Live Data to


Snapshot This Scan
Wrk_Copy
L

Wrk_Copy

*1(OTU) *26(OTL) *28(OTL) *29(OTU) 29(XIC)

Wrk_SnapLatch

*1(OTL) 1(XIO) 26(XIO) *28(OTL) 28(XIO) *30(OTU) 31(XIC) 32(XIC) 32(XIO)

Capture this scan's timestamp. (We may need it next scan if Inp_Hold comes true...)
Date/Time Stamp from
scan of logic
GSV
Get System Value
Class Name WALLCLOCKTIME
Dest Wrk_DateTime[0]
Instance Name
0
Attribute Name
LocalDateTime

27

Wrk_DateTime[0]

*27(GSV)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 59
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


This rung looks for a Snapshot command (Operator or Program) or
for a 0-to-1 or 1-to-0 transition of the Output, or the Inp_Hold Input
to initiate a snapshot.
Note that the snapshot data are THIS scan's logic output, except for
Inp_Hold trigger, which uses LAST scan's logic results!
Record which initiator triggered the snapshot.

Operator Command to
capture Input, Gate
states in Snapshot
OCmd_Snap
28

Operator Command to
capture Input, Gate
states in Snapshot
OCmd_Snap
U

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
/

1=Enable snapshot on
OCmd_Snap 0 --> 1
(edge)
Cfg_UseOCmd

1=New snapshot
overwrites without
reset, 0=save first
snapshot till reset
Cfg_SnapOver

Snapshot Initiator:
1=OCmd, 2=PCmd,
3=Out 0-->1, 4=Out
1-->0, 5=Inp_Hold
MOV
Move
Source

Program Command to
capture Input, Gate
states in Snapshot
PCmd_Snap

Program Command to
capture Input, Gate
states in Snapshot
PCmd_Snap
U

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
/
1=New snapshot
overwrites without
reset, 0=save first
snapshot till reset
Cfg_SnapOver

Condition Logic
Output (result)
after delay
Out_Live

Snap on Output
Transition 0 --> 1
(one-shot store)
Wrk_Out01SnapONS
ONS

Snap on Program
Command 0 --> 1
(one-shot store)
Wrk_PCmdSnapONS
ONS

Dest Val_SnapInit
0

1=Enable snapshot on
PCmd_Snap 0 --> 1
(edge)
Cfg_UsePCmd

Snapshot Initiator:
1=OCmd, 2=PCmd,
3=Out 0-->1, 4=Out
1-->0, 5=Inp_Hold
MOV
Move
Source

1=Enable snapshot on
Output 0 --> 1
(rising edge)
Cfg_UseOut01

Dest Val_SnapInit
0

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
/
1=New snapshot
overwrites without
reset, 0=save first
snapshot till reset
Cfg_SnapOver

Snapshot Initiator:
1=OCmd, 2=PCmd,
3=Out 0-->1, 4=Out
1-->0, 5=Inp_Hold
MOV
Move
Source

Dest Val_SnapInit
0

1=a snapshot has

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 60
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


Condition Logic
Output (result)
after delay
Out_Live
/

Snap on Output
Transition 1 --> 0
(one-shot store)
Wrk_Out10SnapONS
ONS

1=Enable snapshot on
Output 1 --> 0
(falling edge)
Cfg_UseOut10

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
/
1=New snapshot
overwrites without
reset, 0=save first
snapshot till reset
Cfg_SnapOver

Snapshot Initiator:
1=OCmd, 2=PCmd,
3=Out 0-->1, 4=Out
1-->0, 5=Inp_Hold
MOV
Move
Source

Dest Val_SnapInit
0

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
L

Cfg_SnapOver

1(XIC) 28(XIC) 32(XIC)

Cfg_UseOCmd

28(XIC) 32(XIC)

Cfg_UseOut01

28(XIC)

Cfg_UseOut10

28(XIC)

Cfg_UsePCmd

28(XIC) 30(XIC)

OCmd_Snap

*28(OTU) 28(XIC)

Out_Live

1(XIO) 1(XIC) *21(OTU) *21(OTL) 22(XIO) 22(XIC) 28(XIO) 28(XIC) 29(XIO) 29(XIC)

PCmd_Snap

*28(OTU) 28(XIC)

Val_SnapInit

*1(MOV) *28(MOV) *30(CLR)

Wrk_Copy

*1(OTU) *26(OTL) *28(OTL) 29(XIC) *29(OTU)

Wrk_Out01SnapONS

*28(ONS)

Wrk_Out10SnapONS

*28(ONS)

Wrk_PCmdSnapONS

*28(ONS)

Wrk_SnapLatch

*1(OTL) 1(XIO) 26(XIO) 28(XIO) *28(OTL) *30(OTU) 31(XIC) 32(XIO) 32(XIC)

1=Copy Live Data to


Snapshot This Scan
Wrk_Copy
L

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

1=Copy Live Data to


Snapshot This Scan
Wrk_Copy

Page 61
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


If we don't have a snapshot (show live), or if we need to copy the live data
to the snapshot because we just TOOK the snapshot,
copy the live state to the snapshot state.
Output after
inverter but before
TON/TOF timers
Sts_OutInvLive

29
Output after
inverter but before
TON/TOF timers
Sts_OutInvLive
/
Condition Logic
Output (result)
after delay
Out_Live
Condition Logic
Output (result)
after delay
Out_Live
/

Output OnDelay or
OffDelay percent
complete: snapsho
MOV
Move
Source Val_DelayPctLive
0

Snapshot of Input
Status bits: .0 to
.7 = Inp_0 to Inp_7
MOV
Move
Source Sts_InpLive
2#0000_0000

Dest Sts_InpSnap
2#0000_0000

Snapshot of Wire
state for Source 1
of each gate (bit# =
gate#)
MOV
Move
Source Sts_GateSrc1Live
2#0000_0000

Dest Sts_GateSrc1Snap
2#0000_0000

Snapshot of Wire
state for Source 3
of each gate (bit# =
gate#)
MOV
Move
Source Sts_GateSrc3Live
2#0000_0000

1=Generate a
TimeStamp when
Snapshot occurs
Cfg_TSonSnap

Dest Sts_GateSrc3Snap
2#0000_0000

Des

Snapshot of G
Result Status b
.0 to .7 = Gate
7
MOV
Move
Source Sts_GateLive
2#0000_0000
Snapshot of Wire
state for Source 2
of each gate (bit# =
gate#)
MOV
Move
Source Sts_GateSrc2Live
2#0000_0000

Des

Snapshot of Wire
state for Source 4
of each gate (bit# =
gate#)
MOV
Move
Source Sts_GateSrc4Live
2#0000_0000

Des

Snapshot Timesta
[0]=yr, [1]=mo,
[2]=da, [3]=hr,
[4]=min, [5]=sec
[6]=usec
COP
Copy File
Source Wrk_DateTime[0]
Length
7

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 62
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers

Snapshot of Output
after inverter but
before TON/TOF
Sts_OutInvSnap
L
Snapshot of Output
after inverter but
before TON/TOF
Sts_OutInvSnap
U
Condition Logic
Output (result) at
Snapshot
Out_Snap
L
Condition Logic
Output (result) at
Snapshot
Out_Snap
U
Output OnDelay or
complete: snapshot
Dest Val_DelayPctSnap
0
Snapshot of Gate
Result Status bits:
.0 to .7 = Gate 0 to

Dest Sts_GateSnap
2#0000_0000

of each gate (bit# =

Dest Sts_GateSrc2Snap
2#0000_0000

of each gate (bit# =

Dest Sts_GateSrc4Snap
2#0000_0000
Snapshot Timestamp
[0]=yr, [1]=mo,
[2]=da, [3]=hr,
[4]=min, [5]=sec,

Dest Val_SnapTS[0]

1=Copy Live Data to


Snapshot This Scan
Wrk_Copy
U

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 63
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers

Cfg_TSonSnap

1(XIC) 29(XIC)

Out_Live

1(XIC) 1(XIO) *21(OTL) *21(OTU) 22(XIC) 22(XIO) 28(XIO) 28(XIC) 29(XIO) 29(XIC)

Out_Snap

*1(OTU) *1(OTL) *29(OTL) *29(OTU)

Sts_GateLive

1(MOV) *25(BTD) 29(MOV)

Sts_GateSnap

*1(MOV) *29(MOV)

Sts_GateSrc1Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc1Snap

*1(MOV) *29(MOV)

Sts_GateSrc2Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc2Snap

*1(MOV) *29(MOV)

Sts_GateSrc3Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc3Snap

*1(MOV) *29(MOV)

Sts_GateSrc4Live

1(MOV) *6(OTE) 29(MOV)

Sts_GateSrc4Snap

*1(MOV) *29(MOV)

Sts_InpLive

1(MOV) *25(BTD) 29(MOV)

Sts_InpSnap

*1(MOV) *29(MOV)

Sts_OutInvLive

1(XIC) 1(XIO) *19(OTE) 20(XIC) 21(XIC) 21(XIO) 22(XIC) 22(XIO) 29(XIC) 29(XIO)

Sts_OutInvSnap

*1(OTL) *1(OTU) *29(OTU) *29(OTL)

Val_DelayPctLive

1(MOV) *22(CPT) *22(MOV) 29(MOV)

Val_DelayPctSnap

*1(MOV) *29(MOV)

Val_SnapTS

*1(COP) *29(COP)

Wrk_Copy

*1(OTU) *26(OTL) *28(OTL) *29(OTU) 29(XIC)

Wrk_DateTime

1(COP) 29(COP)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 64
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers

============================================================
COMMAND PROCESSING
============================================================
On receipt of a Reset Command, the snapshot is returned to showing live data
and the record of what initiated the snapshot is cleared.
NOTE: This object is "Modeless" -- Operator and Program Commands
are accepted at any time. However, Program Reset will only be
accepted if Program Snap is enabled. Operator Reset (button on
faceplate) is always available (enabled if snapped).
Program Command to
Reset (re-arm)
Snapshot Latch
PCmd_Reset
30

Program Command to
Reset (re-arm)
Snapshot Latch
PCmd_Reset
U

Operator Command to
Reset (re-arm)
Snapshot Latch
OCmd_Reset

1=Enable snapshot on
PCmd_Snap 0 --> 1
(edge)
Cfg_UsePCmd

1=a snapshot has


been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch
U

Operator Command to
Reset (re-arm)
Snapshot Latch
OCmd_Reset
U

1=Reset Snapshot
latch, show live
states
Inp_Reset
1=Hold prev states
in Snapshot; 0=Pass
live states to
Snapshot
Inp_Hold
/

1=Use Inp_Hold to
snap state; 0=Use
Cmds or Output
transition to snap
Cfg_UseInpHold

Snapshot Initiator:
1=OCmd, 2=PCmd,
3=Out 0-->1, 4=Out
1-->0, 5=Inp_Hold
CLR
Clear
Dest
Val_SnapInit
0

Cfg_UseInpHold

1(XIC) 30(XIC)

Cfg_UsePCmd

28(XIC) 30(XIC)

Inp_Hold

1(XIC) 30(XIO)

Inp_Reset

30(XIC)

OCmd_Reset

*30(OTU) 30(XIC)

PCmd_Reset

30(XIC) *30(OTU)

Val_SnapInit

*1(MOV) *28(MOV) *30(CLR)

Wrk_SnapLatch

1(XIO) *1(OTL) 26(XIO) *28(OTL) 28(XIO) *30(OTU) 31(XIC) 32(XIO) 32(XIC)

RSLogix 5000

P_Logic Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Logic
Total number of rungs in routine: 33
Data Context: P_Logic <definition>

Page 65
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Examine Inputs and execute Logic Gates and Output timers


Our internal Snapshot latch is copied out to a "Snapped" status.
(Using the Wrk bit prevents logic or the HMI from writing to the Sts bit unintentionally.)
1=a snapshot has
been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch

1=Snapshot has been


triggered,
0=Snapshot showing
live states
Sts_Snapped

31

Sts_Snapped

*31(OTE)

Wrk_SnapLatch

1(XIO) *1(OTL) 26(XIO) *28(OTL) 28(XIO) *30(OTU) 31(XIC) 32(XIC) 32(XIO)

============================================================
COMMAND READIES
============================================================
Snapshot Operator Command button is enabled if there is no snapshot
currently, or Snap Over is allowed, AND Operator Snapshot is enabled in config.
Operator Reset is enabled any time there's a snapshot.
1=a snapshot has
been captured,
1=Enable snapshot on
0=armed, ready to
OCmd_Snap 0 --> 1
get snapshot
(edge)
Wrk_SnapLatch
Cfg_UseOCmd
/

32

1=Ready to receive
OCmd_Snap (enables
button)
Rdy_Snap

1=New snapshot
overwrites without
reset, 0=save first
snapshot till reset
Cfg_SnapOver
1=a snapshot has
been captured,
0=armed, ready to
get snapshot
Wrk_SnapLatch

Cfg_SnapOver

1(XIC) 28(XIC) 32(XIC)

Cfg_UseOCmd

28(XIC) 32(XIC)

Rdy_Reset

*32(OTE)

Rdy_Snap

*32(OTE)

Wrk_SnapLatch

1(XIO) *1(OTL) 26(XIO) 28(XIO) *28(OTL) *30(OTU) 31(XIC) 32(XIC) 32(XIO)

1=Ready to receive
OCmd_Reset (enables
button)
Rdy_Reset

(End)

RSLogix 5000

P_Logic Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Prescan
Total number of rungs in routine: 3
Data Context: P_Logic <definition>

Page 66
22/12/2015 08,59,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Reset On-Delay and Off-Delay timers, clear snapshot timestamp and internal data, clear "lurking" commands
============================================================
PRESCAN (POWERUP) HANDLING
============================================================
Clear all DINTs used as pointers / loop counters to ensure no
"bad index/pointer" Major Fault on powerup.
Clear the Snapshot Timestamp to indicate we haven't taken a snapshot yet.
Snapshot Timestamp
[0]=yr, [1]=mo,
Gate (0 to 7)
Pointer to Sts bit
[2]=da, [3]=hr,
currently being
for gate result (.8
[4]=min, [5]=sec,
processed
.. .15)
[6]=usec
CLR
CLR
FLL
Clear
Clear
Fill File
Dest
Wrk_M
Dest
Wrk_Mplus8
Source
0
0
0
Dest Val_SnapTS[0]
Length
7

Val_SnapTS

*0(FLL)

Wrk_M

*0(CLR)

Wrk_Mplus8

*0(CLR)

Reset the Output TON and TOF timers.


Output ON Delay
Timer
Wrk_OnDelayT
RES

Wrk_OffDelayT

*1(RES)

Wrk_OnDelayT

*1(RES)

Clear any "lurking" Commands so they don't trigger on first scan.


Program Command to
Operator Command to
Program Command to
capture Input, Gate
capture Input, Gate
Reset (re-arm)
states in Snapshot
states in Snapshot
Snapshot Latch
PCmd_Snap
OCmd_Snap
PCmd_Reset
U
U
U

OCmd_Reset

*2(OTU)

OCmd_Snap

*2(OTU)

PCmd_Reset

*2(OTU)

PCmd_Snap

*2(OTU)

Output OFF Delay


Timer
Wrk_OffDelayT
RES

Operator Command to
Reset (re-arm)
Snapshot Latch
OCmd_Reset
U

RSLogix 5000

P_Logic Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:Prescan
Total number of rungs in routine: 3
Data Context: P_Logic <definition>

Page 67
22/12/2015 08,59,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Reset On-Delay and Off-Delay timers, clear snapshot timestamp and internal data, clear "lurking" commands
(End)

RSLogix 5000

P_Logic Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Logic:EnableInFalse
Total number of rungs in routine: 1
Data Context: P_Logic <definition>

Page 68
22/12/2015 08,59,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Set Output to False and reset On-Delay and Off-Delay output timers
============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this instruction is OFF-SCAN (rung is false or EnableIn is false in FBD),
then set the Output to FALSE (0) and reset the Output TON and TOF timers.
Condition Logic
Output (result)
Output ON Delay
after delay
Timer
Out_Live
Wrk_OnDelayT
U
RES

Out_Live

*0(OTU)

Wrk_OffDelayT

*0(RES)

Wrk_OnDelayT

*0(RES)

Output OFF Delay


Timer
Wrk_OffDelayT
RES

(End)

RSLogix 5000

P_Mode - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode

Page 1
22/12/2015 08,59,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Mode v2.0 00 Release


Rockwell Automation

Mode
Available Languages
Relay Ladder

Function Block

Structured Text
P_Mode();
Parameters
Required
X

Name
P_Mode
EnableIn
EnableOut
Inp_Hand

Data Type
P_Mode
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input

Inp_Ovrd

BOOL

Input

Cfg_PCmdClear

BOOL

Input

Cfg_OvrdOverLock

BOOL

Input

Cfg_ProgDefault

BOOL

Input

PCmd_Acq

BOOL

Input

PCmd_Rel

BOOL

Input

PCmd_Lock

BOOL

Input

PCmd_Unlock

BOOL

Input

MCmd_Acq

BOOL

Input

Description
Mode
1=Select Hand
(typ.
hardwired)
Mode
1=Select Override (typ.
Process/Safety Interlock) Mode
1=Clear Program Command on receipt; 0=Use
Level-based (maintained) PCmds
1=Override supersedes Prog/Oper Lock,
0=don't override Lock
Default Mode: 1=Program Mode if no requests;
0=Operator Mode if no requests
Program Command to Acquire
Ownership (Oper to Prog)
Program Command to Release
Ownership (Prog to Oper)
Program
Command to
Lock Mode in
Prog
Program
Command to
Unlock
Mode
Maintenance Command to Acquire Ownership
(Oper/Prog/Ovrd to Maint)

RSLogix 5000

P_Mode - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode

MCmd_Rel

BOOL

Input

OCmd_AcqLock

BOOL

Input

OCmd_Unlock

BOOL

Input

Val

DINT

Output

Sts_Hand

BOOL

Output

Sts_Maint

BOOL

Output

Sts_Ovrd

BOOL

Output

Sts_Prog

BOOL

Output

Sts_Oper

BOOL

Output

Sts_ProgOperLock

BOOL

Output

Sts_ProgOperSel

BOOL

Output

Sts_NoMode

BOOL

Output

Rdy_Acq

BOOL

Output

Rdy_Rel

BOOL

Output

Rdy_AcqLock

BOOL

Output

Rdy_Unlock

BOOL

Output

Page 2
22/12/2015 08,59,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Maintenance Command to Release Ownership


(Maint to Oper/Prog/Ovrd)
Operator Command to Acquire
and Lock Mode in Oper
Operator Command
to Unlock Operator
Mode
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def),
8=P (P Def), 9=O (O def)
1=Mode is Hand (supersedes
Maint, Ovrd, Prog, Oper)
1=Mode is Maintenance
(supersedes Ovrd, Prog, Oper)
1=Mode is Override
(supersedes Prog,
Oper)
1=Mode is
Program
1=Mode is
Operator
1=Program or Operator
has requested Mode Lock
Prog/Oper selection
1=Program,
0=Operator
1=Mode is
NO mode
(no owner)
1=Ready
for
MCmd_Acq
1=Ready
for
MCmd_Rel
1=Ready
for
OCmd_AcqLo
ck
1=Ready
for
OCmd_Unloc
k

Extended Description
This instruction provides selection of Mode (owner) for a
Device level object (from highest priority to lowest):
*
*
*
*
*
*

NO Mode (EnableIn is false)


Hand (typically tracks hardwired control of device)
Maint (Maintenance) (taken out of normal service for maintenance)
Ovrd (Override) (typically used for process overrides)
Prog (Program) (automated control, and default if Cfg_ProgDefault = 1)
Oper (Operator (manual control, and default if Cfg_ProgDefault = 0)

The current mode is shown with Status bits and also as the
primary Value for the instruction: an enumeration as follows:
0 = No Mode
1 = Hand
2 = Maintenance
3 = Override
4 = Program (Locked)
5 = Program (Unlocked)
6 = Operator (Locked)
7 = Operator (Unlocked)

RSLogix 5000

P_Mode - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode

Page 3
22/12/2015 08,59,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Processes received Commands, but shows NO owner
Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
Clear "lurking" Commands

Revision v2.0 00 Release Notes


See Release Notes for Library version 2.0 for details on changes for this release.
Change History
Created:
Created By:
Edited:
Edited By:

11/06/2008 01,19,37
Not Available
30/09/2011 08,07,51
PLANTPAX\Library

Signature
ID:
Timestamp:

C1F72CF2
2011-09-30T14:07:51.651Z

Cross Reference
Container
P_AIn
P_AIn
P_AOut
P_AOut
P_DoseFM
P_DoseFM
P_Motor
P_Motor
P_ValveSO
P_ValveSO

Routine
EnableInFalse
Logic
EnableInFalse
Logic
EnableInFalse
Logic
EnableInFalse
Logic
EnableInFalse
Logic

Location
Rung 0
Rung 1
Rung 0
Rung 1
Rung 0
Rung 1
Rung 0
Rung 1
Rung 0
Rung 1

Tag
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode

RSLogix 5000

P_Mode Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Data Type Size: 8 byte (s)
Data Context: P_Mode <definition>
Name
Default
1
Cfg_OvrdOverLock
1=Override supersedes Prog/Oper Lock, 0=don't override Lock
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OvrdOverLock - P_Mode/Logic - 8(XIC)

Page 4
22/12/2015 08,59,36
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_Mode

1
BOOL
Cfg_PCmdClear
1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PCmdClear - P_Mode/EnableInFalse - 2(XIC), 3(XIC), 3(XIO), 6(XIC), 7(XIC), 7(XIO)
Cfg_PCmdClear - P_Mode/Logic - 2(XIC), 3(XIC), 3(XIO), 6(XIC), 7(XIC), 7(XIO)

P_Mode

0
BOOL
Cfg_ProgDefault
Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ProgDefault - P_Mode/EnableInFalse - 6(XIC), 7(XIO)
Cfg_ProgDefault - P_Mode/Logic - 6(XIC), 7(XIO), 8(XIC), 8(XIO)
Cfg_ProgDefault - P_Mode/Prescan - 1(XIC)

P_Mode

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Mode

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Mode

0
Inp_Hand
1=Select Hand (typ. hardwired) Mode
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Hand - P_Mode/Logic - 8(XIC), 8(XIO)

BOOL

P_Mode

0
Inp_Ovrd
1=Select Override (typ. Process/Safety Interlock) Mode
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Ovrd - P_Mode/Logic - 8(XIC)

BOOL

P_Mode

0
BOOL
MCmd_Acq
Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Acq - P_Mode/EnableInFalse - *0(OTU), 0(XIC)
MCmd_Acq - P_Mode/Logic - *0(OTU), 0(XIC)
MCmd_Acq - P_Mode/Prescan - *0(OTU)

P_Mode

RSLogix 5000

P_Mode Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Data Type Size: 8 byte (s)
Data Context: P_Mode <definition>

Page 5
22/12/2015 08,59,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
BOOL
MCmd_Rel
Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Rel - P_Mode/EnableInFalse - *1(OTU), 1(XIC)
MCmd_Rel - P_Mode/Logic - *1(OTU), 1(XIC)
MCmd_Rel - P_Mode/Prescan - *0(OTU)

P_Mode

0
OCmd_AcqLock
Operator Command to Acquire and Lock Mode in Oper
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_AcqLock - P_Mode/EnableInFalse - *4(OTU), 4(XIC)
OCmd_AcqLock - P_Mode/Logic - *4(OTU), 4(XIC)
OCmd_AcqLock - P_Mode/Prescan - *0(OTU)

BOOL

P_Mode

0
OCmd_Unlock
Operator Command to Unlock Operator Mode
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Unlock - P_Mode/EnableInFalse - *5(OTU), 5(XIC)
OCmd_Unlock - P_Mode/Logic - *5(OTU), 5(XIC)
OCmd_Unlock - P_Mode/Prescan - *0(OTU)

BOOL

P_Mode

0
PCmd_Acq
Program Command to Acquire Ownership (Oper to Prog)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Acq - P_Mode/EnableInFalse - *6(OTU), 6(XIC), 7(XIO)
PCmd_Acq - P_Mode/Logic - *6(OTU), 6(XIC), 7(XIO)
PCmd_Acq - P_Mode/Prescan - *0(OTU)

BOOL

P_Mode

0
PCmd_Lock
Program Command to Lock Mode in Prog
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Lock - P_Mode/EnableInFalse - *2(OTU), 2(XIC), 3(XIO)
PCmd_Lock - P_Mode/Logic - *2(OTU), 2(XIC), 3(XIO)
PCmd_Lock - P_Mode/Prescan - *0(OTU)

BOOL

P_Mode

0
PCmd_Rel
Program Command to Release Ownership (Prog to Oper)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Rel - P_Mode/EnableInFalse - *7(OTU), 7(XIC)
PCmd_Rel - P_Mode/Logic - *7(OTU), 7(XIC)
PCmd_Rel - P_Mode/Prescan - *0(OTU)

BOOL

P_Mode

0
PCmd_Unlock
Program Command to Unlock Mode
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Unlock - P_Mode/EnableInFalse - *3(OTU), 3(XIC)

BOOL

P_Mode

RSLogix 5000

P_Mode Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Data Type Size: 8 byte (s)
Data Context: P_Mode <definition>

Page 6
22/12/2015 08,59,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_Unlock (Continued)
PCmd_Unlock - P_Mode/Logic - *3(OTU), 3(XIC)
PCmd_Unlock - P_Mode/Prescan - *0(OTU)
0
Rdy_Acq
1=Ready for MCmd_Acq
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Acq - P_Mode/EnableInFalse - *10(OTE)
Rdy_Acq - P_Mode/Logic - *10(OTE)

BOOL

P_Mode

0
Rdy_AcqLock
1=Ready for OCmd_AcqLock
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_AcqLock - P_Mode/EnableInFalse - *10(OTE)
Rdy_AcqLock - P_Mode/Logic - *10(OTE)

BOOL

P_Mode

0
Rdy_Rel
1=Ready for MCmd_Rel
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Rel - P_Mode/EnableInFalse - *10(OTE)
Rdy_Rel - P_Mode/Logic - *10(OTE)

BOOL

P_Mode

0
Rdy_Unlock
1=Ready for OCmd_Unlock
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Unlock - P_Mode/EnableInFalse - *10(OTE)
Rdy_Unlock - P_Mode/Logic - *10(OTE)

BOOL

P_Mode

0
Sts_Hand
1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Hand - P_Mode/EnableInFalse - *8(OTU)
Sts_Hand - P_Mode/Logic - *8(OTE)

BOOL

P_Mode

0
Sts_Maint
1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Maint - P_Mode/EnableInFalse - *8(OTU)
Sts_Maint - P_Mode/Logic - *8(OTE)

BOOL

P_Mode

0
Sts_NoMode
1=Mode is NO mode (no owner)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_NoMode - P_Mode/EnableInFalse - *8(OTL)
Sts_NoMode - P_Mode/Logic - *8(OTU)

BOOL

P_Mode

RSLogix 5000

P_Mode Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Data Type Size: 8 byte (s)
Data Context: P_Mode <definition>

Page 7
22/12/2015 08,59,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1
Sts_Oper
1=Mode is Operator
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Oper - P_Mode/EnableInFalse - *8(OTU)
Sts_Oper - P_Mode/Logic - *8(OTE)

BOOL

P_Mode

0
Sts_Ovrd
1=Mode is Override (supersedes Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Ovrd - P_Mode/EnableInFalse - *8(OTU)
Sts_Ovrd - P_Mode/Logic - *8(OTE), 8(XIC), 8(XIO)

BOOL

P_Mode

0
Sts_Prog
1=Mode is Program
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Prog - P_Mode/EnableInFalse - *8(OTU)
Sts_Prog - P_Mode/Logic - *8(OTE)

BOOL

P_Mode

0
Sts_ProgOperLock
1=Program or Operator has requested Mode Lock
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_ProgOperLock - P_Mode/EnableInFalse - *9(OTE)
Sts_ProgOperLock - P_Mode/Logic - *9(OTE)

BOOL

P_Mode

0
Sts_ProgOperSel
Prog/Oper selection 1=Program, 0=Operator
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_ProgOperSel - P_Mode/EnableInFalse - *9(OTE)
Sts_ProgOperSel - P_Mode/Logic - *9(OTE)

BOOL

P_Mode

0
DINT
P_Mode
Val
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val - P_Mode/EnableInFalse - *8(CLR)
Val - P_Mode/Logic - *8(MOV)

RSLogix 5000

P_Mode Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Data Context: P_Mode <definition>

Page 8
22/12/2015 08,59,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Name
Default
Data Type
Scope
0
BOOL
P_Mode
Wrk_Locked
1=Program/Operator Mode selection is Locked
Usage:
Local Tag
External Access:
None
Wrk_Locked - P_Mode/EnableInFalse - *2(OTL), *3(OTU), *4(OTL), *5(OTU), 10(XIC), 10(XIO), 4(XIO), 6(XIO), 7(XIO), 9(XIC)
Wrk_Locked - P_Mode/Logic - *2(OTL), *3(OTU), *4(OTL), *5(OTU), 10(XIC), 10(XIO), 4(XIO), 6(XIO), 7(XIO), 8(XIC), 8(XIO), 9(XIC)
Wrk_Locked - P_Mode/Prescan - *1(OTU)
0
BOOL
Wrk_Maint
Internal Maintenance Mode
Usage:
Local Tag
External Access:
None
Wrk_Maint - P_Mode/EnableInFalse - *0(OTL), *1(OTU), 10(XIC), 10(XIO)
Wrk_Maint - P_Mode/Logic - *0(OTL), *1(OTU), 10(XIC), 10(XIO), 8(XIC), 8(XIO)

P_Mode

0
BOOL
P_Mode
Wrk_Prog
Internal Program (1) / Operator (0) Mode selection
Usage:
Local Tag
External Access:
None
Wrk_Prog - P_Mode/EnableInFalse - *4(OTU), *6(OTL), *7(OTU), 10(XIO), 2(XIC), 3(XIC), 4(XIO), 5(XIO), 9(XIC)
Wrk_Prog - P_Mode/Logic - *4(OTU), *6(OTL), *7(OTU), 10(XIO), 2(XIC), 3(XIC), 4(XIO), 5(XIO), 8(XIC), 8(XIO), 9(XIC)
Wrk_Prog - P_Mode/Prescan - *1(OTE)

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 9
22/12/2015 08,59,37
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
============================================================
P_Mode: PROCESS -- MODE SELECTOR
============================================================
Revision 2.0-00 Release: 2011-09-30
Added Sts_NoMode, Val (Mode enumeration).
Added self-named parameter.
Added Cfg_ProgDefault, Default/Non-Default enumerations.
(See Parameter descriptions.)
============================================================
This instruction provides selection of Mode (owner) for a Device level
object (from highest priority to lowest):
* NO Mode (EnableIn is false)
* Hand (typically tracks hardwired control of device)
* Maint (Maintenance) (taken out of normal service for maintenance)
* Ovrd (Override) (typically used for process overrides)
* Prog (Program) (automated control, and default if Cfg_ProgNorm = 1)
* Oper (Operator (manual control, and default if Cfg_ProgNorm = 0)
The current mode is shown with Status bits and also as the
primary Value for the instruction: an enumeration as follows:
0 = No Mode, 1 = Hand, 2 = Maintenance, 3 = Override, 4 = Program (Locked),
5 = Program (Unlocked), 6 = Operator (Locked), 7 = Operator (Unlocked).
============================================================
COMMAND HANDLING
============================================================
NOTE: These rungs MUST be in the order given to meet the following
multiple-actions-at-the-same-time scenarios:
* Maintenance Release beats Maintenance Acquire
* Program Release beats Program Acquire
* Program Unlock beats Program Lock
* Operator Unlock beats Operator Acquire and Lock (results in Oper Unlocked)
* Operator Acquire/Lock must come after Program Unlock
* Program Acquire must come after Operator Unlock

Maintenance Command
to Acquire Ownership
(Oper/Prog/Ovrd to
Maint)
MCmd_Acq
0

If Cfg_ProgDefault = 1, the logic above is treated as if PCmd_Acq


is always set and PCmd_Rel is always cleared -- so the Mode
defaults to Program (instead of Operator) if no other mode is requesting.
============================================================
MCmd_Acq: Acquire for Maintenance Mode
Maintenance Command
to Acquire Ownership
(Oper/Prog/Ovrd to
Maint)
MCmd_Acq
U

MCmd_Acq

*0(OTU) 0(XIC)

Wrk_Maint

*0(OTL) *1(OTU) 8(XIO) 8(XIC) 10(XIO) 10(XIC)

Maintenance Command
to Release Ownership
(Maint to
Oper/Prog/Ovrd)
MCmd_Rel
1

MCmd_Rel: Release from Maintenance Mode


Maintenance Command
to Release Ownership
(Maint to
Oper/Prog/Ovrd)
MCmd_Rel
U

MCmd_Rel

*1(OTU) 1(XIC)

Wrk_Maint

*0(OTL) *1(OTU) 8(XIO) 8(XIC) 10(XIO) 10(XIC)

Internal Maintenance
Mode
Wrk_Maint
L

Internal Maintenance
Mode
Wrk_Maint
U

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 10
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
PCmd_Lock: Lock Program Mode
1=Clear Program
Internal Program (1)
Command on receipt;
/ Operator (0) Mode
Program Command to
0=Use Level-based
Program Command to
selection
Lock Mode in Prog
(maintained) PCmds
Lock Mode in Prog
Wrk_Prog
PCmd_Lock
Cfg_PCmdClear
PCmd_Lock
U

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
L

NOP

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIC) 7(XIO)

PCmd_Lock

*2(OTU) 2(XIC) 3(XIO)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIO) 10(XIC)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 8(XIO) 8(XIC) 9(XIC) 10(XIO)

PCmd_Unlock: Unlock Program Mode


1=Clear Program
Command on receipt;
Internal Program (1)
Program Command to
0=Use Level-based
/ Operator (0) Mode
(maintained) PCmds
Unlock Mode
selection
PCmd_Unlock
Cfg_PCmdClear
Wrk_Prog
U

Program Command to
Unlock Mode
PCmd_Unlock
3

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear
/

Program Command to
Lock Mode in Prog
PCmd_Lock
/

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIC) 7(XIO)

PCmd_Lock

*2(OTU) 2(XIC) 3(XIO)

PCmd_Unlock

*3(OTU) 3(XIC)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 8(XIO) 8(XIC) 9(XIC) 10(XIO)

Operator Command to
Acquire and Lock
Mode in Oper
OCmd_AcqLock
4

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
U

OCmd_AcqLock: Operator Acquire and Lock (take from Program if not locked)
Operator Command to
1=Program/Operator
Internal Program (1)
Acquire and Lock
Mode selection is
/ Operator (0) Mode
Mode in Oper
Locked
selection
OCmd_AcqLock
Wrk_Locked
Wrk_Prog
U
/
U
Internal Program (1)
/ Operator (0) Mode
selection
Wrk_Prog
/

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
L

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Total number of rungs in routine: %1!d!

Page 11
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OCmd_AcqLock

4(XIC) *4(OTU)

Wrk_Locked

*2(OTL) *3(OTU) *4(OTL) 4(XIO) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 8(XIC) 8(XIO) 9(XIC) 10(XIO)

Operator Command to
Unlock Operator Mode
OCmd_Unlock
5

OCmd_Unlock: Unlock Operator Mode


Internal Program (1)
Operator Command to
/ Operator (0) Mode
Unlock Operator Mode
selection
OCmd_Unlock
Wrk_Prog
U
/

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
U

OCmd_Unlock

5(XIC) *5(OTU)

Wrk_Locked

*2(OTL) *3(OTU) *4(OTL) 4(XIO) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 8(XIC) 8(XIO) 9(XIC) 10(XIO)

PCmd_Acq: Acquire for Program Mode


##### V2.0-00 2011-09-30: Ignore PCmd_Acq, PCmd_Rel and default to Prog if Cfg_ProgDefault = 1 #####
Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
U

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/

NOP
Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
U
Internal Program (1)
/ Operator (0) Mode
selection
Wrk_Prog
L

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIO) 7(XIC)

Cfg_ProgDefault

6(XIC) 7(XIO) 8(XIC) 8(XIO)

PCmd_Acq

6(XIC) *6(OTU) 7(XIO)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 8(XIC) 8(XIO) 9(XIC) 10(XIO)

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 12
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
PCmd_Rel: Release from Program Mode
##### V2.0-00 2011-09-30: Ignore PCmd_Acq, PCmd_Rel and default to Prog if Cfg_ProgDefault = 1 #####
Program Command to
Release Ownership
(Prog to Oper)
PCmd_Rel

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
/

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear
/

Program Command to
Release Ownership
(Prog to Oper)
PCmd_Rel
U

Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault
/

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIO) 7(XIC)

Cfg_ProgDefault

6(XIC) 7(XIO) 8(XIO) 8(XIC)

PCmd_Acq

6(XIC) *6(OTU) 7(XIO)

PCmd_Rel

*7(OTU) 7(XIC)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 8(XIO) 8(XIC) 9(XIC) 10(XIO)

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog
U

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 13
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands

================================
STATUS GENE
================================
This rung determines the Mode based on the sta
The logic here does the vast mahority of the im

Between the internal working bits used ab


outside objects cannot manipulate the state of th

Public Status is ge
* Hand M
* Maintenanc
* Override
* Program
* Operator
* No Mode (none

##### V2.0-00 2011-09-30: Added Sts_

1=Select Hand (typ.


hardwired) Mode
Inp_Hand
8

1=Select Hand (typ.


hardwired) Mode
Inp_Hand
/

Internal Maintenance
Mode
Wrk_Maint

Internal Maintenance
Mode
Wrk_Maint
/

1=Select Override
(typ. Process/Safety
Interlock) Mode
Inp_Ovrd

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/
1=Override
supersedes Prog/Oper
Lock, 0=don't
override Lock
Cfg_OvrdOverLock
1=Mode is Override
(supersedes Prog,
Oper)
Sts_Ovrd

1=Mode is Override
(supersedes Prog,
Oper)
Sts_Ovrd
/

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog

1=Program/Operato
Mode selection is
Locked
Wrk_Locked

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 14
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
============================================
STATUS GENERATION
============================================
Mode based on the states of the inputs and internal working bits.
ast mahority of the implementation of the Mode selection rules.

working bits used above and the rules implemented here,


nipulate the state of this object by setting/clearing its Status bits.
Public Status is generated for:
* Hand Mode
* Maintenance Mode
* Override Mode
* Program Mode
* Operator Mode
* No Mode (none of the above)

11-09-30: Added Sts_NoMode, Val (enumeration) #####


Mode enum: 0=No,
1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV

1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
Sts_Hand
Move
Source

1=Mode is NO mode
(no owner)
Sts_NoMode
U

Dest

Val
0

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV

1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Sts_Maint
Move
Source

Dest

Val
0

1=Mode is Override
(supersedes Prog,
Oper)
Sts_Ovrd

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV
Move
Source

Dest

Val
0

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV

1=Program/Operator
Mode selection is
Move

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 15
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 16
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based/ on Inputs and Commands

1=Program/Operato
Mode selection is
Locked
Wrk_Locked
/

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog
/

1=Program/Operato
Mode selection is
Locked
Wrk_Locked

1=Program/Operato
Mode selection is
Locked
Wrk_Locked
/

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 17
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint,


Ovrd, Oper, Prog) based on Inputs and Commands
Move
Source
4
Dest
Val
0

1=Program/Operator
Mode selection is

Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault
/

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV
Move
Source

Dest

Val
0

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV

Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault
Move
Source

Dest

Val
0

1=Mode is Program
Sts_Prog

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV

1=Program/Operator
Mode selection is
Move
Source

1=Program/Operator
Mode selection is

Dest

Val
0

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV

Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault
Move
Source

Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault
/

Dest

Val
0

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
MOV
Move
Source

Dest

Val
0

1=Mode is Operator
Sts_Oper

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 18
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 19
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
Cfg_OvrdOverLock

8(XIC)

Cfg_ProgDefault

6(XIC) 7(XIO) 8(XIO) 8(XIC)

Inp_Hand

8(XIC) 8(XIO)

Inp_Ovrd

8(XIC)

Sts_Hand

*8(OTE)

Sts_Maint

*8(OTE)

Sts_NoMode

*8(OTU)

Sts_Oper

*8(OTE)

Sts_Ovrd

8(XIO) 8(XIC) *8(OTE)

Sts_Prog

*8(OTE)

Val

*8(MOV)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Maint

*0(OTL) *1(OTU) 8(XIC) 8(XIO) 10(XIO) 10(XIC)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 8(XIC) 8(XIO) 9(XIC) 10(XIO)

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 20
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands

RSLogix 5000

P_Mode Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Logic
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 21
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands
Public Status for:
Sts_ProgOperSel: Program/Operator substate selection (Prog = 1, Oper = 0)
Sts_ProgOperLock: Program/Operator Lock substate selection (Locked = 1, Unlocked = 0)
Internal Program (1)
Prog/Oper selection
/ Operator (0) Mode
1=Program,
selection
0=Operator
Wrk_Prog
Sts_ProgOperSel
9
1=Program/Operator
Mode selection is
Locked
Wrk_Locked

Sts_ProgOperLock

*9(OTE)

Sts_ProgOperSel

*9(OTE)

Wrk_Locked

*2(OTL) *3(OTU) *4(OTL) 4(XIO) *5(OTU) 6(XIO) 7(XIO) 8(XIC) 8(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 8(XIO) 8(XIC) 9(XIC) 10(XIO)

1=Program or
Operator has
requested Mode Lock
Sts_ProgOperLock

============================================================
OPERATOR COMMAND READIES
============================================================
Ready for OPERATOR ACQUIRE AND LOCK comand if the Mode is
is NOT Locked. (Oper "acquire and lock" when in Prog Mode is a "grab"!)
Ready fpr OPERATOR UNLOCK command if the Lock is set and the
internal Program bit is cleared (Operator has the lock, even if in Ovrd, Maint or Hand!)
Ready for MAINTENANCE ACQUIRE if internal Maintenance latch is NOT set.
Ready for MAINTENANCE RELEASE if internal Maintenance latch IS set.
1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/

10

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog
/

1=Ready for
OCmd_AcqLock
Rdy_AcqLock

1=Program/Operator
Mode selection is
Locked
Wrk_Locked

Internal Maintenance
Mode
Wrk_Maint
/
Internal Maintenance
Mode
Wrk_Maint

Rdy_Acq

*10(OTE)

Rdy_AcqLock

*10(OTE)

Rdy_Rel

*10(OTE)

Rdy_Unlock

*10(OTE)

Wrk_Locked

*2(OTL) *3(OTU) *4(OTL) 4(XIO) *5(OTU) 6(XIO) 7(XIO) 8(XIO) 8(XIC) 9(XIC) 10(XIC) 10(XIO)

1=Ready for
OCmd_Unlock
Rdy_Unlock

1=Ready for MCmd_Acq


Rdy_Acq

1=Ready for MCmd_Rel


Rdy_Rel

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Total number of rungs in routine: %1!d!

Page 22
22/12/2015 08,59,38
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Maint

*0(OTL) *1(OTU) 8(XIC) 8(XIO) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 8(XIC) 8(XIO) 9(XIC) 10(XIO)

(End)

RSLogix 5000

P_Mode Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Prescan
Total number of rungs in routine: 2
Data Context: P_Mode <definition>

Page 23
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.
Maintenance Command
Maintenance Command
Operator Command to
to Acquire Ownership
to Release Ownership
Acquire and Lock
Operator Command to
(Oper/Prog/Ovrd to
(Maint to
Mode in Oper
Unlock Operator Mode
Maint)
Oper/Prog/Ovrd)
OCmd_AcqLock
OCmd_Unlock
MCmd_Acq
MCmd_Rel
U
U
U
U

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
U

MCmd_Acq

*0(OTU)

MCmd_Rel

*0(OTU)

OCmd_AcqLock

*0(OTU)

OCmd_Unlock

*0(OTU)

PCmd_Acq

*0(OTU)

PCmd_Lock

*0(OTU)

PCmd_Rel

*0(OTU)

PCmd_Unlock

*0(OTU)

Program Command to
Release Ownership
(Prog to Oper)
PCmd_Rel
U

Program Command to
Lock Mode in Prog
PCmd_Lock
U

Program Command to
Unlock Mode
PCmd_Unlock
U

##### V2.0-00 2011-09-30: Added rung to default the Mode on prescan. #####
On Prescan, go to the default Mode (between Program and Operator)
and clear the Prog/Oper Mode Lock.
1=Program/Operator
Mode selection is
Locked
Wrk_Locked
U

1
Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault

Cfg_ProgDefault

1(XIC)

Wrk_Locked

*1(OTU)

Wrk_Prog

*1(OTE)

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog

RSLogix 5000

P_Mode Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:Prescan
Total number of rungs in routine: 2
Data Context: P_Mode <definition>

Page 24
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear "lurking" Commands


(End)

RSLogix 5000

P_Mode Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:EnableInFalse
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 25
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Processes received Commands, but shows NO owner


============================================================
P_Mode: EnableInFalse Handling
============================================================
For EnableInFalse (false rung), handle all received Commands behind the scenes
(as in Hand Mode), but show NO owner. !!!
============================================================
COMMAND HANDLING
============================================================
NOTE: These rungs MUST be in the order given to meet the following
multiple-actions-at-the-same-time scenarios:

Maintenance Command
to Acquire Ownership
(Oper/Prog/Ovrd to
Maint)
MCmd_Acq
0

* Maintenance Release beats Maintenance Acquire


* Program Release beats Program Acquire
* Program Unlock beats Program Lock
* Operator Unlock beats Operator Acquire and Lock (results in Oper Unlocked)
* Operator Acquire/Lock must come after Program Unlock
* Program Acquire must come after Operator Unlock
============================================================
MCmd_Acq: Acquire for Maintenance Mode
Maintenance Command
to Acquire Ownership
(Oper/Prog/Ovrd to
Maint)
MCmd_Acq
U

MCmd_Acq

*0(OTU) 0(XIC)

Wrk_Maint

*0(OTL) *1(OTU) 10(XIO) 10(XIC)

MCmd_Rel: Release from Maintenance Mode


Maintenance Command
to Release Ownership
(Maint to
Oper/Prog/Ovrd)
MCmd_Rel
U

Maintenance Command
to Release Ownership
(Maint to
Oper/Prog/Ovrd)
MCmd_Rel
1

MCmd_Rel

*1(OTU) 1(XIC)

Wrk_Maint

*0(OTL) *1(OTU) 10(XIO) 10(XIC)

Program Command to
Lock Mode in Prog
PCmd_Lock
2

PCmd_Lock: Lock Program Mode


1=Clear Program
Command on receipt;
0=Use Level-based
Program Command to
(maintained) PCmds
Lock Mode in Prog
Cfg_PCmdClear
PCmd_Lock
U

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog

Internal Maintenance
Mode
Wrk_Maint
L

Internal Maintenance
Mode
Wrk_Maint
U

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
L

NOP

Cfg_PCmdClear

2(XIC) 3(XIC) 3(XIO) 6(XIC) 7(XIC) 7(XIO)

PCmd_Lock

2(XIC) *2(OTU) 3(XIO)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode

Page 26
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Locked

*2(OTL) *3(OTU) *4(OTL) 4(XIO) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

PCmd_Unlock: Unlock Program Mode


1=Clear Program
Internal Program (1)
Command on receipt;
/ Operator (0) Mode
0=Use Level-based
Program Command to
selection
(maintained) PCmds
Unlock Mode
Wrk_Prog
Cfg_PCmdClear
PCmd_Unlock
U

Program Command to
Unlock Mode
PCmd_Unlock
3

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear
/

Program Command to
Lock Mode in Prog
PCmd_Lock
/

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIC) 7(XIO)

PCmd_Lock

*2(OTU) 2(XIC) 3(XIO)

PCmd_Unlock

3(XIC) *3(OTU)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

Operator Command to
Acquire and Lock
Mode in Oper
OCmd_AcqLock
4

OCmd_AcqLock: Operator Acquire and Lock (take from Program if not locked)
Operator Command to
1=Program/Operator
Internal Program (1)
Acquire and Lock
Mode selection is
/ Operator (0) Mode
Mode in Oper
Locked
selection
OCmd_AcqLock
Wrk_Locked
Wrk_Prog
U
/
U
Internal Program (1)
/ Operator (0) Mode
selection
Wrk_Prog
/

OCmd_AcqLock

4(XIC) *4(OTU)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIO) 10(XIC)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

Operator Command to
Unlock Operator Mode
OCmd_Unlock
5

OCmd_Unlock

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
U

OCmd_Unlock: Unlock Operator Mode


Internal Program (1)
Operator Command to
/ Operator (0) Mode
Unlock Operator Mode
selection
OCmd_Unlock
Wrk_Prog
U
/

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
L

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
U

5(XIC) *5(OTU)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode

Page 27
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIO) 10(XIC)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

PCmd_Acq: Acquire for Program Mode


##### V2.0-00 2011-09-30: Ignore PCmd_Acq, PCmd_Rel and default to Prog if Cfg_ProgDefault = 1 #####
Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
U

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/

NOP
Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
U
Internal Program (1)
/ Operator (0) Mode
selection
Wrk_Prog
L

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIO) 7(XIC)

Cfg_ProgDefault

6(XIC) 7(XIO)

PCmd_Acq

6(XIC) *6(OTU) 7(XIO)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

RSLogix 5000

P_Mode Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:EnableInFalse
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 28
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Processes received Commands, but shows NO owner


PCmd_Rel: Release from Program Mode
##### V2.0-00 2011-09-30: Ignore PCmd_Acq, PCmd_Rel and default to Prog if Cfg_ProgDefault = 1 #####
Program Command to
Release Ownership
(Prog to Oper)
PCmd_Rel

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear

Program Command to
Acquire Ownership
(Oper to Prog)
PCmd_Acq
/

1=Clear Program
Command on receipt;
0=Use Level-based
(maintained) PCmds
Cfg_PCmdClear
/

Program Command to
Release Ownership
(Prog to Oper)
PCmd_Rel
U

Default Mode:
1=Program Mode if no
requests; 0=Operator
Mode if no requests
Cfg_ProgDefault
/

1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog
U

Cfg_PCmdClear

2(XIC) 3(XIO) 3(XIC) 6(XIC) 7(XIO) 7(XIC)

Cfg_ProgDefault

6(XIC) 7(XIO)

PCmd_Acq

6(XIC) *6(OTU) 7(XIO)

PCmd_Rel

*7(OTU) 7(XIC)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Prog

2(XIC) 3(XIC) *4(OTU) 4(XIO) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

============================================================
STATUS GENERATION
============================================================
With EnableIn False, there is NO owner !!! ALL Mode Status bits
EXCEPT Sts_NoMode are CLEARED!
##### V2.0-00 2011-09-30: Added Sts_NoMode, Val (enumeration) #####
1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
Sts_Hand
U

Sts_Hand

1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Sts_Maint
U

1=Mode is Override
(supersedes Prog,
Oper)
Sts_Ovrd
U

1=Mode is Program
Sts_Prog
U

1=Mode is NO mode
(no owner)
Sts_NoMode
L

1=Mode is Operator
Sts_Oper
U

Mode enum: 0=No,


1=H, 2=M, 3=!, 4=P
Lock, 5=O Lock, 6=P
(O Def), 7=O (P
Def), 8=P (P Def),
9=O (O def)
CLR
Clear
Dest
Val
0

*8(OTU)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode
Sts_Maint

*8(OTU)

Sts_NoMode

*8(OTL)

Sts_Oper

*8(OTU)

Sts_Ovrd

*8(OTU)

Sts_Prog

*8(OTU)

Val

*8(CLR)

Page 29
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Public Status for:


Sts_ProgOperSel: Program/Operator substate selection (Prog = 1, Oper = 0)
Sts_ProgOperLock: Program/Operator Lock substate selection (Locked = 1, Unlocked = 0)
Internal Program (1)
Prog/Oper selection
/ Operator (0) Mode
1=Program,
selection
0=Operator
Wrk_Prog
Sts_ProgOperSel
9
1=Program/Operator
Mode selection is
Locked
Wrk_Locked

Sts_ProgOperLock

*9(OTE)

Sts_ProgOperSel

*9(OTE)

Wrk_Locked

*2(OTL) *3(OTU) 4(XIO) *4(OTL) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIO) 10(XIC)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

1=Program or
Operator has
requested Mode Lock
Sts_ProgOperLock

RSLogix 5000

P_Mode Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Mode:EnableInFalse
Total number of rungs in routine: 11
Data Context: P_Mode <definition>

Page 30
22/12/2015 08,59,39
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Processes received Commands, but shows NO owner


============================================================
OPERATOR COMMAND READIES
============================================================
Ready for OPERATOR ACQUIRE AND LOCK comand if the Mode is
is NOT Locked. (Oper "acquire and lock" when in Prog Mode is a "grab"!)
Ready fpr OPERATOR UNLOCK command if the Lock is set and the
internal Program bit is cleared (Operator has the lock, even if in Ovrd, Maint or Hand!)
Ready for MAINTENANCE ACQUIRE if internal Maintenance latch is NOT set.
Ready for MAINTENANCE RELEASE if internal Maintenance latch IS set.
1=Program/Operator
Mode selection is
Locked
Wrk_Locked
/

10

Internal Program (1)


/ Operator (0) Mode
selection
Wrk_Prog
/
Internal Maintenance
Mode
Wrk_Maint
/
Internal Maintenance
Mode
Wrk_Maint

Rdy_Acq

*10(OTE)

Rdy_AcqLock

*10(OTE)

Rdy_Rel

*10(OTE)

Rdy_Unlock

*10(OTE)

Wrk_Locked

*2(OTL) *3(OTU) *4(OTL) 4(XIO) *5(OTU) 6(XIO) 7(XIO) 9(XIC) 10(XIC) 10(XIO)

Wrk_Maint

*0(OTL) *1(OTU) 10(XIO) 10(XIC)

Wrk_Prog

2(XIC) 3(XIC) 4(XIO) *4(OTU) 5(XIO) *6(OTL) *7(OTU) 9(XIC) 10(XIO)

1=Ready for
OCmd_AcqLock
Rdy_AcqLock

1=Program/Operator
Mode selection is
Locked
Wrk_Locked

1=Ready for
OCmd_Unlock
Rdy_Unlock

1=Ready for MCmd_Acq


Rdy_Acq

1=Ready for MCmd_Rel


Rdy_Rel

(End)

RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Page 1
22/12/2015 09,00,09
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Motor v2.0 04 Release


Rockwell Automation

Single Speed Motor


Available Languages
Relay Ladder

Function Block

Structured Text
P_Motor();
Parameters
Required
X

Name
P_Motor

Data Type
P_Motor

Usage
InOut

EnableIn
EnableOut
Inp_RunFdbk

BOOL
BOOL
BOOL

Input
Output
Input

Inp_PermOK

BOOL

Input

Description
Single
Speed
Motor
Input
Signal:
RUN
feedback
from motor
1=Permissi
ves OK,
motor can
start

RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Inp_NBPermOK

BOOL

Input

Inp_IntlkOK

BOOL

Input

Inp_NBIntlkOK

BOOL

Input

Inp_IOFault

BOOL

Input

Inp_Sim

BOOL

Input

Inp_Hand

BOOL

Input

Inp_Ovrd

BOOL

Input

Inp_OvrdCmd

DINT

Input

Inp_Reset

BOOL

Input

Cfg_HasRunFdbk

BOOL

Input

Cfg_UseRunFdbk

BOOL

Input

Cfg_HasPermObj

BOOL

Input

Cfg_HasIntlkObj

BOOL

Input

Cfg_HasResInhObj

BOOL

Input

Cfg_HasRunTimeObj

BOOL

Input

Cfg_PCmdClear

BOOL

Input

Cfg_ProgDefault

BOOL

Input

Page 2
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Non-Bypassable
Permissives OK,
motor can start
1=Interloc
ks OK,
motor can
start/run
1=Non-Bypassable
Interlocks OK,
motor can start/run
Input
Communicat
ion Status
0=OK,
1=fail
1=Simulate working motor;
0=Start/Stop/ Monitor actual
motor
1=Select
Hand
(hardwired
) Control
Strategy
1=Select
Override
control
strategy
Override Mode
Command:
0=None,
1=Stop,
2=Start
1=Reset all
fault
conditions and
latched Alarms
1=Motor
provides a
run
feedback
signal
1=Motor run feedback
should be used for
failure checking
1=Tells HMI a
P_Perm is
connected to
Inp_Perm
1=Tells HMI a
P_Intlk is
connected to
Inp_Intlk
1=Tells HMI a
P_ResInh Restart
Inhibit is
connected
1=Tells
HMI a
P_RunTime
is
connected
1=Clear Program
Commands on
receipt
0=Leave Set
Default Mode: 1=Program Mode if no
requests; 0=Operator Mode if no requests

RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Cfg_OCmdResets

BOOL

Input

Cfg_OvrdPermIntlk

BOOL

Input

Cfg_ShedOnFailToStart

BOOL

Input

Cfg_ShedOnIOFault

BOOL

Input

Cfg_HasFailToStartAlm

BOOL

Input

Cfg_HasFailToStopAlm

BOOL

Input

Cfg_HasIntlkTripAlm

BOOL

Input

Cfg_HasIOFaultAlm

BOOL

Input

Cfg_FailToStartResetReqd

BOOL

Input

Cfg_FailToStopResetReqd

BOOL

Input

Cfg_IntlkTripResetReqd

BOOL

Input

Cfg_IOFaultResetReqd

BOOL

Input

Cfg_FailToStartAckReqd

BOOL

Input

Cfg_FailToStopAckReqd

BOOL

Input

Cfg_IntlkTripAckReqd

BOOL

Input

Cfg_IOFaultAckReqd

BOOL

Input

Cfg_FailToStartSeverity

SINT

Input

Cfg_FailToStopSeverity

SINT

Input

Page 3
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=New Oper motor cmd. resets
fault,
0=reset req'd to clear fault
1=Override ignores Bypassable
Perm/ Intlk; 0=always use
Perm/Intlk
1=Stop Motor and Alarm on Fail to
Start; 0=Alarm only on Fail to Start
1=Stop Motor and Alarm on I/O
Fault; 0=Alarm only on I/O
Fault
1=Fail to Start
Alarm exists and
will be checked
1=Fail to Stop
Alarm exists
and will be
checked
1=Interlock Trip
Alarm exists and
will be checked
1=I/O Fault
Alarm exists
and will be
checked
1=Reset
required to
clear Fail to
Start Alarm
1=Reset
required to
clear Fail
to Stop
Alarm
1=Reset
required to
clear
Interlock Trip
Alarm
1=Reset
required
to clear
I/O Fault
Alarm
1=Acknowledge
required for
Fail to Start
Alarm
1=Acknowledge
required for
Fail to Stop
Alarm
1=Acknowledge
required for
Interlock Trip
Alarm
1=Acknowle
dge
required
for I/O
Fault
Alarm
Fail To Start Alarm
Severity 1=info 2=warn
3=excep 4=fault
Fail To Stop Alarm
Severity 1=info 2=warn
3=excep 4=fault
RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Cfg_IntlkTripSeverity

SINT

Input

Cfg_IOFaultSeverity

SINT

Input

Cfg_SimFdbkT

DINT

Input

Cfg_FailToStartT

DINT

Input

Cfg_FailToStopT

DINT

Input

PSet_Owner

DINT

Input

PCmd_Start

BOOL

Input

PCmd_Stop

BOOL

Input

PCmd_Acq

BOOL

Input

PCmd_Rel

BOOL

Input

PCmd_Lock

BOOL

Input

PCmd_Unlock

BOOL

Input

PCmd_Reset

BOOL

Input

PCmd_FailToStartAck

BOOL

Input

PCmd_FailToStartInhibit

BOOL

Input

PCmd_FailToStartUninhibit

BOOL

Input

PCmd_FailToStopAck

BOOL

Input

PCmd_FailToStopInhibit

BOOL

Input

PCmd_FailToStopUninhibit

BOOL

Input

PCmd_IntlkTripAck

BOOL

Input

Page 4
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Interlock Trip Alarm
Severity 1=info 2=warn
3=excep 4=fault
I/O Fault Alarm
Severity 1=info 2=warn
3=excep 4=fault
Delay to echo back of Running/Stopped
status when in Simulation (sec)
Time after Start to get
Run Feedback before
Fault (sec)
Time after Stop to drop
Run Feedback before
Fault (sec)
Program Owner Request
ID (non-zero) or
Release (zero)
Program
Command to
Start
Motor
Program
Command to
Stop Motor
Program Command to
Acquire ownership
(Oper to Prog)
Program Command to
Release ownership
(Prog to Oper)
Program
Command to
Lock Mode
in Prog
Program
Command to
Unlock
Mode
Program Command to
Reset all Alarms
requiring Reset
Program Command to
Acknowledge Fail
to Start Alarm
Program
Command to
Inhibit Fail
to Start Alarm
Program Command
to Uninhibit
Fail to Start
Alarm
Program Command
to Acknowledge
Fail to Stop
Alarm
Program
Command to
Inhibit Fail
to Stop Alarm
Program Command
to Uninhibit
Fail to Stop
Alarm
Program Command to
Acknowledge
Interlock Trip
Alarm
RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

PCmd_IntlkTripInhibit

BOOL

Input

PCmd_IntlkTripUninhibit

BOOL

Input

PCmd_IOFaultAck

BOOL

Input

PCmd_IOFaultInhibit

BOOL

Input

PCmd_IOFaultUninhibit

BOOL

Input

OCmd_Start

BOOL

Input

OCmd_Stop

BOOL

Input

OCmd_Bypass

BOOL

Input

OCmd_Check

BOOL

Input

MCmd_Disable

BOOL

Input

MCmd_Enable

BOOL

Input

OCmd_Reset

BOOL

Input

OCmd_ResetAckAll

BOOL

Input

Out_Run

BOOL

Output

Out_Start

BOOL

Output

Out_Stop

BOOL

Output

Page 5
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program Command
to Inhibit
Interlock Trip
Alarm
Program Command
to Uninhibit
Interlock Trip
Alarm
Program
Command to
Acknowledge
I/O Fault
Alarm
Program
Command to
Inhibit
I/O Fault
Alarm
Program
Command to
Uninhibit
I/O Fault
Alarm
Operator
Command to
Start
Motor
Operator
Command to
Stop Motor
Operator Command to Bypass all
Bypassable Interlocks and
Permissives
Operator Command to Check (not
bypass) all Interlocks and
Permissives
Maintenanc
e Command
to Disable
Motor
Maintenance
Command to Enable
(allow to run)
Motor
Operator Command to
Reset all Alarms
requiring Reset
Operator Command to Reset all
Alarms and latched Shed
conditions
1=Run
Motor,
0=Stop
Motor
1=Start
Motor,
0=Motor left
in current
state
1=Stop
Motor,
0=Motor
left in
current
state

RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Val_Cmd

SINT

Output

Val_Fdbk

SINT

Output

Val_Sts

SINT

Output

Val_Fault

SINT

Output

Val_Mode

DINT

Output

Val_Owner

DINT

Output

Val_Notify

SINT

Output

Sts_Stopped

BOOL

Output

Sts_Starting

BOOL

Output

Sts_Running

BOOL

Output

Sts_Stopping

BOOL

Output

Sts_Available

BOOL

Output

Sts_Bypass

BOOL

Output

Sts_BypActive

BOOL

Output

Sts_Disabled

BOOL

Output

Sts_NotRdy

BOOL

Output

Sts_MaintByp

BOOL

Output

Sts_AlmInh

BOOL

Output

Sts_Err

BOOL

Output

Err_Timer

BOOL

Output

Page 6
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Device
Command
0=None,
1=Stop,
2=Start
Device
Feedback
0=Stopped,
1=Running
Device Confirmed Sts 0=? 1=Stopped, 2=Running,
7=Stopping, 8=Starting, 33=Disabled
Device Fault Status 0=None, 16=Fail to Start, 17 = Fail to
Stop, 32=I/O Fault, 34=Config Error
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O
(P Def), 8=P (P Def), 9=O (O def)
Current
Object
Owner ID
(0=not
owned)
Current Alarm Level
and Acknowledgement
(enumeration)
1=Motor requested
to stop and is
confirmed stopped
1=Motor requested
to run and
awaiting run
feedback
1=Motor requested
to run and is
confirmed running
1=Motor requested to
stop and awaiting
stopped feedback
1=Motor available
for control by
automation (Prog)
1=Bypassable
Interlocks and
Permissives are
Bypassed
1=Bypassing
Active
(Bypassed or
Maintenance)
1=Motor is
Disabled
1=Motor is Not
Ready to Run
(independent of
Mode)
1=A
Maintenance
Bypass is
Active,
display icon
1=An Alarm is Inhibited,
Disabled or Suppressed,
display icon
1=Error in
Config: see
detail bits
for reason
1=Error in Config: Start/Stop Check
timer preset (use 0 to 2147483)

RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Err_Sim

BOOL

Output

Err_Alarm

BOOL

Output

Sts_Hand

BOOL

Output

Sts_Maint

BOOL

Output

Sts_Ovrd

BOOL

Output

Sts_Prog

BOOL

Output

Sts_Oper

BOOL

Output

Sts_ProgOperLock

BOOL

Output

Sts_NoMode

BOOL

Output

Sts_FailToStart

BOOL

Output

Alm_FailToStart

BOOL

Output

Ack_FailToStart

BOOL

Output

Sts_FailToStartDisabled

BOOL

Output

Sts_FailToStartInhibited

BOOL

Output

Sts_FailToStartSuppressed

BOOL

Output

Sts_FailToStop

BOOL

Output

Alm_FailToStop

BOOL

Output

Ack_FailToStop

BOOL

Output

Page 7
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Error in Config: Simulation
timer preset (use 0 to
2147483)
1=Error in Config:
Alarm Throttle
Time or Severity
1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
1=Mode is
Override
(supersede
s Prog,
Oper)
1=Mode is
Program
(auto)
1=Mode is
Operator
(manual)
1=Program or
Operator has
requested
Mode Lock
1=NoMode
(Disabled
because
EnableIn is
False)
1=Motor
Failed to
Start
(one-shot)
1=Motor
Fail to
Start
Alarm
1=Fail to
Start Alarm
has been
acknowledge
d
1=Fail to Start Alarm has
been disabled (will not be
sent)
1=Fail to Start
Alarm has been
inhibited by
logic
1=Fail to Start Alarm
has been suppressed
(logged only)
1=Motor
Failed to
Stop
1=Motor
Fail to
Stop Alarm
1=Fail to
Stop Alarm
has been
acknowledg
ed

RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Sts_FailToStopDisabled

BOOL

Output

Sts_FailToStopInhibited

BOOL

Output

Sts_FailToStopSuppressed

BOOL

Output

Sts_IntlkTrip

BOOL

Output

Alm_IntlkTrip

BOOL

Output

Ack_IntlkTrip

BOOL

Output

Sts_IntlkTripDisabled

BOOL

Output

Sts_IntlkTripInhibited

BOOL

Output

Sts_IntlkTripSuppressed

BOOL

Output

Sts_IOFault

BOOL

Output

Alm_IOFault

BOOL

Output

Ack_IOFault

BOOL

Output

Sts_IOFaultDisabled

BOOL

Output

Sts_IOFaultInhibited

BOOL

Output

Sts_IOFaultSuppressed

BOOL

Output

Rdy_Start

BOOL

Output

Rdy_Stop

BOOL

Output

Rdy_Bypass

BOOL

Output

Page 8
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Fail to Stop Alarm has
been disabled (will not
be sent)
1=Fail to Stop
Alarm has been
inhibited by
logic
1=Fail to Stop Alarm
has been suppressed
(logged only)
1=Motor stopped
by an Interlock
NOT OK (one-shot)
1=Alarm:
Motor stopped
by an
Interlock NOT
OK
1=Interlock
Trip Alarm
has been
acknowledged
1=Interlock Trip Alarm
is Disabled (not saved
or sent)
1=Interlock Trip
Alarm has been
inhibited by logic
1=Interlock Trip Alarm
has been suppressed
(logged only)
I/O Comm
Fault
Status
(0=OK,
1=Bad)
1=I/O
Fault
Alarm
1=I/O
Fault
Alarm has
been
acknowledg
ed
1=I/O Fault Alarm
is Disabled (not
saved or sent)
1=I/O Fault
Alarm has
been
inhibited by
logic
1=I/O Fault Alarm
has been suppressed
(logged only)
1=Ready to receive
OCmd_Start
(enables HMI
button)
1=Ready to
receive OCmd_Stop
(enables HMI
button)
1=Ready to receive
OCmd_Bypass
(enables HMI
button)
RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Rdy_Check

BOOL

Output

Rdy_Disable

BOOL

Output

Rdy_Enable

BOOL

Output

Rdy_Reset

BOOL

Output

Rdy_ResetAckAll

BOOL

Output

P_Motor

BOOL

Output

Page 9
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Ready to receive
OCmd_Check
(enables HMI
button)
1=Ready to receive
MCmd_Disable
(enables HMI button)
1=Ready to receive
MCmd_Enable
(enables HMI
button)
1=At least one
Alarm or Latched
Shed requires Reset
1=At least one Alarm or latched Shed
condition requires Reset or Ack
Unique
Parameter
Name for
auto discovery

Extended Description
This Instruction controls and monitors a single-speed motor
(FVNR, soft-start, etc.) and provides:
*
*
*
*
*
*
*
*
*
*

Monitoring of run feedback, display of actual motor status


Detection of Failure to Start, Failure to Stop
Monitoring of a Permissive condition to allow starting
Monitoring of an Interlock condition to stop / prevent starting
Simulation, providing feedback of a working motor while disabling outputs
Monitoring of I/O communication faults
Alarms for Fail to Start, Fail to Stop, Interlock Trip, I/O Fault
Options to shed (stop motor) on Fail to Start or I/O Fault
Operation in Hand, Maintenance, Override, Program and Operator Modes
Option to automatically reset faults and alarms when operator commands
motor to start or stop
* Supports HMI "breadcrumbs" for Alarm Inhibited, Bad Configuration,
Not Ready, Maintenance Bypass Active
* "Available" status for use by automation logic to know whether motor
can be controlled by other objects.
Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Disabled is asserted; Outputs OFF; Run Status shown but Alarms disabled
Normal Scan: control / monitor single speed motor
Clear Ownership, clear "lurking" Commands

Revision v2.0 04 Release Notes


Edge/Level behavior for P_Alarm 2.0-01. Improved handling of timers with presets = 0. Buffering of Val_*.
Change History
Created:
Created By:
Edited:
Edited By:

27/03/2008 01,50,50
Not Available
18/03/2013 11,24,21
PLANTPAX\Library

Signature
ID:
Timestamp:

7FD970AB
2013-03-18T17:24:21.665Z
RSLogix 5000

P_Motor - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Page 10
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cross Reference
Container
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos

Routine
Blk_Agitadores
Blk_Agitadores
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas

Location
Sheet 1, E1
Sheet 2, E1
Sheet 1, F1
Sheet 2, E1
Sheet 3, E1
Sheet 4, E1
Sheet 5, D1
Sheet 6, C1

Tag
P_Motor_M500
P_Motor_M600
P_Motor_M400
P_Motor_M100
P_Motor_M300
P_Motor_M700
P_Motor_Almix
P_Motor_Agua_Hielo

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>
Name
Default
1
Ack_FailToStart
1=Fail to Start Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Ack
Base Tag:
FailToStart.Ack
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

Page 11
22/12/2015 09,00,10
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_Motor

1
Ack_FailToStop
1=Fail to Stop Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Ack
Base Tag:
FailToStop.Ack
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

1
Ack_IntlkTrip
1=Interlock Trip Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Ack
Base Tag:
IntlkTrip.Ack
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

1
Ack_IOFault
1=I/O Fault Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Ack
Base Tag:
IOFault.Ack
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Alm_FailToStart
1=Motor Fail to Start Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Alm
Base Tag:
FailToStart.Alm
Constant
No
External Access:
Read Only
Alm_FailToStart - P_Motor/EnableInFalse - *11(OTU)
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

0
Alm_FailToStop
1=Motor Fail to Stop Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Alm
Base Tag:
FailToStop.Alm
Constant
No
External Access:
Read Only
Alm_FailToStop - P_Motor/EnableInFalse - *11(OTU)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 12
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Alm_FailToStop (Continued)
FailToStop - P_Motor/Logic - *38(P_Alarm)
0
Alm_IntlkTrip
1=Alarm: Motor stopped by an Interlock NOT OK
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Alm
Base Tag:
IntlkTrip.Alm
Constant
No
External Access:
Read Only
Alm_IntlkTrip - P_Motor/EnableInFalse - *11(OTU)
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

0
Alm_IOFault
1=I/O Fault Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Alm
Base Tag:
IOFault.Alm
Constant
No
External Access:
Read Only
Alm_IOFault - P_Motor/EnableInFalse - *11(OTU)
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

1
Cfg_FailToStartAckReqd
1=Acknowledge required for Fail to Start Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Cfg_AckReqd
Base Tag:
FailToStart.Cfg_AckReqd
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

0
Cfg_FailToStartResetReqd
1=Reset required to clear Fail to Start Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Cfg_ResetReqd
Base Tag:
FailToStart.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

3
Cfg_FailToStartSeverity
Fail To Start Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Cfg_Severity
Base Tag:
FailToStart.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_Motor

10
Cfg_FailToStartT
Time after Start to get Run Feedback before Fault (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailToStartT - P_Motor/Logic - 4(MUL)

DINT

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 13
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1
Cfg_FailToStopAckReqd
1=Acknowledge required for Fail to Stop Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Cfg_AckReqd
Base Tag:
FailToStop.Cfg_AckReqd
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
Cfg_FailToStopResetReqd
1=Reset required to clear Fail to Stop Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Cfg_ResetReqd
Base Tag:
FailToStop.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

3
Cfg_FailToStopSeverity
Fail To Stop Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Cfg_Severity
Base Tag:
FailToStop.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_Motor

10
Cfg_FailToStopT
Time after Stop to drop Run Feedback before Fault (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailToStopT - P_Motor/Logic - 4(MUL)

DINT

P_Motor

1
Cfg_HasFailToStartAlm
1=Fail to Start Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Cfg_Exists
Base Tag:
FailToStart.Cfg_Exists
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

1
Cfg_HasFailToStopAlm
1=Fail to Stop Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Cfg_Exists
Base Tag:
FailToStop.Cfg_Exists
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
Cfg_HasIntlkObj
1=Tells HMI a P_Intlk is connected to Inp_Intlk
Usage:
Input Parameter
Required:
No
Visible:
No

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>
Cfg_HasIntlkObj (Continued)
External Access:

Page 14
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Read/Write

1
Cfg_HasIntlkTripAlm
1=Interlock Trip Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_Exists
Base Tag:
IntlkTrip.Cfg_Exists
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

1
Cfg_HasIOFaultAlm
1=I/O Fault Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_Exists
Base Tag:
IOFault.Cfg_Exists
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Cfg_HasPermObj
1=Tells HMI a P_Perm is connected to Inp_Perm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_Motor

0
Cfg_HasResInhObj
1=Tells HMI a P_ResInh Restart Inhibit is connected
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_Motor

0
Cfg_HasRunFdbk
1=Motor provides a run feedback signal
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HasRunFdbk - P_Motor/Logic - 12(XIC), 3(XIO)

BOOL

P_Motor

0
Cfg_HasRunTimeObj
1=Tells HMI a P_RunTime is connected
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_Motor

1
Cfg_IntlkTripAckReqd
1=Acknowledge required for Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_AckReqd
Base Tag:
IntlkTrip.Cfg_AckReqd
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

0
Cfg_IntlkTripResetReqd
1=Reset required to clear Interlock Trip Alarm

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 15
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_IntlkTripResetReqd (Continued)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_ResetReqd
Base Tag:
IntlkTrip.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)
3
Cfg_IntlkTripSeverity
Interlock Trip Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_Severity
Base Tag:
IntlkTrip.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_Motor

1
Cfg_IOFaultAckReqd
1=Acknowledge required for I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_AckReqd
Base Tag:
IOFault.Cfg_AckReqd
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Cfg_IOFaultResetReqd
1=Reset required to clear I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_ResetReqd
Base Tag:
IOFault.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

3
Cfg_IOFaultSeverity
I/O Fault Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_Severity
Base Tag:
IOFault.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_Motor

0
Cfg_OCmdResets
1=New Oper motor cmd. resets fault, 0=reset req'd to clear fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OCmdResets - P_Motor/Logic - 18(XIC), 19(XIO)

BOOL

P_Motor

0
Cfg_OvrdPermIntlk
1=Override ignores Bypassable Perm/ Intlk; 0=always use Perm/Intlk
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OvrdPermIntlk - P_Motor/Logic - 11(XIC)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 16
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1
BOOL
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_PCmdClear
Base Tag:
Mode.Cfg_PCmdClear
Constant
No
External Access:
Read/Write
Cfg_PCmdClear - P_Motor/EnableInFalse - 0(XIC), 0(XIO), 2(XIC)
Cfg_PCmdClear - P_Motor/Logic - 18(XIC), 21(XIC), 22(XIC), 22(XIO), 36(XIC)
Cfg_PCmdClear - P_Motor/Prescan - 1(XIC)
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

P_Motor

0
BOOL
Cfg_ProgDefault
Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_ProgDefault
Base Tag:
Mode.Cfg_ProgDefault
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

P_Motor

1
Cfg_ShedOnFailToStart
1=Stop Motor and Alarm on Fail to Start; 0=Alarm only on Fail to Start
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnFailToStart - P_Motor/Logic - 29(XIC)

BOOL

P_Motor

1
Cfg_ShedOnIOFault
1=Stop Motor and Alarm on I/O Fault; 0=Alarm only on I/O Fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnIOFault - P_Motor/Logic - 19(XIC)

BOOL

P_Motor

2
Cfg_SimFdbkT
Delay to echo back of Running/Stopped status when in Simulation (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SimFdbkT - P_Motor/Logic - 5(MUL)

DINT

P_Motor

0
BOOL
Cfg_UseRunFdbk
1=Motor run feedback should be used for failure checking
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseRunFdbk - P_Motor/EnableInFalse - 6(XIC)
Cfg_UseRunFdbk - P_Motor/Logic - *3(OTU), 12(XIO), 32(XIC), 33(XIC), 7(XIC), 7(XIO)

P_Motor

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

P_Motor

BOOL

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 17
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Motor

0
Err_Alarm
1=Error in Config: Alarm Throttle Time or Severity
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Alarm - P_Motor/Logic - *6(OTE)

BOOL

P_Motor

0
Err_Sim
1=Error in Config: Simulation timer preset (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Sim - P_Motor/Logic - *5(OTE), 6(XIC)

BOOL

P_Motor

0
Err_Timer
1=Error in Config: Start/Stop Check timer preset (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Timer - P_Motor/Logic - *4(OTE), 6(XIC)

BOOL

P_Motor

0
Inp_Hand
1=Select Hand (hardwired) Control Strategy
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Inp_Hand
Base Tag:
Mode.Inp_Hand
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

1
Inp_IntlkOK
1=Interlocks OK, motor can start/run
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_IntlkOK - P_Motor/Logic - 19(XIO)

BOOL

P_Motor

0
Inp_IOFault
Input Communication Status 0=OK, 1=fail
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_IOFault - P_Motor/Logic - 19(XIC)

BOOL

P_Motor

1
Inp_NBIntlkOK
1=Non-Bypassable Interlocks OK, motor can start/run
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_NBIntlkOK - P_Motor/Logic - 19(XIO)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 18
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1
Inp_NBPermOK
1=Non-Bypassable Permissives OK, motor can start
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_NBPermOK - P_Motor/Logic - 19(XIO)

BOOL

P_Motor

0
Inp_Ovrd
1=Select Override control strategy
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Inp_Ovrd
Base Tag:
Mode.Inp_Ovrd
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

0
DINT
Inp_OvrdCmd
Override Mode Command: 0=None, 1=Stop, 2=Start
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_OvrdCmd - P_Motor/EnableInFalse - *4(CLR)
Inp_OvrdCmd - P_Motor/Logic - *21(CLR), *22(CLR), 21(EQU), 22(EQU)
Inp_OvrdCmd - P_Motor/Prescan - *3(CLR)

P_Motor

1
Inp_PermOK
1=Permissives OK, motor can start
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_PermOK - P_Motor/Logic - 19(XIO)

BOOL

P_Motor

0
Inp_Reset
1=Reset all fault conditions and latched Alarms
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Reset - P_Motor/Logic - 18(XIC)

BOOL

P_Motor

0
Inp_RunFdbk
Input Signal: RUN feedback from motor
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_RunFdbk - P_Motor/EnableInFalse - 6(XIC)
Inp_RunFdbk - P_Motor/Logic - 7(XIC), 7(XIO)

BOOL

P_Motor

0
Inp_Sim
1=Simulate working motor; 0=Start/Stop/ Monitor actual motor
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Sim - P_Motor/EnableInFalse - 6(XIO)
Inp_Sim - P_Motor/Logic - 19(XIO), 32(XIO), 7(XIC), 7(XIO)

BOOL

P_Motor

0
MCmd_Disable
Maintenance Command to Disable Motor
Usage:
Input Parameter

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 19
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

MCmd_Disable (Continued)
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Disable - P_Motor/EnableInFalse - *3(OTU)
MCmd_Disable - P_Motor/Logic - *14(OTU), 14(XIC)
MCmd_Disable - P_Motor/Prescan - *2(OTU)
0
MCmd_Enable
Maintenance Command to Enable (allow to run) Motor
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Enable - P_Motor/EnableInFalse - *3(OTU)
MCmd_Enable - P_Motor/Logic - *15(OTU), 15(XIC)
MCmd_Enable - P_Motor/Prescan - *2(OTU)

BOOL

P_Motor

0
BOOL
OCmd_Bypass
Operator Command to Bypass all Bypassable Interlocks and Permissives
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Bypass - P_Motor/EnableInFalse - *3(OTU)
OCmd_Bypass - P_Motor/Logic - *9(OTU), 9(XIC)
OCmd_Bypass - P_Motor/Prescan - *2(OTU)

P_Motor

0
BOOL
OCmd_Check
Operator Command to Check (not bypass) all Interlocks and Permissives
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Check - P_Motor/EnableInFalse - *3(OTU)
OCmd_Check - P_Motor/Logic - *10(OTU), 10(XIC)
OCmd_Check - P_Motor/Prescan - *2(OTU)

P_Motor

0
OCmd_Reset
Operator Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_Motor/EnableInFalse - *3(OTU)
OCmd_Reset - P_Motor/Logic - *18(OTU), 18(XIC)
OCmd_Reset - P_Motor/Prescan - *2(OTU)

BOOL

P_Motor

0
OCmd_ResetAckAll
Operator Command to Reset all Alarms and latched Shed conditions
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ResetAckAll - P_Motor/EnableInFalse - *3(OTU)
OCmd_ResetAckAll - P_Motor/Logic - *18(OTU), 18(XIC)
OCmd_ResetAckAll - P_Motor/Prescan - *2(OTU)

BOOL

P_Motor

0
OCmd_Start
Operator Command to Start Motor
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Start - P_Motor/EnableInFalse - *3(OTU)
OCmd_Start - P_Motor/Logic - *21(OTU), 18(XIC), 21(XIC)
OCmd_Start - P_Motor/Prescan - *2(OTU)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 20
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
OCmd_Stop
Operator Command to Stop Motor
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Stop - P_Motor/EnableInFalse - *3(OTU)
OCmd_Stop - P_Motor/Logic - *22(OTU), 18(XIC), 22(XIC)
OCmd_Stop - P_Motor/Prescan - *2(OTU)

BOOL

P_Motor

0
Out_Run
1=Run Motor, 0=Stop Motor
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_Run - P_Motor/EnableInFalse - *9(OTU)
Out_Run - P_Motor/Logic - *32(OTE)
Out_Run - P_Motor/Prescan - *5(OTU)

BOOL

P_Motor

0
Out_Start
1=Start Motor, 0=Motor left in current state
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_Start - P_Motor/EnableInFalse - *9(OTU)
Out_Start - P_Motor/Logic - *32(OTE)
Out_Start - P_Motor/Prescan - *5(OTU)

BOOL

P_Motor

0
Out_Stop
1=Stop Motor, 0=Motor left in current state
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out_Stop - P_Motor/EnableInFalse - *9(OTU)
Out_Stop - P_Motor/Logic - *32(OTE)
Out_Stop - P_Motor/Prescan - *5(OTU)

BOOL

P_Motor

0
PCmd_Acq
Program Command to Acquire ownership (Oper to Prog)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Acq
Base Tag:
Mode.PCmd_Acq
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

0
PCmd_FailToStartAck
Program Command to Acknowledge Fail to Start Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.PCmd_Ack
Base Tag:
FailToStart.PCmd_Ack
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)
FailToStart.PCmd_Ack - P_Motor/Logic - *18(OTL)

BOOL

P_Motor

0
PCmd_FailToStartInhibit
Program Command to Inhibit Fail to Start Alarm
Usage:
Input Parameter

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 21
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_FailToStartInhibit (Continued)
Required:
No
Visible:
No
AliasFor:
FailToStart.PCmd_Inhibit
Base Tag:
FailToStart.PCmd_Inhibit
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)
0
PCmd_FailToStartUninhibit
Program Command to Uninhibit Fail to Start Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.PCmd_Uninhibit
Base Tag:
FailToStart.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

0
PCmd_FailToStopAck
Program Command to Acknowledge Fail to Stop Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.PCmd_Ack
Base Tag:
FailToStop.PCmd_Ack
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)
FailToStop.PCmd_Ack - P_Motor/Logic - *18(OTL)

BOOL

P_Motor

0
PCmd_FailToStopInhibit
Program Command to Inhibit Fail to Stop Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.PCmd_Inhibit
Base Tag:
FailToStop.PCmd_Inhibit
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
PCmd_FailToStopUninhibit
Program Command to Uninhibit Fail to Stop Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.PCmd_Uninhibit
Base Tag:
FailToStop.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
PCmd_IntlkTripAck
Program Command to Acknowledge Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Ack
Base Tag:
IntlkTrip.PCmd_Ack
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)
IntlkTrip.PCmd_Ack - P_Motor/Logic - *18(OTL)

BOOL

P_Motor

BOOL

P_Motor

PCmd_IntlkTripInhibit

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 22
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_IntlkTripInhibit (Continued)
Program Command to Inhibit Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Inhibit
Base Tag:
IntlkTrip.PCmd_Inhibit
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)
0
PCmd_IntlkTripUninhibit
Program Command to Uninhibit Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Uninhibit
Base Tag:
IntlkTrip.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

0
PCmd_IOFaultAck
Program Command to Acknowledge I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Ack
Base Tag:
IOFault.PCmd_Ack
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)
IOFault.PCmd_Ack - P_Motor/Logic - *18(OTL)

BOOL

P_Motor

0
PCmd_IOFaultInhibit
Program Command to Inhibit I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Inhibit
Base Tag:
IOFault.PCmd_Inhibit
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
PCmd_IOFaultUninhibit
Program Command to Uninhibit I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Uninhibit
Base Tag:
IOFault.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
PCmd_Lock
Program Command to Lock Mode in Prog
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Lock
Base Tag:
Mode.PCmd_Lock
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 23
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
PCmd_Rel
Program Command to Release ownership (Prog to Oper)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Rel
Base Tag:
Mode.PCmd_Rel
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

0
PCmd_Reset
Program Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_Motor/EnableInFalse - *3(OTU)
PCmd_Reset - P_Motor/Logic - *18(OTU), 18(XIC)
PCmd_Reset - P_Motor/Prescan - *2(OTU)

BOOL

P_Motor

0
PCmd_Start
Program Command to Start Motor
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Start - P_Motor/EnableInFalse - *2(OTU)
PCmd_Start - P_Motor/Logic - *21(OTU), 21(XIC), 22(XIO)
PCmd_Start - P_Motor/Prescan - *1(OTU)

BOOL

P_Motor

0
PCmd_Stop
Program Command to Stop Motor
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Stop - P_Motor/EnableInFalse - *2(OTU)
PCmd_Stop - P_Motor/Logic - *22(OTU), 22(XIC)
PCmd_Stop - P_Motor/Prescan - *1(OTU)

BOOL

P_Motor

0
PCmd_Unlock
Program Command to Unlock Mode
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Unlock
Base Tag:
Mode.PCmd_Unlock
Constant
No
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

0
PSet_Owner
Program Owner Request ID (non-zero) or Release (zero)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_Owner - P_Motor/EnableInFalse - 1(EQU), 1(MOV), 1(NEQ)
PSet_Owner - P_Motor/Logic - 2(EQU), 2(MOV), 2(NEQ)
PSet_Owner - P_Motor/Prescan - *0(CLR)

DINT

P_Motor

0
P_Motor
Unique Parameter Name for auto - discovery
Usage:
Output Parameter

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>
P_Motor (Continued)
Required:
Visible:
External Access:

Page 24
22/12/2015 09,00,11
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

No
No
Read Only

0
Rdy_Bypass
1=Ready to receive OCmd_Bypass (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Bypass - P_Motor/EnableInFalse - *5(OTU)
Rdy_Bypass - P_Motor/Logic - *13(OTE)

BOOL

P_Motor

0
Rdy_Check
1=Ready to receive OCmd_Check (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Check - P_Motor/EnableInFalse - *5(OTU)
Rdy_Check - P_Motor/Logic - *13(OTE)

BOOL

P_Motor

0
Rdy_Disable
1=Ready to receive MCmd_Disable (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Disable - P_Motor/EnableInFalse - *5(OTU)
Rdy_Disable - P_Motor/Logic - *17(OTE)

BOOL

P_Motor

0
Rdy_Enable
1=Ready to receive MCmd_Enable (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Enable - P_Motor/EnableInFalse - *5(OTU)
Rdy_Enable - P_Motor/Logic - *17(OTE)

BOOL

P_Motor

0
Rdy_Reset
1=At least one Alarm or Latched Shed requires Reset
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_Motor/EnableInFalse - *5(OTU)
Rdy_Reset - P_Motor/Logic - *42(OTE)

BOOL

P_Motor

0
Rdy_ResetAckAll
1=At least one Alarm or latched Shed condition requires Reset or Ack
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ResetAckAll - P_Motor/EnableInFalse - *5(OTU)
Rdy_ResetAckAll - P_Motor/Logic - *42(OTE)

BOOL

P_Motor

0
Rdy_Start
1=Ready to receive OCmd_Start (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Start - P_Motor/EnableInFalse - *5(OTU)
Rdy_Start - P_Motor/Logic - *35(OTE)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 25
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Rdy_Stop
1=Ready to receive OCmd_Stop (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Stop - P_Motor/EnableInFalse - *5(OTU)
Rdy_Stop - P_Motor/Logic - *35(OTE)

BOOL

P_Motor

0
Sts_AlmInh
1=An Alarm is Inhibited, Disabled or Suppressed, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_Motor/EnableInFalse - *11(OTL)
Sts_AlmInh - P_Motor/Logic - *41(OTE)

BOOL

P_Motor

0
Sts_Available
1=Motor available for control by automation (Prog)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Available - P_Motor/EnableInFalse - *10(OTU)
Sts_Available - P_Motor/Logic - *20(OTE)

BOOL

P_Motor

0
Sts_BypActive
1=Bypassing Active (Bypassed or Maintenance)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_BypActive - P_Motor/Logic - *11(OTE), 19(XIO)

BOOL

P_Motor

0
Sts_Bypass
1=Bypassable Interlocks and Permissives are Bypassed
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Bypass - P_Motor/Logic - *11(OTE), 12(XIC)

BOOL

P_Motor

0
Sts_Disabled
1=Motor is Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Disabled - P_Motor/EnableInFalse - *10(OTL)
Sts_Disabled - P_Motor/Logic - *16(OTE), 19(XIC), 34(XIC)

BOOL

P_Motor

0
Sts_Err
1=Error in Config: see detail bits for reason
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_Motor/Logic - *6(OTE), 19(XIC), 34(XIC)

BOOL

P_Motor

1
Sts_FailToStart
1=Motor Failed to Start (one-shot)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Inp
Base Tag:
FailToStart.Inp

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 26
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_FailToStart (Continued)
Constant
No
External Access:
Read Only
Sts_FailToStart - P_Motor/EnableInFalse - *11(OTU)
Sts_FailToStart - P_Motor/Logic - *26(OTE), 18(XIC), 29(XIC), 42(XIO)
FailToStart - P_Motor/Logic - *37(P_Alarm)
0
Sts_FailToStartDisabled
1=Fail to Start Alarm has been disabled (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Disabled
Base Tag:
FailToStart.Disabled
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

0
Sts_FailToStartInhibited
1=Fail to Start Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Inhibited
Base Tag:
FailToStart.Inhibited
Constant
No
External Access:
Read Only
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

0
Sts_FailToStartSuppressed
1=Fail to Start Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStart.Suppressed
Base Tag:
FailToStart.Suppressed
Constant
No
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)

BOOL

P_Motor

1
Sts_FailToStop
1=Motor Failed to Stop
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Inp
Base Tag:
FailToStop.Inp
Constant
No
External Access:
Read Only
Sts_FailToStop - P_Motor/EnableInFalse - *11(OTU)
Sts_FailToStop - P_Motor/Logic - *28(OTE), 18(XIC), 34(XIC)
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
Sts_FailToStopDisabled
1=Fail to Stop Alarm has been disabled (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Disabled
Base Tag:
FailToStop.Disabled
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
Sts_FailToStopInhibited
1=Fail to Stop Alarm has been inhibited by logic
Usage:
Output Parameter

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 27
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_FailToStopInhibited (Continued)
Required:
No
Visible:
No
AliasFor:
FailToStop.Inhibited
Base Tag:
FailToStop.Inhibited
Constant
No
External Access:
Read Only
FailToStop - P_Motor/Logic - *38(P_Alarm)
0
Sts_FailToStopSuppressed
1=Fail to Stop Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FailToStop.Suppressed
Base Tag:
FailToStop.Suppressed
Constant
No
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)

BOOL

P_Motor

0
Sts_Hand
1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Hand
Base Tag:
Mode.Sts_Hand
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)
Mode.Sts_Hand - P_Motor/Logic - 24(XIC), 32(XIO), 33(XIO), 7(XIC)

BOOL

P_Motor

1
Sts_IntlkTrip
1=Motor stopped by an Interlock NOT OK (one-shot)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Inp
Base Tag:
IntlkTrip.Inp
Constant
No
External Access:
Read Only
Sts_IntlkTrip - P_Motor/EnableInFalse - *11(OTU)
Sts_IntlkTrip - P_Motor/Logic - *19(OTE)
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

0
Sts_IntlkTripDisabled
1=Interlock Trip Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Disabled
Base Tag:
IntlkTrip.Disabled
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

0
Sts_IntlkTripInhibited
1=Interlock Trip Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Inhibited
Base Tag:
IntlkTrip.Inhibited
Constant
No
External Access:
Read Only
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 28
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Sts_IntlkTripSuppressed
1=Interlock Trip Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Suppressed
Base Tag:
IntlkTrip.Suppressed
Constant
No
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)

BOOL

P_Motor

1
Sts_IOFault
I/O Comm Fault Status (0=OK, 1=Bad)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Inp
Base Tag:
IOFault.Inp
Constant
No
External Access:
Read Only
Sts_IOFault - P_Motor/EnableInFalse - *11(OTU)
Sts_IOFault - P_Motor/Logic - *19(OTE), 42(XIO)
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Sts_IOFaultDisabled
1=I/O Fault Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Disabled
Base Tag:
IOFault.Disabled
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Sts_IOFaultInhibited
1=I/O Fault Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Inhibited
Base Tag:
IOFault.Inhibited
Constant
No
External Access:
Read Only
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Sts_IOFaultSuppressed
1=I/O Fault Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Suppressed
Base Tag:
IOFault.Suppressed
Constant
No
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)

BOOL

P_Motor

0
Sts_Maint
1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Maint
Base Tag:
Mode.Sts_Maint
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)

BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 29
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Maint (Continued)
Mode - P_Motor/Logic - *1(P_Mode)
Mode.Sts_Maint - P_Motor/Logic - 11(XIC), 18(XIC), 19(XIO), 21(XIC), 22(XIC), 25(XIO), 27(XIO), 35(XIC)
0
Sts_MaintByp
1=A Maintenance Bypass is Active, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_MaintByp - P_Motor/EnableInFalse - *10(OTU)
Sts_MaintByp - P_Motor/Logic - *12(OTE)

BOOL

P_Motor

0
Sts_NoMode
1=NoMode (Disabled because EnableIn is False)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_NoMode
Base Tag:
Mode.Sts_NoMode
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

0
BOOL
Sts_NotRdy
1=Motor is Not Ready to Run (independent of Mode)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_NotRdy - P_Motor/EnableInFalse - *10(OTL)
Sts_NotRdy - P_Motor/Logic - *19(OTE), 20(XIO), 21(XIO), 23(XIC), 24(XIO), 32(XIC), 32(XIO), 35(XIO)

P_Motor

1
BOOL
Sts_Oper
1=Mode is Operator (manual)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Oper
Base Tag:
Mode.Sts_Oper
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)
Mode.Sts_Oper - P_Motor/Logic - 18(XIC), 19(XIO), 21(XIC), 22(XIC), 35(XIC)

P_Motor

0
Sts_Ovrd
1=Mode is Override (supersedes Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Ovrd
Base Tag:
Mode.Sts_Ovrd
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)
Mode.Sts_Ovrd - P_Motor/Logic - 11(XIC), 21(XIC), 22(XIC)

BOOL

P_Motor

BOOL

P_Motor

Sts_Prog
1=Mode is Program (auto)
Usage:
Required:
Visible:
AliasFor:
Base Tag:

0
Output Parameter
No
Yes
Mode.Sts_Prog
Mode.Sts_Prog

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 30
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Prog (Continued)
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)
Mode.Sts_Prog - P_Motor/Logic - 20(XIC), 21(XIC), 22(XIC)
0
Sts_ProgOperLock
1=Program or Operator has requested Mode Lock
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_ProgOperLock
Base Tag:
Mode.Sts_ProgOperLock
Constant
No
External Access:
Read Only
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)

BOOL

P_Motor

0
Sts_Running
1=Motor requested to run and is confirmed running
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Running - P_Motor/EnableInFalse - *6(OTE), 7(XIO)
Sts_Running - P_Motor/Logic - *33(OTE), 19(XIO), 34(XIC), 35(XIC)

BOOL

P_Motor

0
Sts_Starting
1=Motor requested to run and awaiting run feedback
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Starting - P_Motor/EnableInFalse - *10(OTU)
Sts_Starting - P_Motor/Logic - *33(OTE), 19(XIO), 34(XIC), 35(XIC)

BOOL

P_Motor

1
Sts_Stopped
1=Motor requested to stop and is confirmed stopped
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Stopped - P_Motor/EnableInFalse - *7(OTE)
Sts_Stopped - P_Motor/Logic - *33(OTE), 34(XIC), 35(XIC)

BOOL

P_Motor

0
Sts_Stopping
1=Motor requested to stop and awaiting stopped feedback
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Stopping - P_Motor/EnableInFalse - *10(OTU)
Sts_Stopping - P_Motor/Logic - *33(OTE), 34(XIC)

BOOL

P_Motor

0
Val_Cmd
Device Command 0=None, 1=Stop, 2=Start
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Cmd - P_Motor/EnableInFalse - *10(CLR)
Val_Cmd - P_Motor/Logic - *31(MOV)
Val_Cmd - P_Motor/Prescan - *6(CLR)

SINT

P_Motor

0
SINT
Val_Fault
Device Fault Status 0=None, 16=Fail to Start, 17 = Fail to Stop, 32=I/O Fault, 34=Config Error

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Type Size: 396 byte (s)
Data Context: P_Motor <definition>

Page 31
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Val_Fault (Continued)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fault - P_Motor/EnableInFalse - *10(CLR)
Val_Fault - P_Motor/Logic - *34(MOV)
0
Val_Fdbk
Device Feedback 0=Stopped, 1=Running
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fdbk - P_Motor/EnableInFalse - *6(MOV), *7(CLR)
Val_Fdbk - P_Motor/Logic - *8(CLR), *8(MOV)
Val_Fdbk - P_Motor/Prescan - *6(CLR)

SINT

P_Motor

0
DINT
P_Motor
Val_Mode
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Val
Base Tag:
Mode.Val
Constant
No
External Access:
Read Only
0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Notify - P_Motor/EnableInFalse - *11(CLR)
Val_Notify - P_Motor/Logic - *42(MOV)

SINT

P_Motor

0
Val_Owner
Current Object Owner ID (0=not owned)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Owner - P_Motor/EnableInFalse - *1(MOV), 1(EQU)
Val_Owner - P_Motor/Logic - *2(MOV), 2(EQU)
Val_Owner - P_Motor/Prescan - *0(CLR)

DINT

P_Motor

0
SINT
Val_Sts
Device Confirmed Sts 0=? 1=Stopped, 2=Running, 7=Stopping, 8=Starting, 33=Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Sts - P_Motor/EnableInFalse - *10(MOV)
Val_Sts - P_Motor/Logic - *34(MOV)
Val_Sts - P_Motor/Prescan - *6(CLR)

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Name
Default
'Single Speed Motor'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_Motor/Logic - *0(LOWER)
18
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

Page 32
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_40

Scope
P_Motor

DINT
SINT

'Motor Control'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_Motor/Logic - 0(LOWER)
13
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

STRING_20

'P_Motor'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_Motor/Logic - 0(LOWER)
7
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

STRING_20

P_Motor

DINT
SINT
P_Motor

DINT
SINT

P_Alarm
FailToStart
Motor Failed to Start Alarm
Usage:
Local Tag
External Access:
Read/Write
FailToStart - P_Motor/Logic - *37(P_Alarm)
1
BOOL
FailToStart.EnableIn
Motor Failed to Start Alarm Enable Input - System Defined Parameter
0
BOOL
FailToStart.EnableOut
Motor Failed to Start Alarm Enable Output - System Defined Parameter
1
BOOL
FailToStart.Inp
Motor Failed to Start Alarm Alarm Condition Input 1=Alarm
Sts_FailToStart - P_Motor/EnableInFalse - *11(OTU)
Sts_FailToStart - P_Motor/Logic - *26(OTE), 18(XIC), 29(XIC), 42(XIO)
0
BOOL
FailToStart.Inp_Reset
Motor Failed to Start Alarm 1=Reset Alarm requiring reset
1
BOOL
FailToStart.Cfg_Exists
Motor Failed to Start Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
FailToStart.Cfg_ResetReqd
Motor Failed to Start Alarm 1=Reset required to clear Alarm
1
BOOL
FailToStart.Cfg_AckReqd
Motor Failed to Start Alarm 1=Acknowledge required for Alarm
0
BOOL
FailToStart.Cfg_PCmdClear
Motor Failed to Start Alarm 1=Clear Program Commands on receipt 0=Leave Set
FailToStart.Cfg_PCmdClear - P_Motor/Logic - *36(OTE)
3
SINT
FailToStart.Cfg_Severity
Motor Failed to Start Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
FailToStart.Cfg_AlmMinOnT
Motor Failed to Start Alarm Minimum time Alm output stays on (sec)
0
BOOL
FailToStart.PCmd_Reset
Motor Failed to Start Alarm Program Command to Reset latched alarm
FailToStart.PCmd_Reset - P_Motor/Logic - *18(OTL)
0
BOOL
FailToStart.PCmd_Ack
Motor Failed to Start Alarm Program Command to Acknowledge alarm
FailToStart.PCmd_Ack - P_Motor/Logic - *18(OTL)
0
BOOL
FailToStart.PCmd_Inhibit
Motor Failed to Start Alarm Program Command to Inhibit alarm (force Alm to 0)

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Page 33
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

FailToStart (Continued)
0
BOOL
FailToStart.PCmd_Uninhibit
Motor Failed to Start Alarm Program Command to Uninhibit alarm
0
BOOL
FailToStart.OCmd_Reset
Motor Failed to Start Alarm Operator Command to Reset latched alarm
0
BOOL
FailToStart.OCmd_Ack
Motor Failed to Start Alarm Operator Command to Acknowledge alarm
0
BOOL
FailToStart.OCmd_Suppress
Motor Failed to Start Alarm Operator Command to Suppress alarm
BOOL
FailToStart.OCmd_Unsuppress 0
Motor Failed to Start Alarm Operator Command to Unsuppress alarm
0
BOOL
FailToStart.MCmd_Disable
Motor Failed to Start Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
FailToStart.MCmd_Enable
Motor Failed to Start Alarm Maintenance Command to Enable alarm
0
SINT
FailToStart.Val_Notify
Motor Failed to Start Alarm Current Alarm Level and Acknowledgement (enumeration)
FailToStart.Val_Notify - P_Motor/Logic - 42(GRT), 42(MOV)
0
BOOL
FailToStart.Alm
Motor Failed to Start Alarm Alarm output 1=In Alarm
Alm_FailToStart - P_Motor/EnableInFalse - *11(OTU)
1
BOOL
FailToStart.Ack
Motor Failed to Start Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
FailToStart.Inhibited
Motor Failed to Start Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
FailToStart.Suppressed
Motor Failed to Start Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
FailToStart.Disabled
Motor Failed to Start Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
FailToStart.Sts_AlmInh
Motor Failed to Start Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
FailToStart.Sts_AlmInh - P_Motor/Logic - 41(XIC)
0
BOOL
FailToStart.Sts_Err
Motor Failed to Start Alarm 1=Error in Config: see detail Err_ bits for reason
FailToStart.Sts_Err - P_Motor/Logic - 6(XIC)
0
BOOL
FailToStart.Err_Timer
Motor Failed to Start Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
FailToStart.Err_Severity
Motor Failed to Start Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
FailToStart.Rdy_Reset
Motor Failed to Start Alarm Ready to receive OCmd_Reset (enable button)
FailToStart.Rdy_Reset - P_Motor/Logic - 42(XIC)
0
BOOL
FailToStart.Rdy_Ack
Motor Failed to Start Alarm Ready to receive OCmd_Ack (enable button)
FailToStart.Rdy_Ack - P_Motor/Logic - 42(XIC)
0
BOOL
FailToStart.Rdy_Suppress
Motor Failed to Start Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
FailToStart.Rdy_Unsuppress
Motor Failed to Start Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
FailToStart.Rdy_Disable
Motor Failed to Start Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
FailToStart.Rdy_Enable
Motor Failed to Start Alarm Ready to receive MCmd_Enable (enable button)
FailToStop
Motor Failed to Stop Alarm
Usage:
Local Tag
External Access:
Read/Write
FailToStop - P_Motor/Logic - *38(P_Alarm)
1
FailToStop.EnableIn
Motor Failed to Stop Alarm Enable Input - System Defined Parameter
0
FailToStop.EnableOut
Motor Failed to Stop Alarm Enable Output - System Defined Parameter
1
FailToStop.Inp
Motor Failed to Stop Alarm Alarm Condition Input 1=Alarm
Sts_FailToStop - P_Motor/EnableInFalse - *11(OTU)
Sts_FailToStop - P_Motor/Logic - *28(OTE), 18(XIC), 34(XIC)

P_Alarm

P_Motor

BOOL
BOOL
BOOL

RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Page 34
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

FailToStop (Continued)
0
BOOL
FailToStop.Inp_Reset
Motor Failed to Stop Alarm 1=Reset Alarm requiring reset
1
BOOL
FailToStop.Cfg_Exists
Motor Failed to Stop Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
FailToStop.Cfg_ResetReqd
Motor Failed to Stop Alarm 1=Reset required to clear Alarm
1
BOOL
FailToStop.Cfg_AckReqd
Motor Failed to Stop Alarm 1=Acknowledge required for Alarm
0
BOOL
FailToStop.Cfg_PCmdClear
Motor Failed to Stop Alarm 1=Clear Program Commands on receipt 0=Leave Set
FailToStop.Cfg_PCmdClear - P_Motor/Logic - *36(OTE)
3
SINT
FailToStop.Cfg_Severity
Motor Failed to Stop Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
FailToStop.Cfg_AlmMinOnT
Motor Failed to Stop Alarm Minimum time Alm output stays on (sec)
0
BOOL
FailToStop.PCmd_Reset
Motor Failed to Stop Alarm Program Command to Reset latched alarm
FailToStop.PCmd_Reset - P_Motor/Logic - *18(OTL)
0
BOOL
FailToStop.PCmd_Ack
Motor Failed to Stop Alarm Program Command to Acknowledge alarm
FailToStop.PCmd_Ack - P_Motor/Logic - *18(OTL)
0
BOOL
FailToStop.PCmd_Inhibit
Motor Failed to Stop Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
FailToStop.PCmd_Uninhibit
Motor Failed to Stop Alarm Program Command to Uninhibit alarm
0
BOOL
FailToStop.OCmd_Reset
Motor Failed to Stop Alarm Operator Command to Reset latched alarm
0
BOOL
FailToStop.OCmd_Ack
Motor Failed to Stop Alarm Operator Command to Acknowledge alarm
0
BOOL
FailToStop.OCmd_Suppress
Motor Failed to Stop Alarm Operator Command to Suppress alarm
0
BOOL
FailToStop.OCmd_Unsuppress
Motor Failed to Stop Alarm Operator Command to Unsuppress alarm
0
BOOL
FailToStop.MCmd_Disable
Motor Failed to Stop Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
FailToStop.MCmd_Enable
Motor Failed to Stop Alarm Maintenance Command to Enable alarm
0
SINT
FailToStop.Val_Notify
Motor Failed to Stop Alarm Current Alarm Level and Acknowledgement (enumeration)
FailToStop.Val_Notify - P_Motor/Logic - 42(GRT), 42(MOV)
0
BOOL
FailToStop.Alm
Motor Failed to Stop Alarm Alarm output 1=In Alarm
Alm_FailToStop - P_Motor/EnableInFalse - *11(OTU)
1
BOOL
FailToStop.Ack
Motor Failed to Stop Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
FailToStop.Inhibited
Motor Failed to Stop Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
FailToStop.Suppressed
Motor Failed to Stop Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
FailToStop.Disabled
Motor Failed to Stop Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
FailToStop.Sts_AlmInh
Motor Failed to Stop Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
FailToStop.Sts_AlmInh - P_Motor/Logic - 41(XIC)
0
BOOL
FailToStop.Sts_Err
Motor Failed to Stop Alarm 1=Error in Config: see detail Err_ bits for reason
FailToStop.Sts_Err - P_Motor/Logic - 6(XIC)
0
BOOL
FailToStop.Err_Timer
Motor Failed to Stop Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
FailToStop.Err_Severity
Motor Failed to Stop Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
FailToStop.Rdy_Reset
Motor Failed to Stop Alarm Ready to receive OCmd_Reset (enable button)
FailToStop.Rdy_Reset - P_Motor/Logic - 42(XIC)
0
BOOL
FailToStop.Rdy_Ack
Motor Failed to Stop Alarm Ready to receive OCmd_Ack (enable button)
RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Page 35
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

FailToStop (Continued)
FailToStop.Rdy_Ack - P_Motor/Logic - 42(XIC)
0
BOOL
FailToStop.Rdy_Suppress
Motor Failed to Stop Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
FailToStop.Rdy_Unsuppress
Motor Failed to Stop Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
FailToStop.Rdy_Disable
Motor Failed to Stop Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
FailToStop.Rdy_Enable
Motor Failed to Stop Alarm Ready to receive MCmd_Enable (enable button)
Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

SINT

P_Motor

STRING_16

P_Motor

Local Tag
Read/Write

'P_Motor'
Inf_Type
Type identifier for HMI navigation
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_Motor/Logic - *0(LOWER)
7
Inf_Type.LEN
Type identifier for HMI navigation
Inf_Type.DATA
Type identifier for HMI navigation

DINT
SINT

P_Alarm
IntlkTrip
Interlock Trip Alarm
Usage:
Local Tag
External Access:
Read/Write
IntlkTrip - P_Motor/Logic - *39(P_Alarm)
1
BOOL
IntlkTrip.EnableIn
Interlock Trip Alarm Enable Input - System Defined Parameter
0
BOOL
IntlkTrip.EnableOut
Interlock Trip Alarm Enable Output - System Defined Parameter
1
BOOL
IntlkTrip.Inp
Interlock Trip Alarm Alarm Condition Input 1=Alarm
Sts_IntlkTrip - P_Motor/EnableInFalse - *11(OTU)
Sts_IntlkTrip - P_Motor/Logic - *19(OTE)
0
BOOL
IntlkTrip.Inp_Reset
Interlock Trip Alarm 1=Reset Alarm requiring reset
1
BOOL
IntlkTrip.Cfg_Exists
Interlock Trip Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
IntlkTrip.Cfg_ResetReqd
Interlock Trip Alarm 1=Reset required to clear Alarm
1
BOOL
IntlkTrip.Cfg_AckReqd
Interlock Trip Alarm 1=Acknowledge required for Alarm
0
BOOL
IntlkTrip.Cfg_PCmdClear
Interlock Trip Alarm 1=Clear Program Commands on receipt 0=Leave Set
IntlkTrip.Cfg_PCmdClear - P_Motor/Logic - *36(OTE)
3
SINT
IntlkTrip.Cfg_Severity
Interlock Trip Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
IntlkTrip.Cfg_AlmMinOnT
Interlock Trip Alarm Minimum time Alm output stays on (sec)
0
BOOL
IntlkTrip.PCmd_Reset
Interlock Trip Alarm Program Command to Reset latched alarm
IntlkTrip.PCmd_Reset - P_Motor/Logic - *18(OTL)
0
BOOL
IntlkTrip.PCmd_Ack
Interlock Trip Alarm Program Command to Acknowledge alarm
IntlkTrip.PCmd_Ack - P_Motor/Logic - *18(OTL)
0
BOOL
IntlkTrip.PCmd_Inhibit
Interlock Trip Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
IntlkTrip.PCmd_Uninhibit
Interlock Trip Alarm Program Command to Uninhibit alarm
0
BOOL
IntlkTrip.OCmd_Reset
Interlock Trip Alarm Operator Command to Reset latched alarm
0
BOOL
IntlkTrip.OCmd_Ack

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Page 36
22/12/2015 09,00,12
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

IntlkTrip (Continued)
Interlock Trip Alarm Operator Command to Acknowledge alarm
0
BOOL
IntlkTrip.OCmd_Suppress
Interlock Trip Alarm Operator Command to Suppress alarm
0
BOOL
IntlkTrip.OCmd_Unsuppress
Interlock Trip Alarm Operator Command to Unsuppress alarm
0
BOOL
IntlkTrip.MCmd_Disable
Interlock Trip Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
IntlkTrip.MCmd_Enable
Interlock Trip Alarm Maintenance Command to Enable alarm
0
SINT
IntlkTrip.Val_Notify
Interlock Trip Alarm Current Alarm Level and Acknowledgement (enumeration)
IntlkTrip.Val_Notify - P_Motor/Logic - 42(GRT), 42(MOV)
0
BOOL
IntlkTrip.Alm
Interlock Trip Alarm Alarm output 1=In Alarm
Alm_IntlkTrip - P_Motor/EnableInFalse - *11(OTU)
1
BOOL
IntlkTrip.Ack
Interlock Trip Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
IntlkTrip.Inhibited
Interlock Trip Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
IntlkTrip.Suppressed
Interlock Trip Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
IntlkTrip.Disabled
Interlock Trip Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
IntlkTrip.Sts_AlmInh
Interlock Trip Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
IntlkTrip.Sts_AlmInh - P_Motor/Logic - 41(XIC)
0
BOOL
IntlkTrip.Sts_Err
Interlock Trip Alarm 1=Error in Config: see detail Err_ bits for reason
IntlkTrip.Sts_Err - P_Motor/Logic - 6(XIC)
0
BOOL
IntlkTrip.Err_Timer
Interlock Trip Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
IntlkTrip.Err_Severity
Interlock Trip Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
IntlkTrip.Rdy_Reset
Interlock Trip Alarm Ready to receive OCmd_Reset (enable button)
IntlkTrip.Rdy_Reset - P_Motor/Logic - 42(XIC)
0
BOOL
IntlkTrip.Rdy_Ack
Interlock Trip Alarm Ready to receive OCmd_Ack (enable button)
IntlkTrip.Rdy_Ack - P_Motor/Logic - 42(XIC)
0
BOOL
IntlkTrip.Rdy_Suppress
Interlock Trip Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
IntlkTrip.Rdy_Unsuppress
Interlock Trip Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
IntlkTrip.Rdy_Disable
Interlock Trip Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
IntlkTrip.Rdy_Enable
Interlock Trip Alarm Ready to receive MCmd_Enable (enable button)
IOFault
I/O Fault Alarm
Usage:
Local Tag
External Access:
Read/Write
IOFault - P_Motor/Logic - *40(P_Alarm)
1
IOFault.EnableIn
I/O Fault Alarm Enable Input - System Defined Parameter
0
IOFault.EnableOut
I/O Fault Alarm Enable Output - System Defined Parameter
1
IOFault.Inp
I/O Fault Alarm Alarm Condition Input 1=Alarm
Sts_IOFault - P_Motor/EnableInFalse - *11(OTU)
Sts_IOFault - P_Motor/Logic - *19(OTE), 42(XIO)
0
IOFault.Inp_Reset
I/O Fault Alarm 1=Reset Alarm requiring reset
1
IOFault.Cfg_Exists
I/O Fault Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
IOFault.Cfg_ResetReqd

P_Alarm

P_Motor

BOOL
BOOL
BOOL

BOOL
BOOL
BOOL
RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Page 37
22/12/2015 09,00,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

IOFault (Continued)
I/O Fault Alarm 1=Reset required to clear Alarm
1
BOOL
IOFault.Cfg_AckReqd
I/O Fault Alarm 1=Acknowledge required for Alarm
0
BOOL
IOFault.Cfg_PCmdClear
I/O Fault Alarm 1=Clear Program Commands on receipt 0=Leave Set
IOFault.Cfg_PCmdClear - P_Motor/Logic - *36(OTE)
3
SINT
IOFault.Cfg_Severity
I/O Fault Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
IOFault.Cfg_AlmMinOnT
I/O Fault Alarm Minimum time Alm output stays on (sec)
0
BOOL
IOFault.PCmd_Reset
I/O Fault Alarm Program Command to Reset latched alarm
IOFault.PCmd_Reset - P_Motor/Logic - *18(OTL)
0
BOOL
IOFault.PCmd_Ack
I/O Fault Alarm Program Command to Acknowledge alarm
IOFault.PCmd_Ack - P_Motor/Logic - *18(OTL)
0
BOOL
IOFault.PCmd_Inhibit
I/O Fault Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
IOFault.PCmd_Uninhibit
I/O Fault Alarm Program Command to Uninhibit alarm
0
BOOL
IOFault.OCmd_Reset
I/O Fault Alarm Operator Command to Reset latched alarm
0
BOOL
IOFault.OCmd_Ack
I/O Fault Alarm Operator Command to Acknowledge alarm
0
BOOL
IOFault.OCmd_Suppress
I/O Fault Alarm Operator Command to Suppress alarm
0
BOOL
IOFault.OCmd_Unsuppress
I/O Fault Alarm Operator Command to Unsuppress alarm
0
BOOL
IOFault.MCmd_Disable
I/O Fault Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
IOFault.MCmd_Enable
I/O Fault Alarm Maintenance Command to Enable alarm
0
SINT
IOFault.Val_Notify
I/O Fault Alarm Current Alarm Level and Acknowledgement (enumeration)
IOFault.Val_Notify - P_Motor/Logic - 42(GRT), 42(MOV)
0
BOOL
IOFault.Alm
I/O Fault Alarm Alarm output 1=In Alarm
Alm_IOFault - P_Motor/EnableInFalse - *11(OTU)
1
BOOL
IOFault.Ack
I/O Fault Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
IOFault.Inhibited
I/O Fault Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
IOFault.Suppressed
I/O Fault Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
IOFault.Disabled
I/O Fault Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
IOFault.Sts_AlmInh
I/O Fault Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
IOFault.Sts_AlmInh - P_Motor/Logic - 41(XIC)
0
BOOL
IOFault.Sts_Err
I/O Fault Alarm 1=Error in Config: see detail Err_ bits for reason
IOFault.Sts_Err - P_Motor/Logic - 6(XIC)
0
BOOL
IOFault.Err_Timer
I/O Fault Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
IOFault.Err_Severity
I/O Fault Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
IOFault.Rdy_Reset
I/O Fault Alarm Ready to receive OCmd_Reset (enable button)
IOFault.Rdy_Reset - P_Motor/Logic - 42(XIC)
0
BOOL
IOFault.Rdy_Ack
I/O Fault Alarm Ready to receive OCmd_Ack (enable button)
IOFault.Rdy_Ack - P_Motor/Logic - 42(XIC)
0
BOOL
IOFault.Rdy_Suppress
I/O Fault Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
IOFault.Rdy_Unsuppress
I/O Fault Alarm Ready to receive OCmd_Unsuppress (enable button)
RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

IOFault (Continued)
1
IOFault.Rdy_Disable
I/O Fault Alarm Ready to receive MCmd_Disable (enable button)
0
IOFault.Rdy_Enable
I/O Fault Alarm Ready to receive MCmd_Enable (enable button)

Page 38
22/12/2015 09,00,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL

P_Mode
P_Motor
Mode
Motor Mode Selection
Usage:
Local Tag
External Access:
Read/Write
Mode - P_Motor/EnableInFalse - *0(P_Mode)
Mode - P_Motor/Logic - *1(P_Mode)
1
BOOL
Mode.EnableIn
Motor Mode Selection Enable Input - System Defined Parameter
0
BOOL
Mode.EnableOut
Motor Mode Selection Enable Output - System Defined Parameter
0
BOOL
Mode.Inp_Hand
Motor Mode Selection 1=Select Hand (typ. hardwired) Mode
0
BOOL
Mode.Inp_Ovrd
Motor Mode Selection 1=Select Override (typ. Process/Safety Interlock) Mode
1
BOOL
Mode.Cfg_PCmdClear
Motor Mode Selection 1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds
Cfg_PCmdClear - P_Motor/EnableInFalse - 0(XIC), 0(XIO), 2(XIC)
Cfg_PCmdClear - P_Motor/Logic - 18(XIC), 21(XIC), 22(XIC), 22(XIO), 36(XIC)
Cfg_PCmdClear - P_Motor/Prescan - 1(XIC)
1
BOOL
Mode.Cfg_OvrdOverLock
Motor Mode Selection 1=Override supersedes Prog/Oper Lock, 0=don't override Lock
0
BOOL
Mode.Cfg_ProgDefault
Motor Mode Selection Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
0
BOOL
Mode.PCmd_Acq
Motor Mode Selection Program Command to Acquire Ownership (Oper to Prog)
0
BOOL
Mode.PCmd_Rel
Motor Mode Selection Program Command to Release Ownership (Prog to Oper)
0
BOOL
Mode.PCmd_Lock
Motor Mode Selection Program Command to Lock Mode in Prog
0
BOOL
Mode.PCmd_Unlock
Motor Mode Selection Program Command to Unlock Mode
0
BOOL
Mode.MCmd_Acq
Motor Mode Selection Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)
0
BOOL
Mode.MCmd_Rel
Motor Mode Selection Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)
0
BOOL
Mode.OCmd_AcqLock
Motor Mode Selection Operator Command to Acquire and Lock Mode in Oper
0
BOOL
Mode.OCmd_Unlock
Motor Mode Selection Operator Command to Unlock Operator Mode
0
DINT
Mode.Val
Motor Mode Selection Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
0
BOOL
Mode.Sts_Hand
Motor Mode Selection 1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Mode.Sts_Hand - P_Motor/Logic - 24(XIC), 32(XIO), 33(XIO), 7(XIC)
0
BOOL
Mode.Sts_Maint
Motor Mode Selection 1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Mode.Sts_Maint - P_Motor/Logic - 11(XIC), 18(XIC), 19(XIO), 21(XIC), 22(XIC), 25(XIO), 27(XIO), 35(XIC)
0
BOOL
Mode.Sts_Ovrd
Motor Mode Selection 1=Mode is Override (supersedes Prog, Oper)
Mode.Sts_Ovrd - P_Motor/Logic - 11(XIC), 21(XIC), 22(XIC)
0
BOOL
Mode.Sts_Prog
Motor Mode Selection 1=Mode is Program
Mode.Sts_Prog - P_Motor/Logic - 20(XIC), 21(XIC), 22(XIC)
1
BOOL
Mode.Sts_Oper
Motor Mode Selection 1=Mode is Operator
Mode.Sts_Oper - P_Motor/Logic - 18(XIC), 19(XIO), 21(XIC), 22(XIC), 35(XIC)
0
BOOL
Mode.Sts_ProgOperLock
Motor Mode Selection 1=Program or Operator has requested Mode Lock
0
BOOL
Mode.Sts_ProgOperSel
Motor Mode Selection Prog/Oper selection 1=Program, 0=Operator
0
BOOL
Mode.Sts_NoMode
RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Mode (Continued)
Motor Mode Selection 1=Mode is NO mode (no owner)
0
Mode.Rdy_Acq
Motor Mode Selection 1=Ready for MCmd_Acq
0
Mode.Rdy_Rel
Motor Mode Selection 1=Ready for MCmd_Rel
Mode.Rdy_Rel - P_Motor/Logic - 14(XIC), 15(XIC), 17(XIC)
1
Mode.Rdy_AcqLock
Motor Mode Selection 1=Ready for OCmd_AcqLock
0
Mode.Rdy_Unlock
Motor Mode Selection 1=Ready for OCmd_Unlock

Page 39
22/12/2015 09,00,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL
BOOL
BOOL

0
BOOL
Wrk_Bypass
Internal Bypassable Permissives and Interlocks are Bypassed flag
Usage:
Local Tag
External Access:
None
Wrk_Bypass - P_Motor/Logic - *10(OTU), *9(OTL), 11(XIC), 13(XIC), 13(XIO)

P_Motor

0
Wrk_Cmd
Buffer for building Val_Cmd
Usage:
Local Tag
External Access:
None
Wrk_Cmd - P_Motor/Logic - *31(CLR), *31(MOV), 31(MOV)

P_Motor

SINT

0
BOOL
Wrk_Disabled
Internal Motor is Disabled
Usage:
Local Tag
External Access:
None
Wrk_Disabled - P_Motor/Logic - *14(OTL), *15(OTU), 16(XIC), 17(XIC), 17(XIO)

P_Motor

0
BOOL
Wrk_FailToStart
Fail to Start Fault (latched) stops motor and requires reset
Usage:
Local Tag
External Access:
None
Wrk_FailToStart - P_Motor/EnableInFalse - *8(OTU)
Wrk_FailToStart - P_Motor/Logic - *18(OTU), *29(OTL), 19(XIC), 30(XIC), 34(XIC), 42(XIC)
Wrk_FailToStart - P_Motor/Prescan - *4(OTU)

P_Motor

0
Wrk_Fault
Buffer for building Val_Fault
Usage:
Local Tag
External Access:
None
Wrk_Fault - P_Motor/Logic - *34(CLR), *34(MOV), 34(MOV)

P_Motor

SINT

0
BOOL
Wrk_IOFault
I/O Fault (latched) stops motor and requires reset
Usage:
Local Tag
External Access:
None
Wrk_IOFault - P_Motor/EnableInFalse - *8(OTU)
Wrk_IOFault - P_Motor/Logic - *18(OTU), *19(OTL), 19(XIC), 30(XIC), 34(XIC), 42(XIC)
Wrk_IOFault - P_Motor/Prescan - *4(OTU)

P_Motor

0
DINT
Wrk_Notify
Buffer for building Val_Notify
Usage:
Local Tag
External Access:
None
Wrk_Notify - P_Motor/Logic - *42(CLR), *42(MOV), 42(GRT), 42(MOV)
0
BOOL
Wrk_Notify.0
Buffer for building Val_Notify
Wrk_Notify.0 - P_Motor/Logic - *42(OTE)

P_Motor

0
BOOL
Wrk_Retrigger
Maint Start issued while running or Stop while stopped
Usage:
Local Tag
External Access:
None
Wrk_Retrigger - P_Motor/Logic - *21(OTL), *22(OTL), *25(OTU), *27(OTU), 31(XIC), 32(XIC)

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Page 40
22/12/2015 09,00,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
BOOL
P_Motor
Wrk_Run
1=Motor should be "running", 0=should be "stopped"
Usage:
Local Tag
External Access:
None
Wrk_Run - P_Motor/EnableInFalse - *8(OTU)
Wrk_Run - P_Motor/Logic - *21(OTL), *22(OTU), *23(OTU), *24(OTL), *24(OTU), *30(OTU), 19(XIC), 21(XIC), 22(XIO), 25(XIC),
27(XIO), 31(XIC), 31(XIO), 32(XIC), 32(XIO), 33(XIC), 33(XIO)
Wrk_Run - P_Motor/Prescan - *4(OTU)
0
BOOL
P_Motor
Wrk_RunFdbk
Run Feedback based on mode, simulation, etc. 1=running
Usage:
Local Tag
External Access:
None
Wrk_RunFdbk - P_Motor/Logic - *7(OTL), *7(OTU), 24(XIC), 24(XIO), 26(XIO), 28(XIC), 31(XIC), 31(XIO), 32(XIC), 32(XIO), 33(XIC),
33(XIO), 8(XIC), 8(XIO)
Wrk_SimRunT
Simulation Delay until Running
Usage:
Local Tag
External Access:
None
Wrk_SimRunT - P_Motor/EnableInFalse - *8(RES)
Wrk_SimRunT - P_Motor/Logic - *21(RES), *25(TON)
Wrk_SimRunT - P_Motor/Prescan - *4(RES)
0
Wrk_SimRunT.PRE
Simulation Delay until Running
Wrk_SimRunT.PRE - P_Motor/Logic - *5(CLR), *5(MUL), 5(MOV)
0
Wrk_SimRunT.PRE.31
Simulation Delay until Running
Wrk_SimRunT.PRE.31 - P_Motor/Logic - 5(XIC)
0
Wrk_SimRunT.ACC
Simulation Delay until Running
0
Wrk_SimRunT.EN
Simulation Delay until Running
0
Wrk_SimRunT.TT
Simulation Delay until Running
0
Wrk_SimRunT.DN
Simulation Delay until Running
Wrk_SimRunT.DN - P_Motor/Logic - 25(XIC), 7(XIC)

TIMER

Wrk_SimStopT
Simulation Delay until Stopped
Usage:
Local Tag
External Access:
None
Wrk_SimStopT - P_Motor/EnableInFalse - *8(RES)
Wrk_SimStopT - P_Motor/Logic - *22(RES), *27(TON)
Wrk_SimStopT - P_Motor/Prescan - *4(RES)
0
Wrk_SimStopT.PRE
Simulation Delay until Stopped
Wrk_SimStopT.PRE - P_Motor/Logic - *5(MOV)
0
Wrk_SimStopT.ACC
Simulation Delay until Stopped
0
Wrk_SimStopT.EN
Simulation Delay until Stopped
0
Wrk_SimStopT.TT
Simulation Delay until Stopped
0
Wrk_SimStopT.DN
Simulation Delay until Stopped
Wrk_SimStopT.DN - P_Motor/Logic - 27(XIC), 7(XIC)

TIMER

Wrk_StartT
Start Check Timer
Usage:
Local Tag
External Access:
None
Wrk_StartT - P_Motor/EnableInFalse - *8(RES)
Wrk_StartT - P_Motor/Logic - *18(RES), *25(TON)
Wrk_StartT - P_Motor/Prescan - *4(RES)
0
Wrk_StartT.PRE

TIMER

P_Motor

DINT
BOOL
DINT
BOOL
BOOL
BOOL

P_Motor

DINT
DINT
BOOL
BOOL
BOOL

P_Motor

DINT
RSLogix 5000

P_Motor Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Data Context: P_Motor <definition>

Wrk_StartT (Continued)
Start Check Timer
Wrk_StartT.PRE - P_Motor/Logic - *4(MOV), *4(MUL)
0
Wrk_StartT.PRE.31
Start Check Timer
Wrk_StartT.PRE.31 - P_Motor/Logic - 4(XIC)
0
Wrk_StartT.ACC
Start Check Timer
0
Wrk_StartT.EN
Start Check Timer
0
Wrk_StartT.TT
Start Check Timer
0
Wrk_StartT.DN
Start Check Timer
Wrk_StartT.DN - P_Motor/Logic - 26(XIC)

Page 41
22/12/2015 09,00,13
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
DINT
BOOL
BOOL
BOOL

Wrk_StopT
Stop Check Timer
Usage:
Local Tag
External Access:
None
Wrk_StopT - P_Motor/EnableInFalse - *8(RES)
Wrk_StopT - P_Motor/Logic - *18(RES), *27(TON)
Wrk_StopT - P_Motor/Prescan - *4(RES)
0
Wrk_StopT.PRE
Stop Check Timer
Wrk_StopT.PRE - P_Motor/Logic - *4(MOV), *4(MUL)
0
Wrk_StopT.PRE.31
Stop Check Timer
Wrk_StopT.PRE.31 - P_Motor/Logic - 4(XIC)
0
Wrk_StopT.ACC
Stop Check Timer
0
Wrk_StopT.EN
Stop Check Timer
0
Wrk_StopT.TT
Stop Check Timer
0
Wrk_StopT.DN
Stop Check Timer
Wrk_StopT.DN - P_Motor/Logic - 28(XIC)

TIMER

0
Wrk_Sts
Buffer for building Val_Sts
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_Motor/Logic - *34(CLR), *34(MOV), 34(MOV)

SINT

P_Motor

DINT
BOOL
DINT
BOOL
BOOL
BOOL

P_Motor

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 42
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
P_Motor: PROCESS -- MOTOR (single speed, on/off)
============================================================
Revision 2.0-04 Release 2013-03-15
V2.0-00 2011-09-30: Added Val_Cmd, Val_Fdbk, Val_Sts, Val_Mode,
Val_Fault. Added Cfg_OCmdResets, Cfg_ShedOnFailToStart,
Cfg_ShedOnIOFault. Added logic for Sts_AlmInh, Sts_MaintByp,
Sts_NotRdy for breadcrumbs. Using P_Alarm, P_Mode 2.0.
Made FailToStart and FailToStop alarms not exist if run feedback does
not exist. Added self-name parameter and Inf_Type.
Fixed resetting of fail timers on Reset command.
Changed Override State to enum Inp_OvrdCmd.
Added OCmd_ResetAckAll, Rdy_ResetAckAll.
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2011-11-10: Modified Sts_NotRdy logic to correctly handle shed conditions.
V2.0-02 2012-05-30: Fixed Hand Mode logic to track regardless of Not Ready status.
Added Not Ready check to Out_Start, Out_Run.
Made reset on OCmd handling consistent.
V2.0-03 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01.
Improved handling of timers with presets = 0.
V2.0-04 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction controls and monitors a single-speed motor
(FVNR, soft-start, etc.) and provides:
* Monitoring of run feedback, display of actual motor status
* Detection of Failure to Start, Failure to Stop
* Monitoring of a Permissive condition to allow starting
* Monitoring of an Interlock condition to stop / prevent starting
* Simulation, providing feedback of a working motor while disabling outputs
* Monitoring of I/O communication faults
* Alarms for Fail to Start, Fail to Stop, Interlock Trip, I/O Fault
* Options to shed (stop motor) on Fail to Start or I/O Fault
* Option to automatically reset faults and alarms when operator commands
motor to start or stop
* Supports HMI "breadcrumbs" for Alarm Inhibited, Bad Configuration,
Not Ready, Maintenance Bypass Active
* "Available" status for use by automation logic to know whether motor
can be controlled by other objects.
Modes are provided by a P_Mode Add-On Instruction instance.
Alarms are provided by P_Alarm Add-On Instruction instances.
Modes of operation: Operator, Program, Override, Maintenance, Hand
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
LOWER
Lower Case
Lower Case
Source Cfg_Tag
Dest Inf_Type
Source Cfg_Label
Dest
Cfg_Desc
'P_Motor'
'P_Motor'
'Motor Control'
'Single Speed Motor'

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 43
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
MODE PROCESSING
============================================================
This rung handles received Mode Inputs and Commands:

NOTE: All Commands for Mode, Alarm are aliased directly to the
corresponding Commands in the contained P_Mode and P_Alarm AOIs.
Motor Mode Selection
P_Mode
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock

SkipText
LBL

Signature ID: C1F72CF2

Mode

*1(P_Mode)

This rung handles simple First-Come First-Served Ownership Arbitration.


If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
Current Object Owner
(non-zero) or
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Dest Val_Owner
Source A PSet_Owner
Source PSet_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

2(MOV) 2(NEQ) 2(EQU)

Val_Owner

*2(MOV) 2(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 44
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
CONFIGURATION PROCESSING
============================================================
If the device is configured to not HAVE device feedback input (engineer),
it cannot be USE the feedback for fail checking (maintenance).

1=Motor run feedback


should be used for
failure checking
Cfg_UseRunFdbk
U

1=Motor provides a
run feedback signal
Cfg_HasRunFdbk
/

Cfg_HasRunFdbk

3(XIO) 12(XIC)

Cfg_UseRunFdbk

*3(OTU) 7(XIO) 7(XIC) 12(XIO) 32(XIC) 33(XIC)

These rungs get Configuration data (such as timer presets) and distribute as needed.
Note that some Configuration data are used directly in-place.
Enter the time (in seconds) for the motor to successfully start before declaring a fault.
Enter the time (in seconds) for the motor to successfully stop before declaring a fault.
If the timer preset calcuated wraps negative (more than 2.14... million seconds), then use a default
limit value and report Bad Configuration. Note that a negative timer preset will fault the controller!!!
##### V2.0-03 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####

Start Check Timer


Wrk_StartT.PRE.31

Start Check Timer


MUL
Multiply
Source A Cfg_FailToStartT
10
Source B
1000

1=Error in Config:
Start/Stop Check
timer preset (use 0
to 2147483)
Err_Timer

Dest Wrk_StartT.PRE
0

Start Check Timer


MOV
Move
Source 2147483647

Dest Wrk_StartT.PRE
0

Stop Check Timer


Wrk_StopT.PRE.31

Stop Check Timer


MUL
Multiply
Source A Cfg_FailToStopT
10
Source B
1000

Dest Wrk_StopT.PRE
0

Stop Check Timer


MOV
Move
Source 2147483647

Cfg_FailToStartT

4(MUL)

Cfg_FailToStopT

4(MUL)

Dest Wrk_StopT.PRE
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!
Err_Timer

*4(OTE) 6(XIC)

Wrk_StartT.PRE

*4(MUL) *4(MOV)

Wrk_StartT.PRE.31

4(XIC)

Wrk_StopT.PRE

*4(MOV) *4(MUL)

Wrk_StopT.PRE.31

4(XIC)

Page 45
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Enter the time (in seconds) to echo back the desired state when running in simulation
Handle timer preset invalid values as above.
##### V2.0-03 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####
Simulation Delay
until Running
Wrk_SimRunT.PRE.31

Simulation Delay
until Running
MUL
Multiply
Source A Cfg_SimFdbkT
2
Source B
1000

Dest Wrk_SimRunT.PRE
0

Simulation Delay
until Running
CLR
Clear
Dest Wrk_SimRunT.PRE
0

1=Error in Config:
Simulation timer
preset (use 0 to
2147483)
Err_Sim

Simulation Delay
until Stopped
MOV
Move
Source Wrk_SimRunT.PRE
0

Cfg_SimFdbkT

5(MUL)

Err_Sim

*5(OTE) 6(XIC)

Wrk_SimRunT.PRE

*5(CLR) *5(MUL) 5(MOV)

Wrk_SimRunT.PRE.31

5(XIC)

Wrk_SimStopT.PRE

*5(MOV)

Dest Wrk_SimStopT.PRE
0

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 46
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


This rung generates a summary Bad Config status, simply an OR of the individual bits provided above
(in the Configuration handling section).
1=Error in Config:
Start/Stop Check
1=Error in Config:
timer preset (use 0
see detail bits for
to 2147483)
reason
Err_Timer
Sts_Err
6
1=Error in Config:
Simulation timer
preset (use 0 to
2147483)
Err_Sim
Motor Failed to
Start Alarm 1=Error
in Config: see
detail Err_ bits for
reason
FailToStart.Sts_Err

1=Error in Config:
Alarm Throttle Time
or Severity
Err_Alarm

Motor Failed to Stop


Alarm 1=Error in
Config: see detail
Err_ bits for reason
FailToStop.Sts_Err
Interlock Trip Alarm
1=Error in Config:
see detail Err_ bits
for reason
IntlkTrip.Sts_Err
I/O Fault Alarm
1=Error in Config:
see detail Err_ bits
for reason
IOFault.Sts_Err

Err_Alarm

*6(OTE)

Err_Sim

*5(OTE) 6(XIC)

Err_Timer

*4(OTE) 6(XIC)

FailToStart.Sts_Err

6(XIC)

FailToStop.Sts_Err

6(XIC)

IntlkTrip.Sts_Err

6(XIC)

IOFault.Sts_Err

6(XIC)

Sts_Err

*6(OTE) 19(XIC) 34(XIC)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 47
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
DEVICE FEEDBACK PROCESSING
============================================================
If the device is being simulated or has no feedback,
use the simulation timers to provide "fake" feedback.
If the motor is NOT being simulated and it HAS and IS USING a run feedback,
use the state of the run feedback input as the motor run state.
1=Simulate working
Run Feedback based
motor; 0=Start/Stop/
Simulation Delay
on mode, simulation,
Monitor actual motor
until Running
etc. 1=running
Inp_Sim
Wrk_SimRunT.DN
Wrk_RunFdbk
L

1=Motor run feedback


should be used for
failure checking
Cfg_UseRunFdbk
/
1=Simulate working
motor; 0=Start/Stop/
Monitor actual motor
Inp_Sim
/

1=Motor run feedback


should be used for
failure checking
Cfg_UseRunFdbk

Simulation Delay
until Stopped
Wrk_SimStopT.DN

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
U

Input Signal: RUN


feedback from motor
Inp_RunFdbk

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
L

Input Signal: RUN


feedback from motor
Inp_RunFdbk
/
Motor Mode Selection
1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
Mode.Sts_Hand
<Sts_Hand>

1=Motor run feedback


should be used for
failure checking
Cfg_UseRunFdbk
/

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
U

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
U

Cfg_UseRunFdbk

*3(OTU) 7(XIC) 7(XIO) 12(XIO) 32(XIC) 33(XIC)

Inp_RunFdbk

7(XIO) 7(XIC)

Inp_Sim

7(XIC) 7(XIO) 19(XIO) 32(XIO)

Mode.Sts_Hand

7(XIC) 24(XIC) 32(XIO) 33(XIO)

Wrk_RunFdbk

*7(OTL) *7(OTU) 8(XIO) 8(XIC) 24(XIC) 24(XIO) 26(XIO) 28(XIC) 31(XIO) 31(XIC) 32(XIO) 32(XIC) 33(XIO) 33(XIC)

Wrk_SimRunT.DN

7(XIC) 25(XIC)

Wrk_SimStopT.DN

7(XIC) 27(XIC)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 48
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


Val_Fdbk is the current state of the device feedback, as seen on the AOI's Inputs:
0 = Stopped
1 = Running
Run Feedback based
on mode, simulation,
Device Feedback
etc. 1=running
0=Stopped, 1=Running
Wrk_RunFdbk
CLR
/
Clear
Dest
Val_Fdbk
0

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk

Device Feedback
0=Stopped, 1=Running
MOV
Move
Source

Dest Val_Fdbk
0

Val_Fdbk

*8(MOV) *8(CLR)

Wrk_RunFdbk

*7(OTL) *7(OTU) 8(XIC) 8(XIO) 24(XIC) 24(XIO) 26(XIO) 28(XIC) 31(XIO) 31(XIC) 32(XIO) 32(XIC) 33(XIO) 33(XIC)

Operator Command to
Bypass all
Bypassable
Interlocks and
Permissives
OCmd_Bypass
9

============================================================
INTERLOCK / PERMISSIVE BYPASS / CHECK COMMAND HANDLING
============================================================
The Bypass Command bypasses the Bypassable Permissives and Interlocks.
Operator Command to
Bypass all
Bypassable
Interlocks and
Permissives
OCmd_Bypass
U

OCmd_Bypass

*9(OTU) 9(XIC)

Wrk_Bypass

*9(OTL) *10(OTU) 11(XIC) 13(XIO) 13(XIC)

Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
10

The Check Command enables checking of ALL


Permissives and Interlocks (cancels the bypass).
Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
U

OCmd_Check

*10(OTU) 10(XIC)

Wrk_Bypass

*9(OTL) *10(OTU) 11(XIC) 13(XIO) 13(XIC)

Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass
L

Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass
U

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 49
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


If the internal Bypass flag is set, Bypassable Interlocks and Permissives ARE BYPASSED.
Bypassing is ACTIVE if Bypass selected OR in Maintenance Mode,
or in Override Mode if Override Bypassing is configured.
Internal Bypassable
1=Bypassable
1=Bypassing Active
Permissives and
Interlocks and
(Bypassed or
Interlocks are
Permissives are
Maintenance)
Bypassed flag
Bypassed
Sts_BypActive
Wrk_Bypass
Sts_Bypass
11
Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
Motor Mode Selection
1=Mode is Override
(supersedes Prog,
Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

Cfg_OvrdPermIntlk

11(XIC)

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Mode.Sts_Ovrd

11(XIC) 21(XIC) 22(XIC)

Sts_BypActive

*11(OTE) 19(XIO)

Sts_Bypass

*11(OTE) 12(XIC)

Wrk_Bypass

*9(OTL) *10(OTU) 11(XIC) 13(XIO) 13(XIC)

1=Override ignores
Bypassable Perm/
Intlk; 0=always use
Perm/Intlk
Cfg_OvrdPermIntlk

If a Maintenance Bypass function is active, display the Maintenance Bypass


Indicator (triangle symbol) on the graphic symbol. Bypass functions are:
* Interlock / Permissive Bypass function is enabled
* Motor HAS run feedback designated by engineer, but
maintenance has selected to NOT USE run feedback
1=Bypassable
Interlocks and
Permissives are
Bypassed
Sts_Bypass

1=A Maintenance
Bypass is Active,
display icon
Sts_MaintByp

12
1=Motor provides a
run feedback signal
Cfg_HasRunFdbk

1=Motor run feedback


should be used for
failure checking
Cfg_UseRunFdbk
/

Cfg_HasRunFdbk

3(XIO) 12(XIC)

Cfg_UseRunFdbk

*3(OTU) 7(XIO) 7(XIC) 12(XIO) 32(XIC) 33(XIC)

Sts_Bypass

*11(OTE) 12(XIC)

Sts_MaintByp

*12(OTE)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 50
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Ready for Interlock / Permissive Bypass if not bypassed.


Ready to cancel Bypass (resume checking) if bypassed.
Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass
/

13

Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass

Rdy_Bypass

*13(OTE)

Rdy_Check

*13(OTE)

Wrk_Bypass

*9(OTL) *10(OTU) 11(XIC) 13(XIO) 13(XIC)

Maintenance Command
to Disable Motor
MCmd_Disable
14

14(XIC) *14(OTU)

Mode.Rdy_Rel

14(XIC) 15(XIC) 17(XIC)

Wrk_Disabled

*14(OTL) *15(OTU) 16(XIC) 17(XIC) 17(XIO)

15

1=Ready to receive
OCmd_Check (enables
HMI button)
Rdy_Check

============================================================
DEVICE DISABLE/ENABLE COMMAND HANDLING
============================================================
The Disable Command disables the Device.
Maintenance Command
Motor Mode Selection
to Disable Motor
1=Ready for MCmd_Rel
MCmd_Disable
Mode.Rdy_Rel
U

MCmd_Disable

Maintenance Command
to Enable (allow to
run) Motor
MCmd_Enable

1=Ready to receive
OCmd_Bypass (enables
HMI button)
Rdy_Bypass

The Enable Command cancels the Disable and enables the Device.
Maintenance Command
Motor Mode Selection
to Enable (allow to
1=Ready for MCmd_Rel
run) Motor
MCmd_Enable
Mode.Rdy_Rel
U

MCmd_Enable

15(XIC) *15(OTU)

Mode.Rdy_Rel

14(XIC) 15(XIC) 17(XIC)

Wrk_Disabled

*14(OTL) *15(OTU) 16(XIC) 17(XIC) 17(XIO)

Internal Motor is
Disabled
Wrk_Disabled
L

Internal Motor is
Disabled
Wrk_Disabled
U

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 51
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


If the internal Disabled flag is set, the motor is DISABLED.
Internal Motor is
Disabled
Wrk_Disabled

1=Motor is Disabled
Sts_Disabled

16

Sts_Disabled

*16(OTE) 19(XIC) 34(XIC)

Wrk_Disabled

*14(OTL) *15(OTU) 16(XIC) 17(XIO) 17(XIC)

Ready to Disable device if in Maintenance Mode and device is NOT Disabled.


Ready to Enable device if in Maintenance Mode and device IS Disabled.
Motor Mode Selection
1=Ready for MCmd_Rel
Mode.Rdy_Rel
17

Internal Motor is
Disabled
Wrk_Disabled
/
Internal Motor is
Disabled
Wrk_Disabled

Mode.Rdy_Rel

14(XIC) 15(XIC) 17(XIC)

Rdy_Disable

*17(OTE)

Rdy_Enable

*17(OTE)

Wrk_Disabled

*14(OTL) *15(OTU) 16(XIC) 17(XIC) 17(XIO)

1=Ready to receive
MCmd_Disable
(enables HMI button)
Rdy_Disable
1=Ready to receive
MCmd_Enable (enables
HMI button)
Rdy_Enable

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 52
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
This rung processes received Reset Commands from:
1. The Operator via HMI Operator Command, or
2. Higher-level strategies via Program Command
3. Pushbuttons or other block via Input
4. Resets initiated by other device Operator Commands (if configured to do so)
and forwards the Reset to ALL Alarms and latched Shed conditions.
Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

18

Operator Command to
Start Motor
OCmd_Start

1=New Oper motor


cmd. resets fault,
0=reset req'd to
clear fault
Cfg_OCmdResets

Operator Command to
Stop Motor
OCmd_Stop

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll

Motor Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Motor Failed to
Start Alarm Program
Command to
Acknowledge alarm
FailToStart.PCmd_Ack
<PCmd_FailToStartAck>
L
Motor Failed to Stop
Alarm Program
Command to
Acknowledge alarm
FailToStop.PCmd_Ack
<PCmd_FailToStopAck>
L
Interlock Trip Alarm
Program Command to
Acknowledge alarm
IntlkTrip.PCmd_Ack
<PCmd_IntlkTripAck>
L
I/O Fault Alarm
Program Command to
Acknowledge alarm
IOFault.PCmd_Ack
<PCmd_IOFaultAck>
L

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U
NOP

1=Reset all fault


conditions and
latched Alarms
Inp_Reset

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 53
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


Motor Failed to
Start Alarm Program
Command to Reset
latched alarm
FailToStart.PCmd_Reset
L

Motor Failed to Stop


Alarm Program
Command to Reset
latched alarm
FailToStop.PCmd_Reset
L

Interlock Trip Alarm


Program Command to
Reset latched alarm
IntlkTrip.PCmd_Reset
L

I/O Fault Alarm


Program Command to
Reset latched alarm
IOFault.PCmd_Reset
L

1=Motor Failed to
Start (one-shot)
Sts_FailToStart
<FailToStart.Inp>

Start Check Timer


Wrk_StartT
RES

1=Motor Failed to
Stop
Sts_FailToStop
<FailToStop.Inp>

Stop Check Timer


Wrk_StopT
RES
Fail to Start Fault
(latched) stops
motor and requires
reset
Wrk_FailToStart
U

Cfg_OCmdResets

18(XIC) 19(XIO)

Cfg_PCmdClear

18(XIC) 21(XIC) 22(XIO) 22(XIC) 36(XIC)

FailToStart.PCmd_Ack

*18(OTL)

I/O Fault (latched)


stops motor and
requires reset
Wrk_IOFault
U

Start Check Timer


Wrk_StartT
RES

Stop Check Timer


Wrk_StopT
RES

FailToStart.PCmd_Reset *18(OTL)
FailToStop.PCmd_Ack

*18(OTL)

FailToStop.PCmd_Reset *18(OTL)
Inp_Reset

18(XIC)

IntlkTrip.PCmd_Ack

*18(OTL)

IntlkTrip.PCmd_Reset

*18(OTL)

IOFault.PCmd_Ack

*18(OTL)

IOFault.PCmd_Reset

*18(OTL)

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Mode.Sts_Oper

18(XIC) 19(XIO) 21(XIC) 22(XIC) 35(XIC)

OCmd_Reset

*18(OTU) 18(XIC)

OCmd_ResetAckAll

*18(OTU) 18(XIC)

OCmd_Start

18(XIC) 21(XIC) *21(OTU)

OCmd_Stop

18(XIC) *22(OTU) 22(XIC)

PCmd_Reset

*18(OTU) 18(XIC)

Sts_FailToStart

18(XIC) *26(OTE) 29(XIC) 42(XIO)

Sts_FailToStop

18(XIC) *28(OTE) 34(XIC)

Wrk_FailToStart

*18(OTU) 19(XIC) *29(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_IOFault

*18(OTU) *19(OTL) 19(XIC) 30(XIC) 34(XIC) 42(XIC)

Wrk_StartT

*18(RES) *25(TON)

Wrk_StopT

*18(RES) *27(TON)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 54
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
MOTOR START / STOP COMMAND HANDLING
============================================================
The Motor is NOT READY TO RUN if:
* Interlocks are not OK and not bypassed;
* Non-bypassable Interlocks are not OK;
* Permissives are not OK and not bypassed,
or Non-Bypassable Permissives are not OK,
and the motor is not already starting or running;
* There's an I/O failure and the motor is NOT being simulated;
* The motor has a Fail to Start or Fail to Stop that has not been reset;
* The motor is disabled by Maintenance.
1=Motor is Disabled
Sts_Disabled
19
1=Error in Config:
see detail bits for
reason
Sts_Err

1=Interlocks OK,
motor can start/run
Inp_IntlkOK
/

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run

1=Motor stopped by
an Interlock NOT OK
(one-shot)
Sts_IntlkTrip
<IntlkTrip.Inp>

1=Non-Bypassable
Interlocks OK, motor
can start/run
Inp_NBIntlkOK
/
1=Permissives OK,
motor can start
Inp_PermOK
/

NOP

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

1=Motor requested to
run and awaiting run
feedback
Sts_Starting
/

1=Motor requested to
run and is confirmed
running
Sts_Running
/

1=Non-Bypassable
Permissives OK,
motor can start
Inp_NBPermOK
/

Input Communication
Status 0=OK, 1=fail
Inp_IOFault

Fail to Start Fault


(latched) stops
motor and requires
reset
Wrk_FailToStart
I/O Fault (latched)
stops motor and
requires reset
Wrk_IOFault

1=Simulate working
motor; 0=Start/Stop/
Monitor actual motor
Inp_Sim
/

I/O Comm Fault


Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>

Motor Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
/

1=Stop Motor and


Alarm on I/O Fault;
0=Alarm only on I/O
Fault
Cfg_ShedOnIOFault

I/O Fault (latched)


stops motor and
requires reset
Wrk_IOFault
L

Motor Mode Selection


1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

1=New Oper motor


cmd. resets fault,
0=reset req'd to
clear fault
Cfg_OCmdResets
/

1=Motor is Not Ready


to Run (independent
of Mode)
Sts_NotRdy

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 55
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_OCmdResets

18(XIC) 19(XIO)

Cfg_ShedOnIOFault

19(XIC)

Inp_IntlkOK

19(XIO)

Inp_IOFault

19(XIC)

Inp_NBIntlkOK

19(XIO)

Inp_NBPermOK

19(XIO)

Inp_PermOK

19(XIO)

Inp_Sim

7(XIO) 7(XIC) 19(XIO) 32(XIO)

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Mode.Sts_Oper

18(XIC) 19(XIO) 21(XIC) 22(XIC) 35(XIC)

Sts_BypActive

*11(OTE) 19(XIO)

Sts_Disabled

*16(OTE) 19(XIC) 34(XIC)

Sts_Err

*6(OTE) 19(XIC) 34(XIC)

Sts_IntlkTrip

*19(OTE)

Sts_IOFault

*19(OTE) 42(XIO)

Sts_NotRdy

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIC) 32(XIO) 35(XIO)

Sts_Running

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Sts_Starting

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Wrk_FailToStart

*18(OTU) 19(XIC) *29(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_IOFault

*18(OTU) *19(OTL) 19(XIC) 30(XIC) 34(XIC) 42(XIC)

Wrk_Run

19(XIC) *21(OTL) 21(XIC) *22(OTU) 22(XIO) *23(OTU) *24(OTU) *24(OTL) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIC)
32(XIO) 33(XIC) 33(XIO)

Motor Mode Selection


1=Mode is Program
Mode.Sts_Prog
<Sts_Prog>
20

The motor is AVAILABLE to be run by automation if it is in PROGRAM


Mode and the "Not Ready" status is cleared.
1=Motor is Not Ready
to Run (independent
of Mode)
Sts_NotRdy
/

Mode.Sts_Prog

20(XIC) 21(XIC) 22(XIC)

Sts_Available

*20(OTE)

Sts_NotRdy

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIC) 32(XIO) 35(XIO)

1=Motor available
for control by
automation (Prog)
Sts_Available

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 56
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


These next several rungs, in priority order, determine whether
the Motor should be running, jogging or stopped.

Operator Command to
Start Motor
OCmd_Start
21

Operator Command to
Start Motor
OCmd_Start
U

If a Motor START command is received in Operator, Program or Mainte


Mode, or if in Override Mode and the Override State is RUN, mark the Moto
Permissives must be OK or bypassed to start the Motor (Interlocks are check
(Modes are mutually exclusive, thus handling the priority.)
Motor Mode Selection
1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run

Program Command to
Start Motor
PCmd_Start

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Start Motor
PCmd_Start
U

Maint Start issued


while running or
Stop while stopped
Wrk_Retrigger
L

Sim

Motor Mode Selection


1=Mode is Program
Mode.Sts_Prog
<Sts_Prog>

NOP

Override Mode
Command: 0=None,
1=Stop, 2=Start
EQU
Equal
Source A Inp_OvrdCmd
0
Source B
2

Override Mode
Command: 0=None,
1=Stop, 2=Start
CLR
Clear
Dest
Inp_OvrdCmd
0

Motor Mode Selection


1=Mode is Override
(supersedes Prog,
Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

Cfg_PCmdClear

18(XIC) 21(XIC) 22(XIC) 22(XIO) 36(XIC)

Inp_OvrdCmd

21(EQU) *21(CLR) 22(EQU) *22(CLR)

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Mode.Sts_Oper

18(XIC) 19(XIO) 21(XIC) 22(XIC) 35(XIC)

Mode.Sts_Ovrd

11(XIC) 21(XIC) 22(XIC)

Mode.Sts_Prog

20(XIC) 21(XIC) 22(XIC)

OCmd_Start

18(XIC) *21(OTU) 21(XIC)

PCmd_Start

*21(OTU) 21(XIC) 22(XIO)

Sts_NotRdy

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIC) 32(XIO) 35(XIO)

Wrk_Retrigger

*21(OTL) *22(OTL) *25(OTU) *27(OTU) 31(XIC) 32(XIC)

Wrk_Run

19(XIC) *21(OTL) 21(XIC) *22(OTU) 22(XIO) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIC)
32(XIO) 33(XIC) 33(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!
Wrk_SimRunT

Page 57
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*21(RES) *25(TON)

or, Program or Maintenance


s RUN, mark the Motor to RUN.
(Interlocks are checked below...).
1=Motor is Not Ready
to Run (independent
of Mode)
Sts_NotRdy
/

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
L

NOP
Simulation Delay
until Running
Wrk_SimRunT
RES

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Operator Command to
Stop Motor
OCmd_Stop
22

Page 58
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


If a Motor STOP command is received in Operator, Program or Maintenance
Mode, or if in Override Mode and the Override State is STOP,
mark the Motor TO STOP (jogging or running).
Motor Mode Selection
Operator Command to
1=Mode is Operator
Stop Motor
Mode.Sts_Oper
OCmd_Stop
<Sts_Oper>
U
Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
/

Program Command to
Stop Motor
PCmd_Stop

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Stop Motor
PCmd_Stop
U

Maint Start issued


while running or
Stop while stopped
Wrk_Retrigger
L

Sim

Motor Mode Selection


1=Mode is Program
Mode.Sts_Prog
<Sts_Prog>

NOP

Program Command to
Start Motor
PCmd_Start
/

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>
/

Override Mode
Command: 0=None,
1=Stop, 2=Start
EQU
Equal
Source A Inp_OvrdCmd
0
Source B
1

Override Mode
Command: 0=None,
1=Stop, 2=Start
CLR
Clear
Dest
Inp_OvrdCmd
0

Cfg_PCmdClear

18(XIC) 21(XIC) 22(XIO) 22(XIC) 36(XIC)

Inp_OvrdCmd

*21(CLR) 21(EQU) 22(EQU) *22(CLR)

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Mode.Sts_Oper

18(XIC) 19(XIO) 21(XIC) 22(XIC) 35(XIC)

Mode.Sts_Ovrd

11(XIC) 21(XIC) 22(XIC)

Mode.Sts_Prog

20(XIC) 21(XIC) 22(XIC)

OCmd_Stop

18(XIC) 22(XIC) *22(OTU)

PCmd_Start

*21(OTU) 21(XIC) 22(XIO)

PCmd_Stop

22(XIC) *22(OTU)

Wrk_Retrigger

*21(OTL) *22(OTL) *25(OTU) *27(OTU) 31(XIC) 32(XIC)

Motor Mode Selection


1=Mode is Override
(supersedes Prog,
Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 59
22/12/2015 09,00,14
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_Run

19(XIC) *21(OTL) 21(XIC) 22(XIO) *22(OTU) *23(OTU) *24(OTU) *24(OTL) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIC)
32(XIO) 33(XIC) 33(XIO)

Wrk_SimStopT

*22(RES) *27(TON)

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
U

NOP
Simulation Delay
until Stopped
Wrk_SimStopT
RES

If Sts_NotRdy is set, the Motor is not ready to run, so be sure it is stopped.


1=Motor is Not Ready
to Run (independent
of Mode)
Sts_NotRdy
23

Sts_NotRdy

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
U

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIC) 32(XIO) 35(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!
Wrk_Run

Page 60
22/12/2015 09,00,15
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

19(XIC) *21(OTL) 21(XIC) *22(OTU) 22(XIO) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIO)
32(XIC) 33(XIC) 33(XIO)

Higher Priority: HAND always beats Oper, Prog, Ovrd, Maint:


If in Hand, have the Motor follow the Run Feedback.

24

##### V2.0-02 2012-05-30: This rung moded down here to fix Hand Mode #####
##### tracking of feedback state. Not Ready still clears run, start outputs below. #####
Motor Mode Selection
1=Mode is Hand
(supersedes Maint,
Run Feedback based
1=Motor should be
Ovrd, Prog, Oper)
on mode, simulation,
"running", 0=should
etc. 1=running
be "stopped"
Mode.Sts_Hand
<Sts_Hand>
Wrk_RunFdbk
Wrk_Run
L

S:FS

1=Motor is Not Ready


to Run (independent
of Mode)
Sts_NotRdy
/

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
/

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
U

Mode.Sts_Hand

7(XIC) 24(XIC) 32(XIO) 33(XIO)

Sts_NotRdy

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIO) 32(XIC) 35(XIO)

Wrk_Run

19(XIC) *21(OTL) 21(XIC) 22(XIO) *22(OTU) *23(OTU) *24(OTU) *24(OTL) 25(XIC) 27(XIO) *30(OTU) 31(XIC) 31(XIO) 32(XIC)
32(XIO) 33(XIC) 33(XIO)

Wrk_RunFdbk

*7(OTL) *7(OTU) 8(XIC) 8(XIO) 24(XIC) 24(XIO) 26(XIO) 28(XIC) 31(XIO) 31(XIC) 32(XIC) 32(XIO) 33(XIO) 33(XIC)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 61
22/12/2015 09,00,15
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
MOTOR START SIMULATION AND FAIL TO START DETECTION
============================================================
If the motor SHOULD BE RUNNING, run a Start Timer to check for Fail to Start, and run a
Simulation Timer to provide simulated run feedback if needed.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
25

##### 2.0-03 2012-07-17: Improved handling of timers with presets = 0 #####


Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Start Check Timer
Mode.Sts_Maint
<Sts_Maint>
TON
/
Timer On Delay
Timer
Wrk_StartT
Preset
0
Accum
0
Simulation Delay
until Running
TON
Timer On Delay
Timer Wrk_SimRunT
Preset
0
Accum
0

Simulation Delay
until Running
Wrk_SimRunT.DN

EN
DN

Simulation Delay
until Running
TON
Timer On Delay
Timer Wrk_SimRunT
Preset
0
Accum
0

EN
DN

EN
DN

Maint Start issued


while running or
Stop while stopped
Wrk_Retrigger
U

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Wrk_Retrigger

*21(OTL) *22(OTL) *25(OTU) *27(OTU) 31(XIC) 32(XIC)

Wrk_Run

19(XIC) 21(XIC) *21(OTL) *22(OTU) 22(XIO) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIC) 31(XIO) 32(XIO)
32(XIC) 33(XIO) 33(XIC)

Wrk_SimRunT

*21(RES) *25(TON)

Wrk_SimRunT.DN

7(XIC) 25(XIC)

Wrk_StartT

*18(RES) *25(TON)

26

If the Start Timer times out and the motor run feedback (or simulated feedback) never showed up,
show the motor as "FAILED TO START"
Run Feedback based
1=Motor Failed to
on mode, simulation,
Start (one-shot)
Start Check Timer
etc. 1=running
Sts_FailToStart
Wrk_StartT.DN
Wrk_RunFdbk
<FailToStart.Inp>
/

Sts_FailToStart

18(XIC) *26(OTE) 29(XIC) 42(XIO)

Wrk_RunFdbk

*7(OTL) *7(OTU) 8(XIC) 8(XIO) 24(XIO) 24(XIC) 26(XIO) 28(XIC) 31(XIO) 31(XIC) 32(XIC) 32(XIO) 33(XIC) 33(XIO)

Wrk_StartT.DN

26(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 62
22/12/2015 09,00,15
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
MOTOR STOP SIMULATION AND FAIL TO STOP DETECTION
============================================================
If the motor SHOULD BE STOPPED, run a Stop Timer to check for Fail to Stop, and run a
Simulation Timer to provide simulated run feedback off (stop feedback) if needed.
@@@@@ NOTE: Doubled TON/TOF is used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@

27

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
/

##### 2.0-03 2012-07-17: Improved handling of timers with presets = 0 #####


Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Stop Check Timer
Mode.Sts_Maint
<Sts_Maint>
TON
/
Timer On Delay
Timer
Wrk_StopT
Preset
0
Accum
0
Simulation Delay
until Stopped
TON
Timer On Delay
Timer Wrk_SimStopT
Preset
0
Accum
0

Simulation Delay
until Stopped
Wrk_SimStopT.DN

EN
DN

Simulation Delay
until Stopped
TON
Timer On Delay
Timer Wrk_SimStopT
Preset
0
Accum
0

EN
DN

EN
DN

Maint Start issued


while running or
Stop while stopped
Wrk_Retrigger
U

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Wrk_Retrigger

*21(OTL) *22(OTL) *25(OTU) *27(OTU) 31(XIC) 32(XIC)

Wrk_Run

19(XIC) *21(OTL) 21(XIC) *22(OTU) 22(XIO) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIO)
32(XIC) 33(XIO) 33(XIC)

Wrk_SimStopT

*22(RES) *27(TON)

Wrk_SimStopT.DN

7(XIC) 27(XIC)

Wrk_StopT

*18(RES) *27(TON)

If the Stop Timer times out and the motor run feedback (or simulated feedback) never showed "stopped",
show the motor as "FAILED TO STOP"
Run Feedback based
1=Motor Failed to
on mode, simulation,
Stop
Stop Check Timer
etc. 1=running
Sts_FailToStop
Wrk_StopT.DN
Wrk_RunFdbk
<FailToStop.Inp>
28

Sts_FailToStop

18(XIC) *28(OTE) 34(XIC)

Wrk_RunFdbk

*7(OTU) *7(OTL) 8(XIO) 8(XIC) 24(XIO) 24(XIC) 26(XIO) 28(XIC) 31(XIC) 31(XIO) 32(XIO) 32(XIC) 33(XIC) 33(XIO)

Wrk_StopT.DN

28(XIC)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

1=Motor Failed to
Start (one-shot)
Sts_FailToStart
<FailToStart.Inp>

Page 63
22/12/2015 09,00,15
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
SHED ON FAULT LOGIC
============================================================
This rung handles latching in of conditions which are configured to cause
motor to shed (de-energize).
1=Stop Motor and
Alarm on Fail to
Start; 0=Alarm only
on Fail to Start
Cfg_ShedOnFailToStart

29

Fail to Start Fault


(latched) stops
motor and requires
reset
Wrk_FailToStart
L

Cfg_ShedOnFailToStart 29(XIC)
Sts_FailToStart

18(XIC) *26(OTE) 29(XIC) 42(XIO)

Wrk_FailToStart

*18(OTU) 19(XIC) *29(OTL) 30(XIC) 34(XIC) 42(XIC)

If a shed condition is latched in above, de-energize the motor.


Fail to Start Fault
(latched) stops
motor and requires
reset
Wrk_FailToStart
30

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
U

I/O Fault (latched)


stops motor and
requires reset
Wrk_IOFault

Wrk_FailToStart

*18(OTU) 19(XIC) *29(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_IOFault

*18(OTU) 19(XIC) *19(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_Run

19(XIC) *21(OTL) 21(XIC) 22(XIO) *22(OTU) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIC) 31(XIO) 32(XIO)
32(XIC) 33(XIO) 33(XIC)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 64
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
DEVICE COMMAND ENUMERATED VALUE
============================================================
Val_Cmd is the command currently being processed:
0 = None
1 = Stop
2 = Start
##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Val_Cmd
CLR
Clear
Dest
Wrk_Cmd
0

31

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
/

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
Maint Start issued
while running or
Stop while stopped
Wrk_Retrigger

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
/
Maint Start issued
while running or
Stop while stopped
Wrk_Retrigger

Buffer for building


Val_Cmd
MOV
Move
Source

Dest Wrk_Cmd
0

Buffer for building


Val_Cmd
MOV
Move
Source

Dest Wrk_Cmd
0

Device Command
0=None, 1=Stop,
2=Start
MOV
Move
Source Wrk_Cmd
0

Dest Val_Cmd
0

Val_Cmd

*31(MOV)

Wrk_Cmd

31(MOV) *31(CLR) *31(MOV)

Wrk_Retrigger

*21(OTL) *22(OTL) *25(OTU) *27(OTU) 31(XIC) 32(XIC)

Wrk_Run

19(XIC) 21(XIC) *21(OTL) *22(OTU) 22(XIO) *23(OTU) *24(OTU) *24(OTL) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIO)
32(XIC) 33(XIO) 33(XIC)

Wrk_RunFdbk

*7(OTL) *7(OTU) 8(XIC) 8(XIO) 24(XIO) 24(XIC) 26(XIO) 28(XIC) 31(XIC) 31(XIO) 32(XIC) 32(XIO) 33(XIO) 33(XIC)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 65
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
OUTPUT GENERATION
============================================================
If the motor is NOT SIMULATED, generate the appropriate outputs for the motor.
If the motor should be running, is not faulted and not in hardwired control, energice Out_Run.
Also, energize Out_Start until we get feedback that the motor is running.
If the motor should be stopped and is not in hardwired control and the feedback shows the motor
is NOT stopped, or if the motor is Faulted or Disabled, energize the Out_Stop output to stop the motor.
##### V2.0-02 2012-05-30: Sts_NotRdy clears run, start outputs. #####

32

1=Simulate working
motor; 0=Start/Stop/
Monitor actual motor
Inp_Sim
/

Motor Mode Selection


1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
Mode.Sts_Hand
<Sts_Hand>
/
1=Motor run feedback
should be used for
failure checking
Cfg_UseRunFdbk

1=Motor is Not Ready


to Run (independent
of Mode)
Sts_NotRdy
/

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run

1=Run Motor, 0=Stop


Motor
Out_Run
Run Feedback based
on mode, simulation,
etc. 1=running
Wrk_RunFdbk
/

1=Start Motor,
0=Motor left in
current state
Out_Start

Maint Start issued


while running or
Stop while stopped
Wrk_Retrigger

1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
/

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk

1=Stop Motor,
0=Motor left in
current state
Out_Stop

Maint Start issued


while running or
Stop while stopped
Wrk_Retrigger
1=Motor is Not Ready
to Run (independent
of Mode)
Sts_NotRdy

Cfg_UseRunFdbk

*3(OTU) 7(XIO) 7(XIC) 12(XIO) 32(XIC) 33(XIC)

Inp_Sim

7(XIC) 7(XIO) 19(XIO) 32(XIO)

Mode.Sts_Hand

7(XIC) 24(XIC) 32(XIO) 33(XIO)

Out_Run

*32(OTE)

Out_Start

*32(OTE)

Out_Stop

*32(OTE)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!

Page 66
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_NotRdy

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIO) 32(XIC) 35(XIO)

Wrk_Retrigger

*21(OTL) *22(OTL) *25(OTU) *27(OTU) 31(XIC) 32(XIC)

Wrk_Run

19(XIC) *21(OTL) 21(XIC) *22(OTU) 22(XIO) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIO) 31(XIC) 32(XIO)
32(XIC) 33(XIO) 33(XIC)

Wrk_RunFdbk

*7(OTU) *7(OTL) 8(XIO) 8(XIC) 24(XIO) 24(XIC) 26(XIO) 28(XIC) 31(XIC) 31(XIO) 32(XIC) 32(XIO) 33(XIC) 33(XIO)

============================================================
DEVICE STATUS GENERATION
============================================================
These rungs generate the Starting, Running, Stopping and Stopped Status bits.
If the motor is in HAND and HAS NO RUN FEEDBACK, its state is meaningless;
turn off ALL the Sts_xxx states!!!!!
If the motor is commanded to run (Output on) and the feedback doesn't yet show it running,
the motor is STARTING.
If the motor is commanded to run (Output on) and the feedback shows it running,
the motor is RUNNING.
If the motor is commanded to stoop (Output off) and the feedback still shows it running,
the motor is STOPPING.

33

If the motor is commanded to stop (Output off) and the feedback shows it has stopped,
the motor is STOPPED.
Motor Mode Selection
1=Mode is Hand
(supersedes Maint,
1=Motor should be
Run Feedback based
1=Motor requested to
Ovrd, Prog, Oper)
"running", 0=should
on mode, simulation,
run and awaiting run
be "stopped"
etc. 1=running
feedback
Mode.Sts_Hand
<Sts_Hand>
Wrk_Run
Wrk_RunFdbk
Sts_Starting
/
/
1=Motor run feedback
should be used for
failure checking
Cfg_UseRunFdbk
1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
/

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk

1=Motor requested to
run and is confirmed
running
Sts_Running

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk

1=Motor requested to
stop and awaiting
stopped feedback
Sts_Stopping

Run Feedback based


on mode, simulation,
etc. 1=running
Wrk_RunFdbk
/

1=Motor requested to
stop and is
confirmed stopped
Sts_Stopped

Cfg_UseRunFdbk

*3(OTU) 7(XIC) 7(XIO) 12(XIO) 32(XIC) 33(XIC)

Mode.Sts_Hand

7(XIC) 24(XIC) 32(XIO) 33(XIO)

Sts_Running

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Sts_Starting

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Sts_Stopped

*33(OTE) 34(XIC) 35(XIC)

Sts_Stopping

*33(OTE) 34(XIC)

Wrk_Run

19(XIC) 21(XIC) *21(OTL) 22(XIO) *22(OTU) *23(OTU) *24(OTL) *24(OTU) 25(XIC) 27(XIO) *30(OTU) 31(XIC) 31(XIO) 32(XIC)
32(XIO) 33(XIC) 33(XIO)

Wrk_RunFdbk

*7(OTL) *7(OTU) 8(XIC) 8(XIO) 24(XIC) 24(XIO) 26(XIO) 28(XIC) 31(XIO) 31(XIC) 32(XIC) 32(XIO) 33(XIC) 33(XIO)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 67
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


Val_Sts is the current device status, as determined by this AOI,
based on its knowledge of commands executed and feedback.
(This is the status that should be monitored by, for example, FT Historian.)
0 = Powerup / Unknown
1 = Stopped
2 = Running
7 = Stopping
8 = Starting
33 = Device Disabled
Val_Fault is the current device fault status, as determined by this AOI,
based on its knowledge of commands executed and feedback.
(This is the fault status that should be monitored by, for example, FT Historian.)
0 = None
16 = Fail to Start
17 = Fail to Stop
32 = I/O Fault (from Input)
34 = Configuration Error

34

##### V2.0-04 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
Buffer for building
Buffer for building
Val_Sts
Val_Fault
CLR
CLR
Clear
Clear
Wrk_Sts
Wrk_Fault
Dest
Dest
0
0
1=Motor requested to
stop and is
confirmed stopped
Sts_Stopped

Buffer for building


Val_Sts
MOV
Move
Source

1=Motor requested to
run and is confirmed
running
Sts_Running

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Motor requested to
stop and awaiting
stopped feedback
Sts_Stopping

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

1=Motor requested to
run and awaiting run
feedback
Sts_Starting

Dest

Wrk_Sts
0

Buffer for building


Val_Sts
MOV
Move
Source

Fail to Start Fault


(latched) stops
motor and requires
reset
Wrk_FailToStart

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Motor Failed to
Stop
Sts_FailToStop
<FailToStop.Inp>

16

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

I/O Fault (latched)


stops motor and

17

Dest Wrk_Fault
0

Buffer for building

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 68
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal
stops motor
and Scan: control / monitor single speed motor
requires reset
Wrk_IOFault
Move
Source

Move
Source

1=Error in Config:
see detail bits for
reason
Sts_Err

Dest Wrk_Fault
0

33

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV
Move
Source

Device Confirmed Sts


0=? 1=Stopped,
2=Running,
7=Stopping,
8=Starting,
33=Disabled
MOV
Wrk_Sts
0

32

Buffer for building


Val_Sts
MOV

1=Motor is Disabled
Sts_Disabled

Move
Source

Buffer for building


Val_Fault
MOV

Dest

Sts_Disabled

*16(OTE) 19(XIC) 34(XIC)

Sts_Err

*6(OTE) 19(XIC) 34(XIC)

Sts_FailToStop

18(XIC) *28(OTE) 34(XIC)

Sts_Running

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Sts_Starting

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Sts_Stopped

*33(OTE) 34(XIC) 35(XIC)

Sts_Stopping

*33(OTE) 34(XIC)

Val_Fault

*34(MOV)

Val_Sts

*34(MOV)

Wrk_FailToStart

*18(OTU) 19(XIC) *29(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_Fault

*34(MOV) *34(CLR) 34(MOV)

Wrk_IOFault

*18(OTU) *19(OTL) 19(XIC) 30(XIC) 34(XIC) 42(XIC)

Wrk_Sts

34(MOV) *34(MOV) *34(CLR)

34

Dest Wrk_Fault
0

Device Fault Status


0=None, 16=Fail to
Start, 17 = Fail to
Stop, 32=I/O Fault,
34=Config Error
MOV
Val_Sts
0

Move
Source Wrk_Fault
0

Dest Val_Fault
0

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 69
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
OPERATOR COMMAND READIES
============================================================
Ready to Start if in Operator Manual, Stopped, and Permissives and Interlocks are OK.
Ready to Stop if in Operator Manual and (Running or Starting).
##### V2.0-02 2012-05-30: Removed redundant logic (covered in Sts_NotRdy). #####
Motor Mode Selection
1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
35

1=Motor is Not Ready


to Run (independent
of Mode)
Sts_NotRdy
/

Motor Mode Selection


1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

1=Motor requested to
stop and is
confirmed stopped
Sts_Stopped
Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

1=Ready to receive
OCmd_Start (enables
HMI button)
Rdy_Start

1=Motor requested to
run and is confirmed
running
Sts_Running

1=Motor requested to
run and is confirmed
running
Sts_Running

1=Ready to receive
OCmd_Stop (enables
HMI button)
Rdy_Stop

1=Motor requested to
run and awaiting run
feedback
Sts_Starting
Motor Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

1=Motor requested to
stop and is
confirmed stopped
Sts_Stopped

Mode.Sts_Maint

11(XIC) 18(XIC) 19(XIO) 21(XIC) 22(XIC) 25(XIO) 27(XIO) 35(XIC)

Mode.Sts_Oper

18(XIC) 19(XIO) 21(XIC) 22(XIC) 35(XIC)

Rdy_Start

*35(OTE)

Rdy_Stop

*35(OTE)

Sts_NotRdy

*19(OTE) 20(XIO) 21(XIO) 23(XIC) 24(XIO) 32(XIO) 32(XIC) 35(XIO)

Sts_Running

19(XIO) *33(OTE) 34(XIC) 35(XIC)

Sts_Starting

19(XIO) *33(OTE) 34(XIC) 35(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!
Sts_Stopped

Page 70
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

*33(OTE) 34(XIC) 35(XIC)

============================================================
ALARM PROCESSING
============================================================
Pass the Cfg_PCmdClear configuration down to each P_Alarm instance.
##### V2.0-03 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01 #####
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Motor Failed to
Start Alarm 1=Clear
Program Commands on
receipt
0=Leave Set
FailToStart.Cfg_PCmdClear

Motor Failed to Stop


Alarm 1=Clear
Program Commands on
receipt
0=Leave Set
FailToStop.Cfg_PCmdClear

Interlock Trip Alarm


1=Clear Program
Commands on receipt
0=Leave Set
IntlkTrip.Cfg_PCmdClear

36
I/O Fault Alarm
1=Clear Program
Commands on receipt
0=Leave Set
IOFault.Cfg_PCmdClear

Cfg_PCmdClear

18(XIC) 21(XIC) 22(XIC) 22(XIO) 36(XIC)

FailToStart.Cfg_PCmdCle*36(OTE)
ar
FailToStop.Cfg_PCmdCle *36(OTE)
ar
IntlkTrip.Cfg_PCmdClear *36(OTE)
IOFault.Cfg_PCmdClear *36(OTE)

Handle Motor Failed to Start Alarm Processing using the standard P_Alarm AOI.
Motor Failed to
Start Alarm
P_Alarm
Alarm
P_Alarm
FailToStart ...
Inp
1
Inp_Reset
0

37

FailToStart

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*37(P_Alarm)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 71
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


Handle Motor Failed to Stop Alarm Processing using the standard P_Alarm AOI.
Motor Failed to Stop
Alarm
P_Alarm
Alarm
P_Alarm
FailToStop ...
Inp
1
Inp_Reset
0

38

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

FailToStop

*38(P_Alarm)

Handle Interlock Trip Alarm Processing using the standard P_Alarm AOI.
Interlock Trip Alarm
P_Alarm
Alarm
P_Alarm
IntlkTrip ...
Inp
1
Inp_Reset
0

39

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

IntlkTrip

*39(P_Alarm)

Handle I/O Fault Alarm Processing using the standard P_Alarm AOI.
I/O Fault Alarm
P_Alarm
Alarm
P_Alarm
IOFault ...
Inp
1
Inp_Reset
0

40

IOFault

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*40(P_Alarm)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 72
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit
summary status bit (which puts the "I" box on the graphic symbol).
Motor Failed to
Start Alarm 1=Alarm
has been inhibited,
disabled or
suppressed, display
"I" icon
FailToStart.Sts_AlmInh

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh

41
Motor Failed to Stop
Alarm 1=Alarm has
been inhibited,
disabled or
suppressed, display
"I" icon
FailToStop.Sts_AlmInh
Interlock Trip Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
IntlkTrip.Sts_AlmInh
I/O Fault Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
IOFault.Sts_AlmInh

FailToStart.Sts_AlmInh

41(XIC)

FailToStop.Sts_AlmInh

41(XIC)

IntlkTrip.Sts_AlmInh

41(XIC)

IOFault.Sts_AlmInh

41(XIC)

Sts_AlmInh

*41(OTE)

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

42

Page 73
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor single speed motor


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).
Buffer for building
Val_Notify
CLR
Clear
Dest
Wrk_Notify
0
Motor Failed to
Start Alarm Current
Alarm Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A FailToStart.Val_Notify
0
Source B
Wrk_Notify
0
Motor Failed to Stop
Alarm Current Alarm
Level and
Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A FailToStop.Val_Notify
0
Source B
Wrk_Notify
0
Interlock Trip Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A IntlkTrip.Val_Notify
0
Source B
Wrk_Notify
0
I/O Fault Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A IOFault.Val_Notify
0
Source B
Wrk_Notify
0

Motor Failed to
Start Alarm Ready to
receive OCmd_Ack
(enable button)
FailToStart.Rdy_Ack

Buffer for building


Val_Notify
MOV
Move
Source FailToStart.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source FailToStop.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source IntlkTrip.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source IOFault.Val_Notify
0

Dest Wrk_Notify
0

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll

Motor Failed to Stop


Alarm Ready to
receive OCmd_Ack
(enable button)
FailToStop.Rdy_Ack
Interlock Trip Alarm

RSLogix 5000

P_Motor Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Logic
Total number of rungs in routine: 43
Data Context: P_Motor <definition>

Page 74
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal
Scan: control / monitor single speed motor
Interlock Trip
Alarm
Ready to receive
OCmd_Ack (enable
button)
IntlkTrip.Rdy_Ack
I/O Fault Alarm
Ready to receive
OCmd_Ack (enable
button)
IOFault.Rdy_Ack
Motor Failed to
Start Alarm Ready to
receive OCmd_Reset
(enable button)
FailToStart.Rdy_Reset

1=At least one Alarm


or Latched Shed
requires Reset
Rdy_Reset

Motor Failed to Stop


Alarm Ready to
receive OCmd_Reset
(enable button)
FailToStop.Rdy_Reset
Interlock Trip Alarm
Ready to receive
OCmd_Reset (enable
button)
IntlkTrip.Rdy_Reset
I/O Fault Alarm
Ready to receive
OCmd_Reset (enable
button)
IOFault.Rdy_Reset
Fail to Start Fault
(latched) stops
motor and requires
reset
Wrk_FailToStart
I/O Fault (latched)
stops motor and
requires reset
Wrk_IOFault

1=Motor Failed to
Start (one-shot)
Sts_FailToStart
<FailToStart.Inp>
/
I/O Comm Fault
Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>
/

Buffer for building


Val_Notify
Wrk_Notify.0
Current Alarm Level
and Acknowledgement
(enumeration)
MOV
Move
Source Wrk_Notify
0

FailToStart.Rdy_Ack

42(XIC)

FailToStart.Rdy_Reset

42(XIC)

FailToStart.Val_Notify

42(MOV) 42(GRT)

FailToStop.Rdy_Ack

42(XIC)

Dest Val_Notify
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Total number of rungs in routine: %1!d!
FailToStop.Rdy_Reset

42(XIC)

FailToStop.Val_Notify

42(GRT) 42(MOV)

IntlkTrip.Rdy_Ack

42(XIC)

IntlkTrip.Rdy_Reset

42(XIC)

IntlkTrip.Val_Notify

42(MOV) 42(GRT)

IOFault.Rdy_Ack

42(XIC)

IOFault.Rdy_Reset

42(XIC)

IOFault.Val_Notify

42(GRT) 42(MOV)

Rdy_Reset

*42(OTE)

Rdy_ResetAckAll

*42(OTE)

Sts_FailToStart

18(XIC) *26(OTE) 29(XIC) 42(XIO)

Sts_IOFault

*19(OTE) 42(XIO)

Val_Notify

*42(MOV)

Wrk_FailToStart

*18(OTU) 19(XIC) *29(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_IOFault

*18(OTU) 19(XIC) *19(OTL) 30(XIC) 34(XIC) 42(XIC)

Wrk_Notify

42(MOV) 42(GRT) *42(MOV) *42(CLR)

Wrk_Notify.0

*42(OTE)

Page 75
22/12/2015 09,00,16
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_Motor Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Prescan
Total number of rungs in routine: 7
Data Context: P_Motor <definition>

Page 76
22/12/2015 09,00,17
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
CLR
CLR
Clear
Clear
Dest
Dest
PSet_Owner
Val_Owner
0
0

PSet_Owner

*0(CLR)

Val_Owner

*0(CLR)

"Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Start Motor
PCmd_Start
U

Cfg_PCmdClear

1(XIC)

PCmd_Start

*1(OTU)

PCmd_Stop

*1(OTU)

"Lurking" Operator Commands are cleared, as well as Program Reset.


Operator Command to
Bypass all
Bypassable
Interlocks and
Operator Command to
Operator Command to
Permissives
Start Motor
Stop Motor
OCmd_Start
OCmd_Stop
OCmd_Bypass
U
U
U

Maintenance Command
to Disable Motor
MCmd_Disable
U

Maintenance Command
to Enable (allow to
run) Motor
MCmd_Enable
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

Program Command to
Stop Motor
PCmd_Stop
U

Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
U
Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U
Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

RSLogix 5000

Prescan - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
MCmd_Disable

*2(OTU)

MCmd_Enable

*2(OTU)

OCmd_Bypass

*2(OTU)

OCmd_Check

*2(OTU)

OCmd_Reset

*2(OTU)

OCmd_ResetAckAll

*2(OTU)

OCmd_Start

*2(OTU)

OCmd_Stop

*2(OTU)

PCmd_Reset

*2(OTU)

Page 77
22/12/2015 09,00,17
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

The Override Command is set to NONE.


Override Mode
Command: 0=None,
1=Stop, 2=Start
CLR
Clear
Inp_OvrdCmd
Dest
0

Inp_OvrdCmd

*3(CLR)

Clear the latched Run Command, latched Shed faults,


and reset the fault condition and command retrigger timers.
Fail to Start Fault
1=Motor should be
(latched) stops
"running", 0=should
motor and requires
be "stopped"
reset
Wrk_Run
Wrk_FailToStart
U
U

Start Check Timer


Wrk_StartT
RES

Wrk_FailToStart

*4(OTU)

Wrk_IOFault

*4(OTU)

Wrk_Run

*4(OTU)

Wrk_SimRunT

*4(RES)

Wrk_SimStopT

*4(RES)

Wrk_StartT

*4(RES)

Wrk_StopT

*4(RES)

Stop Check Timer


Wrk_StopT
RES

Simulation Delay
until Running
Wrk_SimRunT
RES

I/O Fault (latched)


stops motor and
requires reset
Wrk_IOFault
U
Simulation Delay
until Stopped
Wrk_SimStopT
RES

RSLogix 5000

P_Motor Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:Prescan
Total number of rungs in routine: 7
Data Context: P_Motor <definition>

Page 78
22/12/2015 09,00,17
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, clear "lurking" Commands


All Outputs are de-energized on Prescan.
1=Run Motor, 0=Stop
Motor
Out_Run
U

Out_Run

*5(OTU)

Out_Start

*5(OTU)

Out_Stop

*5(OTU)

1=Start Motor,
0=Motor left in
current state
Out_Start
U

1=Stop Motor,
0=Motor left in
current state
Out_Stop
U

On Prescan, clear the following:


Val_Cmd (no command active)
Val_Fdbk (device position not determined)
Val_Sts (device status powerup / unknown)
##### Rev. 2.0, 2011-09-30: Added Val_Cmd, Val_Fdbk, Val_Sts #####

Device Command
0=None, 1=Stop,
2=Start
CLR
Clear
Dest
Val_Cmd
0

Val_Cmd

*6(CLR)

Val_Fdbk

*6(CLR)

Val_Sts

*6(CLR)

Device Feedback
0=Stopped, 1=Running
CLR
Clear
Dest
Val_Fdbk
0

Device Confirmed Sts


0=? 1=Stopped,
2=Running,
7=Stopping,
8=Starting,
33=Disabled
CLR
Clear
Dest
Val_Sts
0

(End)

RSLogix 5000

P_Motor Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_Motor <definition>

Page 79
22/12/2015 09,00,17
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Run Status shown but Alarms disabled
============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").
THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!

##### V2.0-00 2011-09-30: Added Sts_NoMode, Val_Mode #####


1=Clear Program
1=Clear Program
Commands on receipt
Commands on receipt
0=Leave Set
0=Leave Set
Motor Mode Selection
Cfg_PCmdClear
Cfg_PCmdClear
<Mode.Cfg_PCmdClear> <Mode.Cfg_PCmdClear>
P_Mode
/
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock
Signature ID: C1F72CF2

Cfg_PCmdClear

0(XIO) 0(XIC) 2(XIC)

Mode

*0(P_Mode)

First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
0
0
Source B
0
Dest
Val_Owner
0
Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

1(MOV) 1(NEQ) 1(EQU)

Val_Owner

*1(MOV) 1(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_Motor Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_Motor <definition>

Page 80
22/12/2015 09,00,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Run Status shown but Alarms disabled
"Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Start Motor
PCmd_Start
U

Cfg_PCmdClear

0(XIO) 0(XIC) 2(XIC)

PCmd_Start

*2(OTU)

PCmd_Stop

*2(OTU)

"Lurking" Operator Commands are cleared, as well as Program Reset.


Operator Command to
Bypass all
Bypassable
Operator Command to
Operator Command to
Interlocks and
Start Motor
Stop Motor
Permissives
OCmd_Start
OCmd_Stop
OCmd_Bypass
U
U
U

Maintenance Command
to Disable Motor
MCmd_Disable
U

Maintenance Command
to Enable (allow to
run) Motor
MCmd_Enable
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

Program Command to
Stop Motor
PCmd_Stop
U

Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
U
Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U
Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

MCmd_Disable

*3(OTU)

MCmd_Enable

*3(OTU)

OCmd_Bypass

*3(OTU)

OCmd_Check

*3(OTU)

OCmd_Reset

*3(OTU)

OCmd_ResetAckAll

*3(OTU)

OCmd_Start

*3(OTU)

OCmd_Stop

*3(OTU)

PCmd_Reset

*3(OTU)

RSLogix 5000

P_Motor Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_Motor <definition>

Page 81
22/12/2015 09,00,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Run Status shown but Alarms disabled
The Override Command is set to NONE.
Override Mode
Command: 0=None,
1=Stop, 2=Start
CLR
Clear
Dest
Inp_OvrdCmd
0

Inp_OvrdCmd

*4(CLR)

Since we're not processing Operator Commands, we're not READY for them either!
1=Ready to receive
1=Ready to receive
1=Ready to receive
1=Ready to receive
OCmd_Start (enables
OCmd_Stop (enables
OCmd_Bypass (enables
OCmd_Check (enables
HMI button)
HMI button)
HMI button)
HMI button)
Rdy_Start
Rdy_Stop
Rdy_Bypass
Rdy_Check
U
U
U
U

1=Ready to receive
MCmd_Disable
(enables HMI button)
Rdy_Disable
U

Rdy_Bypass

*5(OTU)

Rdy_Check

*5(OTU)

Rdy_Disable

*5(OTU)

Rdy_Enable

*5(OTU)

Rdy_Reset

*5(OTU)

Rdy_ResetAckAll

*5(OTU)

Rdy_Start

*5(OTU)

Rdy_Stop

*5(OTU)

1=Ready to receive
MCmd_Enable (enables
HMI button)
Rdy_Enable
U

1=At least one Alarm


or Latched Shed
requires Reset
Rdy_Reset
U

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll
U

The Motor Status bits show the state of the motor,


regardless of Mode, EVEN IF OFF-SCAN!

1=Simulate working
motor; 0=Start/Stop/
Monitor actual motor
Inp_Sim
/

##### Rev. 2.0, 2011-09-30: Added Val_Fdbk #####


1=Motor run feedback
1=Motor requested to
Input Signal: RUN
should be used for
run and is confirmed
feedback from motor
failure checking
running
Inp_RunFdbk
Cfg_UseRunFdbk
Sts_Running

Device Feedback
0=Stopped, 1=Running
MOV
Move
Source
1
Dest

Val_Fdbk
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor
Cfg_UseRunFdbk

6(XIC)

Inp_RunFdbk

6(XIC)

Inp_Sim

6(XIO)

Sts_Running

*6(OTE) 7(XIO)

Val_Fdbk

*6(MOV) *7(CLR)

Page 82
22/12/2015 09,00,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If the motor is not Running, it's Stopped.

1=Motor requested to
run and is confirmed
running
Sts_Running
/

Sts_Running

*6(OTE) 7(XIO)

Sts_Stopped

*7(OTE)

Val_Fdbk

*6(MOV) *7(CLR)

##### Rev. 2.0, 2011-09-30: Simplified logic and added Val_Fdbk #####
1=Motor requested to
stop and is
Device Feedback
confirmed stopped
0=Stopped, 1=Running
Sts_Stopped
CLR
Clear
Dest
Val_Fdbk
0

Clear the latched Shed faults, and reset the fault condition and simulation / command retrigger timers.

##### V2.0-00 2011-09-30: Added clearing of latched Shed faults and reset of simulation / retrigger timers. #####
Simulation Delay
Simulation Delay
Start Check Timer
Stop Check Timer
until Running
until Stopped
Wrk_SimRunT
Wrk_SimStopT
Wrk_StartT
Wrk_StopT
RES
RES
RES
RES
1=Motor should be
"running", 0=should
be "stopped"
Wrk_Run
U

Wrk_FailToStart

*8(OTU)

Wrk_IOFault

*8(OTU)

Wrk_Run

*8(OTU)

Wrk_SimRunT

*8(RES)

Wrk_SimStopT

*8(RES)

Wrk_StartT

*8(RES)

Wrk_StopT

*8(RES)

Fail to Start Fault


(latched) stops
motor and requires
reset
Wrk_FailToStart
U

I/O Fault (latched)


stops motor and
requires reset
Wrk_IOFault
U

RSLogix 5000

P_Motor Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor:EnableInFalse
Total number of rungs in routine: 12
Data Context: P_Motor <definition>

Page 83
22/12/2015 09,00,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Run Status shown but Alarms disabled
Outputs are cleared when Disabled (EnableInFalse).
##### V2.0-00 2011-09-30: Made into a separate rung.
1=Start Motor,
0=Motor left in
current state
Out_Start
U

Out_Run

*9(OTU)

Out_Start

*9(OTU)

Out_Stop

*9(OTU)

#####
1=Stop Motor,
0=Motor left in
current state
Out_Stop
U

1=Run Motor, 0=Stop


Motor
Out_Run
U

Show the motor as Disabled and Not Ready, not Available, and with no
Maintenance Bypass breadcrumb.
Clear remaining Status bits.
Show the enumerated motor command as NONE.
Show the enumerated motor status as DISABLED.
Show the enumerated motor fault status as NONE.
##### V2.0-00 2011-09-30: Made into a separate rung, added enumerated values. #####
1=Motor is Not Ready
1=Motor available
1=A Maintenance
to Run (independent
for control by
Bypass is Active,
1=Motor is Disabled
of Mode)
automation (Prog)
display icon
Sts_NotRdy
Sts_Available
Sts_MaintByp
Sts_Disabled
L
L
U
U

10

1=Motor requested to
run and awaiting run
feedback
Sts_Starting
U

Device Command
0=None, 1=Stop,
2=Start
CLR
Clear
Dest
Val_Cmd
0

Device Confirmed Sts


0=? 1=Stopped,
2=Running,
7=Stopping,
8=Starting,
33=Disabled
MOV
Move
Source
33
Dest

Sts_Available

*10(OTU)

Sts_Disabled

*10(OTL)

Sts_MaintByp

*10(OTU)

Sts_NotRdy

*10(OTL)

Sts_Starting

*10(OTU)

Sts_Stopping

*10(OTU)

Val_Cmd

*10(CLR)

Val_Fault

*10(CLR)

Val_Sts

*10(MOV)

1=Motor requested to
stop and awaiting
stopped feedback
Sts_Stopping
U

Device Fault Status


0=None, 16=Fail to
Start, 17 = Fail to
Stop, 32=I/O Fault,
34=Config Error
CLR
Clear
Dest
Val_Fault
0

Val_Sts
0

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Motor

Page 84
22/12/2015 09,00,18
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear the Alarms and the Notify Status, and show the Alarms Inhibited breadcrumb.
##### V2.0-00 2011-09-30: Made into a separate rung. #####
1=Alarm: Motor
1=Motor Fail to
1=Motor Fail to Stop
stopped by an
Start Alarm
Alarm
Interlock NOT OK
Alm_FailToStart
Alm_FailToStop
Alm_IntlkTrip
<FailToStart.Alm>
<FailToStop.Alm>
<IntlkTrip.Alm>
U
U
U

11

1=Motor Failed to
Start (one-shot)
Sts_FailToStart
<FailToStart.Inp>
U

1=Motor Failed to
Stop
Sts_FailToStop
<FailToStop.Inp>
U

1=Motor stopped by
an Interlock NOT OK
(one-shot)
Sts_IntlkTrip
<IntlkTrip.Inp>
U

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh
L

Alm_FailToStart

*11(OTU)

Alm_FailToStop

*11(OTU)

Alm_IntlkTrip

*11(OTU)

Alm_IOFault

*11(OTU)

Sts_AlmInh

*11(OTL)

Sts_FailToStart

*11(OTU)

Sts_FailToStop

*11(OTU)

Sts_IntlkTrip

*11(OTU)

Sts_IOFault

*11(OTU)

Val_Notify

*11(CLR)

1=I/O Fault Alarm


Alm_IOFault
<IOFault.Alm>
U

I/O Comm Fault


Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>
U

Current Alarm Level


and Acknowledgement
(enumeration)
CLR
Clear
Dest
Val_Notify
0

(End)

RSLogix 5000

P_Perm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm

Page 1
22/12/2015 09,00,40
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_Perm v2.0 00 Release


Rockwell Automation

Permissives
Available Languages
Relay Ladder

Function Block

Structured Text
P_Perm();
Parameters
Required
X

Name
P_Perm
EnableIn
EnableOut
Inp_Perm00
Inp_Perm01
Inp_Perm02
Inp_Perm03
Inp_Perm04
Inp_Perm05
Inp_Perm06
Inp_Perm07
Inp_Perm08
Inp_Perm09
Inp_Perm10
Inp_Perm11
Inp_Perm12
Inp_Perm13
Inp_Perm14
Inp_Perm15
Inp_BypActive
Cfg_OKState
Cfg_Bypassable
Sts_PermOK

Data Type
P_Perm
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
INT
INT
BOOL

Usage
InOut
Input
Output
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Input
Output

Description
Permissives
Permissive Cond 00, OK to start if in configured OK state
Permissive Cond 01, OK to start if in configured OK state
Permissive Cond 02, OK to start if in configured OK state
Permissive Cond 03, OK to start if in configured OK state
Permissive Cond 04, OK to start if in configured OK state
Permissive Cond 05, OK to start if in configured OK state
Permissive Cond 06, OK to start if in configured OK state
Permissive Cond 07, OK to start if in configured OK state
Permissive Cond 08, OK to start if in configured OK state
Permissive Cond 09, OK to start if in configured OK state
Permissive Cond 10, OK to start if in configured OK state
Permissive Cond 11, OK to start if in configured OK state
Permissive Cond 12, OK to start if in configured OK state
Permissive Cond 13, OK to start if in configured OK state
Permissive Cond 14, OK to start if in configured OK state
Permissive Cond 15, OK to start if in configured OK state
1=Permissive Bypassing is currently active
Bits indicate which state (0 or 1) of each input is OK to start
Set bits indicate which conditions can be bypassed
Overall Permissive Status (1=OK to start)
RSLogix 5000

P_Perm - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm

Sts_NBPermOK
Sts_BypActive
Sts_Perm
P_Perm

BOOL
BOOL
INT
BOOL

Output
Output
Output
Output

Page 2
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Non-Bypassable Permissive Status (1 =all non- bypassable Permissives OK to start)


1=Permissive Bypassing is Active (ignore bypassable permissives)
Individual Permissive Status (1=OK, 0=don't start)
Unique Parameter Name for auto - discovery

Extended Description
This Instruction monitors up to 16 Permissive conditions. It provides these features:
* The "OK" state of each Permissive Input is configurable. By default,
each Input is 1 when OK to start, 0 when not OK to start.
* Permissives may be configured as Bypassable. A separate Sts_NBPermOK
(Non-Bypassable Permissives OK) status is provided, which the destination
object can use for Bypass, Maintenance and other functions,
where Bypassable Permissives can be ignored.
All Permissive Inputs must be in their configured "OK" states
for the P_Perm instruction to provide a "PermOK" status.
All non-bypassable Permissive inputs must be in their configured "OK" states
for the P_Perm instruction to provide a "NBPermOK" status.
Execution
Condition
EnableIn is false
EnableIn is true

Description
Set summary "OK" Status bits to FALSE (0)
Check Permissive Conditions

Revision v2.0 00 Release Notes


See Release Notes for Library version 2.0 for details on changes for this release.
Change History
Created:
Created By:
Edited:
Edited By:

03/04/2008 01,38,05
Not Available
30/09/2011 08,12,49
PLANTPAX\Library

Signature
ID:
Timestamp:

79B0EC00
2011-09-30T14:12:49.299Z

Cross Reference
Container
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos

Routine
Blk_Agitadores
Blk_Agitadores
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas

Location
Sheet 1, B2
Sheet 2, B2
Sheet 1, C2
Sheet 2, B2
Sheet 3, C2
Sheet 4, B2
Sheet 5, B2
Sheet 6, A2
Sheet 1, C2
Sheet 2, D2
Sheet 3, C3
Sheet 5, B2

Tag
P_Motor_M500_Perm
P_Motor_M600_Perm
P_Motor_M400_Perm
P_Motor_M100_Perm
P_Motor_M300_Perm
P_Motor_M700_Perm
P_Motor_Almix_Perm
P_Motor_Agua_Hielo_Perm
P_ValveSO_300_Perm
P_ValveSO_310_Perm
P_ValveSO_V350_Perm
P_ValveSO_V370_Perm

RSLogix 5000

P_Perm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Type Size: 516 byte (s)
Data Context: P_Perm <definition>
Name
Default
2#0000_0000_0000_0000
Cfg_Bypassable
Set bits indicate which conditions can be bypassed
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_Bypassable - P_Perm/Logic - 2(OR)

Page 3
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
INT

Scope
P_Perm

2#1111_1111_1111_1111
Cfg_OKState
Bits indicate which state (0 or 1) of each input is OK to start
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OKState - P_Perm/Logic - 1(CPT)

INT

P_Perm

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Perm

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Perm

0
Inp_BypActive
1=Permissive Bypassing is currently active
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_BypActive - P_Perm/Logic - 4(XIC)

BOOL

P_Perm

1
Inp_Perm00
Permissive Cond 00, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.0
Base Tag:
Wrk_Inp.0
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm01
Permissive Cond 01, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.1
Base Tag:
Wrk_Inp.1
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm02
Permissive Cond 02, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.2

BOOL

P_Perm

RSLogix 5000

P_Perm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Type Size: 516 byte (s)
Data Context: P_Perm <definition>

Page 4
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Perm02 (Continued)
Base Tag:
Wrk_Inp.2
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)
1
Inp_Perm03
Permissive Cond 03, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.3
Base Tag:
Wrk_Inp.3
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm04
Permissive Cond 04, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.4
Base Tag:
Wrk_Inp.4
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm05
Permissive Cond 05, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.5
Base Tag:
Wrk_Inp.5
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm06
Permissive Cond 06, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.6
Base Tag:
Wrk_Inp.6
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm07
Permissive Cond 07, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Wrk_Inp.7
Base Tag:
Wrk_Inp.7
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm08
Permissive Cond 08, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.8

BOOL

P_Perm

RSLogix 5000

P_Perm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Type Size: 516 byte (s)
Data Context: P_Perm <definition>

Page 5
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Perm08 (Continued)
Base Tag:
Wrk_Inp.8
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)
1
Inp_Perm09
Permissive Cond 09, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.9
Base Tag:
Wrk_Inp.9
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm10
Permissive Cond 10, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.10
Base Tag:
Wrk_Inp.10
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm11
Permissive Cond 11, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.11
Base Tag:
Wrk_Inp.11
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm12
Permissive Cond 12, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.12
Base Tag:
Wrk_Inp.12
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm13
Permissive Cond 13, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.13
Base Tag:
Wrk_Inp.13
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

1
Inp_Perm14
Permissive Cond 14, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.14

BOOL

P_Perm

RSLogix 5000

P_Perm Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Type Size: 516 byte (s)
Data Context: P_Perm <definition>

Page 6
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Perm14 (Continued)
Base Tag:
Wrk_Inp.14
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)
1
Inp_Perm15
Permissive Cond 15, OK to start if in configured OK state
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Wrk_Inp.15
Base Tag:
Wrk_Inp.15
Constant
No
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

BOOL

P_Perm

0
P_Perm
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_Perm

0
Sts_BypActive
1=Permissive Bypassing is Active (ignore bypassable permissives)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_BypActive - P_Perm/Logic - *4(OTE)

BOOL

P_Perm

1
BOOL
Sts_NBPermOK
Non-Bypassable Permissive Status (1 =all non- bypassable Permissives OK to start)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_NBPermOK - P_Perm/EnableInFalse - *0(OTU)
Sts_NBPermOK - P_Perm/Logic - *4(OTE)

P_Perm

2#1111_1111_1111_1111
Sts_Perm
Individual Permissive Status (1=OK, 0=don't start)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Perm - P_Perm/Logic - *3(MOV), 4(EQU)

INT

P_Perm

1
Sts_PermOK
Overall Permissive Status (1=OK to start)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_PermOK - P_Perm/EnableInFalse - *0(OTU)
Sts_PermOK - P_Perm/Logic - *4(OTE)

BOOL

P_Perm

RSLogix 5000

P_Perm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Context: P_Perm <definition>

Name
Default
Cfg_CondTxt
Short HMI description of Permissive Conditions
Usage:
Local Tag
External Access:
Read/Write
'Enter Description #0'
Cfg_CondTxt[0]
Short HMI description of Permissive Conditions
Cfg_CondTxt[0] - P_Perm/Logic - 0(LOWER)
20
Cfg_CondTxt[0].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[0].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[1]
Short HMI description of Permissive Conditions
Cfg_CondTxt[1] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[1].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[1].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[2]
Short HMI description of Permissive Conditions
Cfg_CondTxt[2] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[2].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[2].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[3]
Short HMI description of Permissive Conditions
Cfg_CondTxt[3] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[3].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[3].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[4]
Short HMI description of Permissive Conditions
Cfg_CondTxt[4] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[4].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[4].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[5]
Short HMI description of Permissive Conditions
Cfg_CondTxt[5] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[5].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[5].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[6]
Short HMI description of Permissive Conditions
Cfg_CondTxt[6] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[6].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[6].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[7]
Short HMI description of Permissive Conditions
Cfg_CondTxt[7] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[7].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[7].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[8]
Short HMI description of Permissive Conditions
Cfg_CondTxt[8] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[8].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[8].DATA

Page 7
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_20[16]

Scope
P_Perm

STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
RSLogix 5000

P_Perm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Context: P_Perm <definition>

Cfg_CondTxt (Continued)
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[9]
Short HMI description of Permissive Conditions
Cfg_CondTxt[9] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[9].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[9].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[10]
Short HMI description of Permissive Conditions
Cfg_CondTxt[10] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[10].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[10].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[11]
Short HMI description of Permissive Conditions
Cfg_CondTxt[11] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[11].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[11].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[12]
Short HMI description of Permissive Conditions
Cfg_CondTxt[12] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[12].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[12].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[13]
Short HMI description of Permissive Conditions
Cfg_CondTxt[13] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[13].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[13].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[14]
Short HMI description of Permissive Conditions
Cfg_CondTxt[14] - P_Perm/Logic - 0(LOWER)
0
Cfg_CondTxt[14].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[14].DATA
Short HMI description of Permissive Conditions
''
Cfg_CondTxt[15]
Short HMI description of Permissive Conditions
Cfg_CondTxt[15] - P_Perm/Logic - *0(LOWER)
0
Cfg_CondTxt[15].LEN
Short HMI description of Permissive Conditions
Cfg_CondTxt[15].DATA
Short HMI description of Permissive Conditions

Page 8
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT
STRING_20
DINT
SINT

'Permissives'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_Perm/Logic - *0(LOWER)
11
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

STRING_40

'Permissives'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_Perm/Logic - 0(LOWER)

STRING_20

P_Perm

DINT
SINT
P_Perm

RSLogix 5000

P_Perm Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Data Context: P_Perm <definition>

Cfg_Label (Continued)
11
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI
'P_Perm'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_Perm/Logic - 0(LOWER)
6
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

DINT
SINT
STRING_20

P_Perm

DINT
SINT
SINT

P_Perm

'P_Perm'
Inf_Type
Type identifier for HMI navigation
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_Perm/Logic - *0(LOWER)
6
Inf_Type.LEN
Type identifier for HMI navigation
Inf_Type.DATA
Type identifier for HMI navigation

STRING_16

P_Perm

2#0000_0000_0000_0000
Wrk_Bypass
Working Register for Bypassable Permissives
Usage:
Local Tag
External Access:
None
Wrk_Bypass - P_Perm/Logic - *2(OR), 4(EQU)

INT

P_Perm

2#1111_1111_1111_1111
Wrk_Inp
Collection copy of Inp_PermXXs
Usage:
Local Tag
External Access:
Read/Write
Wrk_Inp - P_Perm/Logic - 1(CPT)

INT

P_Perm

2#0000_0000_0000_0000
Wrk_InpInv
Input states after inverting based on Cfg_OKState
Usage:
Local Tag
External Access:
None
Wrk_InpInv - P_Perm/Logic - *1(CPT), 2(OR), 3(MOV)

INT

P_Perm

Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

Page 9
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Local Tag
Read/Write

DINT
SINT

RSLogix 5000

P_Perm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm:Logic
Total number of rungs in routine: 5
Data Context: P_Perm <definition>

Page 10
22/12/2015 09,00,41
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Permissive Conditions


============================================================
P_Perm: PROCESS -- PERMISSIVES
============================================================
Revision 2.0-00 Release: 2011-09-30
Added self-name parameter and Inf_Type for navigation, auto-discover.
Using V18 Parameter Aliasing, eliminated input mapping rungs.
Added Cfg_Desc, Cfg_Label, Cfg_Tag STRINGs.
Added display of Local STRING Tags on header (this) rung.
============================================================
This Instruction monitors up to 16 Permissive conditions. It provides these features:
* The "OK" state of each Permissive Input is configurable. By default,
each Input is 1 when OK to start, 0 when not OK to start.
* Permissives may be configured as Bypassable. A separate Sts_NBPermOK
(Non-Bypassable Permissives OK) status is provided, which the destination
object can use forBypass, Maintenance and other functions,
where Bypassable Permissives can be ignored.
All Permissive Inputs must be in their configured "OK" states
for the P_Perm instruction to provide a "PermOK" status.
All non-bypassable Permissive inputs must be in their configured "OK" states
for the P_Perm instruction to provide a "NBPermOK" status.
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
LOWER
Lower Case
Lower Case
Source Cfg_Tag
Dest Inf_Type
Source Cfg_Label
Dest Cfg_Desc
'P_Perm'
'P_Perm'
'Permissives'
'Permissives'

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[0]
'Enter Description #0'

Dest Cfg_CondTxt[1]
''

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[2]
''

Dest Cfg_CondTxt[3]
''

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[4]
''

Dest Cfg_CondTxt[5]
''

Short HMI
description of

RSLogix 5000

P_Perm Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm:Logic
Total number of rungs in routine: 5
Data Context: P_Perm <definition>

Page 11
22/12/2015 09,00,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Check Permissive Conditions

description of
Permissive
Conditions
LOWER

Lower Case
Source Cfg_CondTxt[6]
''

Dest Cfg_CondTxt[7]
''

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[8]
''

Dest Cfg_CondTxt[9]
''

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[10]
''

Dest Cfg_CondTxt[11]
''

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[12]
''

Dest Cfg_CondTxt[13]
''

Short HMI
description of
Permissive
Conditions
LOWER
Lower Case
Source Cfg_CondTxt[14]
''

Cfg_CondTxt[0]

0(LOWER)

Cfg_CondTxt[1]

*0(LOWER)

Cfg_CondTxt[2]

0(LOWER)

Cfg_CondTxt[3]

*0(LOWER)

Cfg_CondTxt[4]

0(LOWER)

Cfg_CondTxt[5]

*0(LOWER)

Cfg_CondTxt[6]

0(LOWER)

Cfg_CondTxt[7]

*0(LOWER)

Cfg_CondTxt[8]

0(LOWER)

Cfg_CondTxt[9]

*0(LOWER)

Cfg_CondTxt[10]

0(LOWER)

Dest Cfg_CondTxt[15]
''

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Total number of rungs in routine: %1!d!
Cfg_CondTxt[11]

*0(LOWER)

Cfg_CondTxt[12]

0(LOWER)

Cfg_CondTxt[13]

*0(LOWER)

Cfg_CondTxt[14]

0(LOWER)

Cfg_CondTxt[15]

*0(LOWER)

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

SkipText
LBL

Page 12
22/12/2015 09,00,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
INPUT GATHERING ##### V2.0 2011-09-30 #####
============================================================
This object uses word-wise logic. The 16 permissive inputs are aliased
to the Wrk_Inp word, so no logic is needed to collect the individual
conditions. We can immediately start processing the permissive logic.
============================================================
HANDLE "OK STATE" INVERSIONS
============================================================
This rung inverts the Input bits whose "OK State" is 1 (0 to Run).
The resulting Wrk_Inp word is ALL ONES if all permissive inputs are "OK".
Input states after
inverting based on
Cfg_OKState
CPT
Compute
Expression Wrk_Inp XOR(NOT(Cfg_OKState))
Dest
Wrk_InpInv
2#0000_0000_0000_0000

Cfg_OKState

1(CPT)

Wrk_Inp

1(CPT)

Wrk_InpInv

*1(CPT) 2(OR) 3(MOV)

============================================================
PERMISSIVE PROCESSING
============================================================
If an input is Bypassable, or the input is ON, that bit is OK as far as
Bypassable Permissives are concerned.
Working Register for
Bypassable
Permissives
OR
Bitwise Inclusive OR
Source A Cfg_Bypassable
Dest
Wrk_Bypass
2#0000_0000_0000_0000
2#0000_0000_0000_0000
Source B
Wrk_InpInv
2#0000_0000_0000_0000

Cfg_Bypassable

2(OR)

Wrk_Bypass

*2(OR) 4(EQU)

Wrk_InpInv

*1(CPT) 2(OR) 3(MOV)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Total number of rungs in routine: %1!d!

Page 13
22/12/2015 09,00,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
STATUS GENERATION
============================================================
These rungs generate the public Status for this object.
The Input Permissive conditions are passed through (wordwise)
directly to the final Permissive Status
Individual
Permissive Status
(1=OK, 0=don't
start)
MOV
Move
Wrk_InpInv
Dest
Sts_Perm
Source
2#0000_0000_0000_0000
2#1111_1111_1111_1111

Sts_Perm

*3(MOV) 4(EQU)

Wrk_InpInv

*1(CPT) 2(OR) 3(MOV)

If all the Permissive Status bits are ONE, there is no condition to


prevent starting the affected equipment: show the Permissive Status as "OK"
If all the Non-Bypassable permissives are true, set the NBPermOK Status as "OK"
If Permissive Bypassing is active (this input usually comes from a downstream
device block: motor, valve, etc.), then make this Status known to the HMI.
Individual
Permissive Status
(1=OK, 0=don't
start)
EQU
Equal
Source A
Sts_Perm
2#1111_1111_1111_1111
Source B
-1

Working Register for


Bypassable
Permissives
EQU
Equal
Source A
Wrk_Bypass
2#0000_0000_0000_0000
Source B
-1

1=Permissive
Bypassing is
currently active
Inp_BypActive

Inp_BypActive

4(XIC)

Sts_BypActive

*4(OTE)

Sts_NBPermOK

*4(OTE)

Overall Permissive
Status (1=OK to
start)
Sts_PermOK

Non-Bypassable
Permissive Status (1
=all non- bypassable
Permissives OK to
start)
Sts_NBPermOK

1=Permissive
Bypassing is Active
(ignore bypassable
permissives)
Sts_BypActive

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm
Total number of rungs in routine: %1!d!
Sts_Perm

*3(MOV) 4(EQU)

Sts_PermOK

*4(OTE)

Wrk_Bypass

*2(OR) 4(EQU)

Page 14
22/12/2015 09,00,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_Perm Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_Perm:EnableInFalse
Total number of rungs in routine: 1
Data Context: P_Perm <definition>

Page 15
22/12/2015 09,00,42
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Set summary "OK" Status bits to FALSE (0)


============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this Permissives instruction is OFF-SCAN (rung is false or EnableIn is false in FBD),
then set the summary Permissive OK Status bits to FALSE (0).
Overall Permissive
Status (1=OK to
start)
Sts_PermOK
U

Sts_NBPermOK

*0(OTU)

Sts_PermOK

*0(OTU)

Non-Bypassable
Permissive Status (1
=all non- bypassable
Permissives OK to
start)
Sts_NBPermOK
U

(End)

RSLogix 5000

P_RunTime - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime

Page 1
22/12/2015 09,01,00
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_RunTime v2.0 00 Release


Rockwell Automation

Run Time and Starts


Available Languages
Relay Ladder

Function Block

Structured Text
P_RunTime();
Parameters
Required
X

Name
P_RunTime
EnableIn
EnableOut
Inp_Starting
Inp_Running
Cfg_PCmdClear

Data Type
P_RunTime
BOOL
BOOL
BOOL
BOOL
BOOL

Usage
InOut
Input
Output
Input
Input
Input

PCmd_ClearStarts
PCmd_ClearMaxHrs
PCmd_ClearTotHrs
MCmd_ClearStarts
MCmd_ClearMaxHrs
MCmd_ClearTotHrs
Val_Starts
Val_CurRunHrs
Val_MaxRunHrs
Val_TotRunHrs
P_RunTime

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
DINT
REAL
REAL
REAL
BOOL

Input
Input
Input
Input
Input
Input
Output
Output
Output
Output
Output

Description
Run Time and Starts
1=Motor is Starting (from motor instruction)
1=Motor is Running (from motor instruction)
1=Clear Program Commands on receipt
0=Leave Set
Program Command to Clear Count of Starts (attempts)
Program Command to Clear Maximum (continuous) Run Time for any start
Program Command to Clear Total Running Time
Maintenance Command to Clear Count of Starts (attempts)
Maintenance Command to Clear Maximum (continuous) Run Time for any start
Maintenance Command to Clear Total Running Time
Total number of motor starts or attempts
Current running time this start (hours)
Maximum continuous running time for a given start (hours)
Total accumulated running time (hours)
Unique Parameter Name for auto - discovery

Extended Description
This Instruction monitors the "Running" and "Starting" Status of a motor or other device and provides:
*
*
*
*

Total accumulated run time, in 1/10 hour increments (hour meter)


Total number of starts or start attemptes (count)
Maximum continuous run time for any start (hours)
Program and Maintenance Commands to allow clearing of the totals/maximum

Execution
Condition

Description
RSLogix 5000

P_RunTime - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime

EnableIn is false
EnableIn is true
Prescan

Page 2
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

False Rung or Enable In False: as if motor is Stopped


Accumulate Run Time (if runnings) and Count Starts
Set Current Run time internally to 0. Display value is left in place.

Revision v2.0 00 Release Notes


See Release Notes for Library version 2.0 for details on changes for this release.
Change History
Created:
Created By:
Edited:
Edited By:

01/04/2008 12,56,21
Not Available
30/09/2011 08,13,31
PLANTPAX\Library

Signature
ID:
Timestamp:

E34B4F1D
2011-09-30T14:13:31.139Z

Cross Reference
Container
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos
Equipos

Routine
Blk_Agitadores
Blk_Agitadores
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas
Blk_Bombas

Location
Sheet 1, G1
Sheet 2, G1
Sheet 1, G1
Sheet 2, G1
Sheet 3, G1
Sheet 4, F1
Sheet 5, E1
Sheet 6, E1

Tag
P_Motor_M500_RunTime
P_Motor_M600_RunTime
P_Motor_M400_RunTime
P_Motor_M100_RunTime
P_Motor_M300_RunTime
P_Motor_M700_RunTime
P_Motor_Almix_RunTime
P_Motor_Agua_Hielo_RunTime

RSLogix 5000

P_RunTime Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime
Data Type Size: 184 byte (s)
Data Context: P_RunTime <definition>
Name
Default
1
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_PCmdClear - P_RunTime/EnableInFalse - 0(XIC), 1(XIC), 2(XIC)
Cfg_PCmdClear - P_RunTime/Logic - 1(XIC), 2(XIC), 3(XIC)

Page 3
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_RunTime

1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_RunTime

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_RunTime

1
Inp_Running
1=Motor is Running (from motor instruction)
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Running - P_RunTime/EnableInFalse - 3(XIC), 3(XIO)
Inp_Running - P_RunTime/Logic - 4(XIO), 5(XIC), 9(XIC)

BOOL

P_RunTime

0
Inp_Starting
1=Motor is Starting (from motor instruction)
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Starting - P_RunTime/Logic - 4(XIO), 5(XIC), 9(XIC)

BOOL

P_RunTime

0
BOOL
MCmd_ClearMaxHrs
Maintenance Command to Clear Maximum (continuous) Run Time for any start
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_ClearMaxHrs - P_RunTime/EnableInFalse - *2(OTU), 2(XIC)
MCmd_ClearMaxHrs - P_RunTime/Logic - *3(OTU), 3(XIC)
MCmd_ClearMaxHrs - P_RunTime/Prescan - *1(OTU)

P_RunTime

0
MCmd_ClearStarts
Maintenance Command to Clear Count of Starts (attempts)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_ClearStarts - P_RunTime/EnableInFalse - *1(OTU), 1(XIC)
MCmd_ClearStarts - P_RunTime/Logic - *2(OTU), 2(XIC)
MCmd_ClearStarts - P_RunTime/Prescan - *1(OTU)

BOOL

P_RunTime

0
MCmd_ClearTotHrs
Maintenance Command to Clear Total Running Time
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_RunTime

RSLogix 5000

P_RunTime Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime
Data Type Size: 184 byte (s)
Data Context: P_RunTime <definition>

Page 4
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

MCmd_ClearTotHrs (Continued)
MCmd_ClearTotHrs - P_RunTime/EnableInFalse - *0(OTU), 0(XIC)
MCmd_ClearTotHrs - P_RunTime/Logic - *1(OTU), 1(XIC)
MCmd_ClearTotHrs - P_RunTime/Prescan - *1(OTU)
0
BOOL
PCmd_ClearMaxHrs
Program Command to Clear Maximum (continuous) Run Time for any start
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_ClearMaxHrs - P_RunTime/EnableInFalse - *2(OTU), 2(XIC)
PCmd_ClearMaxHrs - P_RunTime/Logic - *3(OTU), 3(XIC)
PCmd_ClearMaxHrs - P_RunTime/Prescan - *1(OTU)

P_RunTime

0
PCmd_ClearStarts
Program Command to Clear Count of Starts (attempts)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_ClearStarts - P_RunTime/EnableInFalse - *1(OTU), 1(XIC)
PCmd_ClearStarts - P_RunTime/Logic - *2(OTU), 2(XIC)
PCmd_ClearStarts - P_RunTime/Prescan - *1(OTU)

BOOL

P_RunTime

0
PCmd_ClearTotHrs
Program Command to Clear Total Running Time
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_ClearTotHrs - P_RunTime/EnableInFalse - *0(OTU), 0(XIC)
PCmd_ClearTotHrs - P_RunTime/Logic - *1(OTU), 1(XIC)
PCmd_ClearTotHrs - P_RunTime/Prescan - *1(OTU)

BOOL

P_RunTime

0
P_RunTime
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_RunTime

0.0
Val_CurRunHrs
Current running time this start (hours)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_CurRunHrs - P_RunTime/Logic - *9(CPT), 10(GRT), 10(MOV)

REAL

P_RunTime

0.0
Val_MaxRunHrs
Maximum continuous running time for a given start (hours)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_MaxRunHrs - P_RunTime/EnableInFalse - *2(CLR)
Val_MaxRunHrs - P_RunTime/Logic - *10(MOV)

REAL

P_RunTime

0
Val_Starts
Total number of motor starts or attempts
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_Starts - P_RunTime/EnableInFalse - *4(MOV)
Val_Starts - P_RunTime/Logic - *8(MOV)

DINT

P_RunTime

RSLogix 5000

P_RunTime Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime
Data Type Size: 184 byte (s)
Data Context: P_RunTime <definition>
0.0
Val_TotRunHrs
Total accumulated running time (hours)
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Val_TotRunHrs - P_RunTime/EnableInFalse - *6(MUL)
Val_TotRunHrs - P_RunTime/Logic - *11(MUL)

Page 5
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

REAL

P_RunTime

RSLogix 5000

P_RunTime Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime
Data Context: P_RunTime <definition>

Name
Default
'Accumulated Run Time (Hours)'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_RunTime/Logic - *0(LOWER)
28
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

Page 6
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_40

DINT
SINT

'Run Time'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_RunTime/Logic - 0(LOWER)
8
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

STRING_20

'P_RunTime'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_RunTime/Logic - 0(LOWER)
9
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

STRING_20

Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

Scope
P_RunTime

P_RunTime

DINT
SINT
P_RunTime

DINT
SINT
SINT

P_RunTime

STRING_16

P_RunTime

Local Tag
Read/Write

'P_RunTime'
Inf_Type
Must contain AOI name, used for HMI and Information S/W
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_RunTime/Logic - *0(LOWER)
9
Inf_Type.LEN
Must contain AOI name, used for HMI and Information S/W
Inf_Type.DATA
Must contain AOI name, used for HMI and Information S/W

DINT
SINT

0
DINT
Wrk_CurHours
Whole hours of current run time
Usage:
Local Tag
External Access:
None
Wrk_CurHours - P_RunTime/EnableInFalse - *5(CLR)
Wrk_CurHours - P_RunTime/Logic - *4(CLR), *7(ADD), 7(ADD), 9(CPT)
Wrk_CurHours - P_RunTime/Prescan - *0(CLR)

P_RunTime

TIMER
Wrk_CurRunT
Timer for timing current run time
Usage:
Local Tag
External Access:
None
Wrk_CurRunT - P_RunTime/EnableInFalse - *3(TON)
Wrk_CurRunT - P_RunTime/Logic - *4(RES), *5(TON)
Wrk_CurRunT - P_RunTime/Prescan - *0(RES)
2147483647
DINT
Wrk_CurRunT.PRE
Timer for timing current run time
0
DINT
Wrk_CurRunT.ACC
Timer for timing current run time
Wrk_CurRunT.ACC - P_RunTime/Logic - *7(SUB), 7(GEQ), 7(SUB), 9(CPT)
0
BOOL
Wrk_CurRunT.EN

P_RunTime

RSLogix 5000

P_RunTime Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime
Data Context: P_RunTime <definition>

Wrk_CurRunT (Continued)
Timer for timing current run time
0
Wrk_CurRunT.TT
Timer for timing current run time
0
Wrk_CurRunT.DN
Timer for timing current run time

Page 7
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

BOOL
BOOL

0.0
REAL
Wrk_MaxHours
Internal Maximum Run Hours
Usage:
Local Tag
External Access:
None
Wrk_MaxHours - P_RunTime/EnableInFalse - *2(CLR)
Wrk_MaxHours - P_RunTime/Logic - *10(MOV), *3(CLR), 10(GRT), 10(MOV)
Wrk_Starts
Counter for counting motor starts
Usage:
Local Tag
External Access:
None
Wrk_Starts - P_RunTime/EnableInFalse - *1(RES), *3(CTU)
Wrk_Starts - P_RunTime/Logic - *2(RES), *5(CTU)
2147483647
Wrk_Starts.PRE
Counter for counting motor starts
0
Wrk_Starts.ACC
Counter for counting motor starts
Wrk_Starts.ACC - P_RunTime/EnableInFalse - 4(MOV)
Wrk_Starts.ACC - P_RunTime/Logic - 8(MOV)
0
Wrk_Starts.CU
Counter for counting motor starts
0
Wrk_Starts.CD
Counter for counting motor starts
0
Wrk_Starts.DN
Counter for counting motor starts
0
Wrk_Starts.OV
Counter for counting motor starts
0
Wrk_Starts.UN
Counter for counting motor starts

COUNTER

Wrk_TotRunT
Retentive timer for timing 0.1 hour total run time
Usage:
Local Tag
External Access:
None
Wrk_TotRunT - P_RunTime/EnableInFalse - *0(RES), *3(RTO)
Wrk_TotRunT - P_RunTime/Logic - *1(RES), *5(RTO)
2147483647
Wrk_TotRunT.PRE
Retentive timer for timing 0.1 hour total run time
0
Wrk_TotRunT.ACC
Retentive timer for timing 0.1 hour total run time
Wrk_TotRunT.ACC - P_RunTime/Logic - *6(SUB), 6(GEQ), 6(SUB)
0
Wrk_TotRunT.EN
Retentive timer for timing 0.1 hour total run time
0
Wrk_TotRunT.TT
Retentive timer for timing 0.1 hour total run time
0
Wrk_TotRunT.DN
Retentive timer for timing 0.1 hour total run time

TIMER

P_RunTime

P_RunTime

DINT
DINT

BOOL
BOOL
BOOL
BOOL
BOOL
P_RunTime

DINT
DINT
BOOL
BOOL
BOOL

0
DINT
Wrk_TotTenths
Tenths of hours of total run time
Usage:
Local Tag
External Access:
None
Wrk_TotTenths - P_RunTime/EnableInFalse - *0(CLR), 6(MUL)
Wrk_TotTenths - P_RunTime/Logic - *1(CLR), *6(ADD), 11(MUL), 6(ADD)

P_RunTime

RSLogix 5000

P_RunTime Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Logic
Total number of rungs in routine: 12
Data Context: P_RunTime <definition>

Page 8
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Accumulate Run Time (if runnings) and Count Starts


============================================================
P_RunTime: PROCESS -- RUN TIME AND STARTS
============================================================
Revision 2.0-00 Release: 2011-09-30
Added Inf_Type, Self-name Parameter for autodiscovery
Added Cfg_Desc, Cfg_Label, Cfg_Tag STRINGs.
Added display of Local STRING Tags on header (this) rung.
============================================================
This Instruction monitors the "Running" and "Starting" Status of a motor or other device and provides:
* Total accumulated run time, in 1/10 hour increments (hour meter)
* Total number of starts or start attemptes (count)
* Maximum continuous run time for any start (hours)
* Commands to allow clearing of the totals/maximum
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
LOWER
Lower Case
Lower Case
Source Cfg_Tag
Dest Inf_Type
Source Cfg_Label
Dest
Cfg_Desc
'P_RunTime'
'P_RunTime'
'Run Time'
'Accumulated Run Time'

RSLogix 5000

P_RunTime Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Logic
Total number of rungs in routine: 12
Data Context: P_RunTime <definition>

Page 9
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Accumulate Run Time (if runnings) and Count Starts


============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands. This object has no Modes and
Commands are accepted regardless of Mode. Commands should be
restriceted to authorized personnel (typically at a maintenance level).
PCmd_ClearTotHrs: Program Command to Clear Total Runtime Hours
MCmd_ClearTotHrs: Maintenance Command to Clear Total Runtime Hours

Program Command to
Clear Total Running
Time
PCmd_ClearTotHrs

SkipText
LBL

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear

Program Command to
Clear Total Running
Time
PCmd_ClearTotHrs
U

Retentive timer for


timing 0.1 hour
total run time
Wrk_TotRunT
RES

NOP
Maintenance Command
to Clear Total
Running Time
MCmd_ClearTotHrs

Maintenance Command
to Clear Total
Running Time
MCmd_ClearTotHrs
U
Tenths of hours of
total run time
CLR
Clear
Dest Wrk_TotTenths
0

Cfg_PCmdClear

1(XIC) 2(XIC) 3(XIC)

MCmd_ClearTotHrs

*1(OTU) 1(XIC)

PCmd_ClearTotHrs

1(XIC) *1(OTU)

Wrk_TotRunT

*1(RES) *5(RTO)

Wrk_TotTenths

*1(CLR) 6(ADD) *6(ADD) 11(MUL)

PCmd_ClearStarts: Program Command to Clear Count of Starts


MCmd_ClearStarts: Maintenance Command to Clear Count of Starts
Program Command to
1=Clear Program
Program Command to
Clear Count of
Commands on receipt
Clear Count of
Starts (attempts)
0=Leave Set
Starts (attempts)
PCmd_ClearStarts
Cfg_PCmdClear
PCmd_ClearStarts
U

Counter for counting


motor starts
Wrk_Starts
RES

NOP
Maintenance Command
to Clear Count of
Starts (attempts)
MCmd_ClearStarts

Cfg_PCmdClear

1(XIC) 2(XIC) 3(XIC)

MCmd_ClearStarts

2(XIC) *2(OTU)

Maintenance Command
to Clear Count of
Starts (attempts)
MCmd_ClearStarts
U

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime
Total number of rungs in routine: %1!d!
PCmd_ClearStarts

2(XIC) *2(OTU)

Wrk_Starts

*2(RES) *5(CTU)

PCmd_ClearMaxHrs: Program Command to Clear Maximum Single Run Hours


MCmd_ClearMaxHrs: Maintenance Command to Clear Maximum Single Run Hours
Program Command to
Program Command to
Clear Maximum
Clear Maximum
1=Clear Program
(continuous) Run
(continuous) Run
Commands on receipt
Internal Maximum Run
Time for any start
Time for any start
0=Leave Set
Hours
PCmd_ClearMaxHrs
PCmd_ClearMaxHrs
Cfg_PCmdClear
CLR
U
Clear
Dest Wrk_MaxHours
0.0
NOP

Maintenance Command
to Clear Maximum
(continuous) Run
Time for any start
MCmd_ClearMaxHrs

Cfg_PCmdClear

1(XIC) 2(XIC) 3(XIC)

MCmd_ClearMaxHrs

*3(OTU) 3(XIC)

PCmd_ClearMaxHrs

*3(OTU) 3(XIC)

Wrk_MaxHours

*3(CLR) 10(GRT) 10(MOV) *10(MOV)

Page 10
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

1=Motor is Starting
(from motor
instruction)
Inp_Starting
/

Maintenance Command
to Clear Maximum
(continuous) Run
Time for any start
MCmd_ClearMaxHrs
U

Clear current run hours if stopped.


NOTE: Val_CurHours is maintained for display!
1=Motor is Running
(from motor
Timer for timing
instruction)
current run time
Inp_Running
Wrk_CurRunT
/
RES

Inp_Running

4(XIO) 5(XIC) 9(XIC)

Inp_Starting

4(XIO) 5(XIC) 9(XIC)

Wrk_CurHours

*4(CLR) 7(ADD) *7(ADD) 9(CPT)

Wrk_CurRunT

*4(RES) *5(TON)

Whole hours of
current run time
CLR
Clear
Dest Wrk_CurHours
0

RSLogix 5000

P_RunTime Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Logic
Total number of rungs in routine: 12
Data Context: P_RunTime <definition>

Page 11
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Accumulate Run Time (if runnings) and Count Starts


============================================================
ACCUMULATE TIMES / STARTS
============================================================
This rung runs the Total (retentive) and Maximum (non-retentive) Run Time
timers and increments the Number of Starts counter whenever
the motor/device is Starting or Running (contactor energized...).

NOTE: The counter only counts on the rising edge of the rung. As long as
there's no delay between Starting going OFF and Running coming ON, this will work fine.
1=Motor is Starting
Retentive timer for
(from motor
timing 0.1 hour
instruction)
total run time
Inp_Starting
RTO
Retentive Timer On
Timer Wrk_TotRunT
1=Motor is Running
Preset 2147483647
(from motor
Accum
0
instruction)
Inp_Running
Counter for counting
motor starts
CTU
Count Up
Counter Wrk_Starts
Preset 2147483647
Accum
0
Timer for timing
current run time
TON
Timer On Delay
Timer Wrk_CurRunT
Preset 2147483647
Accum
0

Inp_Running

4(XIO) 5(XIC) 9(XIC)

Inp_Starting

4(XIO) 5(XIC) 9(XIC)

Wrk_CurRunT

*4(RES) *5(TON)

Wrk_Starts

*2(RES) *5(CTU)

Wrk_TotRunT

*1(RES) *5(RTO)

EN
DN

CU
DN

EN
DN

RSLogix 5000

P_RunTime Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Logic
Total number of rungs in routine: 12
Data Context: P_RunTime <definition>

Page 12
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Accumulate Run Time (if runnings) and Count Starts


Note that an RTO timer can only time up to 2G milliseconds, about 28 days.
A pump will accumulate much more run time. So the RTO is used to time 1/10 hour,
which is then added to a count of "Tenths of Hours". Then the RTO accumulator is reduced by 1/10 hour.
(The timer doesn't lose time because it is not reset and keeps running.)

Retentive timer for


timing 0.1 hour
total run time
GEQ
Grtr Than or Eql (A>=B)
Source A Wrk_TotRunT.ACC
0
Source B
360000

Tenths of hours of
total run time
ADD
Add
Source A Wrk_TotTenths
0
Source B
1

Dest Wrk_TotTenths
0

Retentive timer for


timing 0.1 hour
total run time
SUB
Subtract
Source A Wrk_TotRunT.ACC
0
Source B
360000

Wrk_TotRunT.ACC

*6(SUB) 6(GEQ) 6(SUB)

Wrk_TotTenths

*1(CLR) *6(ADD) 6(ADD) 11(MUL)

Dest Wrk_TotRunT.ACC
0

The Maximum Run Time TON is treated the same way. A motor/device
could potentially run continuously for more than 28 days, so an integer count
of (up to 2 billion) hours (almost 245,000 years!) is used. Should be enough...

Timer for timing


current run time
GEQ
Grtr Than or Eql (A>=B)
Source A Wrk_CurRunT.ACC
0
Source B
3600000

Whole hours of
current run time
ADD
Add
Source A Wrk_CurHours
0
Source B
1

Dest Wrk_CurHours
0

Timer for timing


current run time
SUB
Subtract
Source A Wrk_CurRunT.ACC
0
Source B
3600000

Wrk_CurHours

*4(CLR) *7(ADD) 7(ADD) 9(CPT)

Wrk_CurRunT.ACC

7(GEQ) 7(SUB) *7(SUB) 9(CPT)

Dest Wrk_CurRunT.ACC
0

RSLogix 5000

P_RunTime Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Logic
Total number of rungs in routine: 12
Data Context: P_RunTime <definition>

Page 13
22/12/2015 09,01,01
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Accumulate Run Time (if runnings) and Count Starts


============================================================
REPORT VALUES
============================================================
The number of starts is directly reported as an integer Value.
Total number of
motor starts or
attempts
MOV
Move
Source Wrk_Starts.ACC
Dest Val_Starts
0
0

Val_Starts

*8(MOV)

Wrk_Starts.ACC

8(MOV)

The Current (continuous) Run Time is reported as a REAL number of Hours.


This number includes all fractional hours (timer accumulator / 3,600,000 ms/hr),
not just completed tenths like the total run time below.
1=Motor is Starting
(from motor
instruction)
Inp_Starting
9
1=Motor is Running
(from motor
instruction)
Inp_Running

Current running time


this start (hours)
CPT
Compute
Expression Wrk_CurHours+(Wrk_CurRunT.ACC/3600000.0)

Inp_Running

4(XIO) 5(XIC) 9(XIC)

Inp_Starting

4(XIO) 5(XIC) 9(XIC)

Val_CurRunHrs

*9(CPT) 10(MOV) 10(GRT)

Wrk_CurHours

*4(CLR) *7(ADD) 7(ADD) 9(CPT)

Wrk_CurRunT.ACC

7(GEQ) 7(SUB) *7(SUB) 9(CPT)

Dest Val_CurRunHrs
0.0

RSLogix 5000

P_RunTime Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Logic
Total number of rungs in routine: 12
Data Context: P_RunTime <definition>

Page 14
22/12/2015 09,01,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Accumulate Run Time (if runnings) and Count Starts


If the Current Run Time exceeds the stored Maximum Run Time,
update the Maximum.
Regardless, report the Maximum Run Time.
NOTE: The Wrk_MaxHours register is required to prevent writes to Val_MaxHours
from improperly overwriting this object's state.
Current running time
Internal Maximum Run
this start (hours)
Hours
GRT
MOV
Greater Than (A>B)
Move
Source A Val_CurRunHrs
Source Val_CurRunHrs
Dest Wrk_MaxHours
0.0
0.0
0.0
Source B Wrk_MaxHours
0.0

10

Maximum continuous
running time for a
given start (hours)
MOV
Move
Source Wrk_MaxHours
0.0

Val_CurRunHrs

*9(CPT) 10(MOV) 10(GRT)

Val_MaxRunHrs

*10(MOV)

Wrk_MaxHours

*3(CLR) *10(MOV) 10(MOV) 10(GRT)

Dest Val_MaxRunHrs
0.0

The Total Running Time is reported as a REAL number of Hours.


(This will always be in "completed tenths" of an hour, like a mechanical hours counter.)
Total accumulated
running time (hours)
MUL
Multiply
Source A Wrk_TotTenths
Dest Val_TotRunHrs
0
0.0
Source B
0.1

11

Val_TotRunHrs

*11(MUL)

Wrk_TotTenths

*1(CLR) *6(ADD) 6(ADD) 11(MUL)

(End)

RSLogix 5000

P_RunTime Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:Prescan
Total number of rungs in routine: 2
Data Context: P_RunTime <definition>

Page 15
22/12/2015 09,01,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Set Current Run time internally to 0. Display value is left in place.


============================================================
POWERUP / PRESCAN HANDLING
============================================================
Total run time, Maximum run time and starts count are retained through
a power cycle. Current run time is reset (internally only,
Val_CurHours is maintained for display!).
Timer for timing
Whole hours of
current run time
current run time
Wrk_CurRunT
CLR
RES
Clear
Dest Wrk_CurHours
0

Wrk_CurHours

*0(CLR)

Wrk_CurRunT

*0(RES)

On Prescan, clear any "lurking" Commands.


Maintenance Command
Maintenance Command
to Clear Maximum
to Clear Total
(continuous) Run
Time for any start
Running Time
MCmd_ClearTotHrs
MCmd_ClearMaxHrs
U
U

Program Command to
Clear Maximum
(continuous) Run
Time for any start
PCmd_ClearMaxHrs
U

MCmd_ClearMaxHrs

*1(OTU)

MCmd_ClearStarts

*1(OTU)

MCmd_ClearTotHrs

*1(OTU)

PCmd_ClearMaxHrs

*1(OTU)

PCmd_ClearStarts

*1(OTU)

PCmd_ClearTotHrs

*1(OTU)

Program Command to
Clear Total Running
Time
PCmd_ClearTotHrs
U

Maintenance Command
to Clear Count of
Starts (attempts)
MCmd_ClearStarts
U
Program Command to
Clear Count of
Starts (attempts)
PCmd_ClearStarts
U

(End)

RSLogix 5000

P_RunTime Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:EnableInFalse
Total number of rungs in routine: 7
Data Context: P_RunTime <definition>

Page 16
22/12/2015 09,01,02
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

False Rung or Enable In False: as if motor is Stopped


============================================================
ENABLE-IN FALSE HANDLING
============================================================
EnableIn False is treated the same as "Motor Stopped" -Commands are still processed,
total run time is held (RTO), the Starts counter is prepared for
the next start (.CU clears on CTU with AFI), and the
Current Run Time is cleared (TON false).
============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands. This object has no Modes and
Commands are accepted regardless of Mode. Commands should be
restriceted to authorized personnel (typically at a maintenance level).
PCmd_ClearTotHrs: Program Command to Clear Total Runtime Hours
MCmd_ClearTotHrs: Maintenance Command to Clear Total Runtime Hours
Program Command to
Clear Total Running
Time
PCmd_ClearTotHrs
0

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear

Program Command to
Clear Total Running
Time
PCmd_ClearTotHrs
U

Retentive timer for


timing 0.1 hour
total run time
Wrk_TotRunT
RES

NOP
Maintenance Command
to Clear Total
Running Time
MCmd_ClearTotHrs

Maintenance Command
to Clear Total
Running Time
MCmd_ClearTotHrs
U
Tenths of hours of
total run time
CLR
Clear
Dest Wrk_TotTenths
0

Cfg_PCmdClear

0(XIC) 1(XIC) 2(XIC)

MCmd_ClearTotHrs

*0(OTU) 0(XIC)

PCmd_ClearTotHrs

0(XIC) *0(OTU)

Wrk_TotRunT

*0(RES) *3(RTO)

Wrk_TotTenths

*0(CLR) 6(MUL)

RSLogix 5000

P_RunTime Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:EnableInFalse
Total number of rungs in routine: 7
Data Context: P_RunTime <definition>

Page 17
22/12/2015 09,01,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

False Rung or Enable In False: as if motor is Stopped


PCmd_ClearStarts: Program Command to Clear Count of Starts
MCmd_ClearStarts: Maintenance Command to Clear Count of Starts
Program Command to
1=Clear Program
Program Command to
Clear Count of
Commands on receipt
Clear Count of
Starts (attempts)
0=Leave Set
Starts (attempts)
PCmd_ClearStarts
Cfg_PCmdClear
PCmd_ClearStarts
U

Counter for counting


motor starts
Wrk_Starts
RES

NOP
Maintenance Command
to Clear Count of
Starts (attempts)
MCmd_ClearStarts

Cfg_PCmdClear

0(XIC) 1(XIC) 2(XIC)

MCmd_ClearStarts

1(XIC) *1(OTU)

PCmd_ClearStarts

1(XIC) *1(OTU)

Wrk_Starts

*1(RES) *3(CTU)

Maintenance Command
to Clear Count of
Starts (attempts)
MCmd_ClearStarts
U

PCmd_ClearMaxHrs: Program Command to Clear Maximum Single Run Hours


MCmd_ClearMaxHrs: Maintenance Command to Clear Maximum Single Run Hours
Program Command to
Clear Maximum
(continuous) Run
Time for any start
PCmd_ClearMaxHrs
2

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear

Program Command to
Clear Maximum
(continuous) Run
Time for any start
PCmd_ClearMaxHrs
U

Internal Maximum Run


Hours
CLR
Clear
Dest Wrk_MaxHours
0.0

NOP
Maintenance Command
to Clear Maximum
(continuous) Run
Time for any start
MCmd_ClearMaxHrs

Maintenance Command
to Clear Maximum
(continuous) Run
Time for any start
MCmd_ClearMaxHrs
U
Maximum continuous
running time for a
given start (hours)
CLR
Clear
Dest Val_MaxRunHrs
0.0

Cfg_PCmdClear

0(XIC) 1(XIC) 2(XIC)

MCmd_ClearMaxHrs

2(XIC) *2(OTU)

PCmd_ClearMaxHrs

*2(OTU) 2(XIC)

Val_MaxRunHrs

*2(CLR)

Wrk_MaxHours

*2(CLR)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime

Page 18
22/12/2015 09,01,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
ENABLE-IN FALSE HANDLING
============================================================
EnableIn False is treated the same as "Motor Stopped" -Total run time is held (RTO), the Starts counter is prepared for
the next start (.CU clears on CTU with AFI), and the
Current Run Time is cleared (TON false).
NOTE: IN ORDER TO AVOID USING AN AFI (resulting in routine verification warnings in V17),
THIS RUNG USES AN XIC AND XIO OF THE SAME BIT TO ENSURE THE
TIMERS AND COUNTER ARE SCANNED FALSE.
THIS IS NOT DEAD CODE. IT IS INTENTIONALLY CODED THIS WAY FOR PROPER OPERATION.
1=Motor is Running
(from motor
instruction)
Inp_Running
3

1=Motor is Running
(from motor
instruction)
Inp_Running
/

Retentive timer for


timing 0.1 hour
total run time
RTO
Retentive Timer On
Timer Wrk_TotRunT
Preset 2147483647
Accum
0

EN
DN

Counter for counting


motor starts
CTU
Count Up
Counter Wrk_Starts
Preset 2147483647
Accum
0

Timer for timing


current run time
TON
Timer On Delay
Timer Wrk_CurRunT
Preset 2147483647
Accum
0

Inp_Running

3(XIC) 3(XIO)

Wrk_CurRunT

*3(TON)

Wrk_Starts

*1(RES) *3(CTU)

Wrk_TotRunT

*0(RES) *3(RTO)

CU
DN

EN
DN

============================================================
REPORT VALUES
============================================================
The number of starts is directly reported as an integer Value.
Total number of
motor starts or
attempts
MOV
Move
Source Wrk_Starts.ACC
0
Dest
Val_Starts
0

Val_Starts

*4(MOV)

Wrk_Starts.ACC

4(MOV)

RSLogix 5000

P_RunTime Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_RunTime:EnableInFalse
Total number of rungs in routine: 7
Data Context: P_RunTime <definition>

Page 19
22/12/2015 09,01,03
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

False Rung or Enable In False: as if motor is Stopped


The current hours working register is cleared, but the Value is left
in place for display until the next run begins.
NOTE: The Maximum Run Hours (high-water of Current Run Hours)
is also left in place.
Whole hours of
current run time
CLR
Clear
Dest Wrk_CurHours
0

Wrk_CurHours

*5(CLR)

The Total Running Time is reported as a REAL number of Hours.


(This will always be in "completed tenths" of an hour, like a mechanical hours counter.)
Total accumulated
running time (hours)
MUL
Multiply
Source A Wrk_TotTenths
0
Source B
0.1

Dest

Val_TotRunHrs

*6(MUL)

Wrk_TotTenths

*0(CLR) 6(MUL)

Val_TotRunHrs
0.0

(End)

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Page 1
22/12/2015 09,01,23
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

P_ValveSO v2.0 05 Release


Rockwell Automation

Solenoid Operated Valve


Available Languages
Relay Ladder

Function Block

Structured Text
P_ValveSO();
Parameters
Required
X

Name
P_ValveSO

Data Type
P_ValveSO

Usage
InOut

EnableIn
EnableOut
Inp_OpenLS

BOOL
BOOL
BOOL

Input
Output
Input

Inp_ClosedLS

BOOL

Input

Inp_PermOK

BOOL

Input

Description
Solenoid
Operated
Valve
Valve Open
Limit
Switch
1=confirme
d OPEN
Valve Closed
Limit Switch
1=confirmed
CLOSED
1=Permissi
ves OK,
Valve can
energize

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Inp_NBPermOK

BOOL

Input

Inp_IntlkOK

BOOL

Input

Inp_NBIntlkOK

BOOL

Input

Inp_IOFault

BOOL

Input

Inp_Sim

BOOL

Input

Inp_Hand

BOOL

Input

Inp_Ovrd

BOOL

Input

Inp_OvrdCmd

DINT

Input

Inp_Reset

BOOL

Input

Cfg_FailOpen

BOOL

Input

Cfg_HasOpenLS

BOOL

Input

Cfg_HasClosedLS

BOOL

Input

Cfg_UseOpenLS

BOOL

Input

Cfg_UseClosedLS

BOOL

Input

Cfg_LSFail

BOOL

Input

Cfg_HasPermObj

BOOL

Input

Cfg_HasIntlkObj

BOOL

Input

Cfg_HasStatsObj

BOOL

Input

Page 2
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Non-Bypassable
Permissives OK,
valve can energize

1=Interlocks OK, valve can energize


1=Non-Bypassable
Interlocks OK,
valve can energize
Input
Communicat
ion Status
0=OK,
1=fail
1=Simulate working valve;
0=Open/Close/ Monitor actual
valve
1=Select
Hand
(hardwired
) Mode
1=Select
Override
Mode
Override Mode
Command:
0=None,
1=Close,
2=Open
1=Reset all
fault
conditions and
latched Alarms
1=Fail Open (energize to close),
0=Fail Closed (energize to open)

1=Valve provides an Open Limit Switch signal


1=Valve
provides a
Closed Limit
Switch signal
1=Valve Open LS
should be used for
failure checking
1=Valve Closed LS
should be used for
failure checking
1=both switches
ON=fail, 0=both
switches OFF=fail
1=Tells HMI a
P_Perm is
connected to
Inp_Perm
1=Tells HMI a
P_Intlk is
connected to
Inp_Intlk
1=Tells HMI a
P_ValveStats is
monitoring this
valve

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Cfg_PCmdClear

BOOL

Input

Cfg_ProgDefault

BOOL

Input

Cfg_OCmdResets

BOOL

Input

Cfg_ShedOnFullStall

BOOL

Input

Cfg_ShedOnTransitStall

BOOL

Input

Cfg_ShedOnIOFault

BOOL

Input

Cfg_OvrdPermIntlk

BOOL

Input

Cfg_HasFullStallAlm

BOOL

Input

Cfg_HasTransitStallAlm

BOOL

Input

Cfg_HasIntlkTripAlm

BOOL

Input

Cfg_HasIOFaultAlm

BOOL

Input

Cfg_FullStallResetReqd

BOOL

Input

Cfg_TransitStallResetReqd

BOOL

Input

Cfg_IntlkTripResetReqd

BOOL

Input

Cfg_IOFaultResetReqd

BOOL

Input

Cfg_FullStallAckReqd

BOOL

Input

Cfg_TransitStallAckReqd

BOOL

Input

Cfg_IntlkTripAckReqd

BOOL

Input

Page 3
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Clear Program
Commands on
receipt
0=Leave Set
Default Mode: 1=Program Mode if no
requests; 0=Operator Mode if no requests
1=New Oper valve cmd. resets
fault,
0=reset req'd to clear fault
1=Stop Valve and Alarm on Full
Stall; 0=Alarm only on Full
Stall
1=Stop Valve and Alarm on Transit
Stall; 0=Alarm only on Transit Stall
1=Stop Valve and Alarm on I/O
Fault; 0=Alarm only on I/O
Fault
1=Override ignores Bypassable
Perm/ Intlk; 0=always use
Perm/Intlk
1=Full Stall
Alarm exists
and will be
checked
1=Transit Stall
Alarm exists and
will be checked
1=Interlock Trip
Alarm exists and
will be checked
1=I/O Fault
Alarm exists
and will be
checked
1=Reset
requied to
clear Full
Stall
Alarm
1=Reset
required to
clear Transit
Stall Alarm
1=Reset
required to
clear
Interlock Trip
Alarm
1=Reset
required
to clear
I/O Fault
Alarm
1=Acknowled
ge required
for Full
Stall Alarm
1=Acknowledge
required for
Transit Stall
Alarm
1=Acknowledge
required for
Interlock Trip
Alarm

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Cfg_IOFaultAckReqd

BOOL

Input

Cfg_FullStallSeverity

SINT

Input

Cfg_TransitStallSeverity

SINT

Input

Cfg_IntlkTripSeverity

SINT

Input

Cfg_IOFaultSeverity

SINT

Input

Cfg_SimFdbkT

DINT

Input

Cfg_FullStallT

DINT

Input

Cfg_TransitStallT

DINT

Input

PSet_Owner

DINT

Input

PCmd_Open

BOOL

Input

PCmd_Close

BOOL

Input

PCmd_Acq

BOOL

Input

PCmd_Rel

BOOL

Input

PCmd_Lock

BOOL

Input

PCmd_Unlock

BOOL

Input

PCmd_Reset

BOOL

Input

PCmd_FullStallAck

BOOL

Input

PCmd_FullStallInhibit

BOOL

Input

PCmd_FullStallUninhibit

BOOL

Input

Page 4
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Acknowle
dge
required
for I/O
Fault
Alarm
Full Stall Alarm
Severity 1=info 2=warn
3=excep 4=fault
Transit Stall Alarm
Severity 1=info 2=warn
3=excep 4=fault
Interlock Trip Alarm
Severity 1=info 2=warn
3=excep 4=fault
I/O Fault Alarm
Severity 1=info 2=warn
3=excep 4=fault
Delay to echo back of Open/Closed
status when in Simulation (sec)
After command, time
with no motion before
Fault (sec)
After command, time to
reach position before
fault (sec)
Program Owner Request
ID (non-zero) or
Release (zero)
Program
Command to
Open Valve
Program
Command to
Close
Valve
Program Command to
Acquire ownership
(Oper to Prog)
Program Command to
Release ownership
(Prog to Oper)
Program
Command to
Lock Mode
in Prog
Program
Command to
Unlock
Mode
Program Command to
Reset all Alarms
requiring Reset
Program Command
to Acknowledge
Full Stall
Alarm
Program
Command to
Inhibit
Full Stall
Alarm
Program
Command to
Uninhibit
Full Stall
Alarm

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

PCmd_TransitStallAck

BOOL

Input

PCmd_TransitStallInhibit

BOOL

Input

PCmd_TransitStallUninhibit

BOOL

Input

PCmd_IntlkTripAck

BOOL

Input

PCmd_IntlkTripInhibit

BOOL

Input

PCmd_IntlkTripUninhibit

BOOL

Input

PCmd_IOFaultAck

BOOL

Input

PCmd_IOFaultInhibit

BOOL

Input

PCmd_IOFaultUninhibit

BOOL

Input

OCmd_Open

BOOL

Input

OCmd_Close

BOOL

Input

OCmd_Bypass

BOOL

Input

OCmd_Check

BOOL

Input

MCmd_Disable

BOOL

Input

MCmd_Enable

BOOL

Input

OCmd_Reset

BOOL

Input

OCmd_ResetAckAll

BOOL

Input

Page 5
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
Program Command to
Acknowledge
Transit Stall
Alarm
Program
Command to
Inhibit
Transit Stall
Alarm
Program Command
to Uninhibit
Transit Stall
Alarm
Program Command to
Acknowledge
Interlock Trip
Alarm
Program Command
to Inhibit
Interlock Trip
Alarm
Program Command
to Uninhibit
Interlock Trip
Alarm
Program
Command to
Acknowledge
I/O Fault
Alarm
Program
Command to
Inhibit
I/O Fault
Alarm
Program
Command to
Uninhibit
I/O Fault
Alarm
Operator
Command to
Open Valve
Operator
Command to
Close
Valve
Operator Command to Bypass all
Bypassable Interlocks and
Permissives
Operator Command to Check (not
bypass) all Interlocks and
Permissives
Maintenanc
e Command
to Disable
Valve
Maintenance Command to
Enable (allow to
energize) Valve
Operator Command to
Reset all Alarms
requiring Reset
Operator Command to Reset all
Alarms and latched Shed
conditions

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Out

BOOL

Output

Val_Cmd

SINT

Output

Val_Fdbk

SINT

Output

Val_Sts

SINT

Output

Val_Fault

SINT

Output

Val_Mode

DINT

Output

Val_Owner

DINT

Output

Val_Notify

SINT

Output

Sts_Closed

BOOL

Output

Sts_Opening

BOOL

Output

Sts_Opened

BOOL

Output

Sts_Closing

BOOL

Output

Sts_Available

BOOL

Output

Sts_Bypass

BOOL

Output

Sts_BypActive

BOOL

Output

Sts_Disabled

BOOL

Output

Sts_LSFail

BOOL

Output

Sts_NotRdy

BOOL

Output

Sts_MaintByp

BOOL

Output

Sts_AlmInh

BOOL

Output

Sts_Err

BOOL

Output

Page 6
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Energize
Valve
Solenoid
Device
Command
0=None,
1=Close,
2=Open
Device Feedback 0=Moving, 1=Closed,
2=Opened, 3=Limit Switch Failure
Device Confirmed Sts 0=? 1=Closed 2=Open
5=Closing, 6=Opening, 32=Disabled
Device Fault Status 0=None, 16=Transit Stall, 17 = Full
Stall, 32=I/O Fault, 34=Config Error
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O
(P Def), 8=P (P Def), 9=O (O def)
Current
Object
Owner ID
(0=not
owned)
Current Alarm Level
and Acknowledgement
(enumeration)
1=Valve requested
to Close and is
confirmed Closed
1=Valve requested to
open and awaiting
open feedback
1=Valve requested
to open and is
confirmed Opened
1=Valve requested to
Close and awaiting
Closed feedback
1=Valve available
for control by
automation (Prog)
1=Bypassable
Interlocks and
Permissives are
Bypassed
1=Bypassing
Active
(Bypassed or
Maintenance)
1=Valve is
Disabled
1=Limit
Switch
Overlap
Failure
1=Valve is Not Ready
to Energize
(independent of Mode)
1=A
Maintenance
Bypass is
Active,
display icon
1=An Alarm is Inhibited,
Disabled or Suppressed,
display icon
1=Error in
Config: see
detail bits
for reason
RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Err_Timer

BOOL

Output

Err_Sim

BOOL

Output

Err_Alarm

BOOL

Output

Sts_Hand

BOOL

Output

Sts_Maint

BOOL

Output

Sts_Ovrd

BOOL

Output

Sts_Prog

BOOL

Output

Sts_Oper

BOOL

Output

Sts_ProgOperLock

BOOL

Output

Sts_NoMode

BOOL

Output

Sts_FullStall

BOOL

Output

Alm_FullStall

BOOL

Output

Ack_FullStall

BOOL

Output

Sts_FullStallDisabled

BOOL

Output

Sts_FullStallInhibited

BOOL

Output

Sts_FullStallSuppressed

BOOL

Output

Sts_TransitStall

BOOL

Output

Alm_TransitStall

BOOL

Output

Page 7
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Error in Config:
Invalid Check Time (use
0 to 2147483)
1=Error in Config: Invalid
Simulation Time (use 0 to
2147483)
1=Error in Config:
Alarm Throttle
Time or Severity
1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
1=Mode is
Override
(supersede
s Prog,
Oper)
1=Mode is
Program
(auto)
1=Mode is
Operator
(manual)
1=Program or
Operator has
requested
Mode Lock
1=NoMode
(Disabled
because
EnableIn is
False)
1=Valve
Full Stall
(failed to
move at
all)
1=Valve Full
Stall (failed to
move at all)
Alarm
1=Full
Stall
Alarm has
been
acknowledg
ed
1=Full Stall Alarm has
been disabled (will not
be sent)
1=Full Stall
Alarm has been
inhibited by
logic
1=Full Stall Alarm
has been suppressed
(logged only)
1=Valve Transit Stall
(did not reach target
position)
1=Valve Transit Stall
(did not reach target
pos.) Alarm

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Ack_TransitStall

BOOL

Output

Sts_TransitStallDisabled

BOOL

Output

Sts_TransitStallInhibited

BOOL

Output

Sts_TransitStallSuppressed

BOOL

Output

Sts_IntlkTrip

BOOL

Output

Alm_IntlkTrip

BOOL

Output

Ack_IntlkTrip

BOOL

Output

Sts_IntlkTripDisabled

BOOL

Output

Sts_IntlkTripInhibited

BOOL

Output

Sts_IntlkTripSuppressed

BOOL

Output

Sts_IOFault

BOOL

Output

Alm_IOFault

BOOL

Output

Ack_IOFault

BOOL

Output

Sts_IOFaultDisabled

BOOL

Output

Sts_IOFaultInhibited

BOOL

Output

Sts_IOFaultSuppressed

BOOL

Output

Rdy_Open

BOOL

Output

Page 8
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Transit
Stall Alarm
has been
acknowledge
d
1=Transit Stall Alarm has
been disabled (will not be
sent)
1=Transit Stall
Alarm has been
inhibited by
logic
1=Transit Stall Alarm
has been suppressed
(logged only)
1=Valve
de-energize
d by an
Interlock
NOT OK
1=Alarm: Valve
de-energized by an
Interlock NOT OK
1=Interlock
Trip Alarm
has been
acknowledged
1=Interlock Trip Alarm
is Disabled (not saved
or sent)
1=Interlock Trip
Alarm has been
inhibited by logic
1=Interlock Trip Alarm
has been suppressed
(logged only)
I/O Comm
Fault
Status
(0=OK,
1=Bad)
1=I/O
Fault
Alarm
1=I/O
Fault
Alarm has
been
acknowledg
ed
1=I/O Fault Alarm
is Disabled (not
saved or sent)
1=I/O Fault
Alarm has
been
inhibited by
logic
1=I/O Fault Alarm
has been suppressed
(logged only)
1=Ready to
receive OCmd_Open
(enables HMI
button)

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Rdy_Close

BOOL

Output

Rdy_Bypass

BOOL

Output

Rdy_Check

BOOL

Output

Rdy_Disable

BOOL

Output

Rdy_Enable

BOOL

Output

Rdy_Reset

BOOL

Output

Rdy_ResetAckAll

BOOL

Output

P_ValveSO

BOOL

Output

Page 9
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD
1=Ready to receive
OCmd_Close
(enables HMI
button)
1=Ready to receive
OCmd_Bypass
(enables HMI
button)
1=Ready to receive
OCmd_Check
(enables HMI
button)
1=Ready to receive
MCmd_Disable
(enables HMI button)
1=Ready to receive
MCmd_Enable
(enables HMI
button)
1=Ready to receive
OCmd_Reset
(enables HMI
button)
1=At least one Alarm or latched Shed
condition requires Reset or Ack
Unique
Parameter
Name for
auto discovery

Extended Description
This Instruction controls and monitors a single solenoid operated
valve (two position: opened, closed) and provides:
*
*
*
*
*
*
*
*
*
*

Support for fail open (energize to close) and fail closed (energize to open, default) valves
Monitoring of limit switch feedback, display of actual valve status
Detection of Failure to Open, Failure to Close
Monitoring of Permissive conditions to allow energizing
Monitoring of Interlock conditions to de-energize
Simulation, providing feedback of a working valve while disabling outputs
Monitoring of I/O communication faults
Alarms for Full Stall (didn't move), Transit Stall (didn't reach target position), Interlock Trip, I/O Fault
Operation in Hand, Maintenance, Override, Program and Operator Modes
"Available" status for use by automation logic to know whether valve
can be controlled by other objects.

Execution
Condition
EnableIn is false
EnableIn is true
Prescan

Description
Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
Normal Scan: control / monitor solenoid-operated valve
Clear Ownership, set to De-Energized state, clear "lurking" Commands

Revision v2.0 05 Release Notes


Edge/Level behavior for P_Alarm 2.0-01. Buffering of Val_*.
Change History
Created:
Created By:
Edited:
Edited By:

27/03/2008 01,50,50
Not Available
18/03/2013 11,26,56
PLANTPAX\Library

RSLogix 5000

P_ValveSO - Instruction Definition


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Page 10
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Signature
ID:
Timestamp:

02A2FCDA
2013-03-18T17:26:56.869Z

Cross Reference
Container
Equipos
Equipos
Equipos
Equipos

Routine
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas
Blk_Valvulas

Location
Sheet 1, F1
Sheet 2, F1
Sheet 3, E2
Sheet 5, E1

Tag
P_ValveSO_300
P_ValveSO_310
P_ValveSO_V350
P_ValveSO_V370

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>
Name
Default
1
Ack_FullStall
1=Full Stall Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Ack
Base Tag:
FullStall.Ack
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

Page 11
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
BOOL

Scope
P_ValveSO

1
Ack_IntlkTrip
1=Interlock Trip Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Ack
Base Tag:
IntlkTrip.Ack
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

1
Ack_IOFault
1=I/O Fault Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Ack
Base Tag:
IOFault.Ack
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

1
Ack_TransitStall
1=Transit Stall Alarm has been acknowledged
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Ack
Base Tag:
TransitStall.Ack
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
Alm_FullStall
1=Valve Full Stall (failed to move at all) Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Alm
Base Tag:
FullStall.Alm
Constant
No
External Access:
Read Only
Alm_FullStall - P_ValveSO/EnableInFalse - *12(OTU)
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
Alm_IntlkTrip
1=Alarm: Valve de-energized by an Interlock NOT OK
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Alm
Base Tag:
IntlkTrip.Alm
Constant
No
External Access:
Read Only
Alm_IntlkTrip - P_ValveSO/EnableInFalse - *12(OTU)

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 12
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Alm_IntlkTrip (Continued)
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)
0
Alm_IOFault
1=I/O Fault Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Alm
Base Tag:
IOFault.Alm
Constant
No
External Access:
Read Only
Alm_IOFault - P_ValveSO/EnableInFalse - *12(OTU)
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
Alm_TransitStall
1=Valve Transit Stall (did not reach target pos.) Alarm
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Alm
Base Tag:
TransitStall.Alm
Constant
No
External Access:
Read Only
Alm_TransitStall - P_ValveSO/EnableInFalse - *12(OTU)
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
BOOL
P_ValveSO
Cfg_FailOpen
1=Fail Open (energize to close), 0=Fail Closed (energize to open)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FailOpen - P_ValveSO/EnableInFalse - 8(XIC), 8(XIO), 9(XIC), 9(XIO)
Cfg_FailOpen - P_ValveSO/Logic - 27(XIC), 27(XIO), 29(XIC), 30(XIO), 31(XIC), 31(XIO), 32(XIC), 32(XIO), 38(XIC), 38(XIO), 39(XIC),
39(XIO), 43(XIC), 43(XIO)
Cfg_FailOpen - P_ValveSO/Prescan - 4(XIC), 4(XIO)
1
Cfg_FullStallAckReqd
1=Acknowledge required for Full Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Cfg_AckReqd
Base Tag:
FullStall.Cfg_AckReqd
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
Cfg_FullStallResetReqd
1=Reset requied to clear Full Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Cfg_ResetReqd
Base Tag:
FullStall.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

3
Cfg_FullStallSeverity
Full Stall Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Cfg_Severity
Base Tag:
FullStall.Cfg_Severity

SINT

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 13
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_FullStallSeverity (Continued)
Constant
No
External Access:
Read/Write
5
Cfg_FullStallT
After command, time with no motion before Fault (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_FullStallT - P_ValveSO/Logic - 5(MUL)

DINT

P_ValveSO

0
Cfg_HasClosedLS
1=Valve provides a Closed Limit Switch signal
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HasClosedLS - P_ValveSO/Logic - 20(XIC), 4(XIO)

BOOL

P_ValveSO

1
Cfg_HasFullStallAlm
1=Full Stall Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Cfg_Exists
Base Tag:
FullStall.Cfg_Exists
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
Cfg_HasIntlkObj
1=Tells HMI a P_Intlk is connected to Inp_Intlk
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_ValveSO

1
Cfg_HasIntlkTripAlm
1=Interlock Trip Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_Exists
Base Tag:
IntlkTrip.Cfg_Exists
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

1
Cfg_HasIOFaultAlm
1=I/O Fault Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_Exists
Base Tag:
IOFault.Cfg_Exists
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
Cfg_HasOpenLS
1=Valve provides an Open Limit Switch signal
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_HasOpenLS - P_ValveSO/Logic - 20(XIC), 3(XIO)

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 14
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Cfg_HasPermObj
1=Tells HMI a P_Perm is connected to Inp_Perm
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_ValveSO

0
Cfg_HasStatsObj
1=Tells HMI a P_ValveStats is monitoring this valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write

BOOL

P_ValveSO

1
Cfg_HasTransitStallAlm
1=Transit Stall Alarm exists and will be checked
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Cfg_Exists
Base Tag:
TransitStall.Cfg_Exists
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

1
Cfg_IntlkTripAckReqd
1=Acknowledge required for Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_AckReqd
Base Tag:
IntlkTrip.Cfg_AckReqd
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

0
Cfg_IntlkTripResetReqd
1=Reset required to clear Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_ResetReqd
Base Tag:
IntlkTrip.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

3
Cfg_IntlkTripSeverity
Interlock Trip Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Cfg_Severity
Base Tag:
IntlkTrip.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_ValveSO

1
Cfg_IOFaultAckReqd
1=Acknowledge required for I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_AckReqd
Base Tag:
IOFault.Cfg_AckReqd
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 15
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Cfg_IOFaultResetReqd
1=Reset required to clear I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_ResetReqd
Base Tag:
IOFault.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

3
Cfg_IOFaultSeverity
I/O Fault Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Cfg_Severity
Base Tag:
IOFault.Cfg_Severity
Constant
No
External Access:
Read/Write

SINT

P_ValveSO

1
BOOL
Cfg_LSFail
1=both switches ON=fail, 0=both switches OFF=fail
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_LSFail - P_ValveSO/EnableInFalse - 8(XIC), 8(XIO)
Cfg_LSFail - P_ValveSO/Logic - 10(XIC), 10(XIO), 11(XIC), 11(XIO), 16(XIC), 16(XIO)

P_ValveSO

0
Cfg_OCmdResets
1=New Oper valve cmd. resets fault, 0=reset req'd to clear fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OCmdResets - P_ValveSO/Logic - 26(XIC), 27(XIO)

BOOL

P_ValveSO

0
Cfg_OvrdPermIntlk
1=Override ignores Bypassable Perm/ Intlk; 0=always use Perm/Intlk
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_OvrdPermIntlk - P_ValveSO/Logic - 19(XIC)

BOOL

P_ValveSO

1
BOOL
Cfg_PCmdClear
1=Clear Program Commands on receipt 0=Leave Set
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_PCmdClear
Base Tag:
Mode.Cfg_PCmdClear
Constant
No
External Access:
Read/Write
Cfg_PCmdClear - P_ValveSO/EnableInFalse - 0(XIC), 0(XIO), 2(XIC)
Cfg_PCmdClear - P_ValveSO/Logic - 26(XIC), 29(XIC), 30(XIC), 30(XIO), 44(XIC)
Cfg_PCmdClear - P_ValveSO/Prescan - 1(XIC)
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

P_ValveSO

0
BOOL
Cfg_ProgDefault
Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Cfg_ProgDefault

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 16
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_ProgDefault (Continued)
Base Tag:
Mode.Cfg_ProgDefault
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
1
Cfg_ShedOnFullStall
1=Stop Valve and Alarm on Full Stall; 0=Alarm only on Full Stall
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnFullStall - P_ValveSO/Logic - 37(XIC)

BOOL

P_ValveSO

1
Cfg_ShedOnIOFault
1=Stop Valve and Alarm on I/O Fault; 0=Alarm only on I/O Fault
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnIOFault - P_ValveSO/Logic - 27(XIC)

BOOL

P_ValveSO

1
Cfg_ShedOnTransitStall
1=Stop Valve and Alarm on Transit Stall; 0=Alarm only on Transit Stall
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_ShedOnTransitStall - P_ValveSO/Logic - 37(XIC)

BOOL

P_ValveSO

2
Cfg_SimFdbkT
Delay to echo back of Open/Closed status when in Simulation (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_SimFdbkT - P_ValveSO/Logic - 6(MUL)

DINT

P_ValveSO

1
Cfg_TransitStallAckReqd
1=Acknowledge required for Transit Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Cfg_AckReqd
Base Tag:
TransitStall.Cfg_AckReqd
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
Cfg_TransitStallResetReqd
1=Reset required to clear Transit Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Cfg_ResetReqd
Base Tag:
TransitStall.Cfg_ResetReqd
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

3
Cfg_TransitStallSeverity
Transit Stall Alarm Severity 1=info 2=warn 3=excep 4=fault
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Cfg_Severity

SINT

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 17
22/12/2015 09,01,24
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Cfg_TransitStallSeverity (Continued)
Base Tag:
TransitStall.Cfg_Severity
Constant
No
External Access:
Read/Write
10
Cfg_TransitStallT
After command, time to reach position before fault (sec)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_TransitStallT - P_ValveSO/Logic - 5(MUL)

DINT

P_ValveSO

0
BOOL
P_ValveSO
Cfg_UseClosedLS
1=Valve Closed LS should be used for failure checking
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseClosedLS - P_ValveSO/EnableInFalse - 6(XIC), 7(XIC), 7(XIO)
Cfg_UseClosedLS - P_ValveSO/Logic - *4(OTU), 14(XIC), 14(XIO), 15(XIC), 15(XIO), 20(XIO), 32(XIO), 41(XIC)
0
BOOL
P_ValveSO
Cfg_UseOpenLS
1=Valve Open LS should be used for failure checking
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Cfg_UseOpenLS - P_ValveSO/EnableInFalse - 6(XIC), 6(XIO), 7(XIC)
Cfg_UseOpenLS - P_ValveSO/Logic - *3(OTU), 14(XIC), 14(XIO), 15(XIC), 15(XIO), 20(XIO), 32(XIO), 41(XIC)
1
EnableIn
Enable Input - System Defined Parameter
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_ValveSO

0
EnableOut
Enable Output - System Defined Parameter
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_ValveSO

0
Err_Alarm
1=Error in Config: Alarm Throttle Time or Severity
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Alarm - P_ValveSO/Logic - *7(OTE)

BOOL

P_ValveSO

0
Err_Sim
1=Error in Config: Invalid Simulation Time (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Err_Sim - P_ValveSO/Logic - *6(OTE), 7(XIC)

BOOL

P_ValveSO

0
Err_Timer
1=Error in Config: Invalid Check Time (use 0 to 2147483)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 18
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Err_Timer (Continued)
Err_Timer - P_ValveSO/Logic - *5(OTE), 7(XIC)
0
Inp_ClosedLS
Valve Closed Limit Switch 1=confirmed CLOSED
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_ClosedLS - P_ValveSO/EnableInFalse - 6(XIO), 7(XIC)
Inp_ClosedLS - P_ValveSO/Logic - 14(XIO), 15(XIC)

BOOL

P_ValveSO

0
Inp_Hand
1=Select Hand (hardwired) Mode
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Inp_Hand
Base Tag:
Mode.Inp_Hand
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

BOOL

P_ValveSO

1
Inp_IntlkOK
1=Interlocks OK, valve can energize
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_IntlkOK - P_ValveSO/Logic - 27(XIO), 31(XIO)

BOOL

P_ValveSO

0
Inp_IOFault
Input Communication Status 0=OK, 1=fail
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_IOFault - P_ValveSO/Logic - 27(XIC)

BOOL

P_ValveSO

1
Inp_NBIntlkOK
1=Non-Bypassable Interlocks OK, valve can energize
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_NBIntlkOK - P_ValveSO/Logic - 27(XIO), 31(XIO)

BOOL

P_ValveSO

1
Inp_NBPermOK
1=Non-Bypassable Permissives OK, valve can energize
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_NBPermOK - P_ValveSO/Logic - 27(XIO), 29(XIC), 30(XIC)

BOOL

P_ValveSO

0
Inp_OpenLS
Valve Open Limit Switch 1=confirmed OPEN
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_OpenLS - P_ValveSO/EnableInFalse - 6(XIC), 7(XIO)
Inp_OpenLS - P_ValveSO/Logic - 14(XIC), 15(XIO)

BOOL

P_ValveSO

BOOL

P_ValveSO

Inp_Ovrd
1=Select Override Mode

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 19
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inp_Ovrd (Continued)
Usage:
Input Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Inp_Ovrd
Base Tag:
Mode.Inp_Ovrd
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
0
DINT
Inp_OvrdCmd
Override Mode Command: 0=None, 1=Close, 2=Open
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_OvrdCmd - P_ValveSO/EnableInFalse - *4(CLR)
Inp_OvrdCmd - P_ValveSO/Logic - *29(CLR), *30(CLR), 29(EQU), 30(EQU)
Inp_OvrdCmd - P_ValveSO/Prescan - *3(CLR)

P_ValveSO

1
Inp_PermOK
1=Permissives OK, Valve can energize
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_PermOK - P_ValveSO/Logic - 27(XIO), 29(XIC), 30(XIC)

BOOL

P_ValveSO

0
Inp_Reset
1=Reset all fault conditions and latched Alarms
Usage:
Input Parameter
Required:
No
Visible:
Yes
External Access:
Read/Write
Inp_Reset - P_ValveSO/Logic - 26(XIC)

BOOL

P_ValveSO

0
BOOL
Inp_Sim
1=Simulate working valve; 0=Open/Close/ Monitor actual valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
Inp_Sim - P_ValveSO/EnableInFalse - 8(XIC), 8(XIO)
Inp_Sim - P_ValveSO/Logic - 14(XIC), 14(XIO), 15(XIC), 15(XIO), 27(XIO), 39(XIO)

P_ValveSO

0
MCmd_Disable
Maintenance Command to Disable Valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Disable - P_ValveSO/EnableInFalse - *3(OTU)
MCmd_Disable - P_ValveSO/Logic - *22(OTU), 22(XIC)
MCmd_Disable - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

0
MCmd_Enable
Maintenance Command to Enable (allow to energize) Valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
MCmd_Enable - P_ValveSO/EnableInFalse - *3(OTU)
MCmd_Enable - P_ValveSO/Logic - *23(OTU), 23(XIC)
MCmd_Enable - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

BOOL

P_ValveSO

OCmd_Bypass

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 20
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

OCmd_Bypass (Continued)
Operator Command to Bypass all Bypassable Interlocks and Permissives
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Bypass - P_ValveSO/EnableInFalse - *3(OTU)
OCmd_Bypass - P_ValveSO/Logic - *17(OTU), 17(XIC)
OCmd_Bypass - P_ValveSO/Prescan - *2(OTU)
0
BOOL
OCmd_Check
Operator Command to Check (not bypass) all Interlocks and Permissives
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Check - P_ValveSO/EnableInFalse - *3(OTU)
OCmd_Check - P_ValveSO/Logic - *18(OTU), 18(XIC)
OCmd_Check - P_ValveSO/Prescan - *2(OTU)

P_ValveSO

0
OCmd_Close
Operator Command to Close Valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Close - P_ValveSO/EnableInFalse - *3(OTU)
OCmd_Close - P_ValveSO/Logic - *30(OTU), 26(XIC), 30(XIC)
OCmd_Close - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

0
OCmd_Open
Operator Command to Open Valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Open - P_ValveSO/EnableInFalse - *3(OTU)
OCmd_Open - P_ValveSO/Logic - *29(OTU), 26(XIC), 29(XIC)
OCmd_Open - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

0
OCmd_Reset
Operator Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_Reset - P_ValveSO/EnableInFalse - *3(OTU)
OCmd_Reset - P_ValveSO/Logic - *26(OTU), 26(XIC)
OCmd_Reset - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

0
OCmd_ResetAckAll
Operator Command to Reset all Alarms and latched Shed conditions
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
OCmd_ResetAckAll - P_ValveSO/EnableInFalse - *3(OTU)
OCmd_ResetAckAll - P_ValveSO/Logic - *26(OTU), 26(XIC)
OCmd_ResetAckAll - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

0
Out
1=Energize Valve Solenoid
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Out - P_ValveSO/EnableInFalse - *10(OTU)

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 21
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Out (Continued)
Out - P_ValveSO/Logic - *39(OTE)
Out - P_ValveSO/Prescan - *6(OTU)
0
PCmd_Acq
Program Command to Acquire ownership (Oper to Prog)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Acq
Base Tag:
Mode.PCmd_Acq
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

BOOL

P_ValveSO

0
PCmd_Close
Program Command to Close Valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Close - P_ValveSO/EnableInFalse - *2(OTU)
PCmd_Close - P_ValveSO/Logic - *30(OTU), 30(XIC)
PCmd_Close - P_ValveSO/Prescan - *1(OTU)

BOOL

P_ValveSO

0
PCmd_FullStallAck
Program Command to Acknowledge Full Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.PCmd_Ack
Base Tag:
FullStall.PCmd_Ack
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)
FullStall.PCmd_Ack - P_ValveSO/Logic - *26(OTL)

BOOL

P_ValveSO

0
PCmd_FullStallInhibit
Program Command to Inhibit Full Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.PCmd_Inhibit
Base Tag:
FullStall.PCmd_Inhibit
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
PCmd_FullStallUninhibit
Program Command to Uninhibit Full Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.PCmd_Uninhibit
Base Tag:
FullStall.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
PCmd_IntlkTripAck
Program Command to Acknowledge Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Ack
Base Tag:
IntlkTrip.PCmd_Ack

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 22
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_IntlkTripAck (Continued)
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)
IntlkTrip.PCmd_Ack - P_ValveSO/Logic - *26(OTL)
0
PCmd_IntlkTripInhibit
Program Command to Inhibit Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Inhibit
Base Tag:
IntlkTrip.PCmd_Inhibit
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

0
PCmd_IntlkTripUninhibit
Program Command to Uninhibit Interlock Trip Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.PCmd_Uninhibit
Base Tag:
IntlkTrip.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

0
PCmd_IOFaultAck
Program Command to Acknowledge I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Ack
Base Tag:
IOFault.PCmd_Ack
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)
IOFault.PCmd_Ack - P_ValveSO/Logic - *26(OTL)

BOOL

P_ValveSO

0
PCmd_IOFaultInhibit
Program Command to Inhibit I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Inhibit
Base Tag:
IOFault.PCmd_Inhibit
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
PCmd_IOFaultUninhibit
Program Command to Uninhibit I/O Fault Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.PCmd_Uninhibit
Base Tag:
IOFault.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
PCmd_Lock
Program Command to Lock Mode in Prog
Usage:
Input Parameter
Required:
No
Visible:
No

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 23
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_Lock (Continued)
AliasFor:
Mode.PCmd_Lock
Base Tag:
Mode.PCmd_Lock
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
0
PCmd_Open
Program Command to Open Valve
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Open - P_ValveSO/EnableInFalse - *2(OTU)
PCmd_Open - P_ValveSO/Logic - *29(OTU), 29(XIC), 30(XIO)
PCmd_Open - P_ValveSO/Prescan - *1(OTU)

BOOL

P_ValveSO

0
PCmd_Rel
Program Command to Release ownership (Prog to Oper)
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Rel
Base Tag:
Mode.PCmd_Rel
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

BOOL

P_ValveSO

0
PCmd_Reset
Program Command to Reset all Alarms requiring Reset
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PCmd_Reset - P_ValveSO/EnableInFalse - *3(OTU)
PCmd_Reset - P_ValveSO/Logic - *26(OTU), 26(XIC)
PCmd_Reset - P_ValveSO/Prescan - *2(OTU)

BOOL

P_ValveSO

0
PCmd_TransitStallAck
Program Command to Acknowledge Transit Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.PCmd_Ack
Base Tag:
TransitStall.PCmd_Ack
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)
TransitStall.PCmd_Ack - P_ValveSO/Logic - *26(OTL)

BOOL

P_ValveSO

0
PCmd_TransitStallInhibit
Program Command to Inhibit Transit Stall Alarm
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.PCmd_Inhibit
Base Tag:
TransitStall.PCmd_Inhibit
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
PCmd_TransitStallUninhibit
Program Command to Uninhibit Transit Stall Alarm
Usage:
Input Parameter
Required:
No

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 24
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

PCmd_TransitStallUninhibit (Continued)
Visible:
No
AliasFor:
TransitStall.PCmd_Uninhibit
Base Tag:
TransitStall.PCmd_Uninhibit
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)
0
PCmd_Unlock
Program Command to Unlock Mode
Usage:
Input Parameter
Required:
No
Visible:
No
AliasFor:
Mode.PCmd_Unlock
Base Tag:
Mode.PCmd_Unlock
Constant
No
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

BOOL

P_ValveSO

0
PSet_Owner
Program Owner Request ID (non-zero) or Release (zero)
Usage:
Input Parameter
Required:
No
Visible:
No
External Access:
Read/Write
PSet_Owner - P_ValveSO/EnableInFalse - 1(EQU), 1(MOV), 1(NEQ)
PSet_Owner - P_ValveSO/Logic - 2(EQU), 2(MOV), 2(NEQ)
PSet_Owner - P_ValveSO/Prescan - *0(CLR)

DINT

P_ValveSO

0
P_ValveSO
Unique Parameter Name for auto - discovery
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_ValveSO

0
Rdy_Bypass
1=Ready to receive OCmd_Bypass (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Bypass - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Bypass - P_ValveSO/Logic - *21(OTE)

BOOL

P_ValveSO

0
Rdy_Check
1=Ready to receive OCmd_Check (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Check - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Check - P_ValveSO/Logic - *21(OTE)

BOOL

P_ValveSO

0
Rdy_Close
1=Ready to receive OCmd_Close (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Close - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Close - P_ValveSO/Logic - *43(OTE)

BOOL

P_ValveSO

0
Rdy_Disable
1=Ready to receive MCmd_Disable (enables HMI button)
Usage:
Output Parameter

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 25
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Rdy_Disable (Continued)
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Disable - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Disable - P_ValveSO/Logic - *25(OTE)
0
Rdy_Enable
1=Ready to receive MCmd_Enable (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Enable - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Enable - P_ValveSO/Logic - *25(OTE)

BOOL

P_ValveSO

0
Rdy_Open
1=Ready to receive OCmd_Open (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Open - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Open - P_ValveSO/Logic - *43(OTE)

BOOL

P_ValveSO

0
Rdy_Reset
1=Ready to receive OCmd_Reset (enables HMI button)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_Reset - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_Reset - P_ValveSO/Logic - *50(OTE)

BOOL

P_ValveSO

0
Rdy_ResetAckAll
1=At least one Alarm or latched Shed condition requires Reset or Ack
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Rdy_ResetAckAll - P_ValveSO/EnableInFalse - *5(OTU)
Rdy_ResetAckAll - P_ValveSO/Logic - *50(OTE)

BOOL

P_ValveSO

0
Sts_AlmInh
1=An Alarm is Inhibited, Disabled or Suppressed, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_AlmInh - P_ValveSO/EnableInFalse - *12(OTL)
Sts_AlmInh - P_ValveSO/Logic - *49(OTE)

BOOL

P_ValveSO

0
Sts_Available
1=Valve available for control by automation (Prog)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Available - P_ValveSO/EnableInFalse - *11(OTU)
Sts_Available - P_ValveSO/Logic - *28(OTE)

BOOL

P_ValveSO

0
Sts_BypActive
1=Bypassing Active (Bypassed or Maintenance)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 26
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_BypActive (Continued)
Sts_BypActive - P_ValveSO/Logic - *19(OTE), 27(XIO), 29(XIC), 30(XIC), 31(XIO)
0
Sts_Bypass
1=Bypassable Interlocks and Permissives are Bypassed
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Bypass - P_ValveSO/Logic - *19(OTE), 20(XIC)

BOOL

P_ValveSO

0
BOOL
Sts_Closed
1=Valve requested to Close and is confirmed Closed
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Closed - P_ValveSO/EnableInFalse - *8(OTE)
Sts_Closed - P_ValveSO/Logic - *41(OTE), 29(XIC), 30(XIO), 43(XIC), 43(XIO)

P_ValveSO

0
BOOL
Sts_Closing
1=Valve requested to Close and awaiting Closed feedback
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Closing - P_ValveSO/EnableInFalse - *8(OTE)
Sts_Closing - P_ValveSO/Logic - *41(OTE), 29(XIC), 42(XIC), 42(XIO), 43(XIC)

P_ValveSO

0
BOOL
Sts_Disabled
1=Valve is Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_Disabled - P_ValveSO/EnableInFalse - *11(OTL)
Sts_Disabled - P_ValveSO/Logic - *24(OTE), 27(XIC), 38(XIC), 42(XIC)

P_ValveSO

0
Sts_Err
1=Error in Config: see detail bits for reason
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Err - P_ValveSO/Logic - *7(OTE), 27(XIC), 38(XIC), 42(XIC)

P_ValveSO

BOOL

1
BOOL
Sts_FullStall
1=Valve Full Stall (failed to move at all)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Inp
Base Tag:
FullStall.Inp
Constant
No
External Access:
Read Only
Sts_FullStall - P_ValveSO/EnableInFalse - *12(OTU)
Sts_FullStall - P_ValveSO/Logic - *34(OTE), 26(XIC), 29(XIC), 30(XIC), 37(XIC), 42(XIC), 43(XIC)
FullStall - P_ValveSO/Logic - *45(P_Alarm)

P_ValveSO

0
Sts_FullStallDisabled
1=Full Stall Alarm has been disabled (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Disabled
Base Tag:
FullStall.Disabled
Constant
No

P_ValveSO

BOOL

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 27
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_FullStallDisabled (Continued)
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)
0
Sts_FullStallInhibited
1=Full Stall Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Inhibited
Base Tag:
FullStall.Inhibited
Constant
No
External Access:
Read Only
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
Sts_FullStallSuppressed
1=Full Stall Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
FullStall.Suppressed
Base Tag:
FullStall.Suppressed
Constant
No
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)

BOOL

P_ValveSO

0
Sts_Hand
1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Hand
Base Tag:
Mode.Sts_Hand
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
Mode.Sts_Hand - P_ValveSO/Logic - 32(XIC), 41(XIO)

BOOL

P_ValveSO

1
Sts_IntlkTrip
1=Valve de-energized by an Interlock NOT OK
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Inp
Base Tag:
IntlkTrip.Inp
Constant
No
External Access:
Read Only
Sts_IntlkTrip - P_ValveSO/EnableInFalse - *12(OTU)
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)
IntlkTrip.Inp - P_ValveSO/Logic - *31(OTE)

BOOL

P_ValveSO

0
Sts_IntlkTripDisabled
1=Interlock Trip Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Disabled
Base Tag:
IntlkTrip.Disabled
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

0
Sts_IntlkTripInhibited
1=Interlock Trip Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No

BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 28
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_IntlkTripInhibited (Continued)
Visible:
No
AliasFor:
IntlkTrip.Inhibited
Base Tag:
IntlkTrip.Inhibited
Constant
No
External Access:
Read Only
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)
0
Sts_IntlkTripSuppressed
1=Interlock Trip Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IntlkTrip.Suppressed
Base Tag:
IntlkTrip.Suppressed
Constant
No
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)

BOOL

P_ValveSO

1
Sts_IOFault
I/O Comm Fault Status (0=OK, 1=Bad)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Inp
Base Tag:
IOFault.Inp
Constant
No
External Access:
Read Only
Sts_IOFault - P_ValveSO/EnableInFalse - *12(OTU)
Sts_IOFault - P_ValveSO/Logic - *27(OTE), 42(XIC), 50(XIO)
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
Sts_IOFaultDisabled
1=I/O Fault Alarm is Disabled (not saved or sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Disabled
Base Tag:
IOFault.Disabled
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
Sts_IOFaultInhibited
1=I/O Fault Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Inhibited
Base Tag:
IOFault.Inhibited
Constant
No
External Access:
Read Only
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

0
Sts_IOFaultSuppressed
1=I/O Fault Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
IOFault.Suppressed
Base Tag:
IOFault.Suppressed
Constant
No
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)

BOOL

P_ValveSO

BOOL

P_ValveSO

Sts_LSFail
1=Limit Switch Overlap Failure

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 29
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_LSFail (Continued)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_LSFail - P_ValveSO/EnableInFalse - *8(OTE)
Sts_LSFail - P_ValveSO/Logic - *16(OTE)
0
BOOL
P_ValveSO
Sts_Maint
1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Maint
Base Tag:
Mode.Sts_Maint
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
Mode.Sts_Maint - P_ValveSO/Logic - 19(XIC), 26(XIC), 27(XIO), 29(XIC), 30(XIC), 33(XIO), 35(XIO), 43(XIC)
0
Sts_MaintByp
1=A Maintenance Bypass is Active, display icon
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_MaintByp - P_ValveSO/EnableInFalse - *11(OTU)
Sts_MaintByp - P_ValveSO/Logic - *20(OTE)

BOOL

P_ValveSO

0
Sts_NoMode
1=NoMode (Disabled because EnableIn is False)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_NoMode
Base Tag:
Mode.Sts_NoMode
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

BOOL

P_ValveSO

0
Sts_NotRdy
1=Valve is Not Ready to Energize (independent of Mode)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Sts_NotRdy - P_ValveSO/EnableInFalse - *11(OTL)
Sts_NotRdy - P_ValveSO/Logic - *27(OTE), 28(XIO), 43(XIO)

BOOL

P_ValveSO

0
BOOL
Sts_Opened
1=Valve requested to open and is confirmed Opened
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Opened - P_ValveSO/EnableInFalse - *8(OTE)
Sts_Opened - P_ValveSO/Logic - *41(OTE), 29(XIO), 30(XIC), 43(XIC), 43(XIO)

P_ValveSO

0
Sts_Opening
1=Valve requested to open and awaiting open feedback
Usage:
Output Parameter
Required:
No
Visible:
Yes
External Access:
Read Only
Sts_Opening - P_ValveSO/EnableInFalse - *8(OTE)

P_ValveSO

BOOL

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 30
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Sts_Opening (Continued)
Sts_Opening - P_ValveSO/Logic - *41(OTE), 30(XIC), 42(XIC), 42(XIO), 43(XIC)
1
BOOL
Sts_Oper
1=Mode is Operator (manual)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Oper
Base Tag:
Mode.Sts_Oper
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
Mode.Sts_Oper - P_ValveSO/Logic - 26(XIC), 27(XIO), 29(XIC), 30(XIC), 43(XIC)

P_ValveSO

0
Sts_Ovrd
1=Mode is Override (supersedes Prog, Oper)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Ovrd
Base Tag:
Mode.Sts_Ovrd
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
Mode.Sts_Ovrd - P_ValveSO/Logic - 19(XIC), 29(XIC), 30(XIC)

BOOL

P_ValveSO

0
Sts_Prog
1=Mode is Program (auto)
Usage:
Output Parameter
Required:
No
Visible:
Yes
AliasFor:
Mode.Sts_Prog
Base Tag:
Mode.Sts_Prog
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
Mode.Sts_Prog - P_ValveSO/Logic - 28(XIC), 29(XIC), 30(XIC)

BOOL

P_ValveSO

0
Sts_ProgOperLock
1=Program or Operator has requested Mode Lock
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
Mode.Sts_ProgOperLock
Base Tag:
Mode.Sts_ProgOperLock
Constant
No
External Access:
Read Only
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)

BOOL

P_ValveSO

1
BOOL
Sts_TransitStall
1=Valve Transit Stall (did not reach target position)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Inp
Base Tag:
TransitStall.Inp
Constant
No
External Access:
Read Only
Sts_TransitStall - P_ValveSO/EnableInFalse - *12(OTU)
Sts_TransitStall - P_ValveSO/Logic - *36(OTE), 26(XIC), 29(XIC), 30(XIC), 37(XIC), 42(XIC), 43(XIC)
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>

Page 31
22/12/2015 09,01,25
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
Sts_TransitStallDisabled
1=Transit Stall Alarm has been disabled (will not be sent)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Disabled
Base Tag:
TransitStall.Disabled
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
Sts_TransitStallInhibited
1=Transit Stall Alarm has been inhibited by logic
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Inhibited
Base Tag:
TransitStall.Inhibited
Constant
No
External Access:
Read Only
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
Sts_TransitStallSuppressed
1=Transit Stall Alarm has been suppressed (logged only)
Usage:
Output Parameter
Required:
No
Visible:
No
AliasFor:
TransitStall.Suppressed
Base Tag:
TransitStall.Suppressed
Constant
No
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)

BOOL

P_ValveSO

0
Val_Cmd
Device Command 0=None, 1=Close, 2=Open
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Cmd - P_ValveSO/EnableInFalse - *11(CLR)
Val_Cmd - P_ValveSO/Logic - *42(CLR), *42(MOV)
Val_Cmd - P_ValveSO/Prescan - *7(CLR)

SINT

P_ValveSO

0
SINT
Val_Fault
Device Fault Status 0=None, 16=Transit Stall, 17 = Full Stall, 32=I/O Fault, 34=Config Error
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fault - P_ValveSO/EnableInFalse - *11(CLR)
Val_Fault - P_ValveSO/Logic - *42(MOV)

P_ValveSO

0
SINT
Val_Fdbk
Device Feedback 0=Moving, 1=Closed, 2=Opened, 3=Limit Switch Failure
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Fdbk - P_ValveSO/EnableInFalse - *8(CLR), *8(MOV)
Val_Fdbk - P_ValveSO/Logic - *16(CLR), *16(MOV), 32(EQU), 32(NEQ), 33(EQU), 35(NEQ)
Val_Fdbk - P_ValveSO/Prescan - *7(CLR)

P_ValveSO

0
DINT
P_ValveSO
Val_Mode
Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
Usage:
Output Parameter
Required:
No
Visible:
No
RSLogix 5000

P_ValveSO Instruction Definition - Parameter Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Type Size: 396 byte (s)
Data Context: P_ValveSO <definition>
Val_Mode (Continued)
AliasFor:
Base Tag:
Constant
External Access:

Page 32
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode.Val
Mode.Val
No
Read Only

0
Val_Notify
Current Alarm Level and Acknowledgement (enumeration)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Notify - P_ValveSO/EnableInFalse - *12(CLR)
Val_Notify - P_ValveSO/Logic - *50(MOV)

SINT

P_ValveSO

0
Val_Owner
Current Object Owner ID (0=not owned)
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Owner - P_ValveSO/EnableInFalse - *1(MOV), 1(EQU)
Val_Owner - P_ValveSO/Logic - *2(MOV), 2(EQU)
Val_Owner - P_ValveSO/Prescan - *0(CLR)

DINT

P_ValveSO

0
SINT
Val_Sts
Device Confirmed Sts 0=? 1=Closed 2=Open 5=Closing, 6=Opening, 32=Disabled
Usage:
Output Parameter
Required:
No
Visible:
No
External Access:
Read Only
Val_Sts - P_ValveSO/EnableInFalse - *11(MOV)
Val_Sts - P_ValveSO/Logic - *42(MOV)
Val_Sts - P_ValveSO/Prescan - *7(CLR)

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Name
Default
'Solenoid Operated Valve'
Cfg_Desc
Description for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Desc - P_ValveSO/Logic - *0(LOWER)
23
Cfg_Desc.LEN
Description for display on HMI
Cfg_Desc.DATA
Description for display on HMI

Page 33
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Data Type
STRING_40

Scope
P_ValveSO

DINT
SINT

'Valve Control'
Cfg_Label
Label for graphic symbol displayed on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Label - P_ValveSO/Logic - 0(LOWER)
13
Cfg_Label.LEN
Label for graphic symbol displayed on HMI
Cfg_Label.DATA
Label for graphic symbol displayed on HMI

STRING_20

'P_ValveSO'
Cfg_Tag
Tagname for display on HMI
Usage:
Local Tag
External Access:
Read/Write
Cfg_Tag - P_ValveSO/Logic - 0(LOWER)
9
Cfg_Tag.LEN
Tagname for display on HMI
Cfg_Tag.DATA
Tagname for display on HMI

STRING_20

P_ValveSO

DINT
SINT
P_ValveSO

DINT
SINT

P_Alarm
FullStall
Valve Full Stall (did not move) Alarm
Usage:
Local Tag
External Access:
Read/Write
FullStall - P_ValveSO/Logic - *45(P_Alarm)
1
BOOL
FullStall.EnableIn
Valve Full Stall (did not move) Alarm Enable Input - System Defined Parameter
0
BOOL
FullStall.EnableOut
Valve Full Stall (did not move) Alarm Enable Output - System Defined Parameter
1
BOOL
FullStall.Inp
Valve Full Stall (did not move) Alarm Alarm Condition Input 1=Alarm
Sts_FullStall - P_ValveSO/EnableInFalse - *12(OTU)
Sts_FullStall - P_ValveSO/Logic - *34(OTE), 26(XIC), 29(XIC), 30(XIC), 37(XIC), 42(XIC), 43(XIC)
0
BOOL
FullStall.Inp_Reset
Valve Full Stall (did not move) Alarm 1=Reset Alarm requiring reset
1
BOOL
FullStall.Cfg_Exists
Valve Full Stall (did not move) Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
FullStall.Cfg_ResetReqd
Valve Full Stall (did not move) Alarm 1=Reset required to clear Alarm
1
BOOL
FullStall.Cfg_AckReqd
Valve Full Stall (did not move) Alarm 1=Acknowledge required for Alarm
0
BOOL
FullStall.Cfg_PCmdClear
Valve Full Stall (did not move) Alarm 1=Clear Program Commands on receipt 0=Leave Set
FullStall.Cfg_PCmdClear - P_ValveSO/Logic - *44(OTE)
3
SINT
FullStall.Cfg_Severity
Valve Full Stall (did not move) Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
FullStall.Cfg_AlmMinOnT
Valve Full Stall (did not move) Alarm Minimum time Alm output stays on (sec)
0
BOOL
FullStall.PCmd_Reset
Valve Full Stall (did not move) Alarm Program Command to Reset latched alarm
FullStall.PCmd_Reset - P_ValveSO/Logic - *26(OTL)
0
BOOL
FullStall.PCmd_Ack
Valve Full Stall (did not move) Alarm Program Command to Acknowledge alarm
FullStall.PCmd_Ack - P_ValveSO/Logic - *26(OTL)
0
BOOL
FullStall.PCmd_Inhibit
Valve Full Stall (did not move) Alarm Program Command to Inhibit alarm (force Alm to 0)

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 34
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

FullStall (Continued)
0
BOOL
FullStall.PCmd_Uninhibit
Valve Full Stall (did not move) Alarm Program Command to Uninhibit alarm
0
BOOL
FullStall.OCmd_Reset
Valve Full Stall (did not move) Alarm Operator Command to Reset latched alarm
0
BOOL
FullStall.OCmd_Ack
Valve Full Stall (did not move) Alarm Operator Command to Acknowledge alarm
0
BOOL
FullStall.OCmd_Suppress
Valve Full Stall (did not move) Alarm Operator Command to Suppress alarm
0
BOOL
FullStall.OCmd_Unsuppress
Valve Full Stall (did not move) Alarm Operator Command to Unsuppress alarm
0
BOOL
FullStall.MCmd_Disable
Valve Full Stall (did not move) Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
FullStall.MCmd_Enable
Valve Full Stall (did not move) Alarm Maintenance Command to Enable alarm
0
SINT
FullStall.Val_Notify
Valve Full Stall (did not move) Alarm Current Alarm Level and Acknowledgement (enumeration)
FullStall.Val_Notify - P_ValveSO/Logic - 50(GRT), 50(MOV)
0
BOOL
FullStall.Alm
Valve Full Stall (did not move) Alarm Alarm output 1=In Alarm
Alm_FullStall - P_ValveSO/EnableInFalse - *12(OTU)
1
BOOL
FullStall.Ack
Valve Full Stall (did not move) Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
FullStall.Inhibited
Valve Full Stall (did not move) Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
FullStall.Suppressed
Valve Full Stall (did not move) Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
FullStall.Disabled
Valve Full Stall (did not move) Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
FullStall.Sts_AlmInh
Valve Full Stall (did not move) Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
FullStall.Sts_AlmInh - P_ValveSO/Logic - 49(XIC)
0
BOOL
FullStall.Sts_Err
Valve Full Stall (did not move) Alarm 1=Error in Config: see detail Err_ bits for reason
FullStall.Sts_Err - P_ValveSO/Logic - 7(XIC)
0
BOOL
FullStall.Err_Timer
Valve Full Stall (did not move) Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
FullStall.Err_Severity
Valve Full Stall (did not move) Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
FullStall.Rdy_Reset
Valve Full Stall (did not move) Alarm Ready to receive OCmd_Reset (enable button)
FullStall.Rdy_Reset - P_ValveSO/Logic - 50(XIC)
0
BOOL
FullStall.Rdy_Ack
Valve Full Stall (did not move) Alarm Ready to receive OCmd_Ack (enable button)
FullStall.Rdy_Ack - P_ValveSO/Logic - 50(XIC)
0
BOOL
FullStall.Rdy_Suppress
Valve Full Stall (did not move) Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
FullStall.Rdy_Unsuppress
Valve Full Stall (did not move) Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
FullStall.Rdy_Disable
Valve Full Stall (did not move) Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
FullStall.Rdy_Enable
Valve Full Stall (did not move) Alarm Ready to receive MCmd_Enable (enable button)
Inf_Tab
Tab to display (FTView ME)
Usage:
External Access:

SINT

P_ValveSO

STRING_16

P_ValveSO

Local Tag
Read/Write

'P_ValveSO'
Inf_Type
Type identifier for HMI navigation
Usage:
Local Tag
External Access:
Read Only
Inf_Type - P_ValveSO/Logic - *0(LOWER)
9
Inf_Type.LEN
Type identifier for HMI navigation
Inf_Type.DATA

DINT
SINT
RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 35
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Inf_Type (Continued)
Type identifier for HMI navigation
P_Alarm
IntlkTrip
Interlock Trip Alarm
Usage:
Local Tag
External Access:
Read/Write
IntlkTrip - P_ValveSO/Logic - *47(P_Alarm)
1
BOOL
IntlkTrip.EnableIn
Interlock Trip Alarm Enable Input - System Defined Parameter
0
BOOL
IntlkTrip.EnableOut
Interlock Trip Alarm Enable Output - System Defined Parameter
1
BOOL
IntlkTrip.Inp
Interlock Trip Alarm Alarm Condition Input 1=Alarm
IntlkTrip.Inp - P_ValveSO/Logic - *31(OTE)
Sts_IntlkTrip - P_ValveSO/EnableInFalse - *12(OTU)
0
BOOL
IntlkTrip.Inp_Reset
Interlock Trip Alarm 1=Reset Alarm requiring reset
1
BOOL
IntlkTrip.Cfg_Exists
Interlock Trip Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
IntlkTrip.Cfg_ResetReqd
Interlock Trip Alarm 1=Reset required to clear Alarm
1
BOOL
IntlkTrip.Cfg_AckReqd
Interlock Trip Alarm 1=Acknowledge required for Alarm
0
BOOL
IntlkTrip.Cfg_PCmdClear
Interlock Trip Alarm 1=Clear Program Commands on receipt 0=Leave Set
IntlkTrip.Cfg_PCmdClear - P_ValveSO/Logic - *44(OTE)
3
SINT
IntlkTrip.Cfg_Severity
Interlock Trip Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
IntlkTrip.Cfg_AlmMinOnT
Interlock Trip Alarm Minimum time Alm output stays on (sec)
0
BOOL
IntlkTrip.PCmd_Reset
Interlock Trip Alarm Program Command to Reset latched alarm
IntlkTrip.PCmd_Reset - P_ValveSO/Logic - *26(OTL)
0
BOOL
IntlkTrip.PCmd_Ack
Interlock Trip Alarm Program Command to Acknowledge alarm
IntlkTrip.PCmd_Ack - P_ValveSO/Logic - *26(OTL)
0
BOOL
IntlkTrip.PCmd_Inhibit
Interlock Trip Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
IntlkTrip.PCmd_Uninhibit
Interlock Trip Alarm Program Command to Uninhibit alarm
0
BOOL
IntlkTrip.OCmd_Reset
Interlock Trip Alarm Operator Command to Reset latched alarm
0
BOOL
IntlkTrip.OCmd_Ack
Interlock Trip Alarm Operator Command to Acknowledge alarm
0
BOOL
IntlkTrip.OCmd_Suppress
Interlock Trip Alarm Operator Command to Suppress alarm
0
BOOL
IntlkTrip.OCmd_Unsuppress
Interlock Trip Alarm Operator Command to Unsuppress alarm
0
BOOL
IntlkTrip.MCmd_Disable
Interlock Trip Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
IntlkTrip.MCmd_Enable
Interlock Trip Alarm Maintenance Command to Enable alarm
0
SINT
IntlkTrip.Val_Notify
Interlock Trip Alarm Current Alarm Level and Acknowledgement (enumeration)
IntlkTrip.Val_Notify - P_ValveSO/Logic - 50(GRT), 50(MOV)
0
BOOL
IntlkTrip.Alm
Interlock Trip Alarm Alarm output 1=In Alarm
Alm_IntlkTrip - P_ValveSO/EnableInFalse - *12(OTU)
1
BOOL
IntlkTrip.Ack
Interlock Trip Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
IntlkTrip.Inhibited
Interlock Trip Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
IntlkTrip.Suppressed
Interlock Trip Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
IntlkTrip.Disabled
Interlock Trip Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 36
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

IntlkTrip (Continued)
0
BOOL
IntlkTrip.Sts_AlmInh
Interlock Trip Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
IntlkTrip.Sts_AlmInh - P_ValveSO/Logic - 49(XIC)
0
BOOL
IntlkTrip.Sts_Err
Interlock Trip Alarm 1=Error in Config: see detail Err_ bits for reason
IntlkTrip.Sts_Err - P_ValveSO/Logic - 7(XIC)
0
BOOL
IntlkTrip.Err_Timer
Interlock Trip Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
IntlkTrip.Err_Severity
Interlock Trip Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
IntlkTrip.Rdy_Reset
Interlock Trip Alarm Ready to receive OCmd_Reset (enable button)
IntlkTrip.Rdy_Reset - P_ValveSO/Logic - 50(XIC)
0
BOOL
IntlkTrip.Rdy_Ack
Interlock Trip Alarm Ready to receive OCmd_Ack (enable button)
IntlkTrip.Rdy_Ack - P_ValveSO/Logic - 50(XIC)
0
BOOL
IntlkTrip.Rdy_Suppress
Interlock Trip Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
IntlkTrip.Rdy_Unsuppress
Interlock Trip Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
IntlkTrip.Rdy_Disable
Interlock Trip Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
IntlkTrip.Rdy_Enable
Interlock Trip Alarm Ready to receive MCmd_Enable (enable button)
IOFault
I/O Fault Alarm
Usage:
Local Tag
External Access:
Read/Write
IOFault - P_ValveSO/Logic - *48(P_Alarm)
1
IOFault.EnableIn
I/O Fault Alarm Enable Input - System Defined Parameter
0
IOFault.EnableOut
I/O Fault Alarm Enable Output - System Defined Parameter
1
IOFault.Inp
I/O Fault Alarm Alarm Condition Input 1=Alarm
Sts_IOFault - P_ValveSO/EnableInFalse - *12(OTU)
Sts_IOFault - P_ValveSO/Logic - *27(OTE), 42(XIC), 50(XIO)
0
IOFault.Inp_Reset
I/O Fault Alarm 1=Reset Alarm requiring reset
1
IOFault.Cfg_Exists
I/O Fault Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
IOFault.Cfg_ResetReqd
I/O Fault Alarm 1=Reset required to clear Alarm
1
IOFault.Cfg_AckReqd
I/O Fault Alarm 1=Acknowledge required for Alarm
0
IOFault.Cfg_PCmdClear
I/O Fault Alarm 1=Clear Program Commands on receipt 0=Leave Set
IOFault.Cfg_PCmdClear - P_ValveSO/Logic - *44(OTE)
3
IOFault.Cfg_Severity
I/O Fault Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
IOFault.Cfg_AlmMinOnT
I/O Fault Alarm Minimum time Alm output stays on (sec)
0
IOFault.PCmd_Reset
I/O Fault Alarm Program Command to Reset latched alarm
IOFault.PCmd_Reset - P_ValveSO/Logic - *26(OTL)
0
IOFault.PCmd_Ack
I/O Fault Alarm Program Command to Acknowledge alarm
IOFault.PCmd_Ack - P_ValveSO/Logic - *26(OTL)
0
IOFault.PCmd_Inhibit
I/O Fault Alarm Program Command to Inhibit alarm (force Alm to 0)
0
IOFault.PCmd_Uninhibit
I/O Fault Alarm Program Command to Uninhibit alarm
0
IOFault.OCmd_Reset
I/O Fault Alarm Operator Command to Reset latched alarm
0
IOFault.OCmd_Ack

P_Alarm

P_ValveSO

BOOL
BOOL
BOOL

BOOL
BOOL
BOOL
BOOL
BOOL
SINT
DINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 37
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

IOFault (Continued)
I/O Fault Alarm Operator Command to Acknowledge alarm
0
BOOL
IOFault.OCmd_Suppress
I/O Fault Alarm Operator Command to Suppress alarm
0
BOOL
IOFault.OCmd_Unsuppress
I/O Fault Alarm Operator Command to Unsuppress alarm
0
BOOL
IOFault.MCmd_Disable
I/O Fault Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
IOFault.MCmd_Enable
I/O Fault Alarm Maintenance Command to Enable alarm
0
SINT
IOFault.Val_Notify
I/O Fault Alarm Current Alarm Level and Acknowledgement (enumeration)
IOFault.Val_Notify - P_ValveSO/Logic - 50(GRT), 50(MOV)
0
BOOL
IOFault.Alm
I/O Fault Alarm Alarm output 1=In Alarm
Alm_IOFault - P_ValveSO/EnableInFalse - *12(OTU)
1
BOOL
IOFault.Ack
I/O Fault Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
IOFault.Inhibited
I/O Fault Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
IOFault.Suppressed
I/O Fault Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
IOFault.Disabled
I/O Fault Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
IOFault.Sts_AlmInh
I/O Fault Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
IOFault.Sts_AlmInh - P_ValveSO/Logic - 49(XIC)
0
BOOL
IOFault.Sts_Err
I/O Fault Alarm 1=Error in Config: see detail Err_ bits for reason
IOFault.Sts_Err - P_ValveSO/Logic - 7(XIC)
0
BOOL
IOFault.Err_Timer
I/O Fault Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
IOFault.Err_Severity
I/O Fault Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
IOFault.Rdy_Reset
I/O Fault Alarm Ready to receive OCmd_Reset (enable button)
IOFault.Rdy_Reset - P_ValveSO/Logic - 50(XIC)
0
BOOL
IOFault.Rdy_Ack
I/O Fault Alarm Ready to receive OCmd_Ack (enable button)
IOFault.Rdy_Ack - P_ValveSO/Logic - 50(XIC)
0
BOOL
IOFault.Rdy_Suppress
I/O Fault Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
IOFault.Rdy_Unsuppress
I/O Fault Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
IOFault.Rdy_Disable
I/O Fault Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
IOFault.Rdy_Enable
I/O Fault Alarm Ready to receive MCmd_Enable (enable button)
P_Mode
Mode
Valve Mode Selection
Usage:
Local Tag
External Access:
Read/Write
Mode - P_ValveSO/EnableInFalse - *0(P_Mode)
Mode - P_ValveSO/Logic - *1(P_Mode)
1
BOOL
Mode.EnableIn
Valve Mode Selection Enable Input - System Defined Parameter
0
BOOL
Mode.EnableOut
Valve Mode Selection Enable Output - System Defined Parameter
0
BOOL
Mode.Inp_Hand
Valve Mode Selection 1=Select Hand (typ. hardwired) Mode
0
BOOL
Mode.Inp_Ovrd
Valve Mode Selection 1=Select Override (typ. Process/Safety Interlock) Mode
1
BOOL
Mode.Cfg_PCmdClear
Valve Mode Selection 1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds
Cfg_PCmdClear - P_ValveSO/EnableInFalse - 0(XIC), 0(XIO), 2(XIC)
Cfg_PCmdClear - P_ValveSO/Logic - 26(XIC), 29(XIC), 30(XIC), 30(XIO), 44(XIC)

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 38
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Mode (Continued)
Cfg_PCmdClear - P_ValveSO/Prescan - 1(XIC)
1
BOOL
Mode.Cfg_OvrdOverLock
Valve Mode Selection 1=Override supersedes Prog/Oper Lock, 0=don't override Lock
0
BOOL
Mode.Cfg_ProgDefault
Valve Mode Selection Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests
0
BOOL
Mode.PCmd_Acq
Valve Mode Selection Program Command to Acquire Ownership (Oper to Prog)
0
BOOL
Mode.PCmd_Rel
Valve Mode Selection Program Command to Release Ownership (Prog to Oper)
0
BOOL
Mode.PCmd_Lock
Valve Mode Selection Program Command to Lock Mode in Prog
0
BOOL
Mode.PCmd_Unlock
Valve Mode Selection Program Command to Unlock Mode
0
BOOL
Mode.MCmd_Acq
Valve Mode Selection Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)
0
BOOL
Mode.MCmd_Rel
Valve Mode Selection Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)
0
BOOL
Mode.OCmd_AcqLock
Valve Mode Selection Operator Command to Acquire and Lock Mode in Oper
0
BOOL
Mode.OCmd_Unlock
Valve Mode Selection Operator Command to Unlock Operator Mode
0
DINT
Mode.Val
Valve Mode Selection Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (P Def), 9=O (O def)
0
BOOL
Mode.Sts_Hand
Valve Mode Selection 1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)
Mode.Sts_Hand - P_ValveSO/Logic - 32(XIC), 41(XIO)
0
BOOL
Mode.Sts_Maint
Valve Mode Selection 1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)
Mode.Sts_Maint - P_ValveSO/Logic - 19(XIC), 26(XIC), 27(XIO), 29(XIC), 30(XIC), 33(XIO), 35(XIO), 43(XIC)
0
BOOL
Mode.Sts_Ovrd
Valve Mode Selection 1=Mode is Override (supersedes Prog, Oper)
Mode.Sts_Ovrd - P_ValveSO/Logic - 19(XIC), 29(XIC), 30(XIC)
0
BOOL
Mode.Sts_Prog
Valve Mode Selection 1=Mode is Program
Mode.Sts_Prog - P_ValveSO/Logic - 28(XIC), 29(XIC), 30(XIC)
1
BOOL
Mode.Sts_Oper
Valve Mode Selection 1=Mode is Operator
Mode.Sts_Oper - P_ValveSO/Logic - 26(XIC), 27(XIO), 29(XIC), 30(XIC), 43(XIC)
0
BOOL
Mode.Sts_ProgOperLock
Valve Mode Selection 1=Program or Operator has requested Mode Lock
0
BOOL
Mode.Sts_ProgOperSel
Valve Mode Selection Prog/Oper selection 1=Program, 0=Operator
0
BOOL
Mode.Sts_NoMode
Valve Mode Selection 1=Mode is NO mode (no owner)
0
BOOL
Mode.Rdy_Acq
Valve Mode Selection 1=Ready for MCmd_Acq
0
BOOL
Mode.Rdy_Rel
Valve Mode Selection 1=Ready for MCmd_Rel
Mode.Rdy_Rel - P_ValveSO/Logic - 22(XIC), 23(XIC), 25(XIC)
1
BOOL
Mode.Rdy_AcqLock
Valve Mode Selection 1=Ready for OCmd_AcqLock
0
BOOL
Mode.Rdy_Unlock
Valve Mode Selection 1=Ready for OCmd_Unlock
P_Alarm
TransitStall
Valve Transit Stall (moved but did not reach target) Alarm
Usage:
Local Tag
External Access:
Read/Write
TransitStall - P_ValveSO/Logic - *46(P_Alarm)
1
BOOL
TransitStall.EnableIn
Valve Transit Stall (moved but did not reach target) Alarm Enable Input - System Defined Parameter
0
BOOL
TransitStall.EnableOut
Valve Transit Stall (moved but did not reach target) Alarm Enable Output - System Defined Parameter
1
BOOL
TransitStall.Inp
Valve Transit Stall (moved but did not reach target) Alarm Alarm Condition Input 1=Alarm
Sts_TransitStall - P_ValveSO/EnableInFalse - *12(OTU)

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 39
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

TransitStall (Continued)
Sts_TransitStall - P_ValveSO/Logic - *36(OTE), 26(XIC), 29(XIC), 30(XIC), 37(XIC), 42(XIC), 43(XIC)
0
BOOL
TransitStall.Inp_Reset
Valve Transit Stall (moved but did not reach target) Alarm 1=Reset Alarm requiring reset
1
BOOL
TransitStall.Cfg_Exists
Valve Transit Stall (moved but did not reach target) Alarm 1=Alarm configured to exist, 0=Does not exist, don't scan
0
BOOL
TransitStall.Cfg_ResetReqd
Valve Transit Stall (moved but did not reach target) Alarm 1=Reset required to clear Alarm
1
BOOL
TransitStall.Cfg_AckReqd
Valve Transit Stall (moved but did not reach target) Alarm 1=Acknowledge required for Alarm
0
BOOL
TransitStall.Cfg_PCmdClear
Valve Transit Stall (moved but did not reach target) Alarm 1=Clear Program Commands on receipt 0=Leave Set
TransitStall.Cfg_PCmdClear - P_ValveSO/Logic - *44(OTE)
3
SINT
TransitStall.Cfg_Severity
Valve Transit Stall (moved but did not reach target) Alarm 1=Info Only; 2=Warning; 3=Process Exception; 4=Fault
5
DINT
TransitStall.Cfg_AlmMinOnT
Valve Transit Stall (moved but did not reach target) Alarm Minimum time Alm output stays on (sec)
0
BOOL
TransitStall.PCmd_Reset
Valve Transit Stall (moved but did not reach target) Alarm Program Command to Reset latched alarm
TransitStall.PCmd_Reset - P_ValveSO/Logic - *26(OTL)
0
BOOL
TransitStall.PCmd_Ack
Valve Transit Stall (moved but did not reach target) Alarm Program Command to Acknowledge alarm
TransitStall.PCmd_Ack - P_ValveSO/Logic - *26(OTL)
0
BOOL
TransitStall.PCmd_Inhibit
Valve Transit Stall (moved but did not reach target) Alarm Program Command to Inhibit alarm (force Alm to 0)
0
BOOL
TransitStall.PCmd_Uninhibit
Valve Transit Stall (moved but did not reach target) Alarm Program Command to Uninhibit alarm
0
BOOL
TransitStall.OCmd_Reset
Valve Transit Stall (moved but did not reach target) Alarm Operator Command to Reset latched alarm
0
BOOL
TransitStall.OCmd_Ack
Valve Transit Stall (moved but did not reach target) Alarm Operator Command to Acknowledge alarm
0
BOOL
TransitStall.OCmd_Suppress
Valve Transit Stall (moved but did not reach target) Alarm Operator Command to Suppress alarm
BOOL
TransitStall.OCmd_Unsuppress 0
Valve Transit Stall (moved but did not reach target) Alarm Operator Command to Unsuppress alarm
0
BOOL
TransitStall.MCmd_Disable
Valve Transit Stall (moved but did not reach target) Alarm Maintenance Command to Disable alarm (force Alm to 0)
0
BOOL
TransitStall.MCmd_Enable
Valve Transit Stall (moved but did not reach target) Alarm Maintenance Command to Enable alarm
0
SINT
TransitStall.Val_Notify
Valve Transit Stall (moved but did not reach target) Alarm Current Alarm Level and Acknowledgement (enumeration)
TransitStall.Val_Notify - P_ValveSO/Logic - 50(GRT), 50(MOV)
0
BOOL
TransitStall.Alm
Valve Transit Stall (moved but did not reach target) Alarm Alarm output 1=In Alarm
Alm_TransitStall - P_ValveSO/EnableInFalse - *12(OTU)
1
BOOL
TransitStall.Ack
Valve Transit Stall (moved but did not reach target) Alarm Alarm acknowledged status: 1=Ack rcvd
0
BOOL
TransitStall.Inhibited
Valve Transit Stall (moved but did not reach target) Alarm 1=Alarm has been Inhibited by Program (will not be sent)
0
BOOL
TransitStall.Suppressed
Valve Transit Stall (moved but did not reach target) Alarm 1=Alarm has been Suppressed by Operator (not visible on HMI)
0
BOOL
TransitStall.Disabled
Valve Transit Stall (moved but did not reach target) Alarm 1=Alarm has been Disabled by Maintanance (will not be sent)
0
BOOL
TransitStall.Sts_AlmInh
Valve Transit Stall (moved but did not reach target) Alarm 1=Alarm has been inhibited, disabled or suppressed, display "I" icon
TransitStall.Sts_AlmInh - P_ValveSO/Logic - 49(XIC)
0
BOOL
TransitStall.Sts_Err
Valve Transit Stall (moved but did not reach target) Alarm 1=Error in Config: see detail Err_ bits for reason
TransitStall.Sts_Err - P_ValveSO/Logic - 7(XIC)
0
BOOL
TransitStall.Err_Timer
Valve Transit Stall (moved but did not reach target) Alarm 1=Error in Config: Invalid timer preset (use 0 to 2147483)
0
BOOL
TransitStall.Err_Severity
Valve Transit Stall (moved but did not reach target) Alarm 1=Error in Config: Invalid Severity (use 1 to 4)
0
BOOL
TransitStall.Rdy_Reset
Valve Transit Stall (moved but did not reach target) Alarm Ready to receive OCmd_Reset (enable button)
TransitStall.Rdy_Reset - P_ValveSO/Logic - 50(XIC)
0
BOOL
TransitStall.Rdy_Ack
RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 40
22/12/2015 09,01,26
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

TransitStall (Continued)
Valve Transit Stall (moved but did not reach target) Alarm Ready to receive OCmd_Ack (enable button)
TransitStall.Rdy_Ack - P_ValveSO/Logic - 50(XIC)
0
BOOL
TransitStall.Rdy_Suppress
Valve Transit Stall (moved but did not reach target) Alarm Ready to receive OCmd_Suppress (enable button)
0
BOOL
TransitStall.Rdy_Unsuppress
Valve Transit Stall (moved but did not reach target) Alarm Ready to receive OCmd_Unsuppress (enable button)
1
BOOL
TransitStall.Rdy_Disable
Valve Transit Stall (moved but did not reach target) Alarm Ready to receive MCmd_Disable (enable button)
0
BOOL
TransitStall.Rdy_Enable
Valve Transit Stall (moved but did not reach target) Alarm Ready to receive MCmd_Enable (enable button)
0
BOOL
Wrk_Bypass
Internal Bypassable Permissives and Interlocks are Bypassed flag
Usage:
Local Tag
External Access:
None
Wrk_Bypass - P_ValveSO/Logic - *17(OTL), *18(OTU), 19(XIC), 21(XIC), 21(XIO)

P_ValveSO

0
BOOL
Wrk_ClosedFdbk
1=LS Feedback shows valve confirmed closed
Usage:
Local Tag
External Access:
None
Wrk_ClosedFdbk - P_ValveSO/EnableInFalse - *7(OTE), 8(XIC), 8(XIO)
Wrk_ClosedFdbk - P_ValveSO/Logic - *15(OTE), 16(XIC), 16(XIO), 32(XIC), 41(XIC), 41(XIO)

P_ValveSO

0
BOOL
Wrk_Disabled
Internal Valve is Disabled
Usage:
Local Tag
External Access:
None
Wrk_Disabled - P_ValveSO/Logic - *22(OTL), *23(OTU), 24(XIC), 25(XIC), 25(XIO)

P_ValveSO

0
Wrk_Fault
Buffer for building Val_Fault
Usage:
Local Tag
External Access:
None
Wrk_Fault - P_ValveSO/Logic - *40(CLR), *42(MOV), 42(MOV)

P_ValveSO

SINT

0
BOOL
Wrk_FullStall
Full Stall Shed Fault (latched, requires reset
Usage:
Local Tag
External Access:
None
Wrk_FullStall - P_ValveSO/EnableInFalse - *9(OTU)
Wrk_FullStall - P_ValveSO/Logic - *26(OTU), *37(OTL), 27(XIC), 38(XIC), 50(XIC)
Wrk_FullStall - P_ValveSO/Prescan - *5(OTU)
Wrk_FullStallT
Timer for Full Stall Check
Usage:
Local Tag
External Access:
None
Wrk_FullStallT - P_ValveSO/EnableInFalse - *9(RES)
Wrk_FullStallT - P_ValveSO/Logic - *26(RES), *33(TON)
Wrk_FullStallT - P_ValveSO/Prescan - *5(RES)
0
Wrk_FullStallT.PRE
Timer for Full Stall Check
Wrk_FullStallT.PRE - P_ValveSO/Logic - *5(MOV), *5(MUL)
0
Wrk_FullStallT.PRE.31
Timer for Full Stall Check
Wrk_FullStallT.PRE.31 - P_ValveSO/Logic - 5(XIC)
0
Wrk_FullStallT.ACC
Timer for Full Stall Check
0
Wrk_FullStallT.EN
Timer for Full Stall Check
0
Wrk_FullStallT.TT
Timer for Full Stall Check
0
Wrk_FullStallT.DN
Timer for Full Stall Check
Wrk_FullStallT.DN - P_ValveSO/Logic - 34(XIC), 35(XIO)

TIMER

P_ValveSO

P_ValveSO

DINT
BOOL
DINT
BOOL
BOOL
BOOL

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 41
22/12/2015 09,01,27
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

0
BOOL
Wrk_IOFault
I/O Shed Fault (latched, requires reset)
Usage:
Local Tag
External Access:
None
Wrk_IOFault - P_ValveSO/EnableInFalse - *9(OTU)
Wrk_IOFault - P_ValveSO/Logic - *26(OTU), *27(OTL), 27(XIC), 38(XIC), 50(XIC)
Wrk_IOFault - P_ValveSO/Prescan - *5(OTU)

P_ValveSO

0
DINT
Wrk_Notify
Buffer for building Val_Notify
Usage:
Local Tag
External Access:
None
Wrk_Notify - P_ValveSO/Logic - *50(CLR), *50(MOV), 50(GRT), 50(MOV)
0
BOOL
Wrk_Notify.0
Buffer for building Val_Notify
Wrk_Notify.0 - P_ValveSO/Logic - *50(OTE)

P_ValveSO

0
BOOL
P_ValveSO
Wrk_Open
1=Requested to OPEN Valve, 0=Requested to CLOSE Valve
Usage:
Local Tag
External Access:
None
Wrk_Open - P_ValveSO/EnableInFalse - *9(OTL), *9(OTU)
Wrk_Open - P_ValveSO/Logic - *29(OTL), *30(OTU), *31(OTL), *31(OTU), *32(OTL), *32(OTU), *38(OTL), *38(OTU), 27(XIC),
27(XIO), 31(XIC), 31(XIO), 33(XIC), 33(XIO), 35(XIC), 35(XIO), 39(XIC), 39(XIO), 41(XIC), 41(XIO), 8(XIC), 9(XIO)
Wrk_Open - P_ValveSO/Prescan - *4(OTL), *4(OTU)
0
BOOL
Wrk_OpenFdbk
1=LS Feedback shows valve confirmed open
Usage:
Local Tag
External Access:
None
Wrk_OpenFdbk - P_ValveSO/EnableInFalse - *6(OTE), 8(XIC), 8(XIO)
Wrk_OpenFdbk - P_ValveSO/Logic - *14(OTE), 16(XIC), 16(XIO), 41(XIC), 41(XIO)

P_ValveSO

0
BOOL
Wrk_SimClosedLS
Simulated valve Closed Limit Switch
Usage:
Local Tag
External Access:
None
Wrk_SimClosedLS - P_ValveSO/EnableInFalse - *9(OTU)
Wrk_SimClosedLS - P_ValveSO/Logic - *10(OTU), *11(OTL), *12(OTU), *13(OTL), 15(XIC)
Wrk_SimClosedLS - P_ValveSO/Prescan - *4(OTU)

P_ValveSO

Wrk_SimCloseT
Simulation Delay until Closed
Usage:
Local Tag
External Access:
None
Wrk_SimCloseT - P_ValveSO/EnableInFalse - *9(RES)
Wrk_SimCloseT - P_ValveSO/Logic - *9(TON)
Wrk_SimCloseT - P_ValveSO/Prescan - *5(RES)
0
Wrk_SimCloseT.PRE
Simulation Delay until Closed
Wrk_SimCloseT.PRE - P_ValveSO/Logic - *6(MOV), 11(CMP)
0
Wrk_SimCloseT.ACC
Simulation Delay until Closed
Wrk_SimCloseT.ACC - P_ValveSO/Logic - 11(CMP)
0
Wrk_SimCloseT.EN
Simulation Delay until Closed
0
Wrk_SimCloseT.TT
Simulation Delay until Closed
0
Wrk_SimCloseT.DN
Simulation Delay until Closed
Wrk_SimCloseT.DN - P_ValveSO/Logic - 13(XIC)

TIMER

0
Wrk_SimOpenLS
Simulated valve Open Limit Switch
Usage:
Local Tag
External Access:
None
Wrk_SimOpenLS - P_ValveSO/EnableInFalse - *9(OTU)

BOOL

P_ValveSO

DINT
DINT
BOOL
BOOL
BOOL

P_ValveSO

RSLogix 5000

P_ValveSO Instruction Definition - Local Tag Listing


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Data Context: P_ValveSO <definition>

Page 42
22/12/2015 09,01,27
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Wrk_SimOpenLS (Continued)
Wrk_SimOpenLS - P_ValveSO/Logic - *10(OTL), *11(OTU), *12(OTL), *13(OTU), 14(XIC)
Wrk_SimOpenLS - P_ValveSO/Prescan - *4(OTU)
TIMER
Wrk_SimOpenT
Simulation Delay until Opened
Usage:
Local Tag
External Access:
None
Wrk_SimOpenT - P_ValveSO/EnableInFalse - *9(RES)
Wrk_SimOpenT - P_ValveSO/Logic - *8(TON)
Wrk_SimOpenT - P_ValveSO/Prescan - *5(RES)
0
DINT
Wrk_SimOpenT.PRE
Simulation Delay until Opened
Wrk_SimOpenT.PRE - P_ValveSO/Logic - *6(CLR), *6(MUL), 10(CMP), 6(MOV)
0
BOOL
Wrk_SimOpenT.PRE.31
Simulation Delay until Opened
Wrk_SimOpenT.PRE.31 - P_ValveSO/Logic - 6(XIC)
0
DINT
Wrk_SimOpenT.ACC
Simulation Delay until Opened
Wrk_SimOpenT.ACC - P_ValveSO/Logic - 10(CMP)
0
BOOL
Wrk_SimOpenT.EN
Simulation Delay until Opened
0
BOOL
Wrk_SimOpenT.TT
Simulation Delay until Opened
0
BOOL
Wrk_SimOpenT.DN
Simulation Delay until Opened
Wrk_SimOpenT.DN - P_ValveSO/Logic - 12(XIC)

P_ValveSO

0
SINT
Wrk_Sts
Buffer for building Val_Sts
Usage:
Local Tag
External Access:
None
Wrk_Sts - P_ValveSO/Logic - *40(CLR), *41(MOV), *42(MOV), 42(MOV)

P_ValveSO

0
BOOL
Wrk_TransitStall
Transit Stall Shed Fault (latched, requires reset
Usage:
Local Tag
External Access:
None
Wrk_TransitStall - P_ValveSO/EnableInFalse - *9(OTU)
Wrk_TransitStall - P_ValveSO/Logic - *26(OTU), *37(OTL), 27(XIC), 38(XIC), 50(XIC)
Wrk_TransitStall - P_ValveSO/Prescan - *5(OTU)

P_ValveSO

Wrk_TransitStallT
Timer for Transit Stall Check
Usage:
Local Tag
External Access:
None
Wrk_TransitStallT - P_ValveSO/EnableInFalse - *9(RES)
Wrk_TransitStallT - P_ValveSO/Logic - *26(RES), *35(TON)
Wrk_TransitStallT - P_ValveSO/Prescan - *5(RES)
0
Wrk_TransitStallT.PRE
Timer for Transit Stall Check
Wrk_TransitStallT.PRE - P_ValveSO/Logic - *5(MOV), *5(MUL)
0
Wrk_TransitStallT.PRE.31
Timer for Transit Stall Check
Wrk_TransitStallT.PRE.31 - P_ValveSO/Logic - 5(XIC)
0
Wrk_TransitStallT.ACC
Timer for Transit Stall Check
0
Wrk_TransitStallT.EN
Timer for Transit Stall Check
0
Wrk_TransitStallT.TT
Timer for Transit Stall Check
0
Wrk_TransitStallT.DN
Timer for Transit Stall Check
Wrk_TransitStallT.DN - P_ValveSO/Logic - 33(XIO), 36(XIC)

TIMER

P_ValveSO

DINT
BOOL
DINT
BOOL
BOOL
BOOL

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 43
22/12/2015 09,01,27
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
P_ValveSO: PROCESS -- SOLENOID OPERATED VALVE
============================================================
Revision 2.0-05 Release: 2013-03-15
Release 2.0-00 2011-09-30: Added logic for Sts_AlmInh, Sts_MaintByp,
Sts_NotRdy for breadcrumbs. Using P_Alarm, P_Mode 2.0.
Made TransitStall and FullStall alarms not exist if no limit
switch feedbacks exist. Fixed 1 LS logic.
Added Val_Fdbk, Val_Cmd, Val_Sts, Val_Fault, Inf_Type,
self-named parameter. Added shed faults. Fixed resetting
of fail timers on Reset command. Changed Override state to
enumerated input Inp_OvrdCmd. Added OCmd_ResetAckAll,
Rdy_ResetAckAll. Fixed Cfg_ time descriptions.
Added display of Local STRING Tags on header (this) rung.
V2.0-01 2011-11-11: Modified Sts_NotRdy logic to handle shed conditions.
V2.0-02 2012-01-27: Modified Maint Mode to allow open, close at any time.
V2.0-03 2012-02-06: Modified command logic to allow better Operator Mode
recovery of valve failures; improved simulation logic.
V2.0-04 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01.
V2.0-05 2013-03-15: Buffering of Val_Sts, Val_Fault, etc.
============================================================
This Instruction controls and monitors a single solenoid operated
valve (typ. two position: opened, closed) and provides:
* Support for fail open (energize to close) and fail closed (energize to open, default) valves
* Monitoring of limit switch feedback, display of actual valve status
* Detection of failure to move (full stall), failure to reach position (transit stall)
* Monitoring of Permissive conditions to allow energizing
* Monitoring of Interlock conditions to de-energize
* Simulation, providing feedback of a working valve while disabling outputs
* Monitoring of I/O communication faults
* Alarms for Full Stall, Transit Stall, Interlock Trip, I/O Fault
* "Available" status for use by automation logic to know whether valve
can be controlled by other objects.
Modes are provided by a P_Mode Add-On Instruction instance.
Alarms are provided by P_Alarm Add-On Instruction instances.
Modes of operation: Operator, Program, Override, Maintenance, Hand
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!

SkipText
JMP

Cfg_Desc

*0(LOWER)

Cfg_Label

0(LOWER)

Cfg_Tag

0(LOWER)

Inf_Type

*0(LOWER)

To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click


to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
Label for graphic
Tagname for display
symbol displayed on
on HMI
HMI
LOWER
LOWER
Lower Case
Lower Case
Dest Inf_Type
Dest
Cfg_Desc
Source Cfg_Tag
Source Cfg_Label
'P_ValveSO'
'P_ValveSO'
'Valve Control'
'Solenoid Operated Va'

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 44
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
MODE PROCESSING
============================================================
This rung handles received Mode Inputs and Commands:

NOTE: All Commands for Mode, Alarm are aliased directly to the
corresponding Commands in the contained P_Mode and P_Alarm AOIs.
Valve Mode Selection
P_Mode
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock

SkipText
LBL

Signature ID: C1F72CF2

Mode

*1(P_Mode)

This rung handles simple First-Come First-Served Ownership Arbitration.


If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
Current Object Owner
(non-zero) or
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
Dest Val_Owner
0
0
0
Source B
0

Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

2(MOV) 2(NEQ) 2(EQU)

Val_Owner

*2(MOV) 2(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 45
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
CONFIGURATION
============================================================
If the Valve does not have an Open Limit Switch input,
it cannot be used for Valve feedback checking.

1=Valve provides an
Open Limit Switch
signal
Cfg_HasOpenLS
/

1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
U

Cfg_HasOpenLS

3(XIO) 20(XIC)

Cfg_UseOpenLS

*3(OTU) 14(XIC) 14(XIO) 15(XIO) 15(XIC) 20(XIO) 32(XIO) 41(XIC)

If the Valve does not have a Closed Limit Switch input,


it cannot be used for Valve feedback checking.

1=Valve provides a
Closed Limit Switch
signal
Cfg_HasClosedLS
/

Cfg_HasClosedLS

4(XIO) 20(XIC)

Cfg_UseClosedLS

*4(OTU) 14(XIC) 14(XIO) 15(XIO) 15(XIC) 20(XIO) 32(XIO) 41(XIC)

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS
U

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 46
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Enter the time (in seconds) for the Valve to successfully move from its starting position before declaring a fault.
Enter the time (in seconds) for the Valve to successfully reach its target position before declaring a fault.
Enter the time (in seconds) to pulse the valve outputs (Out_Open, Out_Close and Out_Stop)
(zero - held on continuously)
If the timer preset calcuated wraps negative (more than 2.14... million seconds), then max out the
Timer Preset. Note that a negative timer preset will fault the controller!!!
##### V2.0-04 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####
Timer for Full Stall
Check
Wrk_FullStallT.PRE.31

Timer for Full Stall


Check
MUL
Multiply
Source A Cfg_FullStallT
5
Source B
1000

Dest Wrk_FullStallT.PRE
0

Timer for Full Stall


Check
MOV
Move
Source 2147483647

Dest Wrk_FullStallT.PRE
0

Timer for Transit


Stall Check
Wrk_TransitStallT.PRE.31

Timer for Transit


Stall Check
MUL
Multiply
Source A Cfg_TransitStallT
10
Source B
1000

Dest Wrk_TransitStallT.PRE
0

Timer for Transit


Stall Check
MOV
Move
Source 2147483647

Dest Wrk_TransitStallT.PRE
0

1=Error in Config:
Invalid Check Time
(use 0 to 2147483)
Err_Timer

Cfg_FullStallT

5(MUL)

Cfg_TransitStallT

5(MUL)

Err_Timer

*5(OTE) 7(XIC)

Wrk_FullStallT.PRE

*5(MOV) *5(MUL)

Wrk_FullStallT.PRE.31

5(XIC)

Wrk_TransitStallT.PRE

*5(MUL) *5(MOV)

Wrk_TransitStallT.PRE.3 5(XIC)
1

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 47
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Enter the time (in seconds) to echo back the desired state when Opened or Closed in simulation
Handle timer preset invalid values as above.
##### V2.0-03 2012-07-17: Changed LESs to XICs to reduce scan time, memory #####
Simulation Delay
until Opened
Wrk_SimOpenT.PRE.31

Simulation Delay
until Opened
MUL
Multiply
Source A Cfg_SimFdbkT
2
Source B
1000

Dest Wrk_SimOpenT.PRE
0

Simulation Delay
until Opened
CLR
Clear
Dest Wrk_SimOpenT.PRE
0

1=Error in Config:
Invalid Simulation
Time (use 0 to
2147483)
Err_Sim

Simulation Delay
until Closed
MOV
Move
Source Wrk_SimOpenT.PRE
0

Cfg_SimFdbkT

6(MUL)

Err_Sim

*6(OTE) 7(XIC)

Wrk_SimCloseT.PRE

*6(MOV) 11(CMP)

Wrk_SimOpenT.PRE

6(MOV) *6(CLR) *6(MUL) 10(CMP)

Dest Wrk_SimCloseT.PRE
0

Wrk_SimOpenT.PRE.31 6(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 48
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


This rung generates a summary Bad Config status, simply an OR of the individual bits provided above
(in the Configuration handling section).
1=Error in Config:
1=Error in Config:
Invalid Check Time
see detail bits for
(use 0 to 2147483)
reason
Err_Timer
Sts_Err
7
1=Error in Config:
Invalid Simulation
Time (use 0 to
2147483)
Err_Sim
Valve Full Stall
(did not move) Alarm
1=Error in Config:
see detail Err_ bits
for reason
FullStall.Sts_Err

1=Error in Config:
Alarm Throttle Time
or Severity
Err_Alarm

Valve Transit Stall


(moved but did not
reach target) Alarm
1=Error in Config:
see detail Err_ bits
for reason
TransitStall.Sts_Err
Interlock Trip Alarm
1=Error in Config:
see detail Err_ bits
for reason
IntlkTrip.Sts_Err
I/O Fault Alarm
1=Error in Config:
see detail Err_ bits
for reason
IOFault.Sts_Err

Err_Alarm

*7(OTE)

Err_Sim

*6(OTE) 7(XIC)

Err_Timer

*5(OTE) 7(XIC)

FullStall.Sts_Err

7(XIC)

IntlkTrip.Sts_Err

7(XIC)

IOFault.Sts_Err

7(XIC)

Sts_Err

*7(OTE) 27(XIC) 38(XIC) 42(XIC)

TransitStall.Sts_Err

7(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 49
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
SIMULATION TIMERS
============================================================
If the Valve SHOULD BE Opened, run an Open Simulation Timer.
1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open

Simulation Delay
until Opened
TON
Timer On Delay
Timer Wrk_SimOpenT
Preset
0
Accum
0

EN
DN

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTU) *31(OTL) 31(XIO) 31(XIC) *32(OTL) *32(OTU) 33(XIO) 33(XIC) 35(XIC)
35(XIO) *38(OTU) *38(OTL) 39(XIO) 39(XIC) 41(XIC) 41(XIO)

Wrk_SimOpenT

*8(TON)

If the valve SHOULD BE CLosed, run a Close Simulation Timer.

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

Simulation Delay
until Closed
TON
Timer On Delay
Timer Wrk_SimCloseT
Preset
0
Accum
0

EN
DN

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTU) *31(OTL) 31(XIO) 31(XIC) *32(OTL) *32(OTU) 33(XIO) 33(XIC) 35(XIC)
35(XIO) *38(OTU) *38(OTL) 39(XIO) 39(XIC) 41(XIC) 41(XIO)

Wrk_SimCloseT

*9(TON)

When 1/4 of the valve simulation open time has expired, move off the simulated closed limit switch.

10

##### V2.0-03 2012-02-02: Added to isolate and improve simulated valve logic #####
1=both switches
ON=fail, 0=both
Simulated valve
Simulation Delay
switches OFF=fail
Closed Limit Switch
until Opened
Cfg_LSFail
Wrk_SimClosedLS
CMP
Compare
U
Expression Wrk_SimOpenT.ACC>(Wrk_SimOpenT.PRE/4)
1=both switches
ON=fail, 0=both
Simulated valve Open
switches OFF=fail
Limit Switch
Wrk_SimOpenLS
Cfg_LSFail
/
L

Cfg_LSFail

10(XIC) 10(XIO) 11(XIC) 11(XIO) 16(XIC) 16(XIO)

Wrk_SimClosedLS

*10(OTU) *11(OTL) *12(OTU) *13(OTL) 15(XIC)

Wrk_SimOpenLS

*10(OTL) *11(OTU) *12(OTL) *13(OTU) 14(XIC)

Wrk_SimOpenT.ACC

10(CMP)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!
Wrk_SimOpenT.PRE

Page 50
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

6(MOV) *6(CLR) *6(MUL) 10(CMP)

When 1/4 of the valve simulation close time has expired, move off the simulated open limit switch.
##### V2.0-03 2012-02-02: Added to isolate and improve simulated valve logic #####
1=both switches
ON=fail, 0=both
Simulated valve Open
Simulation Delay
switches OFF=fail
Limit Switch
until Closed
Cfg_LSFail
Wrk_SimOpenLS
CMP
Compare
U
Expression Wrk_SimCloseT.ACC>(Wrk_SimCloseT.PRE/4)
1=both switches
ON=fail, 0=both
Simulated valve
switches OFF=fail
Closed Limit Switch
Cfg_LSFail
Wrk_SimClosedLS
/
L

11

Cfg_LSFail

10(XIC) 10(XIO) 11(XIO) 11(XIC) 16(XIO) 16(XIC)

Wrk_SimClosedLS

*10(OTU) *11(OTL) *12(OTU) *13(OTL) 15(XIC)

Wrk_SimCloseT.ACC

11(CMP)

Wrk_SimCloseT.PRE

*6(MOV) 11(CMP)

Wrk_SimOpenLS

*10(OTL) *11(OTU) *12(OTL) *13(OTU) 14(XIC)

When the valve simulation open time has expired, move onto the simulated open limit switch.
Simulation Delay
until Opened
Wrk_SimOpenT.DN
12

##### V2.0-03 2012-02-02: Added to isolate and improve simulated valve logic #####
Simulated valve Open
Limit Switch
Wrk_SimOpenLS
L

Wrk_SimClosedLS

*10(OTU) *11(OTL) *12(OTU) *13(OTL) 15(XIC)

Wrk_SimOpenLS

*10(OTL) *11(OTU) *12(OTL) *13(OTU) 14(XIC)

Wrk_SimOpenT.DN

12(XIC)

Simulated valve
Closed Limit Switch
Wrk_SimClosedLS
U

When the valve simulation close time has expired, move onto the simulated closed limit switch.
Simulation Delay
until Closed
Wrk_SimCloseT.DN
13

##### V2.0-03 2012-02-02: Added to isolate and improve simulated valve logic #####
Simulated valve
Simulated valve Open
Closed Limit Switch
Limit Switch
Wrk_SimClosedLS
Wrk_SimOpenLS
L
U

Wrk_SimClosedLS

*10(OTU) *11(OTL) *12(OTU) *13(OTL) 15(XIC)

Wrk_SimCloseT.DN

13(XIC)

Wrk_SimOpenLS

*10(OTL) *11(OTU) *12(OTL) *13(OTU) 14(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 51
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
DEVICE FEEDBACK PROCESSING
============================================================
If the Valve is NOT being simulated and it HAS and IS USING limit switch feedback,
use the state of the limit switch feedback inputs as the Valve position.
If the Valve is being simulated or has no limit switch feedback, use the Sim Timers to provide
"fake" feedback signals based on the simulation time to Open and time to Close.
##### V2.0-03 2012-02-02: Modified to use simulated limit switch #####

14

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
/

1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS

Valve Open Limit


Switch 1=confirmed
OPEN
Inp_OpenLS

1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
/

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
/

Valve Closed Limit


Switch 1=confirmed
CLOSED
Inp_ClosedLS
/

Simulated valve Open


Limit Switch
Wrk_SimOpenLS
1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS
/

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

Cfg_UseClosedLS

*4(OTU) 14(XIC) 14(XIO) 15(XIO) 15(XIC) 20(XIO) 32(XIO) 41(XIC)

Cfg_UseOpenLS

*3(OTU) 14(XIO) 14(XIC) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Inp_ClosedLS

14(XIO) 15(XIC)

Inp_OpenLS

14(XIC) 15(XIO)

Inp_Sim

14(XIO) 14(XIC) 15(XIC) 15(XIO) 27(XIO) 39(XIO)

Wrk_OpenFdbk

*14(OTE) 16(XIO) 16(XIC) 41(XIO) 41(XIC)

Wrk_SimOpenLS

*10(OTL) *11(OTU) *12(OTL) *13(OTU) 14(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 52
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


If the Valve is NOT being simulated and it HAS and IS USING limit switch feedback,
use the state of the limit switch feedback inputs as the Valve position.
If the Valve is being simulated or has no limit switch feedback, use the Sim Timers to provide
"fake" feedback signals based on the simulation time to Open and time to Close.
##### V2.0-03 2012-02-02: Modified to use simulated limit switch #####

15

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
/

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS

Valve Closed Limit


Switch 1=confirmed
CLOSED
Inp_ClosedLS

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS
/

1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS
/

Valve Open Limit


Switch 1=confirmed
OPEN
Inp_OpenLS
/

Simulated valve
Closed Limit Switch
Wrk_SimClosedLS
1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
/

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

Cfg_UseClosedLS

*4(OTU) 14(XIO) 14(XIC) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Cfg_UseOpenLS

*3(OTU) 14(XIO) 14(XIC) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Inp_ClosedLS

14(XIO) 15(XIC)

Inp_OpenLS

14(XIC) 15(XIO)

Inp_Sim

14(XIO) 14(XIC) 15(XIC) 15(XIO) 27(XIO) 39(XIO)

Wrk_ClosedFdbk

*15(OTE) 16(XIC) 16(XIO) 32(XIC) 41(XIC) 41(XIO)

Wrk_SimClosedLS

*10(OTU) *11(OTL) *12(OTU) *13(OTL) 15(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 53
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


This rung generates the Valve Feedback Status bits and Enumeration Value:
Limit Switch Fail, if the Limit Switches are in the fail position (won't be seen in Simulation)
Opened, if the valve is confirmed opened
Closed, if the valve is confirmed closed
Moving, if the Limit Switches show travel
1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail
/

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

1=Limit Switch
Overlap Failure
Sts_LSFail

16

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
MOV
Move
Source

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail
1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail
/

Dest Val_Fdbk
0

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
MOV

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

Move
Source

Dest Val_Fdbk
0

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
MOV

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

Move
Source

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

Cfg_LSFail

10(XIC) 10(XIO) 11(XIC) 11(XIO) 16(XIO) 16(XIC)

Sts_LSFail

*16(OTE)

Val_Fdbk

*16(MOV) *16(CLR) 32(NEQ) 32(EQU) 33(EQU) 35(NEQ)

Wrk_ClosedFdbk

*15(OTE) 16(XIO) 16(XIC) 32(XIC) 41(XIC) 41(XIO)

Wrk_OpenFdbk

*14(OTE) 16(XIO) 16(XIC) 41(XIO) 41(XIC)

Dest Val_Fdbk
0

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
CLR
Clear
Dest
Val_Fdbk
0

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Operator Command to
Bypass all
Bypassable
Interlocks and
Permissives
OCmd_Bypass
17

Normal Scan: control / monitor solenoid-operated valve


============================================================
INTERLOCK / PERMISSIVE BYPASS / CHECK COMMAND HANDLING
============================================================
The Bypass Command bypasses the Bypassable Permissives and Interlocks.
Operator Command to
Bypass all
Bypassable
Interlocks and
Permissives
OCmd_Bypass
U

OCmd_Bypass

*17(OTU) 17(XIC)

Wrk_Bypass

*17(OTL) *18(OTU) 19(XIC) 21(XIO) 21(XIC)

Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
18

Page 54
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

The Check Command enables checking of ALL


Permissives and Interlocks (cancels the bypass).
Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
U

OCmd_Check

*18(OTU) 18(XIC)

Wrk_Bypass

*17(OTL) *18(OTU) 19(XIC) 21(XIO) 21(XIC)

Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass
L

Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass
U

If the internal Bypass flag is set, Bypassable Interlocks and Permissives ARE BYPASSED.
Bypassing is ACTIVE if Bypass selected OR in Maintenance Mode,
or in Override Mode if Override Bypassing is configured.
##### V2.0-00 2011-09-30: Moved Rung to take advantage of these bits in logic below #####
Internal Bypassable
1=Bypassable
Permissives and
Interlocks and
1=Bypassing Active
Interlocks are
Permissives are
(Bypassed or
Bypassed flag
Bypassed
Maintenance)
Wrk_Bypass
Sts_Bypass
Sts_BypActive
19
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
Valve Mode Selection
1=Mode is Override
(supersedes Prog,
Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

1=Override ignores
Bypassable Perm/
Intlk; 0=always use
Perm/Intlk
Cfg_OvrdPermIntlk

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!
Cfg_OvrdPermIntlk

19(XIC)

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Mode.Sts_Ovrd

19(XIC) 29(XIC) 30(XIC)

Sts_BypActive

*19(OTE) 27(XIO) 29(XIC) 30(XIC) 31(XIO)

Sts_Bypass

*19(OTE) 20(XIC)

Wrk_Bypass

*17(OTL) *18(OTU) 19(XIC) 21(XIC) 21(XIO)

Page 55
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If a Maintenance Bypass function is active, display the Maintenance Bypass


Indicator (triangle symbol) on the graphic symbol. Bypass functions are:
* Interlock / Permissive Bypass function is enabled
* Valve HAS opened position feedback designated by engineer, but
maintenance has selected to NOT USE opened position feedback
* Valve HAS closed position feedback designated by engineer, but
maintenance has selected to NOT USE closed position feedback
1=Bypassable
Interlocks and
Permissives are
Bypassed
Sts_Bypass

1=A Maintenance
Bypass is Active,
display icon
Sts_MaintByp

20
1=Valve provides an
Open Limit Switch
signal
Cfg_HasOpenLS

1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
/

1=Valve provides a
Closed Limit Switch
signal
Cfg_HasClosedLS

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS
/

Cfg_HasClosedLS

4(XIO) 20(XIC)

Cfg_HasOpenLS

3(XIO) 20(XIC)

Cfg_UseClosedLS

*4(OTU) 14(XIO) 14(XIC) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Cfg_UseOpenLS

*3(OTU) 14(XIO) 14(XIC) 15(XIO) 15(XIC) 20(XIO) 32(XIO) 41(XIC)

Sts_Bypass

*19(OTE) 20(XIC)

Sts_MaintByp

*20(OTE)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 56
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Ready for Interlock / Permissive Bypass if not bypassed.
Ready to cancel Bypass (resume checking) if bypassed.
##### V2.0-00 2011-09-30 : Rung moved to be with other Bypass rungs. #####
Internal Bypassable
Permissives and
1=Ready to receive
Interlocks are
OCmd_Bypass (enables
Bypassed flag
HMI button)
Wrk_Bypass
Rdy_Bypass
/

21

Internal Bypassable
Permissives and
Interlocks are
Bypassed flag
Wrk_Bypass

Rdy_Bypass

*21(OTE)

Rdy_Check

*21(OTE)

Wrk_Bypass

*17(OTL) *18(OTU) 19(XIC) 21(XIO) 21(XIC)

1=Ready to receive
OCmd_Check (enables
HMI button)
Rdy_Check

============================================================
DEVICE DISABLE/ENABLE COMMAND HANDLING
============================================================
The Disable Command disables the Analog Output.

22

##### V2.0-00 2011-09-30 : Modified to require Maintenance ACQUIRED #####


##### (and so Ready to Release Maintenance Acq.!) to Enable / Disable. #####
Maintenance Command
Maintenance Command
Valve Mode Selection
to Disable Valve
to Disable Valve
1=Ready for MCmd_Rel
MCmd_Disable
MCmd_Disable
Mode.Rdy_Rel
U

MCmd_Disable

*22(OTU) 22(XIC)

Mode.Rdy_Rel

22(XIC) 23(XIC) 25(XIC)

Wrk_Disabled

*22(OTL) *23(OTU) 24(XIC) 25(XIC) 25(XIO)

Internal Valve is
Disabled
Wrk_Disabled
L

The Enable Command cancels the Disable and enables the Analog Output.

23

##### V2.0-00 2011-09-30 : Modified to require Maintenance ACQUIRED #####


##### (and so Ready to Release Maintenance Acq.!) to Enable / Disable. #####
Maintenance Command
Maintenance Command
to Enable (allow to
to Enable (allow to
Valve Mode Selection
energize) Valve
energize) Valve
1=Ready for MCmd_Rel
MCmd_Enable
MCmd_Enable
Mode.Rdy_Rel
U

MCmd_Enable

*23(OTU) 23(XIC)

Mode.Rdy_Rel

22(XIC) 23(XIC) 25(XIC)

Wrk_Disabled

*22(OTL) *23(OTU) 24(XIC) 25(XIC) 25(XIO)

Internal Valve is
Disabled
Wrk_Disabled
U

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!

Page 57
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

If the internal Disabled flag is set, the motor is DISABLED.


Internal Valve is
Disabled
Wrk_Disabled

1=Valve is Disabled
Sts_Disabled

24

Sts_Disabled

*24(OTE) 27(XIC) 38(XIC) 42(XIC)

Wrk_Disabled

*22(OTL) *23(OTU) 24(XIC) 25(XIC) 25(XIO)

Ready to Disable device if in Maintenance Mode and device is NOT Disabled.


Ready to Enable device if in Maintenance Mode and device IS Disabled.
##### V2.0-00 2011-09-30: Modified to require Maintenance Mode, #####
##### and moved to be grouped with other Disable/Enable logic #####
Valve Mode Selection
1=Ready for MCmd_Rel
Mode.Rdy_Rel
25

Internal Valve is
Disabled
Wrk_Disabled
/
Internal Valve is
Disabled
Wrk_Disabled

Mode.Rdy_Rel

22(XIC) 23(XIC) 25(XIC)

Rdy_Disable

*25(OTE)

Rdy_Enable

*25(OTE)

Wrk_Disabled

*22(OTL) *23(OTU) 24(XIC) 25(XIC) 25(XIO)

1=Ready to receive
MCmd_Disable
(enables HMI button)
Rdy_Disable
1=Ready to receive
MCmd_Enable (enables
HMI button)
Rdy_Enable

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 58
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
ALARM RESET COMMAND HANDLING
============================================================
This rung handles the Alarm Reset Input and Commands
and the "Reset and Ack All" Operator Command.
This rung processes received Reset Commands from:
1. The Operator via HMI Operator Command, or
2. Higher-level strategies via Program Command
3. Pushbuttons or other block via Input
4. Resets initiated by other device Operator Commands (if configured to do so)
and forwards the Reset to ALL Alarms and latched Shed conditions.
Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

26

Operator Command to
Open Valve
OCmd_Open

1=New Oper valve


cmd. resets fault,
0=reset req'd to
clear fault
Cfg_OCmdResets

Operator Command to
Close Valve
OCmd_Close

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll

Valve Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Valve Full Stall


(did not move) Alarm
Program Command to
Acknowledge alarm
FullStall.PCmd_Ack
<PCmd_FullStallAck>
L
Valve Transit Stall
(moved but did not
reach target) Alarm
Program Command to
Acknowledge alarm
TransitStall.PCmd_Ack
<PCmd_TransitStallAck>
L
Interlock Trip Alarm
Program Command to
Acknowledge alarm
IntlkTrip.PCmd_Ack
<PCmd_IntlkTripAck>
L
I/O Fault Alarm
Program Command to
Acknowledge alarm
IOFault.PCmd_Ack
<PCmd_IOFaultAck>
L

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U
NOP

1=Reset all fault


conditions and
latched Alarms
Inp_Reset

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 59
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

Valve Full Stall


(did not move) Alarm
Program Command to
Reset latched alarm
FullStall.PCmd_Reset
L

Valve Transit Stall


(moved but did not
reach target) Alarm
Program Command to
Reset latched alarm
TransitStall.PCmd_Reset
L

Interlock Trip Alarm


Program Command to
Reset latched alarm
IntlkTrip.PCmd_Reset
L

I/O Fault Alarm


Program Command to
Reset latched alarm
IOFault.PCmd_Reset
L

1=Valve Full Stall


(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

Timer for Full Stall


Check
Wrk_FullStallT
RES

1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>

Timer for Transit


Stall Check
Wrk_TransitStallT
RES
Full Stall Shed
Fault (latched,
requires reset
Wrk_FullStall
U

Cfg_OCmdResets

26(XIC) 27(XIO)

Cfg_PCmdClear

26(XIC) 29(XIC) 30(XIC) 30(XIO) 44(XIC)

FullStall.PCmd_Ack

*26(OTL)

FullStall.PCmd_Reset

*26(OTL)

Inp_Reset

26(XIC)

IntlkTrip.PCmd_Ack

*26(OTL)

IntlkTrip.PCmd_Reset

*26(OTL)

IOFault.PCmd_Ack

*26(OTL)

IOFault.PCmd_Reset

*26(OTL)

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Mode.Sts_Oper

26(XIC) 27(XIO) 29(XIC) 30(XIC) 43(XIC)

OCmd_Close

26(XIC) 30(XIC) *30(OTU)

OCmd_Open

26(XIC) 29(XIC) *29(OTU)

OCmd_Reset

*26(OTU) 26(XIC)

OCmd_ResetAckAll

26(XIC) *26(OTU)

PCmd_Reset

*26(OTU) 26(XIC)

Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

TransitStall.PCmd_Ack

*26(OTL)

Transit Stall Shed


Fault (latched,
requires reset
Wrk_TransitStall
U

I/O Shed Fault


(latched, requires
reset)
Wrk_IOFault
U

TransitStall.PCmd_Reset *26(OTL)
Wrk_FullStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

Wrk_FullStallT

*26(RES) *33(TON)

Wrk_IOFault

*26(OTU) *27(OTL) 27(XIC) 38(XIC) 50(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!
Wrk_TransitStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

Wrk_TransitStallT

*26(RES) *35(TON)

Page 60
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 61
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
VALVE COMMAND HANDLING
============================================================
The Valve is NOT READY if Interlocks are not OK, Permissives do not allow
the valve to move, there is a latched Fault, the valve is disabled, or
there is a configuration error.
##### V2.0-03 2012-02-02: Corrected permissive conditions w.r.t. Fail Open config. #####
1=Valve is Disabled
Sts_Disabled
27
1=Error in Config:
see detail bits for
reason
Sts_Err

1=Interlocks OK,
valve can energize
Inp_IntlkOK
/

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

1=Non-Bypassable
Interlocks OK, valve
can energize
Inp_NBIntlkOK
/

1=Permissives OK,
Valve can energize
Inp_PermOK
/

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

1=Non-Bypassable
Permissives OK,
valve can energize
Inp_NBPermOK
/

Input Communication
Status 0=OK, 1=fail
Inp_IOFault

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
/

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

I/O Comm Fault


Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>

Full Stall Shed


Fault (latched,
requires reset
Wrk_FullStall

Valve Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
/

Transit Stall Shed


Fault (latched,
requires reset
Wrk_TransitStall

1=New Oper valve


cmd. resets fault,
0=reset req'd to
clear fault
Cfg_OCmdResets
/

I/O Shed Fault


(latched, requires
reset)
Wrk_IOFault

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

1=Stop Valve and


Alarm on I/O Fault;
0=Alarm only on I/O
Fault
Cfg_ShedOnIOFault

I/O Shed Fault


(latched, requires
reset)
Wrk_IOFault
L

Valve Mode Selection


1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

1=Valve is Not Ready


to Energize
(independent of
Mode)
Sts_NotRdy

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 62
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

Cfg_FailOpen

27(XIO) 27(XIC) 29(XIC) 30(XIO) 31(XIC) 31(XIO) 32(XIO) 32(XIC) 38(XIC) 38(XIO) 39(XIO) 39(XIC) 43(XIO) 43(XIC)

Cfg_OCmdResets

26(XIC) 27(XIO)

Cfg_ShedOnIOFault

27(XIC)

Inp_IntlkOK

27(XIO) 31(XIO)

Inp_IOFault

27(XIC)

Inp_NBIntlkOK

27(XIO) 31(XIO)

Inp_NBPermOK

27(XIO) 29(XIC) 30(XIC)

Inp_PermOK

27(XIO) 29(XIC) 30(XIC)

Inp_Sim

14(XIO) 14(XIC) 15(XIC) 15(XIO) 27(XIO) 39(XIO)

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Mode.Sts_Oper

26(XIC) 27(XIO) 29(XIC) 30(XIC) 43(XIC)

Sts_BypActive

*19(OTE) 27(XIO) 29(XIC) 30(XIC) 31(XIO)

Sts_Disabled

*24(OTE) 27(XIC) 38(XIC) 42(XIC)

Sts_Err

*7(OTE) 27(XIC) 38(XIC) 42(XIC)

Sts_IOFault

*27(OTE) 42(XIC) 50(XIO)

Sts_NotRdy

*27(OTE) 28(XIO) 43(XIO)

Wrk_FullStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

Wrk_IOFault

*26(OTU) 27(XIC) *27(OTL) 38(XIC) 50(XIC)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTU) 31(XIO) 31(XIC) *31(OTL) *32(OTU) *32(OTL) 33(XIO) 33(XIC) 35(XIO)
35(XIC) *38(OTL) *38(OTU) 39(XIC) 39(XIO) 41(XIO) 41(XIC)

Wrk_TransitStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 63
22/12/2015 09,01,28
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


##### Rev. 2-0-00, 2011-09-30: Modified Rung #####
#### Most logic has been moved to the Not Ready rung above #####

Valve Mode Selection


1=Mode is Program
Mode.Sts_Prog
<Sts_Prog>
28

The motor is AVAILABLE to be run by automation if it is in PROGRAM


Mode and the "Not Ready" status is cleared.
1=Valve is Not Ready
to Energize
(independent of
Mode)
Sts_NotRdy
/

Mode.Sts_Prog

28(XIC) 29(XIC) 30(XIC)

Sts_Available

*28(OTE)

Sts_NotRdy

*27(OTE) 28(XIO) 43(XIO)

1=Valve available
for control by
automation (Prog)
Sts_Available

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 64
22/12/2015 09,01,29
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


These rungs, in priority order, determine whether the valve should be open or closed.
If a Valve OPEN command is received in Operator, Program or Maintenance
Mode, or if in Override Mode and the Override State is OPEN, mark the valve TO OPEN.
(Modes are mutually exclusive, thus handling the priority.)
##### V2.0-03 2012-02-02: Modified to allow Operator Mode recovery on #####
##### valve stall and allow more Maintenance Mode flexibility. #####
Operator Command to
Open Valve
OCmd_Open
29

Operator Command to
Open Valve
OCmd_Open
U

Valve Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Program Command to
Open Valve
PCmd_Open

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Open Valve
PCmd_Open
U

Valve Mode Selection


1=Mode is Program
Mode.Sts_Prog
<Sts_Prog>

NOP

Override Mode
Command: 0=None,
1=Close, 2=Open
EQU
Equal
Source A Inp_OvrdCmd
0
Source B
2

1=Permissives OK,
Valve can energize
Inp_PermOK

Override Mode
Command: 0=None,
1=Close, 2=Open
CLR
Clear
Dest
Inp_OvrdCmd
0

Valve Mode Selection


1=Mode is Override
(supersedes Prog,
Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

1=Non-Bypassable
Permissives OK,
valve can energize
Inp_NBPermOK

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

1=Valve requested to
Close and is
confirmed Closed
Sts_Closed

1=Valve requested to
Close and awaiting
Closed feedback
Sts_Closing

1=Valve requested to
open and is
confirmed Opened
Sts_Opened
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
Valve Mode Selection
1=Mode is

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 65
22/12/2015 09,01,29
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>
1=Valve Full Stall
(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

Cfg_FailOpen

27(XIO) 27(XIC) 29(XIC) 30(XIO) 31(XIC) 31(XIO) 32(XIO) 32(XIC) 38(XIC) 38(XIO) 39(XIO) 39(XIC) 43(XIO) 43(XIC)

Cfg_PCmdClear

26(XIC) 29(XIC) 30(XIO) 30(XIC) 44(XIC)

Inp_NBPermOK

27(XIO) 29(XIC) 30(XIC)

Inp_OvrdCmd

*29(CLR) 29(EQU) *30(CLR) 30(EQU)

Inp_PermOK

27(XIO) 29(XIC) 30(XIC)

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Mode.Sts_Oper

26(XIC) 27(XIO) 29(XIC) 30(XIC) 43(XIC)

Mode.Sts_Ovrd

19(XIC) 29(XIC) 30(XIC)

Mode.Sts_Prog

28(XIC) 29(XIC) 30(XIC)

OCmd_Open

26(XIC) 29(XIC) *29(OTU)

PCmd_Open

29(XIC) *29(OTU) 30(XIO)

Sts_BypActive

*19(OTE) 27(XIO) 29(XIC) 30(XIC) 31(XIO)

Sts_Closed

29(XIC) 30(XIO) *41(OTE) 43(XIO) 43(XIC)

Sts_Closing

29(XIC) *41(OTE) 42(XIC) 42(XIO) 43(XIC)

Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Sts_Opened

29(XIO) 30(XIC) *41(OTE) 43(XIO) 43(XIC)

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTL) 31(XIC) 31(XIO) *31(OTU) *32(OTL) *32(OTU) 33(XIC) 33(XIO) 35(XIC)
35(XIO) *38(OTL) *38(OTU) 39(XIC) 39(XIO) 41(XIO) 41(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 66
22/12/2015 09,01,29
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


If a Valve CLOSE command is received in Operator, Program or Maintenance
Mode, or if in Override Mode and the Override State is CLOSE, mark the valve TO CLOSE.
##### V2.0-03 2012-02-02: Modified to allow Operator Mode recovery on #####
##### valve stall and allow more Maintenance Mode flexibility. #####
Operator Command to
Close Valve
OCmd_Close
30

Operator Command to
Close Valve
OCmd_Close
U

Valve Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

Program Command to
Close Valve
PCmd_Close

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Close Valve
PCmd_Close
U

Valve Mode Selection


1=Mode is Program
Mode.Sts_Prog
<Sts_Prog>

NOP

Program Command to
Open Valve
PCmd_Open
/

Override Mode
Command: 0=None,
1=Close, 2=Open
EQU
Equal
Source A Inp_OvrdCmd
0
Source B
1

1=Permissives OK,
Valve can energize
Inp_PermOK

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>
/

Override Mode
Command: 0=None,
1=Close, 2=Open
CLR
Clear
Inp_OvrdCmd
Dest
0

Valve Mode Selection


1=Mode is Override
(supersedes Prog,
Oper)
Mode.Sts_Ovrd
<Sts_Ovrd>

1=Non-Bypassable
Permissives OK,
valve can energize
Inp_NBPermOK

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

1=Valve requested to
open and is
confirmed Opened
Sts_Opened

1=Valve requested to
open and awaiting
open feedback

1=Valve requested to
Close and is
confirmed Closed
Sts_Closed
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
U

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>
open feedback
Sts_Opening

Page 67
22/12/2015 09,01,29
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan:
control
/ monitor solenoid-operated valve
(energize
to open)
Cfg_FailOpen
/
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>
1=Valve Full Stall
(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

Cfg_FailOpen

27(XIO) 27(XIC) 29(XIC) 30(XIO) 31(XIC) 31(XIO) 32(XIO) 32(XIC) 38(XIO) 38(XIC) 39(XIO) 39(XIC) 43(XIO) 43(XIC)

Cfg_PCmdClear

26(XIC) 29(XIC) 30(XIO) 30(XIC) 44(XIC)

Inp_NBPermOK

27(XIO) 29(XIC) 30(XIC)

Inp_OvrdCmd

*29(CLR) 29(EQU) *30(CLR) 30(EQU)

Inp_PermOK

27(XIO) 29(XIC) 30(XIC)

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Mode.Sts_Oper

26(XIC) 27(XIO) 29(XIC) 30(XIC) 43(XIC)

Mode.Sts_Ovrd

19(XIC) 29(XIC) 30(XIC)

Mode.Sts_Prog

28(XIC) 29(XIC) 30(XIC)

OCmd_Close

26(XIC) 30(XIC) *30(OTU)

PCmd_Close

30(XIC) *30(OTU)

PCmd_Open

29(XIC) *29(OTU) 30(XIO)

Sts_BypActive

*19(OTE) 27(XIO) 29(XIC) 30(XIC) 31(XIO)

Sts_Closed

29(XIC) 30(XIO) *41(OTE) 43(XIC) 43(XIO)

Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Sts_Opened

29(XIO) 30(XIC) *41(OTE) 43(XIC) 43(XIO)

Sts_Opening

30(XIC) *41(OTE) 42(XIO) 42(XIC) 43(XIC)

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTL) 31(XIC) *31(OTU) 31(XIO) *32(OTL) *32(OTU) 33(XIO) 33(XIC) 35(XIC)
35(XIO) *38(OTL) *38(OTU) 39(XIO) 39(XIC) 41(XIO) 41(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 68
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Higher Priority:
If Interlocks are not OK (Non-Bypassable not OK, or bypassable not OK
and not bypassed by Maintenance, Override or Bypass Command),
set it to its FAIL STATE.
If it is NOT in its fail state (if it is energized) and the Interlock
de-energized it, raise the Interlock Trip alarm.

31

1=Interlocks OK,
valve can energize
Inp_IntlkOK
/

1=Bypassing Active
(Bypassed or
Maintenance)
Sts_BypActive
/

1=Non-Bypassable
Interlocks OK, valve
can energize
Inp_NBIntlkOK
/
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

Interlock Trip Alarm


Alarm Condition
Input 1=Alarm
IntlkTrip.Inp
<Sts_IntlkTrip>

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open

NOP

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L
1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
U

Cfg_FailOpen

27(XIC) 27(XIO) 29(XIC) 30(XIO) 31(XIO) 31(XIC) 32(XIC) 32(XIO) 38(XIO) 38(XIC) 39(XIO) 39(XIC) 43(XIC) 43(XIO)

Inp_IntlkOK

27(XIO) 31(XIO)

Inp_NBIntlkOK

27(XIO) 31(XIO)

IntlkTrip.Inp

*31(OTE)

Sts_BypActive

*19(OTE) 27(XIO) 29(XIC) 30(XIC) 31(XIO)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) 31(XIC) *31(OTU) 31(XIO) *31(OTL) *32(OTU) *32(OTL) 33(XIO) 33(XIC) 35(XIO)
35(XIC) *38(OTU) *38(OTL) 39(XIC) 39(XIO) 41(XIO) 41(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 69
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Higher Priority: HAND always wins over other modes:
If in Hand, have the Valve follow the position feedback.
If the valve is Fail Open, have it set to Open if NOT confirmed FULLY CLOSED.
If the valve is Fail Close, have it set to Close if NOT confirmed FULLY OPEN.
Valve Mode Selection
1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
Mode.Sts_Hand
<Sts_Hand>
32
S:FS

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
EQU
Equal
Source A
Val_Fdbk
0
Source B
2

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
1

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L
Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
EQU
Equal
Source A
Val_Fdbk
0
Source B
1

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
2

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
U
1=Valve Open LS
should be used for

1=Valve Closed LS
should be used for

1=Fail Open
(energize to close),
0=Fail Closed

1=Requested to OPEN
Valve, 0=Requested

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 70
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


should be used for
should be used for
0=Fail Closed
failure checking
failure checking
(energize to open)
Cfg_UseOpenLS
Cfg_UseClosedLS
Cfg_FailOpen
/
/
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L
1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
U

Cfg_FailOpen

27(XIC) 27(XIO) 29(XIC) 30(XIO) 31(XIC) 31(XIO) 32(XIC) 32(XIO) 38(XIC) 38(XIO) 39(XIC) 39(XIO) 43(XIC) 43(XIO)

Cfg_UseClosedLS

*4(OTU) 14(XIC) 14(XIO) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Cfg_UseOpenLS

*3(OTU) 14(XIC) 14(XIO) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Mode.Sts_Hand

32(XIC) 41(XIO)

Val_Fdbk

*16(CLR) *16(MOV) 32(EQU) 32(NEQ) 33(EQU) 35(NEQ)

Wrk_ClosedFdbk

*15(OTE) 16(XIO) 16(XIC) 32(XIC) 41(XIO) 41(XIC)

Wrk_Open

8(XIC) 9(XIO) 27(XIO) 27(XIC) *29(OTL) *30(OTU) 31(XIO) *31(OTL) *31(OTU) 31(XIC) *32(OTU) *32(OTL) 33(XIO) 33(XIC) 35(XIC)
35(XIO) *38(OTL) *38(OTU) 39(XIC) 39(XIO) 41(XIO) 41(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 71
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
VALVE FULL STALL DETECTION
============================================================
If the Valve was told to Open and it hasn't moved off the Fully Closed position,
or if it was told to Close and it hasn't moved off the Fully Open position,
run the Full Stall Timer.

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
33

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
EQU
Equal
Val_Fdbk
Source A
0
Source B
1

Valve Mode Selection


1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

Timer for Transit


Stall Check
Wrk_TransitStallT.DN
/

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
EQU
Equal
Val_Fdbk
Source A
0
Source B
2

Timer for Full Stall


Check
TON
Timer On Delay
Timer Wrk_FullStallT
Preset
0
Accum
0

EN
DN

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Val_Fdbk

*16(MOV) *16(CLR) 32(EQU) 32(NEQ) 33(EQU) 35(NEQ)

Wrk_FullStallT

*26(RES) *33(TON)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTL) 31(XIC) *31(OTU) 31(XIO) *32(OTU) *32(OTL) 33(XIO) 33(XIC) 35(XIO)
35(XIC) *38(OTU) *38(OTL) 39(XIC) 39(XIO) 41(XIC) 41(XIO)

Wrk_TransitStallT.DN

33(XIO) 36(XIC)

If the Full Stall timer times out, the valve never moved when it was commanded.
If we're not in Maintenance mode, issue a Full Stall Status.
Timer for Full Stall
Check
Wrk_FullStallT.DN

1=Valve Full Stall


(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

34

Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Wrk_FullStallT.DN

34(XIC) 35(XIO)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!

Page 72
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

============================================================
VALVE TRANSIT STALL DETECTION
============================================================
If the Valve was told to Open and it hasn't reached fully Open,
or if it was told to Close and it hasn't reached fully Closed,
run the Transit Stall Timer.
##### V2.0-03 2012-02-02: Corrected Transit Stall detection conditions #####

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
35

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
2

Valve Mode Selection


1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
/

Timer for Full Stall


Check
Wrk_FullStallT.DN
/

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
NEQ
Not Equal
Source A
Val_Fdbk
0
Source B
1

Timer for Transit


Stall Check
TON
Timer On Delay
Timer Wrk_TransitStallT
Preset
0
Accum
0

EN
DN

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Val_Fdbk

*16(MOV) *16(CLR) 32(EQU) 32(NEQ) 33(EQU) 35(NEQ)

Wrk_FullStallT.DN

34(XIC) 35(XIO)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) *31(OTL) 31(XIC) *31(OTU) 31(XIO) *32(OTU) *32(OTL) 33(XIO) 33(XIC) 35(XIO)
35(XIC) *38(OTU) *38(OTL) 39(XIC) 39(XIO) 41(XIC) 41(XIO)

Wrk_TransitStallT

*26(RES) *35(TON)

If the Transit Stall timer times out and we're not in Maintenance Mode,
raise the Transit Stall Status (valve moved but did not reach target).
Timer for Transit
Stall Check
Wrk_TransitStallT.DN

1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>

36

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!
Wrk_TransitStallT.DN

Page 73
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

33(XIO) 36(XIC)

============================================================
SHED ON FAULT LOGIC
============================================================
This rung handles latching in of conditions which are configured to cause
the valve to shed (stop).
##### V2.0-00 2011-09-30 : New rung, new Shed function added #####
##### V2.0-01 2011-11-11: Moved I/O Fault logic to Sts_NotRdy rung, above. #####
1=Valve Full Stall
1=Stop Valve and
(failed to move at
Alarm on Full Stall;
all)
0=Alarm only on Full
Stall
Sts_FullStall
<FullStall.Inp>
Cfg_ShedOnFullStall
37

Cfg_ShedOnFullStall

1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>

1=Stop Valve and


Alarm on Transit
Stall; 0=Alarm only
on Transit Stall
Cfg_ShedOnTransitStall

Full Stall Shed


Fault (latched,
requires reset
Wrk_FullStall
L
Transit Stall Shed
Fault (latched,
requires reset
Wrk_TransitStall
L

37(XIC)

Cfg_ShedOnTransitStall 37(XIC)
Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

Wrk_FullStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

Wrk_TransitStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Full Stall Shed


Fault (latched,
requires reset
Wrk_FullStall

Page 74
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Highest Priority:
If the Valve has a Shed Fault OR if the Valve is Disabled or
has a Configuration Error, set it to its FAIL STATE.
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

38
Transit Stall Shed
Fault (latched,
requires reset
Wrk_TransitStall
I/O Shed Fault
(latched, requires
reset)
Wrk_IOFault

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L
1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
U

1=Valve is Disabled
Sts_Disabled
1=Error in Config:
see detail bits for
reason
Sts_Err

Cfg_FailOpen

27(XIO) 27(XIC) 29(XIC) 30(XIO) 31(XIC) 31(XIO) 32(XIO) 32(XIC) 38(XIO) 38(XIC) 39(XIO) 39(XIC) 43(XIC) 43(XIO)

Sts_Disabled

*24(OTE) 27(XIC) 38(XIC) 42(XIC)

Sts_Err

*7(OTE) 27(XIC) 38(XIC) 42(XIC)

Wrk_FullStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

Wrk_IOFault

*26(OTU) *27(OTL) 27(XIC) 38(XIC) 50(XIC)

Wrk_Open

8(XIC) 9(XIO) 27(XIC) 27(XIO) *29(OTL) *30(OTU) 31(XIO) *31(OTL) *31(OTU) 31(XIC) *32(OTU) *32(OTL) 33(XIC) 33(XIO) 35(XIO)
35(XIC) *38(OTL) *38(OTU) 39(XIC) 39(XIO) 41(XIC) 41(XIO)

Wrk_TransitStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

39

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
/

Page 75
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
OUTPUT GENERATION
============================================================
If the Valve is NOT SIMULATED, generate the appropriate outputs for the Valve.
If the Valve is not faulted and not disabledm then:
if the valve energizes to open and should be open, or
if the valve energizes to close and should be closed,
then energize the Output (Out)
1=Fail Open
1=Requested to OPEN
(energize to close),
Valve, 0=Requested
0=Fail Closed
to CLOSE Valve
(energize to open)
Wrk_Open
Cfg_FailOpen
/
1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

1=Energize Valve
Solenoid
Out

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

Cfg_FailOpen

27(XIO) 27(XIC) 29(XIC) 30(XIO) 31(XIC) 31(XIO) 32(XIC) 32(XIO) 38(XIC) 38(XIO) 39(XIC) 39(XIO) 43(XIO) 43(XIC)

Inp_Sim

14(XIC) 14(XIO) 15(XIC) 15(XIO) 27(XIO) 39(XIO)

Out

*39(OTE)

Wrk_Open

8(XIC) 9(XIO) 27(XIO) 27(XIC) *29(OTL) *30(OTU) *31(OTU) *31(OTL) 31(XIC) 31(XIO) *32(OTL) *32(OTU) 33(XIO) 33(XIC) 35(XIO)
35(XIC) *38(OTU) *38(OTL) 39(XIO) 39(XIC) 41(XIC) 41(XIO)

============================================================
DEVICE STATUS GENERATION
============================================================
Val_Sts is the current device status, as determined by this AOI,
based on its knowledge of commands executed and feedback.
(This is the status that should be monitored by, for example, FT Historian.)
0 = Powerup / Unknown
1 = Closed
2 = Opened
5 = Closing
6 = Opening
33 = Device Disabled
Val_Fault is the current device fault status, as determined by this AOI,
based on its knowledge of commands executed and feedback.
(This is the fault status that should be monitored by, for example, FT Historian.)
0 = None
16 = Full Stall
17 = Transit Stall
32 = I/O Fault (from Input)
34 = Configuration Error

40

##### V2.0-05 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed.


Buffer for building
Val_Sts
CLR
Clear
Dest
Wrk_Sts
0

Wrk_Fault

*40(CLR) *42(MOV) 42(MOV)

Wrk_Sts

*40(CLR) *41(MOV) *42(MOV) 42(MOV)

#####
Buffer for building
Val_Fault
CLR
Clear
Dest
Wrk_Fault
0

RSLogix 5000

Logic - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
Total number of rungs in routine: %1!d!

Page 76
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 77
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


These rungs generate the Opening, Opened, Closeping and Closed Status bits.
If the Valve is in HAND and HAS NO POSITION FEEDBACK, its state is meaningless;
turn off ALL the Sts_xxx states!!!!!
If the Valve is commanded to Open and the feedback doesn't yet show it Opened,
the Valve is OpenING.
If the Valve is commanded to Open and the feedback shows it Opened,
the Valve is Opened.
If the Valve is commanded to Close and the feedback does not show Closed,
the Valve is CloseING.
If the Valve is commanded to Close and the feedback shows it has Closed,
the Valve is Closed.
##### V2.0-05 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####

41

Valve Mode Selection


1=Mode is Hand
(supersedes Maint,
Ovrd, Prog, Oper)
Mode.Sts_Hand
<Sts_Hand>
/
1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open

1=Valve requested to
open and awaiting
open feedback
Sts_Opening

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/
1=LS Feedback shows
valve confirmed
closed
Wrk_ClosedFdbk

Buffer for building


Val_Sts
MOV
Move
Source

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

Dest

Wrk_Sts
0

1=Valve requested to
open and is
confirmed Opened
Sts_Opened

Buffer for building


Val_Sts
MOV
Move
Source

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
/

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

Dest

Wrk_Sts
0

1=Valve requested to
Close and awaiting
Closed feedback
Sts_Closing

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>
/

Page 78
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor/ solenoid-operated valve


1=LS Feedback shows
valve confirmed open
Wrk_OpenFdbk

Buffer for building


Val_Sts
MOV
Move
Source

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

Dest

Wrk_Sts
0

1=Valve requested to
Close and is
confirmed Closed
Sts_Closed

Buffer for building


Val_Sts
MOV
Move
Source

Dest

Wrk_Sts
0

Cfg_UseClosedLS

*4(OTU) 14(XIC) 14(XIO) 15(XIO) 15(XIC) 20(XIO) 32(XIO) 41(XIC)

Cfg_UseOpenLS

*3(OTU) 14(XIC) 14(XIO) 15(XIC) 15(XIO) 20(XIO) 32(XIO) 41(XIC)

Mode.Sts_Hand

32(XIC) 41(XIO)

Sts_Closed

29(XIC) 30(XIO) *41(OTE) 43(XIC) 43(XIO)

Sts_Closing

29(XIC) *41(OTE) 42(XIO) 42(XIC) 43(XIC)

Sts_Opened

29(XIO) 30(XIC) *41(OTE) 43(XIC) 43(XIO)

Sts_Opening

30(XIC) *41(OTE) 42(XIO) 42(XIC) 43(XIC)

Wrk_ClosedFdbk

*15(OTE) 16(XIO) 16(XIC) 32(XIC) 41(XIO) 41(XIC)

Wrk_Open

8(XIC) 9(XIO) 27(XIO) 27(XIC) *29(OTL) *30(OTU) 31(XIO) *31(OTL) 31(XIC) *31(OTU) *32(OTU) *32(OTL) 33(XIC) 33(XIO) 35(XIO)
35(XIC) *38(OTU) *38(OTL) 39(XIO) 39(XIC) 41(XIO) 41(XIC)

Wrk_OpenFdbk

*14(OTE) 16(XIO) 16(XIC) 41(XIC) 41(XIO)

Wrk_Sts

*40(CLR) *41(MOV) 42(MOV) *42(MOV)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 79
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


This rung handles the remaining Val_Cmd, Val_Sts and Val_Fault enumerated values.

42

##### V2.0-05 2013-03-15: Added buffering of Val_Sts, Val_Fault, etc., as needed. #####
1=Valve requested to
1=Valve requested to
Device Command
Close and awaiting
open and awaiting
0=None, 1=Close,
Closed feedback
open feedback
2=Open
Sts_Closing
Sts_Opening
CLR
/
/
Clear
Dest
Val_Cmd
0
1=Valve requested to
Close and awaiting
Closed feedback
Sts_Closing

Device Command
0=None, 1=Close,
2=Open
MOV
Move
Source

1=Valve requested to
open and awaiting
open feedback
Sts_Opening

1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>

Dest Val_Cmd
0

Buffer for building


Val_Fault
MOV
Move
Source

1=Valve Full Stall


(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

16

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

I/O Comm Fault


Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>

17

Dest Wrk_Fault
0

Buffer for building


Val_Fault
MOV
Move
Source

32

Dest Wrk_Fault
0

Buffer for building


Val_Sts
MOV

1=Valve is Disabled
Sts_Disabled
Move
Source

1=Error in Config:
see detail bits for
reason
Sts_Err

33

Dest

Wrk_Sts
0

Buffer for building


Val_Fault
MOV
Move
Source

Device Confirmed Sts


0=? 1=Closed 2=Open
5=Closing,
6=Opening,
32=Disabled
MOV
Wrk_Sts
0

Dest Val_Cmd
0

Device Command
0=None, 1=Close,
2=Open
MOV
Move
Source

Move
Source

Dest

34

Dest Wrk_Fault
0

Device Fault Status


0=None, 16=Transit
Stall, 17 = Full
Stall, 32=I/O Fault,
34=Config Error
MOV
Val_Sts
0

Move
Source Wrk_Fault
0

Dest Val_Fault
0

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 80
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

Sts_Closing

29(XIC) *41(OTE) 42(XIO) 42(XIC) 43(XIC)

Sts_Disabled

*24(OTE) 27(XIC) 38(XIC) 42(XIC)

Sts_Err

*7(OTE) 27(XIC) 38(XIC) 42(XIC)

Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Sts_IOFault

*27(OTE) 42(XIC) 50(XIO)

Sts_Opening

30(XIC) *41(OTE) 42(XIO) 42(XIC) 43(XIC)

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

Val_Cmd

*42(MOV) *42(CLR)

Val_Fault

*42(MOV)

Val_Sts

*42(MOV)

Wrk_Fault

*40(CLR) *42(MOV) 42(MOV)

Wrk_Sts

*40(CLR) *41(MOV) *42(MOV) 42(MOV)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 81
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
OPERATOR COMMAND READIES
============================================================
Ready to Open if in Operator or Maintenance, valve is NOT 'not ready' and valve is closed,
or valve is closing and energizes to close.
Ready to Close if in Operator or Maintenance, valve is NOT 'not ready' and valve is opened,
or valve is opening and energizes to open.

Valve Mode Selection


1=Mode is Operator
Mode.Sts_Oper
<Sts_Oper>
43
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>

##### V2.0-03 2012-02-02: Modified to allow Operator Mode recovery on #####


##### valve stall and allow more Maintenance Mode flexibility. #####
1=Valve is Not Ready
to Energize
1=Valve requested to
1=Valv
(independent of
Close and is
Mode)
confirmed Closed
confir
Sts_NotRdy
Sts_Closed
/
1=Valve requested to
Close and awaiting
Closed feedback
Sts_Closing

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>
1=Valve Full Stall
(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

1=Valve requested to
open and is
confirmed Opened
Sts_Opened

1=Valve requested to
open and awaiting
open feedback
Sts_Opening

1=Valv
Cl
confi

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/
Valve Mode Selection
1=Mode is
Maintenance
(supersedes Ovrd,
Prog, Oper)
Mode.Sts_Maint
<Sts_Maint>
1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>
1=Valve Full Stall
(failed to move at
all)
Sts_FullStall
<FullStall.Inp>

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 82
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

1=Valve requested to
open and is
confirmed Opened
Sts_Opened
/

1=Ready to receive
OCmd_Open (enables
HMI button)
Rdy_Open

1=Valve requested to
Close and is
confirmed Closed
Sts_Closed
/

1=Ready to receive
OCmd_Close (enables
HMI button)
Rdy_Close

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 83
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

Cfg_FailOpen

27(XIC) 27(XIO) 29(XIC) 30(XIO) 31(XIO) 31(XIC) 32(XIO) 32(XIC) 38(XIO) 38(XIC) 39(XIC) 39(XIO) 43(XIC) 43(XIO)

Mode.Sts_Maint

19(XIC) 26(XIC) 27(XIO) 29(XIC) 30(XIC) 33(XIO) 35(XIO) 43(XIC)

Mode.Sts_Oper

26(XIC) 27(XIO) 29(XIC) 30(XIC) 43(XIC)

Rdy_Close

*43(OTE)

Rdy_Open

*43(OTE)

Sts_Closed

29(XIC) 30(XIO) *41(OTE) 43(XIO) 43(XIC)

Sts_Closing

29(XIC) *41(OTE) 42(XIC) 42(XIO) 43(XIC)

Sts_FullStall

26(XIC) 29(XIC) 30(XIC) *34(OTE) 37(XIC) 42(XIC) 43(XIC)

Sts_NotRdy

*27(OTE) 28(XIO) 43(XIO)

Sts_Opened

29(XIO) 30(XIC) *41(OTE) 43(XIC) 43(XIO)

Sts_Opening

30(XIC) *41(OTE) 42(XIO) 42(XIC) 43(XIC)

Sts_TransitStall

26(XIC) 29(XIC) 30(XIC) *36(OTE) 37(XIC) 42(XIC) 43(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 84
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

============================================================
ALARM PROCESSING
============================================================
Pass the Cfg_PCmdClear configuration down to each P_Alarm instance.
##### V2.0-04 2012-07-17: Edge/Level behavior for P_Alarm 2.0-01 #####

1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Valve Full Stall


(did not move) Alarm
1=Clear Program
Commands on receipt
0=Leave Set
FullStall.Cfg_PCmdClear

Valve Transit Stall


(moved but did not
reach target) Alarm
1=Clear Program
Commands on receipt
0=Leave Set
TransitStall.Cfg_PCmdClear

Interlock Trip Alarm


1=Clear Program
Commands on receipt
0=Leave Set
IntlkTrip.Cfg_PCmdClear

44
I/O Fault Alarm
1=Clear Program
Commands on receipt
0=Leave Set
IOFault.Cfg_PCmdClear

Cfg_PCmdClear

26(XIC) 29(XIC) 30(XIO) 30(XIC) 44(XIC)

FullStall.Cfg_PCmdClear *44(OTE)
IntlkTrip.Cfg_PCmdClear *44(OTE)
IOFault.Cfg_PCmdClear *44(OTE)
TransitStall.Cfg_PCmdCl *44(OTE)
ear

Handle Valve Full Stall (never moved) Alarm Processing using the standard P_Alarm AOI.
Valve Full Stall
(did not move) Alarm
P_Alarm
Alarm
P_Alarm
FullStall ...
Inp
1
Inp_Reset
0

45

FullStall

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*45(P_Alarm)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 85
22/12/2015 09,01,30
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


Handle Valve Transit Stall (moved but did not complete move)
Alarm Processing using the standard P_Alarm AOI.
Valve Transit Stall
(moved but did not
reach target) Alarm
P_Alarm
Alarm
P_Alarm
TransitStall ...
Inp
1
Inp_Reset
0

46

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

TransitStall

*46(P_Alarm)

Handle Interlock Trip Alarm Processing using the standard P_Alarm AOI.
Interlock Trip Alarm
P_Alarm
Alarm
P_Alarm
IntlkTrip ...
Inp
1
Inp_Reset
0

47

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

IntlkTrip

*47(P_Alarm)

Handle I/O Fault Alarm Processing using the standard P_Alarm AOI.
I/O Fault Alarm
P_Alarm
Alarm
P_Alarm
IOFault ...
Inp
1
Inp_Reset
0

48

IOFault

Alm
Ack
Inhibited
Suppressed
Disabled

Signature ID: 8815AF7A

*48(P_Alarm)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 86
22/12/2015 09,01,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


If ANY alarm is Disabled, Inhibited or Suppressed, set the Alarm Inhibit
summary status bit (which puts the "I" box on the graphic symbol).
Valve Full Stall
(did not move) Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
FullStall.Sts_AlmInh

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh

49
Valve Transit Stall
(moved but did not
reach target) Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
TransitStall.Sts_AlmInh
Interlock Trip Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
IntlkTrip.Sts_AlmInh
I/O Fault Alarm
1=Alarm has been
inhibited, disabled
or suppressed,
display "I" icon
IOFault.Sts_AlmInh

FullStall.Sts_AlmInh

49(XIC)

IntlkTrip.Sts_AlmInh

49(XIC)

IOFault.Sts_AlmInh

49(XIC)

Sts_AlmInh

*49(OTE)

TransitStall.Sts_AlmInh

49(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 87
22/12/2015 09,01,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


============================================================
NOTIFICATION VALUE
============================================================
Indicate the current alarm notification level as the max of any of the alarms:
0 = none
2 = info or prompt only
4 = warning
6 = exception (equipment impact)
8 = fault (equipment failure)
Add one for any unsuppressed alarm that is not acknowledged
or if any Reset is required (Rdy_Reset = 1) (for blink).

50

##### V2.0-00 2011-09-30: Modified to also blink when Reset is Required, #####
##### and moved down to after the Rdy_Reset logic. #####
Buffer for building
Val_Notify
CLR
Clear
Wrk_Notify
Dest
0
Valve Full Stall
(did not move) Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A FullStall.Val_Notify
0
Source B
Wrk_Notify
0
Valve Transit Stall
(moved but did not
reach target) Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A TransitStall.Val_Notify
0
Source B
Wrk_Notify
0
Interlock Trip Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A IntlkTrip.Val_Notify
0
Source B
Wrk_Notify
0
I/O Fault Alarm
Current Alarm Level
and Acknowledgement
(enumeration)
GRT
Greater Than (A>B)
Source A IOFault.Val_Notify
0
Source B
Wrk_Notify
0

Valve Full Stall


(did not move) Alarm
Ready to receive
OCmd_Ack (enable
button)
FullStall.Rdy_Ack

Buffer for building


Val_Notify
MOV
Move
Source FullStall.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source TransitStall.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source IntlkTrip.Val_Notify
0

Dest Wrk_Notify
0

Buffer for building


Val_Notify
MOV
Move
Source IOFault.Val_Notify
0

Dest Wrk_Notify
0

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll

Valve Transit Stall


(moved but did not
reach target) Alarm

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 88
22/12/2015 09,01,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


reach target) Alarm
Ready to receive
OCmd_Ack (enable
button)
TransitStall.Rdy_Ack
Interlock Trip Alarm
Ready to receive
OCmd_Ack (enable
button)
IntlkTrip.Rdy_Ack
I/O Fault Alarm
Ready to receive
OCmd_Ack (enable
button)
IOFault.Rdy_Ack
Valve Full Stall
(did not move) Alarm
Ready to receive
OCmd_Reset (enable
button)
FullStall.Rdy_Reset

1=Ready to receive
OCmd_Reset (enables
HMI button)
Rdy_Reset

Valve Transit Stall


(moved but did not
reach target) Alarm
Ready to receive
OCmd_Reset (enable
button)
TransitStall.Rdy_Reset
Interlock Trip Alarm
Ready to receive
OCmd_Reset (enable
button)
IntlkTrip.Rdy_Reset
I/O Fault Alarm
Ready to receive
OCmd_Reset (enable
button)
IOFault.Rdy_Reset
Full Stall Shed
Fault (latched,
requires reset
Wrk_FullStall
Transit Stall Shed
Fault (latched,
requires reset
Wrk_TransitStall
I/O Shed Fault
(latched, requires
reset)
Wrk_IOFault

I/O Comm Fault


Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>
/

Buffer for building


Val_Notify
Wrk_Notify.0
Current Alarm Level
and Acknowledgement
(enumeration)
MOV
Move
Source Wrk_Notify
0

Dest Val_Notify
0

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 89
22/12/2015 09,01,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve

FullStall.Rdy_Ack

50(XIC)

FullStall.Rdy_Reset

50(XIC)

FullStall.Val_Notify

50(MOV) 50(GRT)

IntlkTrip.Rdy_Ack

50(XIC)

IntlkTrip.Rdy_Reset

50(XIC)

IntlkTrip.Val_Notify

50(GRT) 50(MOV)

IOFault.Rdy_Ack

50(XIC)

IOFault.Rdy_Reset

50(XIC)

IOFault.Val_Notify

50(GRT) 50(MOV)

Rdy_Reset

*50(OTE)

Rdy_ResetAckAll

*50(OTE)

Sts_IOFault

*27(OTE) 42(XIC) 50(XIO)

TransitStall.Rdy_Ack

50(XIC)

TransitStall.Rdy_Reset

50(XIC)

TransitStall.Val_Notify

50(GRT) 50(MOV)

Val_Notify

*50(MOV)

Wrk_FullStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

Wrk_IOFault

*26(OTU) *27(OTL) 27(XIC) 38(XIC) 50(XIC)

Wrk_Notify

50(GRT) *50(MOV) *50(CLR) 50(MOV)

Wrk_Notify.0

*50(OTE)

Wrk_TransitStall

*26(OTU) 27(XIC) *37(OTL) 38(XIC) 50(XIC)

RSLogix 5000

P_ValveSO Instruction Definition - Logic Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Logic
Total number of rungs in routine: 51
Data Context: P_ValveSO <definition>

Page 90
22/12/2015 09,01,31
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Normal Scan: control / monitor solenoid-operated valve


(End)

RSLogix 5000

P_ValveSO Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Prescan
Total number of rungs in routine: 8
Data Context: P_ValveSO <definition>

Page 91
22/12/2015 09,01,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, set to De-Energized state, clear "lurking" Commands


============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
CLR
CLR
Clear
Clear
Dest
Dest
PSet_Owner
Val_Owner
0
0

PSet_Owner

*0(CLR)

Val_Owner

*0(CLR)

"Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Open Valve
PCmd_Open
U

Cfg_PCmdClear

1(XIC)

PCmd_Close

*1(OTU)

PCmd_Open

*1(OTU)

"Lurking" Operator Commands are cleared, as well as Program Reset.


Operator Command to
Bypass all
Bypassable
Interlocks and
Operator Command to
Operator Command to
Permissives
Open Valve
Close Valve
OCmd_Open
OCmd_Close
OCmd_Bypass
U
U
U

Maintenance Command
to Disable Valve
MCmd_Disable
U

Maintenance Command
to Enable (allow to
energize) Valve
MCmd_Enable
U

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

Program Command to
Close Valve
PCmd_Close
U

Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
U
Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U
Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

RSLogix 5000

Prescan - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO
MCmd_Disable

*2(OTU)

MCmd_Enable

*2(OTU)

OCmd_Bypass

*2(OTU)

OCmd_Check

*2(OTU)

OCmd_Close

*2(OTU)

OCmd_Open

*2(OTU)

OCmd_Reset

*2(OTU)

OCmd_ResetAckAll

*2(OTU)

PCmd_Reset

*2(OTU)

Page 92
22/12/2015 09,01,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

The Override Command is set to NONE.


Override Mode
Command: 0=None,
1=Close, 2=Open
CLR
Clear
Inp_OvrdCmd
Dest
0

Inp_OvrdCmd

*3(CLR)

On Prescan, set the valve to its DE-ENERGIZED STATE


(If Fail Closed, Close it. If Fail Open, Open it. Main code will de-energize Output.)
##### V2.0-03 2012-02-02: Modified to work with improved valve simulation #####
1=Fail Open
(energize to close),
1=Requested to OPEN
0=Fail Closed
Valve, 0=Requested
(energize to open)
to CLOSE Valve
Cfg_FailOpen
Wrk_Open
/
U

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
Simulated valve Open
Limit Switch
Wrk_SimOpenLS
U

Cfg_FailOpen

4(XIC) 4(XIO)

Wrk_Open

*4(OTL) *4(OTU)

Wrk_SimClosedLS

*4(OTU)

Wrk_SimOpenLS

*4(OTU)

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L
Simulated valve
Closed Limit Switch
Wrk_SimClosedLS
U

RSLogix 5000

P_ValveSO Instruction Definition - Prescan Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:Prescan
Total number of rungs in routine: 8
Data Context: P_ValveSO <definition>

Page 93
22/12/2015 09,01,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Clear Ownership, set to De-Energized state, clear "lurking" Commands


Clear the latched Run Command, latched Shed faults,
and reset the fault condition and command retrigger timers.
Full Stall Shed
Transit Stall Shed
Fault (latched,
Fault (latched,
requires reset
requires reset
Wrk_FullStall
Wrk_TransitStall
U
U

Timer for Full Stall


Check
Wrk_FullStallT
RES

Wrk_FullStall

*5(OTU)

Wrk_FullStallT

*5(RES)

Wrk_IOFault

*5(OTU)

Wrk_SimCloseT

*5(RES)

Wrk_SimOpenT

*5(RES)

Wrk_TransitStall

*5(OTU)

Wrk_TransitStallT

*5(RES)

Timer for Transit


Stall Check
Wrk_TransitStallT
RES

Simulation Delay
until Opened
Wrk_SimOpenT
RES

I/O Shed Fault


(latched, requires
reset)
Wrk_IOFault
U
Simulation Delay
until Closed
Wrk_SimCloseT
RES

All Outputs are de-energized on Prescan.


1=Energize Valve
Solenoid
Out
U

Out

*6(OTU)

On Prescan, clear the following:


Val_Cmd (no command active)
Val_Fdbk (device position not determined)
Val_Sts (device status powerup / unknown)
##### Rev. 2.0, 2011-09-30: Added Val_Cmd, Val_Fdbk, Val_Sts #####
Device Command
0=None, 1=Close,
2=Open
CLR
Clear
Dest
Val_Cmd
0

Val_Cmd

*7(CLR)

Val_Fdbk

*7(CLR)

Val_Sts

*7(CLR)

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
CLR
Clear
Dest
Val_Fdbk
0

Device Confirmed Sts


0=? 1=Closed 2=Open
5=Closing,
6=Opening,
32=Disabled
CLR
Clear
Dest
Val_Sts
0

RSLogix 5000

Prescan - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Page 94
22/12/2015 09,01,32
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

(End)

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 95
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").
THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!

##### V2.0-00 2011-09-30: Added Sts_NoMode, Val_Mode #####


1=Clear Program
1=Clear Program
Commands on receipt
Commands on receipt
0=Leave Set
0=Leave Set
Valve Mode Selection
Cfg_PCmdClear
Cfg_PCmdClear
<Mode.Cfg_PCmdClear> <Mode.Cfg_PCmdClear>
P_Mode
/
Mode
P_Mode
Mode ...
Sts_Hand
Inp_Hand
0
Sts_Maint
Inp_Ovrd
0
Sts_Ovrd
Sts_Prog
Sts_Oper
Sts_ProgOperLock
Signature ID: C1F72CF2

Cfg_PCmdClear

0(XIC) 0(XIO) 2(XIC)

Mode

*0(P_Mode)

First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.
Program Owner
Request ID
(non-zero) or
Current Object Owner
Release (zero)
ID (0=not owned)
EQU
MOV
Equal
Move
Source A PSet_Owner
Source PSet_Owner
0
0
Source B
0
Dest
Val_Owner
0
Program Owner
Request ID
(non-zero) or
Release (zero)
NEQ
Not Equal
Source A PSet_Owner
0
Source B
0

PSet_Owner

1(MOV) 1(NEQ) 1(EQU)

Val_Owner

*1(MOV) 1(EQU)

Current Object Owner


ID (0=not owned)
EQU
Equal
Source A Val_Owner
0
Source B
0

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 96
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
"Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
1=Clear Program
Commands on receipt
0=Leave Set
Cfg_PCmdClear
<Mode.Cfg_PCmdClear>

Program Command to
Open Valve
PCmd_Open
U

Cfg_PCmdClear

0(XIC) 0(XIO) 2(XIC)

PCmd_Close

*2(OTU)

PCmd_Open

*2(OTU)

Program Command to
Close Valve
PCmd_Close
U

"Lurking" Operator Commands are cleared, as well as Program Reset.

Operator Command to
Open Valve
OCmd_Open
U

Operator Command to
Close Valve
OCmd_Close
U

Operator Command to
Bypass all
Bypassable
Interlocks and
Permissives
OCmd_Bypass
U

Operator Command to
Check (not bypass)
all Interlocks and
Permissives
OCmd_Check
U
Maintenance Command
to Disable Valve
MCmd_Disable
U

Maintenance Command
to Enable (allow to
energize) Valve
MCmd_Enable
U

MCmd_Disable

*3(OTU)

MCmd_Enable

*3(OTU)

OCmd_Bypass

*3(OTU)

OCmd_Check

*3(OTU)

OCmd_Close

*3(OTU)

OCmd_Open

*3(OTU)

OCmd_Reset

*3(OTU)

OCmd_ResetAckAll

*3(OTU)

PCmd_Reset

*3(OTU)

Operator Command to
Reset all Alarms
requiring Reset
OCmd_Reset
U

Operator Command to
Reset all Alarms and
latched Shed
conditions
OCmd_ResetAckAll
U

Program Command to
Reset all Alarms
requiring Reset
PCmd_Reset
U

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 97
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
The Override Command is set to NONE.
Override Mode
Command: 0=None,
1=Close, 2=Open
CLR
Clear
Dest
Inp_OvrdCmd
0

Inp_OvrdCmd

*4(CLR)

Since we're not processing Operator Commands, we're not READY for them either!
1=Ready to receive
OCmd_Open (enables
HMI button)
Rdy_Open
U

1=Ready to receive
OCmd_Close (enables
HMI button)
Rdy_Close
U

1=Ready to receive
OCmd_Bypass (enables
HMI button)
Rdy_Bypass
U

1=Ready to receive
OCmd_Check (enables
HMI button)
Rdy_Check
U
1=Ready to receive
MCmd_Disable
(enables HMI button)
Rdy_Disable
U

1=Ready to receive
MCmd_Enable (enables
HMI button)
Rdy_Enable
U

Rdy_Bypass

*5(OTU)

Rdy_Check

*5(OTU)

Rdy_Close

*5(OTU)

Rdy_Disable

*5(OTU)

Rdy_Enable

*5(OTU)

Rdy_Open

*5(OTU)

Rdy_Reset

*5(OTU)

Rdy_ResetAckAll

*5(OTU)

1=Ready to receive
OCmd_Reset (enables
HMI button)
Rdy_Reset
U

1=At least one Alarm


or latched Shed
condition requires
Reset or Ack
Rdy_ResetAckAll
U

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 98
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
============================================================
LIMIT SWITCH FEEDBACK DETERMINATION
============================================================
This first "Open" feedback is a copy of the Open Limit Switch, if it is being
used, or a copy of the OPPOSITE of the Closed Limit Switch, if ONLY the
Closed Limit Switch is being used.
1=Valve Open LS
Valve Open Limit
should be used for
Switch 1=confirmed
failure checking
OPEN
Cfg_UseOpenLS
Inp_OpenLS

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

6
1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS
/

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS

Cfg_UseClosedLS

6(XIC) 7(XIC) 7(XIO)

Cfg_UseOpenLS

6(XIO) 6(XIC) 7(XIC)

Inp_ClosedLS

6(XIO) 7(XIC)

Inp_OpenLS

6(XIC) 7(XIO)

Wrk_OpenFdbk

*6(OTE) 8(XIO) 8(XIC)

1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS

Valve Closed Limit


Switch 1=confirmed
CLOSED
Inp_ClosedLS
/

This first "Closed" feedback is a copy of the Closed Limit Switch, if it is being
used, or a copy of the OPPOSITE of the Open Limit Switch, if ONLY the
Open Limit Switch is being used.
Valve Closed Limit
Switch 1=confirmed
CLOSED
Inp_ClosedLS

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

7
1=Valve Closed LS
should be used for
failure checking
Cfg_UseClosedLS
/

1=Valve Open LS
should be used for
failure checking
Cfg_UseOpenLS

Cfg_UseClosedLS

6(XIC) 7(XIC) 7(XIO)

Cfg_UseOpenLS

6(XIO) 6(XIC) 7(XIC)

Inp_ClosedLS

6(XIO) 7(XIC)

Inp_OpenLS

6(XIC) 7(XIO)

Wrk_ClosedFdbk

*7(OTE) 8(XIO) 8(XIC)

Valve Open Limit


Switch 1=confirmed
OPEN
Inp_OpenLS
/

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 99
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
============================================================
VALVE FEEDBACK STATUS
============================================================
This rung generates the Valve Feedback Status bits and Enumeration Value:
Limit Switch Fail, if the Limit Switches are in the fail position (won't be seen in Simulation)
Opened, if the valve is confirmed opened
Closed, if the valve is confirmed closed
Moving, if the Limit Switches show travel

1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim
/

1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail
/

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

1=Limit Switch
Overlap Failure
Sts_LSFail

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
MOV
Move
Source
3
Dest

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

Val_Fdbk
0

1=Valve requested to
open and is
confirmed Opened
Sts_Opened

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
MOV
Move
Source
2
Dest

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

Val_Fdbk
0

1=Valve requested to
Close and is
confirmed Closed
Sts_Closed

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
MOV
Move
Source
1
Dest

1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail
1=both switches
ON=fail, 0=both
switches OFF=fail
Cfg_LSFail

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk
/

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk
/

1=LS Feedback shows


valve confirmed open
Wrk_OpenFdbk

1=LS Feedback shows


valve confirmed
closed
Wrk_ClosedFdbk

Val_Fdbk
0

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 100
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
Cfg_LSFail
Wrk_OpenFdbk
Wrk_ClosedFdbk
/
1=Simulate working
valve; 0=Open/Close/
Monitor actual valve
Inp_Sim

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

Cfg_FailOpen

8(XIC) 8(XIO) 9(XIC) 9(XIO)

Cfg_LSFail

8(XIO) 8(XIC)

Inp_Sim

8(XIO) 8(XIC)

Sts_Closed

*8(OTE)

Sts_Closing

*8(OTE)

Sts_LSFail

*8(OTE)

Sts_Opened

*8(OTE)

Sts_Opening

*8(OTE)

Val_Fdbk

*8(MOV) *8(CLR)

Wrk_ClosedFdbk

*7(OTE) 8(XIC) 8(XIO)

Wrk_OpenFdbk

*6(OTE) 8(XIO) 8(XIC)

1=Valve requested to
Close and awaiting
Closed feedback
Sts_Closing

1=Valve requested to
open and awaiting
open feedback
Sts_Opening

Device Feedback
0=Moving, 1=Closed,
2=Opened, 3=Limit
Switch Failure
CLR
Clear
Dest
Val_Fdbk
0

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 101
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
Clear the latched Shed faults, and reset the fault condition and simulation / command retrigger timers.

##### V2.0-00 2011-09-30: Added clearing of latched Shed faults and reset of simulation / retrigger timers. #####
##### V2.0-03 2012-02-02: Modified to work with improved valve simulation #####
Timer for Full Stall
Timer for Transit
Simulation Delay
Simulation Delay
Check
Stall Check
until Opened
until Closed
Wrk_FullStallT
Wrk_TransitStallT
Wrk_SimOpenT
Wrk_SimCloseT
RES
RES
RES
RES
Transit Stall Shed
Fault (latched,
requires reset
Wrk_TransitStall
U

Full Stall Shed


Fault (latched,
requires reset
Wrk_FullStall
U

1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen
/
1=Fail Open
(energize to close),
0=Fail Closed
(energize to open)
Cfg_FailOpen

1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
U
1=Requested to OPEN
Valve, 0=Requested
to CLOSE Valve
Wrk_Open
L

Simulated valve Open


Limit Switch
Wrk_SimOpenLS
U

Cfg_FailOpen

8(XIO) 8(XIC) 9(XIC) 9(XIO)

Wrk_FullStall

*9(OTU)

Wrk_FullStallT

*9(RES)

Wrk_IOFault

*9(OTU)

Wrk_Open

*9(OTU) *9(OTL)

Wrk_SimClosedLS

*9(OTU)

Wrk_SimCloseT

*9(RES)

Wrk_SimOpenLS

*9(OTU)

Wrk_SimOpenT

*9(RES)

Wrk_TransitStall

*9(OTU)

Wrk_TransitStallT

*9(RES)

I/O Shed Fault


(latched, requires
reset)
Wrk_IOFault
U

Simulated valve
Closed Limit Switch
Wrk_SimClosedLS
U

Outputs are cleared when Disabled (EnableInFalse).


##### V2.0-00 2011-09-30: Made into a separate rung. #####
1=Energize Valve
Solenoid
Out
U

10

Out

*10(OTU)

RSLogix 5000

EnableInFalse - Ladder Diagram


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO

Page 102
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Show the motor as Disabled and Not Ready, not Available, and with no
Maintenance Bypass breadcrumb.
Clear remaining Status bits.
Show the enumerated valve command as NONE.
Show the enumerated valve status as DISABLED.
Show the enumerated valve fault status as NONE.
##### V2.0-00 2011-09-30: Made into a separate rung, added enumerated values. #####
1=Valve is Not Ready
to Energize
1=Valve available
1=A Maintenance
(independent of
for control by
Bypass is Active,
1=Valve is Disabled
Mode)
automation (Prog)
display icon
Sts_Disabled
Sts_NotRdy
Sts_Available
Sts_MaintByp
L
L
U
U

11

Device Command
0=None, 1=Close,
2=Open
CLR
Clear
Dest
Val_Cmd
0

Device Confirmed Sts


0=? 1=Closed 2=Open
5=Closing,
6=Opening,
32=Disabled
MOV
Move
Source
33
Dest

Sts_Available

*11(OTU)

Sts_Disabled

*11(OTL)

Sts_MaintByp

*11(OTU)

Sts_NotRdy

*11(OTL)

Val_Cmd

*11(CLR)

Val_Fault

*11(CLR)

Val_Sts

*11(MOV)

Device Fault Status


0=None, 16=Transit
Stall, 17 = Full
Stall, 32=I/O Fault,
34=Config Error
CLR
Clear
Dest
Val_Fault
0

Val_Sts
0

RSLogix 5000

P_ValveSO Instruction Definition - EnableInFalse Routine


TetraPak_Mezclado_de_Leche:Add-On Instructions:P_ValveSO:EnableInFalse
Total number of rungs in routine: 13
Data Context: P_ValveSO <definition>

Page 103
22/12/2015 09,01,33
F:\TetraPak_Mezclado_de_Leche_13052014.ACD

Disabled is asserted; Outputs OFF; Valve Status shown but Alarms disabled
Clear the Alarms and the Notify Status, and show the Alarms Inhibited breadcrumb.
##### V2.0-00 2011-09-30:
1=Valve Full Stall
(failed to move at
all) Alarm
Alm_FullStall
<FullStall.Alm>
U

12

1=Valve Full Stall


(failed to move at
all)
Sts_FullStall
<FullStall.Inp>
U

Made into a separate rung. #####


1=Valve Transit
1=Alarm: Valve
Stall (did not reach
de-energized by an
target pos.) Alarm
Interlock NOT OK
Alm_TransitStall
Alm_IntlkTrip
<TransitStall.Alm>
<IntlkTrip.Alm>
U
U

1=Valve Transit
Stall (did not reach
target position)
Sts_TransitStall
<TransitStall.Inp>
U

1=Valve de-energized
by an Interlock NOT
OK
Sts_IntlkTrip
<IntlkTrip.Inp>
U

1=An Alarm is
Inhibited, Disabled
or Suppressed,
display icon
Sts_AlmInh
L

Alm_FullStall

*12(OTU)

Alm_IntlkTrip

*12(OTU)

Alm_IOFault

*12(OTU)

Alm_TransitStall

*12(OTU)

Sts_AlmInh

*12(OTL)

Sts_FullStall

*12(OTU)

Sts_IntlkTrip

*12(OTU)

Sts_IOFault

*12(OTU)

Sts_TransitStall

*12(OTU)

Val_Notify

*12(CLR)

1=I/O Fault Alarm


Alm_IOFault
<IOFault.Alm>
U

I/O Comm Fault


Status (0=OK, 1=Bad)
Sts_IOFault
<IOFault.Inp>
U

Current Alarm Level


and Acknowledgement
(enumeration)
CLR
Clear
Val_Notify
Dest
0

(End)

RSLogix 5000

Vous aimerez peut-être aussi