/*2019-05-14T11:58:50-01:00*/

/********************************************************************
 * graf_mdl_manipulateur.c
 * 
 * generated by: plcgen 3.0.331
 ********************************************************************/

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

#include "graf_mdl_manipulateur.h"


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

CB_Index graf_mdl_manipulateur__num = 0;
CB_Mem_Int *graf_mdl_manipulateur_CR_pos;
CB_Mem_Bool *graf_mdl_manipulateur_def_depl;
CB_Mem_Int *graf_mdl_manipulateur_Pos_depart;
CB_Mem_Int *graf_mdl_manipulateur_Pos_arrivee;
CB_Mem_Bool *graf_mdl_manipulateur_DCY;
CB_Mem_Bool *graf_mdl_manipulateur_AU;
CB_Mem_Bool *graf_mdl_manipulateur_acq;
CB_Mem_Bool *graf_mdl_manipulateur_OKprise;
CB_Mem_Bool *graf_mdl_manipulateur_OKpose;
CB_Mem_Bool *graf_mdl_manipulateur_def_prisepose;
CB_Mem_Int *graf_mdl_manipulateur_Demande_pos;
CB_Mem_Bool *graf_mdl_manipulateur_GO;
CB_Mem_Bool *graf_mdl_manipulateur_Def_Manip;
CB_Mem_Bool *graf_mdl_manipulateur_OKcycle;
CB_Mem_Bool *graf_mdl_manipulateur_Dprise;
CB_Mem_Bool *graf_mdl_manipulateur_Dpose;

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

#define CR_pos (*((short *)&(graf_mdl_manipulateur_CR_pos->CB_current_value) + ALIGN_OFFSET_SHORT))
#define def_depl (graf_mdl_manipulateur_def_depl->CB_current_value)
#define Pos_depart (*((short *)&(graf_mdl_manipulateur_Pos_depart->CB_current_value) + ALIGN_OFFSET_SHORT))
#define Pos_arrivee (*((short *)&(graf_mdl_manipulateur_Pos_arrivee->CB_current_value) + ALIGN_OFFSET_SHORT))
#define DCY (graf_mdl_manipulateur_DCY->CB_current_value)
#define AU (graf_mdl_manipulateur_AU->CB_current_value)
#define acq (graf_mdl_manipulateur_acq->CB_current_value)
#define OKprise (graf_mdl_manipulateur_OKprise->CB_current_value)
#define OKpose (graf_mdl_manipulateur_OKpose->CB_current_value)
#define def_prisepose (graf_mdl_manipulateur_def_prisepose->CB_current_value)
#define Demande_pos (*((short *)&(graf_mdl_manipulateur_Demande_pos->CB_current_value) + ALIGN_OFFSET_SHORT))
#define GO (graf_mdl_manipulateur_GO->CB_current_value)
#define Def_Manip (graf_mdl_manipulateur_Def_Manip->CB_current_value)
#define OKcycle (graf_mdl_manipulateur_OKcycle->CB_current_value)
#define Dprise (graf_mdl_manipulateur_Dprise->CB_current_value)
#define Dpose (graf_mdl_manipulateur_Dpose->CB_current_value)


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


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

int _sfp__graf_mdl_manipulateur_init(void)
{


	return 0;
}


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

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

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


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

		/*no Pre-conditions*/

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

		{
			/*pre-SFC*/
			/*post-SFC*/
			if ((def_prisepose || AU) || def_depl) {
				Def_Manip = 1;
			}
			if (((acq && !def_prisepose) && !AU) && !def_depl) {
				Def_Manip = 0;
			}
		}

		CB_post_int(graf_mdl_manipulateur_Demande_pos);
		CB_post_bool(graf_mdl_manipulateur_GO);
		CB_post_bool(graf_mdl_manipulateur_Def_Manip);
		CB_post_bool(graf_mdl_manipulateur_OKcycle);
		CB_post_bool(graf_mdl_manipulateur_Dprise);
		CB_post_bool(graf_mdl_manipulateur_Dpose);

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

		/*no Post-conditions*/
	}

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


	return 0;
}

