从智能单元读取的数据
从智能模块中的共享内存读取数据。
输入
指定智能模块共享内存中的库/插槽编号
指定智能模块共享内存中的起始地址(源数据地址)
指定要读取的字数
CPU中用于存储读取数据的起始地址(目标地址)
存储在s1_BankSlot指定的智能单元/模块的共享内存中的n_Number字数据,从s2_Start指定的地址被读取,并存储在CPU的d_Start指定的区域中。
输入处的变量参数数量受PLC的可用索引寄存器所限制。
指定s1_BankSlot
不带库的智能单元
指定已安装目标智能单元的插槽编号。
带有库的智能单元
指定已安装目标智能单元的插槽编号(十六进制常量)和库号(十六进制常量)。
名称 |
序号 |
|
FP3扩展数据存储单元 |
AFP32091 AFP32092 |
|
FPS扩展数据存储单元 |
AFPG201 |
如果s1_BankSlot超出指定范围的限制
如果读取的数据超出d_Start的区域
如果s1_BankSlot超出指定范围的限制
如果读取的数据超出d_Start的区域
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
Start: BOOL:=FALSE;
(*activates the function*)
SlotNo: WORD:=16#03;
(*if start is TRUE, this value
gets 2 words from the address
1 from the unit-slot 0*)
AddrDataToRead: INT:=19;
NoWordsToRead: INT:=4;
DestAddrCPU: ARRAY [0..3] OF INT:=[4(0)];
(*Starting address in CPU to store data read*)
END_VAR
读取存储在智能单元共享内存(位于插槽3中)的AddrDataToRead中指定的从19开始的地址中的4字数据。然后,当Start开启时,将其存储在数组DestAddrCPU中。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_F,F150_READ!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
B(B_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,NoWordsToRead,11,4,13,6,);
B(B_VARIN,,NoWordsToRead,11,5,13,7,);
B(B_VARIN,,DestAddrCPU[0],11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
L(9,3,13,3);
L(1,3,7,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF start then
F150_READ( s1_BankSlot:= SlotNo,
s2_Start:= AddrDataToRead,
n_Number:= NoWordsToRead,
d_Start:= DestAddrCPU[0]);
END_IF;