IPv4 프로토콜을 사용하여 IP 어드레스 설정
이 FP 명령은 인터넷 프로토콜 V4를 통해 sAddress에서 지정한 IP 어드레스에 대한 연결을 설정합니다.
입력
IPv4 어드레스 (필수 파라미터)
키워드: IP
넷마스크 (옵션 파라미터)
키워드: MASK
게이트웨이(옵션 파라미터)
키워드: GWIP
기본 게이트웨이를 사용하지 않을 경우 "0"을 지정합니다.
IP 어드레스를 192.168.1.5로 설정하고 넷마스크 255.255.255.0 및 게이트웨이 192.168.1.1 사용: 'IP=192.168.1.5,MASK=255.255.255.0,GWIP=192.168.1.1'
IP 어드레스를 192.168.1.5로 설정하고 넷마스크는 사용하지 않으며 게이트웨이 192.168.1.1 사용: 'IP=192.168.1.5,,GWIP=192.168.1.1'
출력
연결 타임아웃 시간을 초과한 경우
IP 어드레스가 유효하지 않을 경우
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
이 명령은 PLC를 시작할 때 한 번만 실행하는 것이 좋습니다 반복적으로 실행하지 마십시오.
초기화를 완료하는 데 3초 이상 걸립니다.
문자 데이터의 문자수는 256을 초과하지 않아야 합니다.
인터럽트 프로그램에서는 이 명령을 사용할 수 없습니다.
sAddress에서 문자열에 공백이 포함되지 않도록 합니다. 구분 기호로는 쉼표만 사용합니다.
IPv4 어드레스는 필수 항목입니다. 넷마스크 및 게이트웨이는 생략할 수 있습니다.
파라미터는 부분적으로 생략할 수 있습니다. 파라미터가 부분적으로 생략되어도 설정은 변경되지 않습니다.
대소문자를 사용하여 키워드를 지정할 수 있습니다.
키워드의 순서를 변경하지 않음. 키워드와 설정 파라미터를 여기에 나열된 순서대로 지정하십시오.
명령을 실행하기 전에 sys_bIsEthernetInitializing이 FALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializing이 TRUE로 전환됩니다. sys_bIsEthernetInitializing이 TRUE일 때 명령을 실행하면 에러가 발생합니다.
명령을 실행하기 전에 시스템 변수 sys_bIsEthernetIPAddressAssigned가 TRUE인지 확인합니다. FALSE인 경우에는 명령을 실행할 때 에러가 발생합니다.
sys_bIsEthernetCableNotConnected가 FALSE인 경우에만 명령을 실행할 수 있습니다.
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
파라미터에 지정된 값이 허용 범위를 벗어난 경우.
동일한 키워드가 두 번 이상 지정된 경우
명령을 인터럽트 프로그램에서 실행한 경우.
문자열 데이터의 문자 수가 256자 이상인 경우.
파라미터에 지정된 값이 허용 범위를 벗어난 경우.
동일한 키워드가 두 번 이상 지정된 경우
명령을 인터럽트 프로그램에서 실행한 경우.
문자열 데이터의 문자 수가 256자 이상인 경우.
잘못된 IP 어드레스, 넷마스크, 게이트웨이 또는 잘못된 IP 어드레스 조합으로 명령을 실행하면 sys_iEthernetConnectionErrorCode가 해당 에러 코드(1–4)로 설정됩니다.
이더넷 케이블이 분리된 상태에서 명령이 실행되는 경우. sys_iEthernetConnectionErrorCode "10: 이더넷 케이블 분리"로 설정됩니다.
이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
bSetIpv4Address: BOOL:=FALSE;
bGetConnection: BOOL:=FALSE;
bGetMac: BOOL:=FALSE;
dutIPv4Connection: FP_IPv4_CONNECTION_DUT;
dutIPv4MAC: FP_IPv4_MAC_DUT;
END_VAR
이 예제에서는 s_Address에서 지정한 이더넷 연결 파라미터를 설정합니다. 아래의 프로젝트 네비게이터에도 적절한 파라미터를 설정해야 합니다. bGetConnection이 TRUE로 설정된 경우 DUT FP_IPv4_CONNECTION_DUT에 연결 파라미터가 입력됩니다. bGetMac이 TRUE로 설정된 경우 MAC 어드레스의 파라미터를 DUT FP_IPv4_MAC_DUT에 입력합니다.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bSetIpv4Address,4,2,6,4,R);
B(B_CONTACT,,sys_bIsEthernetInitializing,15,2,17,4,N);
B(B_F,FP_IPV4_SET_ADDRESS!,,31,1,43,5,,?DEN?DsAddress?AENO?CbError);
B(B_VARIN,,'IP=192.168.1.5~MASK=255.255.255.0~GWIP=192.168.1.1',29,3,31,5,);
B(B_VAROUT,,bError,43,3,45,5,);
L(1,0,1,5);
L(1,3,4,3);
L(6,3,15,3);
L(17,3,31,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bGetConnection,4,1,6,3,);
B(B_F,FP_IPV4_GET_CONNECTION!,,31,0,45,4,,?DEN?DnPort?AENO?CdutIPv4Connection);
B(B_VAROUT,,dutIPv4Connection,45,2,47,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,31,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bGetMac,4,1,6,3,);
B(B_F,FP_IPV4_GET_MAC!,,31,0,41,4,,?DEN?AENO?CdutIPv4MAC);
B(B_VAROUT,,dutIPv4MAC,41,2,43,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,31,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bSetIpv4Address) AND not(sys_bIsEthernetInitializing) then
FP_IPV4_SET_ADDRESS(sAddress := 'IP=192.168.1.5,MASK=255.255.255.0,GWIP=192.168.1.1',
bError => bError);
END_IF;
IF (bGetConnection) then
FP_IPV4_GET_CONNECTION(nPort := SYS_ETHERNET_USER_CONNECTION_2, dutIPv4Connection => dutIPv4Connection);
END_IF;
IF (bGetMac) then
FP_IPV4_GET_MAC(dutIPv4MAC => dutIPv4MAC);
END_IF;