F145F146_MODBUS_MASTER

슬레이브에 데이터 쓰기 또는 슬레이브에서 데이터 읽기

사용 가능한 펑션 코드(프로그래밍 예 포함)

SYS_MODBUS_01_READ_COIL

SYS_MODBUS_02_READ_INPUT

SYS_MODBUS_03_READ_HOLDING_REGISTER

SYS_MODBUS_04_READ_INPUT_REGISTERS

SYS_MODBUS_05_FORCE_COIL

SYS_MODBUS_06_PRESET_REGISTER

SYS_MODBUS_15_FORCE_COILS

SYS_MODBUS_16_PRESET_REGISTERS

이 명령을 사용하여 마스터에서 슬레이브로 데이터를 쓰거나 사용되는 포트의 시스템 레지스터에 정의된 대로 Modbus RTU 프로토콜을 사용하는 통신 포트를 통해 슬레이브에서 데이터를 읽습니다. 마스터와 슬레이브에 동일한 프로토콜을 설정해야 합니다.

파라미터

입력

Port (WORD, INT, UINT)

PLC 기종에 따라 통신 포트를 지정합니다.

  • COM 포트(예: SYS_COM0_PORT)

  • 이더넷 포트(예: SYS_ETHERNET_USER_CONNECTION_1)

  • MCU/SCU(예: COM0116#xx01 (xx = 슬롯 번호))

SlaveAddress (WORD, INT, UINT)

슬레이브의 스테이션 번호(0–255).

SYS_ETHERNET_USER_CONNECTION_xxPort 입력에 적용된 경우, 1로 설정

FunctionCode* (WORD, INT, UINT)

SYS_MODBUS_01_READ_COIL

SYS_MODBUS_02_READ_INPUT

SYS_MODBUS_03_READ_HOLDING_REGISTER

SYS_MODBUS_04_READ_INPUT_REGISTERS

SYS_MODBUS_05_FORCE_COIL

SYS_MODBUS_06_PRESET_REGISTER

SYS_MODBUS_15_FORCE_COILS

SYS_MODBUS_16_PRESET_REGISTERS

StartRegister (WORD, INT, UINT)

시작 어드레스(0–65535) 어드레스 유형은 FunctionCode*에서 지정한 명령에 따라 다릅니다.

NumberOfRegisters* (WORD, INT, UINT)

전송 비트 수 또는 워드 수입니다.

  • 펑션 코드 01, 02의 경우 1–2040

  • 펑션 코드 15의 경우 2–2040

  • 펑션 코드 03, 04의 경우 1–127

  • 펑션 코드 16의 경우 2–127

MasterData (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

슬레이브에 쓸 데이터에 대한 마스터의 소스 어드레스.

주석

  • F 명령을 사용하는 대신 해당 FP7 명령을 사용하는 것이 좋습니다.FP_MODBUS_MASTER

  • 다른 F145 또는 F146 명령과 달리 파라미터 FunctionCode*에서 필요한 Modbus 명령을 직접 설정할 수 있습니다.

  • 어느 명령도 활성되지 않으면 F145 또는 F146 명령만 실행될 수 있습니다. 프로그램에서 "F145/F146 not active" 플래그를 평가하여 명령 상태를 확인합니다.

  • F145 명령은 슬레이브에 보낸 해당 데이터만 요청합니다. 실제 처리는 스캔 종료 시 실행됩니다.

  • "F145/F146 error" 플래그를 평가하여 전송이 정상적으로 완료되었는지 또는 오류가 발생했는지 확인합니다.

  • 브로드캐스팅 시(SlaveAddress가 0으로 설정) 최대 스캔 타임이 경과된 후에만 전송이 실행되는지 확인합니다.

  • 대상 어드레스가 특수 내부 플래그(R9000에서), 특수 데이터 등록(DT9000/DT90000에서) 또는 파일 레지스터 FL이면 F145 또는 F146 명령을 실행할 수 없습니다.

  • 마스터에서 지원되는 커맨드:

    펑션 코드

    시스템 정수

    시작 레지스터

    레지스터 수

    참조 번호(Modbus 슬레이브에 따름)

    01

    SYS_MODBUS_01_READ_COIL

    0–65535

    1–2040

    000001–065536

    02

    SYS_MODBUS_02_READ_INPUT

    0–65535

    1–2040

    100001–165536

    03

    SYS_MODBUS_03_READ_HOLDING_ REGISTER

    0–65535

    1–127

    400001–465536

    04

    SYS_MODBUS_04_READ_INPUT_ REGISTERS

    0–65535

    1–127

    300001–365536

    5

    SYS_MODBUS_05_FORCE_COIL

    0–65535

    1

    000001–065536

    6

    SYS_MODBUS_06_PRESET_ REGISTER

    0–65535

    1

    400001–465536

    15

    SYS_MODBUS_15_FORCE_COILS

    0–65535

    2–2040

    000001–065536

    16

    SYS_MODBUS_16_PRESET_ REGISTERS

    0–65535

    2–127

    400001–465536

  • Panasonic PLC의 Modbus 사양:

    참조 번호

    Panasonic PLC의 어드레스 영역

    000001부터

    Y0부터

    002049부터

    R0부터

    100001부터

    X0부터

    400001부터

    DT0부터

    300001부터

    WL0부터

    302001부터

    LD0부터

힌트

Panasonic PLC에서 지원하는 참조 번호와 어드레스 영역 범위는 PLC의 유저 설명서를 참조해 주십시오. 참조 번호가 지원 범위를 벗어나면 에러가 반환됩니다.

FP-X0, 멀티 커뮤니케이션 유닛(MCU): 인터넷의 다운로드 센터에서 찾을 수 있는 해당 설명서를 참조해 주십시오.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 슬레이브 또는 마스터 데이터가 사용 가능한 어드레스 범위를 초과합니다.
  • 통신 모드가 MEWTOCOL-COM 마스터/슬레이브 또는 Modbus RTU 마스터/슬레이브로 설정되지 않았습니다.
  • 선택한 COM 포트에 설치되지 않은 통신 카세트가 필요합니다.
sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 슬레이브 또는 마스터 데이터가 사용 가능한 어드레스 범위를 초과합니다.
  • 통신 모드가 MEWTOCOL-COM 마스터/슬레이브 또는 Modbus RTU 마스터/슬레이브로 설정되지 않았습니다.
  • 선택한 COM 포트에 설치되지 않은 통신 카세트가 필요합니다.

SYS_MODBUS_01_READ_COIL

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • Y(출력)

  • R(내부 플래그)

Modbus 명령 01 실행: StartRegister 변수에 의해 설정된 시작 레지스터 56에서 시작하는 Modbus 슬레이브에서 1비트를 읽습니다. 그런 다음 이 명령은 변수bBool2에 의해 설정된 어드레스부터 시작하여 마스터에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 56은 출력 Y38(3*16+8=56)에 해당합니다.

SYS_MODBUS_02_READ_INPUT

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • X(입력)

Modbus 명령 02 실행: StartRegister 변수에 의해 설정된 시작 레지스터 66에서 시작하는 Modbus 슬레이브에서 1비트를 읽습니다. 그런 다음 이 명령은 변수bBool2에 의해 설정된 어드레스부터 시작하여 마스터에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 66은 입력 X42(4*16+2=66)에 해당합니다.

SYS_MODBUS_03_READ_HOLDING_REGISTER

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • DT(데이터 레지스터)

Modbus 명령 03 실행: StartRegister 변수에 의해 설정된 시작 레지스터 100에서 시작하는 Modbus 슬레이브에서 2워드를 읽습니다. 그런 다음 이 명령은 변수rCount2에 의해 설정된 어드레스부터 시작하여 Modbus 마스터 22워드를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 100은 데이터 레지스터 DDT100에 해당합니다.

레지스터 최대 번호: 127.

SYS_MODBUS_04_READ_INPUT_REGISTERS

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • WL0–WL127(링크 플래그)

  • LD0–LD256(링크 레지스터)

Modbus 명령 04 실행: StartRegister 변수에 의해 설정된 시작 레지스터 2018에서 시작하는 Modbus 슬레이브에서 7워드를 읽습니다. 그런 다음 이 명령은 MasterData 변수에 의해 설정된 LD25부터 시작하여 마스터에 7워드를 저장합니다 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 2018은 링크 레지스터 LD18에 해당합니다.

레지스터 최대 번호: 127.

SYS_MODBUS_05_FORCE_COIL

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • Y(출력)

  • R(내부 플래그)

Modbus 명령 05 실행: MasterData 변수에 의해 설정된 어드레스 WY1에서 시작하는 Modbus 슬레이브에 1비트를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 35부터 시작하여 Modbus 슬레이브에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 어드레스 35은 출력 Y23(2*16+3=35)에 해당합니다.

여러 비트 데이터를 쓸 때는 SYS_MODBUS_15_FORCE_COILS 펑션 코드를 사용합니다.

최대 레지스터 수: 1

SYS_MODBUS_06_PRESET_REGISTER

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • DT(데이터 레지스터)

Modbus 명령 06 실행: MasterData 변수에 의해 설정된 어드레스 DT14에서 시작하는 Modbus 슬레이브에 1워드를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 21부터 시작하여 Modbus 슬레이브에 1워드를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 21은 데이터 레지스터 DT21에 해당합니다.

여러 비트 데이터를 쓸 때는 SYS_MODBUS_15_FORCE_COILS 펑션 코드를 사용합니다.

최대 레지스터 수: 1

SYS_MODBUS_15_FORCE_COILS

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • Y(출력)

  • R(내부 플래그)

Modbus 명령 15 실행: MasterData 변수에 의해 설정된 어드레스 WY1에서 시작하는 Modbus 슬레이브에 64비트를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 48부터 시작하여 Modbus 슬레이브에 64비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 어드레스 48은 출력 Y30(3*16=48)에 해당합니다.

SYS_MODBUS_16_PRESET_REGISTERS

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • DT(데이터 레지스터)

Modbus 명령 16 실행: rCount1 변수에 의해 설정된 어드레스에서 시작하는 Modbus 슬레이브에 데이터를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 100부터 시작하여 Modbus 슬레이브 2에 데이터를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 100은 데이터 레지스터 DDT100에 해당합니다.

레지스터 최대 번호: 127.

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