KR20080043308A - 프로그램 작성 지원 장치, 프로그램 작성 지원 방법과 그방법을 컴퓨터에 실행시키는 프로그램 및 그것을 기록한기록 매체 - Google Patents

프로그램 작성 지원 장치, 프로그램 작성 지원 방법과 그방법을 컴퓨터에 실행시키는 프로그램 및 그것을 기록한기록 매체 Download PDF

Info

Publication number
KR20080043308A
KR20080043308A KR1020087003814A KR20087003814A KR20080043308A KR 20080043308 A KR20080043308 A KR 20080043308A KR 1020087003814 A KR1020087003814 A KR 1020087003814A KR 20087003814 A KR20087003814 A KR 20087003814A KR 20080043308 A KR20080043308 A KR 20080043308A
Authority
KR
South Korea
Prior art keywords
label
shared
control
program
cpu
Prior art date
Application number
KR1020087003814A
Other languages
English (en)
Other versions
KR100929948B1 (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 KR20080043308A publication Critical patent/KR20080043308A/ko
Application granted granted Critical
Publication of KR100929948B1 publication Critical patent/KR100929948B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • G05B19/052Linking several PLC's
    • 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/10Plc systems
    • G05B2219/12Plc mp multi processor system
    • G05B2219/1209Exchange control, I-O data to other plc, individually, without host
    • 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/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15118Shared memory

Abstract

제어 시스템에 있어서 각 PLC간이나 멀티 CPU간에 동일한 라벨명을 사용한 프로그램 작성을 가능하게 하여, 디바이스의 할당 작업과 라벨의 디바이스로의 관련지음 작업을 간략화할 수 있는 프로그램 작성 지원 장치를 얻는 것이다. 각각의 제어 장치의 제어 프로그램 중에서, 복수의 제어 장치간에 공유하는 메모리에 대응하는 디바이스에 관련지어지는 공유 라벨을 추출하고, 공유 라벨에 대해 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를, 제어 프로그램을 참조하여 판정하여 공유 라벨 쓰기/읽기 정보를 생성하고, 이 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치가 쓰는 공유 라벨을 제어 장치마다 분류하고, 이 분류마다 공유 라벨과 디바이스의 어드레스를 관련짓는 라벨 디바이스 관련지음 처리부를 구비한다.

Description

프로그램 작성 지원 장치, 프로그램 작성 지원 방법과 그 방법을 컴퓨터에 실행시키는 프로그램 및 그것을 기록한 기록 매체{PROGRAM CREATION SUPPORTING DEVICE, PROGRAM CREATION SUPPORTING METHOD, PROGRAM FOR EXECUTING THE METHOD BY A COMPUTER, AND RECORDING MEDIUM INCLUDING THE PROGRAM RECORDED THEREIN}
본 발명은 복수의 제어 장치로 이루어진 제어 시스템 각각의 제어 장치의 제어 프로그램의 작성을 지원하는 프로그램 작성 지원 장치, 프로그램 작성 지원 방법과 그 방법을 컴퓨터에 실행시키는 프로그램 및 그것을 기록한 기록 매체에 관한 것이다.
종래부터 가공기나 조립기 등의 장치를 제어하기 위해서, 프로그래머블 컨트롤러(programmable controller, 이하 PLC라고 함)나 모션 컨트롤러(motion controller, 이하 MC라고 함), HMI(Human Machine Interface ; 표시기나 SCADA(Supervisory Control And Data Acquisition))가 사용되고 있다. 또, 최근에는 1개 장치의 제어를 행하는 경우 이외에, 복수대의 장치를 사용하여 제조 라인을 구성하는 경우 등에, 복수대의 PLC를 사용한 제어 시스템이 구축되는 경우가 있다. 이와 같은 복수대의 PLC를 사용하여 구축되는 제어 시스템에는 (1) 1대의 CPU(Central Processing Unit) 유닛과 1대의 네트워크 유닛을 갖는 PLC가 네트워크 를 통하여 복수 접속되는 형식의 링크(link)형의 제어 시스템과; (2) 1대의 베이스 유닛상에 CPU 유닛을 복수 장착하고, 각각의 CPU 유닛이 버스(bus)를 통하여 접속되어 PLC를 구성하는 멀티 CPU형의 제어 시스템인 2개의 형식이 있다.
(1) 링크형의 제어 시스템
링크형의 제어 시스템에서는 상술한 바와 같이, 복수대의 PLC간에 데이터의 교환이 필요하게 되고, 이를 실현하기 위해서, PLC간을 FA(Factory Automation) 네트워크로 접속하여 데이터의 교환을 행하고 있다. 이와 같은 링크형의 제어 시스템인 경우에는 서로의 PLC간에서의 데이터 교환을 링크 디바이스를 통하여 행하고 있다. 도 1A는 링크형 제어 시스템 구성의 일례와, 그 링크 디바이스를 모식적으로 나타내는 도면이고, 도 1B는 도 1A의 제어 시스템의 PLC에 있어서 링크 디바이스 내용의 일례를 나타내는 도면이다. 이 제어 시스템(500)은 CPU 유닛(502)과 네트워크 유닛(503)을 갖는 PLC 501-1 ~ 501-4가 FA 네트워크(504)를 통하여 서로 접속된 구성을 갖는다. 여기서, 1개의 PLC를 국(局)이라고 부르기로 하고, PLC 501-1 ~ 501-4를 각각 국 1 ~ 국 4라고 부르기로 한다. CPU 유닛(502)에는 링크 디바이스가 마련되어 있고, 이 링크 디바이스를 통하여 각 PLC 501-1 ~ 501-4 사이에서의 데이터 교환을 행한다. 이 링크 디바이스는 주기적으로 타국(他局)의 디바이스 값이 자국(自局)의 디바이스에 카피(copy)되는 것으로서, FA 네트워크(504)에 접속된 PLC 501-1 ~ 501-4 사이에서의 공유 메모리로서 취급할 수 있는 것에 상당하는 기능을 갖는 것이다.
도 1B에 나타나는 바와 같이, 링크 디바이스(510)는 네트워크로 1개의 할당 을 행하고, 동일한 할당 설정이 각 국의 CPU(502)에서 사용되나, 링크 디바이스(510)의 할당시에는 1개의 국이 쓰는 링크 디바이스(510)는 1개소(箇所)에 연속적으로 집중하여 할당하는 사양으로 되어 있다. 이것은 주기적으로 타국의 디바이스 값이 자국의 링크 디바이스(510)에 카피되는 경우에 있어서, 1회의 통신내에 복수의 데이터(1개소에 모아서 격납된 디바이스 값)를 일괄하여 송신하는 것에 의해, 국간에서 복수의 데이터 전송을 효율적으로 행하도록 하기 위함이다(예를 들어, 특허 문헌 1 참조).
예를 들어, 각 국의 링크 디바이스(510)는 어드레스 「B00 ~ B0F」의 영역(이하, 블록 1이라고 함)에 국 1의 디바이스 값이 써지고, 어드레스 「B10 ~ B1F」의 영역(이하, 블록 2라고 함)에 국 2의 디바이스 값이 써지고, 어드레스 「B20 ~ B2F」의 영역(이하, 블록 3이라고 함)에 국 3의 디바이스 값이 써지고, 어드레스 「B30 ~ B3F」의 영역(이하, 블록 4라고 함)에 국 4의 어드레스 값이 써진다. 단, 쓰기 국(write station)에 대응하는 국의 영역에는 자국만 쓸 수 있고, 다른 국의 영역은 참조하는 것밖에 할 수 없다. 예를 들어, 국 1의 링크 디바이스(510)에서는 블록 1에는 국 1 자신이 쓸 수 있으나, 블록 2은 국 2이 쓴 디바이스 값이므로, 국 1은 참조만 가능하다. 또, 블록 3, 4에 대해서도 각각 국 3, 4가 쓴 디바이스 값이므로 참조만 가능하다. 그리고, 국 1은 블록 1에 자국의 디바이스 값이 한꺼번에(collectively) 격납되어 있기 때문에, 이 디바이스 값을 한꺼번에 주기적으로 타국으로 송신한다.
(2) 멀티 CPU형의 제어 시스템
다음에, 멀티 CPU형의 제어 시스템에 대해서 설명한다. 1개 장치의 제어에 복수대의 PLC를 사용할 때에는 통상 1대의 PLC에 1개의 CPU가 구비되어 있으나, 그 대신에 1대의 PLC를 멀티 CPU 구성으로 하여 1대의 PLC로 장치를 일괄하여 제어하는 경우도 있다. 동양(同樣)으로, 복수대의 장치를 사용하여 제조 라인을 구성할 때에도 통상 1대의 PLC에 1개의 CPU가 구비되어 있어 복수대의 PLC를 사용하여 제어하고 있으나, 그 대신에 1대의 PLC를 멀티 CPU 구성으로 하여 1대의 PLC로 복수대의 장치를 일괄하여 제어하는 경우도 있다(예를 들어, 비특허 문헌 1 참조). 이와 같은 멀티 CPU 구성의 PLC를 갖는 제어 시스템을 본 명세서에서는 멀티 CPU형의 제어 시스템이라고 부른다.
도 2는 멀티 CPU형 제어 시스템의 구성을 모식적으로 나타내는 도면이다. 이 멀티 CPU형의 제어 시스템(600)은 베이스 유닛(601)상에 CPU 유닛(602-1 ~ 602-4)이 복수대 장착된 구성을 갖고 있다. 베이스 유닛(601)에는 버스(603)가 마련되어 있고, 각 CPU 유닛(602-1 ~ 602-4) 사이를 접속하고 있다. 이와 같은 멀티 CPU형의 제어 시스템(600)인 경우에는 서로의 CPU 유닛(602-1 ~ 602-4)간에서의 데이터 교환을 공유 리프레쉬(refresh) 디바이스를 통하여 행하고 있다.
도 3A는 멀티 CPU형 제어 시스템의 공유 리프레쉬 디바이스를 모식적으로 나타내는 도면이고, 도 3B는 도 3A의 제어 시스템의 PLC에 있어서 공유 리프레쉬 디바이스 설정의 일례를 나타내는 도면이다. 여기서는 멀티 CPU형의 제어 시스템이 2개의 CPU 유닛(602-1, 602-2)으로 이루어진 경우를 예시하고 있다. 각 CPU 유닛(602-1, 602-2)에는 공유 리프레쉬 디바이스가 마련되어 있다. 이 공유 리프레쉬 디바이스는 주기적으로 타(他)CPU의 디바이스 값이 자(自)CPU의 디바이스에 카피되는 것으로서, 버스(603)를 통하여 접속된 CPU 유닛(602-1, 602-2)간에 공유 메모리로서 취급할 수 있는 것에 상당하는 기능을 갖는다. 또한, 주기적으로 타CPU 유닛의 디바이스 값이 자CPU 유닛의 디바이스에 카피되는 기능을 멀티 CPU 자동 리프레쉬 기능이라고 한다.
도 3B의 공유 리프레쉬 디바이스의 설정(610)에 나타나는 바와 같이, 리프레쉬원(refresh source) CPU가 CPU 유닛(602-1)인 경우에, 그 멀티 CPU 자동 리프레쉬 기능으로서, CPU 유닛(602-1)의 디바이스 값을 쓰는 선두 어드레스가 「D00」으로 설정되고, CPU 유닛(602-2)의 디바이스 값을 쓰는 선두 어드레스가 「D10」로 설정되어 있다. 또, 리프레쉬원의 CPU가 CPU 유닛(602-2)인 경우에, 그 멀티 CPU 자동 리프레쉬 기능으로서, CPU 유닛(602-1)의 디바이스 값을 쓰는 선두 어드레스가 「D10」으로 설정되고, CPU 유닛(602-2)의 디바이스 값을 쓰는 선두 어드레스가 「D00」으로 설정되어 있다. 단, 이 때의 디바이스 값의 점수는 16이라고 한다.
이와 같이 멀티 CPU 자동 리프레쉬 기능이 설정되면, 도 3A에 나타나는 바와 같이, CPU 유닛(602-1)의 어드레스 「D00 ~ D0F」까지가 CPU 유닛(602-1) 자신이 쓰는 영역으로 되어, CPU 유닛(602-1)의 어드레스 「D10 ~ D1F」까지가 CPU 유닛(602-2)의 어드레스 「D00 ~ D0F」의 디바이스 값이 써진 것이고, 여기는 참조만 가능하게 된다. 동양으로, CPU 유닛(602-2)의 어드레스 「D00 ~ D0F」까지가 CPU 유닛(602-2) 자신이 쓰는 영역으로 되어, CPU 유닛(602-2)의 어드레스 「D10 ~ D1F」까지가 CPU 유닛(602-1)의 어드레스 「D00 ~ D0F」의 디바이스 값이 써진 것이 고, 여기는 참조만 가능하게 된다.
또, 도 3A ~ 도 3B에 나타나는 바와 같이, 멀티 CPU 자동 리프레쉬 기능은 공유 리프레쉬 디바이스의 할당시에는 1개의 CPU가 쓰는 디바이스 값은 1개소에 연속적으로 집중하여 할당하는 사양으로 되어 있다. 이것은 주기적으로 타CPU 유닛의 디바이스 값이 자CPU 유닛의 공유 리프레쉬 디바이스에 카피되는 경우에 있어서, 1회의 통신내에 복수의 데이터(1개소에 한꺼번에 격납된 디바이스 값)를 일괄하여 송신하는 것에 의해, CPU 유닛 사이에서 복수의 데이터 전송을 효율적으로 행하도록 하기 위함이다.
이상이 링크형 제어 시스템과 멀티 CPU형 제어 시스템의 개략이다. 그런데, 가공기나 조립기 등의 장치를 제어하기 위해 사용되는 PLC나 MC의 제어 프로그램이나, HMI의 화면 프로그램은 종래부터 디바이스의 어드레스에 의해 기술하는 방식이 일반적이었다. 도 4는 종래의 제어 프로그램의 일례를 나타내는 도면이다. 여기에는 래더 프로그램(ladder program)으로 기술된 제어 프로그램(701)과, 제어 프로그램에 사용되는 디바이스 데이터가 써진 디바이스 테이블(702)이 나타나 있다. 래더 프로그램은 제어 프로그램(701)에 나타나는 바와 같이 접점 기호(711)와 코일 기호(712)에 의해서 기술된다. 예를 들어, 상술한 링크형 제어 시스템의 제어 프로그램을 기술할 때에는 PLC간의 데이터 교환에 관한 부분에 대해서는 링크 디바이스인 「B0」을 사용하여 프로그램을 기술하거나, 상술한 멀티 CPU형 제어 시스템의 제어 프로그램을 기술할 때에는 CPU간의 데이터 교환에 관한 부분에 대해서는 공유 리프레쉬 디바이스인 「D0」을 사용하여 프로그램을 기술한다.
종래에는 도 4와 같이 디바이스의 어드레스에 의해 기술하는 방식이 일반적이었던 제어 프로그램이나 화면 프로그램도, 최근에는 라벨명을 사용하여 기술하고, 라벨명과 디바이스의 어드레스의 관련지음을 별도로 행하는 방식도 일반화하고 있다. 도 5는 라벨을 사용한 제어 프로그램의 일례를 나타내는 도면이다. 이 도 5의 좌측에 나타내지는 개발 툴(tool)내에는 제어 프로그램(701)과, 디바이스 테이블(702)과, 디바이스와 라벨을 관련짓는 라벨 디바이스 관련지음 테이블(703)이 나타나 있다. 즉, 제어 프로그램(701)이 라벨을 사용하여 기술되고, 라벨 디바이스 관련지음 테이블(703)에서 미리 사용 가능한 디바이스와 라벨이 대응지어져 있고, 컴파일(compile)시에 라벨을 디바이스로 변환하도록 하고 있다. 변환후에는 도 5의 우측에 나타나는 바와 같이, 제어 프로그램(701)은 디바이스를 사용하여 기술된다.
라벨명은 BOOL나 WORD라고 하는 데이터형을 갖고 있기 때문에, 라벨명을 디바이스에 관련지을 때에는 BOOL형의 라벨명은 BOOL형의 디바이스에만 관련지으면 되고, 어느 디바이스의 어느 어드레스에 관련지어야 한다고 하는 제약이 없다. 또, 라벨명에는 데이터의 내용을 알 수 있는 명칭을 부여할 수 있으므로, 디바이스로 제어 프로그램을 기술하는 경우에 비해 프로그램의 가독성(可讀性)이 좋다. 이러한 점에 있어서, 라벨명을 사용한 제어 프로그램의 작성은 종래의 디바이스 어드레스에 의한 것에 비해 제어 프로그램 작성의 효율화를 도모할 수 있다.
그런데, 상술한 서로의 PLC(501)간에서의 데이터 교환을 링크 디바이스를 통하여 행하는 링크형의 제어 시스템(500)에 있어서, 각 PLC(501)의 프로그램을 라벨명에 의해 기술할 때에는 PLC(501)간에서 교환되는 데이터에 대한 라벨명은 각 PLC(501)간에 동일한 라벨명을 사용하는 것이 바람직하다. 이것은 공유 리프레쉬 디바이스를 통하여 CPU 유닛(602)간에 데이터의 교환을 행하는 멀티 CPU형의 제어 시스템(600)에서도 동양이다.
링크형의 제어 시스템(500)에 있어서, 라벨명은 각 PLC(501) 단위로 개별적으로 관리되기 때문에, PLC(501)간에 교환되는 데이터에 대해 동일한 라벨명을 사용하려고 하면, 각 PLC(501)의 제어 프로그램을 작성하는 담당자끼리가 미리 동일한 라벨명을 사용하는“합의(agree)"를 할 필요가 있다. 이것은 공유 리프레쉬 디바이스를 통하여 CPU 유닛(602)간에 데이터의 교환을 행하는 멀티 CPU형의 제어 시스템(600)에서도 동양이다.
복수의 PLC(501)에서 동일한 라벨명을 확실하게 사용하기 위해서는 담당자끼리의 “합의"만으로는 연락의 엇갈림 등에 의해 미스가 발생할 가능성이 있다. 이것을 해결하기 위해서, 각 PLC(501)간에 동일한 라벨명을 사용하기 위한 기술로서, 예를 들어 각 PLC(501)의 프로그램을 작성하는 툴간에 라벨명을 공유하는 것이 제안되고 있다(예를 들어, 특허 문헌 2 참조).
[특허 문헌 1] : 일본 특개평 6-311202호 공보
[특허 문헌 2] : 국제공개 제02/042853호 팜플렛
[특허 문헌 3] : 일본 특개 2003-15705호 공보
[비특허 문헌 1] : Q 대응 MELSECNET/H 네트워크 시스템 미츠비시 범용 시퀀서 MELSEC-Q, [online], 미츠비시 전기 주식회사, 2005년 10월, [2006년 1월 20일 검색], 인터넷,
<URL:http://wwwf3.mitsubishielectric.co.jp/members/o_manual/plc/sh080026/sh080026k.pdf>
그러나, PLC간에 교환되는 데이터나 CPU간에 교환되는 데이터에 대해, 비록 동일한 라벨명을 사용하고 있었다고 하더라도, 그들 라벨은 링크형 제어 시스템의 링크 디바이스나 멀티 CPU형 제어 시스템의 공유 리프레쉬 디바이스에 관련지을 필요가 있어, 이 관련지음 작업이 번잡해진다고 하는 문제점이 있었다.
링크형의 제어 시스템으로 이 문제점을 구체적으로 설명하면, 링크 디바이스는 네트워크로 1개의 할당을 행하고, 동일한 할당 설정을 각 국의 PLC에서 사용한다. 이 때, 1개의 국이 쓰는 링크 디바이스는 1개소에 연속적으로 집중하여 할당할 필요가 있다. 따라서, 라벨을 링크 디바이스에 관련지을 때에는 그 라벨에 관하여 어느 국이 쓰는 데이터인지를 고려하여 라벨을 링크 디바이스에 관련지을 필요가 있다. 예를 들어 도 1A에서, 국 1이 쓰는 데이터로서 사용되고 있는 라벨은 국 1이 쓰는 링크 디바이스에밖에 관련지을 수 없다. 그뿐만 아니라, 링크 디바이스의 할당을 행할 때에는 국 1이 쓰는 데이터로서 사용되고 있는 라벨의 모든 점수를 열거하고, 그것들을 1개소에 연속적으로 집중하여 링크 디바이스의 할당을 실시할 필요가 있다. 즉, 모처럼 라벨을 사용하여 프로그래밍을 효율화하고 있음에도 불구하고, 링크 디바이스 할당을 고려하면서 라벨을 링크 디바이스에 관련짓는 작업 및 라벨의 모든 점수를 고려하면서 링크 디바이스 할당을 행하는 작업이 새롭게 발생되기 때문에, 종래와 같이 디바이스를 사용하여 프로그래밍을 실시한 경우에 비해 전체적인 효율화를 도모할 수 없다고 하는 문제점이 있었다.
도 6은 링크형의 제어 시스템에 있어서 라벨의 할당과 링크 디바이스로의 할당의 일례를 나타내는 도면이다. 이 도 6의 예에서는 국 1이 쓰는 데이터로서 사용되고 있는 라벨은 개시 지시를 나타내는 「ProcStart」와 긴급 정지를 나타내는 「EmStop」이고, 링크 디바이스 할당시에는 국 1이 쓰는 링크 디바이스로서 적어도 2 점은 확보할 필요가 있다. 또, 국 2이 쓰는 데이터로서 사용되고 있는 라벨은 개시 응답을 나타내는 「StartAck」와, 처리 종료를 나타내는 「complete」와, 에러 발생을 나타내는 「Error」이고, 링크 디바이스 할당시에는 국 2이 쓰는 링크 디바이스로서 적어도 3점은 확보할 필요가 있다. 이와 같은 고려를 하면서 링크 디바이스의 할당을 행할 필요가 있었다.
또, 국 1이 쓰는 데이터로서 사용되고 있는 라벨 「ProcStart」와 「EmStop」는 국 1이 쓰는 링크 디바이스로서 할당된 어드레스 「B00 ~ B0F」에 한꺼번에 관련지을 필요가 있고, 국 2이 쓰는 데이터로서 사용되고 있는 라벨 「StartAck」과 「complete」와 「Error」는 국 2이 쓰는 링크 디바이스로서 할당된 어드레스 「B10 ~ B1F」에 한꺼번에 관련지을 필요가 있다. 이와 같은 고려를 하면서, 라벨의 링크 디바이스로의 관련지음을, 국 1과 국 2 각각의 라벨의 디바이스로의 관련지음에 있어서 행할 필요가 있었다.
다음에, 멀티 CPU형의 제어 시스템으로 상기의 문제점을 구체적으로 설명하면, 공유 리프레쉬 디바이스는 공유 리프레쉬 디바이스의 할당시에는 1개의 CPU가 쓰는 공유 리프레쉬 디바이스는 1개소에 연속적으로 집중하여 할당할 필요가 있다. 따라서, 라벨을 공유 리프레쉬 디바이스에 관련지을 때에는 그 라벨에 관하여 어느 CPU가 쓰는 데이터인지를 고려하여 라벨을 공유 리프레쉬 디바이스에 관련지을 필요가 있다. 예를 들어 도 3A에서, CPU 유닛(602-1)이 쓰는 데이터로서 사용되고 있는 라벨은 CPU 유닛(602-1)이 쓰는 공유 리프레쉬 디바이스 밖에 관련지을 수 없다. 그뿐만 아니라, 공유 리프레쉬 디바이스의 할당을 행할 때에는 CPU 유닛(602-1)이 쓰는 데이터로서 사용되고 있는 라벨의 모든 점수를 열거하고, 그것들을 1개소에 연속적으로 집중하여 공유 리프레쉬 디바이스의 할당을 실시할 필요가 있다. 즉, 모처럼 라벨을 사용하여 프로그래밍을 효율화하고 있음에도 불구하고, 공유 리프레쉬 디바이스 할당을 고려하면서 라벨을 공유 리프레쉬 디바이스에 관련짓는 작업 및 라벨의 모든 점수를 고려하면서 공유 리프레쉬 디바이스 할당을 행하는 작업이 새롭게 발생하기 때문에, 종래와 같이 디바이스를 사용하여 프로그래밍을 행한 경우에 비해서 전체적인 효율화를 도모할 수 없다고 하는 과제가 있다.
도 7은 멀티 CPU형 제어 시스템에 있어서 라벨의 할당과, 공유 리프레쉬 디바이스로의 할당의 일례를 나타내는 도면이다. 이 도 7의 예에서는 CPU 유닛(602-1)이 쓰는 데이터로서 사용되고 있는 라벨은 준비 지시를 나타내는 「ProcReady」와 개시 지시를 나타내는 「ProcStart」이고, 공유 리프레쉬 디바이스 할당시에는 CPU 유닛(602-1)이 쓰는 공유 리프레쉬 디바이스로서 적어도 2 점은 확보할 필요가 있다. 또, CPU 유닛(602-2)이 쓰는 데이터로서 사용되고 있는 라벨은 준비 OK를 나타내는 「ReadyOK」와, 개시 응답을 나타내는 「StartAck」과, 처리 종료를 나타내는 「complete」이고, 공유 리프레쉬 디바이스 할당시에는 CPU 유닛(602-2)이 쓰는 공유 리프레쉬 디바이스로서 적어도 3점은 확보할 필요가 있다. 이와 같은 고려를 하면서 공유 리프레쉬 디바이스의 할당을 행할 필요가 있었다.
또, CPU 유닛(602-1)에서 라벨의 디바이스로의 관련지음에 있어서는 CPU 유닛(602-1)이 쓰는 데이터로서 사용되고 있는 라벨 「ProcReady」와 「ProcStart」는 CPU 유닛(602-1)이 쓰는 공유 리프레쉬 디바이스로서 할당된 어드레스 「D00 ~ D0F」에 관련지을 필요가 있고, CPU 유닛(602-2)이 쓰는 데이터로서 사용되고 있는 라벨 「ReadyOK」와 「StartAck」과 「complete」는 CPU 유닛(602-2)이 쓰는 공유 리프레쉬 디바이스로서 할당된 어드레스 「D10 ~ D1F」에 관련지을 필요가 있다. 또한, CPU 유닛(602-2)에 있어서 라벨의 디바이스로의 관련지음에 있어서는 CPU 유닛(602-1)이 쓰는 데이터로서 사용되고 있는 라벨 「ProcReady」와 「ProcStart」는 CPU 유닛(602-1)이 쓰는 공유 리프레쉬 디바이스로서 할당된 어드레스 「D10 ~ D1F」에 관련지을 필요가 있고, CPU 유닛(602-2)이 쓰는 데이터로서 사용되고 있는 라벨 「ReadyOK」와 「StartAck」과 「complete」는 CPU 유닛(602-2)이 쓰는 공유 리프레쉬 디바이스로서 할당된 어드레스 「D00 ~ D0F」에 관련지을 필요가 있다. 이들과 같은 고려를 하면서, 라벨의 공유 리프레쉬 디바이스로의 관련지음을, CPU 유닛(602-1)과 CPU 유닛(602-2) 각각의 라벨의 디바이스로의 관련지음에 있어서 행할 필요가 있었다.
이와 같은 번잡함을 해결하기 위한 기술로서는 PLC간에 교환되는 데이터에 붙이는 라벨에 대해서, 각 PLC 내의 로컬 메모리를 자동으로 관련짓고, 그 로컬 메모리끼리를 네트워크를 통하여 동치화(同値化)하는 수단을 구비하는 것이 제안되고 있다(예를 들어, 특허 문헌 3 참조).
그렇지만, 상기 특허 문헌 3에서는 상술한 바와 같은 링크형의 제어 시스템이나 멀티 CPU형의 제어 시스템을 사용하지 않고, 동치화하는 수단을 사용하여 동치화해야 할 데이터마다 값 읽기 요구를 송신하고, 응답 데이터를 수신하여 응답 데이터를 쓰는 것으로 동치화를 실현하고 있다. 그렇기 때문에, 동치화를 위한 통신이 병목(bottle neck)으로 되어 동치화의 주기는 늦어진다. 즉, 1점의 데이터를 PLC간에 전송하기 위해 필요한 처리 시간과, 10점의 데이터를 한꺼번에 PLC간에 전송하기 위해 필요한 처리 시간은 그다지 변함없기 때문에, 10점의 데이터를 10회 개별적으로 PLC간에 전송하는 것은 10점의 데이터를 한꺼번에 PLC간에 전송하는 경우에 비해 실제로 10배의 처리 시간을 필요로 한다고 하는 것에 기인한다.
상술한 링크형의 제어 시스템과 같은 PLC간에서의 데이터 교환이나, 멀티 CPU형의 제어 시스템과 같은 CPU 유닛간에 데이터의 교환을 행하는 구조로서, 링크 디바이스나 공유 리프레쉬 디바이스라고 하는 기능을 준비하고 있는 것은 상기 특허 문헌 3에 있어서 과제가 되는 「통신이 병목으로 되어 동치화의 주기는 늦어진다」 것을 피하기 위한 것으로서, 그로 인하여 1개의 국 또는 1개의 CPU가 쓰는 디바이스를 1개소에 연속적으로 집중하여 할당하는 사양으로 되어 있다.
본 발명은 상기를 감안하여 이루어진 것으로, 링크형의 제어 시스템에 있어서 PLC간의 데이터 교환을 고속으로 실시하는 링크 디바이스의 기능이나, 멀티 CPU형의 제어 시스템에 있어서 멀티 CPU간에서의 데이터 교환을 고속으로 실시하는 공유 리프레쉬 디바이스의 기능에 있어서, 각 PLC간이나 멀티 CPU간에 동일한 라벨명을 사용한 프로그램 작성을 가능하게 하고, 또한 링크 디바이스나 공유 리프레쉬 디바이스의 할당 작업 및 라벨의 링크 디바이스나 공유 리프레쉬 디바이스로의 관련지음 작업을 간략화할 수 있는 프로그램 작성 지원 장치, 프로그램 작성 지원 방법과 그 방법을 컴퓨터에 실행시키는 프로그램 및 그것을 기록한 기록 매체를 얻는 것을 목적으로 한다.
상기 목적을 달성하기 위해, 본 발명에 관한 프로그램 작성 지원 장치는, 복수의 제어 장치로 이루어진 제어 시스템이고, 각각의 상기 제어 장치가 제어 대상을 제어하기 위한 라벨을 사용한 제어 프로그램의 작성을 지원하는 프로그램 작성 지원 장치에 있어서, 각각의 상기 제어 장치의 제어 프로그램 중에서, 복수의 제어 장치간에 공유하는 메모리에 대응하는 디바이스에 관련지어지는 공유 라벨을 추출하는 공유 라벨 추출 수단과; 상기 공유 라벨에 대해서, 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를, 상기 제어 프로그램을 참조하여 판정하고, 공유 라벨 쓰기/읽기 정보를 생성하는 공유 라벨 쓰기/읽기 정보 생성 수단과; 상기 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치가 쓰는 공유 라벨을 상기 제어 장치마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 디바이스의 어드레스를 관련짓는 디바이스 일괄 할당 관련지음 수단을 구비하는 것을 특징으로 한다.
본 발명에 의하면, 제어 장치 사이에서의 데이터 교환에 대해 동일한 라벨명을 사용한 프로그램의 작성이 가능하고, 또한 그 라벨의 디바이스로의 관련지음이나 디바이스의 할당 작업이 자동으로 행해지므로, 제어 장치간에서 동일한 라벨명을 사용한 프로그램 작성을 실시하는 것에 의한 장치 개발을 효율화할 수 있다고 하는 효과를 갖는다. 또, 그들 제어 장치간에 데이터의 교환이 링크 디바이스의 기능에 의해 고속으로 행해지는 제어 시스템의 개발도 실현 가능하게 된다.
도 1A는 링크형 제어 시스템 구성의 일례와 그 링크 디바이스를 모식적으로 나타내는 도면이다.
도 1B는 도 1A의 제어 시스템의 PLC에 있어서 링크 디바이스 내용의 일례를 나타내는 도면이다.
도 2는 멀티 CPU형 제어 시스템의 구성을 모식적으로 나타내는 도면이다.
도 3A는 멀티 CPU형 제어 시스템의 공유 리프레쉬 디바이스를 모식적으로 나타내는 도면이다.
도 3B는 도 3A의 제어 시스템의 PLC에 있어서 공유 리프레쉬 디바이스 설정의 일례를 나타내는 도면이다.
도 4는 종래의 제어 프로그램의 일례를 나타내는 도면이다.
도 5는 라벨을 사용한 제어 프로그램의 일례를 나타내는 도면이다.
도 6은 링크형의 제어 시스템에 있어서 라벨의 할당과 링크 디바이스로의 할당의 일례를 나타내는 도면이다.
도 7은 멀티 CPU형 제어 시스템에 있어서 라벨의 할당과 공유 리프레쉬 디바이스로의 할당의 일례를 나타내는 도면이다.
도 8은 프로그램 작성 지원 장치의 기능 구성을 모식적으로 나타내는 블럭도 이다.
도 9는 이 프로그램 작성 지원 장치를 실현하는 개발 툴의 표시 화면상의 구성을 모식적으로 나타내는 도면이다.
도 10은 프로그래밍 순서의 일례를 나타내는 플로우차트이다.
도 11A는 라벨을 실제 디바이스에 관련짓는 작업을 라벨 편집 툴로 행하는 경우를 나타내는 도면이다.
도 11B는 라벨을 실제 디바이스에 관련짓는 작업을 다른 툴을 마련하여 행하는 경우를 나타내는 도면이다.
도 12는 시스템 구성이 설정된 개발 툴의 표시 화면상 구성의 일례를 모식적으로 나타내는 도면이다.
도 13은 작성된 라벨 테이블의 일례를 나타내는 도면이다.
도 14는 작성된 래더 프로그램의 일례를 나타내는 도면이다.
도 15는 라벨을 실제 디바이스에 관련짓는 처리 순서의 일례를 나타내는 플로우차트이다.
도 16은 판정 처리 A의 순서를 나타내는 플로우차트이다.
도 17은 공유 라벨 테이블과 비공유 라벨 테이블의 일례를 나타내는 도면이다
도 18은 판정 처리 B의 순서를 나타내는 플로우차트이다.
도 19는 공유 라벨 쓰기/읽기 정보의 일례를 나타내는 도면이다.
도 20은 링크 디바이스 관련지음 라벨 테이블과 공유 리프레쉬 디바이스 관 련지음 라벨 테이블의 일례를 나타내는 도면이다.
도 21은 네트워크 일괄 할당 관련지음 처리 D의 순서를 나타내는 플로우차트이다.
도 22는 네트워크 일괄 할당 관련지음 처리 D의 구체적인 순서를 나타내는 도면이다.
도 23은 시스템 구성이 설정된 개발 툴의 표시 화면상 구성의 일례를 모식적으로 나타내는 도면이다.
도 24는 멀티 CPU형의 제어 시스템에 있어서 공유 라벨의 일괄 할당 관련지음 처리 순서의 구체적인 예를 나타내는 도면이다.
도 25는 멀티 CPU 일괄 할당 관련지음 처리 E의 순서를 나타내는 플로우차트이다.
도 26은 멀티 CPU 일괄 할당 관련지음 처리 E의 구체적인 순서를 나타내는 도면이다.
도 27은 제어 시스템의 실시 형태 3 구성의 일례를 나타내는 도면이다.
도 28A는 도 27의 각 메커니컬(mechanical) 요소의 파라미터의 일례를 나타내는 도면이다.
도 28B는 도 27의 각 메커니컬 요소의 파라미터의 일례를 나타내는 도면이다.
도 28C은 도 27의 각 메커니컬 요소의 파라미터의 일례를 나타내는 도면이다.
도 28D는 도 27의 각 메커니컬 요소의 파라미터의 일례를 나타내는 도면이다.
도 28E는 도 27의 각 메커니컬 요소의 파라미터의 일례를 나타내는 도면이다.
도 29는 도 28A ~ 도 28E의 각 메커니컬 요소에 대한 메커니컬 요소 속성 정보의 일례를 나타내는 도면이다.
도 30은 관리 툴에 있어서 라벨의 관리 방법의 일례를 나타내는 도면이다.
도 31은 관리 툴에 있어서 라벨의 관리 방법의 다른 예를 나타내는 도면이다.
도 32는 실시 형태 5의 공유 라벨 쓰기/읽기 정보의 일례를 나타내는 도면이다.
<부호의 설명>
10 프로그램 작성 지원 장치
10A 개발 툴
11 표시부
12 입력부
13 시스템 구성 설정부
14 라벨 설정부
15 프로그램 설정부
16 라벨 디바이스 관련지음 처리부
17 컴파일 처리부
18 표시 처리부
19 제어부
21 트리 뷰(tree view)
22 시스템 구성
22A 시스템 구성 편집 툴
23 라벨
23A, 23B 라벨 편집 툴
24 프로그램
24A 프로그램 편집 툴
25 하드웨어 구성
26 라벨 관련지음
26A 라벨 디바이스 관련지음 툴
이하에 첨부 도면을 참조하여, 본 발명에 관한 프로그램 작성 지원 장치, 프로그램 작성 지원 방법과 그 방법을 컴퓨터에 실행시키는 프로그램 및 그것을 기록한 기록 매체의 바람직한 실시 형태를 상세하게 설명한다. 또한, 이들 실시 형태에 의해 본 발명이 한정되는 것은 아니다.
먼저, 본 발명에서 사용되는 프로그램 작성 지원 장치(이하, 개발 툴이라고도 함)의 구성과, 이 프로그램 작성 지원 장치에 있어서 프로그램의 작성 순서의 개요에 대해 설명하고, 그 다음에, 이 프로그램 작성 지원 장치를 기본으로 한 본 발명에 관한 실시 형태에 대해 설명한다.
도 8은 프로그램 작성 지원 장치의 기능 구성을 모식적으로 나타내는 블록도이고, 도 9는 이 프로그램 작성 지원 장치를 실현하는 개발 툴의 표시 화면상의 구성을 모식적으로 나타내는 도면이다.
이 프로그램 작성 지원 장치(10)는 정보를 유저에 대해 표시하는 표시부(11)와, 유저에 의해 프로그래밍에 필요한 소정의 정보가 입력되는 입력부(12)와, 입력부(12)로부터 입력된 정보에 기초하여 시스템 구성을 설정하는 시스템 구성 설정부(13)와, 입력부(12)로부터 입력된 정보에 기초하여 라벨을 설정하는 라벨 설정부(14)와, 입력부(12)로부터 입력된 정보에 기초하여 프로그램을 설정하는 프로그램 설정부(15)와, 라벨 설정부(14)에서 설정된 라벨과 실제 디바이스를 관련짓는 라벨 디바이스 관련지음 처리부(16)와, 작성된 프로그램을 컴파일하는 컴파일 처리부(17)와, 시스템 구성의 설정 화면, 라벨의 설정 화면, 프로그램의 설정 화면 및 라벨과 실제 디바이스의 관련지음 화면의 표시부(11)로의 표시 처리를 행하는 표시 처리부(18)와, 이들 각 처리부를 제어하는 제어부(19)를 구비한다.
개발 툴(10A)은 프로그램 작성 지원 장치(10)상에 표시되고 편집 가능한 구성 요소를 표시하는 트리 뷰(21)와, 트리 뷰(21)에서 선택된 구성 요소를 편집하는 편집 툴을 포함한다. 트리 뷰(21)는 도 9에 나타나는 바와 같이, PLC나 MC를 프로그래밍할 때의 구성 요소를 나타내는 것으로, 시스템 구성(22), 라벨(23) 및 프로그램(24)을 포함한다. 이 트리 뷰(21)는 표시 처리부(18)에 의해 표시부(11)상에 표시되고, 입력부(12)에서 시스템 구성(22), 라벨(23), 프로그램(24)이 더블 클릭 등의 선택 동작으로 선택되면, 각각에 대응한 시스템 구성 설정부(13), 라벨 설정부(14), 프로그램 설정부(15)가 기동된다.
시스템 구성 설정부(13)는 유저에 의해 입력된 내용에 따라, I/O(Input/Output) 유닛이나 네트워크 등 PLC나 MC의 하드웨어 시스템의 구성을 설정한다. 예를 들어, 도 9의 트리 뷰(21)의 시스템 구성(22)이 선택되면, 시스템 구성 설정부(13)는 시스템 구성을 편집하는 윈도우나 다이얼로그나 에디터나 툴(이하, 시스템 구성 편집 툴이라고 함)(22A)을 기동하고, 이것들에 입력된 내용을 사용하여 시스템 구성을 설정한다.
라벨 설정부(14)는 제어 프로그램을 기술할 때에, 디바이스 어드레스 대신에 기술되는 라벨을 설정한다. 예를 들어, 도 9의 트리 뷰(22)의 라벨(23)이 선택되면, 라벨 설정부(14)는 라벨을 편집하는 윈도우나 다이얼로그나 에디터나 툴(이하, 라벨 편집 툴이라고 함)(23A)을 기동하고, 이것들에 입력된 내용을 사용하여 라벨을 설정한다.
프로그램 설정부(15)는 PLC나 MC에 처리시키는 제어 프로그램(예를 들어, 래더 프로그램)을 설정한다. 예를 들어, 도 9의 트리 뷰(21)의 프로그램(24)이 선택되면, 프로그램 설정부(15)는 프로그램을 편집하는 윈도우나 다이얼로그나 에디터나 툴(이하, 프로그램 편집 툴이라고 함)(24A)을 기동하고, 이것들에 입력된 내용을 사용하여 프로그램을 설정한다.
라벨 디바이스 관련지음 처리부(16)는 프로그램 설정부(15)에서 설정된 프로 그램을 실제의 PLC상이나 MC상에서 동작시키기 위해서, 그 프로그램에서 사용되는 프로그램 중의(즉, 라벨 설정부(14)에서 설정된) 라벨과, 실제의 PLC나 MC의 디바이스를 관련짓는다.
도 10은 프로그래밍 순서의 일례를 나타내는 플로우차트이다. PLC의 프로그래밍은 먼저 시스템 구성을 편집한다(단계 S11). 도 9의 개발 툴(10A)의 트리 뷰(21)로부터 시스템 구성(22)이 선택되면 시스템 구성 편집 툴(22A)이 기동된다. 유저는 이 시스템 구성 편집 툴(22A)상에서 입력부(12)를 사용하여, I/O 유닛이나 네트워크 등 PLC나 MC의 하드웨어 시스템의 구성을 입력하면, 그 입력 내용에 기초하여 시스템 구성이 설정된다.
이어서, 라벨을 편집한다(단계 S12). 도 9의 개발 툴(10A)의 트리 뷰(21)로부터 라벨(23)이 선택되면, 라벨 편집 툴(23A)이 기동된다. 유저는 이 라벨 편집 툴(23A)에서 입력부(12)를 사용하여 프로그램에서 사용하는 라벨을 입력하면, 그 입력 내용에 기초하여 라벨이 설정된다.
계속해서, 프로그램을 편집한다(단계 S13). 도 9의 개발 툴(10A)의 트리 뷰(21)로부터 프로그램이 선택되면 프로그램 편집 툴(24A)이 기동된다. 유저는 이 프로그램 편집 툴(24A)에서 입력부(12)를 사용하여, 기술하는 프로그램이 시스템 구성의 어느 PLC 또는 CPU로 실행시키는지를 지정한 후, 프로그램을 기술한다. 그리고, 그 입력 내용에 기초하여 프로그램이 설정된다.
여기서, 단계 S13의 프로그램을 기술할 때에, 단계 S12에서 설정한 라벨을 사용하는 것이 가능하다. 또, 단계 S13에서의 프로그램의 편집중에, 새롭게 라벨의 설정이 필요하게 된 경우에는 그때마다 라벨 편집을 해도 된다. 즉, 단계 S13의 프로그램의 편집을 한창 하고 있는 중에 단계 S12의 라벨의 편집을 해도 된다.
이상의 PLC 또는 CPU로 처리시키는 제어 프로그램의 프로그래밍이 완료한 후, 라벨을 실제 디바이스에 관련짓는다(단계 S14). 도 11A ~ 도 11B는 라벨을 실제 디바이스에 관련짓는 경우의 개발 툴의 표시 화면상의 구성을 모식적으로 나타내는 도면이고, 도 11A는 라벨을 실제 디바이스에 관련짓는 작업을 라벨 편집 툴로 행하는 경우를 나타내는 도면이고, 도 11B는 라벨을 실제 디바이스에 관련짓는 작업을 다른 툴을 마련하여 행하는 경우를 나타내는 도면이다. 이 라벨을 실제 디바이스에 관련짓는 작업은 도 11A에 나타나는 바와 같이, 트리 뷰(21)의 라벨(23)과 관련지어지는 편집 툴에, 디바이스 관련지음 기능을 갖게 한 라벨 편집겸 디바이스 관련지음 툴(23B)로 행하는 경우와, 도 11B에 나타나는 바와 같이, 라벨 편집 툴(23A)과는 별도로 라벨을 실제 디바이스에 관련짓는 전용의 윈도우나 다이얼로그나 에디터나 툴(이하, 라벨 디바이스 관련지음 툴이라고 함)(26A)을 마련하여 행하는 경우가 있다. 도 11B의 경우에는 트리 뷰(21)의 시스템 구성(22)의 하위에, 하드웨어 구성(25)과 라벨 관련지음(26)의 구성 요소가 마련된다. 이 때, 하드웨어 구성(25)이 선택되면, 시스템 구성 편집 툴(22A)이 기동되고, 라벨 관련지음(26)이 선택되면 라벨 디바이스 관련지음 툴(26A)이 기동된다. 개발 툴(10A)로서는 상기 어느 쪽의 형태이어도 된다.
그리고, 마지막으로, 실기(實機)에 다운로드하기 위해 작성된 프로그램의 컴파일 처리를 행하고(단계 S15), PLC나 MC에 탑재하기 위한 프로그램의 프로그래밍 처리가 종료된다.
이상과 같이 하여 PLC 또는 CPU에 대한 프로그래밍을 실시하면 되나, 이 개발 툴(10A)에 있어서는 복수대의 PLC가 FA 네트워크로 접속된 링크형의 제어 시스템이나 멀티 CPU 구성의 PLC나 MC로 이루어진 멀티 CPU형의 제어 시스템을 대상으로 하고, 이하의 실시 형태에서 설명하듯이 프로그램을 개발하는 것이 가능하다.
실시 형태 1.
이 실시 형태 1에서는 링크형의 제어 시스템을 구성하는 복수의 PLC의 제어 프로그램의 라벨과 실제 디바이스를 관련지을 수 있는 프로그램 작성 지원 장치에 대해 설명한다. 또한, 이하의 설명에서는 링크형의 제어 시스템으로서 2대의 PLC가 네트워크로 접속된 구성을 갖는 제어 시스템을 예로 든다.
링크형의 제어 시스템을 구성하는 각 PLC의 제어 프로그램의 프로그래밍의 처리 순서에 대해 설명한다. 도 10의 플로우차트의 단계 S11에 나타나는 바와 같이, 먼저 시스템 구성의 설정이 행해진다. 도 12는 시스템 구성이 설정된 개발 툴의 표시 화면상 구성의 일례를 모식적으로 나타내는 도면이다. 여기서는 상술한 바와 같이, 시스템 구성 편집 툴(22A)로 2대의 PLC가 네트워크로 접속된 시스템 구성이 설정된다.
또, 단계 S12에서는 라벨의 편집이 행해진다. 라벨은 PLC1의 제어 프로그램(이하, 프로그램 PLC1이라고 함)으로만 사용하는 라벨도, PLC2의 제어 프로그램(이하, 프로그램 PLC2이라고 함)에서만 사용하는 라벨도, PLC1 - PLC2간에 교환하는 데이터의 라벨도, 동일한 라벨 편집에서 작성되는 것으로 한다. 이 때, 라벨 테이 블이 생성된다. 도 13은 작성된 라벨 테이블의 일례를 나타내는 도면이다. 이 라벨 테이블(110)에는 「LabelA」 ~ 「LabelH」까지의 8개 라벨이 작성된 것으로 한다.
또한, 단계 S13에서는 프로그램의 편집이 행해진다. 이 때, PLC1에서 동작하는 프로그램 PCL1과, PLC2에서 동작하는 프로그램 PCL2를 각각 작성한다. 이 때, 시스템 구성 편집 툴(22A)로 작성된 시스템 구성의 어느 PLC에서 실행되는지를 지정하고 프로그램을 작성한다. 즉, 프로그램 PLC1은 시스템 구성 편집 툴(22A)로 작성된 시스템 구성의 PLC로 실행되도록 지정하고, 프로그램 PLC2는 시스템 구성 편집 툴(22A)로 작성된 시스템 구성의 PLC2로 실행되도록 지정한다. 또, 프로그램 PLC1을 기술할 때에도, 프로그램 PLC2를 기술할 때에도 단계 S12에서 작성한 동일한 라벨 테이블을 참조한다. 이에 의해, PLC1과 PLC2에서 교환하는 데이터의 라벨에 대해서, 동일한 라벨명으로 취급하는 것이 가능하게 된다. 도 14는 작성된 래더 프로그램의 일례를 나타내는 도면이다. 이 도면에 나타나는 바와 같이, 단계 S12에서 작성된 도 13의 라벨 테이블 중의 라벨을 사용하여 2개의 PLC1, PLC2의 래더 프로그램이 작성되고 있다.
이상의 제어 시스템을 구성하는 각각의 PLC를 제어하는 제어 프로그램의 프로그래밍이 완료한 후, 단계 S14에서의 라벨을 실제 디바이스에 관련짓는 처리를 행한다. 이하에, 이 라벨을 실제 디바이스에 관련짓는 처리인 프로그램 작성 지원 방법에 대해 상세하게 설명한다.
도 15는 라벨을 실제 디바이스에 관련짓는 처리 순서의 일례를 나타내는 플로우차트이다. 이 라벨의 실제 디바이스와 관련지음 처리는 도 8의 라벨 디바이스 관련지음 처리부(16)에 의해 실행되는 처리이다.
우선, 라벨 디바이스 관련지음 처리부(16)는 프로그래밍에 있어서 라벨의 사용을 판정하고, 복수의 PLC(또는 실시 형태 2에서 설명하는 경우에는 복수의 CPU)간에 공유하는 디바이스에 관련지어지는 공유 라벨인지, 그 이외의 디바이스에 관련지어지는 라벨인지를 판정하는 판정 처리 A를 행한다(단계 S31). 이 판정을 행하는 처리부는 청구 범위에서는 공유 라벨 추출 수단으로 하고 있다.
이어서, 단계 S31에서 공유 라벨의 경우에는 복수의 PLC(CPU) 중 어느 PLC(CPU)가 쓰고, 어느 PLC(CPU)가 읽고 있는지를 판정하는 판정 처리 B를 행한다(단계 S32). 이 판정을 행하는 처리부를, 청구 범위에서는 공유 라벨 쓰기/읽기 정보 생성 수단으로 하고 있다.
그 후, 공유 라벨에 대해, 복수의 PLC(복수의 CPU)가 네트워크 구성을 갖고 있는지, 그렇지 않으면 하나의 베이스 유닛상에 접속된 멀티 CPU 구성을 갖고 있는지를, 시스템 구성으로부터 판정하는 판정 처리 C를 행한다(단계 S33). 이 판정을 행하는 처리부를, 청구 범위에서는 시스템 구성 판정 수단으로 하고 있다.
단계 S33에서 네트워크 구성의 경우에는 링크 디바이스의 할당과 공유 라벨의 링크 디바이스로의 관련지음을 동시에 일괄로 행하는 네트워크 일괄 할당 관련지음 처리 D를 행하고(단계 S34), 라벨 디바이스 관련지음 처리가 종료된다. 이 라벨 디바이스 관련지음 처리를 행하는 처리부를 청구 범위에서는 디바이스 일괄 할당 관련지음 처리 수단으로 하고 있다.
또, 단계 S33에서 멀티 CPU 구성의 경우에는 공유 리프레쉬 디바이스의 할당 과 공유 라벨의 공유 리프레쉬 디바이스로의 관련지음을 동시 일괄로 행하는 멀티 CPU 일괄 할당 관련지음 처리 E를 행하고(단계 S35), 라벨 디바이스 관련지음 처리가 종료된다. 또한, 이 단계 S35에서의 멀티 CPU 일괄 할당 관련지음 처리는 후술하는 실시 형태 2에서 설명한다.
또, 단계 S31에서 공유 라벨 이외의 라벨인 경우에는 그 라벨에 대하여 디바이스의 어드레스와 관련짓는 라벨 관련지음 처리 F를 행하고(단계 S36), 라벨 디바이스 관련지음 처리가 종료된다.
이하에, 각 처리 A ~ F에 대해 더욱 상세하게 설명한다.
(판정 처리 A)
공유 라벨인지의 여부를 판정하는 판정 처리 A에 대하여, 도 16의 플로우차트를 참조하면서 설명한다. 우선, 라벨-디바이스 관련지음 처리부(16)는 단계 S12에서 생성된 라벨 테이블로부터 1개의 라벨을 추출한다(단계 S101). 이어서, 추출한 라벨이 작성된 프로그램을 참조하여 복수의 프로그램에서 사용되고 있는지의 여부를 판정한다(단계 S102). 라벨이 복수의 프로그램에서 사용되고 있는 경우(단계 S102에서 예인 경우)에는 추가로 그 라벨이 복수의 PLC(CPU)에서 실행되고 있는지를 판정한다(단계 S103). 라벨이 복수의 PLC(CPU)에서 실행되고 있는 경우(단계 S103에서 예인 경우)에는 그 라벨은 공유 라벨이라고 판정된다(단계 S104). 공유 라벨이라고 판정된 라벨은 공유 라벨 테이블에 격납된다. 한편, 단계 S102에서 복수의 프로그램에서 사용되고 있지 않은 경우(단계 S102에서 아니오인 경우), 또는 단계 S103에서 복수의 PLC(CPU)에서 사용되고 있지 않은 경우(단계 S103에서 아니 오인 경우)에 그 라벨은 공유 라벨이 아니라고 판정된다(단계 S105). 공유 라벨이 아니라고 판정된 테이블은 비공유 라벨 테이블에 격납된다.
그 후, 라벨 테이블 중의 모든 라벨에 대해 판정했는지를 판정하고(단계 S106), 모든 라벨에 대해 판정하고 있지 않은 경우(단계 S106에서 아니오인 경우)에는 단계 S101로 되돌아가, 라벨 테이블 중 다른 라벨에 대해서도 상술한 처리가 동양으로 실행된다. 또, 모든 라벨에 대해 판정한 경우(단계 S106에서 예인 경우)에는 판정 처리 A가 종료하고, 도 15로 되돌아온다. 이상의 판정 처리 A에 의해 공유 라벨 테이블과 비공유 라벨 테이블이 작성된다.
여기서, 도 13의 라벨 테이블(110)과 도 14의 프로그램을 사용하여 구체적인 예를 설명하면, 예를 들어 우선 도 13의 라벨 테이블(110) 중에서 「LabelA」가 추출되고, 이 LabelA에 대해 도 14의 프로그램으로부터 프로그램 PLC1과 프로그램 PLC2에서 사용되고 있는지 판정된다. 여기서는 프로그램 PLC1과 프로그램 PLC2에서 사용되고 있으므로, 계속해서 복수의 PLC로 실행되고 있는지 판정된다. 도 14를 참조하면, 프로그램 PLC1은 PLC1에서 실행되고, 프로그램 PLC2는 PLC2에서 실행되기 때문에 「LabelA」은 공유 라벨이 된다.
다음에, 도 13의 라벨 테이블(110) 중에서 다른 「LabelB」가 추출되고, 이 LabelB에 대해, 도 14의 프로그램으로부터 프로그램 PLC1과 프로그램 PLC2에서 사용되고 있는지 판정된다. 여기서는 프로그램 PLC1에서만 사용되고 있으므로 공유 라벨이 아니라고 판정된다. 또한, 도 13의 라벨 테이블(110) 중 그 외의 LabelC ~ LabelH에 대해서도 동양으로 판정된다. 그 결과, 도 17에 나타나는 바와 같이 공유 라벨 테이블(111)과 비공유 라벨 테이블(112)이 작성된다.
(판정 처리 B)
복수의 PLC(CPU) 중 어느 PLC(CPU)가 쓰고, 어느 PLC(CPU)가 읽고 있는지를 판정하는 판정 처리 B에 대해, 도 18의 플로우차트를 참조하면서 설명한다. 우선, 라벨 디바이스 관련지음 처리부(16)는 판정 처리 A에서 생성된 공유 라벨 테이블로부터 1개의 라벨을 추출한다(단계 S121). 이어서, 이 라벨에 대해, 프로그램의 기술 내용을 참조하면서, 어느 PLC(CPU)가 쓰고, 어느 PLC(CPU)가 읽는지를 판정한다(단계 S122). 그리고, 공유 라벨 테이블 중의 모든 라벨에 대해 판정했는지를 판정하고(단계 S123), 모든 라벨에 대해 판정하고 있지 않은 경우(단계 S123에서 아니오인 경우)에는 단계 S121로 되돌아가, 공유 라벨 테이블 중의 모든 라벨에 대해 상술한 처리가 반복 실행된다. 또, 모든 라벨에 대해 판정한 경우(단계 S123에서 예인 경우)에는 판정 처리 B가 종료하고, 도 15로 되돌아온다. 이상의 판정 처리 B에 의해 공유 라벨 쓰기/읽기 정보가 작성된다.
여기서, 도 14의 프로그램과 도 17의 공유 라벨 테이블(111)을 사용하여 구체적인 예를 설명하면, 예를 들어 우선 도 17의 공유 라벨 테이블(111) 중의 LabelA는 프로그램 PLC1에 있어서는 코일 데이터로서 제어 프로그램에 기술되고 있다. 코일은 제어 프로그램(래더 프로그램)에 있어서는 「쓰기」라고 판정된다. 즉, LabelA는 프로그램 PLC1에서는 쓰기라고 판정된다. 또, LabelA는 프로그램 PLC2에 있어서는 접점 데이터로서 제어 프로그램에 기술되어 있다. 접점은 제어 프로그램(래더 프로그램)에 있어서는 「읽기」라고 판정된다. 즉, LabelA는 프로그램 PLC2 에서는 읽기라고 판정된다. 이상에서, LabelA에 대해서는 PLC1가 쓰는 라벨이고, PLC2가 읽는 라벨이 된다. 공유 라벨 테이블 중 다른 라벨 LabelD, F, G에 대해서도 동양으로 처리된다. 그 결과, 도 19에 나타내는 바와 같이 공유 라벨 쓰기/읽기 정보(113)가 작성된다.
(판정 처리 C)
시스템 구성을 판정하는 판정 처리 C는 도 10의 단계 S11에서 작성된 시스템 구성을 참조하여, PLC가 네트워크 접속되어 있는 경우에는 링크 디바이스에 관련지어지는 공유 라벨이고, 이 라벨이 사용되는 제어 시스템은 링크형의 제어 시스템이라고 판정된다. 또, CPU가 1개의 베이스 유닛상에 접속되어 있는 경우에는 공유 리프레쉬 디바이스에 관련지어지는 공유 라벨이고, 이 라벨이 사용되는 제어 시스템은 멀티 CPU형의 제어 시스템이라고 판정된다. 그 결과, 링크 디바이스 관련지음 라벨 테이블과 공유 리프레쉬 디바이스 관련지음 라벨 테이블로 분류된다.
여기서, 도 12의 시스템구성 편집 툴(22A)로 작성된 시스템 구성과 도 19의 공유 라벨 쓰기/읽기 정보를 사용하여 구체적인 예를 설명하면, 도 19의 공유 라벨 쓰기/읽기 정보 중 최초의 라벨인 LabelA는 이 LabelA가 사용되는 PLC1과 PLC2가, 도 12의 시스템 구성 편집 툴(22A)의 시스템 구성에 있어서 네트워크 구성으로 되어 있기 때문에 링크 디바이스에 관련지어지는 라벨이라고 판정된다. 그렇기 때문에, 도 20에 나타나는 바와 같이, LabelA는 링크 디바이스 관련지음 라벨 테이블(114)로 분류된다. 공유 라벨 쓰기/읽기 정보(113) 중 다른 라벨에 대해서도 동양으로 처리된다. 또한, 여기서는 모든 라벨은 링크 디바이스 관련지음 라벨 테이 블(114)로 분류되고, 공유 리프레쉬 디바이스 관련지음 라벨 테이블(115)에는 아무것도 분류되지 않는다.
(네트워크 일괄 할당 관련지음 처리 D)
링크 디바이스에 관련지어지는 라벨과 디바이스의 관련지음을 동시 일괄로 행하는 네트워크 일괄 할당 관련지음 처리 D에 대해, 도 21의 플로우차트를 참조하면서 설명한다. 우선, 링크 디바이스 관련지음 라벨 테이블 중의 각 PLC가 쓰는 라벨을 모아서 PLC마다 순서대로 늘어놓는다(단계 S141). 이 정렬하여 늘어놓은 링크 디바이스 관련지음 라벨 테이블을 PLC 쓰기 라벨 분류 테이블로 한다. 제어 시스템이 2개의 PLC1과 PLC2로 구성되는 경우에는 PLC1이 쓰는 라벨을 모아서 순서대로 늘어놓고, 이어서 PLC2가 쓰는 라벨도 모아서 순서대로 늘어놓는다.
계속해서, 작성한 PLC 쓰기 라벨 분류 테이블을 사용하여, 각각의 PLC가 쓰는 라벨의 수로부터 링크 디바이스의 할당을 결정한다(단계 S142). PLC가 2개인 경우에는 PLC1이 쓰는 라벨의 수와 PLC2가 쓰는 라벨의 수로부터 링크 디바이스의 할당을 결정한다.
그 후, 각 PLC가 쓰는 라벨의 선두를, 단계 S142에서 할당한 그 PLC가 쓰는 링크 디바이스의 선두에 관련짓고, 이하 단계 S141에서 늘어놓은 라벨의 순서로 라벨과 링크 디바이스와의 관련지음을 행한다(단계 S143). PLC가 2개인 경우에는 PLC1이 쓰는 라벨의 선두를, 단계 S142에서 할당한 PLC1이 쓰는 링크 디바이스의 선두에 관련짓고, 이하 단계 S141에서 늘어놓은 라벨의 순서로 라벨과 링크 디바이스의 관련지음을 행한다. PLC2가 쓰는 라벨에 대해서도 동양으로 행한다. 이상에 의해, 네트워크 일괄 할당 관련지음 처리 D가 종료하고, 도 15로 되돌아온다.
도 22는 네트워크 일괄 할당 관련지음 처리 D의 구체적인 순서를 나타내는 도면이다. 또한, 이 도 22에는 도 21의 각 처리와 대응하는 위치에 단계 번호를 부여하고 있다. 우선, 도 20에 나타나는 링크 디바이스 관련지음 라벨 테이블(114)에 대해, 링크 디바이스를 할당하는 처리와, 공유 라벨을 링크 디바이스에 관련짓는 처리를 행하기 위한 필요한 전처리로서, PLC가 쓰는 라벨을 그 PLC마다 모아서 순서대로 늘어놓는 PLC 쓰기 라벨 분류 테이블(116)을 작성한다. 도 22에 나타나는 바와 같이, PLC1이 쓰는 라벨과 PLC2가 쓰는 라벨로 분류된다(단계 S141).
이어서, PLC 쓰기 라벨 분류 테이블(116)의 PLC 순으로 늘어놓은 결과를 사용하여, PLC마다 각각 몇점 데이터를 쓰는지를 추출하고, 그 점수로 링크 디바이스를 할당한다. PLC1은 2점 데이터를 쓰기 때문에 2점 필요하다. 그러나, 링크 디바이스는 16점 단위로 할당한다고 하는 시스템 제약이 있으므로 16점으로 절상(切上)한다. 그 결과, PLC1이 쓰는 링크 디바이스로서 16점을 B00 ~ B0F에 할당한다. 또, PLC2는 2점 데이터를 쓰기 때문에, 동양으로 16점으로 절상하고 나서, PLC2가 쓰는 링크 디바이스로서 16점을, PLC1이 쓰는 링크 디바이스의 다음의 어드레스로부터 시작되는 B10 ~ B1F에 할당한다(단계 S142).
그 후, 할당 결과인 PLC1이 쓰는 링크 디바이스 선두 어드레스(B00)와, PLC 쓰기 라벨 분류 테이블의 정렬하여 늘어놓은 결과인 PLC1이 쓰는 선두 라벨 LabelA를 관련짓고, 이하 순서로 링크 디바이스의 어드레스(B01)와 라벨 LabelG를 관련짓는다. 또, 단계 S142에서 할당한 PLC2가 쓰는 링크 디바이스 선두 어드레스(B10) 와, PLC 쓰기 라벨 분류 테이블 중의 PLC2가 쓰는 선두 라벨 LabelD를 관련짓고, 이하 순서로 링크 디바이스의 어드레스 B11과 라벨 LabelF를 관련짓는다.
또한, 링크 디바이스의 할당 설정은 제어 시스템에서 사용되는 각 PLC에서 동일한 설정을 사용하므로, 각 PLC의 컴파일에 있어서, 이 링크 디바이스의 할당 설정이 공통적으로 사용된다.
(라벨 관련지음 처리 F)
이 라벨 관련지음 처리 F는 배경 기술에서 설명한 라벨명과 디바이스의 어드레스의 관련지음이고, 공유 라벨 이외의 라벨에 대해, 종래와 동양의 방법으로 라벨명과 디바이스의 어드레스의 관련지음을 행한다. 네트워크 일괄 할당 관련지음 처리 D에서 이미 라벨을 관련지은 디바이스 이외의 디바이스에 대해 관련지음을 행하면 된다.
이상에 의해, 모든 라벨을 실제 디바이스에 관련짓는 처리가 완료했으므로, 프로그램 PLC1도 프로그램 PLC2도 실기의 PLC1과 PLC2에 다운로드하기 위한 도 10의 단계 S15의 컴파일 처리를 행하는 것이 가능하게 된다. 또한, 상술한 설명에서는 2개의 PLC가 FA 네트워크에 접속된 예를 들어 설명하였으나, 이에 한정되지 않고, 복수대의 PLC가 FA 네트워크를 통하여 접속되는 경우에도 동양으로 적용할 수 있다.
이 실시 형태 1에 의하면, PLC간에서의 데이터 교환에 대해 동일한 라벨명을 사용한 프로그램의 작성이 가능하고, 또한 그 라벨의 링크 디바이스로의 관련지음이나, 링크 디바이스의 할당 작업이 자동으로 행해지므로, PLC간에 동일한 라벨명 을 사용한 프로그램 작성을 행하는 것에 의한 장치 개발을 효율화할 수 있다고 하는 효과를 갖는다. 또, 그들 PLC간에 데이터의 교환이 링크 디바이스의 기능에 의해 고속으로 행해지는 제어 시스템의 개발도 실현 가능하게 된다.
실시 형태 2.
실시 형태 1에서는 링크형 제어 시스템의 각 PLC의 제어 프로그램의 프로그래밍에 있어서 공유 라벨의 일괄 관련지음 처리를 행하는 경우를 설명하였으나, 이 실시 형태 2에서는 멀티 CPU형 제어 시스템의 각 CPU의 제어 프로그램의 프로그래밍에 있어서 공유 라벨의 일괄 관련지음 처리를 실시하는 경우에 대해 설명한다.
여기서도, 도 10에 나타나는 순서로 프로그래밍 처리가 행해진다. 우선, 도 10의 플로우차트의 단계 S11에 나타나는 바와 같이 시스템 구성의 설정이 행해진다. 도 23은 시스템 구성이 설정된 개발 툴의 표시 화면상 구성의 일례를 모식적으로 나타내는 도면이다. 여기서는 시스템 구성 편집 툴(22A)에서, 2개의 CPU 유닛이 베이스 유닛상에 접속된 시스템 구성이 설정되는 것으로 한다.
도 24는 멀티 CPU형의 제어 시스템에 있어서 공유 라벨의 일괄 할당 관련지음 처리의 순서를 구체적인 예를 나타내는 도면이다. 이하, 이 도 24를 참조하면서 공유 라벨의 일괄 할당 관련지음 처리에 대해 설명한다. 도 23과 같이 시스템 구성이 설정된 후, 도 10의 단계 S12에서 라벨의 편집이 행해진다. 라벨은 CPU1의 제어 프로그램(이하, 프로그램 CPU1이라고 함)에서만 사용하는 라벨도, CPU2의 제어 프로그램(이하, 프로그램 CPU2라고 함)에서만 사용하는 라벨도, CPU1 - CPU2간에 교환하는 데이터의 라벨도 동일한 라벨 편집으로 작성되는 것으로 한다. 이에 의해, CPU1과 CPU2에서 교환하는 데이터의 라벨에 대해, 동일한 라벨명으로 취급하는 것이 가능하다. 이 때, 라벨 테이블이 생성된다. 여기서는 도 24의 라벨 테이블(110)에 나타나는 바와 같이, 「LabelA」 ~ 「LabelH」까지의 8개 라벨이 작성된 것으로 한다.
또한, 도 10의 단계 S13에서 프로그램의 편집이 행해진다. 이 때, CPU1에서 동작하는 프로그램과, CPU2에서 동작하는 프로그램을 각각 작성한다. 이 때, 시스템 구성의 어느 CPU로 실행되는지를 지정하고 프로그램을 작성한다. 즉, 프로그램 CPU1은 시스템 구성의 CPU1로 실행되도록 지정하고, 프로그램 CPU2는 시스템 구성의 CPU2로 실행되도록 지정한다. 또, 프로그램 CPU1을 기술할 때에도, 프로그램 CPU2를 기술할 때에도, 동일한 라벨 테이블을 참조한다. 이에 의해, CPU1과 CPU2에서 교환하는 데이터의 라벨에 대해, 동일한 라벨명으로 취급하는 것이 가능하게 된다. 도 24에, 작성된 래더 프로그램의 일례가 나타나 있다. 이 도면에 나타나는 바와 같이, 단계 S12에서 작성된 라벨을 사용하여 2개의 CPU1, CPU2의 래더 프로그램(프로그램 CPU1, 프로그램 CPU2)이 작성되고 있다.
이상의 제어 시스템을 구성하는 각각의 CPU를 제어하는 제어 프로그램의 프로그래밍이 완료한 후, 도 10의 단계 S14에서의 라벨을 실제 디바이스에 관련짓는 처리를 행한다. 이 라벨을 실제 디바이스에 관련짓는 처리는 실시 형태 1의 도 15에서 설명한 처리와 거의 동양이지만, 이 실시 형태 2에서는 공유 리프레쉬 디바이스를 사용하므로 단계 S34의 네트워크 일괄 할당 관련지음 처리 D가 아니라, 단계 S35의 멀티 CPU 일괄 할당 관련지음 처리 E가 실행되게 된다. 그렇기 때문에, 이하 에서는 실시 형태 1과 동양의 부분에 대해서는 설명을 간략화하고, 실시 형태 1과 다른 부분에 대해 상세하게 설명한다.
우선, 라벨 디바이스 관련지음 처리부(16)는 프로그래밍에 있어서 라벨의 사용을 판정하여, 복수의 CPU간에 공유하는 디바이스에 관련지어지는 공유 라벨인지의 여부를 판정하고, 그 결과 공유 라벨의 경우에는 복수의 CPU 중 어느 CPU가 쓰고, 어느 CPU가 읽고 있는지를 판정한다. 그 결과가 도 24의 공유 라벨 쓰기/읽기 정보(113)에 나타나 있다. 그 후, 공유 라벨에 대해, 복수의 CPU가 네트워크 구성을 갖고 있는지, 그렇지 않으면 하나의 베이스 유닛상에 접속된 멀티 CPU 구성을 갖고 있는지를 시스템 구성으로부터 판정하고, 공유 라벨을 링크 디바이스 관련지음 라벨 테이블(114) 또는 공유 리프레쉬 디바이스 관련지음 라벨 테이블(115)로 분류한다. 또한, 여기서는 모두 공유 리프레쉬 디바이스 관련지음 라벨 테이블(115)로 분류되며, 링크 디바이스 관련지음 라벨 테이블(114)에는 아무것도 분류되지 않는다(도 15의 단계 S31 ~ S33).
(멀티 CPU 일괄 할당 관련지음 처리 E)
도 15의 단계 S33에서는 공유 라벨이 공유 리프레쉬 디바이스 관련지음 라벨 테이블로 분류되므로, 그 후 단계 S35의 멀티 CPU 일괄 할당 관련지음 처리 E가 실행된다. 이 공유 리프레쉬 디바이스에 관련지어지는 라벨의 디바이스로의 관련지음을 동시 일괄로 행하는 멀티 CPU 일괄 할당 관련지음 처리 E에 대해, 도 25의 플로우차트를 참조하면서 설명한다. 우선, 공유 리프레쉬 디바이스 관련지음 라벨 테이블 중의 각 CPU 유닛이 쓰는 라벨을 모아서 그 CPU 유닛마다 순서대로 늘어놓는다 (단계 S201). 이 정렬하여 늘어놓은 공유 리프레쉬 디바이스 관련지음 라벨 테이블을 CPU 쓰기 라벨 분류 테이블로 한다. 제어 시스템이 2개의 CPU1, CPU2로 이루어진 경우에는 CPU1이 쓰는 라벨을 모아서 순서대로 늘어놓고, 또 CPU2가 쓰는 라벨도 모아서 순서대로 늘어놓는다.
그 다음에, 작성한 CPU 쓰기 라벨 분류 테이블을 사용하여, 각각의 CPU가 쓰는 라벨의 수로부터 공유 리프레쉬 디바이스의 할당을 결정한다(단계 S202). CPU가 2개인 경우에는 CPU1이 쓰는 라벨의 수와 CPU2가 쓰는 라벨의 수로부터 공유 리프레쉬 디바이스의 할당을 결정한다.
그 후, 각 CPU 유닛이 쓰는 라벨의 선두를, 단계 S202에서 할당한 그 CPU 유닛이 쓰는 공유 리프레쉬 디바이스의 선두에 관련짓고, 이하 단계 S201에서 라벨을 늘어놓은 순서로 라벨과 공유 리프레쉬 디바이스의 관련지음을 행한다(단계 S203). CPU가 2개인 경우에는 CPU1이 쓰는 라벨의 선두를, 단계 S202에서 할당한 CPU1이 쓰는 공유 리프레쉬 디바이스의 선두에 관련짓고, 이하 단계 S201에서 늘어놓은 라벨의 순서로 라벨과 공유 리프레쉬 디바이스의 관련지음을 행한다. CPU2가 쓰는 라벨에 대해서도 동양으로 행한다. 이상에 의해, 멀티 CPU 일괄 할당 관련지음 처리 E가 종료하고, 도 15로 되돌아온다. 또한, 이 멀티 CPU 일괄 할당 관련지음 처리 E를 행하는 처리부를, 청구 범위에서는 디바이스 일괄 할당 관련지음 처리 수단으로 하고 있다.
도 26은 멀티 CPU 일괄 할당 관련지음 처리 E의 구체적인 순서를 나타내는 도면이다. 또한, 이 도 26에는 도 25의 각 처리와 대응하는 위치에 단계 번호를 부 여하고 있다. 우선, 공유 리프레쉬 디바이스 관련지음 라벨 테이블(115)에 대해, 공유 리프레쉬 디바이스를 할당하는 처리와, 공유 라벨을 공유 리프레쉬 디바이스에 관련짓는 처리를 행하기 위해 필요한 전처리로서, CPU가 쓰는 라벨을 모아서 순서대로 늘어놓은 CPU 쓰기 라벨 분류 테이블(117)을 작성한다. 도 26에 나타나는 바와 같이, CPU1이 쓰는 라벨과 CPU2가 쓰는 라벨이 분류된다(단계 S201).
계속해서, CPU 쓰기 라벨 분류 테이블(117)의 CPU 순으로 늘어놓은 결과를 사용하여, CPU마다 각각 몇점 데이터를 쓰는지를 추출하고, 그 점수로 공유 리프레쉬 디바이스를 각 CPU로 각각 할당한다. CPU1은 2점 데이터를 쓰기 때문에 2점 필요하다. 그러나, 공유 리프레쉬 디바이스는 16점 단위로 할당한다고 하는 시스템 제약이 있으므로 16점으로 절상한다. 그 결과, CPU1이 쓰는 공유 리프레쉬 디바이스로서 16점을, CPU1에 있어서는 M00 ~ M0F로서 할당한다. 또, CPU2는 2점 데이터를 쓰기 때문에 동양으로 16점으로 절상하고 나서, CPU2가 쓰는 공유 리프레쉬 디바이스로서 16점을, CPU1이 쓰는 공유 리프레쉬 디바이스의 다음의 어드레스로부터 시작되는 M10 ~ M1F로서 할당한다.
CPU2에 있어서도 CPU1에서 할당한 점수와 동양의 점수를 사용하여 공유 리프레쉬 디바이스를 할당하나, 할당처 어드레스는 CPU1과 동일해도 되고, CPU1과 같지 않아도 된다. 이 예에서, CPU2에 있어서는 CPU1이 쓰는 공유 리프레쉬 디바이스로서 16점을 M20 ~ M2F로서 할당하고, CPU2가 쓰는 공유 리프레쉬 디바이스로서 16점을 CPU1이 쓰는 공유 리프레쉬 디바이스의 다음의 어드레스로부터 시작되는 M30 ~ M3F로서 할당한다(단계 S202).
또한, 라벨 관련지음 처리 F는 이 멀티 CPU 일괄 할당 관련지음 처리 E의 뒤에 행해지므로, 특히 공유 리프레쉬 디바이스로서 할당하는 선두 어드레스에 지정이 없는 경우에는 CPU1과 CPU2에서는 동일한 어드레스 M00으로부터 자동적으로 할당하면 되고, 라벨 관련지음 처리 F에서는 그 이외의 어드레스에 라벨을 관련짓도록 하면 된다.
또, 상술한 설명에서는 공유 리프레쉬 디바이스는 16점 단위로 할당한다고 하는 시스템 제약이 있는 경우를 설명하였으나, 32점 단위로 할당하는 시스템 제약이 있는 경우에는 CPU가 쓰는 데이터가 32점 미만인 경우에는 32점으로 절상한다. 또, 다른 점단위로 할당하는 경우도 동양의 처리를 행한다.
그 후, CPU1에 있어서는 할당 결과인 CPU1이 쓰는 공유 리프레쉬 디바이스의 선두 어드레스 M00와, CPU 쓰기 라벨 분류 테이블(117)의 정렬하여 늘어놓은 결과인 CPU1이 쓰는 선두 라벨 LabelA를 관련짓고, 이하 순서로 공유 리프레쉬 디바이스의 어드레스 M01과 라벨 LabelG를 관련짓는다. 또, 단계 S202에서 할당한 CPU2가 쓰는 공유 리프레쉬 디바이스의 선두 어드레스 M10과, CPU 쓰기 라벨 분류 테이블(117) 중의 CPU2가 쓰는 선두 라벨 LabelD를 관련짓고, 이하 순서로 공유 리프레쉬 디바이스의 어드레스 M11과 라벨 LabelF를 관련짓는다. CPU2에 있어서도 동양의 처리로 관련짓는다. 즉, 단계 S202의 할당 결과인 CPU1이 쓰는 공유 리프레쉬 디바이스의 선두 어드레스 M20과, CPU 쓰기 라벨 분류 테이블(117)의 정렬하여 늘어놓은 결과인 CPU1이 쓰는 선두 라벨 LabelA를 관련짓고, 이하 순서로 공유 리프레쉬 디바이스의 어드레스 M21과 라벨 LabelG를 관련짓는다. 또, 단계 S202에서 할당한 CPU2가 쓰는 공유 리프레쉬 디바이스의 선두 어드레스 M30과, CPU 쓰기 라벨 분류 테이블(117) 중의 CPU2가 쓰는 선두 라벨 LabelD를 관련짓고, 이하 순서로 공유 리프레쉬 디바이스의 어드레스 M31과 라벨 LabelF를 관련짓는다.
공유 리프레쉬 디바이스의 할당 설정은 각 CPU에서 동일한 점수의 설정을 사용할 필요가 있으나, 할당처의 어드레스는 각 CPU에서 각각 설정하면 되기 때문에, 각 CPU의 컴파일에 있어서는 상술한 바와 같은 처리에 의해 설정된 공유 리프레쉬 디바이스의 할당 설정을 사용한다.
그 후의 라벨 관련지음 처리 F는 종래의 기술에서 설명한 라벨명과 디바이스의 어드레스의 관련지음이고, 공유 라벨 이외의 라벨에 대해, 종래와 동양의 방법으로 라벨명과 디바이스의 어드레스의 관련지음를 행한다. 멀티 CPU 일괄 할당 관련지음 처리 E에서 이미 라벨을 관련지은 디바이스 이외의 디바이스에 대해 관련지음를 행하면 된다.
이상에 의해, 모든 라벨을 실제 디바이스에 관련짓는 작업이 완료했으므로, 프로그램 CPU1도 프로그램 CPU2도 실기의 CPU1과 CPU2에 다운로드하기 위한 도 10의 단계 S15의 컴파일 처리를 행하는 것이 가능하게 된다. 또한, 상술한 설명에서는 2개의 CPU 유닛이 베이스 유닛상에 장착된 예를 들어 설명하였으나, 이에 한정되지 않고, 복수대의 CPU 유닛이 베이스 유닛상에 장착되는 경우에도 동양으로 적용할 수 있다.
이 실시 형태 2에 의하면, 멀티 CPU간에서의 데이터 교환에 대해 동일한 라벨명을 사용한 프로그램의 작성이 가능하고, 또한 그 라벨의 공유 리프레쉬 디바이 스로의 관련지음이나, 공유 리프레쉬 디바이스의 할당 작업이 자동으로 행해지므로, 멀티 CPU간에 동일한 라벨명을 사용한 프로그램 작성을 행하는 것에 의한 장치 개발의 효율화를 실현할 수 있다고 하는 효과를 갖는다. 또, 이들 CPU간에서의 데이터 교환이 공유 리프레쉬 디바이스의 기능에 의해 고속으로 행해지는 장치의 개발도 실현 가능하게 된다.
실시 형태 3.
이 실시 형태 3에서는 2대의 CPU로 이루어진 멀티 CPU형의 제어 시스템을 구축하는 경우이고, 그 한쪽의 CPU가 모션 CPU인 경우인 도 15의 플로우차트에 있어서 판정 처리 B에 대해 설명한다. 프로그램 기술 언어가 래더 언어가 아니라 모션 특유의 메커니컬 언어인 경우, 래더 언어의 경우와 같이, 어느 PLC(CPU)가 쓰고, 어느 PLC(CPU)가 읽는지를 일의(一意)로 결정할 수 없다. 따라서, 메커니컬 언어의 요소마다 각각, 어느 값을 참조하는지를 지정하는 항목을 미리 설정해 둘 필요가 있어, 이에 디바이스 어드레스 또는 라벨을 설정한다.
도 27은 제어 시스템의 실시 형태 3 구성의 일례를 나타내는 도면이고, 도 28A ~ 도 28E는 도 27의 각 메커니컬 요소의 파라미터의 일례를 나타내는 도면이다. 도 27에 나타나는 바와 같이, 이 제어 시스템은 기어(gear), 가상 서보모터(servomotor), 클러치(clutch), 회전 테이블 및 볼 나사(ball screw)에 의해 구성되어 있고, 도 28A ~ 도 28E는 각각의 파라미터를 나타내고 있다.
예를 들어, 도 28A의 기어인 경우에는 「기어 비율」의 「입력축 기어 수」와 「출력축 기어 수」를 라벨 참조로 하여 설정 가능하고, 읽기 데이터 속성으로 된다. 도 28B의 가상 서보모터인 경우에는 디바이스를 지정할 수 있는 파라미터가 없다. 도 28C의 클러치인 경우에는 「클러치 온/오프」를 라벨 참조로 하여 설정 가능하고, 읽기 데이터 속성으로 된다. 도 28D의 회전 테이블인 경우에는 「가상축 1회전내 현재값 격납 디바이스」를 라벨 참조로 하여 설정 가능하고, 쓰기 데이터 속성으로 된다. 도 28E의 볼 나사인 경우에는 「토크(torque) 제한」을 라벨 참조로 하여 설정 가능하고, 읽기 데이터 속성으로 된다.
도 29는 도 28A ~ 도 28E의 각 메커니컬 요소의 파라미터의 쓰기 데이터와 읽기 데이터의 일람인 메커니컬 요소 속성 정보의 일례를 나타내는 도면이다. 이 메커니컬 요소 속성 정보에 나타나는 바와 같이, 메커니컬 요소마다 라벨 참조로 하여 설정 가능한 항목과, 각각이 쓰기인지 읽기인지의 속성을 일람으로서 유지한다. 이 도 29에는 도 28A ~ 도 28E에서 설명한 내용이 기재되어 있다.
실시 형태 1 ~ 2의 판정 처리 B에 있어서, 래더 언어로 기술된 제어 프로그램에서는 접점 기호로부터 쓰기, 코일 기호로부터 읽기로 일률적으로 판정하고 있었으나, 메커니컬 언어의 경우에는 도 29와 같은 메커니컬 요소 속성 정보를 참조하여 판정하게 된다.
예를 들어, 라벨이 클러치의 온/오프 파라미터로 사용되고 있는 경우에는 도 29의 메커니컬 요소 속성 정보를 참조하면, 이 라벨은 메커니컬 언어에 있어서는 읽기이다. 또, 라벨이 회전 테이블의 1회전내 현재값으로 사용되고 있는 경우에는 동양으로, 이 라벨이 메커니컬 언어에 있어서는 쓰기이다. 이와 같이, 메커니컬 요소마다 라벨을 참조하여 읽기인지 쓰기인지를 정한 도 29에 나타나는 바와 같은 메 커니컬 요소 속성 정보를 미리 정해 두고, 이 메커니컬 요소 속성 정보에 기초하여 그 라벨이 쓰기 데이터인지 읽기 데이터인지를 판정하는 것이 가능하게 된다.
또한, 그 외의 처리는 실시 형태 1 ~ 2에서 설명한 것과 동양이므로, 그 설명을 생략한다.
이 실시 형태 3에 의하면, 각 메커니컬 요소에 대해, 라벨 참조로 하여 설정 가능한 항목과 그것이 쓰기인지 읽기인지의 속성을 기억한 메커니컬 요소 속성 정보를 사용하여, 어느 CPU가 쓰고, 어느 CPU가 읽는지를 판정하도록 했기 때문에, 제어 프로그램이 모션 특유의 메커니컬 언어로 기술되어 있는 경우에도, 그 라벨의 공유 리프레쉬 디바이스로의 관련지음이나, 공유 리프레쉬 디바이스의 할당 작업을 자동으로 실시할 수 있다고 하는 효과를 갖는다. 그 결과, 멀티 CPU간에 동일한 라벨명을 사용한 프로그램 작성을 행하는 것에 의한 장치 개발의 효율화를 실현할 수 있다. 또, 그들 CPU간에 데이터의 교환이 공유 리프레쉬 디바이스의 기능에 의해 고속으로 행해지는 장치의 개발도 실현 가능하게 된다.
실시 형태 4.
이 실시 형태 4에서는 네트워크로 구성되는 2대의 PLC를 사용하여 1개의 제어 시스템을 구축할 때에, 2대의 PLC의 제어 프로그램을 개발하는 경우에 대해, 특히 라벨 테이블을 공유 라벨과 그렇지 않은 라벨(비공유 라벨)로 나누어 관리하는 경우에 대해 설명한다.
도 30은 관리 툴에 있어서 라벨의 관리 방법의 일례를 나타내는 도면이다. 이 예에서는 개발 툴(10A)의 트리 뷰(21)에서는 시스템 구성, 공유 라벨, 프로그램 이라고 하는 형태로 관리를 행하고, 프로그램에서는 그 프로그램에서만 사용하는 라벨과 프로그램을 관리하는 형태로 되어 있다.
예를 들어, 도에 나타나는 바와 같이, 2개의 PLC1, PLC2가 네트워크로 접속되어 제어 시스템이 구성되는 경우에는 프로그램으로서 PLC1에서 동작하는 제어 프로그램(이하, 프로그램 PLC1이라고 함)과, PLC2에서 동작하는 제어 프로그램(이하, 프로그램 PLC2라고 함)이 작성된다. 이들 프로그램은 시스템 구성의 어느 PLC로 실행되는지를 지정한다. 즉, 프로그램 PLC1은 시스템 구성의 PLC1로 실행되도록 지정하고, 프로그램 PLC2는 시스템 구성의 PLC2로 실행되도록 지정한다.
라벨은 프로그램 PLC1에서만 사용하는 라벨, 프로그램 PLC2에서만 사용하는 라벨, PLC1 - PLC2간에 교환하는 데이터의 공유 라벨을 각각 다른 라벨 테이블로 작성한다. 이 도 29의 예에서는 공유 라벨 이외의 라벨 테이블은 프로그램에 부수(付隨)시키는 형태로 관리하고 있다. 이 경우에는 프로그램은 어느 PLC로 실행되는지 지정되므로, 라벨 테이블도 어느 PLC에 관련지어지는지가 일의로 정해진다.
도 31은 관리 툴에 있어서 라벨의 관리 방법의 다른 예를 나타내는 도면이다. 이 예에서는 개발 툴(10A)의 트리 뷰(21)에서는 시스템 구성, 라벨, 프로그램이라고 하는 형태로 관리를 행하고, 라벨의 하위에는 추가로 공유 라벨과 각각의 PLC(CPU)에서 사용되는 라벨이 잔존하여 라벨 테이블마다 그 속성을 유지하는 형태로 관리하고 있다.
이와 같이, 2개의 PLC1, PLC2가 네트워크로 접속되어 제어 시스템이 구성되는 경우에는 각 라벨 테이블이 공유 라벨인지, 또는 어느 PLC1, PLC2에 관련지어지 는지를 라벨 테이블마다의 속성으로서 지정한다.
PLC1의 제어 프로그램인 프로그램 PLC1을 기술할 때에는 프로그램 PLC1에서만 사용하는 라벨 테이블과, PLC간에 교환하는 데이터의 공유 라벨을 참조한다. 또, PLC2의 제어 프로그램인 프로그램 PLC2를 기술할 때에는 프로그램 PLC2에서만 사용하는 라벨 테이블과, PLC간에 교환하는 데이터의 공유 라벨을 참조한다. 이에 의해, PLC1과 PLC2에서 교환하는 데이터의 라벨에 대해, 동일한 라벨명으로 취급하는 것이 가능함과 동시에, 프로그램 PLC1에서만 사용하는 라벨과 프로그램 PLC2에서만 사용하는 라벨이 동일한 라벨명이었다 하더라도, 각각 별개의 것으로 취급되게 된다.
이상과 같이, 공유 라벨과 그렇지 않은 라벨(비공유 라벨)의 라벨 테이블을 나누어 관리한 경우의 PLC의 프로그래밍이 완료되면, 라벨을 실제 디바이스에 관련짓는 처리가 행해진다. 이와 같이, 공유 라벨과 비공유 라벨을 나누어 미리 작성해 두는 경우에는 실시 형태 1의 도 15의 플로우차트에 있어서, 공유 라벨 테이블에 있는 라벨을 공유 라벨로 판정하므로 판정 처리 A는 불필요하게 된다. 그 결과, 공유 라벨인지의 여부가 프로그램 설계로부터 명확하게 할 필요가 있으나, 판정 처리 B 이하를 행하여, 일괄 할당 관련지음 처리를 행하므로 컴파일 처리가 빨라진다. 또한, 상술한 설명에서는 링크형의 제어 시스템에 대해 설명하였으나, 멀티 CPU형의 제어 시스템에서도 동양으로 처리할 수 있다.
이 실시 형태 4에 의하면, 실시 형태 1 ~ 3의 효과에 더하여, PLC간에서의 데이터 교환에 대해 또는 멀티 CPU간에서의 데이터 교환에 대해, 미리 라벨을 복수 의 PLC간 또는 CPU간에서 사용하는 공유 라벨과, 각 PLC 또는 CPU에서만 사용하는 비공유 라벨을 미리 나누고 있으므로, 그 라벨의 링크 디바이스로의 관련지음이나 링크 디바이스의 할당 작업, 또는 그 라벨의 공유 리프레쉬 디바이스로의 관련지음이나 공유 리프레쉬 디바이스의 할당 작업을, 실시 형태1 ~ 3에 비해 단시간에 행할 수 있다고 하는 효과를 갖는다.
실시 형태 5.
이 실시 형태 5에서는 네트워크로 구성되는 2대의 PLC를 사용하여 제어 시스템을 구축하고, 그 2대의 PLC의 제어 프로그램을 개발할 때에, 라벨 테이블을 공유 라벨과 비공유 라벨을 나누어 관리하고, 또한 각 라벨에 대해서 어느 PLC가 쓰고, 어느 PLC가 읽는지를 지정하고 나서, 라벨의 디바이스로의 일괄 할당 관련지음 처리를 실시하는 경우에 대해 설명한다.
실시 형태 4에서는 공유 라벨과 비공유 라벨을 미리 나누어 관리하고 있었지만, 이 실시 형태 5에서는 추가로 이 공유 라벨의 편집에 있어서, 각 라벨에 대해 어느 PLC가 쓰고, 어느 PLC가 읽는지에 대해서도 지정한 공유 라벨 쓰기/읽기 정보를 미리 작성해 둔다. 도 32는 실시 형태 5의 공유 라벨 쓰기/읽기 정보의 일례를 나타내는 도면이다.
이상과 같이, 공유 라벨과 비공유 라벨의 라벨 테이블을 나누고, 추가로 공유 라벨의 각 라벨에 대해 어느 PLC가 쓰고, 어느 PLC가 읽는지를 지정한 공유 라벨 쓰기/읽기 정보를 미리 준비한 경우의 PLC의 프로그래밍이 완료되면, 라벨을 실제 디바이스에 관련짓는 처리가 행해진다. 이 경우에는 실시 형태 1의 도 15의 플 로우차트에 있어서, 공유 라벨 테이블에 있는 라벨을 공유 라벨로 판정하므로 판정 처리 A는 불필요하게 되고, 또 공유 라벨 테이블의 각 라벨에 대해 어느 PLC(CPU)가 쓰고, 어느 PLC(CPU)가 읽고 있는지도 지정되어 있으므로 판정 처리 B도 불필요하게 된다. 그 결과, 어느 PLC(CPU)가 쓰는 공유 라벨인지의 여부가 프로그램 설계로부터 명확하게 할 필요가 있으나, 판정 처리 C 이하만을 행하여 일괄 할당 관련지음 처리를 행하므로 컴파일 처리가 빨라진다.
이 실시 형태 5에 의하면, 실시 형태 4의 효과에 더하여, 공유 라벨의 각 라벨에 대해 어느 PLC(CPU)가 쓰고, 어느 PLC(CPU)가 읽는지를 지정하여 관리하고 있으므로, 그 라벨의 링크 디바이스로의 관련지음이나 링크 디바이스의 할당 작업, 또는 그 라벨의 공유 리프레쉬 디바이스로의 관련지음이나 공유 리프레쉬 디바이스의 할당 작업을 실시 형태 1 ~ 4에 비해 단시간에 행할 수 있다고 하는 효과를 갖는다.
또한, 상술한 프로그램 작성 지원 방법은 그 처리 순서를 쓴 프로그램을, CPU(중앙연산 처리장치)를 갖는 퍼스널 컴퓨터나 워크 스테이션(work station) 등의 컴퓨터로 실행하는 것에 의해 실현할 수 있다. 이 경우, 컴퓨터의 CPU(제어 수단)가 프로그램에 따라서, 상술한 프로그램 작성 지원 방법의 각 처리 공정을 실행하게 된다. 이들 프로그램은 하드디스크, 플로피(등록상표) 디스크, CD(Compact Disk)-ROM(Read Only Memory), MO(Magneto-Optical disk), DVD(Digital Versatile Disk 또는 Digital Video Disk) 등의 컴퓨터로 읽기 가능한 기록 매체에 기록되고, 컴퓨터에 의해 기록 매체로부터 읽혀짐으로써 실행된다. 또, 이들 프로그램은 인터 넷 등의 네트워크(통신 회선)를 통하여 배포할 수도 있다.
이상과 같이, 본 발명에 관한 프로그램 작성 지원 장치는 복수의 PLC나 CPU 등의 제어 장치가 하나의 제어 시스템을 구성하는 경우의 제어 프로그램의 작성에 유용하다.

Claims (16)

  1. 복수의 제어 장치로 이루어진 제어 시스템에서, 각각의 상기 제어 장치가 제어 대상을 제어하기 위한 라벨을 사용한 제어 프로그램의 작성을 지원하는 프로그램 작성 지원 장치에 있어서,
    각각의 상기 제어 장치의 제어 프로그램 중에서, 복수의 제어 장치간에 공유하는 메모리에 대응하는 디바이스에 관련지어지는 공유 라벨을 추출하는 공유 라벨 추출 수단과,
    상기 공유 라벨에 대해, 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를, 상기 제어 프로그램을 참조하여 판정하고, 공유 라벨 쓰기/읽기 정보를 생성하는 공유 라벨 쓰기/읽기 정보 생성 수단과,
    상기 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치가 쓰는 공유 라벨을 상기 제어 장치마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 디바이스의 어드레스를 관련짓는 디바이스 일괄 할당 관련지음 수단을 구비하는 것을 특징으로 하는 프로그램 작성 지원 장치.
  2. 청구항 1에 있어서,
    상기 디바이스 일괄 관련지음 수단은
    상기 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치마다 쓰는 공유 라벨을 상기 제어 장치마다 분류하는 수단과,
    분류한 제어 장치마다, 그 쓰는 공유 라벨의 수로부터 상기 디바이스로의 할당을 결정하는 수단과,
    상기 제어 장치에 대해 할당된 상기 디바이스내에 있어서, 상기 제어 장치가 쓰는 공유 라벨과 상기 디바이스의 어드레스와의 관련지음를 행하는 수단을 구비하는 것을 특징으로 하는 프로그램 작성 지원 장치.
  3. 청구항 1에 있어서,
    상기 제어 시스템은 복수의 프로그래머블 컨트롤러(이하, PLC라고 함)가 네트워크를 통하여 접속된 구성을 갖고,
    상기 디바이스는 각각의 상기 PLC가 갖는 링크 디바이스이고,
    상기 디바이스 일괄 할당 관련지음 수단은 상기 공유 라벨 쓰기/읽기 정보를 사용하여 PLC가 쓰는 공유 라벨을 상기 PLC마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 링크 디바이스의 어드레스를 관련짓는 것을 특징으로 하는 프로그램 작성 지원 장치.
  4. 청구항 1에 있어서,
    상기 제어 시스템은 복수의 CPU 유닛이 베이스 유닛상에 복수 장착된 멀티 CPU 구성을 갖고,
    상기 디바이스는 각각의 상기 CPU 유닛이 갖는 공유 리프레쉬(refresh) 디바이스이고,
    상기 디바이스 일괄 할당 관련지음 수단은 상기 공유 라벨 쓰기/읽기 정보를 사용하여 CPU 유닛이 쓰는 공유 라벨을 상기 CPU 유닛마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 공유 리프레쉬 디바이스의 어드레스를 관련짓는 것을 특징으로 하는 프로그램 작성 지원 장치.
  5. 청구항 1에 있어서,
    상기 제어 시스템의 구성을 나타내는 시스템 구성 정보에 기초하여, 상기 제어 시스템이 복수의 PLC가 네트워크를 통하여 접속된 링크형의 구성인지, 복수의 CPU 유닛이 베이스 유닛상에 복수 장착된 멀티 CPU형의 구성인지를 판정하는 시스템 구성 판정 수단을 추가로 구비하고,
    상기 디바이스 일괄 할당 관련지음 수단은 상기 제어 시스템이 링크형의 구성인 경우에는 상기 PLC가 갖는 링크 디바이스에, 그 어드레스와 공유 라벨을 관련짓고, 상기 제어 시스템이 멀티 CPU형의 구성인 경우에는 상기 CPU 유닛이 갖는 공유 리프레쉬 디바이스에, 그 어드레스와 공유 라벨을 관련짓는 것을 특징으로 하는 프로그램 작성 지원 장치.
  6. 청구항 1에 있어서,
    상기 공유 라벨 쓰기/읽기 정보 생성 수단은 상기 제어 장치가 모션 컨트롤러인 경우에, 상기 제어 프로그램에 더하여, 제어 대상마다 라벨로서 설정 가능한 항목과, 상기 제어 장치가 그 라벨에 쓰는지 읽는지의 속성을 나타내는 메커니 컬(mechanical) 요소 속성 정보를 참조하여, 상기 공유 라벨에 대해, 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를 판정하여 공유 라벨 쓰기/읽기 정보를 생성하는 것을 특징으로 하는 프로그램 작성 지원 장치.
  7. 복수의 제어 장치로 이루어진 제어 시스템에서, 각각의 상기 제어 장치가 제어 대상을 제어하기 위한 라벨을 사용한 제어 프로그램의 작성을 지원하는 프로그램 작성 지원 장치에 있어서,
    복수의 제어 장치간에 공유하는 메모리에 대응하는 디바이스에 관련지어지는 공유 라벨에 대해, 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를, 상기 제어 프로그램을 참조하여 판정하고, 공유 라벨 쓰기/읽기 정보를 생성하는 공유 라벨 쓰기/읽기 정보 생성 수단과,
    상기 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치가 쓰는 공유 라벨을 상기 제어 장치마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 디바이스의 어드레스를 관련짓는 디바이스 일괄 할당 관련지음 수단을 구비하는 것을 특징으로 하는 프로그램 작성 지원 장치.
  8. 복수의 제어 장치로 이루어진 제어 시스템에서, 각각의 상기 제어 장치가 제어 대상을 제어하기 위한 라벨을 사용한 제어 프로그램의 작성을 지원하는 프로그램 작성 지원 장치에 있어서,
    복수의 제어 장치간에 공유하는 메모리에 대응하는 디바이스에 관련지어지는 공유 라벨의 각 라벨에 대해 어느 제어 장치가 쓰고, 어느 제어 장치가 읽는지를 지정한 공유 라벨 쓰기/읽기 정보 중의 공유 라벨에 대해, 상기 공유 라벨 정보를 사용하여 제어 장치가 쓰는 공유 라벨을 상기 제어 장치마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 디바이스의 어드레스를 관련짓는 것을 특징으로 하는 프로그램 작성 지원 장치.
  9. 복수의 제어 장치로 이루어진 제어 시스템에서, 각각의 상기 제어 장치가 제어 대상을 제어하기 위한 라벨을 사용한 제어 프로그램의 작성을 지원하는 정보 처리 장치에 의한 프로그램 작성 지원 방법에 있어서,
    각각의 상기 제어 장치의 제어 프로그램 중에서, 복수의 제어 장치간에 공유하는 메모리에 대응하는 디바이스에 관련지어지는 공유 라벨을 추출하는 공유 라벨 추출 공정과,
    상기 공유 라벨에 대해, 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를, 상기 제어 프로그램을 참조하여 판정하고, 공유 라벨 쓰기/읽기 정보를 생성하는 공유 라벨 쓰기/읽기 정보 생성 공정과,
    상기 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치가 쓰는 공유 라벨을 상기 제어 장치마다 분류하고, 이 분류마다 상기 공유 라벨을 상기 디바이스의 어드레스와 관련짓는 디바이스 일괄 할당 관련지음 공정을 포함하는 것을 특징으로 하는 프로그램 작성 지원 방법.
  10. 청구항 9에 있어서,
    상기 디바이스 일괄 관련지음 공정은
    상기 공유 라벨 쓰기/읽기 정보를 사용하여 제어 장치마다 쓰는 공유 라벨을 상기 제어 장치마다 분류하는 공정과,
    분류한 제어 장치마다, 그 쓰는 공유 라벨의 수로부터 상기 디바이스로의 할당을 결정하는 공정과,
    상기 제어 장치에 대해 할당된 상기 디바이스내에 있어서, 상기 제어 장치가 쓰는 공유 라벨과 상기 디바이스의 어드레스와의 관련지음을 행하는 공정을 포함하는 것을 특징으로 하는 프로그램 작성 지원 방법.
  11. 청구항 9에 있어서,
    상기 디바이스 일괄 할당 관련지음 공정에서, 상기 제어 시스템은 복수의 PLC가 네트워크를 통하여 접속된 구성을 갖고,
    상기 디바이스는 각각의 상기 PLC가 갖는 링크 디바이스인 경우에, 상기 공유 라벨 쓰기/읽기 정보를 사용하여 PLC가 쓰는 공유 라벨을 상기 PLC마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 링크 디바이스의 어드레스를 관련짓는 것을 특징으로 하는 프로그램 작성 지원 방법.
  12. 청구항 9에 있어서,
    상기 디바이스 일괄 할당 관련지음 공정에서, 상기 제어 시스템은 복수의 CPU 유닛이 베이스 유닛상에 복수 장착된 멀티 CPU 구성을 갖고,
    상기 디바이스는 각각의 상기 CPU 유닛이 갖는 공유 리프레쉬 디바이스인 경우에, 상기 공유 라벨 쓰기/읽기 정보를 사용하여 CPU 유닛이 쓰는 공유 라벨을 상기 CPU 유닛마다 분류하고, 이 분류마다 상기 공유 라벨과 상기 공유 리프레쉬 디바이스의 어드레스를 관련짓는 것을 특징으로 하는 프로그램 작성 지원 방법.
  13. 청구항 9에 있어서,
    상기 공유 라벨 쓰기/읽기 정보 생성 공정 이후에, 상기 제어 시스템의 구성을 나타내는 시스템 구성 정보에 기초하여, 상기 제어 시스템이 복수의 PLC가 네트워크를 통하여 접속된 링크형의 구성인지, 복수의 CPU 유닛이 베이스 유닛상에 복수 장착된 멀티 CPU형의 구성인지를 판정하는 시스템 구성 판정 공정을 추가로 포함하고,
    상기 디바이스 일괄 할당 관련지음 공정은 상기 제어 시스템이 링크형의 구성인 경우에는 상기 PLC가 갖는 링크 디바이스에 그 어드레스와 공유 라벨을 관련짓고, 상기 제어 시스템이 멀티 CPU형의 구성인 경우에는 상기 CPU 유닛이 갖는 공유 리프레쉬 디바이스에 그 어드레스와 공유 라벨을 관련짓는 것을 특징으로 하는 프로그램 작성 지원 방법.
  14. 청구항 9에 있어서,
    상기 공유 라벨 쓰기/읽기 정보 생성 공정에서는 상기 제어 장치가 모션 컨 트롤러인 경우에, 상기 제어 프로그램에 더하여, 제어 대상마다 라벨로서 설정 가능한 항목과, 상기 제어 장치가 그 라벨에 쓰는지 읽는지의 속성을 나타내는 메커니컬 요소 속성 정보를 참조하여, 상기 공유 라벨에 대해 어느 제어 장치가 데이터를 쓰고, 어느 제어 장치가 데이터를 읽고 있는지를 판정하여 공유 라벨 쓰기/읽기 정보를 생성하는 것을 특징으로 하는 프로그램 작성 지원 방법.
  15. 청구항 9 내지 청구항 14 중 어느 한 항에 기재된 방법을 컴퓨터에 실행시키는 프로그램.
  16. 청구항 9 내지 청구항 14 중 어느 한 항에 기재된 방법을 컴퓨터에 실행시키는 프로그램을 기록한 기록 매체.
KR1020087003814A 2006-03-29 2006-03-29 프로그램 작성 지원 장치, 프로그램 작성 지원 방법, 및 그 방법을 컴퓨터에 실행시키는 프로그램을 기록한 기록 매체 KR100929948B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/306516 WO2007110953A1 (ja) 2006-03-29 2006-03-29 プログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体

Publications (2)

Publication Number Publication Date
KR20080043308A true KR20080043308A (ko) 2008-05-16
KR100929948B1 KR100929948B1 (ko) 2009-12-04

Family

ID=38540893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003814A KR100929948B1 (ko) 2006-03-29 2006-03-29 프로그램 작성 지원 장치, 프로그램 작성 지원 방법, 및 그 방법을 컴퓨터에 실행시키는 프로그램을 기록한 기록 매체

Country Status (7)

Country Link
US (1) US8499277B2 (ko)
JP (1) JP4541437B2 (ko)
KR (1) KR100929948B1 (ko)
CN (1) CN101292204B (ko)
DE (1) DE112006003770T5 (ko)
TW (1) TWI332130B (ko)
WO (1) WO2007110953A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150131397A (ko) * 2014-01-31 2015-11-24 미쓰비시덴키 가부시키가이샤 감시 제어 시스템 및 제어장치

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4850556B2 (ja) * 2006-03-29 2012-01-11 三菱電機株式会社 プログラム作成支援装置およびその方法
US8583771B2 (en) * 2008-07-01 2013-11-12 Cisco Technology, Inc. Mapping human-meaningful parameters to network-meaningful parameters to permit user to establish traffic importance in home network
US20100011356A1 (en) * 2008-07-10 2010-01-14 Electrowave Usa, Inc. Intelligent distributed controller
EP2317410B1 (de) 2009-10-23 2012-01-04 Sick Ag Sicherheitssteuerung
WO2012070128A1 (ja) * 2010-11-24 2012-05-31 三菱電機株式会社 システム設計装置
US9632496B2 (en) 2011-02-21 2017-04-25 Mitsubishi Electric Corporation Engineering apparatus which associates programmable logic controller data with human machine interface data
JP5627506B2 (ja) * 2011-02-24 2014-11-19 三菱電機株式会社 データ処理装置
JP5611158B2 (ja) * 2011-09-05 2014-10-22 三菱電機株式会社 データ中継制御装置、リンク間転送設定支援装置およびリンク間転送設定方法
CN104145223B (zh) * 2012-03-02 2016-10-12 三菱电机株式会社 加工程序生成装置以及加工程序生成方法
US20150032419A1 (en) * 2012-04-04 2015-01-29 Mitsubishi Electric Corporation Plc designing apparatus
WO2013186889A1 (ja) * 2012-06-14 2013-12-19 三菱電機株式会社 I/oデバイス、プログラマブルロジックコントローラ及び演算方法
WO2014167622A1 (ja) * 2013-04-08 2014-10-16 三菱電機株式会社 プログラム編集装置、プログラム編集方法およびプログラム編集プログラム
KR101772785B1 (ko) * 2013-04-08 2017-08-29 미쓰비시덴키 가부시키가이샤 프로그램 그래프 표시 장치, 프로그램 그래프 표시 방법 및 프로그램 그래프 표시 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN105191219B (zh) * 2013-05-09 2017-06-23 三菱电机株式会社 Fa网络用lsi以及通信装置
JP6119452B2 (ja) * 2013-06-21 2017-04-26 富士電機株式会社 プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム
CN105159656A (zh) * 2014-06-16 2015-12-16 上海宝信软件股份有限公司 Plc软件编程辅助设计方法
CN107408001B (zh) * 2015-02-27 2019-03-15 三菱电机株式会社 数据编辑装置、数据编辑方法以及数据编辑程序
JP6356726B2 (ja) * 2016-05-19 2018-07-11 ファナック株式会社 ラダープログラム解析装置
EP3267271B1 (de) * 2016-07-05 2018-12-26 Siemens Aktiengesellschaft Automatisierungssystem und verfahren zum betrieb
JP6821497B2 (ja) * 2017-04-27 2021-01-27 株式会社日立産機システム 産業用コントローラのプログラム開発システム及び産業用コントローラのプログラム開発システムにおけるデータ共有方法
JP6922583B2 (ja) * 2017-09-15 2021-08-18 オムロン株式会社 情報処理装置、情報処理方法、および、情報処理プログラム
JP6878705B1 (ja) * 2020-04-24 2021-06-02 三菱電機株式会社 通信装置、通信システム、通信方法、およびプログラム
JP7413169B2 (ja) 2020-07-06 2024-01-15 株式会社日立産機システム コントロール装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993006652A1 (en) 1991-09-13 1993-04-01 General Electric Company Minimization of gto gate driver losses when antiparallel diode conduct
JP2633161B2 (ja) 1992-11-18 1997-07-23 日本モトローラ株式会社 ファジイ推論のmin−max 演算回路
JP3113121B2 (ja) 1993-04-23 2000-11-27 三菱電機株式会社 リンクデバイスの拡張方法およびその転送方法
US5452201A (en) 1993-08-24 1995-09-19 Allen-Bradley Company, Inc. Industrial controller with highly distributed processing
US5530643A (en) * 1993-08-24 1996-06-25 Allen-Bradley Company, Inc. Method of programming industrial controllers with highly distributed processing
US5659707A (en) * 1994-10-07 1997-08-19 Industrial Technology Research Institute Transfer labeling mechanism for multiple outstanding read requests on a split transaction bus
JP3512910B2 (ja) 1995-07-06 2004-03-31 株式会社東芝 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
JP3368370B2 (ja) 1995-09-26 2003-01-20 オムロン株式会社 負荷分散装置および方法
JPH1023047A (ja) 1996-07-04 1998-01-23 Suzuki Motor Corp ネットワークノード間におけるデータ送信制御方式
US7603183B1 (en) * 1999-08-31 2009-10-13 Digital Electronics Corporation Editor device and recorded medium on which editor program is recorded
WO2001027701A1 (fr) 1999-10-15 2001-04-19 Omron Corporation Systeme de reseau, procede de commande, dispositif de commande et multiprocesseur
JP2001195257A (ja) 2000-01-11 2001-07-19 Fujitsu Ltd プログラムをローディングする装置
US7139901B2 (en) * 2000-02-08 2006-11-21 Mips Technologies, Inc. Extended instruction set for packet processing applications
JP2002055816A (ja) 2000-08-08 2002-02-20 Sharp Corp プログラム管理装置及び方法並びにこれに利用される記憶媒体
JP2002091514A (ja) 2000-09-12 2002-03-29 Digital Electronics Corp 制御システム、および、そのプログラムが記録された記録媒体
EP1351108B1 (en) 2000-11-24 2015-06-24 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for programming
US6625700B2 (en) * 2001-05-31 2003-09-23 Sun Microsystems, Inc. Arbitration and select logic for accessing a shared memory
JP3894421B2 (ja) 2001-07-02 2007-03-22 三菱電機株式会社 ネットワークシステム
US7162476B1 (en) * 2003-09-11 2007-01-09 Cisco Technology, Inc System and method for sharing global data within distributed computing systems
JP3805776B2 (ja) 2004-02-26 2006-08-09 三菱電機株式会社 グラフィカルプログラミング装置及びプログラマブル表示器
US7665077B2 (en) * 2004-10-18 2010-02-16 Microsoft Corporation System and method for sharing objects between applications in a virtual runtime environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150131397A (ko) * 2014-01-31 2015-11-24 미쓰비시덴키 가부시키가이샤 감시 제어 시스템 및 제어장치

Also Published As

Publication number Publication date
KR100929948B1 (ko) 2009-12-04
TW200736869A (en) 2007-10-01
CN101292204A (zh) 2008-10-22
CN101292204B (zh) 2011-02-16
JP4541437B2 (ja) 2010-09-08
DE112006003770T5 (de) 2009-04-23
WO2007110953A1 (ja) 2007-10-04
TWI332130B (en) 2010-10-21
US20090276059A1 (en) 2009-11-05
JPWO2007110953A1 (ja) 2009-08-06
US8499277B2 (en) 2013-07-30

Similar Documents

Publication Publication Date Title
KR100929948B1 (ko) 프로그램 작성 지원 장치, 프로그램 작성 지원 방법, 및 그 방법을 컴퓨터에 실행시키는 프로그램을 기록한 기록 매체
JP4850556B2 (ja) プログラム作成支援装置およびその方法
US7860589B2 (en) Programmatic access to controller construct and variable names
US7881812B2 (en) Editing and configuring device
EP1938155B1 (en) Business process execution engine
US7734590B2 (en) Incremental association of metadata to production data
CN102354147B (zh) 可重构计算机数字控制系统与数字控制方法、重构方法
CN108984652A (zh) 一种可配置数据清洗系统和方法
CN104793567A (zh) 数控加工程序转换方法和装置
Shaw et al. Automatic planning and flexible scheduling: a knowledge-based approach
Demir et al. A Conceptual Framework for Industry 4.0:(How is it Started, How is it Evolving Over Time?)
Laguionie et al. A multi-process manufacturing approach based on STEP-NC data model
Živanović et al. Programming of machine tools and robots for machining using STEP-NC in the era of Industry 4.0
Yihui Research of Integration Technology between CATIA and TOOLMANAGER Based on CAA
US11360749B2 (en) Device for dynamically generating numerical controller software of machine tool and method for the same
CN116627392B (zh) 一种基于交互式ide的模型开发方法及系统
Lundgren et al. Process planning methodology guide for interactive learning
KR20110077288A (ko) 피엘씨 소프트웨어 개발환경 제공 시스템
Mansour-Duschet A Multiagent design methodology for the manufacturing execution system domain
Tripathi et al. CNC Machine Technologies: A Review
Drobintsev et al. Net-centric Internet of Things for industrial machinery workshop
JP3243058B2 (ja) スケジューリング装置および方法
Lundgren et al. Model-based interactive learning of process planning
Živanović et al. DEMI 2021
Olumolade MANUFACTURING FLEXIBILITY THROUGH COMPUTER-AIDED PROCESS PLANNING AND CELL SELECTION

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121114

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141103

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171107

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191030

Year of fee payment: 11