写入智能单元的内存
将数据写入智能单元的共享内存。
输入
指定智能模块共享内存中的库/插槽编号
CPU共享内存中数据的起始地址
指定要写入共享内存的字数
指定智能单元中用于存储写入数据的起始地址(目标地址)
将初始数据的n_Number字从CPU的s2_Start指定的区域写入s1_BankSlot指定的智能单元的共享内存的d_Start指定的地址。
输入处的变量参数数量受PLC的可用索引寄存器所限制。
指定s1_BankSlot
不带库的智能单元
指定已安装目标智能单元的插槽编号。
带有库的智能单元
指定已安装目标智能单元的插槽编号(十六进制常量)和库号(十六进制常量)。
名称 |
序号 |
|
FP3扩展数据存储单元 |
AFP32091 AFP32092 |
|
FPS扩展数据存储单元 |
AFPG201 |
如果s1_BankSlot超出指定范围的限制
如果读取的数据超出d的区域
如果s1_BankSlot超出指定范围的限制
如果读取的数据超出d的区域
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
Start: BOOL:=FALSE;
(*activates the function*)
SlotNo: WORD:=16#0D;
(*if start is TRUE, this value
will be written to the address
1 from the unit-slot 0*)
CPUDataToWrt: ARRAY [0..4] OF INT:=[5,10,15,20,25];
NoWordsToWrite: INT:=5;
DestinationAddr: INT:=0;
END_VAR
当Start开启时,CPUDataToWrt中定义的五字数据被写入智能单元共享内存(位于插槽0中)的以0到4开始的地址中。
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_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,CPUDataToWrt[0],11,4,13,6,);
B(B_VARIN,,NoWordsToWrite,11,5,13,7,);
B(B_VARIN,,DestinationAddr,11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
B(B_F,F151_WRT!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
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
F151_WRT( s1_BankSlot:= SlotNo,
s2_Start:= CPUDataToWrt[0],
n_Number:= NoWordsToWrite,
d_Start:= DestinationAddr);
END_IF;