메모리에 EEPROM 쓰기
이 명령을 사용하면 데이터가 데이터 영역(DT)에서 EEPROM/Flash-ROM으로 복사됩니다.
입력
함수 활성화(EN이 FALSE에서 TRUE로 변경되면 함수가 1회 실행됨)
저장할 블록의 DT 시작 어드레스
작성해야 할 블록 수. 블록 크기는 PLC 기종에 따라 64 또는 2048 데이터 레지스터입니다(다음 "PLC 지정 정보" 표 참조).
EEPROM 시작 블록 번호
출력
함수가 실행되면 ENO는 TRUE로 설정됩니다. 중복 표시 함수에 유용한 EN 기능
EEPROM 메모리는 유지 영역과 다릅니다. 유지 영역은 실시간으로 데이터를 저장합니다. 전원이 꺼질 때마다 유지 영역은 EEPROM 메모리에 저장됩니다. 명령이 실행된 경우에만 P13_EPWT 명령은 데이터를 EEPROM에 보냅니다. 또한 작성 횟수가 제한되어 있습니다(아래 표 참조). 사용자는 P13_EPWT 명령이 지정된 작성 횟수 이상으로 실행되지 않은지 확인해야 합니다.
예를 들어, R901A 플래그가 있는 P13_EPWT를 실행하면(펄스 시간 0.1초), EEPROM은 100,000 * 0.1초 = 10,000초(2.8시간) 후에 작동하지 않습니다. 하지만 파라미터 위치 지정 또는 자주 변경하지 않는 다른 파라미터 값과 같은 프로필 데이터를 유지하려는 경우에는 이 명령이 매우 유용합니다.
s2_Number 또는 d_Start 입력 변수 중 하나를 정수 값에 할당해야 합니다.
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;
@'data field': @'ARRAY (0..63] OF INT':=@'(1,2,3,4,5,6,7,8,9,10,11,12,52(0)]';
END_VAR
변수 start가 FALSE에서 TRUE로 변경되면 펑션이 실행됩니다.
이 함수는 데이터 필드[63](s2* = 1 => 1블록 = 64워드)까지 데이터 필드[0] 콘텐츠를 읽고 EEPROM의 시작 블록 수 0 이후의 정보를 씁니다.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,P13_EPWT!,Instance,11,0,19,6,,?DEN?Ds1_Start?Ds2_Number?Dd_Start?AENO);
B(B_VARIN,,DataField[0],9,2,11,4,);
B(B_VARIN,,1,9,3,11,5,);
B(B_VARIN,,0,9,4,11,6,);
B(B_CONTACT,,start,3,1,5,3,);
L(1,2,3,2);
L(5,2,11,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY