KR101676980B1 - 제어 시스템 및 프로그램 송신 장치 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법 및 프로그램 송신 장치의 프로그램 - Google Patents

제어 시스템 및 프로그램 송신 장치 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법 및 프로그램 송신 장치의 프로그램 Download PDF

Info

Publication number
KR101676980B1
KR101676980B1 KR1020157016269A KR20157016269A KR101676980B1 KR 101676980 B1 KR101676980 B1 KR 101676980B1 KR 1020157016269 A KR1020157016269 A KR 1020157016269A KR 20157016269 A KR20157016269 A KR 20157016269A KR 101676980 B1 KR101676980 B1 KR 101676980B1
Authority
KR
South Korea
Prior art keywords
program
execution
control
control program
key
Prior art date
Application number
KR1020157016269A
Other languages
English (en)
Other versions
KR20150086358A (ko
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 KR20150086358A publication Critical patent/KR20150086358A/ko
Application granted granted Critical
Publication of KR101676980B1 publication Critical patent/KR101676980B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24167Encryption, password, user access privileges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/80Management or planning

Abstract

제어 프로그램을 안전하게 보호함과 아울러, 특정의 사용자에 대해서는, PLC로부터의 실행용 제어 프로그램의 판독이나, PLC로의 실행용 제어 프로그램 기입의 편리성을 높게 하는 제어 시스템을 제공하는 것을 목적으로 한다. 제어 시스템은, 생산 기기(500)를 제어하는 콘트롤러(300)와, 생산 기기(500)의 제어가 기술된 제어 프로그램을 콘트롤러(300)에서 실행할 수 있는 실행용 제어 프로그램으로 변환함과 아울러 암호화하고, 편집용의 편집용 키와 실행용의 실행용 키를 생성하는 개발용 컴퓨터(200)와, 사용자의 정보를 관리하는 관리 서버(100)를 구비하며, 개발용 컴퓨터(200)는, 편집용 키를 관리 서버(100)의 사용자 관리 테이블(101)에 등록함과 아울러, 실행용 키와 실행용 제어 프로그램을 콘트롤러(300)에 송신한다.

Description

제어 시스템 및 프로그램 송신 장치 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법 및 프로그램 송신 장치의 프로그램{CONTROL SYSTEM, PROGRAM TRANSMISSION DEVICE, AUTHENTICATION SERVER, PROGRAM PROTECTION METHOD, PROGRAM TRANSMISSION METHOD, AND PROGRAM FOR PROGRAM TRANSMISSION DEVICE}
본 발명은, 제어 시스템 및 프로그램 송신 장치 프로그램 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법에 관한 것이다.
공장 자동화(Factory·Automation: FA) 시스템에서는, 공장 내의 생산 설비의 동작을 제어하기 위한 콘트롤러가 배치되어 있다. 이 콘트롤러는 프로그래머블 로직 콘트롤러(Programmable·Logic·Controller: PLC)라고 불린다. PLC를 동작시키기 위한 제어 프로그램은 래더(ladder) 등의 언어를 이용하여 설계된다. 설계된 제어 프로그램은 래더 프로그램 개발 환경을 이용하여 실행용 제어 프로그램으로 변환되고, 통신 케이블을 거쳐서 PLC에 기입된다. 이와 같이, 제어 프로그램을 개발하고, PLC에 기입하는 장치를 개발용 컴퓨터라고 부른다.
래더 프로그램 개발 환경은 Windows(등록 상표) 상에서 동작하는 소프트웨어로서 널리 시판되어 있다. Windows(등록 상표)가 동작하는 컴퓨터와, 래더 프로그램 개발 환경이 있으면, PLC로의 실행용 제어 프로그램의 기입이나, PLC로부터의 실행용 제어 프로그램의 판독이 컴퓨터를 이용하여 용이하게 행해질 수 있다. 이 때문에, 최근에는 이미 공장에서의 가동 실적이 있는 PLC로부터 실행용 제어 프로그램을 취출하고, 이 프로그램을 모방하여 다른 생산 설비의 동작을 제어하기 위한 PLC가 만들어진다고 하는 문제가 발생하고 있다.
이러한 문제에 대처하기 위해, FA 시스템에서도 모방품에의 전용을 막기 위한 여러 가지 대책이 강구되어 오고 있다. 하나의 구체예로서, 특허문헌 1에 의하면, PLC에 제어 프로그램의 실행용 제어 프로그램을 기입할 때, 개발용 컴퓨터는 실행용 제어 프로그램을 암호화하여 PLC에 전송한다. 제어 프로그램을 실행할 때에는, PLC는 미리 생성된 암호 룰을 해석하고, 개발용 컴퓨터에 등록된 제어 기기 고유의 정보를 추출한다. 그리고, PLC는 추출한 제어 기기 고유의 정보에 근거하여, 실행용 제어 프로그램이 제어 기기(PLC) 고유의 프로그램인지 여부를 확인하고, 고유의 프로그램이면 PLC에서 실행용 제어 프로그램을 복호함으로써, PLC 내부의 데이터를 보호하는 기술이 소개되어 있다.
일본 특허 공개 제2008-65678호 공보
특허문헌 1에서 나타낸 방식에서는, 실행용 제어 프로그램의 암호화나 복호화에 필요한 정보가 개발용 컴퓨터로 관리되고 있기 때문에, 개발용 컴퓨터가 도난되면, 실행용 제어 프로그램의 복호에 필요한 키를 용이하게 입수 가능하게 되므로, 실행용 제어 프로그램을 보호할 수 없다고 하는 과제가 있다.
또한, FA 시스템을 구축, 운용할 때, PLC의 제어 프로그램의 개발, 설계를 행하는 회사와, 보수를 행하는 회사가 상이한 경우가 많다. 이 상황에서는, 실행용 제어 프로그램의 복호에 필요한 키는 PLC의 실행용 제어 프로그램을 개발한 회사의 컴퓨터에 의해 작성된다. 그러나, 이 키도 포함하여 개발물은 기밀 정보로서 회사 내에서 관리되기 때문에, 회사가 다른 경우는 기밀 관리의 관점에서 회사간의 데이터의 수수는 용이하지 않다. 따라서, 보수하는 회사에서는, PLC의 제어 프로그램의 복호에 필요한 키를 입수할 수 없기 때문에, 특허문헌 1에 나타낸 방식에서는, 보수하는 회사의 컴퓨터에서 제어 프로그램을 열람할 수 없다고 하는 과제가 있다.
또한, 특허문헌 1에서 나타낸 방식은, 항상 네트워크에 접속된 상태에서 실행용 제어 프로그램, 및 실행용 제어 프로그램의 암호화나 복호화에 필요한 정보를 개발용 PC와 제어 기기 사이에서 교환하고 있다. 이 때문에, 특허문헌 1에서 나타낸 방식에서는, 네트워크 상에서 전송되는 데이터량이 많아진다. 이 때문에, 특허문헌 1에서 나타낸 방식이 네트워크 품질이 나쁜 환경에 적용되면, 타임아웃이나 통신 회선 장해가 많이 발생하여, 실행용 제어 프로그램의 전송 실패가 발생하기 쉬워진다고 하는 과제가 있다.
이러한 과제를 해결하는 수단으로서, 실행용 제어 프로그램을 개발한 회사의 컴퓨터에서, 실행용 제어 프로그램의 복호에 필요한 키를 생성하고, 생성한 키를 다른 매체(USB 메모리 등)에 기록하고, 실행용 제어 프로그램을 개발한 회사로부터 매체를 보수하는 회사에 송부하는 방식을 생각할 수 있다. 그리고, 실행용 제어 프로그램을 보수하는 회사는, 매체에 기록된 키를 사용하여, 실행용 제어 프로그램을 보수하는 회사의 컴퓨터에서 제어 프로그램의 열람을 가능하게 한다. 그러나, 이 방식에서도 매체가 도난된 경우는 실행용 제어 프로그램의 복호에 필요한 키가 누설되기 때문에, 제어 프로그램을 보호할 수 없다고 하는 과제가 남는다.
본 발명은, 상기에 나타낸 과제를 해결하기 위해서 이루어진 것으로, 특정의 사용자에 대해서는, PLC로부터의 실행용 제어 프로그램의 판독이나, PLC로의 실행용 제어 프로그램의 기입을 용이하게 함과 아울러, 실행용 제어 프로그램의 열람이나 편집에 필요한 키의 특정의 사용자 이외로의 누설을 막는 것을 목적으로 한다.
본 발명에 따른 제어 시스템은, 기기의 제어를 실행하는 제어 장치와, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치와, 인증 서버를 구비하는 제어 시스템에 있어서, 상기 프로그램 송신 장치는, 상기 제어 장치를 식별하는 기기 식별자를 취득하는 송신측 취득부와, 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 송신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신함과 아울러, 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호할 때에 이용하는 실행용 키와 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 송신측 통신부를 구비하며, 상기 인증 서버는, 상기 송신측 통신부로부터 상기 편집용 키와 상기 기기 식별자를 수신하고, 수신한 상기 편집용 키와 상기 기기 식별자와 대응지어 기억 장치에 기억하고, 상기 제어 장치는, 상기 송신측 통신부에 의해 송신된 상기 실행용 키와 상기 암호화 실행용 프로그램을 수신하고, 수신한 상기 실행용 키와 상기 암호화 실행용 프로그램에 근거하여 상기 기기의 제어를 실행하는 것을 특징으로 한다.
본 발명에 따른 제어 시스템에 의하면, 제어 프로그램 해독에 필요한 편집용 키의 누설을 막아 제어 프로그램을 안전하게 보호할 수 있음과 아울러, PLC의 제어 프로그램을 기입하는 회사와, PLC의 제어 프로그램을 판독하는 회사가 달라도, PLC로부터의 실행용 제어 프로그램의 판독이나, PLC에의 실행용 제어 프로그램 기입의 편리성을 높게 할 수 있다.
도 1은 실시 형태 1에 따른 제어 시스템(800)의 블록 구성도이다.
도 2는 실시 형태 1에 따른 개발용 컴퓨터(200)의 상세 블록 구성도이다.
도 3은 실시 형태 1에 따른 관리 서버(100)가 구비하는 사용자 관리 테이블(101)의 구성도이다.
도 4는 실시 형태 1에 따른 관리 서버(100), 개발용 컴퓨터(200), 콘트롤러(300)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 5는 실시 형태 1에 따른 제어 시스템(800)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300)로 실행용 제어 프로그램(651)을 기입하는 수순을 나타내는 시퀀스도이다.
도 6은 실시 형태 1에 따른 관리 서버(100)의 사용자 인증 처리 S710의 흐름을 나타내는 흐름도이다.
도 7은 실시 형태 1에 따른 개발용 컴퓨터(200)의 제어 프로그램 변환 처리 S720의 흐름을 나타내는 흐름도이다.
도 8은 실시 형태 1에 따른 관리 서버(100)의 편집용 키 등록 처리 S730의 흐름을 나타내는 흐름도이다.
도 9는 실시 형태 2에 따른 제어 시스템(800)에 있어서, 콘트롤러(300)로부터 보수용 컴퓨터(250)로 암호화 실행용 제어 프로그램(651a)을 읽어내는 수순을 나타내는 시퀀스도이다.
도 10은 실시 형태 2에 따른 관리 서버(100)의 편집용 키 인증 처리 S750의 흐름을 나타내는 흐름도이다.
도 11은 실시 형태 3에 따른 제어 시스템(801)의 블록 구성도이다.
도 12는 실시 형태 3에 따른 제어 시스템(801)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300, 300a, 300b)로 실행용 제어 프로그램(651)을 기입하는 수순을 나타내는 시퀀스도이다.
도 13은 실시 형태 3에 따른 개발용 컴퓨터(200)의 제어 프로그램 변환 처리 S720의 흐름을 나타내는 흐름도이다.
도 14는 실시 형태 4에 따른 제어 시스템(801)에 있어서, 콘트롤러(300)로부터 보수용 컴퓨터(250)로 암호화 실행용 제어 프로그램(651a)을 읽어내는 수순을 나타내는 시퀀스도이다.
도 15는 실시 형태 5에 따른 제어 시스템(802)의 블록 구성도이다.
도 16은 실시 형태 5에 따른 관리 서버(100)가 구비하는 기기 식별 ID 테이블(112)의 구성도이다.
도 17은 실시 형태 5에 따른 개발용 컴퓨터(200)의 상세 블록 구성도이다.
도 18은 실시 형태 5에 따른 제어 시스템(802)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300)로 실행용 제어 프로그램(651)을 기입하는 수순을 나타내는 시퀀스도이다.
도 19는 실시 형태 5에 따른 개발용 컴퓨터(200)의 유효 기한 설정 처리 S810의 흐름을 나타내는 흐름도이다.
도 20은 실시 형태 5에 따른 관리 서버(100)의 편집용 키 등록 처리 S770의 흐름을 나타내는 흐름도이다.
도 21은 실시 형태 5에 따른 관리 서버(100)의 유효 기한 확인 처리 S790의 흐름을 나타내는 흐름도이다.
도 22는 실시 형태 6에 따른 제어 시스템(802)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300)로 실행용 제어 프로그램(651)을 기입하는 수순을 나타내는 시퀀스도이다.
도 23은 실시 형태 6에 따른 관리 서버(100)의 편집용 키 인증 처리 S780의 흐름을 나타내는 흐름도이다.
(실시 형태 1)
도 1은 본 실시 형태에 따른 제어 시스템(800)의 블록 구성도이다.
본 실시 형태에 따른 제어 시스템(800)은, 예를 들면 공장 내의 생산 기기(500)의 동작을 제어하기 위한 시스템이다.
도 1에 나타내는 바와 같이, 제어 시스템(800)은 관리 서버(100), 개발용 컴퓨터(200), 콘트롤러(300)를 구비한다. 관리 서버(100)와 개발용 컴퓨터(200)는 통신 회선(400)에 의해 접속되어 있다. 또한, 개발용 컴퓨터(200)와 콘트롤러(300)는 통신 회선(401)에 의해 접속되어 있다.
관리 서버(100)는 제어 시스템(800)에 있어서, 제어 프로그램의 설계, 보수 등을 행하는 사용자를 관리한다. 관리 서버(100)는 사용자의 인증 처리 등을 실행하는 인증 서버의 일례이다.
콘트롤러(300)는 기기의 제어를 실행하는 제어 장치의 일례이다.
개발용 컴퓨터(200)는 사용자에 의한 조작을 받아들이고, 받아들인 조작의 내용에 근거하여, 제어 프로그램의 설계, 개발 등의 처리를 실행한다.
제어 프로그램은 콘트롤러(300)에서 실행되는 생산 기기(500)의 제어가 기술된 소스 프로그램이다.
개발용 컴퓨터(200)는 제어 프로그램을, 콘트롤러(300)에서 실행할 수 있는 실행용 제어 프로그램으로 변환하고, 변환한 실행용 제어 프로그램을 암호화하고, 암호화된 실행용 제어 프로그램(암호화 실행용 프로그램의 일례)을 생성한다.
또한, 개발용 컴퓨터(200)는, 암호화된 실행용 제어 프로그램(이하, 암호화 실행용 제어 프로그램(651a)이라고 함)을 실행용 제어 프로그램으로 복호하고, 또한, 복호된 실행용 제어 프로그램을 제어 프로그램으로 변환할 때에 이용하는 편집용 키와, 암호화 실행용 제어 프로그램(651a)을 실행용 제어 프로그램으로 복호할 때에 이용하는 실행용 키를 생성한다.
개발용 컴퓨터(200)는 암호화 실행용 제어 프로그램(651a)을 콘트롤러(300)에 기입하는 프로그램 송신 장치의 일례이다. 암호화 실행용 제어 프로그램(651a)을 콘트롤러(300)에 기입한다는 것은 통신 회선(401)을 거쳐서, 암호화 실행용 제어 프로그램(651a)을 콘트롤러(300)에 송신하는 것이다.
개발용 컴퓨터(200)는, 사용자로부터 콘트롤러(300)로의 실행용 제어 프로그램의 기입 요구를 접수하고, 콘트롤러(300)에 실행용 제어 프로그램과 실행용 키를 기입하고, 관리 서버(100)에 제어 프로그램을 열람하기 위한 편집용 키를 등록한다.
제어 시스템(800)은 보수용 컴퓨터(250)이 접속되어 있어도 좋다.
보수용 컴퓨터(250)는 콘트롤러(300)로부터 실행용 제어 프로그램의 판독 요구를 받아들이고, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어낸다.
보수용 컴퓨터(250)는 사용자의 인증 처리시에 관리 서버(100)로부터 편집용 키를 취득한다.
보수용 컴퓨터(250)에서는, 읽어낸 암호화 실행용 제어 프로그램(651a)을 편집용 키를 이용하여 열람 가능한 제어 프로그램(220)으로 변환한다.
개발용 컴퓨터(200)와 보수용 컴퓨터(250)는 내부 구성은 동일하다. 하나의 컴퓨터에서 개발용 컴퓨터(200)와 보수용 컴퓨터(250)의 양쪽 모두의 기능을 가지는 것이라도 좋다. 혹은, 개발용 컴퓨터(200)와 보수용 컴퓨터(250)의 어느 하나의 기능만을 가지는 하나의 컴퓨터이어도 좋다.
예를 들면, 개발용 컴퓨터(200)는 개발 회사가 사용하는 컴퓨터이고, 보수용 컴퓨터(250)는 보수 회사가 이용하는 컴퓨터이다.
콘트롤러(300)는, 제어 프로그램을 실행하는 것에 의해, 생산 기기(500)의 제어를 실행한다. 콘트롤러(300)는, 개발용 컴퓨터(200)로부터 송신된 실행용 키와 암호화 실행용 제어 프로그램(651a)을 수신하고, 수신한 실행용 키와 암호화 실행용 제어 프로그램(651a)에 근거하여 생산 기기(500)의 제어를 실행한다.
도 1을 이용하여 콘트롤러(300)의 기능에 대해 설명한다.
콘트롤러(300)는 통신 제어부(301), 실행용 제어 프로그램 보관부(302), 내부 버스(303), 기기 식별 ID 관리부(304), 제어 프로그램 실행부(305), 복호부(306)를 구비한다.
콘트롤러(300)의 내부는 내부 버스(303)를 거쳐서 통신 제어부(301), 실행용 제어 프로그램 보관부(302), 기기 식별 ID 관리부(304), 제어 프로그램 실행부(305), 복호부(306)가 접속된 구성으로 되어 있다.
통신 제어부(301)는 통신 회선(401)을 거쳐서, 개발용 컴퓨터(200)의 콘트롤러 통신부(201)와 접속되어 있다.
통신 회선(401)은, 예를 들면 USB 케이블, Ethernet(등록 상표)에 대응한 LAN 케이블 등이다.
실행용 제어 프로그램 보관부(302)는 실행용 제어 프로그램을 콘트롤러(300)이 구비하는 기억 장치에 기억한다.
기기 식별 ID 관리부(304)는 콘트롤러(300)의 기기 식별 ID를 콘트롤러(300)가 구비하는 기억 장치에 기억한다.
복호부(306)는 실행용 제어 프로그램 보관부(302)에 의해 보관되어 있는 실행용 제어 프로그램을 복호한다.
제어 프로그램 실행부(305)는 생산 기기(500)에 접속된다. 제어 프로그램 실행부(305)는 복호부(306)에 의해 복호된 실행용 제어 프로그램을 실행하는 것에 의해, 생산 기기(500)의 동작을 제어한다.
제어 프로그램 실행부(305)는 실행용 제어 프로그램 보관부(302)로부터 점차적으로 코드를 읽어내고, 생산 기기(500)의 제어에 필요한 프로그램을 실행한다.
도 2는 본 실시 형태에 따른 개발용 컴퓨터(200)의 상세 블록 구성도이다.
다음에, 도 1및 도 2를 이용하여, 개발용 컴퓨터(200)의 기능에 대해 설명한다.
도 1에 나타내는 바와 같이, 개발용 컴퓨터(200)는 콘트롤러 통신부(201)(송신측 통신부, 수신측 통신부), 제어 프로그램 관리부(202), 서버 통신부(203)(송신측 통신부, 수신측 통신부)를 구비한다.
콘트롤러 통신부(201)는 통신 회선(401)을 거쳐서, 콘트롤러(300)와의 통신을 행한다.
제어 프로그램 관리부(202)는 제어 프로그램(220)을 관리한다. 또한, 제어 프로그램 관리부(202)는 제어 프로그램(220)을 실행용 제어 프로그램으로 변환한다. 제어 프로그램(220)을 실행용 제어 프로그램으로 변환한다는 것은, 제어 프로그램(220)에 대해, 콘트롤러(300)(PLC의 일례)에서 실행하기 위해서 필요한 처리를 실시하여, 실행용 제어 프로그램을 생성하는 것이다.
서버 통신부(203)는, 통신 회선(400)을 거쳐서, 관리 서버(100)와의 사이에서 통신을 행한다.
또한, 도 2에 나타내는 바와 같이, 제어 프로그램 관리부(202)는 제어 프로그램 기억부(227), 실행용 프로그램 변환부(221), 암호키 생성부(223), 복호부(224), 사용자 조작 접수부(222), 회사 관리부(226)를 구비한다.
제어 프로그램 기억부(227)는 제어 프로그램(220)을 개발용 컴퓨터(200)가 구비하는 기억 장치에 기억한다.
실행용 프로그램 변환부(221)는 제어 프로그램(220)을 실행용 제어 프로그램으로 변환한다. 또한, 실행용 프로그램 변환부(221)는 실행용 제어 프로그램을 제어 프로그램(220)으로 변환한다.
암호키 생성부(223)는 제어 프로그램(220)의 열람, 제어 프로그램(220)의 실행에 필요한 키를 생성한다.
복호부(224)는 제어 프로그램(220)의 열람, 제어 프로그램(220)의 실행에 필요한 키를 복호한다.
사용자 조작 접수부(222)(송신측 접수부, 수신측 접수부)는 사용자의 조작을 접수하고, 실행용 프로그램 변환부(221)으로 행하는 처리를 결정한다.
회사 관리부(226)는 개발용 컴퓨터(200)의 소속 회사를 관리한다.
도 3은 본 실시 형태에 따른 관리 서버(100)가 구비하는 사용자 관리 테이블(101)의 구성도이다.
다음에, 도 1 및 도 3을 이용하여, 관리 서버(100)의 기능에 대해 설명한다.
도 1에 나타내는 바와 같이, 관리 서버(100)는 사용자 관리 테이블(101), 사용자 통신부(102)(서버측 통신부)를 구비한다.
사용자 관리 테이블(101)은 제어 시스템(800)을 이용하는 사용자로서, 예를 들면 제어 프로그램(220)의 개발, 보수 등을 행하는 사용자에 관한 정보를 관리하는 테이블이다.
사용자 통신부(102)는 통신 회선(400)을 거쳐서, 개발용 컴퓨터(200)와 통신을 행한다.
도 3에 나타내는 바와 같이, 사용자 관리 테이블(101)은 사용자 테이블(110), 소속 회사 테이블(111), 기기 식별 ID 테이블(112)을 구비한다.
사용자 테이블(110)은 사용자를 식별하는 사용자 ID(150)에 대해, 소속 회사 정보, 패스워드 등을 대응지은 테이블이다. 소속 회사 정보란, 사용자 ID(150)에 의해 식별되는 사용자가 소속해 있는 회사를 식별하기 위한 정보이다. 소속 회사 정보에는, 개발 회사 정보(653)와 보수 회사 정보(661)가 있다.
소속 회사 테이블(111)은 소속 회사 정보(개발 회사 정보(653), 보수 회사 정보(661))와 기기 식별 ID(604)를 대응지어 관리한다.
기기 식별 ID(604)는 콘트롤러(300)(제어 장치)를 식별하기 위한 식별자이다. 기기 식별 ID에 대응하는 소속 회사 정보는 그 기기 식별 ID에 의해 식별되는 콘트롤러(300)(제어 장치, 제어 기기)에 의해 실행되는 제어 프로그램의 개발·보수 등을 행하는 회사의 정보이다.
기기 식별 ID 테이블(112)은 기기 식별 ID(604)와 기기 식별 ID(604)에 대응하는 편집용 키(650)를 관리한다. 기기 식별 ID(604)에 대응하는 편집용 키(650)에는, 기기 식별 ID(604)에 의해 식별되는 콘트롤러(300)에 기입된 제어 프로그램을 열람하기 위해서 필요한 정보가 포함된다.
도 3에서는, 사용자 테이블(110), 소속 회사 테이블(111), 및 기기 식별 ID 테이블(112)의 구성예를 나타내고 있다. 도 3을 이용하여, 사용자 테이블(110), 소속 회사 테이블(111), 및 기기 식별 ID 테이블(112)의 구성에 대해 더 상세히 설명한다.
사용자 테이블(110)에는, 제어 프로그램을 개발한 회사의 사용자 ID(150)와 대응하는 개발 회사 정보(653), 패스워드(152), 로그인 정보(151)가 등록되어 있다. 또한, 제어 프로그램을 보수하는 회사의 사용자 ID(160)와 대응하는 보수 회사 정보(661), 패스워드(162), 로그인 정보(161)가 등록되어 있다.
소속 회사 테이블(111)에는, 개발 회사 정보(653) 및 보수 회사 정보(661)와, 이들의 각각에 대응하는 기기 식별 ID(604)가 등록된다. 기기 식별 ID(604)란, 개발 회사 정보(653), 혹은 보수 회사 정보(661)의 개발 혹은 보수의 대상으로 되는 콘트롤러(300)를 식별하는 식별자이다.
기기 식별 ID 테이블(112)에는, 기기 식별 ID(604)와, 그것에 대응하는 편집용 키(650)가 등록되어 있다.
관리 서버(100)와 개발용 컴퓨터(200)는 통신 회선(400)을 거쳐서 접속된다. 관리 서버(100)와 개발용 컴퓨터(200)는 통신 회선(400)을 거쳐서, 제어 프로그램(220)을 설계, 보수하는 사용자의 인증 처리를 위한 정보의 송수신, 혹은 편집용 키의 송수신 등을 행한다.
관리 서버(100)는 공장 내 혹은 원격지에 설치된 관리 센터 내에 설치된다. 공장 내에 관리 서버(100)가 설치된 경우, 통신 회선(400)은 LAN 케이블 및 부수되는 통신 기기로 구성된다.
관리 서버(100)가 관리 센터 밖에 설치된 경우는, 통신 회선(400)은 통신 사업 회사가 제공하는 전화 회선, 광케이블, LAN 케이블 및 이들에 부수되는 통신 기기로 구성된다.
도 4는 본 실시 형태에 따른 관리 서버(100), 개발용 컴퓨터(200), 콘트롤러(300)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 4에 있어서, 관리 서버(100), 개발용 컴퓨터(200), 콘트롤러(300)는 컴퓨터이며, LCD(901)(Liquid·Crystal·Display), 키보드(902)(K/B), 마우스(903), FDD(904)(Flexible·Disk·Drive), CDD(905)(Compact·Disc·Drive), 프린터(906)라고 하는 하드웨어 디바이스를 구비하고 있다. 이러한 하드웨어 디바이스는 케이블이나 신호선으로 접속되어 있다. LCD(901) 대신에, CRT(Cathode·Ray·Tube), 혹은 그 외의 표시 장치가 이용되어도 좋다. 마우스(903) 대신에, 터치 패널, 터치 패드, 트랙볼, 펜 태블릿, 혹은, 그 외의 포인팅 디바이스가 이용되어도 좋다.
관리 서버(100), 개발용 컴퓨터(200), 콘트롤러(300)는 프로그램을 실행하는 CPU(911)(Central·Processing·Unit)를 구비하고 있다. CPU(911)는 처리 장치의 일례이다. CPU(911)는 버스(912)를 거쳐서 ROM(913)(Read·Only·Memory), RAM(914)(Random·Access·Memory), 통신 보드(915), LCD(901), 키보드(902), 마우스(903), FDD(904), CDD(905), 프린터(906), HDD(920)(Hard·Disk·Drive)와 접속되고, 이들 하드웨어 디바이스를 제어한다. HDD(920) 대신에, 플래시 메모리, 광디스크 장치, 메모리 카드 리더 라이터, 혹은, 그 외의 기록 매체가 이용되어도 좋다.
RAM(914)은 휘발성 메모리의 일례이다. ROM(913), FDD(904), CDD(905), HDD(920)는 비휘발성 메모리의 일례이다. 이들은 기억 장치, 기억부의 일례이다. 통신 보드(915), 키보드(902), 마우스(903), FDD(904), CDD(905)는 입력 장치의 일례이다. 또한, 통신 보드(915), LCD(901), 프린터(906)는 출력 장치의 일례이다.
통신 보드(915)는 LAN(Local·Area·Network) 등에 접속되어 있다. 통신 보드(915)는, LAN에 한정되지 않고, IP-VPN(Internet·Protocol·Virtual·Private·Network), 광역 LAN, ATM(Asynchronous·Transfer·Mode) 네트워크라고 하는 WAN(Wide·Area·Network), 혹은 인터넷에 접속되어 있어도 상관없다. LAN, WAN, 인터넷은 네트워크의 일례이다.
HDD(920)에는, 오퍼레이팅 시스템(921)(OS), 윈도우 시스템(922), 프로그램군(923), 파일군(924)이 기억되어 있다. 프로그램군(923)의 프로그램은 CPU(911), 오퍼레이팅 시스템(921), 윈도우 시스템(922)에 의해 실행된다. 프로그램군(923)에는, 본 실시 형태의 설명에서 「~부」로서 설명하는 기능을 실행하는 프로그램이 포함되어 있다. 프로그램은, CPU(911)에 의해 읽어내져서 실행된다. 파일군(924)에는, 본 실시 형태의 설명에서, 「~데이터」, 「~정보」, 「~ID(식별자)」, 「~플래그」, 「~결과」로서 설명하는 데이터나 정보나 신호값이나 변수값이나 파라미터가 「~파일」이나 「~데이터베이스」나 「~테이블」의 각 항목으로서 포함되어 있다. 「~파일」이나 「~데이터베이스」나 「~테이블」은 RAM(914)이나 HDD(920) 등의 기록 매체에 기억된다. RAM(914)이나 HDD(920) 등의 기록 매체에 기억된 데이터나 정보나 신호값이나 변수값이나 파라미터는 판독 기입 회로를 거쳐서 CPU(911)에 의해 메인 메모리나 캐시 기억 장치로 읽어내어지고, 추출, 검색, 참조, 비교, 연산, 계산, 제어, 출력, 인쇄, 표시 등의 CPU(911)의 처리(동작)에 이용된다. 추출, 검색, 참조, 비교, 연산, 계산, 제어, 출력, 인쇄, 표시 등의 CPU(911)의 처리 중, 데이터나 정보나 신호값이나 변수값이나 파라미터는 메인 메모리나 캐시 기억 장치나 버퍼 메모리에 일시적으로 기억된다.
본 실시 형태의 설명에서 이용하는 블럭도나 흐름도의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타낸다. 데이터나 신호는 RAM(914) 등의 메모리, FDD(904)의 플렉서블 디스크(flexible disk; FD), CDD(905)의 콤팩트 디스크(CD), HDD(920)의 자기 디스크, 광디스크, DVD(Digital·Versatile·Disc), 혹은 그 외의 기록 매체에 기록된다. 또한, 데이터나 신호는 버스(912), 신호선, 케이블, 혹은 그 외의 전송 매체에 의해 전송된다.
본 실시 형태의 설명에서 「~부」로서 설명하는 것은 「~회로」, 「~장치」, 「~기기」이어도 좋고, 또한, 「~스텝」, 「~공정」, 「~수순」, 「~처리」이어도 좋다. 즉, 「~부」로서 설명하는 것은 ROM(913)에 기억된 펌웨어로 실현되고 있어도 상관없다. 혹은, 「~부」로서 설명하는 것은 소프트웨어만, 혹은 소자, 디바이스, 기판, 배선이라고 하는 하드웨어만으로 실현되고 있어도 상관없다. 혹은, 「~부」로서 설명하는 것은 소프트웨어와 하드웨어의 조합, 혹은, 소프트웨어와 하드웨어와 펌웨어의 조합으로 실현되고 있어도 상관없다. 펌웨어와 소프트웨어는 프로그램으로서 플렉서블 디스크, 콤팩트 디스크, 자기 디스크, 광디스크, DVD 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 읽어내어지고, CPU(911)에 의해 실행된다. 즉, 프로그램은, 본 실시 형태의 설명에서 말하는 「~부」로서 컴퓨터를 기능시키는 것이다. 혹은, 프로그램은 본 실시 형태의 설명에서 말하는 「~부」의 수순나 방법을 컴퓨터에 실행시키는 것이다.
도 5는 본 실시 형태에 따른 제어 시스템(800)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300)로 실행용 제어 프로그램(651)을 기입하는 수순을 나타내는 시퀀스도이다. 도 5를 이용하여, 개발용 컴퓨터(200)로부터 콘트롤러(300)로 실행용 제어 프로그램(651)을 기입하는 수순에 대해 설명한다.
도 5에 나타내는 처리는, 개발용 컴퓨터(200)가, 사용자가 콘트롤러(300)에의 실행용 제어 프로그램의 기입 실행을 지시하고 나서, 콘트롤러(300)에 실행용 제어 프로그램을 기입하고, 관리 서버(100)에 제어 프로그램을 열람하기 위한 편집용 키를 등록할 때까지의 처리의 흐름을 나타낸 것이다.
개발용 컴퓨터(200)는 사용자로부터 콘트롤러(300)로의 실행용 제어 프로그램 기입 지시의 조작을 접수한다.
예를 들면, 사용자 조작 접수부(222)는 개발용 컴퓨터(200)의 표시 장치에 사용자 입력 화면 등을 표시한다. 사용자 조작 접수부(222)는 사용자 입력 화면에 입력된 조작의 내용을 접수한다.
이 때, 사용자 조작 접수부(222)(송신측 접수부)는 사용자에 의해 사용자 입력 화면에 입력된 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)를 입력한다.
사용자 입력 화면에 입력된 조작의 내용은, 예를 들면 콘트롤러(300)에 실행용 제어 프로그램을 기입하라는 지시(이하, 실행용 제어 프로그램 기입 지시라고 함)이다.
사용자 ID(601), 패스워드(602), 개발 회사 정보(653)는 사용자의 인증 처리에 이용하는 인증 정보의 일례이다.
사용자 조작 접수부(222)는 입력한 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)를 사용자 통신부(102)에 입력한다.
도 5의 S101에 있어서, 사용자 통신부(102)는 사용자 조작 접수부(222)로부터 입력한 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)를 통신 회선(400)을 거쳐서, 인증 요구로서 관리 서버(100)에 송신한다.
관리 서버(100)의 사용자 통신부(102)는 개발용 컴퓨터(200)의 서버 통신부(203)로부터 인증 요구를 수신한다. 관리 서버(100)는, 인증 요구를 수신하면, 인증 요구에 포함되는 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)를 이용해서, 사용자 인증 처리 S710을 처리 장치에 의해 실행한다. 관리 서버(100)는 인증 서버의 일례이다. 또한, 관리 서버(100)는 사용자의 인증 처리를 실행하는 인증부의 일례이다.
도 6은,실시 형태 1에 따른 관리 서버(100)의 사용자 인증 처리 S710의 흐름을 나타내는 흐름도이다.
도 6을 이용하여, 관리 서버(100)의 사용자 인증 처리 S710에 대해 설명한다.
관리 서버(100)는, 개발용 컴퓨터(200)로부터 통지된 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)가, 사용자 테이블(110)에 등록된 사용자 ID(150), 패스워드(152), 개발 회사 정보(653)와 일치하고 있는지 여부를 처리 장치에 의해 확인한다.
S711에 있어서, 관리 서버(100)는, 입력한 사용자 ID(601)를 이용하여, 사용자 테이블(110)을 검색한다.
관리 서버(100)는, 입력한 사용자 ID(601)와 동일한 사용자 ID가 사용자 테이블(110)에 존재한다고 확인한 경우(S711에서 예), 처리를 S712로 진행한다. 이 때, 관리 서버(100)는, 입력한 사용자 ID(601)와 동일한 사용자 ID(150)에 대응하는 개발 회사 정보(653)와, 패스워드(152)를 사용자 테이블(110)로부터 추출하고, 기억 장치에 기억한다.
관리 서버(100)는, 입력한 사용자 ID(601)와 동일한 사용자 ID가 사용자 테이블(110)에 존재하지 않는(확인할 수 없는) 경우(S711에서 아니오), 처리를 S715로 진행한다.
S715에 있어서, 관리 서버(100)는 인증 결과(603)에 「인증 불가」를 설정한다.
S712에 있어서, 관리 서버(100)는, 입력한 개발 회사 정보(653)가, 사용자 테이블(110)로부터 추출한 개발 회사 정보(653)(사용자 ID(601)(150)에 대응하는 개발 회사 정보(653))와 일치하는지 여부에 대해 처리 장치에 의해 확인한다.
관리 서버(100)는, 입력한 개발 회사 정보(653)가, 사용자 테이블(110)로부터 추출한 개발 회사 정보(653)와 일치한다고 확인한 경우(S712에서 예), 처리를 S713으로 진행한다.
관리 서버(100)는, 입력한 개발 회사 정보(653)가, 사용자 테이블(110)로부터 추출한 개발 회사 정보(653)와 일치하는 것을 확인할 수 없는 경우(S712에서 아니오), 처리를 S715로 진행한다.
S715에 있어서, 관리 서버(100)는 인증 결과(603)에 「인증 불가」를 설정한다.
S713에 있어서, 관리 서버(100)는, 입력한 패스워드(602)가, 사용자 테이블(110)로부터 추출한 패스워드(152)(사용자 ID(601)(150)에 대응하는 패스워드)와 일치하는지 여부에 대해 처리 장치에 의해 확인한다.
관리 서버(100)는, 입력된 패스워드(602)가, 사용자 테이블(110)로부터 추출한 패스워드(152)와 일치한다고 확인한 경우(S713에서 예), 처리를 S714로 진행한다.
S714에 있어서, 관리 서버(100)는 인증 결과(603)에 「인증 허가」를 설정한다.
관리 서버(100)는, 입력된 패스워드(602)가, 사용자 테이블(110)로부터 추출한 패스워드(152)와 일치하는 것을 확인할 수 없는 경우(S713에서 아니오), 처리를 S715로 진행한다.
S715에 있어서, 관리 서버(100)는 인증 결과(603)에 「인증 불가」를 설정한다.
이상으로, 도 6의 설명을 종료한다.
도 5의 S102에 있어서, 관리 서버(100)의 사용자 통신부(102)는, 사용자 인증 처리 S710을 완료하면, 통신 회선(400)을 거쳐서 인증 결과(603)를 개발용 컴퓨터(200)에 송신한다.
이상과 같이, 관리 서버(100)는, 입력된 사용자 ID(601), 패스워드(602), 개발 회사 정보(653) 중 1개라도 사용자 테이블(110)과 불일치가 있었던 경우는, S715와 같이 인증 불가 응답을 송신한다. 관리 서버(100)는, 입력된 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)의 모두가 일치한 경우는, S714와 같이 인증 허가 응답을 인증 결과(603)로 설정하고, 개발용 컴퓨터(200)에 대해 인증 결과(603)를 통지한다.
도 5의 S102에 있어서, 개발용 컴퓨터(200)의 서버 통신부(203)는 관리 서버(100)의 사용자 통신부(102)로부터 인증 결과(603)를 수신한다.
제어 프로그램 관리부(202)는 수취한 인증 결과(603)에 설정된 인증 응답을 처리 장치에 의해 판정한다.
제어 프로그램 관리부(202)는, 인증 결과(603)에 설정된 인증 응답이 「인증 불가」라고 판정한 경우, 처리를 종료한다. 이 경우, 예를 들면, 제어 프로그램 관리부(202)는 표시 장치에 「인증 불가」의 에러 메시지 등을 표시한다.
제어 프로그램 관리부(202)는, 인증 결과(603)에 설정된 인증 응답이 「인증 허가」라고 판정한 경우, 제어 프로그램 변환 처리 S720을 실행한다.
도 7은 본 실시 형태에 따른 개발용 컴퓨터(200)의 제어 프로그램 변환 처리 S720의 흐름을 나타내는 흐름도이다.
도 7을 이용하여, 개발용 컴퓨터(200)의 제어 프로그램 변환 처리 S720에 대해 설명한다.
제어 프로그램 관리부(202)의 실행용 프로그램 변환부(221)는 제어 프로그램 변환 처리 S720을 실행한다.
S721에 있어서, 실행용 프로그램 변환부(221)는 콘트롤러(300)의 기기 식별 ID를 취득하기 위한 기기 식별 ID 문의 메시지(605)를 콘트롤러(300)에 대해 송신한다.
콘트롤러(300)는, 기기 식별 ID 문의 메시지(605)를 수신하면, 기기 식별 ID 관리부(304)로부터, 콘트롤러(300)를 식별하는 기기 식별 ID(604)를 취득한다. 콘트롤러(300)의 통신 제어부(301)는, 통신 회선(401)을 거쳐서, 취득한 기기 식별 ID(604)를 개발용 컴퓨터(200)에 송신한다.
S722에 있어서, 개발용 컴퓨터(200)의 콘트롤러 통신부(201)는, 콘트롤러(300)의 기기 식별 ID(604)를 수신한다. 개발용 컴퓨터(200)의 콘트롤러 통신부(201)는 수신한 기기 식별 ID(604)를 제어 프로그램 관리부(202)에 입력한다. 이상과 같이, 제어 프로그램 관리부(202)는 기기 식별 ID(604)를 취득한다. 제어 프로그램 관리부(202)는 콘트롤러(300)를 식별하는 기기 식별 ID(604)(기기 식별자)를 취득하는 송신측 취득부의 일례이다.
S723에 있어서, 제어 프로그램 관리부(202)의 실행용 프로그램 변환부(221)는 제어 프로그램(220)을 입력한다. 제어 프로그램(220)은 콘트롤러(300)에서 실행되는 생산 기기(500)의 제어가 기술된 소스 프로그램이다. 제어 프로그램(220)은, 예를 들면 래더 언어에 의해 기술된 래더 프로그램이다.
실행용 프로그램 변환부(221)는 입력된 제어 프로그램(220)을 콘트롤러(300)에서 실행할 수 있는 실행용 제어 프로그램(651)으로 변환한다. 실행용 제어 프로그램(651)은, 예를 들면 콘트롤러(300)에서 실행 가능한 오브젝트 프로그램(실행용 프로그램의 일례)이다.
S724에 있어서, 암호키 생성부(223)는 실행용 프로그램 변환부(221)에 의해 변환된 실행용 제어 프로그램(651)과, 콘트롤러(300)로부터 취득한 기기 식별 ID(604)를 입력한다. 암호키 생성부(223)는, 암호화 실행용 제어 프로그램(651a)을 실행용 제어 프로그램(651)으로 복호하고, 또한 복호된 실행용 제어 프로그램(651)을 제어 프로그램(220)으로 변환할 때에 이용하는 편집용 키를 생성한다. 또한, 암호키 생성부(223)는 암호화 실행용 제어 프로그램(651a)을 실행용 제어 프로그램(651)으로 복호할 때에 이용하는 실행용 키를 생성한다. 암호키 생성부(223)는 키 생성부의 일례이다.
암호키 생성부(223)는, 기기 식별 ID(604)를 수신(입력)하면, 제어 프로그램(220)의 열람에 필요한 편집용 키(650)와, 콘트롤러(300)의 실행용 제어 프로그램(651)을 실행하기 위해서 필요한 실행용 키(652)를 생성하고, 실행용 프로그램 변환부(221)에 통지한다.
S725에 있어서, 실행용 프로그램 변환부(221)는, 편집용 키(650)와 실행용 키(652)를 수신하고, 제어 프로그램 변환 처리 S720이 완료된다.
S103~S104에 있어서, 제어 프로그램 관리부(202)는 암호키 생성부(223)에 의해 생성된 실행용 키(652)와 암호화 실행용 제어 프로그램(651a)을 콘트롤러 통신부(201)에 출력한다.
콘트롤러 통신부(201)는 제어 프로그램 관리부(202)로부터 실행용 키(652)와 암호화 실행용 제어 프로그램(651a)을 입력받는다. 콘트롤러 통신부(201)는, 입력된 실행용 키(652)와 암호화 실행용 제어 프로그램(651a)을, 콘트롤러(300)에 대해 통신 회선(401)을 거쳐서 송신한다. 콘트롤러 통신부(201)는 송신측 통신부의 일례이다.
콘트롤러(300)의 통신 제어부(301)는 개발용 컴퓨터(200)로부터 송신된 암호화 실행용 제어 프로그램(651a)과 실행용 키(652)를 실행용 제어 프로그램 보관부(302)에 기입한다.
개발용 컴퓨터(200)의 실행용 프로그램 변환부(221)는 회사 관리부(226)에 미리 등록된 개발용 컴퓨터(200)의 소속 회사 정보를 취득한다. 개발용 컴퓨터(200)인 경우는 개발 회사 정보(653)가 등록되어 있고, 보수용 컴퓨터(250)인 경우는 보수 회사 정보(661)가 등록되어 있다.
혹은, 개발용 컴퓨터(200)의 회사 관리부(226)에는 개발용 컴퓨터(200)의 개발 회사 정보(653)와, 그 후의 보수를 담당하는 보수 회사 정보(661)가 등록되어 있어도 좋다. 또한, 보수용 컴퓨터(250)의 회사 관리부(226)에는 자신의 보수용 컴퓨터(250)의 보수 회사 정보(661)와, 보수의 대상으로 되는 제어 프로그램의 개발을 담당한 개발 회사 정보(653)가 등록되어 있어도 좋다.
S105~S107에 있어서, 개발용 컴퓨터(200)의 서버 통신부(203)는, 관리 서버(100)에 대해, 편집용 키(650), 기기 식별 ID(604), 개발 회사 정보(653), 보수 회사 정보(661)를, 통신 회선(400)을 거쳐서 송신한다.
서버 통신부(203)는 암호키 생성부(223)에 의해 생성된 편집용 키(650)와 콘트롤러(300)로부터 취득한 기기 식별 ID(604)를 관리 서버(100)에 송신하는 송신측 통신부의 일례이다.
관리 서버(100)의 사용자 통신부(102)(서버측 통신부)는 개발용 컴퓨터(200)로부터 편집용 키(650), 기기 식별 ID(604), 개발 회사 정보(653), 보수 회사 정보(661)를 수신한다. 관리 서버(100)는, 편집용 키 등록 처리 S730에 의해서, 사용자 관리 테이블(101)에 편집용 키(650), 기기 식별 ID(604), 개발 회사 정보(653), 보수 회사 정보(661)를 등록한다.
도 8은 실시 형태 1에 따른 관리 서버(100)의 편집용 키 등록 처리 S730의 흐름을 나타내는 흐름도이다.
도 8을 이용하여, 관리 서버(100)의 편집용 키 등록 처리 S730의 흐름에 대해 설명한다.
S731에 있어서, 관리 서버(100)는, 개발 회사 정보(653)와 기기 식별 ID(604)를 대응지어 소속 회사 테이블(111)에 등록한다.
S732에 있어서, 관리 서버(100)는 보수 회사 정보(661)와 기기 식별 ID(604)를 대응지어 소속 회사 테이블(111)에 등록한다.
S733에 있어서, 관리 서버(100)는 기기 식별 ID(604)와 편집용 키(650)를 대응지어 기기 식별 ID 테이블(112)에 등록한다.
이상으로, 개발용 컴퓨터(200)가, 사용자가 콘트롤러(300)로의 실행용 제어 프로그램의 기입 실행을 지시하고 나서, 콘트롤러(300)에 실행용 제어 프로그램을 기입하고, 관리 서버(100)에 제어 프로그램을 열람하기 위한 편집용 키를 등록할 때까지의 처리의 흐름에 대한 설명을 마친다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(800)은, 설비의 제어 시스템으로서, 상기 설비의 동작을 제어하는 콘트롤러(300)와, 제 1 통신 회선(통신 회선(401))에 의해서 상기 콘트롤러(300)에 접속되고, 상기 콘트롤러(300)와의 사이에서, 제어 프로그램(220)을 판독/기입하는 제 1 컴퓨터(개발용 컴퓨터(200))와, 제 2 통신 회선(통신 회선(400))에 의해서 상기 제 1 컴퓨터에 접속되는 서버(관리 서버(100))를 구비한다.
또한, 본 실시 형태에 따른 제어 시스템(800)은 상기 제 1 컴퓨터로부터 제어 프로그램을 상기 콘트롤러에 기입할 때에 사용하는 이하와 같은 수단을 구비한다.
우선, 상기 서버는, 상기 제 1 컴퓨터를 사용하여 기입하는 사용자와 소속 회사를 인증하고, 상기 제 1 컴퓨터에 대해 기입의 허가를 판단하는 인증 수단을 구비한다.
또한, 상기 제 1 컴퓨터는, 상기 콘트롤러로부터 기기 식별 ID를 읽어들이고, 상기 제어 프로그램의 열람을 가능하게 하기 위한 암호키(편집용 키(650))와, 상기 제어 프로그램의 실행을 가능하게 하기 위한 암호키(실행용 키(652))를 작성하는 키 생성 수단을 구비한다.
또한, 상기 키 생성 수단에 의해서 생성된, 제어 프로그램의 열람과 제어 프로그램의 실행을 가능하게 하기 위한 암호키(실행용 키(652))를 상기 콘트롤러에 기입하는 기입 수단을 구비한다.
또한, 상기 서버는 상기 제 1 컴퓨터의 소속 회사와 상기 콘트롤러의 기기 식별 ID와 상기 제어 프로그램의 열람을 가능하게 하기 위한 암호키(편집용 키(650))를 보관하는 수단을 구비한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(800)에 의하면, 제어 프로그램 해독에 필요한 편집용 키의 누설을 막아 제어 프로그램을 안전하게 보호할 수 있다.
(실시 형태 2)
본 실시 형태에서는, 실시 형태 1과 다른 점에 대해 설명한다. 본 실시 형태에서는, 실시 형태 1에서 설명한 것과 동일한 기능을 가지는 구성, 처리, 수단, 수순에 대해서는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있다.
본 실시 형태에서는, 실시 형태 1에서 설명한 제어 시스템(800)에 있어서, 보수용 컴퓨터(250)에 의해, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내고, 열람·편집 가능한 제어 프로그램(220)으로 변환할 때까지의 처리에 대해 설명한다.
도 9는 본 실시 형태에 따른 제어 시스템(800)에 있어서, 콘트롤러(300)로부터 보수용 컴퓨터(250)로 암호화 실행용 제어 프로그램(651a)을 읽어내는 수순을 나타내는 시퀀스도이다.
도 9를 이용하여, 콘트롤러(300)로부터 보수용 컴퓨터(250)로 암호화 실행용 제어 프로그램(651a)을 읽어내고, 읽어낸 암호화 실행용 제어 프로그램(651a)을 열람 가능한 제어 프로그램(220)으로 변환하는 수순에 대해 설명한다.
보수용 컴퓨터(250)의 사용자 조작 접수부(222)는 사용자로부터 암호화 실행용 제어 프로그램(651a)의 판독 요구를 접수한다.
보수용 컴퓨터(250)는 암호화 실행용 제어 프로그램(651a)의 판독 요구를 접수하면, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내고, 관리 서버(100)로부터 제어 프로그램(220)의 열람에 필요한 편집용 키를 입수한다.
그리고, 보수용 컴퓨터(250)는, 입수한 편집용 키(650)를 이용하여, 암호화 실행용 제어 프로그램(651a)을 열람 가능한 제어 프로그램(220)으로 변환한다.
보수용 컴퓨터(250)는, 사용자로부터, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내는 요구인 판독 지시의 조작을 접수한다.
예를 들면, 사용자 조작 접수부(222)는 보수용 컴퓨터(250)의 표시 장치에 사용자 입력 화면 등을 표시한다. 사용자 조작 접수부(222)는 사용자 입력 화면에 입력된 조작의 내용을 접수한다.
이 때, 사용자 조작 접수부(222)는 사용자에 의해 사용자 입력 화면에 입력된 사용자 ID(601), 패스워드(602), 보수 회사 정보(661)를 입력받는다.
사용자 입력 화면에 입력된 조작의 내용은, 예를 들면 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내는 지시(이하, 실행용 제어 프로그램 판독 지시라고 함)이다.
사용자 조작 접수부(222)는 입력된 사용자 ID(601), 패스워드(602), 보수 회사 정보(661)를 사용자 통신부(102)에 입력한다. 사용자 조작 접수부(222)는 수신측 접수부의 일례이다.
도 9의 S101에 있어서, 사용자 통신부(102)는 사용자 조작 접수부(222)로부터 입력된 사용자 ID(601), 패스워드(602), 보수 회사 정보(661)를, 통신 회선(400)을 거쳐서, 인증 요구로서 관리 서버(100)에 송신한다.
관리 서버(100)의 사용자 통신부(102)는 보수용 컴퓨터(250)의 서버 통신부(203)로부터 인증 요구를 수신한다. 관리 서버(100)는, 인증 요구를 수신하면, 인증 요구에 포함되는 사용자 ID(601), 패스워드(602), 보수 회사 정보(661)를 이용하여, 사용자 인증 처리 S710을 처리 장치에 의해 실행한다.
실시 형태 1에서 설명한 바와 같이, 보수용 컴퓨터(250)의 내부 구성은 도 2에 나타낸 개발용 컴퓨터(200)의 내부 구성과 동일하지만, 회사 관리부(226)의 설정값이 개발용 컴퓨터(200)의 설정값과 상이하다. 즉, 개발용 컴퓨터(200)를 소유하고 있는 회사와 보수용 컴퓨터(250)를 소유하고 있는 회사가 다른 점에 유의할 필요가 있다.
보수용 컴퓨터(250)는, 사용자에 의한 실행용 제어 프로그램 판독 조작을 접수하는 것에 의해, 콘트롤러(300)로부터 실행용 제어 프로그램 판독 처리를 실행한다. 이 때, 보수용 컴퓨터(250)는 사용자 ID(611), 패스워드(612), 보수 회사 정보(661)를 관리 서버(100)에 통지한다. 관리 서버(100)는 사용자 인증 처리 S710을 실행한다.
사용자 인증 처리 S710에 대해서는, 실시 형태 1에서 설명한 것과 같다. 단, 개발 회사 정보(653)가 보수 회사 정보(661)로 되는 점이 상이하다.
도 9에 나타내는 바와 같이, 관리 서버(100)는, 사용자 인증 처리 S710에서, 수신한 사용자 ID(611), 패스워드(612), 보수 회사 정보(661)가, 사용자 테이블(110)에 등록된 사용자 ID(160), 패스워드(162), 보수 회사 정보(661)와 일치하고 있는지 여부를 처리 장치에 의해 판정한다(도 6의 S711~S713을 참조).
관리 서버(100)는, 사용자 ID(160), 패스워드(162), 보수 회사 정보(661) 중 1개라도 불일치가 있었던 경우는 인증 불가 응답을 인증 결과(603)로 설정하고, 인증 결과(603)를 보수용 컴퓨터(250)에 송신한다(도 9의 S102).
또한, 관리 서버(100)는, 사용자 ID(160), 패스워드(162), 보수 회사 정보(661)의 모두가 일치한 경우는 인증 허가 응답을 인증 결과(603)로 설정하고, 인증 결과(603)를 보수용 컴퓨터(250)에 송신한다(도 9의 S102).
보수용 컴퓨터(250)의 제어 프로그램 관리부(202)는 관리 서버(100)로부터 수신한 인증 결과(603)를 처리 장치에 의해 확인한다. 제어 프로그램 관리부(202)는, 인증 결과(603)가 인증 허가이면, 콘트롤러(300)에 대해 기기 식별 ID 문의 메시지(605)를 송신한다(S201).
콘트롤러(300)는, 기기 식별 ID 문의 메시지(605)를 수신하면, 콘트롤러(300)의 기기 식별 ID(604)를 제어 프로그램 관리부(202)에 통지한다(S202).
제어 프로그램 관리부(202)는 취득한 기기 식별 ID(604)와 보수 회사 정보(661)를 관리 서버(100)에 송신한다(S203). 관리 서버(100)는, 기기 식별 ID(604)와 보수 회사 정보(661)를 수신하면, 편집용 키 인증 처리 S750을 실행하고, 편집용 키(650)를 보수용 컴퓨터(250)에 대해 송신한다(S204). 제어 프로그램 관리부(202)는 수신측 취득부의 일례이다.
도 10은 본 실시 형태에 따른 관리 서버(100)의 편집용 키 인증 처리 S750의 흐름을 나타내는 흐름도이다.
도 10을 이용하여, 관리 서버(100)의 편집용 키 인증 처리 S750의 흐름에 대해 설명한다.
S751에 있어서, 관리 서버(100)는 수신한 기기 식별 ID(604)가 기기 식별 ID 테이블(112)(도 3 참조)에 등록되어 있는지 여부를 처리 장치에 의해 확인한다.
관리 서버(100)는, 입력된 기기 식별 ID(604)가 기기 식별 ID 테이블(112)에 등록되어 있다고 확인한 경우(S751에서 예), 처리를 S752로 진행한다.
관리 서버(100)는, 수신된 기기 식별 ID(604)가 기기 식별 ID 테이블(112)에 등록되어 있는 것을 확인할 수 없는 경우(S751에서 아니오), 처리를 S755로 진행한다.
S752에 있어서, 관리 서버(100)는, 수신한 보수 회사 정보(661)가, 소속 회사 테이블(111)에 등록되고, 또한 수신한 기기 식별 ID(604)에 대응하고 있는지 여부에 대해 처리 장치에 의해 확인한다.
관리 서버(100)는, 수신한 보수 회사 정보(661)가, 소속 회사 테이블(111)에 등록되고, 또한 수신한 기기 식별 ID(604)에 대응하고 있다고 확인한 경우(S752에서 예), 처리를 S753으로 진행한다.
관리 서버(100)는, 수신한 보수 회사 정보(661)가, 소속 회사 테이블(111)에 등록되어 있다고 확인되지 않는 경우, 혹은, 수신한 기기 식별 ID(604)에 대응하고 있다고 확인되지 않는 경우(S752에서 아니오), 처리를 S755로 진행한다.
S753에 있어서, 관리 서버(100)는 기기 식별 ID(604)에 대응하는 편집용 키(650)를 기기 식별 ID 테이블(112)로부터 취득한다.
S754에 있어서, 관리 서버(100)는 취득한 편집용 키(650)를 키 인증 응답으로 설정한다.
한편, S755에 있어서, 관리 서버(100)는 키 인증 응답에 「인증 불가」를 설정한다. 즉, 관리 서버(100)는, 기기 식별 ID(604)가 기기 식별 ID 테이블(112)에 존재하지 않는 경우, 혹은 존재하고 있어도 소속 회사 테이블(111)에서 기기 식별 ID(604)와 보수 회사 정보(661)가 대응하고 있지 않는 경우는, 키 인증 응답에 「인증 불가」를 설정한다.
이상으로, 관리 서버(100)의 편집용 키 인증 처리 S750의 설명을 마친다.
도 9의 S204에 있어서, 관리 서버(100)의 사용자 통신부(102)는 통신 회선(400)을 거쳐서, 키 인증 응답을 보수용 컴퓨터(250)에 송신한다.
이 때, 편집용 키 인증이 성공(인증 허가)하면 키 인증 응답에는 편집용 키(650)가 설정되어 있고, 편집용 키 인증이 실패(인증 불가)하면 키 인증 응답에는 인증 불가가 설정되어 있다.
도 9의 S205에 있어서, 보수용 컴퓨터(250)는, 키 인증 응답으로서 편집용 키(650)를 수신하면, 콘트롤러(300)에 대해 암호화 실행용 제어 프로그램(651a)의 판독을 요구하는 실행용 제어 프로그램 판독 메시지(640)(판독 명령의 일례)를 송신한다. 보수용 컴퓨터(250)는 프로그램 수신 장치의 일례이다. 또한, 콘트롤러 통신부(201)는 수신측 통신부의 일례이다.
콘트롤러(300)는 보수용 컴퓨터(250)로부터 실행용 제어 프로그램 판독 메시지(640)를 수신한다. 콘트롤러(300)는 실행용 제어 프로그램 보관부(302)로부터 암호화 실행용 제어 프로그램(651a)을 읽어낸다.
이 때, 콘트롤러(300)는, 실행용 제어 프로그램 보관부(302)로부터 암호화 실행용 제어 프로그램(651a)과 실행용 키(652)를 읽어내어, 복호부(306)에 입력해도 좋다. 복호부(306)는, 암호화 실행용 제어 프로그램(651a)과 실행용 키(652)에 근거하여, 암호화 실행용 제어 프로그램(651a)을 실행용 제어 프로그램(651)으로 복호한다. 콘트롤러(300)의 통신 제어부(301)는 복호부(306)에 의해 복호된 실행용 제어 프로그램(651)을 보수용 컴퓨터(250)에 송신하는 것으로 하여도 좋다.
단, 본 실시 형태에서는, 콘트롤러(300)는 실행용 제어 프로그램 보관부(302)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내고, 통신 제어부(301)는 암호화 실행용 제어 프로그램(651a)을 보수용 컴퓨터(250)에 송신하는 것으로 한다.
보수용 컴퓨터(250)의 콘트롤러 통신부(201)는 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 수신한다.
보수용 컴퓨터(250)의 콘트롤러 통신부(201)는 수신한 암호화 실행용 제어 프로그램(651a)을 제어 프로그램 관리부(202)에 입력한다.
보수용 컴퓨터(250)는, 관리 서버(100)로부터 수신한 편집용 키(650)와 콘트롤러(300)로부터 수신한 암호화 실행용 제어 프로그램(651a)에 근거하여, 암호화 실행용 제어 프로그램(651a)을 열람 가능한 제어 프로그램(220)으로 변환하는 제어 프로그램 변환 처리 S760을 실행한다.
이하에, 보수용 컴퓨터(250)에 있어서의 제어 프로그램 변환 처리 S760에 대해 설명한다.
제어 프로그램 관리부(202)의 복호부(224)는, 편집용 키(650)와 암호화 실행용 제어 프로그램(651a)을 입력받고, 암호화 실행용 제어 프로그램(651a)을 실행용 제어 프로그램(651)으로 복호한다.
또한, 제어 프로그램 관리부(202)의 실행용 프로그램 변환부(221)는, 편집용 키(650)와 실행용 제어 프로그램(651)을 입력받고, 실행용 제어 프로그램(651)을 열람·편집이 가능한 제어 프로그램(220)으로 변환한다.
보수용 컴퓨터(250)는 로그인(S101~S102)한 사용자에 의한 제어 프로그램의 판독 요구를 접수한다. 보수용 컴퓨터(250)는, 제어 프로그램 변환 처리 S760을 실행하고, 열람·편집이 가능한 제어 프로그램(220)을 취득한다. 그 후, 보수용 컴퓨터(250)는 사용자의 조작에 의해, 예를 들면 제어 프로그램(220)의 보수·편집·변경·수정 등의 처리를 실행한다.
보수용 컴퓨터(250)는, 사용자에 의한 요구에 근거하여, 열람 가능한 제어 프로그램(220)에 대해 보수·편집·변경·수정 등의 처리를 실시하고, 변경후 제어 프로그램(220a)을 생성한다.
도 5의 S720의 처리에 의해, 보수용 컴퓨터(250)는, 변경후 제어 프로그램(220a)을 실행용의 프로그램으로 변환하고, 또 변환한 변경후 제어 프로그램(220a)을 암호화하고, 암호화 실행용 변경후 제어 프로그램(221a)을 생성한다. 보수용 컴퓨터(250)는 이 때, 새롭게 편집용 키(650), 실행용 키(652)를 생성한다.
S103~S107의 처리에 의해, 보수용 컴퓨터(250)는 새로운 편집용 키(650)를 관리 서버(100)에 등록한다. 또한, 보수용 컴퓨터(250)는 새로운 실행용 키(652)와 암호화 실행용 변경후 제어 프로그램(221a)을 콘트롤러(300)에 송신한다.
이상과 같이, 본 실시 형태에 따른 보수용 컴퓨터(250)는, 편집용 키(650)를 받으면 콘트롤러(300)로부터 실행용 제어 프로그램(651)을 읽어내고, 편집용 키(650)를 복호부(224)에 입력하여 실행용 제어 프로그램의 열람에 필요한 정보를 복호하고, 실행용 제어 프로그램(651)을 열람 가능한 제어 프로그램(220)으로 변환한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(800)은, 콘트롤러(콘트롤러(300))와의 사이에 제어 프로그램을 판독/기입하는 제 2 컴퓨터(보수용 컴퓨터(250))에 의해, 콘트롤러로부터 제어 프로그램을 읽어들일 때에 사용하는 이하와 같은 수단을 구비한다.
상기 서버(관리 서버(100))는 상기 제어 프로그램을 읽어들이는 사용자와 소속 회사를 인증하고, 상기 제 2 컴퓨터에 대해 판독의 허가를 판단하는 인증 수단을 구비한다.
상기 제 2 컴퓨터는, 상기 콘트롤러로부터 기기 식별 ID를 읽어들이고, 상기 서버에 통지하는 수단을 구비한다.
상기 서버는, 상기 제 2 컴퓨터로부터 상기 기기 식별 ID를 수신하면, 상기 기기 식별 ID에 대응하는 상기 제어 프로그램의 열람을 가능하게 하기 위한 암호키(편집용 키(650))를 상기 제 2 컴퓨터에 송신하는 수단을 구비한다.
상기 제 2 컴퓨터는, 상기 서버로부터 상기 암호키(편집용 키(650))를 수신하면, 상기 콘트롤러로부터 제어 프로그램(암호화 실행용 제어 프로그램(651a), 혹은 실행용 제어 프로그램(651))을 읽어들이고, 상기 암호키를 이용하여, 상기 제어 프로그램의 열람이 가능하도록 하는 수단을 구비한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(800)에 의하면, PLC(예를 들면, 콘트롤러(300))의 제어 프로그램을 기입하는 회사와, PLC의 제어 프로그램을 읽어내는 회사가 달라도, 제어 프로그램 해독에 필요한 편집용 키의 누설을 막아 제어 프로그램을 안전하게 보호하면서, PLC로부터의 실행용 제어 프로그램의 판독이나, PLC로의 실행용 제어 프로그램 기입의 편리성을 높게 할 수 있다.
(실시 형태 3)
본 실시 형태에서는, 실시 형태 1과 상이한 점에 대해 설명한다. 본 실시 형태에서는, 실시 형태 1에서 설명한 것과 같은 기능을 가지는 구성, 처리, 수단, 수순에 대해서는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있다.
도 11은 본 실시 형태에 따른 제어 시스템(801)의 블록 구성도이다. 도 12는 본 실시 형태에 따른 제어 시스템(801)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300, 300a, 300b)에 대해 암호화 실행용 제어 프로그램(651a)을 기입하는 수순을 나타내는 시퀀스도이다.
도 11 및 도 12를 이용하여, 본 실시 형태에 따른 제어 시스템(801)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300, 300a, 300b)에 대해 실행용 제어 프로그램(651)을 기입하는 수순에 대해 설명한다.
도 11은 실시 형태 1에서 설명한 도 1에 대응하는 도면이며, 도 1과 동일한 기능 구성에 대해서는 동일한 부호를 부여하고, 그 설명을 생략한다. 도 12는 실시 형태 1에서 설명한 도 5에 대응하는 도면이며, 도 5와 동일한 기능 구성에 대해서는 동일한 부호를 부여하고, 그 설명을 생략한다.
도 11에 나타내는 바와 같이, 제어 시스템(801)에 있어서, 실시 형태 1에서 설명한 제어 시스템(800)과 다른 점은, 복수의 콘트롤러(300a, 300b)가 통신 회선(401, 402, 403, 404)을 거쳐서 콘트롤러(300)와 접속된 구성으로 되어 있는 점이다.
도 11에 나타내는 바와 같이, 콘트롤러(300)는 통신 회선(402)을 거쳐서 콘트롤러(300a)와 접속된다. 또한, 콘트롤러(300)는 통신 회선(403)을 거쳐서 콘트롤러(300b)와 접속된다. 콘트롤러(300a)와 콘트롤러(300b)는 통신 회선(404)을 거쳐서 접속되어 있다.
콘트롤러(300a)와 콘트롤러(300b)는 콘트롤러(300)(제어 장치)에 접속되는 인접 접속 장치의 일례이다.
도 12에서는, 제어 시스템(801)에 있어서, 개발용 컴퓨터(200)가, 사용자에 의한 실행용 제어 프로그램 기입 요구를 받고, 콘트롤러(300)로의 실행용 제어 프로그램 기입 처리를 실행하고, 콘트롤러(300)에 실행용 제어 프로그램을 기입할 때까지의 처리의 흐름을 나타낸 것이다.
도 12에 나타낸 수순에 대해 설명한다.
도 12의 S101~S102는 도 5의 S101~S102와 동일한 처리이다.
개발용 컴퓨터(200)는, 콘트롤러(300)로의 실행용 제어 프로그램 기입 처리를 실행할 때, 우선 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)를 관리 서버(100)에 통지한다(S101).
관리 서버(100)는, 통지를 받으면 사용자 인증 처리 S710을 실행하고, 인증 결과(603)를 개발용 컴퓨터(200)에 대해 응답한다(S102).
도 12의 제어 프로그램 변환 처리 S720은 도 5의 제어 프로그램 변환 처리 S720과 동일한 처리이다.
개발용 컴퓨터(200)의 제어 프로그램 관리부(202)는 관리 서버(100)로부터 인증 결과(603)를 서버 통신부(203)를 경유하여 수취한다. 그리고, 제어 프로그램 관리부(202)는, 수취한 인증 결과(603)를 확인하고, 인증 허가이면, 제어 프로그램 변환 처리 S720을 실행한다.
도 13은 본 실시 형태에 따른 개발용 컴퓨터(200)의 제어 프로그램 변환 처리 S720의 흐름을 나타내는 흐름도이다.
도 12 및 도 13을 이용하여, 개발용 컴퓨터(200)의 제어 프로그램 관리부(202)에 의한 제어 프로그램 변환 처리 S720에 대해 설명한다.
도 12의 S721은 도 5 및 도 7의 S721과 동일한 처리이다.
도 12의 S721에 있어서, 개발용 컴퓨터(200)의 제어 프로그램 관리부(202)는 콘트롤러(300)에 대해 기기 식별 ID 문의 메시지(605)를 콘트롤러(300)에 대해 송신한다(S721).
콘트롤러(300)는, 기기 식별 ID 문의 메시지(605)를 수신하면, 콘트롤러(300a)와 콘트롤러(300b)에 대해, 각각 기기 식별 ID 문의 메시지(606, 608)를 송신한다(S721-1, S721-3).
콘트롤러(300a)는, 기기 식별 ID 문의 메시지(606)를 수신하면, 콘트롤러(300a)의 기기 식별 ID(607)를 콘트롤러(300)에 통지한다(S721-2). 콘트롤러(300b)는, 기기 식별 ID 문의 메시지(608)를 수신하면, 콘트롤러(300b)의 기기 식별 ID(609)를 콘트롤러(300)에 통지한다(S721-4).
콘트롤러(300)는, 콘트롤러(300a, 300b)로부터 기기 식별 ID(607, 609)를 수신하면, 수신한 기기 식별 ID(607, 609)를 기초로 콘트롤러(300)와 인접하고 있는 콘트롤러(300a, 300b)(PLC)의 정보를 인접 PLC 정보(614)로서 작성한다.
인접 PLC 정보(614)는 콘트롤러(300)(제어 장치)와 콘트롤러(300a, 300b)(인접 접속 장치)의 접속 관계를 포함하는 인접 정보의 일례이다.
콘트롤러(300)는 기기 식별 ID(604)와 인접 PLC 정보(614)를 개발용 컴퓨터(200)의 제어 프로그램 관리부(202)에 통지한다.
또, 본 실시 형태에서는, 인접 PLC 정보(614)는 콘트롤러(300)에서 작성되는 예를 나타냈다. 그러나, 개발용 컴퓨터(200)에서도, 콘트롤러(300a)의 기기 식별 ID(607)와 콘트롤러(300b)의 기기 식별 ID(609)를 취득하는 것에 의해서 작성할 수 있다.
도 13의 S726에 있어서, 개발용 컴퓨터(200)의 제어 프로그램 관리부(202)는 콘트롤러(300)로부터 기기 식별 ID(604)와 인접 PLC 정보(614)를 수신한다.
도 13의 S723은 도 7의 S723과 동일한 처리이다.
S723에 있어서, 제어 프로그램 관리부(202)는 제어 프로그램(220)을 콘트롤러(300)에서 실행 가능한 실행용 제어 프로그램(651)으로 변환한다.
도 13의 S727에 있어서, 제어 프로그램 관리부(202)는 인접 PLC 정보(614)와 기기 식별 ID(604)를 암호키 생성부(223)에 입력한다. 암호키 생성부(223)는, 인접 PLC 정보(614)와 기기 식별 ID(604)에 근거하여, 실행용 제어 프로그램(651)을 암호화하고, 암호화 실행용 제어 프로그램(651a)을 생성함과 아울러, 제어 프로그램(220)의 열람에 필요한 편집용 키(650)와 콘트롤러(300)의 실행용 제어 프로그램을 실행하기 위해서 필요한 실행용 키(652)를 생성한다.
도 13의 S725는 도 7의 S725와 동일한 처리이기 때문에 설명을 생략한다.
도 12의 S103~S104는 도 5의 S103~S104와 동일한 처리이다.
개발용 컴퓨터(200)의 콘트롤러 통신부(201)는 암호화 실행용 제어 프로그램(651a)과 실행용 키(652)를 콘트롤러(300)에 송신한다(S103, S104).
또한, 개발용 컴퓨터(200)의 서버 통신부(203)는 관리 서버(100)에 대해, 편집용 키(650)와 인접 PLC 정보(614)를 송신한다.
도 12의 S105a~S107에 있어서, 개발용 컴퓨터(200)의 서버 통신부(203)는 관리 서버(100)에 대해 편집용 키(650), 인접 PLC 정보(614), 개발 회사 정보(653), 보수 회사 정보(661)를, 통신 회선(400)을 거쳐서 송신한다.
도 12의 S105a~S107은 도 5의 S105~S107과 동일한 처리이지만, 기기 식별 ID(604) 대신에 인접 PLC 정보(614)를 관리 서버(100)에 송신하는 점이 상이하다.
관리 서버(100)의 사용자 통신부(102)는 개발용 컴퓨터(200)로부터 편집용 키(650), 인접 PLC 정보(614), 개발 회사 정보(653), 보수 회사 정보(661)를 수신한다. 관리 서버(100)는 편집용 키 등록 처리 S730에 의해서, 사용자 관리 테이블(101)에 편집용 키(650), 인접 PLC 정보(614), 개발 회사 정보(653), 보수 회사 정보(661)를 등록한다.
관리 서버(100)의 편집용 키 등록 처리 S730는 도 8에서 설명한 관리 서버(100)의 편집용 키 등록 처리 S730과 동일하지만, 기기 식별 ID(604) 대신에 인접 PLC 정보(614)를 기기 식별 ID 테이블(112)에 등록하는 점이 상이하다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(801)은, 제 1 콘트롤러(콘트롤러(300))와, 제 3 통신 회선(통신 회선(402))에 의해서 제 1 콘트롤러에 접속된 제 2 콘트롤러(콘트롤러(300a))와, 제 1 콘트롤러와의 사이에서 제어 프로그램의 판독/기입을 행하는 제 1 컴퓨터(개발용 컴퓨터(200))와, 제 2 통신 회선(통신 회선(400))에 의해서 상기 제 1 컴퓨터에 접속되는 서버(관리 서버(100))를 구비한 제어 시스템이다.
본 실시 형태에 따른 제어 시스템(801)은, 상기 제 1 컴퓨터로부터 제어 프로그램을 상기 제 1 콘트롤러에 기입할 때, 이하의 처리를 행하는 수단을 구비한다.
상기 서버는, 상기 제 1 컴퓨터를 사용하여 기입하는 사용자와 소속 회사를 인증하고, 상기 컴퓨터에 대해 기입의 허가를 판단하는 인증 수단을 구비한다.
상기 제 1 콘트롤러는, 통신 회선을 통해 접속되어 있는 제 2 콘트롤러에 관한 식별 정보를 읽어들이고, 제 1 및 제 2 콘트롤러가 인접하고 있는 것을 나타내는 인접 정보(인접 PLC 정보(614))를 작성하는 수단을 구비한다.
상기 제 1 컴퓨터는, 상기 제 1 콘트롤러로부터 상기 인접 정보를 읽어들이고, 상기 제어 프로그램의 열람을 가능하게 하기 위한 암호키(편집용 키(650))와, 상기 제어 프로그램의 실행을 가능하게 하기 위한 암호키(실행용 키(652))를 작성하는 키 생성 수단을 구비한다.
상기 제 1 컴퓨터는 상기 키 생성 수단에 의해서 생성된, 제어 프로그램의 열람과 제어 프로그램의 실행을 가능하게 하기 위한 암호키를 상기 제 1 콘트롤러에 기입하는 수단을 더 구비한다.
상기 서버는, 상기 제 1 컴퓨터의 소속 회사 정보와, 상기 인접 정보와, 상기 제어 프로그램의 열람을 가능하게 하기 위한 암호키를 보관하는 수단을 구비한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(801)에 의하면, 복수의 콘트롤러(PLC)간의 조합 및 접속 관계를 나타내는 인접 PLC 정보가 관리 서버에 등록되어 있는 인접 PLC 정보와 일치했을 때에 한하여, 제어 프로그램의 열람에 필요한 편집용 키를 취득할 수 있고, 제어 프로그램의 실행이 허가되게 되어, 제어 프로그램의 기밀성을 향상시키는 것이 가능하게 된다.
(실시 형태 4)
본 실시 형태에서는, 실시 형태 1~3과 상이한 점에 대해 설명한다. 본 실시 형태에서는, 실시 형태 1~3에서 설명한 것과 동일한 기능을 가지는 구성, 처리, 수단, 수순에 대해서는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있다.
본 실시 형태에서는, 실시 형태 3에서 설명한 제어 시스템(801)에 있어서, 보수용 컴퓨터(250)에 의해, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내고, 열람·편집 가능한 제어 프로그램(220)으로 변환할 때까지의 처리에 대해 설명한다.
도 14는 본 실시 형태에 따른 제어 시스템(801)에 있어서, 콘트롤러(300)로부터 보수용 컴퓨터(250)로 암호화 실행용 제어 프로그램(651a)을 읽어내는 수순을 나타내는 시퀀스도이다.
도 14를 이용하여, 보수용 컴퓨터(250)가, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내고, 읽어낸 암호화 실행용 제어 프로그램(651a)을 열람 가능한 제어 프로그램(220)으로 변환할 때까지의 수순에 대해 설명한다.
도 14의 S101~S102는 도 9의 S101~S102와 동일한 처리이다.
도 14의 S101에 있어서, 사용자에 의해, 보수용 컴퓨터(250)에서 콘트롤러(300)로부터의 실행용 제어 프로그램 판독 조작을 실행했을 때, 보수용 컴퓨터(250)는 사용자 ID(611), 패스워드(612), 보수 회사 정보(661)를 관리 서버(100)에 통지하고, 관리 서버(100)에서 사용자 인증 처리 S710을 실행한다.
도 14의 S201은 도 9의 S201과 동일한 처리이다.
보수용 컴퓨터(250)의 제어 프로그램 관리부(202)는, 수취한 인증 결과(603)를 확인하고, 인증 허가이면, 콘트롤러(300)에 대해 기기 식별 ID 문의 메시지(605)를 송신한다(S201).
콘트롤러(300)는, 기기 식별 ID 문의 메시지(605)를 수신하면, 콘트롤러(300a)와 콘트롤러(300b)에 대해 각각 기기 식별 ID 문의 메시지(606, 608)를 송신한다(S201-1, S201-3).
콘트롤러(300a)는, 기기 식별 ID 문의 메시지(606)을 수신하면, 콘트롤러(300a)의 기기 식별 ID(607)를 콘트롤러(300)에 통지한다(S201-2).
콘트롤러(300b)는, 기기 식별 ID 문의 메시지(608)을 수신하면, 콘트롤러(300b)의 기기 식별 ID(609)를 콘트롤러(300)에 통지한다(S201-4).
콘트롤러(300)는, 콘트롤러(300a, 300b)로부터 기기 식별 ID(607, 609)를 수신하면, 수신한 기기 식별 ID(607, 609)를 기초로 콘트롤러(300)와 인접하고 있는 콘트롤러(300a, 300b)의 정보를 인접 PLC 정보(614)로서 작성한다.
도 14의 S202a에 있어서, 콘트롤러(300)는, 콘트롤러(300)의 기기 식별 ID(604)와 함께, 인접 PLC 정보(614)를 개발용 컴퓨터(200)의 제어 프로그램 관리부(202)에 통지한다.
도 14의 S203a에 있어서, 보수용 컴퓨터(250)의 제어 프로그램 관리부(202)는 취득한 인접 PLC 정보(614)와 보수 회사 정보(661)를 관리 서버(100)에 통지한다.
관리 서버(100)는, 보수용 컴퓨터(250)로부터 인접 PLC 정보(614)와 보수 회사 정보(661)를 수신하면, 편집용 키 인증 처리 S750을 실행한다.
관리 서버(100)에 의한 편집용 키 인증 처리 S750은 도 9 및 도 10에서 설명한 편집용 키 인증 처리 S750과 동일한 처리이다. 단, 본 실시 형태에서는, 관리 서버(100)는, 기기 식별 ID(604) 대신에, 인접 PLC 정보(614)에 의해 기기 식별 ID 테이블(112)를 검색하고, 편집용 키(650)를 취득한다.
도 14의 S204~S206 및 제어 프로그램 변환 처리 S760의 처리는 도 9의 S204~S206 및 제어 프로그램 변환 처리 S760의 처리와 동일하다.
본 실시 형태에 따른 관리 서버(100)에 의한 편집용 키 인증 처리 S750에서는, 관리 서버(100)는, 인접 PLC 정보(614)와 보수 회사 정보(661)를 확인하고, 합치하는 것이 있으면 인접 PLC 정보(614)에 대응하는 편집용 키(650)를 검색하고, 얻어진 편집용 키(650)를 보수용 컴퓨터(250)에 송신한다(S204).
보수용 컴퓨터(250)는, 편집용 키(650)를 수신하면, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어낸다(S205, S206).
보수용 컴퓨터(250)는, 편집용 키(650)를 복호부(224)에 입력하여 암호화 실행용 제어 프로그램(651a)의 열람에 필요한 정보를 복호하고, 실행용 제어 프로그램(651)을 열람 가능한 제어 프로그램(220)으로 변환한다.
도 14의 제어 프로그램 변환 처리 S760은 도 9의 제어 프로그램 변환 처리 S760과 동일하기 때문에 설명을 생략한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(801)은 상기 컴퓨터(보수용 컴퓨터(250))에서 상기 제 1 콘트롤러(콘트롤러(300))로부터 제어 프로그램(220)을 읽어들일 때에 사용하는 이하의 수단을 구비한다.
상기 서버(관리 서버(100))는, 상기 컴퓨터를 사용하여 기입하는 조작을 실행하는 사용자의 사용자 ID와 소속 회사를 인증하고, 상기 컴퓨터에 대해 기입의 허가를 판단하는 인증 수단을 구비한다.
상기 제 1 콘트롤러는, 통신 회선을 통해 접속되어 있는 제 2 콘트롤러(콘트롤러(300a))에 관한 식별 정보(기기 식별 ID)를 읽어들이고, 제 1 및 제 2 콘트롤러가 인접하고 있는 것을 나타내는 인접 정보(인접 PLC 정보(614))를 작성하는 수단을 구비한다.
상기 컴퓨터는, 상기 제 1 콘트롤러로부터, 상기 인접 정보를 상기 서버에 통지하는 수단을 구비한다.
상기 서버는, 상기 컴퓨터로부터 상기 인접 정보를 수신하면, 상기 인접 정보에 대응하는 상기 제어 프로그램의 열람을 가능하게 하기 위한 암호키(편집용 키(650))를 상기 컴퓨터에 송신하는 수단을 구비한다.
상기 컴퓨터는, 상기 서버로부터 상기 암호키를 수신하면, 상기 제 1 콘트롤러로부터 제어 프로그램을 읽어들이고, 상기 암호키를 이용하여, 상기 제어 프로그램을 열람할 수 있도록 하는 수단을 구비한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(801)에 의하면, 복수의 콘트롤러(PLC)간의 조합 및 접속 관계를 나타내는 인접 PLC 정보가 관리 서버에 등록되어 있는 인접 PLC 정보와 일치했을 때에 한하여, 제어 프로그램의 열람에 필요한 편집용 키의 취득이나, 제어 프로그램의 실행이 허가되게 되어, 제어 프로그램의 기밀성을 향상시키는 것이 가능하게 된다.
본 실시 형태에 따른 제어 시스템(801)에 의하면, PLC의 제어 프로그램을 기입하는 회사와, PLC의 제어 프로그램을 읽어내는 회사가 달라도, PLC로부터의 실행용 제어 프로그램의 판독이나, PLC로의 실행용 제어 프로그램의 기입의 편리성을 높게 할 수 있다.
(실시 형태 5)
본 실시 형태에서는, 주로 실시 형태 1~4와 상이한 점에 대해 설명한다. 특히, 본 실시 형태에서는, 실시 형태 1과 상이한 점에 대해 설명한다. 본 실시 형태에서는, 실시 형태 1에서 설명한 것과 동일한 기능을 가지는 구성, 처리, 수단, 수순에 대해서는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있다.
도 15는 본 실시 형태에 따른 제어 시스템(802)의 블록 구성도이다. 도 16은 본 실시 형태에 따른 관리 서버(100)가 구비하는 기기 식별 ID 테이블(112)의 구성도이다. 도 17은 본 실시 형태에 따른 개발용 컴퓨터(200)의 상세 블록 구성도이다. 도 18은 본 실시 형태에 따른 제어 시스템(802)에 있어서, 개발용 컴퓨터(200)로부터 콘트롤러(300)에 대해 실행용 제어 프로그램(651)을 기입하는 수순을 나타내는 시퀀스도이다.
도 15~도 17은 실시 형태 1에서 설명한 도 1~도 3에 대응하고, 도 1~도 3에 기재한 기능 구성과 동일한 기능 구성에는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있는 것으로 한다. 또한, 도 18은 실시 형태 1에서 설명한 도 5에 대응하고, 도 5에 기재한 기능 구성과 동일한 기능 구성에는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있는 것으로 한다.
도 15에 나타내는 바와 같이, 관리 서버(100)는 시각 관리부(103)를 구비한다. 시각 관리부(103)는 암호키(편집용 키(650))의 유효 기간을 관리한다. 시각 관리부(103)는 통신 회선(405)을 거쳐서, 시각 관리 서버(700)(현재 시각 관리 서버)와 접속되어 있다.
도 16에 나타내는 바와 같이, 관리 서버(100)의 기기 식별 ID 테이블(112)은 기기 식별 ID(604)에 대응하는 정보로서, 편집용 키(650)에 부가하여 유효 기간 정보(670)를 구비하고 있다. 유효 기간 정보(670)는 대응하는 편집용 키(650)의 유효 기간을 나타내는 정보이다.
도 17에 나타내는 바와 같이, 제어 프로그램 관리부(202)는 실시 형태 1에서 설명한 기능 구성에 부가하여, 유효 기간 관리부(228)를 구비한다.
유효 기간 관리부(228)는 사용자가 설정한 유효 기간을 관리한다.
도 18에서는, 제어 시스템(802)에 있어서, 개발용 컴퓨터(200)가 콘트롤러(300)에 실행용 제어 프로그램 기입 처리를 실행하고 나서, 콘트롤러(300)에 실행용 제어 프로그램이 기입될 때까지의 처리의 흐름을 나타낸 것이다.
우선, 개발용 컴퓨터(200)로부터 제어 프로그램의 실행용 제어 프로그램을 기입하는 수순에 대해 도 18을 이용하여 설명한다.
도 18의 S101~S102는 도 5의 S101~S102와 동일한 처리이다.
개발용 컴퓨터(200)는, 사용자로부터 콘트롤러(300)로의 실행용 제어 프로그램 기입 요구를 접수할 때, 우선, 사용자에 의해 입력된 사용자 ID(601), 패스워드(602), 개발 회사 정보(653)를 관리 서버(100)에 통지한다(S101).
관리 서버(100)는, 통지를 받으면 사용자 인증 처리 S710을 실행하고, 인증 결과(603)를 개발용 컴퓨터(200)에 대해 응답한다(S102).
개발용 컴퓨터(200)는, 관리 서버(100)로부터 인증 결과(603)를 수취하고, 인증 결과(603)의 내용이 인증 허가이면, 유효 기한 설정 처리 S810을 실행한다.
도 19는 본 실시 형태에 따른 개발용 컴퓨터(200)의 유효 기한 설정 처리 S810의 흐름을 나타내는 흐름도이다.
도 19를 이용하여, 개발용 컴퓨터(200)의 유효 기한 설정 처리 S810에 대해 설명한다.
S811에 있어서, 실행용 프로그램 변환부(221)는 사용자 조작 접수부(222)에 유효 기간의 입력을 요구하는 메시지를 통지한다. 사용자 조작 접수부(222)는 개발용 컴퓨터(200)의 표시 화면에 유효 기간의 입력을 촉구하는 메시지(유효 기간 설정 화면)를 표시한다.
S812에 있어서, 사용자 조작 접수부(222)는 사용자에 의해 유효 기간 설정 화면에 입력된 입력값을 실행용 프로그램 변환부(221)에 통지한다. 실행용 프로그램 변환부(221)는, 입력값의 통지를 받으면, 유효 기간 관리부(228)의 설정값을 입력값으로 갱신함으로써로, 유효 기간(673)이 설정된다.
사용자 조작 접수부(222)는 편집용 키(650)의 유효 기간의 입력을 접수하는 송신측 접수부의 일례이다.
다음에, 개발용 컴퓨터(200)는 제어 프로그램 변환 처리 S720을 실행한다. 도 18의 제어 프로그램 변환 처리 S720은 도 5의 제어 프로그램 변환 처리 S720과 동일한 처리이기 때문에, 그 설명을 생략한다.
다음에, 개발용 컴퓨터(200)는 S103~S108의 처리를 실행한다. 도 18의 S103~S107의 처리는 도 5의 S103~S107의 처리와 동일한 처리이다.
제어 프로그램 변환 처리 S720이 완료되면, 개발용 컴퓨터(200)의 서버 통신부(203)는 편집용 키(650), 개발 회사 정보(653)(보수 회사 정보(661)), 기기 식별 ID(604)를 관리 서버(100)에 송신한다(S105~S107).
또한, 개발용 컴퓨터(200)의 서버 통신부(203)는 암호화 실행용 제어 프로그램(651a)과 실행용 키(652)를 콘트롤러(300)에 송신한다(S103~S104).
S108에 있어서, 개발용 컴퓨터(200)의 서버 통신부(203)는 편집용 키(650), 개발 회사 정보(653)(보수 회사 정보(661)), 기기 식별 ID(604)에 부가하여, 유효 기간(673)을 관리 서버(100)에 송신한다.
관리 서버(100)는 개발용 컴퓨터(200)로부터 편집용 키(650), 개발 회사 정보(653)(보수 회사 정보(661)), 기기 식별 ID(604), 유효 기간(673)을 수신한다. 관리 서버(100)는 개발용 컴퓨터(200)로부터 편집용 키(650), 개발 회사 정보(653)(보수 회사 정보(661)), 기기 식별 ID(604), 유효 기간(673)을 수신하면, 편집용 키 등록 처리 S770을 실행한다.
도 20은 본 실시 형태에 따른 관리 서버(100)의 편집용 키 등록 처리 S770의 흐름을 나타내는 흐름도이다.
도 20을 이용하여 관리 서버(100)의 편집용 키 등록 처리 S770에 대해 설명한다.
S771~S772에 있어서, 관리 서버(100)는, 사용자 테이블(110)에 근거하여, 로그인하고 있는 사용자 ID와, 수신한 개발 회사 정보(653)와 보수 회사 정보(661)가 대응하고 있는지 여부를 처리 장치에 의해 확인한다.
관리 서버(100)는, 사용자 ID와, 수신한 개발 회사 정보(653)와 보수 회사 정보(661)가 대응하고 있다고 판정한 경우에는, 처리를 S773으로 진행한다.
관리 서버(100)는 사용자 ID와, 수신한 개발 회사 정보(653)와 보수 회사 정보(661)가 대응하고 있지 않다고 판정한 경우에는, 처리를 종료한다.
S773에 있어서, 관리 서버(100)는 개발 회사 정보(653)와 기기 식별 ID(604)를 대응지어 소속 회사 테이블(111)에 등록한다. 이 처리는 도 8의 S731의 처리와 동일하다.
S774에 있어서, 관리 서버(100)는 보수 회사 정보(661)와 기기 식별 ID(604)를 대응지어 소속 회사 테이블(111)에 등록한다. 이 처리는 도 8의 S732의 처리와 동일하다.
S775에 있어서, 관리 서버(100)는 시각 관리 서버(700)에 대해 현재 시각 문의 메시지(671)를 송신한다(S775a). 시각 관리 서버(700)는, 관리 서버(100)로부터 현재 시각 문의 메시지(671)를 수신하면, 현재 시각(672)을 관리 서버(100)에 송신한다(S775b).
S776에 있어서, 관리 서버(100)는, 시각 관리 서버(700)로부터 취득한 현재 시각(672)에, 개발용 컴퓨터(200)로부터 수신한 유효 기간(673)을 처리 장치에 의해 가산하고, 유효 기간 정보(670)(유효 기간)으로 한다.
관리 서버(100)는, 개발용 컴퓨터(200)로부터 수신한 기기 식별 ID(604)에 대해, 개발용 컴퓨터(200)로부터 수신한 편집용 키(650)와, 산출한 유효 기간 정보(670)를 대응징어 기기 식별 ID 테이블(112)로 설정한다. 관리 서버(100)는, 기기 식별 ID 테이블(112)에, 이미 수신한 기기 식별 ID(604)의 레코드가 설정되어 있는 경우에는, 편집용 키(650)와 유효 기간 정보(670)를 갱신한다.
도 21은 본 실시 형태에 따른 관리 서버(100)의 유효 기한 확인 처리 S790의 흐름을 나타내는 흐름도이다.
관리 서버(100)는, 정기적으로 혹은 부정기적으로, 도 21에 나타내는 유효 기한 확인 처리 S790을 실행한다.
S791에 있어서, 관리 서버(100)는, 시각 관리 서버(700)에 대해 현재 시각 문의 메시지(671)를 송신하고, 시각 관리 서버(700)로부터 현재 시각(672)을 취득한다.
S792에 있어서, 관리 서버(100)는, 취득한 현재 시각(672)이, 유효 기간 정보(670)에 나타내어지는 유효 기간에 도달했는지 여부에 대해 처리 장치에 의해 판정한다.
관리 서버(100)는, 현재 시각(672)이 유효 기간 정보(670)에 나타내어지는 유효 기간에 도달해 있다고 판정한 경우(S792에서 예), 처리를 S793으로 진행한다.
S793에 있어서, 관리 서버(100)는, 현재 시각(672)이 유효 기간 정보(670)에 나타내어지는 유효 기간에 도달하고 있는 레코드의 편집용 키(650)를 무효화한다. 관리 서버(100)는, 예를 들면 기기 식별 ID 테이블(112)의 편집용 키(650)의 란에 「NULL」를 설정하는 것에 의해, 편집용 키(650)를 무효화한다.
관리 서버(100)는, 현재 시각(672)이 유효 기간 정보(670)에 나타내어지는 유효 기간에 도달하고 있지 않다고 판정한 경우(S792에서 아니오), 처리를 종료한다. 관리 서버(100)는 이 유효 기한 확인 처리 S790을, 기기 식별 ID 테이블(112)의 모든 레코드에 대해 실행한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(802)은 서버(관리 서버(100))와 제 4 통신 회선(통신 회선(405))으로 접속된 시각 관리 서버(700)를 구비하고 있다.
또한, 본 실시 형태에 따른 제어 시스템(802)은 이하의 수단을 구비한다.
상기 서버는, 시각 서버(시각 관리 서버(700))로부터 현재 시각을 취득하고, 상기 현재 시각에 상기 제 1 컴퓨터(개발용 컴퓨터(200))로부터 통지된 시간(유효 기간(673))을 가산함으로써, 상기 암호키(편집용 키(650))에 관한 유효 기간을 설정하는 수단을 구비한다.
상기 서버는, 설정된 유효 기간을 경과하면, 상기 암호키를 소거하는 수단을 구비한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(802)에 의하면, 제어 프로그램의 열람, 실행에 필요한 키에 대해 유효 기간을 제어할 수 있으므로, 네트워크 품질이 나쁘고, 제어 프로그램을 열람, 편집하는 컴퓨터를 상시 네트워크에 접속할 수 없는 환경에서, 컴퓨터의 부정 조작으로부터 제어 프로그램을 지키는데 유효한 수단이 된다.
또한, 본 실시 형태에 따른 제어 시스템(802)에 의하면, 제어 프로그램 해독에 필요한 편집용 키의 누설을 막을 수 있다.
(실시 형태 6)
본 실시 형태에서는, 주로 실시 형태 1~5와 상이한 점에 대해 설명한다. 특히, 본 실시 형태에서는, 실시 형태 2, 5와 상이한 점에 대해 설명한다. 본 실시 형태에서는, 실시 형태 2, 5에서 설명한 것과 동일한 기능을 가지는 구성, 처리, 수단, 수순에 대해서는 동일한 부호를 부여하고, 그 설명을 생략하는 경우도 있다.
도 22는 본 실시 형태에 따른 제어 시스템(802)에 있어서, 콘트롤러(300)로부터 보수용 컴퓨터(250)로 암호화 실행용 제어 프로그램(651a)을 읽어내는 수순을 나타내는 시퀀스도이다. 도 23은 본 실시 형태에 따른 관리 서버(100)의 편집용 키 인증 처리 S780의 흐름을 나타내는 흐름도이다.
본 실시 형태에서는, 실시 형태 5에서 설명한 제어 시스템(802)에 있어서, 보수용 컴퓨터(250)에 의해, 콘트롤러(300)로부터 암호화 실행용 제어 프로그램(651a)을 읽어내고, 열람·편집 가능한 제어 프로그램(220)으로 변환할 때까지의 처리에 대해 설명한다.
본 실시 형태에 따른 제어 시스템(802)은 실시 형태 5에서 설명한 제어 시스템(802)에 부가하여, 보수용 컴퓨터(250)를 구비한다.
보수용 컴퓨터(250)의 내부 구성은 실시 형태 5에서 설명한 개발용 컴퓨터(200)와 동일한 내부 구성이다.
또한, 본 실시 형태에 따른 관리 서버(100)에 기억되어 있는 기기 식별 ID 테이블(112)은 실시 형태 5의 도 16에서 설명한 기기 식별 ID 테이블(112)이다.
도 22의 S251에 있어서, 보수용 컴퓨터(250)는 관리 서버(100)에 대해 현재 시각 문의 메시지(671)를 송신한다.
도 22의 S252에 있어서, 관리 서버(100)는, 현재 시각 문의 메시지(671)를 수신하면, 현재 시각(672)을 보수용 컴퓨터(250)에 대해 송신한다.
보수용 컴퓨터(250)는, 관리 서버(100)로부터 현재 시각(672)을 수신하면, 자신의 보수용 컴퓨터(250)의 시각을 현재 시각(672)으로 맞춘다. 이것에 의해, 만일 보수용 컴퓨터(250)에서 독자적으로 시각이 변경되어 있어도, 유효 기간까지의 차분을 정확하게 제어하는 것이 가능해진다.
도 22의 S101~S102의 처리, 사용자 인증 처리 S710, 및 S201~206의 처리는 도 9의 S101~S102의 처리, 사용자 인증 처리 S710, 및 S201~206의 처리와 동일하다.
현재 시각의 설정이 완료되면, 보수용 컴퓨터(250)는 사용자 ID(611), 패스워드(612), 보수 회사 정보(661)를 관리 서버(100)에 통지한다(S101).
관리 서버(100)는 사용자 인증 처리 S710을 실행한다. 보수용 컴퓨터(250)는, 관리 서버(100)로부터 인증 결과(603)를 수신하고(S102), 인증 결과(603)가 인증 허가 응답이면, 콘트롤러(300)로부터 기기 식별 ID(604)를 취득한다(S201~S202).
보수용 컴퓨터(250)는, 기기 식별 ID(604)를 취득하면, 기기 식별 ID(604), 보수 회사 정보(661)를 관리 서버(100)에 송신한다(S203). 관리 서버(100)는, 보수용 컴퓨터(250)로부터 기기 식별 ID(604)와 보수 회사 정보(661)를 수신하면, 편집용 키 인증 처리 S780을 실행한다.
도 23은 본 실시 형태에 따른 관리 서버(100)의 편집용 키 인증 처리 S780의 흐름을 나타내는 흐름도이다.
도 23을 이용하여, 관리 서버(100)의 편집용 키 인증 처리 S780에 대해 설명한다.
S781에 있어서, 관리 서버(100)는 수신한 기기 식별 ID(604)가 기기 식별 ID 테이블(112)(도 3 참조)에 등록되어 있는지 여부를 처리 장치에 의해 확인한다.
관리 서버(100)는, 입력한 기기 식별 ID(604)가 기기 식별 ID 테이블(112)에 등록되어 있다고 확인한 경우(S781에서 예), 처리를 S782로 진행한다.
관리 서버(100)는, 수신한 기기 식별 ID(604)가 기기 식별 ID 테이블(112)에 등록되어 있지 않다고 확인한 경우(S781에서 아니오), 처리를 S787로 진행한다.
S782에 있어서, 관리 서버(100)는 수신한 보수 회사 정보(661)가, 소속 회사 테이블(111)에 등록되고, 또한 수신한 기기 식별 ID(604)에 대응하고 있는지 여부에 대해 처리 장치에 의해 판정한다.
관리 서버(100)는, 수신한 보수 회사 정보(661)가, 소속 회사 테이블(111)에 등록되고, 또한 수신한 기기 식별 ID(604)에 대응하고 있다고 확인한 경우(S782에서 예), 처리를 S783으로 진행한다.
관리 서버(100)는, 수신한 보수 회사 정보(661)가, 소속 회사 테이블(111)에 등록되어 있지 않거나, 혹은 수신한 기기 식별 ID(604)에 대응하고 있지 않는 것을 확인한 경우(S782에서 아니오), 처리를 S787로 진행한다.
S783에 있어서, 관리 서버(100)는 시각 관리 서버(700)에 대해 현재 시각 문의 메시지(671)를 송신한다(S783a). 시각 관리 서버(700)는, 관리 서버(100)로부터 현재 시각 문의 메시지(671)를 수신하면, 현재 시각(672)을 관리 서버(100)에 송신한다(S783b).
S784에 있어서, 관리 서버(100)는, 수신한 기기 식별 ID(604)에 근거하여, 기기 식별 ID 테이블(112)을 처리 장치에 의해 검색하고, 유효 기간 정보(670)를 취득한다. 관리 서버(100)는, 취득한 유효 기간 정보(670)를 확인하고, 현재 시각이 유효 기간 정보(670)에 의해 나타내어지는 유효 기간에 도달하고 있는지 여부에 대해 처리 장치에 의해 판정한다.
관리 서버(100)는, 현재 시각이 유효 기간에 도달하고 있다고 판정한 경우(S784에서 아니오), 처리를 S787로 진행한다.
관리 서버(100)는, 현재 시각이 유효 기간에 도달하고 있지 않다고 판정한 경우(S784에서 예), 처리를 S785로 진행한다.
S785에 있어서, 관리 서버(100)는, 수신한 기기 식별 ID(604)에 근거하여, 기기 식별 ID 테이블(112)을 처리 장치에 의해 검색한다. 관리 서버(100)는 기기 식별 ID(604)에 대응하는 편집용 키(650)를 기기 식별 ID 테이블(112)로부터 취득한다.
S786에 있어서, 관리 서버(100)는 취득한 편집용 키(650)를 키 인증 응답으로 설정한다.
도 22의 S204에 있어서, 관리 서버(100)는 편집용 키(650)를 설정한 키 인증 응답을 보수용 컴퓨터(250)에 송신한다.
한편, S787에 있어서, 관리 서버(100)는 키 인증 응답에 「인증 불가」를 설정한다. 즉, 관리 서버(100)는 기기 식별 ID(604)가 기기 식별 ID 테이블(112)에 존재하지 않거나, 소속 회사 테이블(111)에서 기기 식별 ID(604)와 보수 회사 정보(661)의 대응이 일치하지 않거나, 혹은, 현재 시각이 기기 식별 ID 테이블에 기억되어 있는 유효 기간에 도달하고 있는 등의 경우는 키 인증 응답에 「인증 불가」를 설정한다.
이상으로, 관리 서버(100)의 편집용 키 인증 처리 S780의 설명을 마친다.
이상과 같이, 관리 서버(100)는, 서버측 통신부(수신측 통신부)로부터 기기 식별 ID를 수신하면, 수신한 기기 식별 ID에 대응하는 유효 기간을 취득함과 아울러, 시각 관리 서버(700)로부터 현재 시각을 취득하고, 취득한 현재 시각이 유효 기간을 경과하고 있는지 여부를 처리 장치에 의해 판정한다. 관리 서버(100)는, 취득한 현재 시각이 유효 기간을 경과하고 있다고 판정한 경우에는 편집용 키를 소거하고, 취득한 현재 시각이 유효 기간을 경과하고 있지 않다고 판정한 경우에는 편집용 키를 취득한다. 관리 서버(100)는 편집용 키 취득부의 일례이다.
사용자 통신부(102)(서버측 통신부)는 관리 서버(100)(편집용 키 취득부)에 의해 취득된 편집용 키를 보수용 컴퓨터(프로그램 수신 장치)에 송신한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(802)은 상기 서버(관리 서버(100))와 제 4 통신 회선(통신 회선(405))으로 접속된 시각 관리 서버(700)를 구비한다.
또한, 본 실시 형태에 따른 제어 시스템(802)은 이하의 수단을 구비한다.
상기 제 2 컴퓨터(보수용 컴퓨터(250))는 상기 서버로부터 현재 시각을 취득하고, 상기 서버의 현재 시각과 맞추는 수단을 구비한다.
상기 서버는, 시각 관리 서버로부터 현재 시각을 취득하고, 상기 암호키(편집용 키)에 관한 유효 기간을 확인하는 수단을 구비한다.
상기 서버는, 상기 현재 시각보다 상기 유효 기간쪽이 빠르면, 상기 암호키의 송신을 허가하는 수단을 구비한다.
이상과 같이, 본 실시 형태에 따른 제어 시스템(802)에 의하면, 제어 프로그램의 열람, 실행에 필요한 키에 대해 유효 기간을 제어할 수 있으므로, 네트워크 품질이 나쁘고, 제어 프로그램을 열람, 편집하는 컴퓨터를 상시 네트워크에 접속할 수 없는 환경에서, 컴퓨터의 부정 조작으로부터 제어 프로그램을 지키는데 유효한 수단이 된다. 또한, 이 수법에 의해서도, 제어 프로그램 해독에 필요한 편집용 키의 누설을 막아, 제어 프로그램을 안전하게 보호할 수 있음과 아울러, PLC의 제어 프로그램을 기입하는 회사와, PLC의 제어 프로그램을 읽어내는 회사가 달라도, PLC로부터의 실행용 제어 프로그램의 판독이나, PLC로의 실행용 제어 프로그램 기입의 편리성을 높게 할 수 있다.
이상, 실시 형태 1~6에 대해 설명했지만, 이러한 실시 형태 중, 2개 이상을 조합하여 실시해도 상관없다. 혹은, 이들 실시 형태 중, 1개를 부분적으로 실시하여도 상관없다. 혹은, 이들 실시 형태 중, 2개 이상을 부분적으로 조합하여 실시해도 상관없다. 또, 본 발명은, 이들 실시 형태에 한정되는 것이 아니고, 필요에 따라 여러 가지의 변경이 가능하다.
상기 실시 형태 1~6의 설명에서는, 「콘트롤러 통신부」, 「제어 프로그램 관리부」, 「서버 통신부」, 「실행용 프로그램 변환부」, 「사용자 조작 접수부」, 「암호키 생성부」, 「복호부」, 「회사 관리부」가 각각 독립된 기능 블록으로 하여 개발용 컴퓨터(200)를 구성하고 있다. 그러나, 이것에 한정되는 것은 아니며, 예를 들면, 「콘트롤러 통신부」와 「서버 통신부」를 하나의 기능 블록으로 실현하고, 「실행용 프로그램 변환부」와 「암호키 생성부」를 하나의 기능 블록으로 실현하여도 좋다. 혹은, 이들 기능 블록을, 다른 어떠한 조합으로 개발용 컴퓨터(200)를 구성하여도 상관없다.
또한, 관리 서버(100), 보수용 컴퓨터(250), 콘트롤러(300)에 대해서도 마찬가지로, 기능 블록을 어떠한 조합으로 구성하여도 상관없다.
100: 관리 서버
101: 사용자 관리 테이블
102: 사용자 통신부
103: 시각 관리부
110: 사용자 테이블
111: 소속 회사 테이블
112: 기기 식별 ID 테이블
150: 사용자 ID
151: 로그인 정보
152: 패스워드
160: 사용자 ID
161: 로그인 정보
162: 패스워드
200: 개발용 컴퓨터
201: 콘트롤러 통신부
202: 제어 프로그램 관리부
203: 서버 통신부
220: 제어 프로그램
221: 실행용 프로그램 변환부
222: 사용자 조작 접수부
223: 암호키 생성부
224: 복호부
226: 회사 관리부
227: 제어 프로그램 기억부
228: 유효 기간 관리부
250: 보수용 컴퓨터
300, 300a, 300b: 콘트롤러
301: 통신 제어부
302: 실행용 제어 프로그램 보관부
303: 내부 버스
304: 기기 식별 ID 관리부
305: 제어 프로그램 실행부
306: 복호부
400, 401, 402, 403, 404: 통신 회선
500: 생산 기기
601: 사용자 ID
602: 패스워드
603: 인증 결과
604, 607, 609: 기기 식별 ID
605, 606, 608: 기기 식별 ID 문의 메시지
611: 사용자 ID
612: 패스워드
614: 인접 PLC 정보
640: 실행용 제어 프로그램 판독 메시지
650: 편집용 키
651: 실행용 제어 프로그램
651a: 암호화 실행용 제어 프로그램
652: 실행용 키
653: 개발 회사 정보
661: 보수 회사 정보
670: 유효 기간 정보
671: 현재 시각 문의 메시지
673: 유효 기간
700: 시각 관리 서버
800, 801, 802: 제어 시스템
901: LCD
902: 키보드
903: 마우스
904: FDD
905: CDD
906: 프린터
911: CPU
912: 버스
913: ROM
914: RAM
915: 통신 보드
920: HDD
921: 오퍼레이팅 시스템
922: 윈도우 시스템
923: 프로그램군
924: 파일군

Claims (13)

  1. 기기의 제어를 실행하는 제어 장치와, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치와, 인증 서버를 구비하는 제어 시스템에 있어서,
    상기 프로그램 송신 장치는,
    상기 제어 장치를 식별하는 기기 식별자를 취득하는 송신측 취득부와,
    상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 송신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신하고 또한 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호할 때에 이용하는 실행용 키와 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 송신측 통신부를 구비하고,
    상기 인증 서버는,
    상기 송신측 통신부로부터 상기 편집용 키와 상기 기기 식별자를 수신하고,
    수신한 상기 편집용 키와 상기 기기 식별자를 대응지어 기억 장치에 기억하고,
    상기 제어 장치는,
    상기 송신측 통신부에 의해 송신된 상기 실행용 키와 상기 암호화 실행용 프로그램을 수신하고, 수신한 상기 실행용 키와 상기 암호화 실행용 프로그램에 근거하여 상기 기기의 제어를 실행하는
    것을 특징으로 하는 제어 시스템.
  2. 제 1 항에 있어서,
    상기 프로그램 송신 장치는,
    사용자로부터 상기 사용자의 인증에 이용하는 인증 정보를 접수하는 송신측 접수부를 구비하고,
    상기 송신측 통신부는,
    상기 송신측 접수부가 접수한 상기 인증 정보를 상기 인증 서버에 송신하고,
    상기 인증 서버는,
    상기 송신측 통신부로부터 송신된 상기 인증 정보를 수신하고, 수신한 상기 인증 정보에 근거하여 상기 프로그램 송신 장치에 대한 액세스의 가부를 처리 장치에 의해 판정하고, 상기 프로그램 송신 장치에 대한 액세스를 허가한다고 판정한 경우에 인증 허가 정보를 상기 프로그램 송신 장치에 송신하는 인증부를 구비하고,
    상기 프로그램 송신 장치는,
    상기 인증 서버의 상기 인증부로부터 상기 인증 허가 정보를 수신한 경우에, 상기 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램과 상기 실행용 키를 상기 제어 장치에 송신하는
    것을 특징으로 하는 제어 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제어 장치로부터 상기 암호화 실행용 프로그램을 읽어내는 판독 명령을 상기 제어 장치에 송신하는 수신측 통신부를 구비한 프로그램 수신 장치를 구비하고,
    상기 제어 장치는,
    상기 수신측 통신부로부터 상기 판독 명령을 수신하면, 상기 암호화 실행용 프로그램을 상기 프로그램 수신 장치에 송신하고,
    상기 프로그램 수신 장치는,
    상기 기기 식별자를 취득하는 수신측 취득부를 구비하고,
    상기 수신측 통신부는,
    상기 수신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신하고,
    상기 인증 서버는,
    상기 수신측 통신부로부터 상기 기기 식별자를 수신하면, 수신한 상기 기기 식별자에 근거하여, 수신한 상기 기기 식별자에 대응하는 상기 편집용 키를 취득하는 편집용 키 취득부와,
    상기 편집용 키 취득부에 의해 취득된 상기 편집용 키를 상기 프로그램 수신 장치에 송신하는 서버측 통신부
    를 구비하고,
    상기 수신측 통신부는,
    상기 서버측 통신부로부터 송신된 상기 편집용 키를 수신함과 아울러, 상기 판독 명령에 근거하여 상기 제어 장치로부터 송신된 상기 암호화 실행용 프로그램을 수신하고,
    상기 프로그램 수신 장치는,
    상기 수신측 통신부가 수신한 상기 편집용 키를 이용하여, 상기 수신측 통신부가 수신한 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호한 상기 실행용 프로그램을 상기 소스 프로그램으로 변환하는 수신측 변환부를 구비하는
    것을 특징으로 하는 제어 시스템.
  4. 제 3 항에 있어서,
    상기 프로그램 수신 장치는,
    사용자로부터 상기 사용자의 인증에 이용하는 인증 정보를 접수하는 수신측 접수부를 구비하고,
    상기 수신측 통신부는,
    상기 수신측 접수부가 접수한 상기 인증 정보를 상기 인증 서버에 송신함과 아울러, 상기 판독 명령을 상기 제어 장치에 송신하고,
    상기 인증 서버는,
    상기 수신측 통신부로부터 상기 인증 정보를 수신하고, 수신한 상기 인증 정보에 근거하여 상기 프로그램 수신 장치에 대한 액세스의 가부를 처리 장치에 의해 판정하고, 상기 프로그램 수신 장치에 대한 액세스를 허가한다고 판정한 경우에 인증 허가 정보를 상기 프로그램 수신 장치에 송신하는 인증부를 구비하고,
    상기 수신측 통신부는,
    상기 인증 서버의 상기 인증부로부터 상기 인증 허가 정보를 수신한 경우에, 상기 기기 식별자를 상기 인증 서버에 송신하는
    것을 특징으로 하는 제어 시스템.
  5. 제 3 항에 있어서,
    현재의 시각을 관리하는 현재 시각 관리 서버를 구비하고,
    상기 프로그램 송신 장치는,
    상기 편집용 키의 유효 기간의 입력을 접수하는 송신측 접수부를 구비하고,
    상기 송신측 통신부는, 또한
    상기 송신측 접수부에 의해 접수된 상기 유효 기간을 상기 인증 서버에 송신하고,
    상기 인증 서버는,
    상기 송신측 통신부로부터 상기 유효 기간을 수신하면, 상기 현재 시각 관리 서버로부터 현재 시각을 취득하고, 취득한 현재 시각에 수신한 상기 유효 기간을 가산하여 유효 기간으로 하고, 산출한 상기 유효 기간과 상기 편집용 키와 상기 기기 식별자를 대응지어 기억 장치에 기억하는
    것을 특징으로 하는 제어 시스템.
  6. 제 5 항에 있어서,
    상기 인증 서버의 상기 편집용 키 취득부는,
    상기 수신측 통신부로부터 상기 기기 식별자를 수신하면, 수신한 상기 기기 식별자에 대응하는 상기 유효 기간을 취득함과 아울러, 상기 현재 시각 관리 서버로부터 현재 시각을 취득하고, 취득한 현재 시각이 상기 유효 기간을 경과하고 있는지 여부를 처리 장치에 의해 판정하고, 취득한 현재 시각이 상기 유효 기간을 경과하고 있다고 판정한 경우에는 상기 편집용 키를 소거하고, 취득한 현재 시각이 상기 유효 기간을 경과하고 있지 않다고 판정한 경우에는 상기 편집용 키를 취득하고,
    상기 서버측 통신부는,
    상기 편집용 키 취득부에 의해 취득된 상기 편집용 키를 상기 프로그램 수신 장치에 송신하는
    것을 특징으로 하는 제어 시스템.
  7. 제 1 항에 있어서,
    상기 제어 장치에 접속되는 인접 접속 장치를 구비하고,
    상기 송신측 취득부는,
    상기 기기 식별자로서, 상기 제어 장치와 상기 인접 접속 장치의 접속 관계를 포함하는 인접 정보를 취득하는
    것을 특징으로 하는 제어 시스템.
  8. 기기의 제어를 실행하는 제어 장치와, 인증 서버를 구비하는 제어 시스템에 구비되고, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치에 있어서,
    상기 제어 장치를 식별하는 기기 식별자를 취득하는 송신측 취득부와,
    상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 송신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신하고, 또한 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호 할 때에 이용하는 실행용 키와 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 송신측 통신부
    를 구비하는 것을 특징으로 하는 프로그램 송신 장치.
  9. 기기의 제어를 실행하는 제어 장치와, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치를 구비하는 제어 시스템에 구비되는 인증 서버에 있어서,
    상기 프로그램 송신 장치로부터, 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 제어 장치를 식별하는 기기 식별자를 수신하고, 수신한 상기 편집용 키와 상기 기기 식별자를 대응지어 기억 장치에 기억하는
    것을 특징으로 하는 인증 서버.
  10. 제 9 항에 있어서,
    상기 프로그램 송신 장치로부터 사용자의 인증에 이용하는 인증 정보를 수신하고, 수신한 상기 인증 정보에 근거하여 상기 프로그램 송신 장치에 대한 액세스의 가부를 처리 장치에 의해 판정하고, 상기 프로그램 송신 장치에 대한 액세스를 허가한다고 판정한 경우에 인증 허가 정보를 상기 프로그램 송신 장치에 송신하는 인증부를 구비하는
    것을 특징으로 하는 인증 서버.
  11. 기기의 제어를 실행하는 제어 장치와, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치와, 인증 서버를 구비하는 제어 시스템의 프로그램 보호 방법에 있어서,
    (1) 상기 프로그램 송신 장치의 송신측 취득부가, 상기 제어 장치를 식별하는 기기 식별자를 취득하고,
    (2) 상기 프로그램 송신 장치의 송신측 통신부가, 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 송신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신하고, 또한 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호할 때에 이용하는 실행용 키와 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하고,
    (3) 상기 인증 서버가, 상기 송신측 통신부에 의해 송신된 상기 편집용 키와 상기 기기 식별자를 수신하고, 수신한 상기 편집용 키와 상기 기기 식별자를 대응지어 기억 장치에 기억하고,
    (4) 상기 제어 장치가, 상기 송신측 통신부에 의해 송신된 상기 실행용 키와 상기 암호화 실행용 프로그램을 수신하고, 수신한 상기 실행용 키와 상기 암호화 실행용 프로그램에 근거하여 상기 기기의 제어를 실행하는
    것을 특징으로 하는 프로그램 보호 방법.
  12. 기기의 제어를 실행하는 제어 장치와, 인증 서버를 구비하는 제어 시스템에 구비되고, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치의 프로그램 송신 방법에 있어서,
    (1) 송신측 취득부가, 상기 제어 장치를 식별하는 기기 식별자를 취득하고,
    (2) 송신측 통신부가, 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 송신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신하고, 또한 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호할 때에 이용하는 실행용 키와 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는
    것을 특징으로 하는 프로그램 송신 방법.
  13. 기기의 제어를 실행하는 제어 장치와, 인증 서버를 구비하는 제어 시스템에 구비되고, 상기 제어 장치에서 실행되는 상기 기기의 제어가 기술된 소스 프로그램을 상기 제어 장치에서 실행할 수 있는 실행용 프로그램으로 변환하고, 변환한 상기 실행용 프로그램을 암호화하여 암호화 실행용 프로그램을 생성하고, 생성한 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 프로그램 송신 장치의 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체에 있어서,
    (1) 송신측 취득부가, 상기 제어 장치를 식별하는 기기 식별자를 취득하고,
    (2) 송신측 통신부가, 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호함과 아울러 복호된 상기 실행용 프로그램을 상기 소스 프로그램으로 변환할 때에 이용하는 편집용 키와 상기 송신측 취득부에 의해 취득된 상기 기기 식별자를 상기 인증 서버에 송신하고, 또한 상기 암호화 실행용 프로그램을 상기 실행용 프로그램으로 복호할 때에 이용하는 실행용 키와 상기 암호화 실행용 프로그램을 상기 제어 장치에 송신하는 처리를 컴퓨터인 상기 프로그램 송신 장치로 하여금 실행하게 하는
    것을 특징으로 하는 프로그램 송신 장치의 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020157016269A 2012-12-20 2012-12-20 제어 시스템 및 프로그램 송신 장치 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법 및 프로그램 송신 장치의 프로그램 KR101676980B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/083052 WO2014097444A1 (ja) 2012-12-20 2012-12-20 制御システム及びプログラム送信装置及び認証サーバ及びプログラム保護方法及びプログラム送信方法及びプログラム送信装置のプログラム

Publications (2)

Publication Number Publication Date
KR20150086358A KR20150086358A (ko) 2015-07-27
KR101676980B1 true KR101676980B1 (ko) 2016-11-29

Family

ID=50977823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157016269A KR101676980B1 (ko) 2012-12-20 2012-12-20 제어 시스템 및 프로그램 송신 장치 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법 및 프로그램 송신 장치의 프로그램

Country Status (7)

Country Link
US (1) US9769132B2 (ko)
JP (1) JP5836504B2 (ko)
KR (1) KR101676980B1 (ko)
CN (1) CN104871098B (ko)
DE (1) DE112012007242T5 (ko)
TW (1) TWI479287B (ko)
WO (1) WO2014097444A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5964077B2 (ja) * 2012-02-27 2016-08-03 三菱重工業株式会社 制御プログラム管理システム、及び制御プログラムの変更方法
US9369278B2 (en) * 2013-03-22 2016-06-14 Hitachi, Ltd. Method for maintenance or exchange of encryption function in storage system and storage device
CA2858215C (en) * 2013-07-29 2022-06-21 The Toronto-Dominion Bank Cloud-based electronic payment processing
JP2016126705A (ja) * 2015-01-08 2016-07-11 三菱日立パワーシステムズ株式会社 制御システム、制御方法およびプログラム
IL243025A0 (en) * 2015-12-10 2016-02-29 Shabtai Asaf Method and system for detecting a malicious attempt to reprogram a plc in scada systems
US10845788B2 (en) * 2016-02-03 2020-11-24 Mitsubishi Electric Corporatioon Control system and control unit
EP3633475A4 (en) * 2017-05-25 2020-05-13 LSIS Co., Ltd. METHOD FOR EXECUTING A CONTROL PROGRAM
US10423151B2 (en) 2017-07-07 2019-09-24 Battelle Energy Alliance, Llc Controller architecture and systems and methods for implementing the same in a networked control system
JP2019149763A (ja) * 2018-02-28 2019-09-05 オムロン株式会社 データの処理方法、制御システム、制御装置
US11368299B2 (en) 2018-12-10 2022-06-21 Marvell Asia Pte, Ltd. Self-encryption drive (SED)
JP7127585B2 (ja) * 2019-03-12 2022-08-30 オムロン株式会社 セーフティシステムおよびメンテナンス方法
JP7300866B2 (ja) * 2019-03-28 2023-06-30 オムロン株式会社 制御システム
CN111624934B (zh) * 2020-04-28 2021-04-27 郑州信大捷安信息技术股份有限公司 一种plc应用程序数据保护系统和方法
CN112182551B (zh) * 2020-12-01 2021-03-16 中国航空油料集团有限公司 Plc设备身份认证系统和plc设备身份认证方法
CN117377915A (zh) * 2021-06-08 2024-01-09 三菱电机株式会社 控制系统、可编程控制器、控制程序发送方法及控制器程序
CN114167804A (zh) * 2021-11-10 2022-03-11 汤臣智能科技(深圳)有限公司 Plc加密程序的认证方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067162A (ja) 2006-09-08 2008-03-21 Pit:Kk 制御システムおよびシステムの制御方法
JP2011086240A (ja) 2009-10-19 2011-04-28 Yokogawa Electric Corp 検証装置とこれを用いたフィールド機器ソフトウェア更新システム
JP2011165041A (ja) 2010-02-12 2011-08-25 Mitsubishi Electric Corp 制御装置及び管理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124997A (ja) 1997-06-30 1999-01-29 Hitachi Haisofuto:Kk コンピュータで作成された記録ファイルの機密保持方法及び機密保持プログラムを記録したコンピュータ読み取り可能な記録媒体
CN1206578C (zh) * 2000-03-17 2005-06-15 迪吉多电子股份有限公司 控制用服务器装置、控制用终端装置及控制系统
JP2004280653A (ja) 2003-03-18 2004-10-07 Toshiba Mach Co Ltd プログラマブル・ロジック・コントローラのデータ更新方法
KR100965437B1 (ko) * 2003-06-05 2010-06-24 인터트러스트 테크놀로지즈 코포레이션 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
US6799080B1 (en) * 2003-06-12 2004-09-28 The Boc Group, Inc. Configurable PLC and SCADA-based control system
JP3833652B2 (ja) 2003-12-17 2006-10-18 株式会社エヌ・エス・アイ ネットワークシステム、サーバ装置、および認証方法
JP4587688B2 (ja) 2004-03-26 2010-11-24 東芝Itサービス株式会社 暗号鍵管理サーバ、暗号鍵管理プログラム、暗号鍵取得端末、暗号鍵取得プログラム、暗号鍵管理システム及び暗号鍵管理方法
JP4501781B2 (ja) 2005-05-26 2010-07-14 パナソニック電工株式会社 プログラマブルコントローラ
JP4791193B2 (ja) * 2006-01-26 2011-10-12 京セラ株式会社 情報処理装置、携帯端末装置及び情報処理実行制御方法
CN100507775C (zh) 2006-03-13 2009-07-01 富士电机系统株式会社 可编程控制器的编程设备
JP2008065678A (ja) * 2006-09-08 2008-03-21 Omron Corp 機器の制御システム、制御装置およびプログラムの保護方法
JP4715698B2 (ja) 2006-09-26 2011-07-06 富士電機システムズ株式会社 プログラマブルコントローラのプログラミング装置、及び、プログラマブルコントローラシステム
JP2008123147A (ja) 2006-11-10 2008-05-29 Meidensha Corp 電子制御装置のリモート書き換え方式
US8793193B2 (en) * 2008-09-09 2014-07-29 Adobe Systems Incorporated Digital rights management distribution system
JP5293284B2 (ja) * 2009-03-09 2013-09-18 沖電気工業株式会社 通信方法、メッシュ型ネットワークシステム及び通信端末
JP5483944B2 (ja) * 2009-07-24 2014-05-07 キヤノン株式会社 ライセンス管理システム、サーバ装置、端末装置及びそれらの処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067162A (ja) 2006-09-08 2008-03-21 Pit:Kk 制御システムおよびシステムの制御方法
JP2011086240A (ja) 2009-10-19 2011-04-28 Yokogawa Electric Corp 検証装置とこれを用いたフィールド機器ソフトウェア更新システム
JP2011165041A (ja) 2010-02-12 2011-08-25 Mitsubishi Electric Corp 制御装置及び管理装置

Also Published As

Publication number Publication date
CN104871098A (zh) 2015-08-26
US20150271161A1 (en) 2015-09-24
TW201426226A (zh) 2014-07-01
JP5836504B2 (ja) 2015-12-24
WO2014097444A1 (ja) 2014-06-26
KR20150086358A (ko) 2015-07-27
DE112012007242T5 (de) 2016-01-14
JPWO2014097444A1 (ja) 2017-01-12
CN104871098B (zh) 2017-06-16
TWI479287B (zh) 2015-04-01
US9769132B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
KR101676980B1 (ko) 제어 시스템 및 프로그램 송신 장치 및 인증 서버 및 프로그램 보호 방법 및 프로그램 송신 방법 및 프로그램 송신 장치의 프로그램
JP4526574B2 (ja) 暗号データ管理システム、および暗号データ管理方法
US8260714B2 (en) Terminal apparatus and system thereof
CN101689989A (zh) 创建和确认密码保护文档
KR20060031628A (ko) 로그인 시스템 및 방법
JP2017225054A (ja) プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム
TWI502397B (zh) 文件授權管理系統、終端裝置、文件授權管理辦法以及計算機可讀記錄媒體
CN107408185A (zh) 输出装置、程序、输出系统和输出方法
KR101809974B1 (ko) 다중 사용자의 인증요소를 조합하여 보안키를 생성하는 보안인증시스템 및 보안인증방법
CN106533693B (zh) 轨道车辆监控检修系统的接入方法和装置
KR100810368B1 (ko) 그룹 내 문서에 대한 유출 방지 및 접근 제어 시스템
CN101743714A (zh) 更新和确认密码保护文档
CN111586021B (zh) 一种远程办公业务授权方法、终端及系统
KR101430861B1 (ko) 안전성을 지닌 데이터 공유시스템 및 수행방법
CN101510238B (zh) 一种文档库安全访问方法及系统
CN108023732A (zh) 一种数据保护方法、装置、设备和存储介质
JP2017183930A (ja) サーバ管理システム、サーバ装置、サーバ管理方法、及びプログラム
WO2018216991A1 (ko) 다중 사용자의 인증요소를 조합하여 보안키를 생성하는 보안인증방법
CN101833615A (zh) 基于身份联合的数字资源权限控制方法
CN100568366C (zh) 内容再现装置
CN101833614A (zh) 按件保护的数字资源权限控制方法
JP6461837B2 (ja) 情報処理装置、システム、プログラム及び方法
AU2018336213B2 (en) Information processing apparatus, protection processing apparatus and use terminal
CN104239810B (zh) 一种基于遥控器的加密解密方法及装置
JP2008294734A (ja) コンテンツ管理システム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant