주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

modbus

Modbus 객체 만들기

설명

TCP/IP

m = modbus(transport,deviceAddress)는 지정된 deviceAddress를 사용하여 전송 유형 'tcpip'를 통해 Modbus 객체 m을 구성합니다. deviceAddress는 Modbus 서버의 IP 주소 또는 호스트 이름입니다.

예제

m = modbus(transport,deviceAddress,tcpipPort)tcpipPort를 추가로 지정합니다. tcpipPort는 Modbus 서버에서 사용하는 원격 포트입니다. tcpipPort는 선택적 인수이며 디폴트 값은 Modbus용으로 예약된 포트인 502입니다.

예제

m = modbus(___,Name=Value)는 선택적 이름-값 인수를 사용하여 TCP/IP 전송 속성을 지정합니다.

예제

직렬

m = modbus(transport,serialPort)는 지정된 serialPort를 사용하여 전송 유형 'serialrtu'를 통해 Modbus 객체 m을 구성합니다.

예제

m = modbus(___,Name=Value)는 선택적 이름-값 인수를 사용하여 직렬 전송 속성을 지정합니다.

예제

예제

모두 축소

전송 방식이 TCP/IP인 경우 Modbus 서버의 IP 주소 또는 호스트 이름을 지정해야 합니다. 선택적으로 Modbus 서버에서 사용하는 원격 포트를 지정할 수 있습니다. 포트는 기본적으로 Modbus용으로 예약된 포트인 502로 설정됩니다.

아래 표시된 호스트 주소와 308 포트를 사용하여 Modbus 객체 m을 생성합니다.

m = modbus('tcpip', '192.168.2.1', 308)
m = 

   Modbus TCPIP with properties:

    DeviceAddress: '192.168.2.1'
             Port: 308
           Status: 'Connected'
       NumRetries: 1
          Timeout: 10 (seconds)
        ByteOrder: 'big-endian'
        WordOrder: 'big-endian'

사용자가 설정한 인수와 디폴트 값이 객체 출력에 모두 표시됩니다.

전송 방식이 'serialrtu'인 경우 Port 인수를 지정해야 합니다. 이 포트는 Modbus 서버가 연결되는 직렬 포트입니다.

Modbus 객체 m을 생성할 때 Port 값을 'COM3'으로 지정합니다.

m = modbus('serialrtu','COM3')
m = 

Modbus Serial RTU with properties:

             Port: 'COM3'
         BaudRate: 9600
         DataBits: 8
           Parity: 'none'
         StopBits: 1
           Status: 'Connected'
       NumRetries: 1
          Timeout: 10 (seconds)
        ByteOrder: 'big-endian'
        WordOrder: 'big-endian'

사용자가 설정한 인수와 자동으로 사용되는 디폴트 값이 객체 출력에 표시됩니다.

Timeout과 같은 속성을 설정하기 위해 이름-값 쌍을 사용하여 객체를 생성할 수 있습니다. Timeout 속성은 Modbus 서버로부터 응답을 기다리는 최대 시간을 초 단위로 지정하며, 디폴트 값은 10입니다. 객체 생성 중에 또는 객체 생성 후에 값을 변경할 수 있습니다. 속성 목록은 이름-값 인수 항목을 참조하십시오.

직렬 RTU를 사용하여 Modbus 객체를 생성하되, Timeout 값을 20초로 늘립니다.

m = modbus('serialrtu','COM3',Timeout = 20)
m = 

Modbus Serial RTU with properties:

             Port: 'COM3'
         BaudRate: 9600
         DataBits: 8
           Parity: 'none'
         StopBits: 1
           Status: 'Connected'
       NumRetries: 1
          Timeout: 20 (seconds)
        ByteOrder: 'big-endian'
        WordOrder: 'big-endian'

객체 출력은 Timeout 속성의 변경 내용을 반영합니다.

Timeout 값을 20초로 변경합니다. 객체 생성 후 속성 값을 변경하기 위해 점 표기법을 사용할 수 있습니다.

m.Timeout = 30
m = 

Modbus Serial RTU with properties:

             Port: 'COM3'
         BaudRate: 9600
         DataBits: 8
           Parity: 'none'
         StopBits: 1
           Status: 'Connected'
       NumRetries: 1
          Timeout: 30 (seconds)
        ByteOrder: 'big-endian'
        WordOrder: 'big-endian'

입력 인수

모두 축소

장치 통신을 위한 물리적 전송 계층으로, 문자형 벡터 또는 string형으로 지정됩니다. modbus 객체를 생성할 때 첫 번째 인수로 전송 유형을 지정하십시오. 사용할 프로토콜을 지정하려면 전송 유형을 'tcpip' 또는 'serialrtu'로 설정해야 합니다.

예: m = modbus('tcpip','192.168.2.1')

데이터형: char | string

Modbus 서버의 IP 주소 또는 호스트 이름을 문자형 벡터 또는 string형으로 지정합니다. 전송 프로토콜이 TCP/IP인 경우, 객체 생성 시 두 번째 인수로 이 인수를 반드시 지정해야 합니다.

예: m = modbus('tcpip','192.168.2.1')

데이터형: char | string

Modbus 서버에서 사용하는 원격 포트로, double형으로 지정됩니다. 전송 방식이 TCP/IP인 경우 객체 생성 시 이 인수를 세 번째 인수로 선택적으로 지정할 수 있습니다. 지정하지 않으면 디폴트 값인 502가 사용됩니다.

예: m = modbus('tcpip','192.168.2.1',308)

데이터형: double

Modbus 서버가 예를 들어 문자형 벡터 또는 string형으로 지정된 'COM1'에 연결됩니다. 전송 방식이 직렬 RTU인 경우, 객체 생성 시 이 인수를 두 번째 인수로 지정해야 합니다.

예: m = modbus('serialrtu','COM3')

데이터형: char | string

이름-값 인수

모두 확장

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: m = modbus('serialrtu','COM3','Timeout',20)

TCP/IP 전송 속성

모두 확장

Modbus 서버로부터 응답을 기다리는 최대 시간(초)으로, double형의 양수 값으로 지정됩니다. 디폴트 값은 10입니다. 객체 생성 중에 또는 객체 생성 후에 값을 변경할 수 있습니다.

예: m = modbus('tcpip','192.168.2.1',Timeout = 20)

데이터형: double

제한 시간이 지나도 서버에서 응답이 없을 경우 수행할 재시도 횟수입니다. 이 값은 쉼표로 구분된 'NumRetries'double형의 양수 값으로 구성됩니다. TCP/IP 전송의 경우 연결이 닫혔다가 다시 열립니다. 객체 생성 중에 또는 객체 생성 후에 값을 변경할 수 있습니다.

예: m = modbus('tcpip','192.168.2.1',NumRetries = 5)

데이터형: double

16비트 레지스터에 쓰거나 읽는 값의 바이트 순서로, 'big-endian''little-endian'으로 지정됩니다. 디폴트 값은 Modbus® 표준에 명시된 대로 'big-endian'입니다.

예: m = modbus('tcpip','192.168.2.1',ByteOrder = 'little-endian')

데이터형: char | string

여러 16비트 레지스터에서 레지스터를 읽거나 쓸 때의 워드 순서로, 'big-endian''little-endian'으로 지정됩니다. 디폴트 값은 'big-endian'이며, 장치에 따라 다릅니다.

예: m = modbus('tcpip','192.168.2.1',WordOrder = 'little-endian')

데이터형: char | string

직렬 전송 속성

모두 확장

Modbus 서버로부터 응답을 기다리는 최대 시간(초)으로, double형의 양수 값으로 지정됩니다. 디폴트 값은 10입니다. 객체 생성 중에 또는 객체 생성 후에 값을 변경할 수 있습니다.

예: m = modbus('serialrtu','COM3',Timeout = 20)

데이터형: double

제한 시간이 지나도 서버에서 응답이 없을 경우 수행할 재시도 횟수입니다. 이 값은 쉼표로 구분된 'NumRetries'double형의 양수 값으로 구성됩니다. 직렬 RTU 전송의 경우 메시지가 다시 전송됩니다. 객체 생성 중에 또는 객체 생성 후에 값을 변경할 수 있습니다.

예: m = modbus('serialrtu','COM3',NumRetries = 5)

데이터형: double

16비트 레지스터에 쓰거나 읽는 값의 바이트 순서로, 'big-endian''little-endian'으로 지정됩니다. 디폴트 값은 Modbus 표준에 명시된 대로 'big-endian'입니다.

예: m = modbus('serialrtu','COM3',ByteOrder = 'little-endian')

데이터형: char | string

여러 16비트 레지스터에서 레지스터를 읽거나 쓸 때의 워드 순서로, 'big-endian''little-endian'으로 지정됩니다. 디폴트 값은 'big-endian'이며, 장치에 따라 다릅니다.

예: m = modbus('serialrtu','COM3',WordOrder = 'little-endian')

데이터형: char | string

직렬 포트 통신의 비트 전송 속도로, double형의 양수 값으로 지정됩니다. 디폴트 값은 초당 9600 비트이지만, 실제로 필요한 값은 장치에 따라 다릅니다.

예: m = modbus('serialrtu','COM3',Baudrate = 28800)

데이터형: double

전송할 데이터 비트 수로, 5, 6, 7 또는 8 중 하나로 지정됩니다. 디폴트 값은 8이며, 이는 직렬 RTU에 대한 Modbus 표준의 값입니다.

예: m = modbus('serialrtu','COM3',DataBits = 6)

데이터형: double

패리티 검사 유형으로, 'none', 'even', 'odd', 'mark', 'space'로 지정됩니다. 실제로 필요한 값은 장치에 따라 다릅니다. 디폴트 값인 none으로 설정하면 패리티 검사가 수행되지 않으며 패리티 비트가 전송되지 않습니다.

예: m = modbus('serialrtu','COM3',Parity = 'odd')

데이터형: char | string

데이터 전송 종료를 나타내는 비트 수로, 1(디폴트 값) 또는 2로 지정합니다. 실제로 필요한 값은 장치에 따라 다르지만, 일반적으로 짝수/홀수 패리티의 경우 1이고 패리티가 없는 경우 2입니다.

예: m = modbus('serialrtu','COM3',StopBits = 2)

데이터형: double

확장 기능

모두 확장

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2017a에 개발됨

모두 확장

참고 항목

| | |

도움말 항목