/*2013-01-18T16:22:43-01:00*/

/********************************************************************
 * alimentation.c
 * 
 * generated by: plcgen 2.3.253
 ********************************************************************/

#include "cb_comp.h"
#include "iec_1131.h"

#include "alimentation.h"



/**************************** Variables *****************************/

CB_Index alimentation__num = 0;
CB_Mem_Bool *alimentation_energieEntree;
CB_Mem_Bool *alimentation_energieSortie;
CB_Mem_Bool *alimentation_d_electrique;
CB_Mem_Bool *alimentation_v_d_electrique;

/**************************** Variables *****************************/

#define energieEntree (alimentation_energieEntree->CB_current_value)
#define energieSortie (alimentation_energieSortie->CB_current_value)
#define d_electrique (alimentation_d_electrique->CB_current_value)
#define v_d_electrique (alimentation_v_d_electrique->CB_current_value)


/************************ Components offsets ************************/


/********************* Initialization function **********************/

int _bibliotheque_epo__alimentation_init(void)
{
	(alimentation_energieEntree)->CB_current_value = 1; /*energieEntree*/
	self.Bool+=2;


	return 0;
}


/************************ Behavior function *************************/

int bibliotheque_epo__alimentation(void)
{
	if (exec_term_node(self_num)) {

		/*********************** Internals variables ************************/

		alimentation_d_electrique = self.Bool+0;
		alimentation_v_d_electrique = self.Bool+1;

		/********************* Pre-conditions execution *********************/

		/*no Pre-conditions*/

		/************************ Behavior execution ************************/

		{
			/* -----------------------------------------------------------------	*/
			/* Type : Modèle de Comportement Opératif					*/
			/* Catégorie :  Puissance							*/
			/* Auteur : Techniques Nouvelles d'Informatique				*/
			/* Date de révision : Octobre 2002						*/
			/* -----------------------------------------------------------------	*/
			/* Ce module représente une transformation d'énergie :			*/
			/*			(bloc d'alimentation).				*/
			/* -----------------------------------------------------------------	*/

			/* -----------------------------------------------------------------	*/
			/*  Si un défaut est demandé, le bloc alimentation renvoie		*/
			/*         une tension dont la valeur est celle du défaut.		*/
			/* -----------------------------------------------------------------	*/
			if (d_electrique)
				energieSortie = v_d_electrique;

			else	/* sinon il renvoie la valeur reçue en entrée 			*/
				energieSortie = energieEntree;
		}

		CB_post_bool(alimentation_energieSortie);

		/******************** Post-conditions execution *********************/

		/*no Post-conditions*/
	}

	/*************************** self update ****************************/

	self.Bool += 2;

	return 0;
}

