123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427 |
- FUNCTION_BLOCK FB 1
- TITLE =
- VERSION : 0.0
- VAR_INPUT
- Start : BOOL ;
- Stop : BOOL ;
- Response : BOOL ;
- Reset_Maint : BOOL ;
- Timer_No : TIMER ;
- Response_Time : S5TIME ;
- END_VAR
- VAR_OUTPUT
- Fault : BOOL ;
- Start_Dsp : BOOL ;
- Stop_Dsp : BOOL ;
- Maint : BOOL ;
- END_VAR
- VAR_IN_OUT
- Motor : BOOL ;
- END_VAR
- VAR
- Time_bin : WORD ;
- Time_BCD : WORD ;
- Starts : INT ;
- Start_Edge : BOOL ;
- END_VAR
- BEGIN
- NETWORK
- TITLE =Start/Stop and Latching
- A( ;
- O #Start;
- O #Motor;
- ) ;
- AN #Stop;
- = #Motor;
- NETWORK
- TITLE =Startup Monitoring
- A #Motor;
- L #Response_Time;
- SD #Timer_No;
- AN #Motor;
- R #Timer_No;
- L #Timer_No;
- T #Time_bin;
- LC #Timer_No;
- T #Time_BCD;
- A #Timer_No;
- AN #Response;
- S #Fault;
- R #Motor;
- NETWORK
- TITLE =Start Lamp / Fault Reset
- A #Response;
- = #Start_Dsp;
- R #Fault;
- NETWORK
- TITLE =Stop Lamp
- AN #Response;
- = #Stop_Dsp;
- NETWORK
- TITLE =Count Starts
- A #Motor;
- FP #Start_Edge;
- JCN lab1;
- L #Starts;
- + 1;
- T #Starts;
- lab1: NOP 0;
- NETWORK
- TITLE =Maintenance
- L #Starts;
- L 50;
- >=I ;
- = #Maint;
- NETWORK
- TITLE =Reset Maintenance
- A #Reset_Maint;
- A #Maint;
- JCN END;
- L 0;
- T #Starts;
- END: NOP 0;
- END_FUNCTION_BLOCK
- DATA_BLOCK DB 1
- TITLE =
- VERSION : 0.0
- FB 1
- BEGIN
- Start := FALSE;
- Stop := FALSE;
- Response := FALSE;
- Reset_Maint := FALSE;
- Timer_No := T 0;
- Response_Time := S5T#0MS;
- Fault := FALSE;
- Start_Dsp := FALSE;
- Stop_Dsp := FALSE;
- Maint := FALSE;
- Motor := FALSE;
- Time_bin := W#16#0;
- Time_BCD := W#16#0;
- Starts := 0;
- Start_Edge := FALSE;
- END_DATA_BLOCK
- DATA_BLOCK DB 2
- TITLE =
- VERSION : 0.0
- FB 1
- BEGIN
- Start := FALSE;
- Stop := FALSE;
- Response := FALSE;
- Reset_Maint := FALSE;
- Timer_No := T 0;
- Response_Time := S5T#0MS;
- Fault := FALSE;
- Start_Dsp := FALSE;
- Stop_Dsp := FALSE;
- Maint := FALSE;
- Motor := FALSE;
- Time_bin := W#16#0;
- Time_BCD := W#16#0;
- Starts := 0;
- Start_Edge := FALSE;
- END_DATA_BLOCK
- DATA_BLOCK DB 3
- TITLE =
- VERSION : 0.0
- FB 1
- BEGIN
- Start := FALSE;
- Stop := FALSE;
- Response := FALSE;
- Reset_Maint := FALSE;
- Timer_No := T 0;
- Response_Time := S5T#0MS;
- Fault := FALSE;
- Start_Dsp := FALSE;
- Stop_Dsp := FALSE;
- Maint := FALSE;
- Motor := FALSE;
- Time_bin := W#16#0;
- Time_BCD := W#16#0;
- Starts := 0;
- Start_Edge := FALSE;
- END_DATA_BLOCK
- FUNCTION FC 1 : VOID
- TITLE =
- VERSION : 0.0
- VAR_INPUT
- Open : BOOL ;
- Close : BOOL ;
- END_VAR
- VAR_OUTPUT
- Dsp_Open : BOOL ;
- Dsp_Closed : BOOL ;
- END_VAR
- VAR_IN_OUT
- Valve : BOOL ;
- END_VAR
- BEGIN
- NETWORK
- TITLE =Open/Close and Latching
- A( ;
- O #Open;
- O #Valve;
- ) ;
- AN #Close;
- = #Valve;
- NETWORK
- TITLE =Display "Valve open"
- A #Valve;
- = #Dsp_Open;
- NETWORK
- TITLE =Display "Valve closed"
- AN #Valve;
- = #Dsp_Closed;
- END_FUNCTION
- ORGANIZATION_BLOCK OB 1
- TITLE =
- VERSION : 0.0
- VAR_TEMP
- OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
- OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB1), 3 (Scan 2-n of OB1)
- OB1_PRIORITY : BYTE ; //1 (Priority of 1 is lowest)
- OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
- OB1_RESERVED_1 : BYTE ; //Reserved for system
- OB1_RESERVED_2 : BYTE ; //Reserved for system
- OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
- OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
- OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
- OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
- Enable_Motor : BOOL ;
- Enable_Valve : BOOL ;
- Start_Fulfilled : BOOL ;
- Stop_Fulfilled : BOOL ;
- Inlet_Valve_A_Open : BOOL ;
- Inlet_Valve_A_Closed : BOOL ;
- Feed_Valve_A_Open : BOOL ;
- Feed_Valve_A_Closed : BOOL ;
- Inlet_Valve_B_Open : BOOL ;
- Inlet_Valve_B_Closed : BOOL ;
- Feed_Valve_B_Open : BOOL ;
- Feed_Valve_B_Closed : BOOL ;
- Open_Drain : BOOL ;
- Close_Drain : BOOL ;
- Close_Valve_Fulfilled : BOOL ;
- END_VAR
- BEGIN
- NETWORK
- TITLE =Interlock for Feed Pump A
- A I 1.6;
- A I 1.3;
- AN Q 9.5;
- = #Enable_Motor;
- NETWORK
- TITLE =Call FB Motor for Ingredient A
- A I 0.0;
- A #Enable_Motor;
- = #Start_Fulfilled;
- A( ;
- O I 0.1;
- ON #Enable_Motor;
- ) ;
- = #Stop_Fulfilled;
- CALL FB 1 , DB 1 (
- Start := #Start_Fulfilled,
- Stop := #Stop_Fulfilled,
- Response := I 0.2,
- Reset_Maint := I 1.7,
- Timer_No := T 12,
- Response_Time := S5T#7S,
- Fault := Q 4.5,
- Start_Dsp := Q 4.2,
- Stop_Dsp := Q 4.3,
- Maint := Q 4.6,
- Motor := Q 4.4);
- NETWORK
- TITLE =Delay Valve Enable Ingredient A
- A Q 4.4;
- L S5T#1S;
- SD T 13;
- AN Q 4.4;
- R T 13;
- A T 13;
- = #Enable_Valve;
- NETWORK
- TITLE =Inlet Valve Control for Ingredient A
- AN I 0.2;
- AN Q 4.4;
- = #Close_Valve_Fulfilled;
- CALL FC 1 (
- Open := #Enable_Valve,
- Close := #Close_Valve_Fulfilled,
- Dsp_Open := #Inlet_Valve_A_Open,
- Dsp_Closed := #Inlet_Valve_A_Closed,
- Valve := Q 4.0);
- NETWORK
- TITLE =Feed Valve Control for Ingredient A
- AN I 0.2;
- AN Q 4.4;
- = #Close_Valve_Fulfilled;
- CALL FC 1 (
- Open := #Enable_Valve,
- Close := #Close_Valve_Fulfilled,
- Dsp_Open := #Feed_Valve_A_Open,
- Dsp_Closed := #Feed_Valve_A_Closed,
- Valve := Q 4.1);
- NETWORK
- TITLE =Interlock for Feed Pump B
- A I 1.6;
- A I 1.3;
- AN Q 9.5;
- = #Enable_Motor;
- NETWORK
- TITLE =Call FB Motor for Ingredient B
- A I 0.3;
- A #Enable_Motor;
- = #Start_Fulfilled;
- A( ;
- O I 0.4;
- ON #Enable_Motor;
- ) ;
- = #Stop_Fulfilled;
- CALL FB 1 , DB 2 (
- Start := #Start_Fulfilled,
- Stop := #Stop_Fulfilled,
- Response := I 0.5,
- Reset_Maint := I 1.7,
- Timer_No := T 14,
- Response_Time := S5T#7S,
- Fault := Q 5.5,
- Start_Dsp := Q 5.2,
- Stop_Dsp := Q 5.3,
- Maint := Q 5.6,
- Motor := Q 5.4);
- NETWORK
- TITLE =Delay Valve Enable Ingredient B
- A Q 5.4;
- L S5T#1S;
- SD T 15;
- AN Q 5.4;
- R T 15;
- A T 15;
- = #Enable_Valve;
- NETWORK
- TITLE =Inlet Valve Control for Ingredient B
- AN I 0.5;
- AN Q 5.4;
- = #Close_Valve_Fulfilled;
- CALL FC 1 (
- Open := #Enable_Valve,
- Close := #Close_Valve_Fulfilled,
- Dsp_Open := #Inlet_Valve_B_Open,
- Dsp_Closed := #Inlet_Valve_B_Closed,
- Valve := Q 5.0);
- NETWORK
- TITLE =Feed Valve Control for Ingredient B
- AN I 0.5;
- AN Q 5.4;
- = #Close_Valve_Fulfilled;
- CALL FC 1 (
- Open := #Enable_Valve,
- Close := #Close_Valve_Fulfilled,
- Dsp_Open := #Feed_Valve_B_Open,
- Dsp_Closed := #Feed_Valve_B_Closed,
- Valve := Q 5.1);
- NETWORK
- TITLE =Interlock for Agitator
- A I 1.6;
- A I 1.4;
- AN Q 9.5;
- = #Enable_Motor;
- NETWORK
- TITLE =Call FB Motor for Agitator
- A I 1.1;
- A #Enable_Motor;
- = #Start_Fulfilled;
- A( ;
- O I 1.2;
- ON #Enable_Motor;
- ) ;
- = #Stop_Fulfilled;
- CALL FB 1 , DB 3 (
- Start := #Start_Fulfilled,
- Stop := #Stop_Fulfilled,
- Response := I 1.0,
- Reset_Maint := I 1.7,
- Timer_No := T 16,
- Response_Time := S5T#10S,
- Fault := Q 8.3,
- Start_Dsp := Q 8.1,
- Stop_Dsp := Q 8.2,
- Maint := Q 8.4,
- Motor := Q 8.0);
- NETWORK
- TITLE =Interlock for Drain Valve
- A I 1.6;
- A I 1.5;
- AN Q 8.0;
- = #Enable_Valve;
- NETWORK
- TITLE =Drain Valve Control
- A I 0.6;
- A #Enable_Valve;
- = #Open_Drain;
- A( ;
- O I 0.7;
- ON #Enable_Valve;
- ) ;
- = #Close_Drain;
- CALL FC 1 (
- Open := #Open_Drain,
- Close := #Close_Drain,
- Dsp_Open := Q 9.6,
- Dsp_Closed := Q 9.7,
- Valve := Q 9.5);
- NETWORK
- TITLE =Container Level Display
- AN I 1.3;
- = Q 9.0;
- AN I 1.4;
- = Q 9.1;
- AN I 1.5;
- = Q 9.2;
- END_ORGANIZATION_BLOCK
|