KR20230016596A - SAP, PLC 및 IoT 기기 통합 관리 장치 - Google Patents

SAP, PLC 및 IoT 기기 통합 관리 장치 Download PDF

Info

Publication number
KR20230016596A
KR20230016596A KR1020220089010A KR20220089010A KR20230016596A KR 20230016596 A KR20230016596 A KR 20230016596A KR 1020220089010 A KR1020220089010 A KR 1020220089010A KR 20220089010 A KR20220089010 A KR 20220089010A KR 20230016596 A KR20230016596 A KR 20230016596A
Authority
KR
South Korea
Prior art keywords
sap
integrated management
data
memory
control unit
Prior art date
Application number
KR1020220089010A
Other languages
English (en)
Inventor
유철홍
Original Assignee
주식회사 아이에스티엔
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아이에스티엔 filed Critical 주식회사 아이에스티엔
Publication of KR20230016596A publication Critical patent/KR20230016596A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/30Control
    • G16Y40/35Management of things, i.e. controlling in accordance with a policy or in order to achieve specified objectives

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른 SAP 및 디바이스 통합 관리 장치는 PLC(Programmable Logic Controller) 및 IoT(Internet of Things) 기기의 데이터를 획득 및 업데이트하는 디바이스 서버 및 SQL 질의문을 해석하고 상기 디바이스 서버 및 SAP와 통신하는 통합 관리 에이전트를 포함한다.

Description

SAP, PLC 및 IoT 기기 통합 관리 장치{DEVICE FOR INTEGRATED MANAGEMENT OF SAP, PLC, AND IOT DEVICES}
본 발명은 SAP, PLC 및 IoT기기를 SQL 질의문 형태로 통합 관리하는 기술에 관한 것이다.
PLC(Programmable Logic Controller)는 산업 플랜트의 유지관리 및 자동 제어 및 모니터링에 사용하는 제어 장치로, 여러 개의 입력과 출력을 갖는다.
PLC, IoT 등의 설비와 ERP(Enterprise Resource Planning), MES(Manufacturing Execution System) 등 각종 시스템을 통합 관리하는 것은 산업 현장의 자동화 및 디지털화를 위한 중요한 요소이다.
따라서, 위와 같이 PLC, IoT 등 자동화 설비뿐 아니라 ERP, MES 등의 각종 시스템을 통합적으로 관리할 수 있는 방안에 대한 필요성이 절실히 대두된다.
국내 공개특허공보 제10-2022-0075652호(발명의 명칭: PLC 프로그램의 데이터 관리 방법, 장치 및 그 PLC 시스템)
본 발명의 목적은 PLC, IoT 등 자동화 설비뿐 아니라 ERP, MES 등의 각종 시스템을 통합적으로 관리하는 방법을 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 SAP 및 디바이스 통합 관리 장치는 PLC(Programmable Logic Controller) 및 IoT(Internet of Things) 기기의 데이터를 획득 및 업데이트하는 디바이스 서버 및 SQL 질의문을 해석하고 상기 디바이스 서버 및 SAP와 통신하는 통합 관리 에이전트를 포함한다.
이때, 상기 디바이스 서버는 상기 PLC 및 IoT 기기를 포함하는 디바이스의 데이터를 주기적으로 저장하는 메모리 스냅샷(Memory Snapshot), 상기 디바이스의 데이터에 상응하는 메모리 주소 및 메모리 맵 정보를 저장하는 메모리 맵 캐시(Memory map cache), 상기 디바이스 및 상기 통합 관리 에이전트와 통신하는 통신부 및 통신을 위한 데이터를 생성하고 상기 메모리 스냅샷 및 통신부를 제어하는 제어부를 포함할 수 있다.
이때, 상기 제어부는 디바이스 구성 파일 및 디바이스 데이터 포맷 정의 파일을 이용하여 상기 디바이스 서버가 디바이스와 연결되도록 제어할 수 있다.
이때, 상기 제어부는 상기 통합 관리 에이전트로부터 수신한 데이터 읽어오기 구문에 기반하여 기설정된 시간마다 상기 메모리 스냅샷을 업데이트할 수 있다.
이때, 상기 제어부는 상기 통합 관리 에이전트로부터 수신한 디바이스 셀렉트 구문에 기반하여 상기 메모리 스냅샷에 저장된 데이터를 상기 통합 관리에이전트에 전송하도록 제어할 수 있다.
이때, 상기 제어부는 상기 수신한 디바이스 셀렉트 구문에 “All” 키워드가 존재하면 전체 데이터를 전송하고, “All” 키워드가 존재하지 않으면 업데이트된 데이터만을 전송하도록 제어할 수 있다.
이때, 상기 제어부는 수신한 질의문 내 메모리 주소 정보가 상기 메모리 스냅샷에 존재하는지 여부에 기반하여 오류를 판별할 수 있다.
이때, 상기 통신부는 상기 디바이스 데이터 포맷 정의 파일 및 상기 메모리 맵에 기반하여 생성된 프로토콜 데이터를 이용하여 상기 디바이스와 통신할 수 있다.
이때, 상기 제어부는 상기 통합 관리 에이전트로부터 수신한 디바이스 업데이트 구문 및 상기 메모리 맵 캐시에 저장된 정보를 이용하여 디바이스의 데이터를 업데이트하도록 제어할 수 있다.
이때, 상기 통합 관리 에이전트는 상기 디바이스 서버와 통신을 지원하는 디바이스 지원 모듈, SAP 시스템과 통신을 지원하는 SAP 지원 모듈 및 질의문의 해석 및 변환을 수행하는 데이터 인터페이스 모듈을 포함할 수 있다.
이때, 상기 데이터 인터페이스 모듈은 수신한 질의문을 실행한 결과를 테이블 형태로 저장하고, 상기 테이블 형태로 저장된 결과를 질의문 결과 사전에 기반하여 직렬화할 수 있다.
이때, 상기 디바이스 지원 모듈 및 상기 SAP 지원 모듈은 상기 직렬화된 질의문을 각각 역직렬화할 수 있다.
본 발명에 따르면 PLC, IoT 등 자동화 설비뿐 아니라 ERP, MES 등의 각종 시스템을 통합적으로 관리할 수 있다.
도 1은 본 발명의 일 실시예에 따른 SAP, PLC 및 IoT기기 통합 관리 장치를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 SAP, PLC 및 IoT기기 통합 관리 장치를 포함하는 시스템을 나타낸 블록도이다.
도 3은 SAP 출력 화면의 예시이다.
도 4은 본 발명의 일 실시예에 따른 iMATE Framework(200)를 상세히 나타낸 블록도이다.
도 5는 본 발명의 일 실시예에 따른 iMATE Device Server(300)를 상세히 나타낸 블록도이다.
도 6은 디바이스 데이터 포맷 정의 파일의 사용 예시를 나타내기 위한 도면이다.
도 7은 디바이스 구성 파일의 사용 예시를 나타내기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 Web API 서버를 포함하는 시스템을 나타낸 블록도이다.
도 9는 실시예에 따른 쿼리 메시지 처리 방법을 개념적으로 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 SAP 지원 모듈을 포함하는 시스템을 나타낸 블록도이다.
도 11은 SAP 테이블의 예시이다.
도 12는 SAP RFC의 예시이다.
도 13은 실시예에 따른 컴퓨터 시스템의 구성을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.
본 명세서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하, 본 명세서에서 'iMATE'는 본 발명의 실시예에 따라 개발된 제품의 명칭에 상응할 수 있다.
도 1은 본 발명의 일 실시예에 따른 SAP, PLC 및 IoT기기 통합 관리 장치를 나타낸 블록도이다.
도 1을 참조하면, 실시예에 따른 SAP 및 디바이스 통합 관리 장치는 PLC(Programmable Logic Controller) 및 IoT(Internet of Things) 기기의 데이터를 획득 및 업데이트하는 디바이스 서버(10) 및 SQL 질의문을 해석하고 상기 디바이스 서버 및 SAP와 통신하는 통합 관리 에이전트(20)를 포함한다.
이때, 상기 디바이스 서버(10)는 상기 PLC 및 IoT 기기를 포함하는 디바이스의 데이터를 주기적으로 저장하는 메모리 스냅샷(Memory Snapshot), 상기 디바이스의 데이터에 상응하는 메모리 주소 및 메모리 맵 정보를 저장하는 메모리 맵 캐시(Memory map cache), 상기 디바이스 및 상기 통합 관리 에이전트와 통신하는 통신부 및 통신을 위한 데이터를 생성하고 상기 메모리 스냅샷 및 통신부를 제어하는 제어부를 포함할 수 있다.
이때, 상기 제어부는 디바이스 구성 파일 및 디바이스 데이터 포맷 정의 파일을 이용하여 상기 디바이스 서버가 디바이스와 연결되도록 제어할 수 있다.
이때, 상기 제어부는 상기 통합 관리 에이전트로부터 수신한 데이터 읽어오기 구문에 기반하여 기설정된 시간마다 상기 메모리 스냅샷을 업데이트할 수 있다.
이때, 상기 제어부는 상기 통합 관리 에이전트로부터 수신한 디바이스 셀렉트 구문에 기반하여 상기 메모리 스냅샷에 저장된 데이터를 상기 통합 관리에이전트에 전송하도록 제어할 수 있다.
이때, 상기 제어부는 상기 수신한 디바이스 셀렉트 구문에 “All” 키워드가 존재하면 전체 데이터를 전송하고, “All” 키워드가 존재하지 않으면 업데이트된 데이터만을 전송하도록 제어할 수 있다.
이때, 상기 제어부는 수신한 질의문 내 메모리 주소 정보가 상기 메모리 스냅샷에 존재하는지 여부에 기반하여 오류를 판별할 수 있다.
이때, 상기 통신부는 상기 디바이스 데이터 포맷 정의 파일 및 상기 메모리 맵에 기반하여 생성된 프로토콜 데이터를 이용하여 상기 디바이스와 통신할 수 있다.
이때, 상기 제어부는 상기 통합 관리 에이전트로부터 수신한 디바이스 업데이트 구문 및 상기 메모리 맵 캐시에 저장된 정보를 이용하여 디바이스의 데이터를 업데이트하도록 제어할 수 있다.
이때, 상기 통합 관리 에이전트(20)는 상기 디바이스 서버와 통신을 지원하는 디바이스 지원 모듈, SAP 시스템과 통신을 지원하는 SAP 지원 모듈 및 질의문의 해석 및 변환을 수행하는 데이터 인터페이스 모듈을 포함할 수 있다.
이때, 상기 데이터 인터페이스 모듈은 수신한 질의문을 실행한 결과를 테이블 형태로 저장하고, 상기 테이블 형태로 저장된 결과를 질의문 결과 사전에 기반하여 직렬화할 수 있다.
이때, 상기 디바이스 지원 모듈 및 상기 SAP 지원 모듈은 상기 직렬화된 질의문을 각각 역직렬화할 수 있다.
이하, 본 명세서에서 iMATE는 본 특허로 개발된 제품의 명칭을 나타낸다. iMATE Device Server는 도 1의 디바이스 서버에 상응하며, iMATE Framework는 도 1의 통합 관리 에이전트에 상응하는 구성일 수 있다.
도 2는 본 발명의 일 실시예에 따른 SAP, PLC 및 IoT기기 통합 관리 장치를 포함하는 시스템을 나타낸 블록도이다.
도 2를 참조하면, SAP, PLC 및 IoT기기 통합 관리 장치를 포함하는 시스템은 iMATE Framework(200), iMATE Device Server(300), PLC, IoT기기, 기타 설비 자동화기기, ERP 시스템 등을 포함할 수 있으며, iMATE Framework(200)은 질의문 TEXT(100)를 입력으로 PLC, IoT기기, 기타 설비 자동화기기, ERP 시스템 등을 통합 관리하는 기능을 제공한다.
즉, 질의문 TEXT(100)을 사용하여 DEVICE와 SAP도 Database 질의문으로 자료를 읽고 쓰듯이 Database와 동일한 SQL 질의문으로 처리하는 기능을 제공할 수 있다.
본 발명의 실시예에 따른 SAP, PLC 및 IoT기기 통합 관리 장치는 SAP R3와 SAP S4/HANA 및 그 이후 SAP ERP 제품(이하 'SAP' 라고 함)의 데이터를 상호 처리 하고 ERP(Enterprise Resource Planning)와 MES(Manufacturing Execution System)등 각종 Legacy System과도 별도의 프로그램 작성 없이 SQL 질의문의 형태로 범용적으로 상호 처리하는 기능을 제공할 수 있다.
도 3은 SAP 출력 화면의 예시이다.
도 3 및 [표 4]를 참조하면, SAP RFC의 Import 매개변수와 테이블은 Json@{...}로 이루어진 json object 문자열로 작성되고 Export 매개변수와 테이블은 RETURN 절에 기술될 수 있다.
도 4는 본 발명의 일 실시예에 따른 iMATE Framework(200)를 상세히 나타낸 블록도이다.
도 4를 참조하면, 상기 iMATE Framework(200)는 데이터 인터페이스 모듈(Data Interface Module, 210), 데이터베이스 프로바이더(ADO.NET Database Provider, 220), 디바이스 클라이언트(230), SAP 클라이언트(240), 디바이스 드라이버(Device Driver, 250), SAP 드라이버(SAP Driver, 260), 기타 드라이버(270), 및 질의문 해석기(280)를 포함할 수 있다.
도 5는 본 발명의 일 실시예에 따른 iMATE Device Server(300)를 상세히 나타낸 블록도이다.
iMATE Device Server(300)는 상기 iMATE Framework(200)에서 디바이스의 데이터를 통합 관리할 수 있도록 디바이스 데이터를 저장 및 제공할 수 있다.
도 5를 참조하면, 상기 iMATE Device Server(300)는 메모리 맵 매니저(Memory Map Manager, 310), 디바이스 구성 파일(Device Configuration File, 320), 디바이스 데이터 포맷 정의 파일(Device Data Format Define File, 330), Device별 모듈(340), 메모리 맵 캐시(Memory Map Cache, 350), 메모리 스냅샷(Memory Snapshot, 360)을 포함할 수 있다.
상기 질의문 TEXT(100)는 Device Pulling문(일정 시간 간격으로 데이터 읽기), Device Select문(데이터 읽기), Device Update문(데이터 쓰기), SAP RFC Call문(데이터 읽기/쓰기 및 로직 처리)을 포함할 수 있으며, 하기의 [표 1] 내지 [표 4]는 각각 Device Pulling문, Device Select문, Device Update문, SAP RFC Call문의 예시를 나타낸다.
SELECT QW1 AS M0001,
DB100.DBW0 AS M0002,
DB100.DBW2 AS M0003,
QW6 AS S0001,
QW10 AS S0002,
QW12 AS S0003,
QW20 AS S0004,
DB100.DBB4:10 AS S0005,
DB101.DBB2:20 AS S0006,
DB101.DBB24:10 AS S0007
FROM ISTN_PLC1
PULLING 200
SELECT ALL
M0001,
M0002,
M0003,
S0001,
QW10,
QW12,
S0004,
S0005,
S0006,
S0007
FROM ISTN_PLC1
UPDATE ISTN_PLC1 SET
QW1 = 12,
DB100.DBW0 = 5,
M0003 = 105,
S0005 = “A001”,
S0006 = “R0002”
EXECRFC "/IAPPS/IAC_INF_APPRDETAIL"
"json@{
I_FLOWCODE:'IA002',
I_FLOWNO: '0000011688',
I_FLOWCNT: '001',
I_LOGIN_ID: 'ITK00025'
}"
RETURN E_FLOWHD, ET_ATTACH, ET_FIDOC, E_RETMSG, E_RETTYP
변수ID 변수 설명 메모리 주소
Variable ID Variable Description Device Argument
M0001 게이지1 QW1
M0002 게이지2 DB100.DBW0
M0003 게이지3 DB100.DBW2
S0001 세팅1 QW6
S0002 세팅2 QW10
S0003 세팅3 QW12
S0004 세팅4 QW20
S0005 패널ID DB100.DBB4:10
S0006 레시피ID DB101.DBB2:20
S0007 알람ID DB101.DBB24:10
[표 1]에 개시된 Device Pulling문에 기반하여 디바이스의 자료를 가져와 도 4의 Memory Snapshot(360)에 저장할 수 있다. 이때, 상기 Device Pulling문에서 설정된 시간 주기로 자료를 읽어올 수 있다.
상기 Device Pulling문에 기반하여 Memory Snapshot(360)에 데이터가 저장되면, 질의문의 메모리 주소 정보에 기반하여 해시값(Hash value)을 구하여 키로 설정하고, 메모리 주소와 TAG 이름 및 메모리 맵 정보와 함께 Memory Map Cache(350)에 저장한다. 상기 [표 1]을 참조하면, '메모리 주소' AS 'TAG 이름'으로 메모리 주소를 지정하는 것을 알 수 있다.
이때, 상기 메모리 주소는 PLC, IoT기기 및 기타 설비 자동화 기기의 자료가 저장되어 있는 위치 또는 고유 식별자에 상응할 수 있다. 또한, 상기 TAG 이름은 상기 메모리 주소를 알기 쉽게 명명한 이름에 상응할 수 있다. 예를 들어, M1 AS '온도'로 지정할 수 있다.
다음으로, 상기 [표 2]의 Device Select문(데이터 읽기)에 기반하여 Memory Snapshot(360)의 값을 읽어 오고 '변경됨'으로 표시된 데이터를 '변경되지 않음'으로 변경한다. 이때, 상기 Device Select문에 Memory Snapshot(360)에 없는 메모리 주소 또는 TAG 이름이 있으면 오류가 발생한 것으로 판별할 수 있다.
이때, Device Select문에 “All” 키워드가 존재하면 전체 데이터를 전송하고, “All” 키워드가 존재하지 않으면 업데이트된 데이터만을 전송하도록 제어할 수 있다.
이때, Device Select문의 FROM절에서 연결하고자 하는 디바이스의 이름을 지정할 수 있다. 이때, 'Device 이름'은 디바이스 구성 파일의 디바이스 고유 식별자에 상응할 수 있다.
[표 3]과 같은 Device Update문에 기반하여 디바이스에 자료를 업데이트할 수 있다. 이때, Device Update문의 TAG 이름은 메모리 맵 캐시에 저장된 정보를 이용하여 메모리 주소로 변경한다.
예를 들어, [표 5]와 같은 PLC SIMATIC S7의 메모리 주소에 대하여 Device Pulling문에 기반하여 Pulling 주기를 설정하고, Device Select문에 기반하여 PLC 메모리 주소의 값을 읽고, Device Update문에 기반하여 메모리 주소에 값을 쓸 수 있다.
iMATE Framework(200)은 [표 4]와 같은 SAP RFC(Remote Function Call)호출문을 사용하여 SAP에서 자료를 가져올 수 있다.
SAP의 OpenSQL을 질의문(SELECT, INSERT, DELETE 문)을 사용하여 SAP에서 자료를 가져 오거나 SAP가 사용하는 DBMS(SQL Server, Oracle, HANA 등)의 질의문(SELECT, INSERT, DELETE 문)을 사용 하여 SAP에서 자료를 가져올 수 있다.
이때, 데이터 인터페이스 모듈(Data Interface Module, 210)은 디바이스, SAP, Legacy Database에 같은 SQL 질의문 형식으로 데이터 처리를 가능케 하는 기능을 제공한다.
이때, 본 발명의 실시예에 따른 장치는 데이터베이스 프로바이더(ADO.NET Database Provider, 220)를 통해 디바이스와 SAP의 데이터를 DBMS(Database Management System)와 동일하게 사용할 수 있는 환경을 제공한다.
이때, 상기 질의문 해석기(280)는 SQL 질의문의 의미를 해석하는 기능을 수행할 수 있다.
이때, 상기 디바이스 클라이언트(230)는 iMATE Device Client(231)을 포함하며, ADO.NET 구현(232)을 통해 디바이스를 DBMS처럼 취급할 수 있는 기능을 제공한다.
이때, iMATE Device Client(231)는 상기 iMATE Device Server(300)를 통해 디바이스와 데이터 통신을 수행할 수 있다.
이때, 상기 SAP 클라이언트(240)는 SAP NetWeaver RFC SDK/NCO/JCO 등(241)의 모듈을 포함할 수 있으며, ADO.NET 구현(242)을 통해 SAP를 DBMS처럼 취급할 수 있는 기능을 제공한다.
이때, SAP NetWeaver RFC SDK/NCO/JCO 등(241)은 SAP와의 데이터 통신을 위한 인터페이스 모듈에 상응할 수 있다.
이때, SAP 드라이버(SAP Driver, 260)는 상기SAP RFC Call문 외에 데이터 인터페이스 처리 성능을 제공 하기 위해 용용 프로그램에서 직접 SAP RFC를 호출 할 수 있는 API(응용 프로그램 인터페이스)를 제공할 수 있다.
이때, 디바이스 드라이버(Device Driver, 250), SAP 드라이버(SAP Driver, 260) 및 기타 드라이버(270)는 iMATE Framework(200)에 플러그인 할 수 있도록 독립적으로 구현될 수 있다.
이때, 상기 메모리 맵 매니저(310)는 디바이스 구성 파일(Device Configuration File, 320) 및 디바이스 데이터 포맷 정의 파일(Device Data Format Define File, 330)를 이용하여 디바이스와 연결을 준비한다.
메모리 맵 매니저(310)는 iMATE Device Client(231)로부터 Device Pulling문을 해석한 자료 및 질의문을 수신하고, Device별 모듈(340)을 이용하여 디바이스 데이터 포맷 정의 파일(Device Data Format Define File, 330)을 생성한다. 또한, 메모리 맵 캐시(Memory Map Cache, 350)에 질의문의 메모리 주소 정보를 저장한다. 이때, 상기 메모리 주소에 대한 해시값을 구해 키로 설정할 수 있다. 또한, 상기 해시값과 메모리주소, TAG 이름 및 메모리 맵을 함께 저장할 수 있다.
이때, 메모리 맵 매니저(310)는 상기 메모리 맵을 이용하여 디바이스 데이터 포맷 정의 파일(330)에서 정의된 형식대로 디바이스와 통신을 위한 프로토콜 데이터를 생성한다.
다음으로, 메모리 맵 매니저(310)는 디바이스 구성 파일(320)에 정의된 디바이스 연결 정보를 이용하여, 디바이스 별 모듈(340)을 통해 디바이스와 연결하고 연결 상태를 지속적으로 감시한다. 이때, 디바이스와의 연결이 끊어지는 경우 다시 연결을 시도할 수 있다.
디바이스와 연결이 완료되면 메모리 맵 매니저(310)는 Device Pulling문에 지정된 주기마다 디바이스의 자료를 읽어 메모리 스냅샷(360)에 자료를 업데이트 할 수 있다. 이때, 업데이트된 자료가 기존 자료와 상이한 경우, 업데이트된 자료를 '변경됨'으로 표시할 수 있다.
또한, 메모리 맵 매니저(310)는 iMATE Device Client(231)로부터 Device Select문을 수신하면 메모리 스냅샷(360)의 자료를 읽어오고 '변경됨'으로 표시된 데이터를 '변경되지 않음'으로 변경한다. 또한, 읽어온 데이터를 iMATE Device Client(231)에게 전송한다.
이때, iMATE Device Client(231)로부터 수신한 Device Select문의 메모리 주소 또는 TAG 이름이 메모리 스냅샷(360)에 존재하지 않는 경우, 오류가 발생한 것으로 판별하고, 오류 자료를 생성하여 iMATE Device Client(231)에게 전송한다.
메모리 맵 매니저(310)는 iMATE Device Client(231)로부터 Device Update문을 수신하면 Device Update문의 TAG 이름을 메모리 맵 캐시(360)에 저장된 메모리 주소로 변환하고, 디바이스 데이터 포맷 정의 파일(330)에 기반하여 생성된 통신 프로토콜을 이용하여 디바이스에 전송한다. 또한, iMATE Device Client(231)로부터 수신한 Device Update문의 메모리 주소 또는 TAG 이름이 메모리 스냅샷(360)에 존재하지 않는 경우, 오류가 발생한 것으로 판별하고, 오류 자료를 생성하여 iMATE Device Client(231)에게 전송한다.
이때, 디바이스 별 모듈(340)은 iMATE Device Server(300)에 플러그인 할 수 있도록 독립적으로 구현될 수 있다.
하기의 [표 6]은 디바이스 데이터 포맷 정의 파일의 형식을 나타낸다.
{
"_comment": "WordLength 열거 값 Bit(1bit) => boolean, Byte(8bit) => byte배열, Char(8bit) => string, Int(16bit) => int, Word(32bit) => int, DWord(64bit) => long, Nibble(4bit) => int",
Head: "1c01", //메시지 식별자
Name: "StatusMessage", //메시지 설명
Endianness: “LE” // BE: BigEndian, LE: LittleEndian
// 필드의 리스트
Fields: [
{
SeqNo: 0 , //필드의 순서
//-1 이면 이전 SeqNo의 Field의 다음 위치를 객체 직렬화 후에 계산하여 설정함
StartPosition: 0,
//BlockConfigPath의 Json파일을 처리하여 Field의 SubMessageFormat객체를 생성함
BlockInfo:
{
//*: 블록의 끝까지,
//?: FixedBlockCount 개수 만큼,
//그외 (필드(BlockCountField)의 값 + FixedBlockCount)를 개수로 사용
BlockCountField: "*",
FixedBlockCount: 2, // BlockCountField가 *이면 무시함
BlockConfigPath: "./block.json",
},
FieldInfo:
{
Name: "FieldName",
Length: 16,
//WordLength 열거 값 Byte(8bit) => byte,
//Char(8bit) => string, Int(16bit) => int,
/Word(32bit) => int, DWord(64bit) => long,
LengthBase: "char",
//Bit(1bit)와 Nibble(4bit) 일 경우 모두 int로 변환함
UnionFields:
[
{
Name: "FieldName",
BitPosition: 0, //Bit 위치
BitLength: 1 //Bit의 길이 1 ~ 7
}
]
}
}
]
}
도 6은 디바이스 데이터 포맷 정의 파일의 사용 예시를 나타내기 위한 도면이다.
하기 [표 7]은 도 6에 도시된 Melsec Q 시리즈의 데이터 포맷 정의 파일 예시이다.
{
Head: "istn_equip",
Name: "ISTN 설비 자료 읽기",
Endianness: “LE”
Fields:
[
{
SeqNo: 0,
StartPosition: 0
BlockInfo: {
BlockCountField: null,
FixedBlockCount: 1,
BlockConfigPath: "./config/MelsecHeadFormat.json"
}
},
{
SeqNo: 1,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: "Command",
Length: 2,
LengthBase: "byte",
defaultValue: 0x0401
UnionFields: null
}
},
{
SeqNo: 2,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: "SubCommand",
Length: 2,
LengthBase: "byte",
defaultValue: 0x0000
UnionFields: null
}
},
{
SeqNo: 3,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: “DeviceStart",
Length: 3,
LengthBase: "byte",
defaultValue: 0x000064
UnionFields: null
}
},
{
SeqNo: 4,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: “DeviceCode",
Length: 1,
LengthBase: "byte",
defaultValue: 0xC2
UnionFields: null
}
},
{
SeqNo: 5,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: “DevicePoints",
Length: 2,
LengthBase: "byte",
defaultValue: 0x0003
UnionFields: null
}
}
]
}
도 6 및 [표 7]을 참조하면, 도 6의 커맨드, 서브 커맨드, 선두 디바이스, 디바이스 코드, 디바이스 점수는 각각 [표 7]의 Command, SubCommand, DeviceStart, DeviceCode, DevicePoints에 상응하는 것을 알 수 있다.
하기의 [표 8]은 디바이스 구성 파일의 형식을 나타낸다.
[
{
DeviceName: "Device식별이름",
DeviceDesc: "Device설명",
DeviceAddress: "Device주소",
DevicePort: "Device포터",
InitMessageFormat: “”, //초기화 메시지 형식 파일(옵션)
InitResultMessageFormat: “”, //초기화 메시지 결과 형식 파일(옵션)
ReadMessageFormat:"./simentec_read.json", //자료 READ 메시지 형식 파일
//자료 READ 메시지 결과 형식 파일
ReadResultMessageFormat: "./simentec_read_result.json",
//자료 WRITE 메시지 형식 파일
WriteMessageFormat:"./simentec_write.json",
//자료 WRITE 메시지 결과 형식 파일
WriteResultMessageFormat: “./istn_equip_write_result.json",
EndMessageFormat: “”, //완료 메시지 형식 파일(옵션)
EndResultMessageFormat: “”, //완료 메시지 결과 형식 파일(옵션)
//Device 별 통신에 필요한 특성 값
DeviceProperty: [
{Key: "프로퍼티 키", Value: "프로퍼티 값"},
{Key: "프로퍼티 키", Value: "프로퍼티 값"},
{Key: "프로퍼티 키", Value: "프로퍼티 값"},
{Key: "프로퍼티 키", Value: "프로퍼티 값"},
{Key: "프로퍼티 키", Value: "프로퍼티 값"}
]
}
]
도 7은 디바이스 구성 파일의 사용 예시를 나타내기 위한 도면이다.
하기 [표 9]는 Melsec Q 시리즈의 디바이스 구성 파일 예시이다.
[
{
DeviceName: “istn_equip 1호기",
DeviceDesc: " istn equip 1호기 ",
DeviceAddress: “10.1.1.200",
DevicePort: “3600",
InitMessageFormat: “”,
InitResultMessageFormat: “”,
ReadMessageFormat: “./istn_equip_read.json",
ReadResultMessageFormat: "./istn_equip_read_result.json",
WriteMessageFormat:"./istn_equip_write.json”
WriteResultMessageFormat:"./istn_equip_write_result.json",
EndMessageFormat: “”,
EndResultMessageFormat: “”,
//Devive 별 통신에 필요한 특성 값
DeviceProperty: [
{Key: “NetworkNo", Value: “0x00”},
{Key: “PLCNo", Value: “0xFF"},
{Key: “IONo", Value: “0x03FF"},
{Key: “CommuicationNo", Value: “0x00"},
{Key: “CPUTimer", Value: “0x0010"}
]
}
]
도 7 및 [표 9]를 참조하면, 도 7의 네트워크 번호, PLC 번호, 요구 대상 모듈 I/O 번호, 요구 데이터 길이, CPU 감시 타이머는 각각 [표 9]의 NetworkNo, PLCNo, IONo, CommuicationNo, CPUTimer에 상응하는 것을 알 수 있다.
이때, 상기 [표 9]의 DeviceAddress, DevicePort는 TCP/IP 주소 및 포트에 상응할 수 있다.
상기 [표 9] 메시지의 DeviceProperty를 참조하여, 하기 [표 10]와 같이 헤드 포맷 파일의 필드 이름 및 값을 변경할 수 있다.
{
Head: "istn_equip_01",
Name: "ISTN 설비 01 메모리 맵",
Endianness: “LE”
Fields:
[
{
SeqNo: 0,
StartPosition: 0,
BlockInfo: null,
FieldInfo: {
Name: "SubHead",
Length: 2,
LengthBase: "byte",
defaultValue: 0x0050
UnionFields: null
}
},
{
SeqNo: 1,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: "NetworkNo",
Length: 1,
LengthBase: "byte",
defaultValue: 0x00
UnionFields: null
}
},
{
SeqNo: 2,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: "PLCNo",
Length: 1,
LengthBase: "byte",
defaultValue: 0x00
UnionFields: null
}
},
{
SeqNo: 3,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: "IONo",
Length: 2,
LengthBase: "byte",
defaultValue: 0x00000
UnionFields: null
}
},
{
SeqNo: 4,
StartPosition: -1,
BlockInfo: null,
FieldInfo: {
Name: "ComunicationNo",
Length: 1,
LengthBase: "byte",
defaultValue: 0x00
UnionFields: null
}
},
{
SeqNo: 4,
StartPosition: -1,
BlockInfo: null,
…..
]
}
도 8은 본 발명의 일 실시예에 따른 Web API 서버를 포함하는 시스템을 나타낸 블록도이다.
도 8을 참조하면, iMATE Web API Server(1100)는 .NET, Java, Android, iOS, Mac(OS X), Web Application(이하 Apps)에서 Device, SAP, Legacy Database와 자료를 양방향으로 인터페이스 할 수 있는 공통의 방법을 제공한다.
도 9는 실시예에 따른 쿼리 메시지 처리 방법을 개념적으로 나타낸 도면이다.
사용자는 Apps(1200)를 통해 질의문 Text(100)를 iMATE REST WEB API(1110)로 전달하고, 결과를 반환 받을 수 있다.
iMATE Web API Server(1100)는 SAP와 Legacy Database와 iMATE Framework(200)로 양방향으로 자료를 인터페이스할 수 있다.
PLC 등 Device는 iMATE Framework(200)와 iMATE Server(300)를 통해 양방향으로 자료를 인터페이스할 수 있다.
도 9와 같이, 서버 단에서는 수신한 쿼리 메시지를 실행하고, 실행한 결과를 테이블 형태로 저장할 수 있다. 하기의 [표 11]은 쿼리 메시지의 일 예이며, 하기의 [표 12]는 [표 11]의 메시지를 Query Result사전에 테이블 형태로 저장한 예시이다.
[
{
queryMethod: “Alone”,
queryName: “Q1”,
dataSource: “BC_LIVE”,
queryTemplate: “SELECT C1, C2, C3 FROM T1 WHERE C1 = @Param1”,
parameters:
[
{
name: “Param1”,
dataType: “string”,
value: “12345”,
template: “”,
lineTerminateChar: “CRLF”,
}, …..
]
},
{
queryMethod: “Depend”,
queryName: “Q2”,
dataSource: “SAP_LIVE”,
queryTemplate: “EXECRFC @Param1 STRUCTURE T1”, ….
},
{
queryMethod: “Bound”,
queryName: “Q2”,
dataSource: “SAP_QA”,
queryTemplate: “EXECRFC @Param1 STRUCTURE T1”, ….
} ….
]
Key Value
Q1 DataTable
Q2 DataTable
Q3 DataTable
Q4 DataTable
F1 DataTable
F2 DataTable
F3 DataTable
다음으로, 서버단에서는 상기 [표 12]과 같은 Query Result 사전을 오브젝트(Object)로 변환하여 JSON으로 직렬화한다. 또한 직렬화된 결과를 클라이언트 단으로 전송할 수 있다. 하기 [표 13]는 직렬화된 쿼리 결과 메시지의 일 예이다.
[
{
queryName: “Q1”
columnInfo: [
{
name: “C1”,
datatype: “string”
},
….
],
rows:
{
[
{
value: [ “D1111”, “Y”, “20180111”]
},
…..
]
}, …..
]
클라이언트 단에서는 상기 [표 13]과 같이 직렬화된 결과를 데이터셋으로 역직렬화하고, 역직렬화된 데이터셋을 사용한다. 이때, 클라이언트 단은 도 9와 같이 데이터테이블을 사용하는 방법 또는 역직렬화를 사용하는 방법을 사용할 수 있다.
쿼리 메시지에 대한 상세한 설명은 아래와 같다.
- queryMethod: 쿼리의 실행 방식
- Alone: 다른 쿼리와 연관없이 독립되어 실행
- Depend: 연관 쿼리의 Row의 개수만큼 실행
- Bound: 연관 쿼리의 자료로 파라미터를 만든 다음 1번 실행
- queryName: 쿼리의 고유 이름으로 중복되면 안됨
- dataSource: 쿼리를 실행할 데이터소스
- iMATE에 등록된 데이터소스 이름: DBMS, SAP 등의 경우
- @func: Custom Function
- queryTemplate: 실행 파라미터화 된 쿼리 문 또는 Custom Function
- @func(Custom Function)일 경우는 ~{모듈이름}.{클래스이름} 예) ~Module1@Class1
- Parameters: queryTemplate에 정의된 쿼리의 파라미터의 옵션
- name: 파라미터 이름
- datatype: 파라미터의 데이터 유형
- string:문자열(기본값)
- number: 숫자
- date: 일자시간(yyyy-MM-dd 또는 yyyy-MM-dd HH:mm:ss.fff 포멧)
- time: 시간(HH:mm:ss 또는 HH:mm:ss.fff 포멧)
- value: 값
- template: 파라미터 템플릿
- 테이블 값: ?{queryName}.{컬럼이름} 예) ?Q1.C1
- 파라미터 변환모듈: ~{모듈이름}@{클래스이름} 예) ~Module1@Class1
- lineTerminateChar: Bound 모드 일 경우 파라미터의 한 레코드의 구분문자
- “CRLF”: Windows New Line문자(기본값)
- “LF”: UNIX New Line문자
- “0x{HEX코드}”: 16진 ASCII 코드 예) 0x0a
쿼리 결과 메시지에 대한 상세한 설명은 아래와 같다.
- queryName: 쿼리의 고유 이름으로 중복되면 안됨
- columnInfo: 쿼리 결과의 컬럼(필드)의 정보의 배열
- name: 쿼리 결과의 컬럼(필드) 이름
- datatype: 쿼리 결과의 컬럼(필드) 데이터 유형(string, number, date, time)
- rows: 쿼리 결과의 값의 배열
- value: 쿼리 결과의 컬럼(필드)의 결과 값의 배열
도 10은 본 발명의 일 실시예에 따른 SAP 지원 모듈을 포함하는 시스템을 나타낸 블록도이다.
도 10을 참조하면, 상기 SAP 지원 모듈(1400)은 데이터 모델 및 데이터 모델 Proxy 소스 코드 생성기(1410) 데이터 모델 매니저(Data Model Manager, 1420), 클라이언트 어플리케이션(Client Application, 1430) 및 iMATE Web API Server(1100)을 포함할 수 있다.
도 11은 SAP 테이블의 예시이다.
도 12는 SAP RFC의 예시이다.
상기 SAP 지원 모듈(1400)은 SAP의 테이블과 RFC Function을 사용하기 위한 자동화된 방법을 제공할 수 있다.
데이터 모델 및 데이터 모델 Proxy 소스 코드 생성기(1410)는 데이터 모델 소스코드(1421) 및 데이터 모델 Proxy 소스코드(1431)를 자동으로 생성한다.
이때, 데이터 모델 소스코드(1421)는 C# 소스코드로 생성될 수 있으며, 데이터 모델 Proxy 소스코드(1431)는 C#, TypeScript, Kotlin, Java, JavaScript, Swift등의 클라이언트 어플리케이션 개발 언어로 생성될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
이때, 데이터 모델 컴파일러(1422)는 데이터 모델 소스코드(1421)에 기반하여 데이터 모델 프로그램 라이브러리(1423)를 생성할 수 있다.
이때, 데이터 모델 Proxy 소스코드(1431)는 클라이언트 어플리케이션 소스코드(1432)와 같이 클라이언트 어플리케이션 개발 툴에 의해 빌드(컴파일)될 수 있다.
이때, 상기 빌드된 클라이언트 어플리케이션은 iMATE Web API Client 프로그램 라이브러리(1433)를 통해 iMATE Web API Server(1100)의 WEB API로 전송될 수 있다.
iMATE Web API Server(1100)는 전송받은 메시지의 데이터 모델 Proxy와 대칭되는 데이터 모델을 동적으로 활성화하여 질의문 생성기(1424)로 SQL 쿼리 구분을 생성하여 iMATE Framework(200)를 통해 SAP와 데이터를 상호 처리하고 처리 결과를 Client Application(1430)에 전달하여 최종적으로 처리한다.
도 13은 실시예에 따른 컴퓨터 시스템의 구성을 나타낸 도면이다.
실시예에 따른 SAP, PLC 및 IoT기기 통합 관리 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다.
컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
1000: 컴퓨터 시스템 1010: 프로세서
1020: 버스 1030: 메모리
1031: 롬 1032: 램
1040: 사용자 인터페이스 입력 장치
1050: 사용자 인터페이스 출력 장치
1060: 스토리지 1070: 네트워크 인터페이스
1080: 네트워크

Claims (12)

  1. PLC(Programmable Logic Controller) 및 IoT(Internet of Things) 기기의 데이터를 획득 및 업데이트하는 디바이스 서버; 및
    SQL 질의문을 해석하고 상기 디바이스 서버 및 SAP와 통신하는 통합 관리 에이전트;
    를 포함하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  2. 청구항 1에 있어서,
    상기 디바이스 서버는
    상기 PLC 및 IoT 기기를 포함하는 디바이스의 데이터를 주기적으로 저장하는 메모리 스냅샷(Memory Snapshot);
    상기 디바이스의 데이터에 상응하는 메모리 주소 및 메모리 맵 정보를 저장하는 메모리 맵 캐시(Memory map cache);
    상기 디바이스 및 상기 통합 관리 에이전트와 통신하는 통신부; 및
    통신을 위한 데이터를 생성하고 상기 메모리 스냅샷 및 통신부를 제어하는 제어부;
    를 포함하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  3. 청구항 2에 있어서,
    상기 제어부는
    디바이스 구성 파일 및 디바이스 데이터 포맷 정의 파일을 이용하여 상기 디바이스 서버가 디바이스와 연결되도록 제어하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  4. 청구항 1에 있어서,
    상기 제어부는
    상기 통합 관리 에이전트로부터 수신한 데이터 읽어오기 구문에 기반하여 기설정된 시간마다 상기 메모리 스냅샷을 업데이트하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  5. 청구항 4에 있어서,
    상기 제어부는
    상기 통합 관리 에이전트로부터 수신한 디바이스 셀렉트 구문에 기반하여 상기 메모리 스냅샷에 저장된 데이터를 상기 통합 관리에이전트에 전송하도록 제어하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  6. 청구항 5에 있어서,
    상기 제어부는
    상기 수신한 디바이스 셀렉트 구문에 “All”키워드가 존재하면 전체 데이터를 전송하고, “All”키워드가 존재하지 않으면 업데이트된 데이터만을 전송하도록 제어하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  7. 청구항 5에 있어서,
    상기 제어부는
    수신한 질의문 내 메모리 주소 정보가 상기 메모리 스냅샷에 존재하는지 여부에 기반하여 오류를 판별하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  8. 청구항 5에 있어서,
    상기 통신부는
    상기 디바이스 데이터 포맷 정의 파일 및 상기 메모리 맵에 기반하여 생성된 프로토콜 데이터를 이용하여 상기 디바이스와 통신하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  9. 청구항 5에 있어서,
    상기 제어부는
    상기 통합 관리 에이전트로부터 수신한 디바이스 업데이트 구문 및 상기 메모리 맵 캐시에 저장된 정보를 이용하여 디바이스의 데이터를 업데이트하도록 제어하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  10. 청구항 1에 있어서,
    상기 통합 관리 에이전트는
    상기 디바이스 서버와 통신을 지원하는 디바이스 지원 모듈;
    SAP 시스템과 통신을 지원하는 SAP 지원 모듈; 및
    질의문의 해석 및 변환을 수행하는 데이터 인터페이스 모듈;
    을 포함하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  11. 청구항 10에 있어서,
    상기 데이터 인터페이스 모듈은
    수신한 질의문을 실행한 결과를 테이블 형태로 저장하고, 상기 테이블 형태로 저장된 결과를 질의문 결과 사전에 기반하여 직렬화하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
  12. 청구항 11에 있어서,
    상기 디바이스 지원 모듈 및 상기 SAP 지원 모듈은
    상기 직렬화된 질의문을 각각 역직렬화하는 것을 특징으로 하는 SAP 및 디바이스 통합 관리 장치.
KR1020220089010A 2021-07-26 2022-07-19 SAP, PLC 및 IoT 기기 통합 관리 장치 KR20230016596A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210098021 2021-07-26
KR20210098021 2021-07-26

Publications (1)

Publication Number Publication Date
KR20230016596A true KR20230016596A (ko) 2023-02-02

Family

ID=85225541

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220089010A KR20230016596A (ko) 2021-07-26 2022-07-19 SAP, PLC 및 IoT 기기 통합 관리 장치

Country Status (1)

Country Link
KR (1) KR20230016596A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220075652A (ko) 2020-11-30 2022-06-08 엘에스일렉트릭(주) Plc 프로그램의 데이터 관리 방법, 장치 및 그 plc 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220075652A (ko) 2020-11-30 2022-06-08 엘에스일렉트릭(주) Plc 프로그램의 데이터 관리 방법, 장치 및 그 plc 시스템

Similar Documents

Publication Publication Date Title
US10054935B2 (en) Apparatus and method for web-based tool management
US10977014B2 (en) Web-based programming environment for embedded devices
US10691682B2 (en) Storing and processing JSON documents in a SQL database table
EP2315095B1 (en) Embedded database in an industrial controller environment
US7437204B2 (en) Method and apparatus for monitoring host to tool communications
US5926637A (en) Service interface repository code generation data
CN101460928B (zh) 简化安装替代性现场设备的方法和支持性配置用户界面
WO2001057823A2 (en) Apparatus and method for web-based tool management
EP3042254B1 (en) Systems and methods for virtualizing a programmable logic controller
US11334550B2 (en) Controller, control method, and control program for SQL statement generation in a factory automation database
JP2009238040A (ja) モジュール間連携支援方法、モジュール間連携支援プログラム、モジュール間連携支援システム
US11281650B2 (en) Control system, controller, and control method
CN109460231B (zh) 基于xml的上位机软件实现方法
CN103914572A (zh) 数据库建立系统、装置和方法
AU2017305172B2 (en) Systems and methods for discovering configurations of legacy control systems
CN1329818C (zh) 基于纯文本的命令脚本文件的人机命令实现方法
CN115622986A (zh) 传感器通讯协议解析方法、系统、存储介质及电子设备
KR20230016596A (ko) SAP, PLC 및 IoT 기기 통합 관리 장치
CN110493343B (zh) 一种基于opc的与多plc通讯的方法
Tang et al. Development of upper computer software based on OPC UA technology
US20160132043A1 (en) Method and apparatus for retrieving time-based event data into unified activity hierarchy across process clusters
Li et al. Design and implementation of field bus device management system based on hart protocol
Goloboroko et al. DOOCS: an Object-Oriented Control System as the Integrating Part for the TTF Linac
CN114547404B (zh) 一种大数据平台系统
CN116996384A (zh) 基于边缘端的数据采集与处理的方法和系统