Obsidean_VM/04-SIDEL/00 - MASTER/Source/source/CIPRecipeManagement.md

552 lines
12 KiB
Markdown

```pascal
// Block Type: FB
// Block Number: 1799
// Original Network Languages: STL
// Block Comment:
// Machine CIP Recipe Management
// DB1003.DBB246 -> Active Recipe (DB124)
// DB1003.DBB2 -> Working Recipe (Edit, Copy, Erase) (DB400)
// DB963.DBB48 -> Working Recipe (Data Save)
// DB501 -:- DB530 -> Recipe 1-:-30 data
FUNCTION_BLOCK "CIPRecipeManagement"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
HMI_Recipe_Main_Page : Bool;
HMI_Recipe_Page_Running : Bool;
Active_Recipe_Start : Bool;
Edit : Bool;
Write : Bool;
Read : Bool;
Delete : Bool;
Copy : Bool;
Upload : Bool;
UploadPC : Bool;
Download : Bool;
Max_Recipe_Number : Int;
END_VAR
VAR_OUTPUT
Save_Requested : Bool;
Work_Rec_is_Active_Recip : Bool;
Copy_Rec_is_Active_Recip : Bool;
Recipe_Activated : Bool;
END_VAR
VAR_INOUT
Active_Recipe_Running : Int;
Active_Recipe_Req : Int;
Work_Recipe : Int;
Copy_to : Int;
END_VAR
VAR_STAT
Active_Recipe_First : Bool;
Active_Recipe_Start_FP : Bool;
Active_Recipe_Run : Bool;
Active_Recipe_Source_DB : Int;
Read_FP : Bool;
Read_Start : Bool;
Read_First_FP : Bool;
Read_First_Start : Bool;
Read_Change : Bool;
Work_Recipe_Save : Int;
Work_Recipe_Source_DB : Int;
Loop_Count : Int;
Delete_FP : Bool;
Delete_Start : Bool;
Delete_Write : Bool;
Copy_FP : Bool;
Copy_Request : Bool;
Copy_Start : Bool;
Copy_Recipe_Source_DB : Int;
Copy_Write : Bool;
Write_FP : Bool;
Write_Start : Bool;
Write_REQ : Bool;
Save_Active_Recipe : Bool;
Recipe_Destination_DB : Int;
Save_requested_FP : Bool;
Save_requested_veri : Bool;
Save_requested_read_FP : Bool;
Save_requested_read_veri : Bool;
Read_act_BUSY : Bool;
Read_wrk_BUSY : Bool;
Read_wrk_Running : Bool;
Write_BUSY : Bool;
Upload_FP : Bool;
Upload_Start : Bool;
Download_FP : Bool;
Download_Start : Bool;
Recipe_Activated_FN : Bool;
Save_requested_upldPC_FP : Bool;
Save_requested_upldPC_ve : Bool;
mUploadPC : Bool;
END_VAR
VAR_TEMP
Active_Recipe_Source : Int;
Work_Recipe_Source : Int;
Recipe_Destination : Int;
Read_act_DB : "Any";
Read_act_RET_VAL : Int;
Read_wrk_REQ : Bool;
Read_wrk_DB : "Any";
Read_wrk_RET_VAL : Int;
Write_DB : "Any";
Write_RET_VAL : Int;
Buffer_Pointer : DInt;
mAux : Bool;
TUDT900 : "CIP_Link_Type";
End_UDT900 : Byte;
Lenght_UDT900 : Int;
END_VAR
BEGIN
// Network 1: (Original Language: STL)
// Active Recipe Request Number Control
// --- BEGIN STL Network 1 ---
CALL "LIMIT_I"
L _ERR_CONST_
L _ERR_CONST_
SUB_D
SRD 3
T "Lenght_UDT900"
// --- END STL Network 1 ---
// Network 2: (Original Language: STL)
// Active Recipe Number Control
// --- BEGIN STL Network 2 ---
L "Active_Recipe_Running"
L 1
LT_I
JC aact
L "Active_Recipe_Running"
L "Max_Recipe_Number"
GT_I
JC aact
JU bact
aact: S "Active_Recipe_First"
bact: CALL "LIMIT_I"
// --- END STL Network 2 ---
// Network 3: MIX - (Original Language: STL)
// Active Recipe Number Start
// --- BEGIN STL Network 3 ---
A "Active_Recipe_Start"
Rise "Active_Recipe_Start_FP"
= "Active_Recipe_Run"
A "Active_Recipe_Run"
O "Active_Recipe_First"
O "Read_act_BUSY"
JC Rrun
JU Erun
Rrun: R "Active_Recipe_First"
L "Active_Recipe_Req"
T "Active_Recipe_Running"
ADD 500
T "Active_Recipe_Source_DB"
LAR1 _ERR_CONST_
L BYTE#16#10
T LocalB[AR1,P#0.0]
L BYTE#16#02
T LocalB[AR1,P#1.0]
L "Lenght_UDT900"
T LocalW[AR1,P#2.0]
L "Active_Recipe_Source_DB"
T LocalW[AR1,P#4.0]
L P#DBX0.0
T LocalD[AR1,P#6.0]
CALL _Call_?
Erun: NOP_0
A "Read_act_BUSY"
Fall "Recipe_Activated_FN"
= "Recipe_Activated"
// --- END STL Network 3 ---
// Network 4: (Original Language: STL)
// Work Recipe Number Control
// --- BEGIN STL Network 4 ---
CALL "LIMIT_I"
L "Work_Recipe"
L "Active_Recipe_Running"
EQ_I
= "Work_Rec_is_Active_Recip"
// --- END STL Network 4 ---
// Network 5: (Original Language: STL)
// Work Recipe READ (Data Uploading from archive)
// --- BEGIN STL Network 5 ---
A "Read"
O "HMI_Recipe_Page_Running"
Rise "Read_FP"
S "Read_Start"
L "Work_Recipe_Save"
L "Work_Recipe"
NE_I
= "Read_Change"
A "Read_Change"
O "Read_Start"
= "Read_wrk_REQ"
A "Read_wrk_REQ"
JC Rupl
A "Read_wrk_BUSY"
O "Read_wrk_Running"
JC Cupl
JU Eupl
Rupl: NOP_0
A "mUploadPC"
JC Eupl
L "Work_Recipe"
ADD 500
T "Work_Recipe_Source_DB"
Cupl: LAR1 _ERR_CONST_
L BYTE#16#10
T LocalB[AR1,P#0.0]
L BYTE#16#02
T LocalB[AR1,P#1.0]
L "Lenght_UDT900"
T LocalW[AR1,P#2.0]
L "Work_Recipe_Source_DB"
T LocalW[AR1,P#4.0]
L P#DBX0.0
T LocalD[AR1,P#6.0]
CALL _Call_?
A "Read_wrk_BUSY"
S "Read_wrk_Running"
A "Read_wrk_Running"
AN "Read_wrk_BUSY"
JC Dupl
JU Eupl
Dupl: R "Read_Start"
R "Read_wrk_Running"
L "Work_Recipe"
T "Work_Recipe_Save"
L "Work_Recipe_Save"
L 34
MUL_I
ADD 576
SLW 3
T "Buffer_Pointer"
LAR1_ACCU1
L "HMI_Local_CIP_Variables".Cip_Recipe.EditLinkProgram._LinkName[32]
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD6.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD10.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD14.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD18.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD22.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD26.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD30.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
LAR1 P#0.0
L "Lenght_UDT900"
L 2
DIV_I
Bupl: T "Loop_Count"
AUF "HMI_Local_CIP_Variables"
L DBW[AR1,P#2.0]
AUF "CIP_Program_Variables"
T DBW[AR1,P#50.0]
ADDAR1 P#2.0
L "Loop_Count"
LOOP Bupl
Eupl: NOP_0
// --- END STL Network 5 ---
// Network 6: (Original Language: STL)
// Work Recipe Data DELETE (Erase DB500 Data + Write in Work_Recipe_Source)
// --- BEGIN STL Network 6 ---
A "Delete"
Rise "Delete_FP"
= "Delete_Start"
A "Delete_Start"
AN "Work_Rec_is_Active_Recip"
AN "Save_Requested"
AN "Write"
AN "Write_BUSY"
JC Rdel
JU Edel
Rdel: LAR1 P#0.0
L "Lenght_UDT900"
Bdel: T "Loop_Count"
L "Work_Recipe_Source_DB"
T "Work_Recipe_Source"
L DINT#0
AUF "HMI_Local_CIP_Variables"
T DBW[AR1,P#2.0]
ADDAR1 P#2.0
L "Loop_Count"
LOOP Bdel
SET
S "Delete_Write"
Edel: NOP_0
// --- END STL Network 6 ---
// Network 7: (Original Language: STL)
// Work Recipe Data COPY (DB1008 Data Write to different Recipe DB
// Copy_Recipe_Source_DB)
// --- BEGIN STL Network 7 ---
CALL "LIMIT_I"
A "Copy"
Rise "Copy_FP"
= "Copy_Request"
L "Copy_to"
L "Active_Recipe_Running"
EQ_I
= "Copy_Rec_is_Active_Recip"
AN "Copy_Rec_is_Active_Recip"
AN "Save_Requested"
AN "Write"
AN "Write_BUSY"
A "Copy_Request"
= "Copy_Start"
A "Copy_Start"
JC Ccop
JU Ecop
Ccop: L "Copy_to"
ADD 500
T "Copy_Recipe_Source_DB"
S "Copy_Write"
Ecop: NOP_0
// --- END STL Network 7 ---
// Network 8: (Original Language: STL)
// Work Recipe WRITE (Data Downloading to archive)
// --- BEGIN STL Network 8 ---
A "Write"
Rise "Write_FP"
= "Write_Start"
A "Write_Start"
O "Delete_Write"
O "Copy_Write"
AN "Write_BUSY"
= "Write_REQ"
A "Write_Start"
O "Delete_Write"
AN "Write_BUSY"
JC Rdow
A "Write_BUSY"
JC Cdow
A "Copy_Write"
JC CoDB
JU Edow
CoDB: R "Copy_Write"
L "Copy_Recipe_Source_DB"
T "Recipe_Destination_DB"
L "Copy_to"
JU Copy
Rdow: R "Save_Requested"
R "Delete_Write"
R "mUploadPC"
L "Work_Recipe_Source_DB"
T "Recipe_Destination_DB"
L "Work_Recipe_Save"
L "Active_Recipe_Running"
EQ_I
= "Save_Active_Recipe"
LAR1 P#0.0
L "Lenght_UDT900"
L 2
DIV_I
Bdow: T "Loop_Count"
AUF "HMI_Local_CIP_Variables"
L DBW[AR1,P#2.0]
AUF "CIP_Program_Variables"
T DBW[AR1,P#50.0]
AN "Save_Active_Recipe"
JC Ndow
AUF "HMI_Local_CIP_Variables"
T DBW[AR1,P#276.0]
Ndow: ADDAR1 P#2.0
L "Loop_Count"
LOOP Bdow
L "Work_Recipe_Save"
Copy: L 34
MUL_I
ADD 576
SLW 3
T "Buffer_Pointer"
LAR1_ACCU1
L DB1003.DBD2.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD6.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD10.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD14.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD18.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD22.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD26.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
ADDAR1 P#4.0
L DB1003.DBD32.0
AUF "HMI_Local_CIP_Variables"
T DBD[AR1,P#0.0]
Cdow: LAR1 _ERR_CONST_
L BYTE#16#10
T LocalB[AR1,P#0.0]
L BYTE#16#02
T LocalB[AR1,P#1.0]
L "Lenght_UDT900"
T LocalW[AR1,P#2.0]
L "Recipe_Destination_DB"
T LocalW[AR1,P#4.0]
L P#DBX0.0
T LocalD[AR1,P#6.0]
CALL _Call_?
Edow: NOP_0
// --- END STL Network 8 ---
// Network 9: (Original Language: STL)
// Work Recipe SAVE REQUESTED
// --- BEGIN STL Network 9 ---
A "HMI_Recipe_Main_Page"
Rise "Save_requested_FP"
= "Save_requested_veri"
AN "Read_wrk_Running"
Rise "Save_requested_read_FP"
= "Save_requested_read_veri"
A "mUploadPC"
AN "UploadPC"
Rise "Save_requested_upldPC_FP"
= "Save_requested_upldPC_ve"
A "Save_requested_veri"
O "Save_requested_read_veri"
O "Save_requested_upldPC_ve"
JC Vsav
JU Esav
Vsav: CLR
= "Save_Requested"
LAR1 P#0.0
L "Lenght_UDT900"
L 2
DIV_I
L 17
SUB_I
Bsav: T "Loop_Count"
AUF "CIP_Program_Variables"
L DBW[AR1,P#50.0]
AUF "HMI_Local_CIP_Variables"
L DBW[AR1,P#2.0]
NE_D
JC Sreq
ADDAR1 P#2.0
L "Loop_Count"
LOOP Bsav
JU Esav
Sreq: SET
= "Save_Requested"
Esav: NOP_0
// --- END STL Network 9 ---
// Network 10: (Original Language: STL)
// --- BEGIN STL Network 10 ---
A "UploadPC"
JCN Noup
S "mUploadPC"
Noup: A "Edit"
JCN Roup
R "mUploadPC"
Roup: NOP_0
// --- END STL Network 10 ---
END_FUNCTION_BLOCK
```