set_modbus_output(iobus, value, time=None, val2=None)
기능
외부 Modbus 장치에 신호를 내보내기 위한 명령어입니다.
Function Code 05 Write Single Coil Register
Function Code 06 Write Signle Holding Register
인수
인수명 | 자료형 | 기본값 | 설명 |
iobus | string | - | modbus 이름(TP에서 설정) |
value | int | - | Modbus Coil Register인 경우 value
|
Modbus Holding Register인 경우 value | |||
time | int (또는 float) | None | 사용자 지정 지연 시간값 |
val2 | int | None | 사용자가 지정한 지연 시간 뒤에 적용될 value
|
알아두기
다중 신호로 등록된 경우 신호이름에 인덱스[n]를 붙여 사용가능합니다.
리턴
값 | 설명 |
---|---|
0 | 성공 |
음수값 | 실패 |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
#Modbus Coil Register "do1", "do2"가 등록되어 있는 경우
set_modbus_output("do1", ON)
set_modbus_output("do2", OFF)
#Modbus Holding Register "reg1", "reg2"가 등록되어 있는 경우
set_modbus_output("reg1", 10)
set_modbus_output("reg2", 24)
#다중신호 신호이름: “multi”(cnt=2)가 등록되어 있는 경우
#“multi[0]”, “multi[1]” 사용가능
set_modbus_output("multi[0]", 24)
set_modbus_output("multi[1]", 65535)
#timeout을 사용하는 경우
set_modbus_output("reg1-to", 100, 3, 50)
set_modbus_output("reg2-to", 50, 1, 5)