552 lines
12 KiB
Markdown
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
|
|
|
|
```
|