a b/ecu_at135_v2r1_baloo/StandardPLC/Plc Logic/Application/012.BMS_Batterie_Colibri/BMS_Colibri_T63/svnobj
1
Gx_l+K!0…jüoE3¦‚¼¾ÀŒ8aSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument    L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
2
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText*(* Cadenceur 200ms *)œCadenceur_200ms(IN := Start_cad_200ms, PT := T#200MS, Q => Trame200ms, ET =>);,IF (Trame200ms = TRUE)>  THEN Start_cad_200ms := FALSE;< ELSE Start_cad_200ms := TRUE;END_IF,(* Cadenceur 1000ms *)€Cadenceur_1000ms(IN := Start_cad_1000ms, PT := T#1000MS, Q => Trame1000ms, ET =>);.IF (Trame1000ms = TRUE)@    THEN Start_cad_1000ms := FALSE;>   ELSE Start_cad_1000ms := TRUE;\(*Activation de la communication avec le BMS*)6Activation_bus_can_colibri(F xEnable:= Activation_can_Colibri, B xError=> Error_bus_can_colibri,   eDiagInfo=> , !B eChannel:= Channel_can_colibri, "$ eBaudrate:= 250);#t(* RECEPTION PREMIER OBJET SUR NODE 1 - ID: 0x18A TPDO1 *)$0Reception_colibri_0x18A(%Z   xEnable:= Activation_can_reception_Colibri, & xError=> , '(   xExtended:= FALSE, (&   aData=> Rx_0x18A, ) usiDLC=> , *"   uiAvailable=> , +$ udiID:= 16#18A); ,   -H(*Temperature Moyenne des cellules*).ŒRaw_average_cell_temperature := USINT_TO_WORD(Rx_0x18A[0]) + USINT_TO_WORD(Rx_0x18A[1]) * 256;/€Average_Cell_Temprature := Raw_average_cell_temperature * 0.125;02(*Status de la batterie*)1XBattery_Status := BYTE_TO_BOOL(Rx_0x18A[2]);2r(* RECEPTION PREMIER OBJET SUR NODE 1 - ID: 0x28A TPDO2*)30Reception_colibri_0x28A(4& aData=> Rx_0x28A, 5$ udiID:= 16#28A); 68(* Tension de la Batterie *)7ÊRaw_voltage_battery:= BYTE_TO_WORD(Rx_0x28A[3]) + BYTE_TO_WORD(Rx_0x28A[4]) * 16#100 + BYTE_TO_WORD(Rx_0x28A[5]) * 16#10000 + BYTE_TO_WORD(Rx_0x28A[6]) * 16#1000000;8zBattery_voltage := DWORD_TO_REAL(Raw_voltage_battery) / 1024;9r(* RECEPTION PREMIER OBJET SUR NODE 1 - ID: 0x38A TPDO3*):0Reception_colibri_0x38A(;&  aData=> Rx_0x38A, <$ udiID:= 16#38A); =@(* Courant de recharge requis *)>ÀRaw_requested_charging_current := USINT_TO_WORD(Rx_0x38A[0]) + USINT_TO_WORD(Rx_0x38A[1]) * 256;?„Requested_Charging_Current := Raw_requested_charging_current / 16;@0(* Autonomie restante *)A>State_of_charge := Rx_0x38A[2];Br(* RECEPTION PREMIER OBJET SUR NODE 2 - ID: 0x18B TPDO1*)C0Reception_colibri_0x18B(D&   aData=> Rx_0x18B, E$ udiID:= 16#18B); FŠBattery_unique_ID := USINT_TO_WORD(Rx_0x18B[0]) + USINT_TO_WORD(Rx_0x18B[1]) * 256;G.Fault := Rx_0x18B[2].0;HJPrecharge_contactor := Rx_0x18B[2].1;IDMain_contactor_1 := Rx_0x18B[2].2;JDMain_contactor_2 := Rx_0x18B[2].3;K:Relay_fault := Rx_0x18B[2].4;LJCharging_prohibited := Rx_0x18B[3].5;MPDischarging_prohibited := Rx_0x18B[3].6;NBFault_code_stored := Rx_0x18B[4];O2IF (Rx_0x18B[5].2 = TRUE)PV    THEN Fault_flags := 'Communication Fault';Q8ELSIF (Rx_0x18B[5].3 = TRUE)RT   THEN Fault_flags := 'Charge Overcurrent';S8ELSIF (Rx_0x18B[5].4 = TRUE)TZ THEN Fault_flags := 'Discharge Overcurrent';U8ELSIF (Rx_0x18B[5].5 = TRUE)VP   THEN Fault_flags := 'Over-Temperature';W8ELSIF (Rx_0x18B[5].6 = TRUE)XH THEN Fault_flags := 'Undervoltage';Y8ELSIF (Rx_0x18B[5].7 = TRUE)ZF THEN Fault_flags := 'Overvoltage';[ELSE\6   Fault_flags := 'No Fault';]2IF (Rx_0x18B[6].0 = TRUE)^\ THEN Warning_flags := 'Warning: Low Voltage';_8ELSIF (Rx_0x18B[6].1 = TRUE)`^ THEN Warning_flags := 'Warning: High Voltage';a8ELSIF (Rx_0x18B[6].2 = TRUE)bj   THEN Warning_flags := 'Warning: Charge Overcurrent';c8ELSIF (Rx_0x18B[6].3 = TRUE)dp   THEN Warning_flags := 'Warning: Discharge Overcurrent';e8ELSIF (Rx_0x18B[6].4 = TRUE)fd THEN Warning_flags := 'Warning: Low Temperature';g8ELSIF (Rx_0x18B[6].5 = TRUE)hf THEN Warning_flags := 'Warning: High Temperature';i> Warning_flags := 'No Warning';j2IF (Rx_0x18B[7].0 = TRUE)kj THEN Maintenance_flags := 'Blocked for maintenance';lv Maintenance_flags := 'No Maintenance - Normal Operation'; m2IF (Rx_0x18B[7].1 = TRUE)nH THEN Authorisation := 'Authorized';oH   Authorisation := 'Battery Locked';   pr(* RECEPTION PREMIER OBJET SUR NODE 2 - ID: 0x38B TPDO3*)q0Reception_colibri_0x38B(r&   aData=> Rx_0x38B, s$ udiID:= 16#38B); tŠBattery_current := USINT_TO_UDINT(Rx_0x38B[0]) + USINT_TO_UDINT(Rx_0x38B[1]) * 256;ur(* RECEPTION PREMIER OBJET SUR NODE 2 - ID: 0x48B TPDO4*)v0Reception_colibri_0x48B(w&    aData=> Rx_0x48B, x$ udiID:= 16#48B); y~Battery_average_pack_temperature := USINT_TO_SINT(Rx_0x48B[0]);zlBattery_min_temperature := USINT_TO_SINT(Rx_0x48B[1]);{lBattery_max_temperature := USINT_TO_SINT(Rx_0x48B[2]);|@State_of_charge2 := Rx_0x48B[5];}Interface~L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}<FUNCTION_BLOCK BMS_Colibri_T63€VAR_INPUTB   Activation_can_Colibri:          BOOL;‚P  Activation_can_reception_Colibri: BOOL;ƒp  Channel_can_colibri:           ifmRCAN.ifmDevice.CAN_CHANNEL;„END_VAR…VAR_OUTPUT†>    Error_bus_can_colibri:         BOOL;‡f  Average_cell_temprature:      REAL; //Degré(s) Celsiusˆb    Battery_status:             BOOL; //0=Not ready; 1=Ready‰B    Battery_voltage:            REAL; //VoltŠH    Battery_current:            UDINT;   //Ampere‹X    Requested_charging_current:    REAL; //AmpereŒT    State_of_charge:            BYTE; //Autonomie (%)V  State_of_charge2:          BYTE; //Autonomie (%)Žn  Battery_avg_pack_temperature: SINT; //Degré(s) Celsiusf    Battery_min_temperature:      SINT; //Degré(s) Celsiusf    Battery_max_temperature:      SINT; //Degré(s) Celsius‘>    Battery_unique_ID:            WORD;   ’&    Fault:                     BOOL;“<  Precharge_contactor:        BOOL;”6  Main_contactor_1:          BOOL;•8  Main_contactor_2:             BOOL;–.  Relay_fault:               BOOL;—<  Charging_prohibited:        BOOL;˜@  Discharging_prohibited:       BOOL;™:  Fault_code_stored:           BYTE;š4  Fault_flags:              STRING;›8  Warning_flags:              STRING;œ>  Maintenance_flags:           STRING;8  Authorisation:              STRING;žVARŸ" (*Variable TOR*) 4    Start_cad_200ms:            BOOL;¡6  Start_cad_1000ms:          BOOL;¢.  Trame200ms:                BOOL;£.  Trame1000ms:               BOOL;€J  (*Déclaration des block fonctions *)¥0    Cadenceur_200ms:         TON;Š2    Cadenceur_1000ms:       TON;§`    Activation_bus_can_colibri: ifmRCAN.CAN_Enable;šR  Reception_colibri_0x18A:   ifmRCAN.CAN_Rx;©R  Reception_colibri_0x28A:   ifmRCAN.CAN_Rx;ªR  Reception_colibri_0x38A:   ifmRCAN.CAN_Rx;«R  Reception_colibri_0x18B:   ifmRCAN.CAN_Rx;¬R  Reception_colibri_0x38B:   ifmRCAN.CAN_Rx;­R  Reception_colibri_0x48B:   ifmRCAN.CAN_Rx;®D  (*Table de reception des trames*)¯B  Rx_0x18A: ARRAY [0..7] OF USINT;°B    Rx_0x28A: ARRAY [0..7] OF USINT;±B    Rx_0x38A: ARRAY [0..7] OF USINT;²B    Rx_0x18B: ARRAY [0..7] OF USINT;³B    Rx_0x38B: ARRAY [0..7] OF USINT;ŽB    Rx_0x48B: ARRAY [0..7] OF USINT;µD    (*Variables Brutes pour calculs*)¶H  Raw_average_cell_temperature: WORD;·<  Raw_voltage_battery:         DWORD;žL    Raw_requested_charging_current: WORD;¹"UniqueIdGeneratorº589»POULevelŒL{8e575c5b-1d37-49c6-941b-5c0ec7874787}œStandardŸ ChildObjectGuids¿8System.Collections.ArrayListÀ,AddAttributeSubsequentÁboolÐÐ-ÐÐ E
3
µÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­•ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­™ÚÐ-ÐÐ
­šÚÐ-ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÐÐ
­ÚÐ-ÐÐ
­žÚÐ- ÐÐ
­ŸÚÐ-!ÐÐ
­ ÚÐ-"ÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-#ÐÐ
­£ÚÐ-$ÐÐ
­¤ÚÐ-%ÐÐ
­¥ÚÐ-&ÐÐ
­¦ÚÐ- ÐÐ
­§ÚÐ-!ÐÐ
­¨ÚÐ-'ÐÐ
­©ÚÐ-(ÐÐ
­ªÚÐ-)ÐÐ
­«ÚÐ-*ÐÐ
­¬ÚÐ-+ÐÐ
­­ÚÐ-,ÐÐ
­®ÚÐ--ÐÐ
­¯ÚÐ-.ÐÐ
­°ÚÐ-/ÐÐ
­±ÚÐ-ÐÐ
­²ÚÐ-0ÐÐ
­³ÚÐ-1ÐÐ
­´ÚÐ-ÐÐ
­µÚÐ-ÐÐ
­¶ÚÐ-2ÐÐ
­·ÚÐ-3ÐÐ
­¸ÚÐ-%ÐÐ
­¹ÚÐ-&ÐÐ
­ºÚÐ- ÐÐ
­»ÚÐ-!ÐÐ
­¼ÚÐ-'ÐÐ
­½ÚÐ-4ÐÐ
­¾ÚÐ-)ÐÐ
­¿ÚÐ-*ÐÐ
­ÀÚÐ-5ÐÐ
­ÁÚÐ-ÐÐ
­ÂÚÐ-6ÐÐ
­ÃÚÐ-7ÐÐ
­ÄÚÐ-8ÐÐ
­ÅÚÐ-ÐÐ
­ÆÚÐ-9ÐÐ
­ÇÚÐ-:ÐÐ
­ÈÚÐ-%ÐÐ
­ÉÚÐ-&ÐÐ
­ÊÚÐ- ÐÐ
­ËÚÐ-!ÐÐ
­ÌÚÐ-'ÐÐ
­ÍÚÐ-;ÐÐ
­ÎÚÐ-)ÐÐ
­ÏÚÐ-*ÐÐ
­ÐÚÐ-<ÐÐ
­ÑÚÐ-ÐÐ
­ÒÚÐ-=ÐÐ
­ÓÚÐ->ÐÐ
­ÔÚÐ-?ÐÐ
­ÕÚÐ-ÐÐ
­ÖÚÐ-@ÐÐ
­×ÚÐ-AÐÐ
­ØÚÐ-ÐÐ
­ÙÚÐ-BÐÐ
­ÚÚÐ-CÐÐ
­ÛÚÐ-%ÐÐ
­ÜÚÐ-&ÐÐ
­ÝÚÐ- ÐÐ
­ÞÚÐ-!ÐÐ
­ßÚÐ-'ÐÐ
­àÚÐ-DÐÐ
­áÚÐ-)ÐÐ
­âÚÐ-*ÐÐ
­ãÚÐ-EÐÐ
­äÚÐ-ÐÐ
­åÚÐ-FÐÐ
­æÚÐ-GÐÐ
­çÚÐ-HÐÐ
­èÚÐ-IÐÐ
­éÚÐ-JÐÐ
­êÚÐ-KÐÐ
­ëÚÐ-ÐÐ
­ìÚÐ-LÐÐ
­íÚÐ-MÐÐ
­îÚÐ-ÐÐ
­ïÚÐ-NÐÐ
­ðÚÐ-ÐÐ
­ñÚÐ-OÐÐ
­òÚÐ-PÐÐ
­óÚÐ-QÐÐ
­ôÚÐ-RÐÐ
­õÚÐ-SÐÐ
­öÚÐ-TÐÐ
­÷ÚÐ-UÐÐ
­øÚÐ-VÐÐ
­ùÚÐ-WÐÐ
­úÚÐ-XÐÐ
­ûÚÐ-YÐÐ
­üÚÐ-ZÐÐ
­ýÚÐ-[ÐÐ
­þÚÐ-\ÐÐ
­ÿÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-]ÐÐ
­ÚÐ-^ÐÐ
­ÚÐ-_ÐÐ
­ÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­ÚÐ-bÐÐ
­ÚÐ-cÐÐ
­   ÚÐ-dÐÐ
­
4
ÚÐ-eÐÐ
­ÚÐ-fÐÐ
­ÚÐ-gÐÐ
­
ÚÐ-hÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-iÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-jÐÐ
­ÚÐ-kÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-lÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-mÐÐ
­ÚÐ-nÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-oÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-pÐÐ
­ ÚÐ-qÐÐ
­!ÚÐ-%ÐÐ
­"ÚÐ-&ÐÐ
­#ÚÐ- ÐÐ
­$ÚÐ-!ÐÐ
­%ÚÐ-'ÐÐ
­&ÚÐ-rÐÐ
­'ÚÐ-)ÐÐ
­(ÚÐ-*ÐÐ
­)ÚÐ-sÐÐ
­*ÚÐ-,ÐÐ
­+ÚÐ-tÐÐ
­0ÚÐ-ÐÐ
­2ÚÐ-uÐÐ
­3ÚÐ-vÐÐ
­4ÚÐ-%ÐÐ
­5ÚÐ-&ÐÐ
­6ÚÐ- ÐÐ
­7ÚÐ-!ÐÐ
­8ÚÐ-'ÐÐ
­9ÚÐ-wÐÐ
­:ÚÐ-)ÐÐ
­;ÚÐ-*ÐÐ
­1ÚÐ-xÐÐ
­?ÚÐ-ÐÐ
­/ÚÐ-yÐÐ
­CÚÐ-zÐÐ
­DÚÐ-{ÐÐ
­,ÚÐ-|ÐÐ
­>ÚÐ-ÐÐ
­=ÚÐ-ÐÐ
­-ÚÐ-,ÐÐ
­.ÚÐ-,ÐÐ
­MÚÐ-,Ð}~Ð E
5
CÐÐ
­RÚÐ-ÐÐ
­MÚÐ-ÐÐ
­SÚÐ-€ÐÐ
­TÚÐ-ÐÐ
­UÚÐ-‚ÐÐ
­HÚÐ-ƒÐÐ
­WÚÐ-„ÐÐ
­LÚÐ-ÐÐ
­XÚÐ-…ÐÐ
­YÚÐ-†ÐÐ
­ZÚÐ-‡ÐÐ
­[ÚÐ-ˆÐÐ
­\ÚÐ-‰ÐÐ
­]ÚÐ-ŠÐÐ
­^ÚÐ-‹ÐÐ
­_ÚÐ-ŒÐÐ
­<ÚÐ-ÐÐ
­@ÚÐ-ŽÐÐ
­AÚÐ-ÐÐ
­BÚÐ-ÐÐ
­`ÚÐ-‘ÐÐ
­aÚÐ-’ÐÐ
­bÚÐ-“ÐÐ
­cÚÐ-”ÐÐ
­dÚÐ-•ÐÐ
­eÚÐ-–ÐÐ
­fÚÐ-—ÐÐ
­gÚÐ-˜ÐÐ
­hÚÐ-™ÐÐ
­iÚÐ-šÐÐ
­jÚÐ-›ÐÐ
­kÚÐ-œÐÐ
­lÚÐ-ÐÐ
­mÚÐ-„ÐÐ
­KÚÐ-ÐÐ
­nÚÐ-žÐÐ
­oÚÐ-ŸÐÐ
­pÚÐ- ÐÐ
­qÚÐ-¡ÐÐ
­rÚÐ-¢ÐÐ
­sÚÐ-£ÐÐ
­tÚÐ-,ÐÐ
­uÚÐ-¤ÐÐ
­vÚÐ-¥ÐÐ
­wÚÐ-¦ÐÐ
­xÚÐ-§ÐÐ
­yÚÐ-¨ÐÐ
­zÚÐ-©ÐÐ
­{ÚÐ-ªÐÐ
­|ÚÐ-«ÐÐ
­}ÚÐ-¬ÐÐ
­~ÚÐ-­ÐÐ
­ÚÐ-,ÐÐ
­€ÚÐ-®ÐÐ
­ÚÐ-¯ÐÐ
­‚ÚÐ-°ÐÐ
­ƒÚÐ-±ÐÐ
­„ÚÐ-²ÐÐ
­…ÚÐ-³ÐÐ
­†ÚÐ-´ÐÐ
­‡ÚÐ-,ÐÐ
­ˆÚÐ-µÐÐ
­‰ÚÐ-¶ÐÐ
­ŠÚÐ-·ÐÐ
­‹ÚÐ-¸ÐÐ
­ŒÚÐ-„ÐÐ
­ÚÐ-й-ºл¼-½¾¿ÐÀÁ­