F12_EPRD

EEPROM从内存读取

使用此指令,将数据从EEPROM/Flash-ROM复制到目标区域(DT)。复制功能仅通过块执行。因此无法复制单个字。块大小和块数量显示在"PLC特定信息"表中。另外,确保为目标区域保留至少64/2048个空闲数据寄存器(1个块= 64字/ 2048字(DT))。

参数

输入

EN (BOOL)

激活函数(当EN的状态为TRUE时,功能块将在每次PLC扫描时执行)

s1_Start(DWORD, DINT, UDINT, DATE, TOD, DT)

EEPROM起始块编号

s2_Number(DWORD, DINT, UDINT, DATE, TOD, DT)

要读取的块数。视PLC类型而定,块大小为64或2048个数据寄存器(见下表“PLC特定信息”)。

输出

ENO (BOOL)

执行函数时,ENO设置为TRUE。具有EN功能的层叠函数非常有用

d_Start (WORD, INT, UINT)

要写入信息的DT起始地址

PLC特定信息

PLC类型

FP0 2,7k C10/C14/C16, FP-e

FP0 5k C32

FP0 10k T32CP

FP-Sigma, FP-X, FP0R

FP0H

ROM

EEPROM

EEPROM

EEPROM

Flash-ROM

Flash-ROM

块大小(1个块)

64字(64x16位)

64字(64x16位)

64字(64x16位)

2048字(2048x16位)

2048字(2048x16位)

EEPROM起始块编号

0至9

0至95

0至255

0至15

0至31

每次执行时要读取/写入的块数量

1至2

1至8

1至255

1(写入)

1至16(读取)

1(写入)

1至32(读取)

写入持续时间(附加扫描时间)

每个块< 20 ms

每个块< 5 ms

每个块< 5 ms

每个块< 100ms

每个块< 100ms

读取持续时间(附加扫描时间)

每个块小于1 ms

每个块小于1 ms

每个块小于1 ms

9.94ms +(1562.6*块数量)ms

 

最大写入事件数

100,000

10,000

10,000

10,000

10,000

最大读取次数

无限制

无限制

无限制

无限制

无限制

注释

断电、RUN -> PROG模式更改也计算在内。

示例

POU头

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

	VAR
		start: BOOL:=FALSE;
			(*activates the instruction*)
		datafield: ARRAY [0..63] OF INT:=[64(0)];
			(*data field to be uploaded data from EEPROM*)
	END_VAR

POU本体

当变量startFALSE变为TRUE时,执行此函数。

此函数从EEPROM读取起始块编号0之后的首个块(= 64字),并将信息写入从datafield[0]直到datafield[63]的数据区段。

LD本体

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,F12_EPRD!,Instance,8,1,16,6,,?DEN?Ds1_Start?Ds2_Number?AENO?Cd_Start);
B(B_VARIN,,0,6,3,8,5,);
B(B_VARIN,,1,6,4,8,6,);
B(B_VAROUT,,datafield[0],16,3,18,5,);
B(B_CONTACT,,start,3,2,5,4,);
L(5,3,8,3);
L(1,3,3,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

IL本体

LD

start

DF

F12_EPRD

0,1,datafield[0]

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