데이터 수신(MEWNET 링크)
이 명령은 네트워크의 링크 유닛을 통해 다른 스테이션에서 데이터를 수신합니다.
입력
제어 데이터 저장을 위한 32비트 영역
대상 스테이션에 데이터를 저장하기 위한 소스 오퍼랜드의 유형. 어드레스를 0으로 설정하여 영역을 선택해야 합니다(예: DT0 또는 WR0, ...) (소스 스테이션의 데이터 영역)
s2_AdrType(소스 스테이션의 데이터 영역)에 지정된 소스 오퍼랜드의 시작 16비트 영역 어드레스입니다.
수신된 데이터를 저장하기 위한 시작 16비트 영역 어드레스(대상 스테이션의 데이터 영역), 정수이어야 함
변수 s2_AdrType, s2_AdrOffs 및 d_Start의 데이터 유형은 같아야 합니다.
s1_Control 사양:
s1 상위 바이트 |
s1 하위 바이트 |
|
---|---|---|
1. 링크 번호 선택(LK: 1–3, 스테이션 자체) |
1. 워드 단위 전송 선택 |
|
최대 3개의 링크 유닛을 1개의 CPU에 연결할 수 있습니다. |
F = 0 |
워드 단위 선택 |
n2 = 0 |
워드 단위가 선택되면 "0"을 설정합니다. |
|
LK를 선택하면 세 가지 소스 링크 단위가 선택됩니다. |
n1 = 11–16 |
전송할 워드 수를 지정합니다. |
2. 링크 스테이션 번호 선택(UN: 1–63, 다른 스테이션) |
2. 비트 단위 전송 선택 |
|
링크 유닛 1개에는 최대 63개의 스테이션을 연결할 수 있습니다. |
F = 1 |
비트 단위 선택 |
그러면 UN이 대상 스테이션 번호를 선택합니다 |
n2 = 0–15 |
대상 비트 번호 |
n1 = 0–15 |
소스 비트 번호 |
자세한 내용은 인텔리전트 유닛의 관련 기술 매뉴얼을 참조하십시오.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
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,,control_value,7,3,9,5,);
B(B_VARIN,,start_address,7,4,9,6,);
B(B_VARIN,,offset,7,5,9,7,);
B(B_VARIN,,output_value,7,6,9,8,);
B(B_CONTACT,,start,3,2,5,4,);
B(B_F,F146_RECV!,Instance,9,1,17,8,,?DEN?Ds1_Control?Ds2_AdrType?Ds2_AdrOffs?Dd_Start?AENO);
L(1,3,3,3);
L(5,3,9,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
변수 start가 TRUE로 설정되면 펑션이 실행됩니다.
VAR
start: BOOL:=FALSE;
(*activates the function*)
control_value: DWORD:=0;
(*32-bit area for storing
control data*)
start_address: WORD:=0;
(*Starting 16-bit area
address for the source
operand specified in s2*)
output_value: WORD:=0;
(*Starting 16-bit area
address for storing data
received*)
offset: INT:=0;
END_VAR
IF start then
F146_RECV( s1_Control:= control_value, s2_AdrType:= start_address, n_AdrOffs:= offset,
d_Start:= output_value);
END_IF;