정의
wait_modbus_input(iobus, val, timeout=None)
기능
Modbus Slave 장치에서 지정한 신호값이 val(ON or OFF)이 될 때까지 대기합니다. 대기 시간은 timeout 설정으로 변경할 수 있으며, 지정된 시간이 지나면 대기 상태가 종료됨과 동시에 결과를 리턴합니다. 단, timeout을 설정하지 않으면 무한 대기합니다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
iobus |
string |
- |
modbus 이름 (TP에서 설정) |
|
val
|
int |
- |
Modbus digital I/O 인 경우
|
|
Modbus analog I/O 인 경우 value |
|||
|
timeout |
float |
- |
대기 시간 [sec] 설정하지 않으면 무한 대기 |
알아두기
다중신호로 등록된 경우 신호이름에 인덱스[n]를 붙여 사용가능합니다.
리턴
|
값 |
설명 |
|---|---|
|
0 |
성공 |
|
-1 |
실패 (time-out) |
예외
|
예외 |
설명 |
|---|---|
|
DR_Error (DR_ERROR_TYPE) |
인수들의 데이터형 오류 시 |
|
DR_Error (DR_ERROR_VALUE) |
인수의 값이 유효하지 않을 시 |
|
DR_Error (DR_ERROR_RUNTIME) |
C Extension 모듈 에러 발생 시 |
|
DR_Error (DR_ERROR_STOP) |
프로그램 강제 종료 시 |
예제
Python
wait_modbus_input("CIN0", ON) # "CIN0" 신호가 ON될 때까지 무한 대기
wait_modbus_input("CIN0", OFF) # "CIN0" 신호가 OFF될 때까지 무한 대기
res = wait_modbus_input("CIN0", ON, 3) # "CIN0" 신호가 ON될 때까지 3초간 대기
# 3초 안에 1번 신호가 ON 되면, res = 0
# 3초 안에 1번 신호가 ON 되지 않았으면 res = -1
# 다중신호 신호이름: “multi”(cnt=2)가 등록되어 있는 경우
# “multi[0]”, “multi[1]” 사용가능
wait_modbus_input(“multi [1]”, ON)
wait_modbus_input(“multi [0]”, OFF)