ExpansionUnitNumberToIOWordOffset_FPX_FP0

Fonction permettant de calculer l’offset d’E/S d’un module d'extension analogique connecté à l’unité centrale via un adaptateur.

Les adresses de départ des entrées/sorties varient selon les positions de l’adaptateur et des modules d’extension. La fonction calcule l’offset du mot d’E/S selon la position de l’adaptateur et selon la position du module par rapport à l’adaptateur.

Paramètres

Entrée

iFPX_ExpansionUnitNumber (INT)

Définit la position de l’adaptateur par rapport à l’unité centrale.

Valeurs : 1 à 8

iFP0_ExpansionUnitNumber (INT)

Définit la position du module d’extension FP0/FP0R par rapport à l’adaptateur.

Valeurs : 1 à 3

Sortie

iIOWordOffset (INT)

Renvoie l’offset du mot d’E/S (WX/WY)

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.

	VAR
		Inst_FP0R_A21: Unit_AnalogInOut_FP0R_A21;
		iAnalogOut0: INT:=0;
		bIO_Config_done: BOOL:=FALSE;
		iAnalogIn0: INT:=0;
		iAnalogIn1: INT:=0;
	END_VAR

Corps du POU

La fonction calcule l’offset du mot d’E/S pour un module analogique FP0/FP0R connecté à une unité centrale FP-X. iFPX_ExpansionUnitNumber indique la position dans l’installation (1–8) de l’adaptateur pour modules d’extension FP0/FP0R. iFP0_ExpansionUnitNumber indique la position dans l’installation du module analogique par rapport à l’adaptateur (1–3).

Corps en LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,3,2,2,4,4,);
B(B_F,ExpansionUnitNumberToIOWordOffset_FPX_FP0!,,4,1,26,5,,?DiFPX_ExpansionUnitNumber?DiFP0_ExpansionUnitNumber?C);
B(B_FB,Unit_AnalogInOut_FP0R_A21!,Inst_FP0R_A21,36,1,51,8,,?BiIOWordOffset?BiOutChannel0?BiOutChannel0_Config?BiInChannel0_Config?BiInChannel1_Config?CbConfigIsDone?CiInChannel0?CiInChannel1);
B(B_VAROUT,,bIO_Config_done,51,2,53,4,);
B(B_VARIN,,2,2,3,4,5,);
B(B_VARIN,,iAnalogOut0,34,3,36,5,);
B(B_VAROUT,,iAnalogIn0,51,3,53,5,);
B(B_VARIN,,3,34,4,36,6,);
B(B_VAROUT,,iAnalogIn1,51,4,53,6,);
B(B_VARIN,,0,34,5,36,7,);
B(B_VARIN,,0,34,6,36,8,);
L(1,0,1,8);
L(26,3,36,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

Inst_FP0R_A21(iIOWordOffset := ExpansionUnitNumberToIOWordOffset_FPX_FP0(3, 2),
	iOutChannel0 := iAnalogOut0,
	iOutChannel0_Config := 3,
	iInChannel0_Config := 0,
	iInChannel1_Config := 0,
	bConfigIsDone => bIO_Config_done,
	iInChannel0 => iAnalogIn0,
	iInChannel1 => iAnalogIn1);

Modifié le : 2023-10-17Commentaires sur cette pageAssistance téléphonique