메모리에서 EEPROM 읽기
이 명령을 사용하면 데이터는 EEPROM/Flash-ROM에서 대상 영역(DT)으로 복사됩니다. 복사 함수는 블록을 통해서만 실행됩니다. 따라서 단일 워드를 복사할 수 없습니다. "PLC 사양 정보" 표에 블록 크기와 블록 수가 표시되어 있습니다. 또한 대상 영역에 최소 64/2048 여유 데이터 레지스터(1블록 = 64워드/2048워드(DT))가 예약되어 있어야 합니다.
입력
함수 활성(EN이 TRUE 상태이면 펑션블록은 매 PLC 스캔 시마다 실행됨)
EEPROM 시작 블록 번호
읽을 블록 수. 블록 크기는 PLC 기종에 따라 64 또는 2048 데이터 레지스터입니다(다음 "PLC 지정 정보" 표 참조).
출력
함수가 실행되면 ENO는 TRUE로 설정됩니다. 중복 표시 함수에 유용한 EN 기능
작성할 정보의 DT 시작 어드레스
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 헤더를 사용합니다.
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
변수 start가 FALSE에서 TRUE로 변경되면 펑션이 실행됩니다.
이 함수는 EEPROM의 시작 블록 번호 0 이후의 첫 번째 블록(= 64워드)을 읽고 정보를 datafield[0]~datafield[63] 데이터 필드에 씁니다.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
LD |
start |
DF |
|
F12_EPRD |
0,1,datafield[0] |