KR102159698B1 - Linear motor system and driving method thereof - Google Patents

Linear motor system and driving method thereof Download PDF

Info

Publication number
KR102159698B1
KR102159698B1 KR1020180113092A KR20180113092A KR102159698B1 KR 102159698 B1 KR102159698 B1 KR 102159698B1 KR 1020180113092 A KR1020180113092 A KR 1020180113092A KR 20180113092 A KR20180113092 A KR 20180113092A KR 102159698 B1 KR102159698 B1 KR 102159698B1
Authority
KR
South Korea
Prior art keywords
driver
message
specific
motor
identifier
Prior art date
Application number
KR1020180113092A
Other languages
Korean (ko)
Other versions
KR20190033041A (en
Inventor
박도환
Original Assignee
주식회사 져스텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 져스텍 filed Critical 주식회사 져스텍
Publication of KR20190033041A publication Critical patent/KR20190033041A/en
Application granted granted Critical
Publication of KR102159698B1 publication Critical patent/KR102159698B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P25/00Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details
    • H02P25/02Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details characterised by the kind of motor
    • H02P25/06Linear motors
    • H02P25/064Linear motors of the synchronous type

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)
  • Control Of Multiple Motors (AREA)

Abstract

리니어 모터 시스템 및 그 구동 방법이 개시된다. 상기 리니어 모터 시스템의 구동 방법은, 상기 상위 제어기가 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 단계, 상기 브로드캐스트된 노드 설정 메시지를 수신한 복수 개의 모터 드라이버가 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한지 여부를 판단하는 단계, 제1 모터 드라이버가 상기 특정 드라이버 식별자가 상기 제1 모터 드라이버의 드라이버 식별자와 동일한 것으로 판단한 경우, 상기 제1 모터 드라이버가 상기 특정 노드 번호를 자신의 노드 번호로 설정하는 단계, 및 상기 제1 모터 드라이버가 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 상위 제어기로 전송하는 단계를 포함하는 것을 특징으로 한다.A linear motor system and a driving method thereof are disclosed. In the driving method of the linear motor system, the host controller uses CAN communication to the plurality of motor drivers with a node setting message including information on a specific driver identifier and a specific node number mapped to the specific driver identifier in a data field. And broadcasting, the plurality of motor drivers receiving the broadcasted node setting message determining whether their driver identifier and the specific driver identifier are the same, and the first motor driver determines whether the specific driver identifier is the same. When it is determined that the driver identifier of the first motor driver is the same, the first motor driver setting the specific node number as its own node number, and the first motor driver including the set node number in the message ID And transmitting a response message to the host controller.

Description

리니어 모터 시스템 및 그 구동 방법{Linear motor system and driving method thereof}Linear motor system and driving method thereof TECHNICAL FIELD

본 발명은 리니어 모터 시스템 및 그 구동 방법에 관한 것이다.The present invention relates to a linear motor system and a driving method thereof.

리니어 모터 시스템을 구동하게 되면 구성에 따라 십여 대에서 수십 대의 모터를 구동하게 된다. 모터마다 이를 구동하기 위한 모터 드라이버가 연결되고 이러한 모터 드라이버들을 전체적으로 제어하기 위한 상위 제어기가 연동되어야 한다.When driving a linear motor system, a dozen to dozens of motors are driven depending on the configuration. For each motor, a motor driver for driving it is connected, and a host controller for controlling these motor drivers as a whole must be linked.

상위 제어기와 모터 드라이버 간의 통신은 다양하게 구성할 수 있는데, 상위 제어기가 여러 대의 모터 드라이버들을 서로 구분하기 위하여 각 모터 드라이버들에 노드 번호를 할당하게 된다.Communication between the host controller and the motor driver can be configured in various ways, and the host controller allocates node numbers to each of the motor drivers in order to distinguish between several motor drivers.

종래에는 모터 드라이버에 딥 스위치(dip switch)나 로터리 스위치(rotary switch)를 연결하고, 각 스위치를 관리자가 직접 작업하여 노드 번호를 할당하는 방법을 사용해왔다. 이러한 방법은 간단한 방법이지만, 수십 대의 모터 드라이버에 이러한 작업을 하다 보면 작업자의 실수에 의해서 동일한 노드 번호가 부여될 수 있는 문제가 있다. 또한, 장비 운용 중 일부 모터 드라이버를 교체할 때 작업자의 실수에 의해서 노드 번호가 제대로 설정되지 않은 채 교체가 되면 장비 유지 보수가 어렵게 되는 문제가 있다.Conventionally, a method of connecting a dip switch or a rotary switch to a motor driver and assigning a node number to each switch has been used. This method is a simple method, but there is a problem in that the same node number may be assigned due to an operator's mistake when performing such work on dozens of motor drivers. In addition, when some motor drivers are replaced during equipment operation, there is a problem that equipment maintenance becomes difficult if the node number is not properly set due to an operator's mistake.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 모터 드라이버마다 고유로 할당된 값을 기반으로 각 모터 드라이버에 노드 번호를 부여하고 이에 따라 메시지 ID를 관리하여 CAN 통신을 수행하는 리니어 모터 시스템 및 그 구동 방법을 제공하는 것을 목적으로 한다.The present invention is to solve the above problems, and a linear motor system for performing CAN communication by assigning a node number to each motor driver based on a value uniquely assigned to each motor driver and managing a message ID accordingly, and It aims to provide a driving method.

본 발명의 일 실시예에 의한 리니어 모터 시스템의 구동 방법은, 상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템의 구동 방법에 있어서, 상기 상위 제어기가 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 단계, 상기 브로드캐스트된 노드 설정 메시지를 수신한 복수 개의 모터 드라이버가 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한지 여부를 판단하는 단계, 제1 모터 드라이버가 상기 특정 드라이버 식별자가 상기 제1 모터 드라이버의 드라이버 식별자와 동일한 것으로 판단한 경우, 상기 제1 모터 드라이버가 상기 특정 노드 번호를 자신의 노드 번호로 설정하는 단계, 및 상기 제1 모터 드라이버가 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 상위 제어기로 전송하는 단계를 포함하는 것을 특징으로 한다.In the driving method of a linear motor system according to an embodiment of the present invention, in the driving method of a linear motor system including a host controller and a plurality of motor drivers, the host controller is mapped to a specific driver identifier and the specific driver identifier. Broadcasting a node setting message including information on a specific node number in a data field to the plurality of motor drivers using CAN communication, and the plurality of motor drivers receiving the broadcasted node setting message are their drivers Determining whether the identifier and the specific driver identifier are the same, when the first motor driver determines that the specific driver identifier is the same as the driver identifier of the first motor driver, the first motor driver selects the specific node number And setting a node number of the first motor driver, and transmitting, by the first motor driver, a response message including the set node number in a message ID to the host controller.

본 발명의 일 실시예에 의한 리니어 모터 시스템의 구동 방법은, 상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템의 구동 방법에 있어서, 상기 상위 제어기가 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 단계, 및 상기 상위 제어기가 상기 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 제1 모터 드라이버로부터 상기 특정 노드 번호를 메시지 ID에 포함하는 응답 메시지를 수신하는 단계를 포함하는 것을 특징으로 한다.In the driving method of a linear motor system according to an embodiment of the present invention, in the driving method of a linear motor system including a host controller and a plurality of motor drivers, the host controller is mapped to a specific driver identifier and the specific driver identifier. Broadcasting a node setting message including information on a specific node number in a data field to the plurality of motor drivers using CAN communication, and a specific driver identifier included in the broadcasted node setting message by the host controller And receiving a response message including the specific node number in the message ID from the first motor driver which is the same as its driver identifier.

본 발명의 일 실시예에 의한 리니어 모터 시스템의 구동 방법은, 상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템의 구동 방법에 있어서, 상기 모터 드라이버가 상기 상위 제어기로부터 CAN 통신을 이용하여 브로드캐스트된 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 수신하는 단계, 상기 모터 드라이버가 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한지 여부를 판단하는 단계, 상기 특정 드라이버 식별자가 상기 모터 드라이버의 드라이버 식별자와 동일한 것으로 판단된 경우, 상기 모터 드라이버가 상기 특정 노드 번호를 자신의 노드 번호로 설정하는 단계, 및 상기 모터 드라이버가 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 상위 제어기로 전송하는 단계를 포함하는 것을 특징으로 한다.In the driving method of a linear motor system according to an embodiment of the present invention, in the driving method of a linear motor system including a host controller and a plurality of motor drivers, the motor driver broadcasts from the host controller using CAN communication. Receiving a node setting message including information on a specific driver identifier and a specific node number mapped to the specific driver identifier in a data field, wherein the motor driver determines whether its own driver identifier and the specific driver identifier are the same. Determining, when it is determined that the specific driver identifier is the same as the driver identifier of the motor driver, the motor driver setting the specific node number as its own node number, and the motor driver setting the set node number And transmitting a response message included in the message ID to the host controller.

일 실시예에서, 상기 브로드캐스트된 노드 설정 메시지는, 마스터에서 슬레이브로의 전송을 나타내는 정보 및 브로드캐스트 메시지임을 나타내는 정보를 메시지 ID에 포함하는 것을 특징으로 한다.In one embodiment, the broadcasted node configuration message includes information indicating transmission from a master to a slave and information indicating a broadcast message in a message ID.

일 실시예에서, 상기 마스터에서 슬레이브로의 전송을 나타내는 정보는 슬레이브에서 마스터로의 전송을 나타내는 정보보다 높은 메시지 우선순위를 나타내는 것을 특징으로 한다.In one embodiment, the information indicating transmission from the master to the slave is characterized in that it indicates a higher message priority than information indicating the transmission from the slave to the master.

일 실시예에서, 상기 응답 메시지는, 슬레이브에서 마스터로의 전송을 나타내는 정보를 메시지 ID에 포함하는 것을 특징으로 한다.In one embodiment, the response message is characterized in that the message ID includes information indicating transmission from the slave to the master.

일 실시예에서, 상기 복수 개의 모터 드라이버의 드라이버 식별자는, 상기 복수 개의 드라이버 각각에 포함된 마이크로컨트롤러의 고유 식별자에 해시 함수를 적용하여 얻은 값이며, 상기 마이크로컨트롤러의 고유 식별자보다 데이터 길이가 짧은 것을 특징으로 한다.In one embodiment, the driver identifier of the plurality of motor drivers is a value obtained by applying a hash function to a unique identifier of a microcontroller included in each of the plurality of drivers, and a data length is shorter than that of the microcontroller. It is characterized.

일 실시예에서, 상기 상위 제어기는, 상기 복수 개의 모터 드라이버 각각의 드라이버 식별자 및 상기 각각의 드라이버 식별자에 맵핑되는 노드 번호를 포함하는 대응 테이블을 저장하는 것을 특징으로 한다.In one embodiment, the host controller is characterized in that it stores a correspondence table including a driver identifier of each of the plurality of motor drivers and a node number mapped to each driver identifier.

일 실시예에서, 상기 상위 제어기는, 상기 대응 테이블에 포함된 상기 복수 개의 드라이버 식별자 중에서 서로 동일한 것이 존재하는 경우, 새로운 해시 함수를 상기 고유 식별자에 적용하여 상기 드라이버 식별자로 변환하고 상기 대응 테이블을 변경하는 것을 특징으로 한다.In one embodiment, the host controller, when the same among the plurality of driver identifiers included in the correspondence table, applies a new hash function to the unique identifier, converts it to the driver identifier, and changes the correspondence table. Characterized in that.

일 실시예에서, 상기 상위 제어기는, 상기 해시 함수가 새로운 해시 함수로 변경되는 경우, 상기 새로운 해시 함수에 관한 정보를 상기 복수 개의 모터 드라이버에게 CAN 메시지로 브로드캐스트하는 것을 특징으로 한다.In one embodiment, when the hash function is changed to a new hash function, the host controller broadcasts information on the new hash function to the plurality of motor drivers as CAN messages.

일 실시예에서, 상기 상위 제어기는, 상기 노드 설정 메시지의 데이터 필드에 해당 드라이버 식별자에 적용된 해시 함수에 관한 정보를 포함시키는 것을 특징으로 한다.In one embodiment, the host controller includes information on a hash function applied to a corresponding driver identifier in a data field of the node configuration message.

일 실시예에서, 상기 상위 제어기는, 상기 제1 모터 드라이버로부터 상기 응답 메시지를 수신한 경우, 상기 특정 드라이버 식별자를 다른 드라이버 식별자로 변경하고 상기 특정 노드 번호를 상기 변경된 드라이버 식별자에 맵핑된 노드 번호로 변경한 후 상기 변경된 특정 드라이버 식별자 및 상기 변경된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 것을 특징으로 한다.In one embodiment, the host controller, when receiving the response message from the first motor driver, changes the specific driver identifier to another driver identifier and converts the specific node number to a node number mapped to the changed driver identifier. After the change, a node configuration message including information on the changed specific driver identifier and the changed specific node number in a data field is broadcast to the plurality of motor drivers using CAN communication.

일 실시예에서, 상기 상위 제어기는, 상기 노드 설정 메시지를 상기 복수 개의 모터 드라이버로 브로드캐스트한 후 소정 시간 이내에 상기 응답 메시지를 수신하지 못한 경우, 에러 메시지를 출력하는 것을 특징으로 한다.In an embodiment, the host controller outputs an error message when the response message is not received within a predetermined time after broadcasting the node setting message to the plurality of motor drivers.

본 발명의 일 실시예에 의한 리니어 모터 시스템은, 상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템에 있어서, 상기 상위 제어기는, 상기 복수 개의 모터 드라이버와 CAN 통신을 수행하는 제1 CAN 통신부, 상기 복수 개의 모터 드라이버 각각의 드라이버 식별자 및 상기 각각의 드라이버 식별자에 맵핑되는 노드 번호를 포함하는 대응 테이블을 저장하는 저장부, 및 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 제1 CAN 통신부를 통해 상기 복수 개의 모터 드라이버에게 브로드캐스트하고, 상기 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 모터 드라이버로부터 상기 특정 노드 번호를 메시지 ID에 포함하는 응답 메시지를 수신하는 경우, 상기 특정 드라이버 식별자를 다른 드라이버 식별자로 변경하여 상기 노드 설정 메시지의 브로드캐스트를 다시 수행하는 제어부를 포함하고, 상기 복수 개의 모터 드라이버 각각은, 상기 상위 제어기와 CAN 통신을 수행하는 제2 CAN 통신부, 및 상기 제2 CAN 통신부를 통해 상기 상위 제어기로부터 상기 브로드캐스트된 노드 설정 메시지를 수신하고, 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한 것으로 판단된 경우, 상기 특정 노드 번호를 자신의 노드 번호로 설정하고, 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 제2 CAN 통신부를 통해 상기 상위 제어기로 전송하는 마이크로컨트롤러를 포함하는 것을 특징으로 한다.In the linear motor system according to an embodiment of the present invention, in a linear motor system including a host controller and a plurality of motor drivers, the host controller includes: a first CAN communication unit performing CAN communication with the plurality of motor drivers, A storage unit for storing a correspondence table including a driver identifier of each of the plurality of motor drivers and a node number mapped to the driver identifier, and information on a specific driver identifier and a specific node number mapped to the specific driver identifier. The node setting message included in the data field is broadcast to the plurality of motor drivers through the first CAN communication unit, and the specific driver identifier included in the broadcasted node setting message is the same as the driver ID from the motor driver. When receiving a response message including a specific node number in the message ID, a control unit for re-broadcasting the node setting message by changing the specific driver identifier to another driver identifier, each of the plurality of motor drivers , A second CAN communication unit performing CAN communication with the host controller, and receiving the broadcasted node setting message from the host controller through the second CAN communication unit, and the own driver identifier and the specific driver identifier are the same. When it is determined, the specific node number is set as its own node number, and a microcontroller for transmitting a response message including the set node number in a message ID to the host controller through the second CAN communication unit. To do.

본 발명은, 본 발명의 일 실시예에 의한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.The present invention includes a computer-readable recording medium in which a program for executing a method according to an embodiment of the present invention on a computer is recorded.

본 발명은, 본 발명에서 사용되는 메시지의 데이터 포맷을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.The present invention includes a computer-readable recording medium recording the data format of a message used in the present invention.

상기와 같은 본 발명에 따른 리니어 모터 시스템 및 그 구동 방법은, 모터 드라이버마다 고유로 할당된 값을 기반으로 각 모터 드라이버에 노드 번호를 부여하고 이에 따라 메시지 ID를 관리하여 CAN 통신을 수행할 수 있는 효과가 있다.In the linear motor system and its driving method according to the present invention as described above, a node number is assigned to each motor driver based on a value uniquely assigned to each motor driver, and accordingly, a message ID is managed to perform CAN communication. It works.

도 1은 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 리니어 모터 시스템에서 사용하는 CAN 메시지의 포맷을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법의 흐름을 도시한 흐름도이다.
1 is a view schematically showing the configuration of a linear motor system according to an embodiment of the present invention.
2 is a diagram illustrating a format of a CAN message used in a linear motor system according to an embodiment of the present invention.
3 is a flowchart illustrating a flow of a method of driving a linear motor system according to an embodiment of the present invention.

이하에서 본 발명의 기술적 사상을 명확화하기 위하여 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하도록 한다. 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성요소에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략할 것이다. 도면들 중 실질적으로 동일한 기능구성을 갖는 구성요소들에 대하여는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들을 부여하였다. 설명의 편의를 위하여 필요한 경우에는 장치와 방법을 함께 서술하도록 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to clarify the technical idea of the present invention. In describing the present invention, when it is determined that a detailed description of a related known function or component may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. Constituent elements having substantially the same functional configuration among the drawings are assigned the same reference numerals and reference numerals as possible even though they are indicated on different drawings. If necessary for convenience of explanation, the device and the method will be described together.

도 1은 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구성을 개략적으로 도시한도면이다. 도 1을 참조하면, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, 상위 제어기(100), 및 복수 개의 모터 드라이버(200)를 포함할 수 있다. 복수 개의 모터 드라이버(200)는 K개의 모터 드라이버(200_1, 200_2, ??, 200_K)로 구성될 수 있으며 각각 제1 모터 드라이버(200_1), 제2 모터 드라이버(200_2), 제K 모터 드라이버(200_K) 등으로 정의될 수 있다. 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은 여러 개의 모터를 구동해야 하는 다축 구동 시스템 등에 적용될 수 있다.1 is a diagram schematically showing the configuration of a linear motor system according to an embodiment of the present invention. Referring to FIG. 1, a linear motor system 1000 according to an embodiment of the present invention may include a host controller 100 and a plurality of motor drivers 200. The plurality of motor drivers 200 may be composed of K motor drivers 200_1, 200_2, ??, 200_K, respectively, a first motor driver 200_1, a second motor driver 200_2, and a Kth motor driver 200_K. ), etc. The linear motor system 1000 according to the exemplary embodiment of the present invention may be applied to a multi-axis driving system that must drive a plurality of motors.

상위 제어기(100) 및 복수 개의 모터 드라이버(200)는 CAN(Control Area Network) 통신이 가능한 CAN 버스(CB)로 연결될 수 있다. CAN 통신은 모든 노드가 CAN 버스(CB)에 경합하여 버스를 점유할 수 있고, 메시지 ID가 낮은 메시지가 우선권을 갖고 경합을 이겨서 버스를 점유하게 방식으로 동작한다. 메시지 ID는 중요도가 높은 메시지일 수록 낮은 값을 부여할 수 있다. 경합으로 인해 중간에 전송을 중지한 노드는 다음에 CAN 버스(CB)가 비어 있을 때 재전송을 시도할 수 있다.The host controller 100 and the plurality of motor drivers 200 may be connected to a CAN bus (CB) capable of CAN (Control Area Network) communication. CAN communication operates in such a way that all nodes can compete for the CAN bus (CB) and occupy the bus, and a message with a low message ID has priority and wins the contention to occupy the bus. The message ID can be assigned a lower value for messages of higher importance. A node that stops transmitting in the middle due to contention may attempt to retransmit the next time the CAN bus (CB) is empty.

상위 제어기(100)는, CAN 통신을 통하여 복수 개의 모터 드라이버(200)의 동작을 제어할 수 있다. 도 1에 도시된 바와 같이, 상위 제어기(100)는 제1 CAN 통신부(110), 저장부(130), 및 제어부(150)를 포함할 수 있다.The host controller 100 may control the operation of the plurality of motor drivers 200 through CAN communication. As shown in FIG. 1, the host controller 100 may include a first CAN communication unit 110, a storage unit 130, and a control unit 150.

제1 CAN 통신부(110)는, CAN 버스(CB)를 통해 복수 개의 모터 드라이버(200)와 CAN 통신을 수행할 수 있다. 제1 CAN 통신부(110)는, CAN 트랜시버(미도시) 및 CAN 컨트롤러(미도시)를 구비할 수 있다. CAN 트랜시버는 CAN 버스(CB)에 연결되어 CAN 버스(CB)로부터 수신한 전기 신호의 레벨을 변환하여 CAN 컨트롤러로 전달할 수 있고, CAN 컨트롤러로부터 수신한 전기 신호의 레벨을 변환하여 CAN 버스(CB)로 전송할 수 있다. CAN 컨트롤러는 CAN 트랜시버로부터 전달받은 CAN 메시지를 레지스터에 저장하고 제어부(150)로 전달할 수 있고, 제어부(150)로부터 전달받은 CAN 메시지를 변환하여 제1 CAN 통신부(110)로 전달할 수 있다. 실시예에 따라, 상기 CAN 컨트롤러는 제어부(150)에 통합되어 구비될 수 있으며, CAN 컨트롤러 및 CAN 트랜시버가 제어부(150)에 통합되어 구비될 수도 있다.The first CAN communication unit 110 may perform CAN communication with a plurality of motor drivers 200 through a CAN bus (CB). The first CAN communication unit 110 may include a CAN transceiver (not shown) and a CAN controller (not shown). The CAN transceiver is connected to the CAN bus (CB), converts the level of the electrical signal received from the CAN bus (CB) and transmits it to the CAN controller, and converts the level of the electrical signal received from the CAN controller to the CAN bus (CB). Can be transferred to. The CAN controller may store the CAN message transmitted from the CAN transceiver in a register and transmit it to the controller 150, and may convert the CAN message transmitted from the controller 150 and transmit it to the first CAN communication unit 110. Depending on the embodiment, the CAN controller may be integrated and provided in the control unit 150, and a CAN controller and a CAN transceiver may be integrated and provided in the control unit 150.

저장부(130)는, 복수 개의 모터 드라이버(200) 각각의 드라이버 식별자 및 상기 각각의 드라이버 식별자에 맵핑되는 노드 번호를 포함하는 대응 테이블을 저장할 수 있다.The storage unit 130 may store a correspondence table including driver identifiers of each of the plurality of motor drivers 200 and node numbers mapped to the respective driver identifiers.

본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, 모터 드라이버(200)마다 고유로 할당된 값을 기반으로 각 모터 드라이버(200)에 노드 번호를 부여하고 이에 따라 메시지 ID를 관리하여 CAN 통신을 수행할 수 있다.The linear motor system 1000 according to an embodiment of the present invention assigns a node number to each motor driver 200 based on a value uniquely assigned to each motor driver 200, and manages a message ID accordingly. Communication can be performed.

각 모터 드라이버(200)에 구비되는 마이크로컨트롤러(250)는 내부에 고유 식별자(Unique ID)가 부여될 수 있다. 일례로서, 상기 마이크로컨트롤러(250)는 STMicroelectronics의 STM32F3 시리즈로 구현될 수 있고, 이 경우 상기 마이크로컨트롤러(250)는 96비트(bit)의 고유 식별자를 가질 수 있다. 실시예에 따라, 상기 마이크로컨트롤러(250)는 CPU 코어, 메모리, 입출력 모듈 등을 하나의 칩으로 구현한 것으로서 다른 종류의 MCU(microcontroller unit)로 변경될 수 있으며, 이에 따라 마이크로컨트롤러(250)의 고유 식별자의 형식 및 길이도 변경될 수 있다.The microcontroller 250 provided in each motor driver 200 may be assigned a unique ID therein. As an example, the microcontroller 250 may be implemented with the STM32F3 series of STMicroelectronics, and in this case, the microcontroller 250 may have a unique identifier of 96 bits. Depending on the embodiment, the microcontroller 250 is implemented as a single chip, such as a CPU core, a memory, an input/output module, etc., and may be changed to a different type of microcontroller unit (MCU). Accordingly, the microcontroller 250 The format and length of the unique identifier can also be changed.

CAN 통신에서는 1개의 데이터 프레임을 이용하여 최대 8바이트(byte)까지 데이터를 전송할 수 있으므로, CAN 통신을 이용하여 96비트의 고유 식별자를 모두 전송하는 것은 어려울 수 있다. 또한, 96비트의 고유 식별자는 사용자가 관리하기에도 너무 긴 데이터이고, 마이크로컨트롤러(250)의 고유 식별자의 형식 및 길이는 제조사마다 달라질 수 있다. 따라서, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, 복수 개의 드라이버(200) 각각에 포함된 마이크로컨트롤러(250)의 고유 식별자를 그보다 데이터 길이가 짧은 드라이버 식별자로 변환하여 사용할 수 있다. 상위 제어기(100)는 긴 숫자열인 마이크로컨트롤러(250)의 고유 식별자를 짧은 숫자열인 드라이버 식별자로 변환할 수 있고, 변환된 드라이버 식별자들이 서로 겹치는 확률은 매우 낮도록 처리할 수 있다.In CAN communication, data can be transmitted up to 8 bytes using one data frame, so it may be difficult to transmit all 96-bit unique identifiers using CAN communication. In addition, the 96-bit unique identifier is data that is too long to be managed by the user, and the format and length of the unique identifier of the microcontroller 250 may vary for each manufacturer. Accordingly, the linear motor system 1000 according to an embodiment of the present invention may convert the unique identifier of the microcontroller 250 included in each of the plurality of drivers 200 into a driver identifier having a shorter data length and use it. . The host controller 100 can convert the unique identifier of the microcontroller 250, which is a long string of numbers, into a driver identifier, which is a short string of numbers, and can process the converted driver identifiers to have a very low probability of overlapping each other.

일례로서, 상기 제어부(150)는 마이크로컨트롤러(250)의 고유 식별자에 해시 함수(hash function)를 적용하여 복수 개의 모터 드라이버(200) 각각의 드라이버 식별자를 얻을 수 있다. 해시 함수는 긴 숫자열을 짧은 숫자열로 바꾸면서 서로 겹치는 확률이 매우 낮도록 처리하는 함수로서 다양한 해시 함수들이 사용될 수 있다. 일례로서, 제어부(150)는 CRC32를 해시 함수로 사용하여 96비트의 고유 식별자를 32비트의 드라이버 식별자로 변환할 수 있다. 상위 제어기(100) 및 복수 개의 모터 드라이버(200)는 상기 드라이버 식별자를 CAN 메시지를 통해 송수신하여 서로 통신할 수 있다.As an example, the controller 150 may obtain driver identifiers of each of the plurality of motor drivers 200 by applying a hash function to the unique identifier of the microcontroller 250. The hash function converts a long sequence of numbers into a short sequence of numbers and processes so that the probability of overlapping each other is very low. Various hash functions can be used. As an example, the controller 150 may convert a 96-bit unique identifier into a 32-bit driver identifier by using CRC32 as a hash function. The host controller 100 and the plurality of motor drivers 200 may communicate with each other by transmitting and receiving the driver identifier through a CAN message.

실시예에 따라, 모터 드라이버(200)의 생산 시 마이크로컨트롤러(250)의 고유 식별자로부터 32비트 드라이버 식별자를 추출할 수 있다. 각 모터 드라이버(200)에 드라이버 식별자를 부착한 후 CAN 버스(CB) 연결 시에 각 도면별로 노드 번호의 위치를 확인하고, 각 노드 번호에 해당하는 모터 드라이버(200)의 드라이버 식별자를 추출하여 모터 드라이버(200) 각각의 드라이버 식별자 및 각각의 드라이버 식별자에 맵핑되는 노드 번호를 포함하는 대응 테이블을 저장할 수 있다.According to an embodiment, when the motor driver 200 is produced, a 32-bit driver identifier may be extracted from the unique identifier of the microcontroller 250. After attaching the driver identifier to each motor driver 200, check the location of the node number for each drawing when connecting the CAN bus (CB), and extract the driver identifier of the motor driver 200 corresponding to each node number to The driver 200 may store a correspondence table including each driver identifier and a node number mapped to each driver identifier.

실시예에 따라, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, 운용 중 모터 드라이버(200)가 교체되는 경우 교체된 모터 드라이버(200)의 마이크로컨트롤러(250)의 고유 식별자를 다시 인식하여 상기 대응 테이블을 수정할 수 있다.Depending on the embodiment, the linear motor system 1000 according to the embodiment of the present invention, when the motor driver 200 is replaced during operation, the unique identifier of the microcontroller 250 of the replaced motor driver 200 again. Recognize and modify the corresponding table.

실시예에 따라, 상위 제어기(100)는, 대응 테이블에 포함된 복수 개의 드라이버 식별자 중에서 서로 동일한 것이 존재하는 경우, 새로운 해시 함수를 모터 드라이버(200)의 고유 식별자에 적용하여 새로운 드라이버 식별자를 얻고 대응 테이블을 변경할 수 있다. 즉, 낮은 확률이긴 하지만 해시 함수에 따라 변환된 드라이버 식별자가 서로 겹칠 수 있으므로, 제어부(150)는 대응 테이블에 포함된 복수 개의 드라이버 식별자를 비교하여 서로 동일한 것이 존재하는지 판단하여 서로 동일한 것이 존재하는 경우, 해시 함수를 변경하여 대응 테이블을 다시 생성할 수 있다. 이때 제어부(150)는 모든 드라이버에 대하여 새로운 해시 함수를 적용할 수도 있고, 드라이버 식별자가 겹친 특정 드라이버에 대하여만 새로운 해시 함수를 적용할 수도 있다.According to an embodiment, the host controller 100 obtains a new driver identifier and responds by applying a new hash function to the unique identifier of the motor driver 200 when the same among a plurality of driver identifiers included in the correspondence table exists. You can change the table. That is, although it has a low probability, since the driver identifiers converted according to the hash function may overlap each other, the control unit 150 compares a plurality of driver identifiers included in the correspondence table to determine whether there is the same one, and if the same one exists , You can recreate the corresponding table by changing the hash function. At this time, the control unit 150 may apply a new hash function to all drivers, or may apply a new hash function only to a specific driver with overlapping driver identifiers.

상위 제어기(100)는 위와 같이 해시 함수가 새로운 해시 함수로 변경되는 경우, 새로운 해시 함수에 관한 정보를 복수 개의 모터 드라이버(200)에게 CAN 메시지로 브로드캐스트할 수 있다. 복수 개의 모터 드라이버(200)의 마이크로컨트롤러(250)는 수신한 CAN 메시지가 새로운 해시 함수에 관한 것일 경우, 자신의 고유 식별자에 새로운 해시 함수를 적용하여 자신의 드라이버 식별자를 얻을 수 있다. 상기 새로운 해시 함수에 관한 정보에는 해시 함수의 종류, 반복횟수, 시드 매개 변수, 임의의 문자열 및 난수(Random Number) 중 적어도 하나가 포함될 수 있으며, 마이크로컨트롤러(250)는 수신한 해시 함수에 관한 정보에 따라 해시 함수를 사용하여 자신의 고유 식별자를 드라이버 식별자로 변경할 수 있게 된다.When the hash function is changed to a new hash function as described above, the host controller 100 may broadcast information on the new hash function to the plurality of motor drivers 200 as CAN messages. When the received CAN message relates to a new hash function, the microcontroller 250 of the plurality of motor drivers 200 may obtain its own driver identifier by applying a new hash function to its own unique identifier. The information on the new hash function may include at least one of a type of a hash function, a number of repetitions, a seed parameter, an arbitrary string, and a random number, and the microcontroller 250 includes information on the received hash function. As a result, you can change your own unique identifier to a driver identifier using a hash function.

제어부(150)는, 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 제1 CAN 통신부(110)를 통해 복수 개의 모터 드라이버(200)에게 브로드캐스트할 수 있다. 일례로서, 상기 브로드캐스트된 노드 설정 메시지는 모든 모터 드라이버(200)에 수신될 수 있고, 모든 마이크로컨트롤러(250)에 의해 처리될 수 있다. 실시예에 따라, 제어부(150)는 노드 설정 메시지의 데이터 필드에 해당 드라이버 식별자에 적용된 해시 함수에 관한 정보를 함께 포함시킬 수 있다.The controller 150 sends a node setting message including information on a specific driver identifier and a specific node number mapped to the specific driver identifier in a data field to the plurality of motor drivers 200 through the first CAN communication unit 110. You can broadcast. As an example, the broadcasted node configuration message may be received by all motor drivers 200 and processed by all microcontrollers 250. According to an embodiment, the control unit 150 may include information on a hash function applied to a corresponding driver identifier in the data field of the node configuration message.

제어부(150)는, 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 모터 드라이버(200 중 어느 하나)로부터 상기 특정 노드 번호를 메시지 ID에 포함하는 응답 메시지를 수신하는 경우, 상기 특정 드라이버 식별자를 다른 드라이버 식별자로 변경하여 노드 설정 메시지의 브로드캐스트를 다시 수행할 수 있다. 즉, 제어부(150)는 1번의 노드 설정 메시지를 통해 1개의 모터 드라이버(200)의 드라이버 식별자를 설정할 수 있으며, 모터 드라이버(200)가 K개 존재하는 경우 K번의 노드 설정 메시지를 차례로 브로드캐스트할 수 있다.When the controller 150 receives a response message including the specific node number in the message ID from a motor driver 200 having the same specific driver identifier included in the broadcasted node configuration message as its driver identifier , Broadcasting of the node configuration message may be performed again by changing the specific driver identifier to another driver identifier. That is, the control unit 150 can set the driver identifier of one motor driver 200 through one node setting message, and if there are K motor drivers 200, it will sequentially broadcast the K node setting message. I can.

복수 개의 모터 드라이버(200) 각각은, 제2 CAN 통신부(210) 및 마이크로컨트롤러(250)를 포함할 수 있다. 복수 개의 모터 드라이버(200) 각각은 리니어 모터(미도시)에 연결될 수 있으며, 각각의 모터 드라이버(200)는 연결된 리니어 모터를 제어할 수 있다. 실시예에 따라, 상기 리니어 모터는 모터 드라이버(200)에 의해 구동되는 다른 종류의 동력 장치로 변경될 수 있다.Each of the plurality of motor drivers 200 may include a second CAN communication unit 210 and a microcontroller 250. Each of the plurality of motor drivers 200 may be connected to a linear motor (not shown), and each motor driver 200 may control the connected linear motor. Depending on the embodiment, the linear motor may be changed to another type of power device driven by the motor driver 200.

제2 CAN 통신부(210)는 CAN 버스(CB)를 통해 상위 제어기(100)의 제1 CAN 통신부(110)와 CAN 통신을 수행할 수 있다. 실시예에 따라, 제2 CAN 통신부(210)는 CAN 버스(CB)를 통해 다른 모터 드라이버(200)의 제2 CAN 통신부(210)와도 CAN 통신을 수행할 수 있다. 제2 CAN 통신부(210)도 제1 통신부(110)와 유사하게 CAN 트랜시버(미도시) 및 CAN 컨트롤러(미도시)를 구비할 수 있다. 실시예에 따라, 상기 CAN 컨트롤러는 마이크로컨트롤러(250)에 통합되어 구비될 수 있으며, CAN 컨트롤러 및 CAN 트랜시버가 마이크로컨트롤러(250)에 통합되어 구비될 수도 있다.The second CAN communication unit 210 may perform CAN communication with the first CAN communication unit 110 of the host controller 100 through a CAN bus (CB). According to an embodiment, the second CAN communication unit 210 may also perform CAN communication with the second CAN communication unit 210 of the other motor driver 200 through the CAN bus CB. Similar to the first communication unit 110, the second CAN communication unit 210 may also include a CAN transceiver (not shown) and a CAN controller (not shown). Depending on the embodiment, the CAN controller may be integrated and provided in the microcontroller 250, and the CAN controller and the CAN transceiver may be integrated and provided in the microcontroller 250.

마이크로컨트롤러(250)는, 제2 CAN 통신부(210)를 통해 상위 제어기(100)로부터 브로드캐스트된 노드 설정 메시지를 수신할 수 있다. 마이크로컨트롤러(250)는, 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 것으로 판단된 경우, 상기 특정 노드 번호를 자신의 노드 번호로 설정할 수 있다. 마이크로컨트롤러(250)는 자신의 노드 번호 설정이 정상적으로 완료된 경우, 설정된 자신의 노드 번호를 메시지 ID에 포함하는 응답 메시지를 제2 CAN 통신부(210)를 통해 상위 제어기(100)로 전송할 수 있다.The microcontroller 250 may receive a node setting message broadcast from the host controller 100 through the second CAN communication unit 210. The microcontroller 250 may set the specific node number as its own node number when it is determined that the specific driver identifier included in the broadcasted node configuration message is the same as its own driver identifier. When the setting of its own node number is normally completed, the microcontroller 250 may transmit a response message including its set node number in the message ID to the host controller 100 through the second CAN communication unit 210.

상위 제어기(100)가 노드 설정 메시지를 K번 송신하여 K개의 모터 드라이버(200)의 노드 번호 설정이 완료될 수 있다. CAN 통신의 특성상 상위 제어기(100)가 CAN 버스(CB)를 통해 송신한 메시지는 모든 모터 드라이버(200)에 수신되는데, 각각의 모터 드라이버(200)는 제2 CAN 통신부(210)로 수신된 메시지의 메시지 ID가 자신의 노드 번호에 대응되는 경우 해당 메시지를 마이크로컨트롤러(250)로 전달하여 처리할 수 있다. 마이크로컨트롤러(250)는 상위 제어기(100)로부터 수신된 메시지에 따라 모터 드라이버(200)에 연결된 리니어 모터의 동작을 제어할 수 있다. 각각의 모터 드라이버(200)는 수신된 메시지의 메시지 ID가 자신의 노드 번호에 대응되지 않는 경우 해당 메시지는 무시할 수 있다.The host controller 100 transmits the node setting message K times to complete the node number setting of the K motor drivers 200. Due to the nature of CAN communication, messages transmitted by the host controller 100 through the CAN bus (CB) are received by all motor drivers 200, and each motor driver 200 is a message received by the second CAN communication unit 210 If the message ID of corresponds to its own node number, the message can be transferred to the microcontroller 250 and processed. The microcontroller 250 may control the operation of the linear motor connected to the motor driver 200 according to a message received from the host controller 100. Each motor driver 200 may ignore the message if the message ID of the received message does not correspond to its own node number.

마이크로컨트롤러(250) 또는 제2 CAN 통신부(210)에 구비되는 수신필터(미도시)는, 수신하는 CAN 메시지에 대해 정해진 ID 또는 특정 그룹을 수신하거나 전체 수신을 할 수 있다. 예를 들어, 상기 수신필터는 ID 10번인 CAN 메시지만 수신할 수도 있고, 0x30~0x3F까지의 ID를 갖는 CAN 메시지를 수신할 수도 있다.A reception filter (not shown) provided in the microcontroller 250 or the second CAN communication unit 210 may receive a predetermined ID or a specific group for a received CAN message or receive all of the received CAN messages. For example, the reception filter may receive only a CAN message with ID 10, or may receive a CAN message with an ID of 0x30 to 0x3F.

마이크로컨트롤러(250)는 라이브러리 함수 등을 이용하여 자신의 고유 식별자를 알 수 있고, 상기 고유 식별자에 해시 함수를 적용하여 드라이버 식별자를 생성한 후 저장할 수 있다. 상술한 바와 같이, 해시 함수가 변경되는 경우에는 새로운 해시 함수에 관한 정보를 상위 제어기(100)로부터 수신한 후 변경된 해시 함수에 따라 드라이버 식별자를 새로 생성하여 저장할 수 있다. 실시예에 따라, 상기 드라이버 식별자는 외부에서 계산되어 마이크로컨트롤러(250)로 입력될 수도 있다.The microcontroller 250 may know its own unique identifier using a library function or the like, and may apply a hash function to the unique identifier to generate and store a driver identifier. As described above, when the hash function is changed, after receiving information on the new hash function from the host controller 100, a driver identifier may be newly generated and stored according to the changed hash function. Depending on the embodiment, the driver identifier may be externally calculated and input to the microcontroller 250.

본 발명의 일 실시예에 따른 상위 제어기(100) 및 모터 드라이버(200)의 구체적인 동작에 대해서는 도 2 및 도 3을 참조하여 후술한다.Detailed operations of the host controller 100 and the motor driver 200 according to an embodiment of the present invention will be described later with reference to FIGS. 2 and 3.

도 2는 본 발명의 일 실시예에 따른 리니어 모터 시스템에서 사용하는 CAN 메시지의 포맷을 나타내는 도면이다. 도 2에 도시된 CAN 메시지 포맷은 메시지 ID가 11비트인 CAN 2.0A 버전을 나타낸 것이며, 실시예에 따라, 본 발명의 일 실시예에 따른 리니어 모터 시스템(100)은 메시지 ID가 29비트인 CAN 2.0B 버전을 사용할 수도 있다.2 is a diagram illustrating a format of a CAN message used in a linear motor system according to an embodiment of the present invention. The CAN message format shown in FIG. 2 shows a CAN 2.0A version with a message ID of 11 bits. According to an embodiment, the linear motor system 100 according to an embodiment of the present invention includes a CAN message ID of 29 bits. You can also use version 2.0B.

본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, CAN 버스(CB)를 이용하므로 버스 자체는 마스터-슬레이브 구조가 아니지만, CAN 버스(CB)의 상위 레이어에서는 상위 제어기(100)와 각 모터 드라이버(200)가 마스터-슬레이브의 관계인 것으로 볼 수 있다. 따라서, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, CAN 메시지의 메시지 ID를 부여할 때 ID에 마스터-슬레이브 관계 및 노드 번호를 반영하도록 설계하여 CAN 버스(CB)의 활용도를 높일 수 있다.The linear motor system 1000 according to an embodiment of the present invention uses a CAN bus (CB), so the bus itself is not a master-slave structure, but in the upper layer of the CAN bus (CB), the upper controller 100 and each It can be seen that the motor driver 200 is a master-slave relationship. Accordingly, the linear motor system 1000 according to an embodiment of the present invention is designed to reflect the master-slave relationship and node number to the ID when assigning the message ID of the CAN message to increase the utilization of the CAN bus (CB). I can.

도 2를 참조하면, CAN 메시지는 다양한 필드로 이루어질 수 있다. SOF(Start of Frame) 필드는 CAN 메시지의 시작을 의미하며, ID 필드는 각 메시지의 ID로서 메시지 우선 순위 결정 및 메시지 수신 여부를 결정한다. RTR(Remote Transmission Request) 필드는 해당 CAN 메시지가 데이터 프레임인지 리모트 프레임인지를 나타내는 비트이고, DLC(Data Length Code) 필드는 데이터 필드(DATA)의 바이트 수를 나타내며 범위는 0~8이다. DATA 필드는 실제 전송되는 데이터로서 최대 8바이트까지 포함될 수 있으며, CRC(Cyclic Redundancy Check) 필드는 에러 체크를 위한 필드이다. ACK 필드는 응답을 나타내는 필드이며, EOF(End of Flame) 필드는 CAN 메시지의 끝을 의미한다. 이러한 CAN 메시지의 각 필드에 대한 내용은 잘 알려져 있으므로 추가적인 설명은 생략한다.Referring to FIG. 2, the CAN message may be composed of various fields. The SOF (Start of Frame) field means the start of the CAN message, and the ID field is the ID of each message, which determines the priority of the message and whether to receive the message. The RTR (Remote Transmission Request) field is a bit indicating whether the corresponding CAN message is a data frame or a remote frame, and the DLC (Data Length Code) field indicates the number of bytes of the data field (DATA) and has a range of 0 to 8. The DATA field is actually transmitted data and can contain up to 8 bytes, and the CRC (Cyclic Redundancy Check) field is a field for error check. The ACK field indicates a response, and the End of Flame (EOF) field indicates the end of the CAN message. Since the contents of each field of these CAN messages are well known, additional descriptions are omitted.

한편, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은, CAN 2.0A 버전을 기준으로 메시지 ID를 도 2 및 아래 표 1과 같이 정의할 수 있다.Meanwhile, in the linear motor system 1000 according to an embodiment of the present invention, a message ID may be defined as shown in FIG. 2 and Table 1 below based on the CAN 2.0A version.

Master/Slave (b10:b9)Master/Slave (b10:b9) Node Number(b8:b2)Node Number(b8:b2) Reserved(b1:b0)Reserved(b1:b0) 00 : Master -> Slave
01 : Slave -> Master
00: Master -> Slave
01: Slave -> Master
0 : Master
1 ~ 126 : Slave node
127 : broadcast
0: Master
1 ~ 126: Slave node
127: broadcast
reservedreserved

즉, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)에서 사용하는 메시지 ID의 최상위 2비트(b10:b9)는 마스터-슬레이브 관계를 나타내는 비트로서, "00"인 경우에는 해당 CAN 메시지가 마스터인 상위 제어기(100)로부터 슬레이브인 모터 드라이버(200)로 전송되는 메시지임을 나타내며, "01"인 경우 해당 CAN 메시지가 슬레이브인 모터 드라이버(200)로부터 마스터인 상위 제어기(100)로 전송되는 메시지임을 나타낼 수 있다. CAN 통신에서는 ID가 낮은 메시지가 경합을 이기게 되므로, 본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)에서는 마스터에서 슬레이브로의 전송을 나타내는 정보가 슬레이브에서 마스터로의 전송을 나타내는 정보보다 높은 메시지 우선순위를 나타낼 수 있다.That is, the most significant 2 bits (b10:b9) of the message ID used in the linear motor system 1000 according to an embodiment of the present invention are bits representing the master-slave relationship, and when "00", the corresponding CAN message is Indicates that this message is transmitted from the master controller 100 to the slave motor driver 200, and if "01", the CAN message is transmitted from the slave motor driver 200 to the master controller 100 Can indicate that In CAN communication, since a message with a low ID wins contention, in the linear motor system 1000 according to an embodiment of the present invention, information indicating transmission from the master to the slave is higher than the information indicating transmission from the slave to the master. Priority can be indicated.

본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)에서 사용하는 메시지 ID의 다음 7비트(b8:b2)는 노드 번호를 나타내는 비트로서, "0"은 마스터인 상위 제어기(100)를 나타낼 수 있고, 1~126은 슬레이브인 각 모터 드라이버(200)를 나타낼 수 있다. 127은 해당 CAN 메시지가 브로드캐스트 메시지임을 나타낼 수 있고 모든 모터 드라이버(200)가 브로드캐스트 메시지를 수신하여 처리할 수 있다.The next 7 bits (b8:b2) of the message ID used in the linear motor system 1000 according to an embodiment of the present invention are bits indicating the node number, and "0" may indicate the host controller 100 as the master. In addition, 1 to 126 may represent each motor driver 200 that is a slave. Reference numeral 127 may indicate that the corresponding CAN message is a broadcast message, and all motor drivers 200 may receive and process the broadcast message.

본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)에서 사용하는 메시지 ID의 최하위 2비트는 리저브 필드로서 "00"으로 고정하고 사용하지 않을 수 있다.The least significant 2 bits of the message ID used in the linear motor system 1000 according to an embodiment of the present invention are reserved fields and may be fixed to "00" and not used.

일례로서, 상위 제어기(100)가 모터 드라이버(200)로 브로드캐스트하는 노드 설정 메시지는, 마스터에서 슬레이브로의 전송을 나타내는 정보 및 브로드캐스트 메시지임을 나타내는 정보가 메시지 ID에 포함될 수 있다. 즉, 이 경우 브로드캐스트되는 노드 설정 메시지의 메시지 ID는 "00111111100"일 수 있다.As an example, the node configuration message broadcast by the host controller 100 to the motor driver 200 may include information indicating transmission from a master to a slave and information indicating a broadcast message in the message ID. That is, in this case, the message ID of the broadcasted node configuration message may be "00111111100".

한편, 실시예에 따라, 노드 번호의 "0"이 마스터인 상위 제어기(100)를 나타내지 않을 수도 있다. 메시지 ID의 최상위 2비트(b10:b9)가 마스터-슬레이브 전송 방향을 나타내므로, 마스터인 상위 제어기(100)는 별도의 노드 번호 없이 다른 모터 드라이버(200)의 제어를 수행할 수도 있다.Meanwhile, according to an embodiment, "0" of the node number may not indicate the host controller 100 as the master. Since the most significant 2 bits (b10:b9) of the message ID indicate the master-slave transmission direction, the host controller 100, which is a master, may control other motor drivers 200 without a separate node number.

도 3은 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법의 흐름을 도시한 흐름도이다. 도 3에 도시된 리니어 모터 시스템의 구동 방법(2000)은 도 1을 참조하여 상술한 리니어 모터 시스템(1000)에 의해 수행될 수 있다.3 is a flowchart illustrating a flow of a method of driving a linear motor system according to an embodiment of the present invention. The method 2000 of driving the linear motor system illustrated in FIG. 3 may be performed by the linear motor system 1000 described above with reference to FIG. 1.

도 3을 참조하면, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 상위 제어기(100)가 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 복수 개의 모터 드라이버(200)에게 CAN 통신을 이용하여 브로드캐스트하는 단계(S201)를 포함할 수 있다.Referring to FIG. 3, in the method 2000 of driving a linear motor system according to an embodiment of the present invention, the host controller 100 stores information on a specific driver identifier and a specific node number mapped to the specific driver identifier. Broadcasting the node setting message included in the field to the plurality of motor drivers 200 using CAN communication (S201).

전원 인가 시 각 모터 드라이버(200)는 노드 번호를 갖고 있지 않을 수 있다. 각 모터 드라이버(200)의 노드 번호를 설정하기 위하여, 상위 제어기(100)는 저장부(150)에 저장된 대응 테이블로부터 어느 하나의 드라이버 식별자 및 해당 드라이버 식별자에 대응되는 노드 번호를 추출할 수 있다. 상위 제어기(100)는 추출된 드라이버 식별자 및 노드 번호를 특정 드라이버 식별자 및 특정 노드 번호로 정의하고 데이터 필드에 포함시킨 후, 복수 개의 모터 드라이버(200)에게 CAN 통신을 이용하여 브로드캐스트할 수 있다.When power is applied, each motor driver 200 may not have a node number. In order to set the node number of each motor driver 200, the host controller 100 may extract any one driver identifier and a node number corresponding to the corresponding driver identifier from the corresponding table stored in the storage unit 150. The host controller 100 may define the extracted driver identifier and node number as a specific driver identifier and a specific node number, include in a data field, and broadcast to a plurality of motor drivers 200 using CAN communication.

다음으로, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 복수 개의 모터 드라이버(200)가 상위 제어기(100)로부터 CAN 통신을 이용하여 브로드캐스트된 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 수신하는 단계(S202)를 포함할 수 있다.Next, the driving method 2000 of a linear motor system according to an embodiment of the present invention includes a specific driver identifier broadcast by a plurality of motor drivers 200 using CAN communication from the host controller 100 and the identification It may include the step (S202) of receiving a node configuration message including information on the specific node number mapped to the driver identifier in the data field.

다음으로, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 상기 브로드캐스트된 노드 설정 메시지를 수신한 복수 개의 모터 드라이버(200)가 자신의 드라이버 식별자와 특정 드라이버 식별자가 동일한지 여부를 판단하는 단계(S203)를 포함할 수 있다. 상술한 바와 같이, 브로드캐스트된 노드 설정 메시지는 브로드캐스트 메시지임을 나타내는 정보를 메시지 ID에 포함하고 있으므로, 모든 모터 드라이버(200)가 브로드캐스트된 노드 설정 메시지를 수신하여 마이크로컨트롤러(250)에서 처리할 수 있다. 마이크로컨트롤러(250)는 수신된 노드 설정 메시지의 데이터 필드에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한지 판단할 수 있다.Next, in the method 2000 of driving a linear motor system according to an embodiment of the present invention, a plurality of motor drivers 200 receiving the broadcast node setting message have the same driver identifier and a specific driver identifier. It may include a step (S203) of determining whether or not. As described above, since the broadcasted node setup message includes information indicating that it is a broadcast message in the message ID, all motor drivers 200 receive the broadcasted node setup message and process it in the microcontroller 250. I can. The microcontroller 250 may determine whether a specific driver identifier included in the data field of the received node configuration message is the same as its own driver identifier.

다음으로, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 모터 드라이버(200)가 자신의 드라이버 식별자와 특정 드라이버 식별자가 동일한 것으로 판단한 경우(S204 -> YES), 해당 모터 드라이버가 상기 특정 노드 번호를 자신의 노드 번호로 설정하는 단계(S205)를 포함할 수 있다. 일례로서, 제1 모터 드라이버(200_1)가 자신의 드라이버 식별자가 수신한 특정 드라이버 식별자와 동일한 것으로 판단한 경우, 수신된 노드 설정 메시지의 데이터 필드에 포함된 특정 노드 번호를 자신의 노드 번호로 설정할 수 있다.Next, in the driving method 2000 of a linear motor system according to an embodiment of the present invention, when the motor driver 200 determines that its driver identifier and a specific driver identifier are the same (S204 -> YES), the corresponding motor It may include a step (S205) of the driver setting the specific node number as its own node number. As an example, when the first motor driver 200_1 determines that its driver ID is the same as the received specific driver ID, a specific node number included in the data field of the received node configuration message may be set as its node number. .

다음으로, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 수신한 특정 노드 번호를 자신의 노드 번호로 설정한 제1 모터 드라이버(200_1)가 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상위 제어기(100)로 전송하는 단계(S206)를 포함할 수 있다. 즉, 노드 번호 설정에 성공한 모터 드라이버(200)는 이를 상위 제어기(100)에 알리기 위하여 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상위 제어기(100)로 전송할 수 있다. 상기 응답 메시지는, 슬레이브에서 마스터로의 전송을 나타내는 정보를 메시지 ID에 포함할 수 있다. 즉, 상기 응답 메시지는 메시지 ID의 최상위 2비트가 "01"일 수 있다.Next, in the method 2000 of driving a linear motor system according to an embodiment of the present invention, the node number in which the first motor driver 200_1, which has set the received specific node number as its own node number, is set to the message ID. It may include a step (S206) of transmitting the included response message to the host controller 100. That is, the motor driver 200 having successfully set the node number may transmit a response message including the set node number in the message ID to the host controller 100 in order to inform the host controller 100 of this. The response message may include information indicating transmission from the slave to the master in the message ID. That is, in the response message, the most significant 2 bits of the message ID may be "01".

한편, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 모터 드라이버(200)가 자신의 드라이버 식별자와 특정 드라이버 식별자가 동일하지 않은 것으로 판단한 경우(S204 -> NO), 해당 노드 설정 메시지는 무시할 수 있다(S207).On the other hand, in the driving method 2000 of a linear motor system according to an embodiment of the present invention, when the motor driver 200 determines that its driver identifier and a specific driver identifier are not the same (S204 -> NO), the corresponding The node configuration message can be ignored (S207).

다음으로, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 상위 제어기(100)가 상기 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 모터 드라이버(200)로부터 상기 특정 노드 번호를 메시지 ID에 포함하는 응답 메시지를 수신하는 단계(S208)를 포함할 수 있다.Next, in the driving method 2000 of a linear motor system according to an embodiment of the present invention, a specific driver identifier included in the broadcasted node setting message by the host controller 100 is the same as its driver identifier. It may include receiving a response message including the specific node number in the message ID from 200 (S208).

일례로서, 노드 설정 메시지를 브로드캐스트한 결과 제1 모터 드라이버(200_1)의 노드 번호가 3으로 설정된 경우, 제1 모터 드라이버(200_1)는 메시지 ID가 "01000001100"인 응답 메시지를 생성하여 상위 제어기(100)로 전송할 수 있다. 상위 제어기(100)는 메시지 ID가 "01"로 시작하는 메시지는 슬레이브로부터 마스터로 전송되는 메시지이므로 모두 수신할 수 있으며, 제1 모터 드라이버(200_1)의 노드 번호가 3번으로 설정 완료되었음을 확인할 수 있다.As an example, when the node number of the first motor driver 200_1 is set to 3 as a result of broadcasting the node setting message, the first motor driver 200_1 generates a response message with a message ID of "01000001100" to the host controller ( 100). The host controller 100 can receive all messages whose message ID starts with "01" as messages are transmitted from the slave to the master, and can confirm that the node number of the first motor driver 200_1 is set to 3 have.

다음으로, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 상위 제어기(100)가 모터 드라이버(200)로부터 응답 메시지를 수신한 경우(S208 -> YES), 브로드캐스트했던 특정 드라이버 식별자를 다른 드라이버 식별자로 변경하고 브로드캐스트했던 특정 노드 번호를 변경된 드라이버 식별자에 맵핑된 노드 번호로 변경한 후 변경된 특정 드라이버 식별자 및 변경된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 복수 개의 모터 드라이버(200)에게 CAN 통신을 이용하여 다시 브로드캐스트하는 단계(S209)를 포함할 수 있다. 즉, 상위 제어기(100)가 모터 드라이버(200)로부터 응답 메시지를 수신한 경우, 해당 노드 번호 설정이 정상적으로 이루어진 것으로 판단하고 다음 노드 번호에 대한 노드 설정 메시지를 다시 브로드캐스트할 수 있다. 이후 S202 단계부터 반복 수행될 수 있다.Next, in the driving method 2000 of the linear motor system according to an embodiment of the present invention, when the host controller 100 receives a response message from the motor driver 200 (S208 -> YES), A node setup message that includes information about the changed specific driver identifier and the changed specific node number in the data field after changing a specific driver identifier to another driver identifier and changing the broadcasted specific node number to a node number mapped to the changed driver identifier It may include a step (S209) of re-broadcasting to the plurality of motor drivers 200 using CAN communication. That is, when the host controller 100 receives a response message from the motor driver 200, it is determined that the corresponding node number has been set normally, and the node setting message for the next node number is broadcast again. Thereafter, it may be repeatedly performed from step S202.

한편, 본 발명의 일 실시예에 따른 리니어 모터 시스템의 구동 방법(2000)은, 상위 제어기(100)가 노드 설정 메시지를 복수 개의 모터 드라이버(200)로 브로드캐스트한 후 소정 시간 이내에 응답 메시지를 수신하지 못한 경우(S208 -> NO), 에러 메시지를 출력할 수 있다(S210). 상위 제어기(100)는 응답 메시지를 수신하지 못한 경우, 대응 테이블이 잘못되어 있거나, CAN 버스(CB)에 이상이 있거나, 모터 드라이버(200)에 고장이 있을 수 있으므로 에러 메시지를 출력할 수 있다. 실시예에 따라, 상기 에러 메시지는 별도의 디스플레이 장치를 통해 출력되거나, 관리자 단말기로 전송되어 관리자에게 표시될 수 있다. 상기 에러 메시지에는 브로드캐스트되었던 노드 설정 메시지의 데이터 필드에 포함된 노드 설정 번호 및 드라이버 식별자가 포함될 수 있고, 이를 통해 관리자는 어느 노드의 모터 드라이버(200)가 노드 설정 작업이 실패하였는지 확인하고 적절한 조치를 취할 수 있게 된다.Meanwhile, in the method 2000 of driving a linear motor system according to an embodiment of the present invention, after the host controller 100 broadcasts a node setting message to a plurality of motor drivers 200, a response message is received within a predetermined time. If not (S208 -> NO), an error message may be output (S210). If the response message is not received, the host controller 100 may output an error message because the response table may be incorrect, there may be an error in the CAN bus (CB), or there may be a failure in the motor driver 200. Depending on the embodiment, the error message may be output through a separate display device or transmitted to an administrator terminal and displayed to the administrator. The error message may include the node setting number and driver identifier included in the data field of the node setting message that was broadcast, and through this, the administrator checks which node's motor driver 200 has failed the node setting operation and takes appropriate action. You can take it.

본 발명의 일 실시예에 따른 리니어 모터 시스템(1000)은 도 3에 도시된 단계들을 반복하여 모든 모터 드라이버(200)에 대한 노드 번호 설정을 완료할 수 있다. 모든 모터 드라이버(200)에 노드 번호가 정상적으로 할당된 경우, 모터 드라이버(200)가 모두 정상 구동되며 CAN 버스(CB)도 정상 동작하여 상위 제어기(100)와 각 모터 드라이버(200)가 정상적으로 CAN 통신을 수행할 수 있는 상태일 수 있다. 이후, 상위 제어기(100)는 CAN 메시지의 메시지 ID를 다양하게 설정하여 각 모터 드라이버(200)를 구분하여 동작을 제어할 수 있다.The linear motor system 1000 according to an embodiment of the present invention may complete the node number setting for all the motor drivers 200 by repeating the steps shown in FIG. 3. When node numbers are normally assigned to all motor drivers 200, all motor drivers 200 are normally driven and CAN bus (CB) also operates normally, so that the host controller 100 and each motor driver 200 can communicate normally. It may be in a state that can perform. Thereafter, the host controller 100 may control the operation of each motor driver 200 by setting various message IDs of the CAN message.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 마그네틱 저장 매체, 광학적 판독 매체 등 모든 저장매체를 포함한다. 본 발명은 리니어 모터 시스템의 구동 방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램의 형태로 구현 가능하다.The present invention can also be implemented as computer-readable codes on a computer-readable recording medium. Computer-readable recording media include all storage media such as magnetic storage media and optical reading media. The present invention can be implemented in the form of a computer program stored in a medium in order to execute a method of driving a linear motor system.

지금까지 본 발명에 대하여 도면에 도시된 바람직한 실시예들을 중심으로 상세히 살펴보았다. 이러한 실시예들은 이 발명을 한정하려는 것이 아니라 예시적인 것에 불과하며, 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 진정한 기술적 보호범위는 전술한 설명이 아니라 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다. 비록 본 명세서에 특정한 용어들이 사용되었으나 이는 단지 본 발명의 개념을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 본 발명의 각 단계는 반드시 기재된 순서대로 수행되어야 할 필요는 없고, 병렬적, 선택적 또는 개별적으로 수행될 수 있다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 특허청구범위에서 청구하는 본 발명의 본질적인 기술사상에서 벗어나지 않는 범위에서 다양한 변형 형태 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 균등물은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 구성요소를 포함하는 것으로 이해되어야 한다.So far, the present invention has been looked at in detail centering on the preferred embodiments shown in the drawings. These embodiments are not intended to limit the present invention, but are merely illustrative, and should be considered from an illustrative point of view rather than a restrictive point of view. The true technical protection scope of the present invention should be determined not by the above description but by the technical spirit of the appended claims. Although specific terms have been used in the present specification, they are used only for the purpose of describing the concept of the present invention, and not for limiting the meaning or limiting the scope of the present invention described in the claims. Each step of the present invention need not necessarily be performed in the order described, and may be performed in parallel, selectively or individually. Those of ordinary skill in the technical field to which the present invention pertains will understand that various modifications and other equivalent embodiments are possible without departing from the essential technical idea of the present invention claimed in the claims. It is to be understood that equivalents include not only currently known equivalents, but also equivalents to be developed in the future, that is, all components invented to perform the same function regardless of structure.

Claims (15)

상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템의 구동 방법에 있어서,
상기 상위 제어기가 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 단계;
상기 브로드캐스트된 노드 설정 메시지를 수신한 복수 개의 모터 드라이버가 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한지 여부를 판단하는 단계;
제1 모터 드라이버가 상기 특정 드라이버 식별자가 상기 제1 모터 드라이버의 드라이버 식별자와 동일한 것으로 판단한 경우, 상기 제1 모터 드라이버가 상기 특정 노드 번호를 자신의 노드 번호로 설정하는 단계; 및
상기 제1 모터 드라이버가 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 상위 제어기로 전송하는 단계를 포함하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
In the driving method of a linear motor system comprising a host controller and a plurality of motor drivers,
Broadcasting, by the host controller, a node setting message including information on a specific driver identifier and a specific node number mapped to the specific driver identifier in a data field to the plurality of motor drivers using CAN communication;
Determining whether a plurality of motor drivers receiving the broadcast node configuration message have the same driver identifier and the specific driver identifier;
When the first motor driver determines that the specific driver identifier is the same as the driver identifier of the first motor driver, setting the specific node number as its own node number by the first motor driver; And
And transmitting, by the first motor driver, a response message including the set node number in a message ID to the host controller.
상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템의 구동 방법에 있어서,
상기 상위 제어기가 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 단계; 및
상기 상위 제어기가 상기 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 제1 모터 드라이버로부터 상기 특정 노드 번호를 메시지 ID에 포함하는 응답 메시지를 수신하는 단계를 포함하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
In the driving method of a linear motor system including a host controller and a plurality of motor drivers,
Broadcasting, by the host controller, a node setting message including information on a specific driver identifier and a specific node number mapped to the specific driver identifier in a data field to the plurality of motor drivers using CAN communication; And
And receiving, by the host controller, a response message including the specific node number in a message ID from a first motor driver whose specific driver identifier included in the broadcasted node configuration message is the same as its driver identifier. Linear motor system drive method.
상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템의 구동 방법에 있어서,
상기 모터 드라이버가 상기 상위 제어기로부터 CAN 통신을 이용하여 브로드캐스트된 특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 수신하는 단계;
상기 모터 드라이버가 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한지 여부를 판단하는 단계;
상기 특정 드라이버 식별자가 상기 모터 드라이버의 드라이버 식별자와 동일한 것으로 판단된 경우, 상기 모터 드라이버가 상기 특정 노드 번호를 자신의 노드 번호로 설정하는 단계; 및
상기 모터 드라이버가 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 상위 제어기로 전송하는 단계를 포함하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
In the driving method of a linear motor system comprising a host controller and a plurality of motor drivers,
Receiving, by the motor driver from the host controller, a node setting message including information on a specific driver identifier broadcasted using CAN communication and a specific node number mapped to the specific driver identifier in a data field;
Determining, by the motor driver, whether its own driver identifier and the specific driver identifier are the same;
When it is determined that the specific driver identifier is the same as the driver identifier of the motor driver, setting the specific node number as its own node number by the motor driver; And
And transmitting, by the motor driver, a response message including the set node number in a message ID to the host controller.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 브로드캐스트된 노드 설정 메시지는, 마스터에서 슬레이브로의 전송을 나타내는 정보 및 브로드캐스트 메시지임을 나타내는 정보를 메시지 ID에 포함하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method according to any one of claims 1 to 3,
The broadcasted node configuration message includes information indicating transmission from a master to a slave and information indicating a broadcast message in a message ID.
제4항에 있어서,
상기 마스터에서 슬레이브로의 전송을 나타내는 정보는 슬레이브에서 마스터로의 전송을 나타내는 정보보다 높은 메시지 우선순위를 나타내는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method of claim 4,
The driving method of a linear motor system, wherein the information indicating transmission from the master to the slave indicates a higher message priority than the information indicating transmission from the slave to the master.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 응답 메시지는, 슬레이브에서 마스터로의 전송을 나타내는 정보를 메시지 ID에 포함하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method according to any one of claims 1 to 3,
The response message includes information indicating transmission from the slave to the master in the message ID.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 복수 개의 모터 드라이버 각각의 드라이버 식별자는, 상기 복수 개의 드라이버 각각에 포함된 마이크로컨트롤러의 고유 식별자에 해시 함수를 적용하여 얻은 값이며, 상기 마이크로컨트롤러의 고유 식별자보다 데이터 길이가 짧은 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method according to any one of claims 1 to 3,
The driver identifier of each of the plurality of motor drivers is a value obtained by applying a hash function to a unique identifier of a microcontroller included in each of the plurality of drivers, and a data length is shorter than that of the microcontroller. How to drive the motor system.
제7항에 있어서, 상기 상위 제어기는,
상기 복수 개의 모터 드라이버 각각의 드라이버 식별자 및 상기 각각의 드라이버 식별자에 맵핑되는 노드 번호를 포함하는 대응 테이블을 저장하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method of claim 7, wherein the host controller,
And storing a corresponding table including a driver identifier of each of the plurality of motor drivers and a node number mapped to the respective driver identifier.
제8항에 있어서, 상기 상위 제어기는,
상기 대응 테이블에 포함된 상기 복수 개의 드라이버 식별자 중에서 서로 동일한 것이 존재하는 경우, 새로운 해시 함수를 상기 고유 식별자에 적용하여 상기 드라이버 식별자로 변환하고 상기 대응 테이블을 변경하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method of claim 8, wherein the host controller,
When the same among the plurality of driver identifiers included in the correspondence table exists, a new hash function is applied to the unique identifier, converted into the driver identifier, and the correspondence table is changed. Way.
제9항에 있어서, 상기 상위 제어기는,
상기 해시 함수가 새로운 해시 함수로 변경되는 경우, 상기 새로운 해시 함수에 관한 정보를 상기 복수 개의 모터 드라이버에게 CAN 메시지로 브로드캐스트하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method of claim 9, wherein the host controller,
When the hash function is changed to a new hash function, information on the new hash function is broadcast to the plurality of motor drivers as CAN messages.
제9항에 있어서, 상기 상위 제어기는,
상기 노드 설정 메시지의 데이터 필드에 해당 드라이버 식별자에 적용된 해시 함수에 관한 정보를 포함시키는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method of claim 9, wherein the host controller,
And including information about a hash function applied to a corresponding driver identifier in a data field of the node setting message.
제1항 내지 제2항 중 어느 한 항에 있어서,
상기 상위 제어기는,
상기 제1 모터 드라이버로부터 상기 응답 메시지를 수신한 경우, 상기 특정 드라이버 식별자를 다른 드라이버 식별자로 변경하고 상기 특정 노드 번호를 상기 변경된 드라이버 식별자에 맵핑된 노드 번호로 변경한 후 상기 변경된 특정 드라이버 식별자 및 상기 변경된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 복수 개의 모터 드라이버에게 CAN 통신을 이용하여 브로드캐스트하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method according to any one of claims 1 to 2,
The host controller,
When the response message is received from the first motor driver, the specific driver identifier is changed to another driver identifier, the specific node number is changed to a node number mapped to the changed driver identifier, and the changed specific driver identifier and the A method of driving a linear motor system, comprising broadcasting a node setting message including information on a changed specific node number in a data field to the plurality of motor drivers using CAN communication.
제12항에 있어서, 상기 상위 제어기는,
상기 노드 설정 메시지를 상기 복수 개의 모터 드라이버로 브로드캐스트한 후 소정 시간 이내에 상기 응답 메시지를 수신하지 못한 경우, 에러 메시지를 출력하는 것을 특징으로 하는 리니어 모터 시스템의 구동 방법.
The method of claim 12, wherein the host controller,
And outputting an error message when the response message is not received within a predetermined time after broadcasting the node setting message to the plurality of motor drivers.
제1항 내지 제3항 중 어느 한 항의 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium on which a program for performing any one of claims 1 to 3 is recorded. 상위 제어기 및 복수 개의 모터 드라이버를 포함하는 리니어 모터 시스템에 있어서,
상기 상위 제어기는,
상기 복수 개의 모터 드라이버와 CAN 통신을 수행하는 제1 CAN 통신부;
상기 복수 개의 모터 드라이버 각각의 드라이버 식별자 및 상기 각각의 드라이버 식별자에 맵핑되는 노드 번호를 포함하는 대응 테이블을 저장하는 저장부; 및
특정 드라이버 식별자 및 상기 특정 드라이버 식별자에 맵핑된 특정 노드 번호에 대한 정보를 데이터 필드에 포함하는 노드 설정 메시지를 상기 제1 CAN 통신부를 통해 상기 복수 개의 모터 드라이버에게 브로드캐스트하고, 상기 브로드캐스트된 노드 설정 메시지에 포함된 특정 드라이버 식별자가 자신의 드라이버 식별자와 동일한 모터 드라이버로부터 상기 특정 노드 번호를 메시지 ID에 포함하는 응답 메시지를 수신하는 경우, 상기 특정 드라이버 식별자를 다른 드라이버 식별자로 변경하여 상기 노드 설정 메시지의 브로드캐스트를 다시 수행하는 제어부를 포함하고,
상기 복수 개의 모터 드라이버 각각은,
상기 상위 제어기와 CAN 통신을 수행하는 제2 CAN 통신부; 및
상기 제2 CAN 통신부를 통해 상기 상위 제어기로부터 상기 브로드캐스트된 노드 설정 메시지를 수신하고, 자신의 드라이버 식별자와 상기 특정 드라이버 식별자가 동일한 것으로 판단된 경우, 상기 특정 노드 번호를 자신의 노드 번호로 설정하고, 상기 설정된 노드 번호를 메시지 ID에 포함하는 응답 메시지를 상기 제2 CAN 통신부를 통해 상기 상위 제어기로 전송하는 마이크로컨트롤러를 포함하는 것을 특징으로 하는 리니어 모터 시스템.
In the linear motor system comprising a host controller and a plurality of motor drivers,
The host controller,
A first CAN communication unit performing CAN communication with the plurality of motor drivers;
A storage unit for storing a correspondence table including driver identifiers of each of the plurality of motor drivers and node numbers mapped to the respective driver identifiers; And
Broadcast a node setting message including information on a specific driver identifier and a specific node number mapped to the specific driver identifier in a data field to the plurality of motor drivers through the first CAN communication unit, and set the broadcast node When a response message including the specific node number in the message ID is received from a motor driver whose specific driver ID included in the message is the same as its driver ID, the node configuration message is changed by changing the specific driver ID to another driver ID. Including a control unit for performing the broadcast again,
Each of the plurality of motor drivers,
A second CAN communication unit performing CAN communication with the host controller; And
When the broadcasted node configuration message is received from the host controller through the second CAN communication unit, and it is determined that the own driver identifier and the specific driver identifier are the same, the specific node number is set as the own node number, and And a microcontroller for transmitting a response message including the set node number in a message ID to the host controller through the second CAN communication unit.
KR1020180113092A 2017-09-20 2018-09-20 Linear motor system and driving method thereof KR102159698B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170121399 2017-09-20
KR1020170121399 2017-09-20

Publications (2)

Publication Number Publication Date
KR20190033041A KR20190033041A (en) 2019-03-28
KR102159698B1 true KR102159698B1 (en) 2020-09-25

Family

ID=65908136

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020180112804A KR102159696B1 (en) 2017-09-20 2018-09-20 Method and system for linear position sensing using magnetic sensors
KR1020180113064A KR102159697B1 (en) 2017-09-20 2018-09-20 Method and apparatus for error correction in linear position sensing system using magnetic sensors
KR1020180113092A KR102159698B1 (en) 2017-09-20 2018-09-20 Linear motor system and driving method thereof

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020180112804A KR102159696B1 (en) 2017-09-20 2018-09-20 Method and system for linear position sensing using magnetic sensors
KR1020180113064A KR102159697B1 (en) 2017-09-20 2018-09-20 Method and apparatus for error correction in linear position sensing system using magnetic sensors

Country Status (1)

Country Link
KR (3) KR102159696B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111856839A (en) * 2019-04-30 2020-10-30 三星电机株式会社 Camera module
US11573391B2 (en) 2019-04-30 2023-02-07 Samsung Electro-Mechanics Co., Ltd. Camera module
KR102357533B1 (en) 2019-04-30 2022-02-04 삼성전기주식회사 Camera module
KR102369889B1 (en) * 2020-11-17 2022-03-02 국민대학교산학협력단 Apparatus of estimating mover's position in linear motor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005277978A (en) 2004-03-26 2005-10-06 Matsushita Electric Ind Co Ltd Method and device for automatically setting identification number
JP2012222527A (en) 2011-04-06 2012-11-12 Toyota Motor Corp In-vehicle network, management node, and number assignment method
KR101472896B1 (en) 2013-12-13 2014-12-16 현대자동차주식회사 Method and apparatus for enhancing security in in-vehicle communication network
KR101742094B1 (en) 2015-12-30 2017-05-31 비앤에스(주) Apparatus for controlling transfer system comprising linear motor and method thereof

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1979704B1 (en) * 2006-02-03 2017-08-30 Moog Inc. Encoder signal analysis system for high-resolution position measurement
JP5467472B2 (en) * 2008-03-31 2014-04-09 日本パルスモーター株式会社 Shaft type linear motor position detector
JP2010142033A (en) * 2008-12-12 2010-06-24 Sodick Co Ltd Linear motor
KR101112765B1 (en) * 2009-09-18 2012-03-13 주식회사 져스텍 Motion stage
KR20120019298A (en) * 2010-08-25 2012-03-06 주식회사 져스텍 Conveying device using linear motor and control method of the same
JP6033571B2 (en) * 2012-04-09 2016-11-30 株式会社日立製作所 Displacement measurement sensor node and displacement amount measurement method using displacement measurement sensor node
KR101683870B1 (en) * 2015-09-07 2016-12-09 디씨티 주식회사 Linear transfer apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005277978A (en) 2004-03-26 2005-10-06 Matsushita Electric Ind Co Ltd Method and device for automatically setting identification number
JP2012222527A (en) 2011-04-06 2012-11-12 Toyota Motor Corp In-vehicle network, management node, and number assignment method
KR101472896B1 (en) 2013-12-13 2014-12-16 현대자동차주식회사 Method and apparatus for enhancing security in in-vehicle communication network
KR101742094B1 (en) 2015-12-30 2017-05-31 비앤에스(주) Apparatus for controlling transfer system comprising linear motor and method thereof

Also Published As

Publication number Publication date
KR20190033039A (en) 2019-03-28
KR102159697B1 (en) 2020-09-25
KR20190033035A (en) 2019-03-28
KR102159696B1 (en) 2020-09-25
KR20190033041A (en) 2019-03-28

Similar Documents

Publication Publication Date Title
KR102159698B1 (en) Linear motor system and driving method thereof
US9015267B2 (en) Method for setting addresses of slave devices in communication network
JP5702505B2 (en) Method and apparatus for serial data transmission adjusted to memory size
CN101309306B (en) Method for allocating addresses from node device in Modbus communication network
CN101208679B (en) Device identification coding of inter-integrated circuit slave devices
CN109768970B (en) Configurable universal protocol generation method
CN105224362A (en) Host computer carries out the method and system of program upgrade to slave computer
CN104169897B (en) The method of PCI high speed address decoding
CN104518910B (en) Apparatus for configuring Ethernet device and method for configuring Ethernet device
CN105119749A (en) Local batch upgrading method and system for home gateway
CN104639348A (en) Network device and configuration method thereof
CN106533976B (en) data packet processing method and device
CN105338129A (en) Automatic address dividing method, display terminal, and module terminal
US7317689B1 (en) System and method to access and address high-speed interface converter devices
CN107566543B (en) Node identifier setting method and device
CN106953939B (en) System and method for automatic assignment of communication addresses of slave nodes of an industrial bus
CN110888892B (en) Block synchronization method, device and storage medium
CN113568646B (en) Novel portable program upgrading method
KR101704300B1 (en) Method for transmitting/receiving can message and system performing the same
CN116530071A (en) CAN address allocation
CN103236901B (en) A kind of method of transfer instruction and device
CN108829629B (en) Communication method and device
CN114531420B (en) IP address configuration method and device, storage medium and electronic equipment
CN108075910B (en) Configuration method of communication equipment and communication equipment
US7529268B1 (en) Multi-point electronic control system protocol

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