상기한 바와 같은 목적을 달성하고 종래의 결점을 제거하기 위한 과제를 수행하는 본 발명은 UPS와 UPS에 연결되어 UPS에 의해 전원이 통제되는 설비와 이들을 사용자가 관리하기 위해 PC(Personal Computer)이거나 PC와 같이 소프트웨어의 탑재가 가능한 제어콘솔과 다수의 UPS를 감시하고 관리하며 작업의 결과를 사용자에게 보여주는 제어소프트웨어와 패킷의 중계와 관리를 해주는 감시기와 정보를 전달하기 위해 패킷의 형태를 정의하는 프로토콜과 상기의 제어콘솔과 다수의 UPS와 다수의 설비와 감시기를 이어주는 네트워크망으로 이루어지며, 이를 도면을 통해 설명하면 도 3과 같이 사용자 제어화면(1)에서 사용자가 사용자 제어화면에 표시된 정보를 바탕으로 명령(16, 18)을 내리면 감시기(12)를 거쳐 명령에 해당하는 UPS(6)나 설비(14)에 전달이 되고 설비(14)는 자신의 상태를 UPS(6)에 보고(13)하는 동시에 감시기를 거쳐 사용자 제어화면에 보여주게 된다. 또한 UPS와 설비는 사용자로부터 내려온 명령이나 명령에 의한 수행결과뿐 아니라 수시로 상황을 보고(15,17)하게 된다.
상기의 내용을 좀더 구체적으로 설명하면 도 7에서와 같이 SCADA/HMI/MMI호환 제어소프트웨어를 통해 보이는 사용자 제어화면(1)에서 사용자가 화면의 정보파악 및 명령을 지시(38)하면 MODBUS프로토콜의 형식에 맞추어 패킷을 생성하고 감시기(12)로 전송(39)을 하는 단계와;
감시기(12)는 전달된 패킷을 패킷내부의 Slave Address Field에 지정된 UPS가 위치한 지역을 확인(40)하고 UPS인지 설비인지 분류(41)하고 다시 UPS가 가진 각각의 Slave Address로 분류(42, 43)하여 해당하는 UPS(42)에 네트워크를 통해 전달하는 단계와;
네트워크를 통해 감시기(12)로부터 전달된 패킷을 MODBUS프로토콜 형식에 따라 해석(44)하는 단계와;
해석된 패킷에 따라 UPS를 제어하는 단계와;
수행 시 수행에 실패(48)하면 일정횟수이상 시도(39)를 하고 반복적인 수행의 시도(39)에도 불구하고 실패(48)할 경우 수행을 포기하는 단계와;
동시에 수행의 성공(46)여부에 관계없이 모든 수행의 결과를 기록하여 MODBUS프로토콜 형식에 따라 보고할 패킷을 작성하고 네트워크를 통해 감시기(12)로 전송(47)하는 단계와;
감시기(12)에 전달된 패킷을 다시 네트워크를 통해 제어콘솔에 전송(50)하는 단계와;
네트워크를 통해 제어콘솔에 전달된 패킷을 해석(51)하는 단계와;
해석된 패킷을 바탕으로 사용자 제어화면에 표시(52)하는 단계로 이루어지는 것을 특징으로 한다.
상기의 단계 중 패킷해석단계를 좀더 자세히 설명하면 도 9에서와 같이 해당 패킷이 도착하여 해석과정을 시작(53)하면 패킷이 완전히 전송되어 전송이 종료되었는지 판단(54)하여 비정상적으로 종료되면 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기 전송종료 시에 정상적으로 종료되면 슬레이브 어드레스 필드에 값이 0인지 판단(55)하여 0이면 제네랄플레그(General Flag : GF)에 1을 넣어주고(58) 0이 아니면 슬레이브 어드레스 필드와 고유어드레스와 일치하는지 판단(56)하여 일치하면 제네랄플레그(General Flag : GF)에 0을 넣어주고(57) 일치하지 않으면 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기 단계에서 고유번호와 슬레이브 어드레스 필드의 내용이 일치하면 패킷의 다음 필드인 에러체크필드에 CRC-16알고리즘으로 작성된 정보의 무결성을 판단(59)하여 무결성의 입증이 불가능하면 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기의 에러체크필드의 CRC-16알고리즘으로 작성된 정보의 무결성이 입증되 면 패킷내부의 다음 필드인 펑션필드의 값이 3(60)이면 모드버스 리드(MODBUS Read)(65)를 실행하고, 값이 6(61)이면 모드버스 라이트1(MODBUS Write 1)(64)을 실행하고, 값이 16이면 모드버스 라이트2(MODBUS Write 2)(63)을 실행하고, 3,6,16을 제외한 모든 값은 명령에러송신(66)을 실행하는 단계와;
상기의 단계가 끝나면 초기의 대기상태(67)로 대기하는 단계로 이루어진다.
상기 패킷의 해석단계 중 모드버스리드(MODBUS Read)(65)단계를 좀더 자세히 설명하면 도 10과 같이 유효어드레스 범위가 적합한지 판단(66)하여 부적합하면 어드레스에러송신(68)을 실행한 후 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기 수행단계에서 유효어드레스 범위가 적합하면 데이터길이 범위가 유효한지 판단(67)하여 유효하지 않으면 데이터에러송신(70)을 실행한 후 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기 수행단계에서 데이터길이범위가 유효하면 읽기성공송신(69)을 실행한 후 모드버스리드(MODBUS Read)단계의 실행을 종료하는 단계로 이루어진다.
상기 패킷의 해석단계 중 모드버스라이트 1(MODBUS Write 1)과 모드버스라이트 2(MODBUS Write 2)(64)단계를 좀더 자세히 설명하면 도 11과 같이 유효어드레스 범위가 적합한지 판단(66)하여 부적합하면 어드레스에러송신(68)을 실행한 후 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기 수행단계에서 유효어드레스 범위가 적합하면 데이터길이 범위가 유효한지 판단(67)하여 유효하지 않으면 데이터에러송신(70)을 실행한 후 하위단계의 실행을 중지하고 초기의 대기상태(67)로 대기하는 단계와;
상기 수행단계에서 데이터길이범위가 유효하면 쓰기성공송신(71)을 실행한 후 모드버스라이트 1(MODBUS Write 1)과 모드버스라이트 2(MODBUS Write 2)단계의 실행을 종료하는 단계로 이루어진다.
상기 패킷의 해석단계 중 명령에러송신(66)단계와, 데이터에러송신(68)단계와, 어드레스에러송신(70)단계를 좀더 자세히 설명하면 도 12과 같이
상기의 패킷해석단계 중 슬레이브 어드레스의 적합성을 판단하여 적합성 여부에 따라 입력된 제네랄 플레그의 값이 0인지 판단(92)하여 0이 아니면 하위단계의 실행을 중지하고 초기의 대기상태(90)로 대기하는 단계와;
상기 수행단계에서 제네랄 플레그의 값이 0인지 판단하여 0이면 송신을 위한 헤더를 작성하는 송신헤더작성(72)단계와;
상기 실행단계에서 송신헤더의 작성이 성공적으로 끝나면 에러필드에 에러코드를 작성(73)하는데 명령에러송신단계는 1, 어드레스에러송신단계는 2, 데이터에러송신단계는 3의 값을 채우는 단계와;
상기 실행단계에서 에러코드작성이 성공적으로 끝나면 송신할 내용의 무결성을 증명하는 송신CRC를 계산(74)하여 그 값을 에러체크필드에 채우는 단계와;
상기 실행단계에서 송신CRC의 계산과 작성이 성공적으로 끝나면 송신데이터 의 개수를 계산(91)하는 단계와;
상기 실행단계에서 송신데이터의 개수의 계산(91)이 성공적으로 끝나면 TBUF에 패킷의 첫 번째 바이트를 채우고(75) 명령에러송신(66)단계와, 데이터에러송신(68)단계와, 어드레스에러송신(70)단계의 실행을 종료하는 단계로 이루어진다.
상기 패킷의 해석단계 중 읽기성공송신(69)단계를 좀더 자세히 설명하면 도 13과 같이 상기의 패킷해석단계 중 슬레이브 어드레스의 적합성을 판단하여 적합성 여부에 따라 입력된 제네랄 플레그의 값이 0인지 판단(92)하여 0이 아니면 하위단계의 실행을 중지하고 초기의 대기상태(90)로 대기하는 단계와;
상기 수행단계에서 제네랄 플레그의 값이 0인지 판단하여 0이면 송신을 위한 헤더를 작성하는 송신헤더작성(72)단계와;
상기 실행단계에서 송신헤더의 작성이 성공적으로 끝나면 데이터필드에 데이터버퍼링(시작어드레스, 데이터요구갯수)(76)을 하는 단계와;
상기 실행단계에서 데이터버퍼링이 성공적으로 끝나면 송신할 내용의 무결성을 증명하는 송신CRC를 계산(74)하여 그 값을 에러체크필드에 채우는 단계와;
상기 실행단계에서 송신CRC의 계산과 작성이 성공적으로 끝나면 송신데이터의 개수를 계산(91)하는 단계와;
상기 실행단계에서 송신데이터의 개수의 계산(91)이 성공적으로 끝나면 TBUF에 패킷의 첫 번째 바이트를 채우고(75) 읽기성공송신단계의 실행을 종료하는 단계로 이루어진다.
상기 패킷의 해석단계 중 쓰기성공송신(71)단계를 좀더 자세히 설명하면 도 14와 같이 상기의 패킷해석단계 중 슬레이브 어드레스의 적합성을 판단하여 적합성 여부에 따라 입력된 제네랄 플레그의 값이 0인지 판단(92)하여 0이 아니면 하위단계의 실행을 중지하고 초기의 대기상태(90)로 대기하는 단계와;
상기 수행단계에서 제네랄 플레그의 값이 0인지 판단하여 0이면 송신을 위한 헤더를 작성하는 송신헤더작성(72)단계와;
상기 실행단계에서 송신헤더작성이 성공적으로 끝나면 송신할 내용의 무결성을 증명하는 송신CRC를 계산(74)하여 그 값을 에러체크필드에 채우는 단계와;
상기 실행단계에서 송신CRC의 계산과 작성이 성공적으로 끝나면 송신데이터의 개수를 계산(91)하는 단계와;
상기 실행단계에서 송신데이터의 개수의 계산(91)이 성공적으로 끝나면 TBUF에 패킷의 첫 번째 바이트를 채우고(75) 쓰기성공송신단계의 실행을 종료하는 단계로 이루어진다.
상기의 과정에 따라 원격으로 제어되는 UPS는 도 8에서와 같이 상용교류전력을 입력전원(76)으로 입력받아 입력단자(77)를 거쳐 적절한 전압으로 낮추는 트랜스(78)를 지나 전환스위치(82)와 정류부(79)를 지나게 된다. 정류부(79)를 거친 전력은 직류전류로 전환되어 축전지(80)에 저장이 되고 저장된 직류전원은 입력전원(76)의 이상이 감지되면 인버터(81)를 거쳐 교류전원으로 바뀐 후 전환스위치(82) 를 거치게 된다.
상기의 전환스위치(82)는 입력전원(76)의 상태에 따라 입력전원(76)이 안정적이면 트랜스(78)로부터 UPS에 연결된 설비에 알맞게 가공된 전원을 출력단자(84)를 통해 출력하고 불안정하게 되면 축전지(80)로부터 전력을 공급받아 인버터(81)를 거쳐 전환스위치(82)를 거쳐 출력단자(84)로 출력전원(83)으로 출력이 된다.
상기 UPS의 동작과정 중에 각부의 제어와 각부의 상태를 제어부(88)가 점검하고 이러한 작동의 결과를 통신부(85)를 통해 데이터통신(86)의 형태로 UPS의 외부로 보낸다.
UPS의 외부로 보내진 정보는 네트워크와 감시기를 통해 사용자의 제어콘솔로 전달되어 사용자가 식별이 가능한 형태로 보여주고 사용자는 이 정보를 바탕으로 다시 UPS의 통신부를 통해 제어부에 명령을 보내 UPS를 제어하게 된다.
상기의 과정들에 사용되는 데이터 통신용으로 사용되는 프로토콜은 MODBUS프로토콜로이를 자세히 설명하면 사용되는 정보의 최소단위인 패킷은 도 5와 같이 크게 4개의 구역으로 나누어진다. 슬레이브(Slave)에 해당하는 장비의 장비주소가 저장된 Slave Address Field(23)와, 마스터(Master)와 슬레이브간에 미리 지정된 특정 기능의 수행을 명령하며 UPS에 예외상황이 발생할 경우 사용자에게 예외상황을 통보해주기 위한 Function Field(24)와, 사용자가 UPS에 Function 으로 지정된 작업외의 작업이나 데이터를 보내거나 UPS로부터 사용자의 요구에 대한 회답이나 작업의 결과나 UPS 자신의 상태변화에 대한 데이터를 전달하는 Data Field(25)와, 네 트워크망을 통해 전송되는 데이터의 무결성을 증명하기 위해 CRC-16(Cyclic Redundancy Check-16Bit)알고리즘이 사용된 Error Check Field(26)로 이루어진다.
Error Check Field의 CRC-16으로 만들어진 데이터를 참조하여 만약 전송되는 데이터가 무결성이 입증이 되지 않으면 데이터 대한 재요청을 요구하고 그전에 전송된 데이터는 폐기되며 그 자리를 새로 요청한 데이터로 대체한다. 상기의 패킷의 크기는 Slave Address Field(1Byte), Function Field(1Byte), Data Field(N * 2Byte), Error Check Filed(2Byte)로 구성이 되는 것이 바람직하며 또한 Serial통신이 아닌 TCP/IP기반에서 통신을 할 경우 Error Check Field를 제거하고 Slave Address Field 부분의 앞부분에 6Byte의 TCP Header(30)를 추가한다. 이때 Error Check Field를 제거하는 이유는 TCP/IP방식의 통신이 자체적으로 에러를 검출하고 전송된 자료 중에 에러 부분에 대한 롤백(Roll Back)과 이를 통한 보정이 보장됨으로 2중의 에러체크가 불필요함에 따라 제거한다.
상기의 과정으로 인해 패킷의 크기가 줄어들어 네트워크망의 내부적으론 트래픽이 줄어드는 효과가 있으며 TCP/IP기반으로 사용 시 전단부에 추가되는 패킷을 자세히 설명하면 도 5와 같이 Salve Address Filed 앞부분에 추가되는 6Byte의 데이터 중 0~1Byte(27)는 Transaction Identifier로써 서버 내부에서의 처리단위인 Transaction처리 시 처리되기 위해 고유의 ID를 발급하며 이 ID로 Transaction을 식별하고 처리순서를 정하고, 2~3Byte(28)는 Protocol Identifier로 프로토콜을 구분하기 위한 구분단위로 쓰이며, 4~5Byte(29)는 Length Field()로 데이터를 해석하는 과정에서 Salve Address Filed와 Function Field와 Data Field의 길이를 나타 내어 데이터 길이가 틀린 데이터가 수신되면 자동으로 폐기하고 다시 요청을 하는 역할을 한다.
각 필드들 중에 Data Field는 가변적인 길이를 가지며 최소 2Byte에서 필요한 만큼 2Byte 단위로 매번 전송될 때마다 Data Field에 저장되는 데이터의 크기에 따라 변하게 되는데 예를 들어 최소크기(32)에서 1Byte라도 저장해야할 데이터가 늘어나면 2Byte를 증가시켜 Data Field만 4Byte로 크기가 증가(33)하게 된다.
Data Field가 계속 증가할 경우 필요한 크기(34)까지 0부터 n-1,n 까지 증가하며Data Filed는 데이터의 저장 시 상위바이트와 하위바이트로 나누어 기억하게 되는데 도 6에서와 같이 Slave장비 01번에 Function 04번을 수행하며 16진수로 3A12란 데이터를 기억하는 Data Filed를 가진 패킷(35)이 있다고 가정하면 상위 2Byte(36)가 3A를 하위 2Byte(37)가 12를 가지게 된다.
본 발명은 상술한 특정의 바람직한 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.