ExpansionUnitNumberToIOWordOffset_FP0

用于计算直接连接到CPU(无适配器)的模拟量扩展单元的I/O偏移量的函数。

I/O起始地址各不相同,具体取决于扩展单元的安装位置。此功能块将根据相对于CPU的单元位置计算I/O字偏移量。

参数

输入

iExpansionUnitNumber (INT)

设置FP0/FP0R扩展单元相对于CPU的位置。

:1至3

输出

iIOWordOffset (INT)

返回I/O字的偏移量(WX/WY246

示例

POU头Copy code to clipboard

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。

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

POU本体

此功能会将FP0/FP0R扩展单元的位置编号(1至3)(其中0是CPU)转换为对应的I/O字偏移量2、4或6。

LD本体Copy code to clipboard

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,,1,9,2,11,4,);
B(B_F,ExpansionUnitNumberToIOWordOffset_FP0!,,11,1,31,4,,?DiExpansionUnitNumber?C);
B(B_FB,Unit_AnalogInOut_FP0R_A21!,Inst_FP0R_A21,35,1,50,8,,?BiIOWordOffset?BiOutChannel0?BiOutChannel0_Config?BiInChannel0_Config?BiInChannel1_Config?CbConfigIsDone?CiInChannel0?CiInChannel1);
B(B_VAROUT,,bIO_Config_done,50,2,52,4,);
B(B_VARIN,,iAnalogOut0,33,3,35,5,);
B(B_VAROUT,,iAnalogIn0,50,3,52,5,);
B(B_VARIN,,0,33,4,35,6,);
B(B_VAROUT,,iAnalogIn1,50,4,52,6,);
B(B_VARIN,,0,33,5,35,7,);
B(B_VARIN,,0,33,6,35,8,);
L(1,0,1,8);
L(31,3,35,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体Copy code to clipboard

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

最后更新日期: 2023-11-07此页面上的反馈松下热线