FP_ETHERNET_CONNECTION_SET

이더넷 연결 설정

이 FP 명령은 nStartPort~nEndPort로 지정된 사용자 연결 범위에서 sModesAddress에 의해 지정된 설정으로 이더넷 연결을 설정합니다. [시스템 레지스터] > [이더넷] > [사용자 연결] 아래의 프로젝트 네비게이터에서도 적절한 파라미터를 설정해야 합니다.

파라미터

입력

sMode (STRING)

통신 모드 및 연결 파라미터를 설정합니다.

  • 통신 모드(필수 파라미터)

    통신 모드에 대한 파라미터를 지정합니다.

    키워드:

    • 'MEWCOM': MEWTOCOL-COM(기본)

    • 'MEW7COM': MEWTOCOL7-COM

    • 'MODBUS': MODBUS-TCP

    • 'MEWDAT': MEWTOCOL-DAT

    • 'GP': 프로그램 제어 [일반 용도](16명의 사용자 연결에만 사용 가능)

    • 'GP_LARGE': 대용량 수신이 가능한 프로그램 제어 [일반 용도](첫 번째 사용자 연결에만 사용 가능하고 PLC 기종 CPS4*CPS3* 버전 4.32 이상에서만 사용 가능)

  • 옵션 설정(필수 파라미터)

    일부 통신 모드에는 활성화할 수 있는 추가 프로토콜 옵션이 있습니다. 선택한 통신 모드에 대한 옵션을 사용할지 여부를 지정합니다.

    • 'OPTAV': 선택한 통신 모드에 사용할 수 있는 옵션이 활성화됩니다.

    • 'OPTNAV': 선택한 통신 모드에 사용할 수 있는 옵션이 없거나 사용 가능한 옵션이 활성화되지 않았습니다(기본).

    통신모드

    'OPTAV'

    'OPTNAV'

    MEWTOCOL-COM

    FP2 ET-LAN과 연결

    연결하지 말 것

    MEWTOCOL7-COM

    사용할 수 없음

    사용할 수 없음

    MODBUS-TCP

    사용할 수 없음

    사용할 수 없음

    MEWTOCOL-DAT

    FP2 ET-LAN과 연결

    연결하지 말 것

    프로그램 제어[일반 용도]

    특수 헤더를 추가하지 말 것

    특수 헤더 추가

    대용량 수신이 가능한 프로그램 제어 [일반 용도]

    특수 헤더를 추가하지 말 것

    사용할 수 없음. 이 키워드를 지정하면 연산 에러가 발생합니다.

  • 열려는 이더넷 연결 유형을 지정합니다(필수 파라미터).

    • 'CL': 클라이언트 연결(기본)

      클라이언트 연결의 경우 대상 유닛 IP 어드레스는 nStartPort에 지정된 사용자 연결부터 nEndPort에 지정된 사용자 연결까지 각 사용자 연결이 1씩 증가합니다.

    • 'SV': 서버 연결

      서버 연결의 경우 마스터 유닛 포트 번호는 nStartPort에 지정된 사용자 연결부터 nEndPort에 지정된 사용자 연결까지 각 사용자 연결이 1씩 증가합니다.

  • 이더넷 연결을 여는 방법을 지정합니다(필수 파라미터).

    • 'AUTO': 연결을 자동으로 엽니다(기본).

    • 'MANU': 연결을 자동으로 열지 않습니다(그 대신 명령 FP_ETHERNET_CONNECTION_OPEN 사용).

  • 이더넷 통신 유형을 지정합니다(필수 파라미터).

    • 'TCP': TCP/IP 설정(기본)

    • 'UDP': UDP/IP 설정(통신 모드 GP_LARGE에서는 사용할 수 없음)

    참고:

    • UDP를 통신 유형으로 지정한 경우 FP 명령을 사용하는 것과 프로젝트 네비게이터에서 구성 설정을 구성하는 것 사이에는 차이가 있습니다. 프로젝트 네비게이터에서 사용할 수 있는 "개방형" 파라미터가 없습니다. 그러나 FP 명령에서는 반드시 "개방형"을 지정해야 합니다. 슬레이브 연결인 경우 키워드 'SV'를 사용하고 마스터 연결인 경우에는 키워드 'CL'을 사용합니다.

    • 통신 모드 GP_LARGE에 대한 UDP를 지정하지 마십시오. 이렇게 하면 연산 에러가 발생합니다.

  • 기본값으로 초기화합니다.

    'INITIAL': 모든 설정을 기본 설정으로 초기화합니다.

예:

  1. MEWTOCOL-COM을 통신 모드로 설정하고, FP2 ET-LAN과 연결하는 옵션을 사용하고, 클라이언트 연결이 자동으로 설정되고 열려야 하며, 통신 유형은 TCP/IP: 'MEWCOM,OPTAV,CL,AUTO,TCP'입니다.

  2. MODBUS-TCP를 통신 모드로 설정하고, 옵션을 사용할 수 없으며, 서버 연결은 설정되지만 자동으로 열리지는 않고, 통신 유형은 UDP/IP: 'MODBUS,OPTNAV,SV,MANU,UDP'입니다.

  3. 통신 모드를 프로그램 제어로 설정하고, 특수 헤더를 추가하고, 서버 연결이 자동으로 설정되어 열려야 하며, 통신 유형은 UDP/IP: 'GP,OPTNAV,SV,AUTO,UDP'입니다.

  4. 통신 모드를 대용량 수신이 가능한 프로그램 제어로 설정하고, 특수 헤더를 추가하지 않으며, 서버 연결이 설정되지만 자동으로 열리지 않고, 통신 유형은 TCP/IP: 'GP_LARGE,OPTAV,SV,MANU,TCP'입니다.

  5. 통신 모드가 MEWTOCOL-COM이 되도록 구성을 기본 설정으로 초기화하려는 경우, FP2 ET-LAN에 연결되지 않고, 클라이언트 연결이 자동으로 설정되고 열려야 하며, 통신 유형은 TCP/IP: 'INITIAL'입니다.

sAddress (STRING)

어드레스 파라미터를 설정합니다. 이 설정은 클라이언트 연결과 서버 연결 중 어떤 것을 지정하느냐에 따라 다릅니다.

클라이언트 연결의 경우, 대상 유닛의 IP 어드레스 및 포트 번호와 미사용 연결에 대한 연결 해제 시간을 지정해야 합니다.

서버 연결의 경우 마스터 유닛의 포트 번호와 미사용 연결의 연결 해제 시간을 지정해야 합니다.

  • 클라이언트 연결 지정

    • 대상 유닛 IP 어드레스(필수 파라미터)

      nStartPort에서 nEndPort까지로 지정된 사용자 연결 범위 내의 첫 번째 사용 연결에 대한 대상 유닛 IP 어드레스를 지정합니다. 다른 사용자 연결의 IP 어드레스는 IP 어드레스의 마지막 블록을 1씩 증가시켜 설정됩니다. 대상 포트 번호 및 연결 해제 시간은 모든 사용자 연결에 대해 동일하며 증가하지 않습니다.

      IP 어드레스의 경우, 처음에 IPv4 또는 IPv6 키워드를 지정합니다.

      • IPv4 구문: 예, 'IPv4=111.122.133.144'

      • IPv6 구문: 예, 'IPv6=1111:122:2:1555:0:0:1888'

        IPv4 어드레스의 범위 제한을 기록해 주십시오. IPv4의 경우 000.000.000.000 (0.0.0.0)을 지정할 수 없습니다. 명령과 함께 잘못된 IP 어드레스가 지정되면 작동 에러는 없지만 출력 bErrorTRUE로 설정됩니다. 시스템 변수 sys_iEthernetConnectionErrorCode는 "1: 잘못된 IP 어드레스가 지정됨"으로 설정됩니다.

    • 대상 유닛 포트 번호(필수 파라미터)

      키워드: 'PORT'

      구문:'PORT=xxxxx'

      값: 1–65535

    • 사용하지 않는 연결에 대한 연결 해제 시간 (필수 파라미터)

      키워드: 'DISCONT'

      구문: 'DISCONT=xxxx'

      값: 0–4294967295ms(10ms 단위). 0: 연결이 자동으로 끊어지지 않습니다.

    • 버퍼 시작 어드레스(옵션 파라미터) 수신

      이 파라미터는 통신 모드가 프로그램 제어[일반 용도]로 설정될 때 FP0H C32ET/EP, FP-XH C40ET, C60ET, FP-XH C60ETF에서만 사용 가능합니다.

      키워드: 'BUFTOP'

      구문: 'BUFTOP=xxxx'

      값: DT0~사용 가능한 마지막 DT

    • 수신 버퍼 크기(옵션 파라미터)

      이 파라미터는 통신 모드가 프로그램 제어[일반 용도]로 설정될 때 FP0H C32ET/EP, FP-XH C40ET, C60ET, FP-XH C60ETF에서만 사용 가능합니다.

      키워드: 'BUFSIZE'

      구문: 'BUFSIZE=xxxx'

      값: 0–2048

예:

  1. 대상 유닛 어드레스를 192.244.2.10으로 설정하고 대상 유닛 포트 번호를 9000으로 설정합니다. 연결을 사용하지 않더라도 자동으로 연결을 끊지 않습니다. 'IPv4=192.244.2.10,PORT=9000,DISCONT=0'

  2. 대상 유닛 어드레스를 1222::1555:0:0:1999로 설정하고 대상 유닛 포트 번호를 10000으로 설정합니다. 30초 동안 연결을 사용하지 않으면 자동으로 연결을 끊습니다. 'IPv6=1222::1555:0:0:1999,PORT=10000,DISCONT=30000'

  3. 대상 유닛 어드레스를 192.168.1.5로 설정하고 대상 유닛 포트 번호를 4000으로 설정합니다. 50초 동안 연결을 사용하지 않으면 자동으로 연결을 끊습니다. 수신 버퍼의 시작 어드레스를 DT4, 수신 버퍼 크기를 256: 'IPv4=192.168.1.5, PORT=4000, DISCONT=100, BUFTOP=DT4, BUFSIZE=256'으로 설정합니다.

  • 서버 연결 지정

    • 마스터 유닛 포트 번호(필수 파라미터)

      키워드: 'PORT'

      구문: 'PORT=xxxxx'

      값: 1–65535

    • 사용하지 않는 연결에 대한 연결 해제 시간 (필수 파라미터)

      키워드: 'DISCONT'

      구문: 'DISCONT=xxxx'

      값: 0–4294967295ms(10ms 단위). 0: 연결이 자동으로 끊어지지 않습니다.

예:

  1. 마스터 유닛 포트 번호를 9000으로 설정하고, 연결이 사용되지 않더라도 자동으로 연결을 끊지 않습니다. 'PORT=9000,DISCONT=0'

  2. 마스터 유닛 포트 번호를 10000으로 설정하고 30초 동안 연결을 사용하지 않으면 자동으로 연결을 끊습니다. 'PORT=10000,DISCONT=30000'

  3. 마스터 유닛 포트 번호를 11111로 설정하고, 70밀리초 동안 연결을 사용하지 않으면 자동으로 연결을 끊습니다. 'PORT=11111,DISCONT=70'

nStartPort (WORD, INT, UINT)

첫 번째 사용자 연결 번호를 설정합니다.

SYS_ETHERNET_USER_CONNECTION_1SYS_ETHERNET_USER_CONNECTION_216

nEndPort (WORD, INT, UINT)

마지막 사용자 연결 번호를 설정합니다.

SYS_ETHERNET_USER_CONNECTION_1SYS_ETHERNET_USER_CONNECTION_216

출력

bError(TRUE로 전환되어 TRUE로 유지됨) (BOOL)
  • IP 어드레스가 유효하지 않을 경우

  • IP 어드레스가 설정되지 않은 상태에서 명령이 실행되는 경우

에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.

프로그래밍 시 사전 주의사항

  • 키워드의 순서를 변경하지 않음. 키워드와 설정 파라미터를 여기에 나열된 순서대로 지정하십시오.

  • 콤마 ","를 사용하여 키워드와 해당 설정을 다음 키워드와 구분합니다.

  • nStartPort £ nEndPort가 되도록 합니다.

  • nStartPortnEndPort를 지정하여 모든 대상 유닛 IP 어드레스(클라이언트 연결) 또는 모든 마스터 유닛 포트 번호(서버 연결)가 허용 범위 내에 있도록 해야 합니다.

  • 이더넷 사용자 연결의 최대 수는 216개입니다.

  • 사용자 연결이 열려 있거나 사용자 연결이 자동으로 열리도록 설정되어 있을 때 이 명령을 실행하면 연산 에러가 발생합니다. 그러나 명령에 따라 여러 사용자 연결을 설정하면 연산 에러가 발생한 사용자 연결이 완료되기 에 사용자 연결에 대한 설정이 변경됩니다. 연산 에러가 발생한 사용자 연결 사용자 연결에 대한 설정 변경은 수행되지 않습니다.

  • 일부 클라이언트 연결이 이미 구성되어 있는 여러 클라이언트 연결에 이 명령을 사용할 경우 한 서버에 대해 구성된 사용자 연결이 함께 묶여져 모두 동시에 열리고 닫히므로 연산 에러가 발생합니다.

  • 인터럽트 프로그램에서는 이 명령을 사용할 수 없습니다.

주석

  • 대문자와 소문자를 모두 사용할 수 있습니다. "Abcd", "ABCD", "abcd"는 동의어입니다.

  • 명령을 실행하기 전에 sys_bIsEthernetInitializingFALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializingTRUE로 전환됩니다. sys_bIsEthernetInitializingTRUE일 때 명령을 실행하면 에러가 발생합니다.

  • 명령을 실행하기 전에 sys_bIsEthernetIPAddressAssignedTRUE인지 확인합니다. sys_bIsEthernetIPAddressAssignedFALSE인 상태에서 명령을 실행할 경우 bErrorTRUE로 바뀌고 명령이 실행되지 않고 종료됩니다.

  • 잘못된 IP 주소가 지정되면 bError가 지정되고 연산이 실행되지 않습니다.

  • 이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarrysys_iEthernetConnectionErrorCode가 초기화됩니다.

  • 이 명령은 PLC에 저장된 이더넷 구성 데이터를 영구적으로 덮어쓰지 않습니다. PLC의 전원을 껐다가 다시 켜면 PLC에 저장된 이더넷 구성 데이터가 다시 사용됩니다.

  • 에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • nStartPort > nEndPort인 경우

  • 사용자 연결 번호가 허용 범위를 벗어난 경우

  • 파라미터에 지정된 값이 허용 범위를 벗어난 경우.

  • 동일한 키워드가 두 번 이상 지정된 경우

  • 포트 번호가 유효하지 않은 경우.

  • 문자열 데이터의 문자 수가 256자 이상인 경우.

  • 열린 연결이 있는 경우.

  • 자동으로 열리도록 설정된 연결이 있는 경우.

  • nStartPort~nEndPort로 지정된 범위 내에 하나 이상의 사용자 연결이 기존 서버 구성에 속하는 경우.

  • GP_LARGE를 통신 모드로 지정하고 OPTNAV 를 프로토콜 옵션으로 지정한 경우.

  • GP_LARGE를 통신 모드로 지정하고 UDP를 이더넷 통신 유형으로 지정한 경우.

  • GP_LARGE를 통신 모드로 지정하고 nStartPort 또는 nEndPort가 1이 아닌 경우.

  • 명령을 인터럽트 프로그램에서 실행한 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • nStartPort > nEndPort인 경우

  • 사용자 연결 번호가 허용 범위를 벗어난 경우

  • 파라미터에 지정된 값이 허용 범위를 벗어난 경우.

  • 동일한 키워드가 두 번 이상 지정된 경우

  • 포트 번호가 유효하지 않은 경우.

  • 문자열 데이터의 문자 수가 256자 이상인 경우.

  • 열린 연결이 있는 경우.

  • 자동으로 열리도록 설정된 연결이 있는 경우.

  • nStartPort~nEndPort로 지정된 범위 내에 하나 이상의 사용자 연결이 기존 서버 구성에 속하는 경우.

  • GP_LARGE를 통신 모드로 지정하고 OPTNAV 를 프로토콜 옵션으로 지정한 경우.

  • GP_LARGE를 통신 모드로 지정하고 UDP를 이더넷 통신 유형으로 지정한 경우.

  • GP_LARGE를 통신 모드로 지정하고 nStartPort 또는 nEndPort가 1이 아닌 경우.

  • 명령을 인터럽트 프로그램에서 실행한 경우.

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	VAR
		bSetConnection: BOOL:=FALSE;
		bOpenConnection: BOOL:=FALSE;
		bCloseConnection: BOOL:=FALSE;
	END_VAR

POU 본문

변수 bSetConnectionFALSE에서 TRUE로 변경되고 시스템 변수 sys_bIsEthernetInitializingTRUE가 아니면 기능이 실행됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_VARIN,,'GP~OPTNAV~SV~AUTO~UDP',30,2,32,4,);
B(B_VARIN,,'PORT=9000~DISCONT=0',30,3,32,5,);
B(B_VARIN,,SYS_ETHERNET_USER_CONNECTION_1,30,4,32,6,);
B(B_VARIN,,SYS_ETHERNET_USER_CONNECTION_13,30,5,32,7,);
B(B_CONTACT,,sys_bIsEthernetInitializing,15,1,17,3,N);
B(B_CONTACT,,bSetConnection,5,1,7,3,R);
B(B_VAROUT,,bError,48,2,50,4,);
B(B_F,FP_ETHERNET_CONNECTION_SET!,,32,0,48,7,,?DEN?DsMode?DsAddress?DnStartPort?DnEndPort?AENO?CbError);
L(17,2,32,2);
L(1,2,5,2);
L(7,2,15,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing Then
    FP_ETHERNET_CONNECTION_SET(sMode := 'GP,OPTNAV,SV,AUTO,UDP',
                                sAddress := 'PORT=9000,DISCONT=0,BUFTOP=DT10000,BUFSIZE=100',
                                nStartPort := SYS_ETHERNET_USER_CONNECTION_1, 
                                nEndPort := SYS_ETHERNET_USER_CONNECTION_13);
END_IF;

최종 수정일: 2024-03-22이 페이지에 대한 피드백Panasonic 직통 전화