--- a
+++ b/ecu_at135_v1c_aladdin/StandardPLC/Plc Logic/Application/013.BMS_Colibri/BMS_Colibri_T63/svnobj
@@ -0,0 +1,5 @@
+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}
+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
+µÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­•ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­™ÚÐ-ÐÐ
­šÚÐ-ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÐÐ
­ÚÐ-ÐÐ
­žÚÐ- ÐÐ
­ŸÚÐ-!ÐÐ
­ ÚÐ-"ÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-#ÐÐ
­£ÚÐ-$ÐÐ
­¤ÚÐ-%ÐÐ
­¥ÚÐ-&ÐÐ
­¦ÚÐ- ÐÐ
­§ÚÐ-!ÐÐ
­¨ÚÐ-'ÐÐ
­©ÚÐ-(ÐÐ
­ªÚÐ-)ÐÐ
­«ÚÐ-*ÐÐ
­¬ÚÐ-+ÐÐ
­­ÚÐ-,ÐÐ
­®ÚÐ--ÐÐ
­¯ÚÐ-.ÐÐ
­°ÚÐ-/ÐÐ
­±ÚÐ-ÐÐ
­²ÚÐ-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ÐÐ
­
+ÚÐ-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
+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ÚÐ-©ÐÐ
­{ÚÐ-ªÐÐ
­|ÚÐ-«ÐÐ
­}ÚÐ-¬ÐÐ
­~ÚÐ-­ÐÐ
­ÚÐ-,ÐÐ
­€ÚÐ-®ÐÐ
­ÚÐ-¯ÐÐ
­‚ÚÐ-°ÐÐ
­ƒÚÐ-±ÐÐ
­„ÚÐ-²ÐÐ
­…ÚÐ-³ÐÐ
­†ÚÐ-´ÐÐ
­‡ÚÐ-,ÐÐ
­ˆÚÐ-µÐÐ
­‰ÚÐ-¶ÐÐ
­ŠÚÐ-·ÐÐ
­‹ÚÐ-¸ÐÐ
­ŒÚÐ-„ÐÐ
­ÚÐ-й-ºл¼-½¾¿ÐÀÁ­
\ No newline at end of file