Raspberry Pi

pymodbus 메서드

kcuhc 2023. 4. 13. 17:15

pymodbus 라이브러리를 사용하여 Modbus 디바이스와 통신하기 위해 주요 기능 코드를 지정하려면 client 객체의 메서드를 호출하면 됩니다. 위 예제에서는 이미 holding 레지스터를 읽는 기능 코드 3을 사용하여 read_holding_registers() 메서드를 호출하고 있습니다.

다른 기능 코드를 사용하려면 해당 기능에 맞는 메서드를 호출해야 합니다. 주요 Modbus 기능 코드와 해당하는 pymodbus 메서드는 다음과 같습니다.

Read Coils (기능 코드 1)

메서드: read_coils(address, count, unit)


Read Discrete Inputs (기능 코드 2)

메서드: read_discrete_inputs(address, count, unit)

 

Read Holding Registers (기능 코드 3)

메서드: read_holding_registers(address, count, unit)

 

Read Input Registers (기능 코드 4)

메서드: read_input_registers(address, count, unit)

 

Write Single Coil (기능 코드 5)

메서드: write_coil(address, value, unit)

 

Write Single Register (기능 코드 6)

메서드: write_register(address, value, unit)

 

Write Multiple Coils (기능 코드 15)

메서드: write_coils(address, values, unit)

 

Write Multiple Registers (기능 코드 16)

메서드: write_registers(address, values, unit)

 

예를 들어, 기능 코드 4를 사용하여 입력 레지스터를 읽으려면 다음과 같이 코드를 수정할 수 있습니다.

# 입력 레지스터 값 읽기 (기능 코드 4)
result = client.read_input_registers(address=0, count=1, unit=1)

# 결과 출력
print(result.registers)

 

기능 코드에 맞는 메서드를 호출하여 필요한 기능을 사용할 수 있습니다. 위 예제에서는 주소 0에서부터 1개의 레지스터를 읽는 경우입니다. address, count, unit 파라미터 값을 필요에 따라 변경하여 원하는 Modbus 디바이스의 레지스터를 읽거나 쓸 수 있습니다.

반응형

'Raspberry Pi' 카테고리의 다른 글

python, modbus, serial  (0) 2023.04.13
라즈베리파이3 와이파이 연결불가인 경우  (0) 2017.01.23