인텔리전트 유닛 메모리에 쓰기
인텔리전트 모듈의 공유 메모리에 데이터를 쓸 수 있습니다.
입력
인텔리전트 모듈의 공유 메모리에서 뱅크/슬롯 번호 지정
CPU의 공유 메모리에 있는 데이터의 시작 어드레스
공유 메모리에 쓸 워드 수 지정
작성된 데이터를 저장하는 인텔리전트 유닛의 시작 어드레스 지정(대상 어드레스)
CPU의 s2_Start에서 지정한 영역의 초기 데이터 n_Number 워드를 s1_BankSlot에서 지정한 인텔리전트 유닛의 공유 메모리 d_Start에서 지정한 어드레스에 씁니다.
입력에서의 변수 인수 수는 PLC의 사용 가능한 인덱스 레지스터에 의해 제한됩니다.
s1_BankSlot 지정
뱅크가 없는 인텔리전트 유닛
타겟 인텔리전트 유닛이 설치된 슬롯 번호를 지정합니다.
뱅크가 있는 인텔리전트 유닛
타겟 인텔리전트 유닛이 설치된 슬롯 번호(16진수 정수)와 뱅크 번호(16진수 정수)를 지정합니다.
이름 |
주문 번호 |
|
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에서 정의한 데이터의 5워드는 인텔리전트 유닛의 공유 메모리(슬롯 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;