CommChannelData는 [통신 채널 그룹 - 통신 채널 - 디바이스]로 구성되는 파워씬 통신 모델 구조에서 통신 채널에 대한 정보를 보유하는 데이터 객체 입니다.
통신 채널 정보에는 통신 설정값뿐 아니라 통신 상태등과 같은 통신 연결 정보를 가지고 있습니다. 사용자는 CommChannelData를 이용하여 다음과 같은 작업을 수행할 수 있습니다.
• 해당 통신 채널에 속한 디바이스 목록을 조회할 수 있습니다.
• 아래 그림과 같이 '스카다 통신 채널 요약 정보' 화면에 표시되는 통신 채널에 관련된 정보들을 읽어올 수 있습니다.
.
CommChannelData를 얻기 위해서는, scada.getCommChannel( ) 함수를 호출합니다. 이때 인자로 조회할 통신채널 이름을 지정할 수 있습니다.
또한 scada.getCommChannelList( ) 함수를 사용하면 전체 통신 채널 목록을 불러올 수 있습니다.
그리고 CommChannelGroupData 개체를 이용해 해당 통신 채널 그룹에 속한 통신 채널 정보를 읽어올 수 있습니다.
Methods
int currentActiveNode
( )
|
현재 활성된 노드정보(메인,백업)를 읽습니다.
• 반환값 : 0: Main 채널 , 1: Backup 채널 , 2: 통신 미연결
예)
def activeNodeString(value):
if ( value == 0 ):
return '백업'
elif ( value ==1 ):
return '메인'
return '연결해제됨'
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
for channel in channels:
#채널 이름과 채널이 활성화된 노드 정보를 읽습니다.
print channel.getName(), ':' , channel.currentActiveNode() , activeNodeString( channel.currentActiveNode() )
|
결과)
PCS1 : 1 메인
BMS1 : 1 메인
PCS2 : 0 백업
BMS2 : 0 백업
ACB1 : 0 백업
PV : 1 메인
|
|
datetime getChennelClosedTime
( )
|
통신연결이 해제된 시간을 읽습니다.
• 반환값 : python datetime형식으로 연결 해제된 시간을 반환 합니다.
예)
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
#채널별로 통신 연결 해제 시간을 불러 옵니다
for channel in channels:
print channel.getName(), ':' , channel.getChennelClosedTime()
|
결과)
PCS1 : 2025-11-10 15:08:19
BMS1 : 2025-11-10 15:08:19
PCS2 : 1970-01-01 09:00:00
BMS2 : 1970-01-01 09:00:00
ACB1 : 1970-01-01 09:00:00
PV : 2025-11-10 15:08:19
|
|
datetime getChennelOpenedTime
( )
|
통신이 연결된 시간을 읽습니다.
• 반환값 : python datetime형식으로 연결 해제된 시간을 반환 합니다.
예)
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
#채널별로 통신 연결 시간을 불러 옵니다
for channel in channels:
print channel.getName(), ':' , channel.getChennelOpenedTime()
|
결과)
PCS1 : 2025-11-10 15:09:37
BMS1 : 2025-11-10 15:09:37
PCS2 : 1970-01-01 09:00:00
BMS2 : 1970-01-01 09:00:00
ACB1 : 1970-01-01 09:00:00
PV : 2025-11-10 15:09:37
|
|
string getDescription
( )
|
통신 채널 그룹 설명을 읽어 옵니다.
예)
# 통신 채널 목록을 얻어 옵니다.
channels = scada.getCommChannelList( )
# 채널 설명 읽기
for channel in channels:
print channel.getDescription()
|
|
DeviceData getDevice
( index )
|
통신 채널에 속한 디바이스중 주어진 인덱스에 해당하는 디바이스를 읽습니다.
예)
# '원암지2' 채널을 읽습니다.
channel = scada.getCommChannel('원암지2')
# '원암지2'속한 디바이스 갯수를 읽습니다.
deviceCount = channel.getDeviceCount()
for index in range(deviceCount):
# 주어진 인덱스에 해당하는 디바이스를 읽습니다.
device = channel.getDevice(index)
print channel.getName() ,':' , device.getName()
|
|
int getDeviceCount
( )
|
통신 채널 그룹에 속한 통신 채널 수를 반환 합니다..
예)
# '원암지2' 채널을 읽습니다.
channel = scada.getCommChannel('원암지2')
# '원암지2'속한 디바이스 갯수를 읽습니다.
deviceCount = channel.getDeviceCount()
for index in range(deviceCount):
# 주어진 인덱스에 해당하는 디바이스를 읽습니다.
device = channel.getDevice(index)
print channel.getName() ,':' , device.getName()
|
|
list<CommChannelData> getDeviceList
( )
|
통신 채널 그룹에 속한 통신 채널 목록을 불러 옵니다.
예)
# '원암지2' 채널을 읽습니다.
channel = scada.getCommChannel('원암지2')
# '원암지2'속한 디바이스 목록을 읽습니다.
devices = channel.getDeviceList()
for device in devices :
print channel.getName() ,':' , device.getName()
|
|
string getName
( )
|
통신 채널 그룹 이름을 읽습니다.
예)
# 통신 채널 목록을 얻어 옵니다.
channels = scada.getCommChannelList( )
# 채널 설명 읽기
for channel in channels:
print channel.getName()
|
|
int getStatus
( )
|
통신 채널 상태를 읽습니다.
• 반환값 : 1: 정상 , 0: 연결 해제
예)
def channelStatusString(value):
if ( value == 0 ):
return '연결 해제'
elif ( value ==1 ):
return '정상'
return '연결 해제'
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
for channel in channels:
#채널 이름과 채널 연결상태를 얻어 옵니다.
print channel.getName(), ':' , channel.getStatus() , channelStatusString( channel.getStatus() )
|
결과)
PCS1 : 1 정상
BMS1 : 1 정상
PCS2 : 0 연결 해제
BMS2 : 0 연결 해제
ACB1 : 0 연결 해제
PV : 1 정상
|
|
int getTodayFailCount
( )
|
금일 통신 연결 실패 횟수를 조회합니다.
예)
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
for channel in channels:
print channel.getName(), ':' , channel.getTodayFailCount()
|
결과)
PCS1 : 0
BMS1 : 0
PCS2 : 0
BMS2 : 0
ACB1 : 0
PV : 0
|
|
int getTodayFailDuration
( )
|
금일 통신 연결 해제 시간을 조회합니다(초)
예)
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
for channel in channels:
print channel.getName(), ':' , channel.getTodayFailDuration()
|
결과)
PCS1 : 0
BMS1 : 0
PCS2 : 0
BMS2 : 0
ACB1 : 0
PV : 0
|
|
int getTotalFailCount
( )
|
전체 통신 연결 실패 횟수를 조회합니다.
예)
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
for channel in channels:
print channel.getName(), ':' , channel.getTotalFailCount()
|
결과)
PCS1 : 72
BMS1 : 69
PCS2 : 0
BMS2 : 0
ACB1 : 0
PV : 76
|
|
int getTotalFailDuration
( )
|
전체 통신 연결 해제 시간을 조회합니다(초)
예)
# 전체 채널을 읽습니다.
channels = scada.getCommChannelList( )
for channel in channels:
print channel.getName(), ':' , channel.getTotalFailDuration()
|
결과)
PCS1 : 71443
BMS1 : 71420
PCS2 : 0
BMS2 : 0
ACB1 : 9900367
PV : 126015
|
|