KR100401161B1 - 모션 제어기의 네트워크 보간 운전방법 - Google Patents

모션 제어기의 네트워크 보간 운전방법 Download PDF

Info

Publication number
KR100401161B1
KR100401161B1 KR10-2001-0033417A KR20010033417A KR100401161B1 KR 100401161 B1 KR100401161 B1 KR 100401161B1 KR 20010033417 A KR20010033417 A KR 20010033417A KR 100401161 B1 KR100401161 B1 KR 100401161B1
Authority
KR
South Korea
Prior art keywords
interpolation
network
time
motion controller
motion
Prior art date
Application number
KR10-2001-0033417A
Other languages
English (en)
Other versions
KR20020095308A (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 이모션텍 주식회사
Priority to KR10-2001-0033417A priority Critical patent/KR100401161B1/ko
Publication of KR20020095308A publication Critical patent/KR20020095308A/ko
Application granted granted Critical
Publication of KR100401161B1 publication Critical patent/KR100401161B1/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D13/00Control of linear speed; Control of angular speed; Control of acceleration or deceleration, e.g. of a prime mover

Abstract

모터를 이용하여 기계의 동작을 제어하는 모션 제어기의 보간 기능을 네트워크를 이용하여 분산 구현하는 방식으로 네트워크 상의 모션 제어기들이 하나의 모션 제어기가 보간 운전을 실행하듯이 네트워크 상에서 서로 동기를 맞추어 하나의 다축 보간 운전을 구현하기 위한 것이다. 더욱 상세하게 모션 제어기들의 네트워크 보간 운전을 구현하기 위하여 모션 제어기들의 보간 운전을 주 보간 운전 모션 제어기(Master)와 보조 보간 운전 모션 제어기(Slave)로 나누어 운전하는 방식과 이 나누어진 모션 제어기 간의 데이터 통신 및 내부 연산을 일정 시간안에 안정하게 구현하기 위하여 네트워크 보간 시간(Network Sampling Time)을 설정하는 방법과 네트워크 보간 시간을 주기로 발생되는 보간 동기 명령에 대한 주 보간 운전 모션 제어기와 보조 보간 운전 모션 제어기의 동작에 관한 것이고, 또한 보조 보간 운전 제어기들이 네트워크 보간 시간 개념을 이용하여 보조 보간의 시작 시점을 네트워크를 통하여 일치 시키는 방법을 포함한다.
따라서, 네트워크상의 주 및 보조 보간 모션 제어기들이 하나의 다축 보간 운전(직선 보간, 원호 보간 등)을 네트워크 통하여 안정하게 구현할 수 있도록 하기 위하여 네트워크 보간 시간을 설정하고, 그 시간안에 각 제어기들이 상태 및 명령을 통신하고 제어기들의 보간 기능간의 동기를 네트워크를 통하여 구현하는 방법을 제공한다.

Description

모션 제어기의 네트워크 보간 운전방법{OPERATING METHOD OF NETWORK MOTION INTEPOLATION}
본 발명은 모터(Servo, Stepping Motor등)를 이용하여 기계의 움직임을 제어하는 모션 제어기에 대한 것이다. 모션 제어기는 기계에 장착되어 있는 모터를 제어하여 기계의 움직임이 일정 궤적 및 속도를 가지도록 하는 장치로 각종 전용기계, 공작기계, 반도체 장비 등과 같은 기계 장비에 설치되어 기계의 동작을 제어하는 장비이다.
기존 모션 제어기의 운영은 하나의 모션 제어기에서 모든 보간을 실행하여 Actuator(Motor Drive)에 아날로그(Analog) 또는 펄스(Pulse)로 이송 값을 지령하는 통합 제어방식으로 되어 있으나, 본 발명은 기존의 일체형 방식을 네트워크을 통하여 여러 모션 제어기들을 분산 제어하는 방식으로, 네트워크을 통하여 운영되는 모션 제어기들이 하나의 통합 제어기가 보간 운전을 수행하는 것처럼 네트워크을 통하여 모션 제어기간의 분산 보간 운전을 실행하는 것이다.
일반적으로, 종래의 모션 제어기술은 하나의 모션 제어기가 보간에 관련되는 모든 축들의 연산을 수행하고, 모터를 구동하기 위한 이송 값을 직접 출력하는 장비로 기술구성을 크게 H/W, S/W로 나누어 설명한다.
먼저 H/W에 대하여 설명하면,종래의 모션 제어기 시스템 구성은 도1과 같이 구성된다.
여기서는 드라이버를 아날로그 서보 드라이버로 모터를 서보 모터로 제어기는 3축 보간을 지원하는 장치로 예를 들어 설명한다. 3축 보간을 지원하는 모션 제어기는 도1에서 보는 것처럼 3개의 포트에 각각의 서보 드라이버가 병렬케이블을 통하여 연결되고 이 케이블을 통하여 속도 지령신호(아날로그 신호)를 출력하고, 모터의 엔코더 신호를 입력 받는다. 도1의 모션 제어기는 3축을 제어하기 위하여 엔코더를 통하여 각축의 현재 위치를 입력 받아 축 이송에 관계되는 연산을 수행하고 그 결과를 아날로그 출력 값으로 전환하여 각각의 드라이버에 출력한다. 이러한 동작을 일정 시간동안 주기적으로 반복 수행한다.
모션 제어기의 일반적인 동작(SW)을 설명하면 아래와 같다.
도1의 모션제어기는 도2와 같은 동작을 수행한다. 사용자가 기계의 동작에 관련되는 이송궤적(직선,원호,급송이송 등) 및 이송속도가 들어있는 이송 프로그램을 작성하여 모션 제어기에 이송을 시작하라는 지령을 하면, 해석기(Interpreter)는 이송 프로그램을 해석하여 인터포래이터(Interpolator)에 해석된 이송명령(이송방법, 이송속도, 이송축)을 전달한다. 인터포래이터(Interpolator)는 이송지령을 일정 주기의 시간을 기준으로 하는 속도 함수로 해석하고 이 속도 함수에 가감속 제어를 추가하여 3축의 합성 속도 프로파일을 만든 후 합성 속도 프로파일을 일정 시간을 주기로하여 각 축으로 분할하여 이송을 지령한다. 즉 인터포래이터(Interpolator)에서 3 축의 움직임을 합성하여 만든 속도 프로파일을각 축의 속도 프로파일로 분할하여 지령한다는 의미이다. 도2의 모션 제어 loop는 서보 드라이버의 엔코더로부터 받은 현재위치 값과 인터포래이터(Interpolator)에서 분할하여 받은 이송 위치의 차를 계산하여 각각의 서보 드라이버에 이송 값을 지령한다.
종래의 기술 구성은 도2의 동작을 하나의 모션 제어기에서 수행하고 그 시스템 구성은 도1과 같다. 즉 모든 모션관련 동작을 하나의 제어기에서 계산하고 관리한다.
위에서 설명한 도2의 흐름을 더욱 자세히 설명한다. 도2의 이송 프로그램은 사용자가 기계의 이송궤적과 이송속도를 지령하는 명령어로 다음과 같이 예를 들어 작성할 수 있다.
LINEAR X100.0 Y50.0 Z0.0 F1000
CCW X0.0 Y0.0 I-100.0 J-100.0 F200
......
위와 같이 이송 프로그램을 사용자가 작성하여 모션 제어기에 저장한다. 첫 번째 명령줄은 X,Y,Z축이 현재 위치에서 X100.0 Y50.0 Z0.0의 위치로 속도 1000을 가지고 직선 보간을 수행하라는 명령이고, 두 번째 명령은 X,Y축이 반시계 방향으로 속도 200으로 원호 보간을 수행하라는 명령으로 가정한다.
위의 프로그램을 수행하라는 지령을 모션 제어기에 내리면, 도2의 해석기(interpreter)는 이송 프로그램을 순차적으로 읽어 들이고 첫 명령부터 순차적으로 해석하여 이송 위치에 해당하는 위치 합성벡터를 도3과 같이 발생한다.
상기 해석기(Interpreter)에서 만든 위치 합성벡터에는 속도의 개념은 가입되어 있지 않다. 이렇게 만든 위치 합성벡터를 인터포래이터(Interpolator)에서 속도의 개념을 가미하여 일정 시간동안 이송할 위치 합성벡터로 분할한다. 다른 말로하면 도2의 모션 제어기의 모션 제어 루프(loop)는 일정주기의 샘플링 타임(sampling time)으로 모션 제어를 실행하고 있음으로 이 샘플링 타임(sampling time)동안 이송할 위치 합성벡터로 분할하여 계산한다는 의미이다. 이와 같은 이송시간의 개념을 가지고 생성된 프로파일을 도4의 왼쪽에 묘사하였다.
상기 인터포래이터(Interpolator)에서 그림4의 왼쪽과 같이 생성된 이송 프로파일에 가감속 제어를 적용(여기서는 보간 후 가감속 제어를 적용한다.)하면 도4의 오른쪽과 같은 사다리꼴 이송 프로파일이 생성된다. 도4의 오른쪽과 같이 생성된 사다리꼴 이송 프로파일을 인터포래이터(Interpolator)에서 샘플링 타임(sampling time)을 기준으로 하는 이송거리로 분배한 다음 이 값을 각 축의 샘플링(sampling) 당 이송거리로 계산하고 이 결과 값을 도2와 같이 모션 제어 루프(loop)에 전달한다.
도5는 모션 제어 루프(loop)의 동작을 묘사한 것이다. 인터포래이터(Interpolator)에서 보간 및 가감속을 적용한 샘플링 타임(sampling time) 당 각 축의 이송위치 지령을 도5의 모션 제어 루프(loop)에 전달한다. 모션 제어 루프(loop)는 인터포래이터(Interpolator)에서 지령된 위치 값과 서보 드라이브의 엔코더로부터 입력되는 위치 피드백 값과의 오차를 계산하여 내부 연산(PID제어)을 수행하고 그 결과를 속도지령으로 변환한다. 이 속도 지령값을 도5와 같이출력 포트를 통하여 서보 드라이브로 출력한다. 모션 제어기에 연결되어 있는 드라이브가 아날로그 지령을 받는 드라이브라면, 모션 제어기는 속도 값을 아날로그 신호로 전환하여 출력하고, 펄스 지령을 받는 드라이브라면 속도지령을 펄스 신호로 전환하여 출력한다.
종전의 모션 제어기는 위에서 설명한 방법으로 모터를 제어하고 모든 제어기능(interpreter, interpolator, 모션 제어 loop 등)이 하나의 모션 제어기에 구성되어 있다.
그러나, 종래의 통합된 모션 제어기는 고정된 축의 제어를 수행할 수 밖에 없다. 다른 말로하면 단축 제어기는 하나의 축만, 2축 제어기는 최대 2축, 3축 제어기는 최대 3축만을 제어하게 구성되어 있어 축을 확장할 시 제어기의 교체가 필요하다. 이송 축을 축소한다면 제어기의 기능축소 현상이 발생된다.
또한 두개 이상의 모션 제어기가 하나의 네트워크상에 존재할 때 독립된 각각의 인터포래이터(Interpolator)가 시스템에 존재하여 다른 제어기들간의 축간 보간 운전이 불가능하다. 다른 말로 제어기1의 X축과 제어기2의 Y축간의 보간 운전을 구현할 수 없다는 것이다.
또한 두개의 모션 제어기가 기계상의 하나의 축을 공유하는 기능이 필요할 때 기존의 3축 제어기로는 적용이 불가능하다. 이 기능을 구현하기 위해서 는 5축 이상의 채널기능을 보유하고 있는 고가의 고급 제어기로만 구현 가능한 기능이다. 그러므로 채널 개념을 가지고 있지 않은 3축 제어기에서는 각각의 인터포래이터(Interpolator)가 존재하여 하나의 축을 두 제어기가 공유한다면, 한축에 두개의 모션 제어 루프(loop)가 형성되어 모션 제어구성이 파괴되어 축의 제어가 되지 않는다 그러므로 하나의 축을 두개의 제어기가 공유하는 시스템 구성의 적용이 불가능한 문제점이 있다.
상기한 문제점을 해결하기 위하여 인출된 본 발명은 종래의 모션 시스템의 인터포래이션(interpolation) 부분을 네트워크를 통하여 마스터(Master)의 주 인터포래이션(interpolation)과 슬래이브(Slave)의 보조 인터포래이션(interpolation)으로 분리하는 방법과 네트워크(network)상에서 보간을 하는 시스템간의 동작을 보간 동기화 시키고, 분리된 모션 제어기간의 보간 및 제한된 축의 제어, 단순 제어기간의 축 공유 문제점을 해소하기 위하여 모션제어기의 인터포래이터(interpolator)부분 또는 모션 제어 루프(loop)부분을 네트워크를통하여 구현 함으로써 모션 제어기의 구성상 유연성을 구현하고, 네트워크를 통하여 분리된 제어기간의 보간을 구현할 수 있게 하는 목적을 제공한다.
도1은 종래 모션제어기 시스템의 구성도.
도2는 종래 모션제어기의 동작순서도.
도3은 종래 합성위치벡터를 도시한 그래프.
도4는 종래 속도와 시간의 이송 프로파일을 도시한 도면.
도5는 종래 모션 제어 루프(loop)를 도시한 도면.
도6은 본 발명 네트워크 보간의 시스템 구성도.
도7은 본 발명 주 모션제어기의 동작순서도.
도8은 본 발명 보조 모션제어기의 동작순서도.
도9은 본 발명 네트워크의 환경설정 단계를 도시한 도면.
도10은 본 발명 주 모션제어기의 이송프로파일을 도시한 도면.
도11은 본 발명 보조 모션제어기의 합성벡터를 도시한 도면.
도12는 본 발명 보조 모션제어기의 이송 프로파일을 도시한 도면.
도13은 본 발명 네트워크 보간동작을 시점별로 도시한 도면.
도14는 본 발명 Network interpolation gap time(ngt)을 도시한 도면.
도15는 본 발명 주 모션제어기와 보조 모션제어기의 통신 플로우챠트.
도16은 본 발명 주 모션제어기의 동작상태를 도시한 도면.
도17은 본 발명 보조 모션제어기의 동작상태를 도시한 도면.
도18은 본 발명 네트워크 동기화의 동작을 도시한 도면.
상기한 목적은, 본 발명에 따라, 모터를 이용하여 기계의 동작을 제어하는 모션 제어기의 보간 기능을 네트워크를 이용하여 분산 구현하는 모션 제어기의 네트워크 보간 운전방법에 있어서, 모션 제어기들의 보간 운전을 주 보간 운전 모션 제어기(Master)와 보조 보간 운전 모션 제어기(Slave)로 나누어 운전하는 방식과 이 나누어진 모션 제어기 간의 데이터 통신 및 내부 연산을 일정 시간안에 안정하게 구현하기 위하여 네트워크 보간 시간(Network Sampling Time)을 설정하는 방법과, 네트워크 보간 시간을 주기로 발생되는 보간 동기 명령에 대한 주 보간 운전 모션 제어기와 보조 보간 운전 모션 제어기의 동작과, 보조 보간 운전 제어기가 네트워크 보간 시간 개념을 이용하여 보조 보간들의 시작 시점을 네트워크를 통하여 일치 시키는 방법을 포함하는 것을 특징으로 하는 모션 제어기의 네트워크 보간 운전방법에 의해 달성된다.
그리고, 상기 네트워크 보간 시간(Network Sampling Time)을 설정하는 방법은, 상기 네트워크 보간운전을 구현하기 위하여 전체 네트워크 설정단계시 네트워크상의 모션제어기를 주 보간 운전 모션제어기와, 보조 보간 운전 모션제어기를 구분 설정하여 일반 보조 보간 운전 모션제어기와 구분하는 단계를 더 포함한다.
또한, 상기 네트워크 보간 시간(network sampling time)은 하기된 수학식1과 같이 보조 보간 운전 모션제어기의 슬래이브 샘플링 타임(slave sampling time)의 2n(정수)배 이상되도록 설정하는 것이 바람직하다.
nst = 2 x n x sst
nst : Network sampling time (모션 제어기 master의 interpolation sampling time)
sst : sampling time(모션 제어기 slave의 interpolation sampling time)
n : 정수 (1 이상의 값)
그리고, 상기 네트워크설정단계에서 설정되는 네트워크 보간시간(nst)은 통신을 통하여 구현되는 정주기의 시간임으로 통신의 물리적 매체의 특성을 포함하여 안정되게 설정되어야 한다. 그러므로 네트워크 보간시간(nst)는 물리적 매체의 특성를 포함하게 조정하기 위해 하기된 수학식2도 만족하여야 한다.
nst ≥ fbt × fcount + ((fcount-1) × st) + rcv
nst : Network sampling time
fbt : 가장 긴 전송 프레임의 통신시간
fcount : nst 시간 안에 통신할 통신 프레임의 개수
st : 연속으로 데이터 통신 시 프레임간의 sleep time
rcv : 에러 발생시 복구 시간(fcount × rcv_one)
rcv_one : 하나의 에러 프레임에 대한 복구시간 및 재전송 시간
또한, 보조 보간 모션 제어기간에 네트워크 갭 시간(Network Interpolation gap time)을 설정하여 상위로부터 지령되는 동기 신호의 안정된 구간을 구현하고 모든 보조 보간 제어기들이 네트워크 갭 시간(Network Interpolation gap time)후에 보조 인터폴래이션을 시작함으로 보조 제어기간의 보간 동기를 일치 시키도록하는 것이 바람직하다.
rcv_sone + sfbt = ngt < 1/2 × nst
ngt : Network Interpolation gap time
nst : Network sampling time
rcv_sone : 보간 동기 명령 프레임의 에러 프레임에 대한 복구시간 및 재전송 시간
sfbt : 보간 동기 명령 프레임의 통신 시간
상기한 구성으로 된 본 발명의 기술을 설명하면 다음과 같다.
본 발명은 네트워크을 통하여 보간을 구현하는 방법으로 시스템 구성은 그림6과 같다.
여기에 제시되어 있는 시스템 구성은 3축 보간을 지원하는 네트워크 인터포래이션(Interpolation) 시스템을 예로 하고 구동 장비는 서보 모터를 예로 하여 설명한다. 그림6의 왼쪽에 있는 모션 제어기(Master)는 네트워크에 연결되어 있는 모든 장비를 제어하기 위한 주 제어장치 이다. 이 장치는 네트워크에 연결되어 있는 모든 모션 제어기(Slave)들에 대한 지령을 전송하고, 슬래이브(slave)들의 상태를 검사한다. 그림6에서 네트워크으로 표시되어 있는 통신방법은 특정한 통신방법이 아니고 현재 사용되고 있는 모든 Serial 통신 방법 또는 향후에 적용될 유,무선 통신방법으로 구현이 가능하다. 적용 가능한 통신 방법으로는 Profibus, Device-Net, CAN 등의 Fieldbus와 일반적으로 사용되고 있는 Ethernet으로 구현할 수 있다. 그림6의 슬래이브(slave)는 마스터(Master)로부터 명령을 받아 기계의 구동 시스템(Servo Motor, Stepping Motor, Inverter 등)을 제어하는 모션 제어기로, 여기서는 이 모션 제어기를 하나의 축을 제어하는 단축 모션 제어기로 가정하여 설명한다. 이 발명에서 Slave는 단축 제어기 이상의 모션 제어기로 구성이 가능하다.그림6의 오른쪽에 표시되어 있는 서보 드라이브와 서보 모터는 시스템을 구동하기 위한 구동장치로 표시되었다.
다음으로 그림6의 마스터(Master)와 슬래이브(slave)의 동작에 대한 간략한 동작을 설명한다.
그림7은 그림6의 모션 제어기(Master)에 대한 SW동작을 간략하게 도식화한 것이다. 그림7의 이송 프로그램은 시스템이 부착되어 있는 기계의 이동궤적과 이송속도를 정의한 사용자 프로그램이다. 마스터(Master)를 구동하라는 명령을 내리면, 그림7의 해석기(Interpreter)가 이송 프로그램을 해석하여 합성위치 벡터를 생성하고 그 결과와 합성 이송속도를 그림7의 인터포래이터(Interpolator)로 전송한다. 합성위치 벡터와 이송속도를 받은 인터포래이터(Interpolator)는 속도와 시간의 개념에 대한 이송 프로파일(그림4의 왼쪽)을 만든다. 여기서 샘플링 타임(sampling time)은 기존의 샘플링 타임(sampling time)개념이 아닌 네트워크 샘플링 타임(network sampling time) 개념이고 이에 대해서는 아래에서 자세히 설명한다. 인터포래이터(Interpolator)에서 만든 합성 이송 프로파일에 가감속 제어(본 발명에서는 설명의 편리성을 위하여 가감속 제어를 사다리꼴 제어로 예로 들어서 설명한다.)를 적용하여 사다리꼴 이송 프로파일(그림4의 오른쪽)을 만들고 이 프로파일을 네트워크 샘플링 타임(network sampling time)으로 분할하고 이 분할된 합성 이송거리를 슬래이브(slave)에서 이송하기 위한 각 축의 이송거리로 계산한다. 이 각축의 이송거리를 네트워크을 통하여 해당 슬래이브(slave)에 전송한다.
그림8은 그림6의 모션 제어기(slave)의 동작을 간략히 도식화한 것이다. 마스터(Master)로부터 전송되는 네트워크 샘플링 타임(network sampling time)동안의 이송지령을 그림8의 Network Command로 전송 받는다. 슬래이브(slave)는 상위로부터 전송 받은 network command를 보조 인터포래이터(Interpolator)를 통하여 슬래이브 샘플링 타임(slave sampling time)동안 이송할 지령으로 재 보간을 한다. 이렇게 재 보간된 이송지령을 모션 제어 루프(loop)로 전송하고 모션 제어 루프(loop)에서는 현재 위치와 지령 위치에 의한 계산을 수행하고 그 결과를 구동 드라이브에 출력할 신호(아날로그 또는 펄스)로 전환하여 포트로 출력한다.
전체 시스템의 구성은 그림6, 모션 제어기(master)의 기본 동작은 그림7, 모션 제어기(slave)의 기본 동작은 그림8에 표시하였다.
본 발명은 종래의 모션 시스템의 인터포래이션(Interpolation) 부분을 네트워크을 통하여 마스터(Master)의 주 인터포래이션(Interpolation)과 슬래이브(slave)의 보조 인터포래이션(Interpolation)으로 분리하는 방법과 네트워크상에서 보간을 하는 시스템간의 동작을 보간 동기화 시키는 방법에 주안점을 두어 설명한다.
먼저, 네트워크을 구성하는 방법과 네트워크 인터포래이션(Network Interpolation)을 구현하기 위한 기본 파라메터에 대하여 설명한다. 그림6과 같이 하나의 네트워크 상에 설치되어 있는 모션 제어기들을 구분하기 위하여 각각의 제어기에 네트워크상의 이름을 부여해야 한다. 이러한 방법 중 일반적인 방법은 각각의 모션 제어기들에 독립된 network address를 설정하는 것이다. 만약 적용되는 네트워크가 network address 설정이외의 다른 방식으로 각 노드들을 구분한다면 네트워크의 사양에 의거하여 각 노드를 네트워크상에서 구분할 수 있게끔 설정하면 된다. 여기서는 network address 설정방식으로 각 노드들을 구분하여 설명한다. 각 모션 제어기들의 network address를 설정한 다음 어느 모션 제어가 마스터(Master)이고 인터포래이션(Interpolation) 슬래이브(slave)인지를 설정한다. 그리고 마스터(Master)에 제어할 슬래이브(slave)들에 대한 내부 이름(X,Y,Z축 등)을 기 설정된 스래이브(slave)들의 network address와 연관되게 설정한다.
그리고, 네트워크(Network Interpolation)에 참여하고 있는 전 모션 제어기에 네트워크 샘플링 타임(network sampling time)을 설정한다. 이 시간은 마스터(Master)에서 슬래이브(slave)에 일정한 시간을 주기로 이송 명령을 전송하고 보간 동기 신호 명령을 지령하는 최소한의 시간으로 슬래이브(slave)의 슬래이브 샘플링 타임(slave sampling time) 보다는 큰 값이어야 한다.
그림 9는 network configuration의 설정에 대한 개략적인 방법을 보여주고 있다.
먼저 모든 시스템의 네트워크을 하드웨어적으로 구성하고 네트워크 설치가 완료되면, 네트워크 상에 연결되어 있는 전 장비의 노드 어드레스와 특성을 설정한다.
그리고 네트워크 샘플링 타임(network sampling time)을 설정한다. 이후부터 네트워크 샘플링 타임(network sampling time)은 nst로 표시한다. nst란 마스터(Master)의 주 인터포래이터(Interpolator)가 이송 프로파일을 설정할 때 기준이 되는 시간 단위이고 또한 네트워크을 통해 슬래이브(slave)에 보간 동기 명령을 지령하는 기준 시간이다. nst는 하기된 식(수학식 1)과 같이 슬래이브(slave)의 슬래이브 샘플링 타임(slave sampling time)(sst)의 2n배 이상 되어야 한다.
(수학식 1)nst = 2 x n x sst
nst : Network sampling time (모션 제어기 master의 interpolation sampling time)
sst : sampling time(모션 제어기 slave의 interpolation sampling time)
n : 정수 (1 이상의 값)
또한 적용되는 네트워크의 물리적 특성을 만족하기 위하여 아래의 네트워크 특성 수식도 만족해야 한다.
수학식1의 sst는 슬래이브(slave)의 HW에 의해 고정되는 값으로 nst를 결정하기 위해서는 네트워크(Network Interpolation)에 참여하고 있는 Salve들 중의 가장 큰 sst를 기준으로 하여 nst를 계산하면 안정된 nst를 얻을 수 있다. 식1에 의해 설정된 nst를 네트워크에 연결되어 보간을 지원하기 위한 전 장비(master, slave)에 설정한다.
그리고 nst는 어떠한 통신 매체와 통신 속도를 가지고 통신을 수행하는 지에 의해 그 값이 종속된다. 수학식1에 의해 결정된 값이라고 하기된 식(수학식2)를 만족하지 않으면 nst안에 안정된 네트워크(Network Interpolation)을 수행할 수 없다. 그러므로 nst를 설정할 때 수학식1과 수학식2를 만족하는 nst를 설정하여야 한다.
(수학식 2)nst ≥ fbt × fcount + ((fcount-1) × st) + rcv
nst : Network sampling time
fbt : 가장 긴 전송 프레임의 통신시간
fcount : nst 시간 안에 통신할 통신 프레임의 개수
st : 연속으로 데이터 통신 시 프레임간의 sleep time
rcv : 에러 발생시 복구 시간(fcount × rcv_one)
rcv_one : 하나의 에러 프레임에 대한 복구시간 및 재전송 시간
nst의 값을 모든 장비에 설정한 후 슬래이브(slave)이 보간 동기 명령의 입력에 대한 안정된 통신 시간의 시간 영역을 확보하기 위한 네크워크 갭 시간(Network Interpolation gap time)을 계산한 후 모든 슬래이브(slave)에 동일한 값으로 설정해야 한다. 아래서 부터는 네트워크 갭 시간을 ngt로 표시한다. 또한 ngt는 모든 슬래이브(slave)의 sst의 정수배(xn)의 값으로 하는 것이 완벽한 네트워크 보간을 구현할 수 있다.
(수학식 3) rcv_sone + sfbt <= ngt < 1/2 × nst
ngt : Network Interpolation gap time
nst : Network sampling time
rcv_sone : 보간 동기 명령 프레임의 에러 프레임에 대한 복구시간 및 재전송 시간
sfbt : 보간 동기 명령 프레임의 통신 시간
다음으로 모션 제어기(master)의 동작에 대하여 설명한다.
그림7의 이송 프로그램을 해석기(interpreter)가 해석하여 그림3의 합성위치 벡터를 생성하여 인터포래이터(Interpolator)로 생성된 합성 위치 벡터와 이송속도를 전송한다. 인터포래이터(Interpolator)는 nst를 기준단위로 하여 그림10의 왼쪽과 같은 이송 프로파일을 생성한다.
이 프로파일을 가감속 제어를 적용하여 그림10의 오른쪽과 같은 합성 프로파일을 생성하고 nst시 이송할 거리로 프로파일을 분할하고 이 값을 다시 각 축의 이송거리로 분할한 후 하나의 nst 시간안에 전체 slave에 이송할 거리를 전송하고, 전체 슬래이브(slave)가 동시에 알 수 있는 global network command또는 group network command를 전송한다. 여기서 global network command 또는 group network command는 네트워크(Network Interpolation)에 참여하고 있는 전체 노드의 동기를 맞추는 신호로 다음부터는 global network command라는 명칭으로 설명한다. 이 신호에 대해서는 다음의 네트워크 동기 설명 시 자세히 한다.
슬래이브(slave)의 동작은 그림8에 묘사되어 있다. 슬래이브(slave)가 네트워크을 통하여 nst동안 이송할 거리를 마스터(Master)로부터 지령 받은 다음 global network command를 받으면 이 신호와 동기되어 일정시간(ngt) 후 보조 인터포래이터(Interpolator)에서 보간을 수행한다.
슬래이브(slave)의 보조 보간은 그림11과 같이 이루어진다. 여기서 T축은 시간에 대한 축이고, P축은 위치에 대한 축이다. 전의 nst동안 받은 위치를 기준으로 하여 시간에 대한 위치 벡터(S)를 생성하고 이 위치 벡터를 기준으로 하여 sst의위치 벡터(s)를 생성한다. 이송속도는 nst와 tp에 의해 계산되어 진다. 보조 인터포래이터(Interpolator)는 시간의 위치 벡터(S)를 가지고 전에 생성된 이송프로파일을 참조하여 새로운 이송 프로파일을 그림12와 같이 연속으로 생성한다. 이와 같은 동작을 매 nst시간동안 보간 동기 명령에 의해 반복 실행한다.
그림12의 이송 프로파일에서 sst기간동안의 이송거리를 그림8과 같이 모션 제어루프로 전달하면 그림5와 같은 동작으로 모션 제어루프가 동작하여 그 결과 값을 출력 포트를 통하여 출력한다.
위에서 모션제어기 마스터(Master)와 슬래이브(slave)에 대한 간략한 동작을 설명하였고 이 동작이 네트워크상에서 어떤 시간의 개념으로 동작되는지를 설명한다.
그림13은 마스터(master)와 슬래이브(slave)의 통신 흐름을 보여주고 있다. 마스터(Master)는 네트워크상의 슬래이브(slave)의 보간 주기를 일정하게 하기 위하여 일정 주기(nst)로 전체 보간 동기 명령(global network command)을 내린다. 이때 이 보간 동기 명령은 네트워크 보간에 관련되는 모든 슬래이브(slave)들이 동시에 수신할 수 있는 명령이어야 한다. 슬래이브(slave)들은 보간 동기 신호를 받은 다음 일정시간(ngt) 후에 일제히 보간 동기 신호 직전에 들어온 위치 명령에 대하여 보조 보간을 수행하고 그 결과를 실행한다. 또한 슬래이브(slave)들은 보간 동기 신호를 받은 시점에서 제어하고 있는 이송축의 현재 위치를 저장하고 마스터(Master)에서 위치 정보요청이 들어오면 보간 동기 신호시 저장한 위치를 마스터(Master)에 전달하여 마스터(Master)에서 네트워크 보간에 대한 관리를 수행할수 있게 한다. 그리고 마스터(Master)는 다음 보간 동기명령을 지령하기 전에 다음 구간에서 보조 보간 할 위치를 슬래이브(slave)들에 전송한다. 이러한 동작을 일정주기(nst)로 반복한다.
네트워크을 통하여 보간 동기 신호를 지령하다 보면 통신오류에 의하여 정확한 주기로 명령을 지령할 수 없게 될 수도 있다. 이 오류를 보정하기 위하여 정의되는 시간을 network interpolation gap time(ngt)이라고 한다. Ngt는 slave에만 적용되는 시간으로 그림14에 표시되어 있다.
그림14와 같이 전에 발생된 보간 동기신호(nst*-1)에 대하여 현재 발생될 보간 동기신호(nst)에 대하여 +-ngt의 범위 안에 동기 신호가 슬래이브(slave)에 입력되어야 한다. 여기서 ngt값은 전체 슬래이브(slave)에 일정한 값으로 하는 것이 정확한 네트워크 보간 관리를 위하여 좋다. 만약 nst+-ngt의 시간동안 보간 동기신호가 입력되지 않는다면 슬래이브(slave)들은 네트워크 보간에 오류가 발생되어 동기가 파괴된 것으로 알고 현재 이송중인 축을 중지한다. 그리고 슬래이브(slave)는 네트워크 보간이 파괴되어 더 이상 보간을 실행할 수 없음을 마스터(Master)에 알린다. 여기서 마스터(Master)는 슬래이브(slave)로부터 받은 정보로 네트워크 보간이 파괴되었음을 알 수 있을 뿐만 아니라, 슬래이브(slave)로부터 읽어 들이는 위치정보의 변화량으로도 슬래이브(slave)의 상태를 감시할 수 있다.
또한 ngt시간은 동기신호가 들어온 다음 얼마만큼의 시간 후에 보조 보간을 수행할 지를 결정하는 기준이 된다. 동기신호가 들어온 후 최소 ngt*2시간 후에 보조 보간을 시작해야 만 네트워크(Network Interpolation)을 안정하게 수행할 수 있다. 이 시점은 nst를 기준으로 ngt*2시간이후이면 된다.
다음 그림15는 마스터(Master)와 슬래이브(slave)의 flowchart를 보여주고 있다.
한편, 본 발명의 실시예로선, 일정 시간동안 주기적인 행위를 수행하는 모션 제어기의 인터포래이션(Interpolation)을 네트워크을 통하여 구현한 것으로 인터포래이션(Interpolation)을 마스터(Master)의 주 인터포래이션(Interpolation)과 슬래이브(slave)의 보조 인터포래이션(Interpolation)으로 나누어 마스터(Master)와 슬래이브(slave)의 시간 동기를 네트워크을 통하여 구현하는 것으로 이 네트워크분할을 다르게 분리하여 다른 방법으로 네트워크 보간을 구현할 수 있다.
이 발명을 network synchronization으로 명칭하고 그 동작을 설명한다. 여기서 3축 동기 보간을 예로 하여 설명한다.
여기서 슬래이브(slave)의 동작 사양의 변경이 필요하다. 슬래이브(slave)가 1축만을 구동할 수 있더라도, 내부적인 동작은 3축 보간이 가능해야 한다.
마스터(Master)와 슬래이브(slave)의 동작은 그림16과 그림17로 설명된다. 기존 방법과 다른 점은 마스터(Master)에서는 interpreter까지만 수행되고 그 이후의 동작은 슬래이브(slave)에서 동작된다는 것이다. 여기서도 network interpolation time(nst), slave interpolation time(sst), network interpolation gap time(ngt)의 개념이 적용된다.
마스터(Master)는 그림16과 같이 이송 프로그램을 interpreter가 해석하고 해석한 결과, 즉 합성 위치벡터, 합성 이송속도, 합성 가감속 시간, 전체 이송시간을 전 슬래이브(slave)에 네트워크를 통하여 전송하고 nst시간을 주기로 하여 보간 동기신호를 주기적으로 발생한다.
슬래이브(slave)들은 마스터(Master)로부터 받은 지령을 보간 동기신호에 동기 되어 3축 보간을 실행하고 그 결과 중 자신이 제어해야 할 축의 이송 값을 축출하고 그 값을 그림 17과 같이 모션 제어 루프(loop)로 전송하고 계산된 값을 포트로 출력한다. 이 행위를 네트워크 상의 신호와 동기 되는 동작을 그림18에 표시하였다.
그림18에서와 같이 마스터(Master)는 슬래이브(slave)에 일정주기로 보간 동기명령을 지령한다. 이 지령은 받은 슬래이브(slave)는 현재 위치를 저장하고 마스터(Master)에서 상태요청명령이 지령되면 현재 위치를 반환한다. 마스터(Master)는 그림10의 오른쪽 사다리꼴 프로파일을 생성한다. 여기서 전체 보간 시간을 구하고 이 결과값(3축 위치합성 벡터, 이송속도, 가감속 시간, 전체 이송시간)을 슬래이브(slave)에 전달하고, 슬래이브(slave)는 마스터(Master)에서 받은 값을 참조로하여 그림10의 오른쪽 사다리꼴 프로파일을 sst을 기준으로 만들고 그 값을 제어 loop로 전달하고 제어 loop의 연산값을 포트로 출력한다. 여기서 nst주기의 보간 동기신호를 슬래이브(slave)들간의 보정값으로 이용하여 슬래이브(slave)들간의 보간 동기를 맞춘다. 만약 보간 동기신호가 위에서 규정된 시간안에 입력되지 않으면 네트워크 동기가 파괴된 것으로 간주하고 감속 정지 후 결과를 마스터(Master)에 전송한다.
이와 같이 네트워크 인터포래이션(Network Interpolation)을 변형하고Network Synchronization에 이용할 수 있다.
본 발명은 모션 제어기의 보간 운전시 중요 역할을 하는 해석기(interpolator)를 네트워크를 통하여 구현함으로써 분리된 제어기간의 축간 보간을 가능하게 하고, 하나의 축을 다른 두개의 보간 그룹으로 제어가 가능하게 한다. 또한, 네트워크를 통하여 보간을 구현함으로써 제한된 축의 제어기능을 해소하여 제어축의 확장성을 구현할 수 있으며, 이와 같이 모션 제어기에 유연성 및 네트워크의 계층적 구조를 추가하여 최근 활성화되고 있는 산업용 필드버스에 적용을 가능하게 한다. 아울러, 복잡한 산업용 기계를 저가의 모션 제어기들로 구현할 수 있으며, 최근 활발히 연구되고 적용되고 있는 산업용 필드버스(Profi-bus, Device Net,Ethernet등) 그리고 무선 통신방법의 통신속도 및 통신 방법이 안정화되어 가고 있는 추세에 맞추어 모션 제어기에 이러한 신 개념의 통신형 모션 제어 방법 적용하면 산업상의 이용효율이 향상되는 매우 훌륭한 발명이다.

Claims (5)

  1. 모터를 이용하여 기계의 동작을 제어하는 모션 제어기의 보간 기능을 네트워크를 이용하여 분산 구현하는 모션 제어기의 네트워크 보간 운전방법에 있어서,
    모션 제어기들의 보간 운전을 주 보간 운전 모션 제어기(Master)와 보조 보간 운전 모션 제어기(Slave)로 나누어 운전하는 방식과 이 나누어진 모션 제어기 간의 데이터 통신 및 내부 연산을 일정 시간안에 안정하게 구현하기 위하여 네트워크 보간 시간(Network Sampling Time)을 설정하는 방법과, 그리고 이 시간을 주기로 하여 주 보간 운전 모션 제어기(Master)가 보간 동기 신호를 전송하는 방식과,
    네트워크 보간 시간을 주기로 발생되는 동기 명령에 대한 주 보간 운전 모션 제어기와 보조 보간 운전 모션 제어기의 동작과, 보조 보간 운전 제어기가 네트워크 보간 시간 개념을 이용하여 보조 보간들의 시작 시점을 네트워크를 통하여 일치 시키는 방법을 포함하는 것을 특징으로 하는 모션 제어기의 네트워크 보간 운전방법.
  2. 제1항에 있어서,
    상기 네트워크 보간 시간(Network Sampling Time)을 설정하는 방법은,
    상기 네트워크 보간운전을 구현하기 위하여 전체 네트워크 설정단계시 네트워크상의 모션제어기를 주 보간 운전 모션제어기와, 보조 보간 운전 모션제어기를 구분 설정하여 일반 보조 보간 운전 모션제어기와 구분하는 단계를 더 포함하는 것을 특징으로 하는 모션 제어기의 네트워크 보간 운전방법
  3. 제1항에 있어서,
    상기 네트워크 보간 시간(network sampling time)은 하기된 수학식과 같이 보조 보간 운전 모션제어기의 슬래이브 샘플링 타임(slave sampling time)의 2n(정수)배 이상되도록 설정함을 특징으로 하는 모션 제어기의 네트워크 보간 운전방법.
    nst = 2 x n x sst
    nst : Network sampling time (모션 제어기 master의 interpolation sampling time)
    sst : sampling time(모션 제어기 slave의 interpolation sampling time)
    n : 정수 (1 이상의 값)
  4. 제1항에 있어서,
    상기 네트워크설정단계에 의한 네트워크 통신 시 정주기의 통신에 네트워크의 물리적 특성을 적용하여 안정된 허용 시간에 통신을 완료하기 위하여 네트워크 샘플링 타임을 조정하여야 한다. 그러므로, 네트워크 샘플링 타임(nst)는 하기된 수학식을 만족하도록 함을 특징으로 하는 모션 제어기의 네트워크 보간 운전방법.
    nst ≥ fbt × fcount + ((fcount-1) × st) + rcv
    nst : Network sampling time
    fbt : 가장 긴 전송 프레임의 통신시간
    fcount : nst 시간 안에 통신할 통신 프레임의 개수
    st : 연속으로 데이터 통신 시 프레임간의 sleep time
    rcv : 에러 발생시 복구 시간(fcount × rcv_one)
    rcv_one : 하나의 에러 프레임에 대한 복구시간 및 재전송 시간
  5. 제1항에 있어서,
    보조 보간 모션 제어기간에 네트워크 갭 시간(Network Interpolation gap time)을 설정하여 상위로부터 지령되는 동기 신호의 안정된 구간을 구현하고 모든 보조 보간 제어기들이 네트워크 갭 시간(Network Interpolation gap time)후에 보조 인터폴래이션을 시작함으로 제어기간의 동기를 일치 시키도록 하기된 식을 만족하는 모션 제어기의 네트워크 보간 운전방법.
    rcv_sone + sfbt <= ngt < 1/2 × nst
    ngt : Network Interpolation gap time
    nst : Network sampling time
    rcv_sone : 보간 동기 명령 프레임의 에러 프레임에 대한 복구시간 및 재전송 시간
    sfbt : 보간 동기 명령 프레임의 통신 시간
KR10-2001-0033417A 2001-06-14 2001-06-14 모션 제어기의 네트워크 보간 운전방법 KR100401161B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0033417A KR100401161B1 (ko) 2001-06-14 2001-06-14 모션 제어기의 네트워크 보간 운전방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0033417A KR100401161B1 (ko) 2001-06-14 2001-06-14 모션 제어기의 네트워크 보간 운전방법

Publications (2)

Publication Number Publication Date
KR20020095308A KR20020095308A (ko) 2002-12-26
KR100401161B1 true KR100401161B1 (ko) 2003-10-10

Family

ID=27709100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0033417A KR100401161B1 (ko) 2001-06-14 2001-06-14 모션 제어기의 네트워크 보간 운전방법

Country Status (1)

Country Link
KR (1) KR100401161B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101011032B1 (ko) * 2008-06-27 2011-01-28 한국산업기술대학교산학협력단 개방형 원격 제어 구동 방식을 적용한 개방형 모션 제어방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4879644A (en) * 1987-12-30 1989-11-07 The Boeing Company Object positioning apparatus and method
US5274311A (en) * 1991-11-13 1993-12-28 Quest Technologies, Inc. Control system network structure
JPH11272307A (ja) * 1998-03-25 1999-10-08 Hitachi Ltd モーションコントロール装置
JP2001084010A (ja) * 1999-09-13 2001-03-30 Yaskawa Electric Corp ネットワーク型サーボアンプを用いたモーションコントローラの指令方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4879644A (en) * 1987-12-30 1989-11-07 The Boeing Company Object positioning apparatus and method
US5274311A (en) * 1991-11-13 1993-12-28 Quest Technologies, Inc. Control system network structure
JPH11272307A (ja) * 1998-03-25 1999-10-08 Hitachi Ltd モーションコントロール装置
JP2001084010A (ja) * 1999-09-13 2001-03-30 Yaskawa Electric Corp ネットワーク型サーボアンプを用いたモーションコントローラの指令方法

Also Published As

Publication number Publication date
KR20020095308A (ko) 2002-12-26

Similar Documents

Publication Publication Date Title
EP3770707B1 (en) Industrial control system with distributed motion planning
US6757583B2 (en) Interpolated motion control over a serial network
US7525263B2 (en) Control system
US7983769B2 (en) Time stamped motion control network protocol that enables balanced single cycle timing and utilization of dynamic data structures
JP4840506B2 (ja) 数値制御システム
JP3010583B2 (ja) 複数軸の同調制御方式
CN107196724B (zh) 一种基于分布式时钟的多机器人控制同步系统及方法
EP1503260B1 (en) Numerical control device
JP2001150372A (ja) 複数ロボットの同期又は協調動作制御装置
KR100401161B1 (ko) 모션 제어기의 네트워크 보간 운전방법
JP2007515003A (ja) 連携して動作する異なる機器の作動方法及び装置
EP3851925B1 (en) A synchronised control system
JP2007515003A5 (ko)
CN111522313B (zh) 一种基于canopen协议控制伺服电机曲线运动的方法
WO1989005482A1 (en) Cnc control system
JPH04148303A (ja) Cncの同期動作方式
WO2019176755A1 (ja) ネットワークシステム
JPS6249503A (ja) 数値制御装置
Chen et al. Control methodologies in networked motion control systems
Lee et al. Design and Implementation of an Ethernet-Based Linear Motor Drive for Industrial Transport Systems
JP2001353685A (ja) 多軸サーボドライバ
Crawford et al. Synchronized control in a large-scale networked distributed printing system
Zhao et al. Scheduling scheme for networked motion controller in CNC system based on QoS and QoP
WO2021024523A1 (ja) 制御装置
Dietrich et al. Timing Influencing Aspects of Industrial Applications

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: 20101227

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee