FUNCTION "BM02_CW_SH04" : VOID
TITLE =scale SH04
AUTHOR : Wittich
VERSION : 0.1
VAR_TEMP
fault : BOOL ; //Fehler
start_delay_empty : BOOL ; //start Verzögerung leer
output : BOOL ; //Ausgang
coarse_fill : BOOL ;
fine_fill : BOOL ;
discharge : BOOL ;
fault_int : INT ; //Fehler INT
END_VAR
BEGIN
NETWORK
TITLE =scale SH04 empty
AN "SH04_RWA_not_full";
= "db_visu_alarm_mixer".SH04_Ueberlast;
O "SH04_RWA_empty";
O "SH04_RWA_value_neg";
L "db_timer_soll".SH04_del_empty;
SD "SH04_del_empty";
A "SH04_del_empty";
= "SH04_empty";
AN "SH04_empty";
= "db_visu_mixer".SH04_N_L;
NETWORK
TITLE =scale SH04 auto/hand
CLR ;
= "SH04_auto";
NETWORK
TITLE =
A "BUTON_1";
JNB _003;
L 1;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_003: NOP 0;
NETWORK
TITLE =
A "BUTON_2";
JNB _005;
L 2;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_005: NOP 0;
NETWORK
TITLE =
A "BUTON_3";
JNB _006;
L 3;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_006: NOP 0;
NETWORK
TITLE =
A "BUTON_4";
JNB _007;
L 4;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_007: NOP 0;
NETWORK
TITLE =
A "BUTON_5";
JNB _016;
L 5;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_016: NOP 0;
NETWORK
TITLE =
A "BUTON_6";
JNB _017;
L 6;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_017: NOP 0;
NETWORK
TITLE =
A "BUTON_7";
JNB _018;
L 7;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_018: NOP 0;
NETWORK
TITLE =
A "BUTON_8";
JNB _019;
L 8;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_019: NOP 0;
NETWORK
TITLE =
A "BUTON_9";
JNB _01a;
L 9;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_01a: NOP 0;
NETWORK
TITLE =
A "BUTON_10";
JNB _01b;
L 10;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_01b: NOP 0;
NETWORK
TITLE =
A "BUTON_11";
JNB _01d;
L 11;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_01d: NOP 0;
NETWORK
TITLE =
A "BUTON_12";
JNB _01e;
L 12;
T "_db_pwaag_SH04".steuern.hand_silo_nr;
_01e: NOP 0;
NETWORK
TITLE =Manual required value
L "db_visu_analog_mixer".SH04_Soll;
L "_db_pwaag_SH04".steuern.waag_wert;
-R ;
A "SH04_weighing";
JC M401;
T "_db_pwaag_SH04".steuern.hand_soll;
M401: NOP 0;
NETWORK
TITLE =Actual scale value
L "_db_pwaag_SH04".steuern.waag_wert;
T "db_visu_analog_mixer".SH04_Ist;
NETWORK
TITLE =Alarm
O "SH04_alarm_scale";
O "db_visu_alarm_sponge".PB_39_COMM_A;
= "db_visu_cw_mixer".SH04_alarm;
NETWORK
TITLE =SH04 - scale refilling stop/start
L "_db_pwaag_SH04".steuern.waag_wert;
L "db_visu_analog_mixer".SH04_Soll;
>=R ;
ON "db_visu_cw_mixer".SH04_BET;
ON "SH04_RWA_not_full";
= "SH04_ref_stop";
L "db_visu_analog_mixer".SH04_Soll;
L 1.500000e+001;
-R ;
L "_db_pwaag_SH04".steuern.waag_wert;
>=R ;
AN "SH04_ref_stop";
= "SH04_ref_dem";
NETWORK
TITLE =SH04 control
A "SH04_ref_dem";
= "SH04_coarse";
A "SH04_ref_stop";
= "SH04_stop";
A "db_visu_cw_mixer_pulse".SH04_q_alarm;
= "SH04_alarm_ack";
A "SH04_auto";
= "SH04_automatic";
A "PST_SH04_S04";
A "SH04_weighing";
L "db_timer_soll".SH04_del_tare;
SD "SH04_del_tare";
A "SH04_del_tare";
= "SH04_tare";
SET ;
= "SH04_start_en";
AN "RH03_silo_S01";
AN "RH03_silo_S02";
AN "RH03_silo_S03";
AN "SH01_silo_S01";
AN "SH01_silo_S02";
AN "SH01_silo_S03";
AN "SH02F_ref_silo_S04";
L "db_timer_soll".SH04_del_enable;
SD "SH04_del_enable";
A "SH04_del_enable";
= "SH04_met_enable";
A "SH04_met_enable";
A "SH04_RWA_not_full";
A "SH04_RWA_value_valid";
AN "db_visu_alarm_mixer".SH04V01_A;
A "SH04V01_C";
AN "SH04_discharge";
= "SH04_gen_en";
AN "db_visu_alarm_S01_4".S04RV01_A;
= "SH04_silo_en_S04";
NETWORK
TITLE =SH04 scale control
CALL "fb_pwaag" , "di_pwaage" (
siz_erst_byte := "SH04_sflag_byte",
sifr_erst_byte := "SH04_en_byte",
init_global := "_db_sys".eingang.init_global,
steuer_wort := "SH04_ctrl_word",
str_waag_steu := "_db_pwaag_SH04".steuern);
// ======= scale value reading ======
A "simulation_flag";
JC M801;
CALL "fc_waagwert_lesen" (
rwa_ad_dwort := "SH04_DP_VALUE_I",
faktor := 10,
db_waag := "_db_pwaag_SH04",
steuer_byte := "SH04_ctrl_byte");
// ====== signals -> RWA-AD =====
L 0;
T "SH04_DP_VALUE_0";
M801: NOP 0;
// ====== simulation SH04 ========
A "simulation_flag";
JCN M802;
A "SH04_dosing_sign";
A "SH04_coarse_sign";
= #coarse_fill;
A "SH04_dosing_sign";
AN "SH04_coarse_sign";
= #fine_fill;
A "SH04V01";
= #discharge;
CALL "fc_waag_simu" (
waag_db := "_db_pwaag_SH04",
fuell_grob := #coarse_fill,
fuell_fein := #fine_fill,
entleer_grob := #discharge,
entleer_fein := #discharge,
fuell_schritt_grob := 5.000000e+000,
fuell_schritt_fein := 1.000000e+000,
entleer_schritt_grob := 5.000000e+001,
entleer_schritt_fein := 5.000000e+001,
ueberlast_wert := 2.300000e+002,
leermelde_wert := 1.000000e+001,
eingang_bit_ueberlast := "SH04_RWA_not_full",
eingang_bit_leer := "SH04_RWA_empty");
CLR ;
= "SH04_RWA_value_neg";
SET ;
= "SH04_RWA_value_valid";
M802: NOP 0;
NETWORK
TITLE =Way check S04 -> SH04
A "SH04_silo_S04";
A "CB10V03";
A "CB10V03_O";
AN "db_visu_alarm_S01_4".CB10V03_A;
A "CB10DV02.SH04";
A "CB10DV02_SH04";
AN "db_visu_alarm_S01_4".CB10DV02_G_A;
AN "db_visu_alarm_S01_4".CB10DV02_AB_A;
= "WCK_CB10_SH04_S04";
NETWORK
TITLE =CB10V01 close blow off valve for SH04
A "SH04_silo_S04";
A "WCK_CB10_SH04_S04";
A "CB10_ru_fini";
AN "CB10_MMP";
= "CL_BOF_CB10_SH04_S04";
NETWORK
TITLE =Enable metering silo S01-S03 for SH04
A "CL_BOF_CB10_SH04_S04";
A "CB10V01";
A "CB10V01_C";
AN "db_visu_alarm_S01_4".CB10V01_A;
AN "CB10_MP";
= "PST_SH04_S04";
NETWORK
TITLE =SH04 scale discharge
A "BM02_dem_dis_SH04";
AN "SH04_weighing";
AN "SH04_empty";
AN "db_visu_alarm_mixer".SH04V01_A;
= "SH04_discharge";
CALL "fc_bit_verzoe_min_melder" (
eingang := "SH04_discharge",
soll_einverzoeg := 0,
soll_ausverzoeg := 5,
ist_einverzoeg := "db_mixer_aux".SH04_discharge_on,
ist_ausverzoeg := "db_mixer_aux".SH04_discharge_off,
ausgang := "SH04_discharge_del_off",
fehler := #fault);
END_FUNCTION