KR101275640B1 - Programmable logic controller using multiple buses - Google Patents
Programmable logic controller using multiple buses Download PDFInfo
- Publication number
- KR101275640B1 KR101275640B1 KR1020110131343A KR20110131343A KR101275640B1 KR 101275640 B1 KR101275640 B1 KR 101275640B1 KR 1020110131343 A KR1020110131343 A KR 1020110131343A KR 20110131343 A KR20110131343 A KR 20110131343A KR 101275640 B1 KR101275640 B1 KR 101275640B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- controller
- event
- module
- main
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
논리연산 제어장치가 제공된다. 본 논리연산 제어장치는 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 메인 제어부에 의해 통신이 제어되는 제1 버스 및 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스를 포함하여, 논리연산 제어장치에 특화된 고성능의 버스 기술을 제공할 수 있게 된다. A logic operation control device is provided. The logic operation control device may be a communication path between a main control unit and at least one I / O module, and may be a communication path between a first bus and a main control unit and at least one I / O module controlled by the main control unit. Including a second bus controlled by the I / O module of the present invention, it is possible to provide a high-performance bus technology specialized for the logic operation controller.
Description
본 발명은 논리연산 제어장치에 관한 것으로, 더욱 상세하게는, 다수의 버스를 이용하는 논리연산 제어장치에 관한 것이다.
The present invention relates to a logic operation control device, and more particularly, to a logic operation control device using a plurality of buses.
논리연산제어장치의 구성을 위한 입출력시스템버스는 일반적으로 백플레인(Backplane) 버스 구조가 사용된다. 백플레인 버스의 구현을 위하여 검증된 시스템 버스 표준인 VME64, CPCL, VXI 등을 사용할 수 있다. 하지만, 표준버스는 다양한 시스템의 호환성을 위하여 복잡한 구조를 가지고 있으며, 논리연산 제어장치라는 특정 분야에 최적화 되어있지 않다. The input / output system bus for constructing the logic operation control device generally uses a backplane bus structure. For the implementation of the backplane bus, the proven system bus standards VME64, CPCL and VXI can be used. However, the standard bus has a complicated structure for compatibility with various systems, and is not optimized for a specific field of logic operation controller.
논리연사 제어장치의 시스템 버스를 구현하기 위하여 VME64와 같은 표준을 사용하는 경우도 있지만, 앞에서 언급한 문제점 때문에 산업계에서는 대부분은 논리연산 제어장치에 특화된 버스를 직접 설계하여 사용하는 것이 보편적이다. 업체에서 직접 설계된 버스구조는 외부에 공개하지 않음으로, 각 업체의 버스 성능을 객관적으로 평가하기 힘들뿐만 아니라, 새로운 논리연산 제어장치를 개발할 때, 기술을 참조하거나, 사용하는데 어려움이 많다. Although a standard such as VME64 may be used to implement a system bus of a logic continuous controller, it is common in the industry to design and use a bus specialized for a logical operation controller. Since the bus structure designed by the company is not disclosed to the outside, it is difficult to objectively evaluate the bus performance of each company, and it is difficult to refer to or use the technology when developing a new logic operation control device.
독자적인 논리연산제어장치를 개발하고자 할 경우에는 직접 버스구조를 설계하고 동작에 대한 안정성을 검증해야 하기 때문에, 개발기간이나 신뢰성 측면에서 어려움이 발생한다. If you want to develop your own logic operation control device, you have to design your own bus structure and verify the stability of the operation.
이에 따라, 논리연산 제어장치에 특화된 고성능의 버스 기술을 개발하기 위한 방안의 모색이 요청된다.
Accordingly, there is a demand for a method for developing a high-performance bus technology specialized for a logic operation control device.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 메인 제어부에 의해 통신이 제어되는 제1 버스 및 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스를 포함하는 논리연산 제어장치를 제공함에 있다.
The present invention has been made to solve the above problems, an object of the present invention, the first bus and the main control unit which is the communication path of the main control unit and at least one I / O module and the communication is controlled by the main control unit And a second bus which is a communication path of at least one I / O module and is controlled by the at least one I / O module.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 논리연산 제어장치는, 논리 연산을 수행하는 메인 제어부; 데이터를 입출력하는 적어도 하나의 I/O 모듈; 상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 메인 제어부에 의해 통신이 제어되는 제1 버스; 상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스;를 포함한다 .According to an embodiment of the present invention for achieving the above object, a logic operation control apparatus, the main control unit for performing a logic operation; At least one I / O module for inputting and outputting data; A first bus that is a communication path between the main control unit and the at least one I / O module and in which communication is controlled by the main control unit; And a second bus that is a communication path between the main control unit and the at least one I / O module and is controlled by the at least one I / O module.
그리고, 상기 적어도 하나의 I/O 모듈 각각을 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 적어도 하나의 I/O 모듈 각각과 상기 제1 버스 간의 통신 및 상기 적어도 하나의 I/O 모듈 각각과 상기 제2 버스 간의 통신을 제어하는 적어도 하나의 I/O 버스 컨트롤러;를 더 포함할 수도 있다. And connect each of the at least one I / O module with the first bus and the second bus, communicate between each of the at least one I / O module and the first bus and the at least one I / O module. At least one I / O bus controller for controlling the communication between each and the second bus; may further include.
또한, 상기 I/O 버스 컨트롤러 각각은, 데이터를 상기 I/O 모듈의 프로토콜에 맞게 변형하여 송수신하는 입출력 인터페이스부; 상기 제1버스 또는 상기 제2버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부; 상기 I/O 모듈에 이벤트가 발생된 경우, 입출력 이벤트를 생성하는 이벤트 생성부; 및 상기 버스 제어부 및 상기 이벤트 생성부에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함한다. The I / O bus controller may further include an input / output interface unit configured to transmit / receive data by modifying it according to a protocol of the I / O module; A bus controller which encodes and decodes data transmitted and received through the first bus or the second bus; An event generator configured to generate an input / output event when an event occurs in the I / O module; And a bus interface unit configured to transmit and receive data transmitted and received by the bus controller and the event generator in accordance with a bus protocol.
그리고, 상기 이벤트 생성부는, 상기 제2 버스를 통해 상기 생성된 입출력 이벤트를 상기 메인 버스 제어부로 전송할 수도 있다. The event generator may transmit the generated input / output event to the main bus controller through the second bus.
또한, 상기 메인 제어부를 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 메인 제어부와 상기 제1 버스 간의 통신 및 상기 메인 제어부와 상기 제2 버스 간의 통신을 제어하는 메인 버스 컨트롤러;를 더 포함할 수도 있다. The apparatus may further include a main bus controller connecting the main control unit with the first bus and the second bus and controlling communication between the main control unit and the first bus and communication between the main control unit and the second bus. You may.
그리고, 상기 메인 버스 컨트롤러는, 데이터를 상기 메인 제어부의 프로토콜에 맞게 변형하여 송수신하는 메인 인터페이스부; 상기 제1 버스 또는 상기 제2 버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부; 상기 I/O 버스 컨트롤러로부터 수신된 입출력 이벤트를 우선순위에 따라 정렬하여 상기 메인 제어부로 전송하는 이벤트 핸들러; 및 상기 버스 제어부 및 상기 입출력 이벤트 핸들러에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함할 수도 있다. The main bus controller may include: a main interface unit configured to transmit and receive data by modifying the data according to a protocol of the main controller; A bus controller which encodes and decodes data transmitted and received through the first bus or the second bus; An event handler for sorting the input / output events received from the I / O bus controller according to priority and transmitting them to the main controller; And a bus interface unit configured to transmit and receive data transmitted and received by the bus control unit and the input / output event handler according to a bus protocol.
또한, 상기 입출력 이벤트 핸들러는, 상기 제2 버스를 통해 상기 I/O 버스 제어부로부터 상기 입출력 이벤트를 수신할 수도 있다. The input / output event handler may receive the input / output event from the I / O bus controller via the second bus.
그리고, 상기 적어도 하나의 I/O 모듈는, 우선순위 정보가 포함된 토큰(Token)을 이용하여 상기 제2 버스를 통한 상기 메인 제어부와의 통신 여부를 결정할 수도 있다.
The at least one I / O module may determine whether to communicate with the main controller through the second bus by using a token including priority information.
본 발명의 다양한 실시예에 따르면, 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 메인 제어부에 의해 통신이 제어되는 제1 버스 및 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스를 포함하는 논리연산 제어장치를 제공할 수 있게 되어, 논리연산 제어장치에 특화된 고성능의 버스 기술을 제공할 수 있게 된다.
According to various embodiments of the present disclosure, a communication path between a first bus and a main control unit and at least one I / O module, which is a communication path between a main control unit and at least one I / O module and whose communication is controlled by the main control unit, It is possible to provide a logic operation controller including a second bus which is controlled by at least one I / O module, thereby providing a high performance bus technology specialized for the logic operation controller.
도 1은 본 발명의 일 실시예에 따른, 논리연산 제어장치의 구성을 도시한 블럭도,
도 2는 본 발명의 일 실시예에 따른, 메인 버스 컨트롤러 및 I/O 버스 컨트롤러의 구성을 도시한 도면,
도 3은 본 발명의 일 실시예에 따른, 이벤트 버스의 통신 방식을 도시한 도면이다. 1 is a block diagram showing the configuration of a logical operation control apparatus according to an embodiment of the present invention;
2 is a diagram illustrating a configuration of a main bus controller and an I / O bus controller according to an embodiment of the present invention;
3 is a diagram illustrating a communication method of an event bus according to an embodiment of the present invention.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, with reference to the drawings will be described the present invention in more detail.
도 1은 본 발명의 일 실시예에 따른, 논리연산 제어장치(100)의 구성을 도시한 블럭도이다. 도 1에 도시된 바와 같이, 논리연산 제어장치(100)는 메인 제어부(110), 메인 버스 컨트롤러(115), 제1 I/O 모듈(120), 제1 I/O 버스 컨트롤러(125), 제2 I/O 모듈(130), 제2 I/O 버스 컨트롤러(135), 제3 I/O 모듈(140), 제3 I/O 버스 컨트롤러(145), 데이터 버스(150) 및 이벤트 버스(160)를 포함한다. 1 is a block diagram showing the configuration of a logic
메인 제어부(110)는 논리 연산을 수행한다. 또한, 제어부(110)는 논리연산 제어장치(100)의 전반적인 동작을 제어하며, 입력된 이벤트를 우선순위별로 처리한다. The
메인 버스 컨트롤러(115)는 메인 제어부(110)를 데이터 버스(150) 및 이벤트 버스(160)와 연결하고, 메인 제어부(110)와 데이터 버스(150) 간의 통신 및 메인 제어부(110)와 이벤트 버스(160) 간의 통신을 제어한다. 구체적으로, 메인 버스 컨트롤러(115)는 메인 제어부(110)가 데이터 버스(150)를 통해 I/O 모듈들(120, 130, 140)로 명령 패킷 및 데이터 요청 패킷을 전송하도록 제어한다. 그리고, 메인 버스 컨트롤러(115)는 메인 제어부(110)가 이벤트 버스(160)를 통해 I/O 모듈들(120, 130, 140)로부터 입출력 이벤트를 수신하도록 제어한다. The
제1 I/O 모듈(120), 제2 I/O 모듈(130), 및 제3 I/O 모듈(140)는 각각 연결된 외부 장치들과 데이터를 입출력한다. The first I /
제1 I/O 버스 컨트롤러(125), 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 I/O 모듈 각각(120,130,140)을 데이터 버스(150) 및 이벤트 버스(160)와 연결하고, I/O 모듈 각각(120,130,140)과 데이터 버스(150) 간의 통신 및 I/O 모듈 각각(120,130,140)과 이벤트 버스(160) 간의 통신을 제어한다. 구체적으로, 제1 I/O 버스 컨트롤러(125), 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 I/O 모듈 각각(120,130,140)이 데이터 버스(150)를 통해 메인 제어부(110)로부터 명령 패킷 및 데이터 요청 패킷을 수신하도록 제어한다. 그리고, 제1 I/O 버스 컨트롤러(125), 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 이벤트 버스(160)를 통해 I/O 모듈들(120, 130, 140)이 메인 제어부(110)로 입출력 이벤트를 전송하도록 제어한다. The first I /
데이터 버스(150)는 메인 제어부(110) 및 I/O 모듈 각각(120,130,140)의 통신 경로가 되고, 메인 제어부(110)에 의해 통신이 제어된다. 데이터 버스(150)는 메인 제어부(110) 및 I/O 모듈 각각(120,130,140)이 연결된다.The
구체적으로, 데이터 버스(150)는 통신 방식이 동기식 방식이며, 마스터/슬레이브 구조로 되어있다. 이때, 논리연산 제어장치(100)의 메인 제어부(110)가 네트워크의 마스터가 되며, 그 외의 I/O 모듈들(120,130,140)이 슬레이브가 된다. 동기신호는 마스터에 의하여 생성되며, 동기신호를 제외한 다른 버스 컨트롤 신호는 존재하지 않는다. 데이터 버스(150)는 메인 제어부(110) 및 I/O 모듈들(120,130,140)을 포함하는 모든 모듈이 24비트 병렬 버스를 공유하여 사용하지만, 마스터만이 통신을 시작하기 때문에 특별한 충돌방지 메커니즘은 필요하지 않다. 슬레이브는 항상 마스터로부터 송신된 패킷을 대기한다. 마스터인 메인 제어부(110)로부터 전송되는 패킷은 크게 두 가지가 있는데, 명령 패킷과 데이터 요청 패킷이다. 명령 패킷은 마스터가 슬레이브에게 컨트롤 명령을 보내는 것으로 리셋명령, 채널 설정명령, 입출력 채널의 신호 출력 등이 있다. 데이터 요청 패킷은 마스터가 슬레이브의 현재 레지스터 상태 및 입출력 채널의 수신신호를 읽기위한 데이터 요청 패킷이다. 데이터 버스(150)에서는 어떠한 상황에서도 슬레이브가 능동적으로 데이터 버스를 점령할 수 없으며, 필요에 따라 마스터는 슬레이브에서 전송하고자 하는 데이터가 있는지 주기적으로 폴링(Polling)한다. 이와 같이, 데이터 버스(150)는 메인 제어부(110)에 의해 제어되는 것을 확인할 수 있다. Specifically, the
이벤트 버스(160)는 메인 제어부(110) 및 I/O 모듈들(120,130,140)의 통신 경로가 되고, I/O 모듈들(120,130,140)에 의해 제어된다. 이벤트 버스(160)는 메인 제어부(110) 및 I/O 모듈 각각(120,130,140)이 연결된다. 이벤트 버스(160)는 발생된 입출력 이벤트의 우선순위에 따라 I/O 모듈들(120,130,140) 중 버스를 점유하는 I/O 모듈가 결정된다. 따라서, 이벤트 버스(160)는 일정 주기마다 I/O 모듈들(120,130,140) 중 어느 하나가 점유하게 된다. The
구체적으로, 이벤트 버스(160)는 데이터 버스(150)와 마찬가지로 동기식 24비트 병렬버스이며 마스터/슬레이브 구조로 되어있다. 이때, 논리연산 제어장치(100)의 메인 제어부(110)가 네트워크의 마스터가 되며, 그 외의 I/O 모듈들(120,130,140)이 슬레이브가 된다. 동기신호는 마스터에 의하여 발생된다. 이벤트 버스(160)는 슬레이브가 능동적으로 버스를 점유할 수 있다. 즉, 이벤트 버스(160)는 슬레이브인 I/O 모듈들(120,130,140)이 점유할 수 있다. 다수의 슬레이브인 I/O 모듈들(120,130,140)이 동시에 이벤트 버스(160)에 연결되어 있기 때문에, 슬레이브가 동시에 버스를 점유하게 되면 데이터의 충돌이 발생할 수 있다. 이러한 문제점을 해결하기 위하여 이벤트 버스(160)의 통신에는 토큰(Token)방식이 이용된다. 토큰은 입출력 이벤트의 우선순위 정보가 포함되어 있다. 그리고, 슬레이브인 I/O 모듈들(120,130,140)은 우선순위 정보가 포함된 토큰(Token)을 이용하여 이벤트 버스(160)를 통한 메인 제어부(110)와의 통신 여부를 결정하게 된다. 토큰은 데이지 체인 버스를 통하여 전달된다. 여기에서, 데이지 체인 버스는 토큰을 전달하기 위한 이벤트 버스(160) 내의 논리적 버스이다. 데이지 체인 버스는 메인 제어부(110) → 제1 I/O 모듈(120) → 제2 I/O 모듈(130) → 제3 I/O 모듈(140) →메인 제어부(110)의 순서로 순환 형태로 토큰을 전송하는 경로이다. 슬레이브는 이벤트 버스(160)를 사용하기 위해서 데이지 체인을 통하여 들어오는 토큰을 항상 모니터링 하여야 한다.Specifically, the
데이지 체인은 이벤트 버스(160)를 통해 슬레이브가 이벤트 버스를 점령하기 위한 토큰이 전달되는 경로를 나타낸다. 데이지 체인은 총 4개의 버스라인을 가지고 있으며, 동기신호를 전달하기 위한 Sync 라인과 현재 버스가 사용 중임을 나타내는 Busy 시그널 라인, 직렬 데이터를 보내기 위한 데이터 라인, 마지막으로 마스터와 직접 연결되는 또 다른 데이터 라인이 있다. 토큰의 생성 및 이용방식은 추후 상세히 설명한다. The daisy chain represents the path through which the token for the slave to occupy the event bus is passed through the
도 2는 본 발명의 일 실시예에 따른, 메인 버스 컨트롤러(115) 및 제1 I/O 버스 컨트롤러(125)의 구성을 도시한 도면이다. 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 제1 I/O 버스 컨트롤러(125)와 구성이 동일하므로, 이하에서는 제1 I/O 버스 컨트롤러(125)의 구성에 대해서만 설명한다. 2 is a diagram illustrating the configuration of the
도 2에 도시된 바와 같이, 메인 버스 컨트롤러(115)는 메인 인터페이스부(210), 버스 제어부(220), 이벤트 핸들러(230), 및 버스 인터페이스부(240)를 포함한다. As shown in FIG. 2, the
메인 인터페이스부(210)는 데이터를 메인 제어부(110)의 프로토콜에 맞게 변형하여 송수신한다. 즉, 메인 인터페이스부(210)는 버스 제어부(220)에서 송수신 되는 데이터를 메인 제어부(110)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 메인 제어부(110)로 송수신하게 된다. The
버스 제어부(220)는 데이터 버스(150) 또는 이벤트 버스(160)를 통해 송수신되는 데이터를 인코딩 및 디코딩한다. 구체적으로, 버스 제어부(220)는 메인 제어부(110)에 입력하기 위한 데이터 패킷을 패킷 디코딩하고, 데이터 버스(150) 또는 이벤트 버스(160)로 출력하고자 하는 데이터를 패킷 인코딩하여 출력하게 된다. The
이벤트 핸들러(230)는 이벤트 버스(160)를 통해 I/O 버스 컨트롤러(125)로부터 수신된 입출력 이벤트를 우선순위에 따라 정렬하여 메인 제어부(110)로 전송한다. 구체적으로, 이벤트 핸들러(230)는 이벤트 버스(160)를 통해 I/O 버스 컨트롤러(125)로부터 입출력 이벤트를 수신한다. 그리고, 이벤트 핸들러(230)는 수신된 입출력 이벤트를 기설정된 입출력 이벤트별 우선순위에 따라 정렬하여 메인 제어부(110)로 전송한다. The
버스 인터페이스부(240)는 버스 제어부(220) 및 입출력 이벤트 핸들러(230)에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신한다. 즉, 버스 인터페이스부(240)는 버스 제어부(220) 및 입출력 이벤트 핸들러(230)에서 송수신되는 데이터를 데이터 버스(150) 및 이벤트 버스(160)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 데이터 버스(150) 및 이벤트 버스(160)로 송수신하게 된다. The
이와 같은 구조의 메인 버스 컨트롤러(115)는 메인 제어부(110)가 이벤트 버스(160)를 통해 I/O 모듈들(120, 130, 140)로부터 입출력 이벤트를 수신하도록 제어할 수 있게 된다. The
또한, 도 2에 도시된 바와 같이, 제1 I/O 버스 컨트롤러(125)는 입출력 인터페이스부(250), 버스 제어부(260), 이벤트 생성부(270), 및 버스 인터페이스부(280)를 포함한다. In addition, as shown in FIG. 2, the first I /
입출력 인터페이스부(250)는 데이터를 제1 I/O 모듈(120)의 프로토콜에 맞게 변형하여 송수신한다. 즉, 입출력 인터페이스부(250)는 버스 제어부(260)에서 송수신 되는 데이터를 제1 I/O 모듈(120)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 제1 I/O 모듈(120)로 송수신하게 된다. The input /
버스 제어부(260)는 데이터 버스(150) 또는 이벤트 버스(160)를 통해 송수신되는 데이터를 인코딩 및 디코딩한다. 구체적으로, 버스 제어부(260)는 제1 I/O 모듈(120)에 입력하기 위한 데이터 패킷을 패킷 디코딩하고, 데이터 버스(150) 또는 이벤트 버스(160)로 출력하고자 하는 데이터를 패킷 인코딩하여 출력하게 된다. The
이벤트 생성부(270)는 제1 I/O 모듈(120)에 이벤트가 발생된 경우, 입출력 이벤트를 생성하게 된다. 입출력 이벤트는 제1 I/O 모듈(120)의 내부 또는 입력 신호 등에서 발생되는 이벤트를 나타내며, 예를 들어 입력 에러 이벤트 또는 고장 이벤트 등이 될 수 있다. 또한, 이벤트 생성부(270)는 생성된 입출력 이벤트의 우선순위가 다른 이벤트들에 비하여 최상위인 경우에 입출력 이벤트를 이벤트 버스(160)를 통해 메인 버스 컨트롤러(115)로 전송하게 된다. The
버스 인터페이스부(280)는 버스 제어부(260) 및 이벤트 생성부(270)에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신한다. 즉, 버스 인터페이스부(280)는 버스 제어부(260) 및 이벤트 생성부(270)에서 송수신되는 데이터를 데이터 버스(150) 및 이벤트 버스(160)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 데이터 버스(150) 및 이벤트 버스(160)로 송수신하게 된다. The
이와 같은 구조의 제1 I/O 버스 컨트롤러(125)는 제1 I/O 모듈(120)에서 발생된 입출력 이벤트가 우선순위에 따라 이벤트 버스(160)를 통해 메인 제어부(110)로 전송되도록 제어할 수 있게 된다. The first I /
이하에서는, 도 3을 참고하여, 이벤트 버스(160)를 통해 입출력 이벤트가 전송되는 과정에 대해 설명한다. 도 3은 본 발명의 일 실시예에 따른, 이벤트 버스(160)의 통신 방식을 도시한 도면이다. Hereinafter, a process of transmitting an input / output event through the
도 3에서 점선은 이벤트 버스(160)를 나타내고, 실선 화살표는 데이지 체인(300)을 나타낸다. 토큰(310, 320)은 이벤트 버스(160)를 통해 데이지 체인의 순서에 따라 전송된다. In FIG. 3, the dotted line represents the
최초에 논리연산 제어장치(100)가 구동되면, 도 3에 도시된 바와 같이, 마스터인 메인 제어부(110)는 스타트 패킷(Start packet) 형태의 토큰을 생성하고, 메인 버스 컨트롤러(115)는 데이지 체인(300)을 따라 가장 가까운 슬레이브로 스타트 패킷을 포함하는 토큰을 전송한다. 스타트 패킷은 8비트 스타트 비트와 모듈 아이디를 포함한다. When the
제일 가까이 연결된 슬레이브(S1)인 제1 I/O 모듈(120)의 제1 I/O 버스 컨트롤러(125)는 토큰을 수신한 후 메인 버스 컨트롤러(115)로 ACK신호를 보낸다. The first I /
제1 I/O 버스 컨트롤러(125)는 수신한 토큰의 스타트 패킷의 뒷부분에 자신의 패킷인 슬레이브 패킷(S1)을 덧붙인다. 슬레이브 패킷(S1)은 스타트를 나타내는 8비트, 모듈 아이디, 모듈과 연결된 외부 장치를 나타내는 정보(FUNC), 그리고 마지막으로 보낼 입출력 이벤트 데이터가 있음을 우선순위별로 나타내는 8비트 비트마스크(Bit mask)를 포함한다. The first I /
비트마스크는 이벤트 버스(160)를 통해 전송되는 패킷을 8개의 우선순위로 구분하여 표시한다. 각 I/O 버스 컨트롤러(125,135,145)에서 토큰 패킷에 자신의 정보를 추가하는 내용 중에 비트 마스크는 자신이 보낼 패킷이 존재함을 나타낸다. 비트 마스크의 최상위비트는 제일 높은 우선순위 패킷을 의미하며 마지막 비트는 제일 낮은 우선순위의 패킷을 의미한다. 여기에서, 패킷은 입출력 이벤트가 될 수도 있으며, 이외에 다른 패킷이 될 수도 있다. 예를 들어, 비트 마스크의 값이 '01000100'이면, 전송할 패킷이 우선순위가 2인 패킷과 우선순위가 6인 패킷으로 2개가 있다는 것을 나타낸다. 이와 같이, 비트 마스크는 우선순위별 전송 대기중인 패킷이 존재함을 나타낸다. The bit mask displays packets transmitted through the
이후에, 제1 I/O 버스 컨트롤러(125)는 토큰에 슬레이브 패킷(S1)을 덧붙인 후에, 데이지 체인을 따라 제2 I/O 버스 컨트롤러(135)로 토큰을 전송한다. 그 후에, 제2 I/O 버스 컨트롤러(135)와 제3 I/O 버스 컨트롤러(145)도 순차적으로 자신의 슬레이브 패킷(S2, S3)을 토큰에 덧붙이게 된다. 제3 I/O 버스 컨트롤러(145)는 ACK신호를 수신할 수 없기 때문에, 자신이 마지막임을 알 수 있게 되며, 완성된 토큰(320)을 다시 이벤트 버스(160)의 데이지 체인을 따라 메인 버스 컨트롤러로 전달한다. Thereafter, the first I /
이 후에, 토큰(320)은 데이지 체인을 따라 계속적으로 '메인 버스 컨트롤러(115) → 제1 I/O 버스 컨트롤러(125) → 제2 I/O 버스 컨트롤러(135) → 제3 I/O 버스 컨트롤러(145) → 메인 버스 컨트롤러(115)'의 순서로 순환 전달된다. 그리고, 각 I/O 버스 컨트롤러(125, 135, 145)는 메인 제어부(110)로 전송하고자 하는 입출력 이벤트가 발생된 경우, 토큰(320)의 비트 마스크에 해당 우선순위영역의 비트마스크 값을 "1"로 기록한다. 그리고, 각 I/O 버스 컨트롤러(125, 135, 145)는 토큰(320)을 수신하게 되면, 비트마스크를 서로 비교하여 다른 모듈이 자신의 입출력 이벤트보다 우선순위가 높은지 여부를 판단한다. 만약, 자신의 입출력 이벤트의 우선순위가 가장 높은 경우, 해당 I/O 버스 컨트롤러는 이벤트 버스(160)를 점유하여 해당 입출력 이벤트를 이벤트 버스(160)를 통해 메인 버스 컨트롤부(115)로 전송한다. 그리고, 해당 I/O 버스 컨트롤러는 해당 비트 마스크를 '0'으로 클리어하고, 토큰(320)을 데이지 체인을 따라 다음 I/O 버스 컨트롤러로 전송한다. After this, the token 320 is continuously along the daisy chain '
반면, 자신의 입출력 이벤트의 우선순위가 가장 높은 것이 아닌 경우, 해당 I/O 버스 컨트롤러는 데이지 체인을 따라 다음 I/O 버스 컨트롤러로 토큰(320)을 전송한다.On the other hand, if the I / O bus controller does not have the highest priority, the corresponding I / O bus controller transmits the token 320 along the daisy chain to the next I / O bus controller.
예를 들어, 제1 I/O 버스 컨트롤러(125)의 비트 마스크는 '00100000'이고, 제2 I/O 버스 컨트롤러(135)의 비트 마스크는 '10000010'이고, 제3 I/O 버스 컨트롤러(115)의 비트 마스크는 '00000001'인 경우를 가정한다. For example, the bit mask of the first I /
그러면, 최초 데이지 체인을 순환할 때, 제2 I/O 버스 컨트롤러(135)의 비트 마스크가 우선순위가 가장 높으므로, 제2 I/O 버스 컨트롤러(135)가 우선순위 1에 해당되는 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송한다. Then, when cycling through the first daisy chain, the bit mask of the second I /
1번의 데이지 체인 순환이 종료되면, 제1 I/O 버스 컨트롤러(125)의 비트 마스크는 '00100000'이고, 제2 I/O 버스 컨트롤러(135)의 비트 마스크는 '00000010'이고, 제3 I/O 버스 컨트롤러(115)의 비트 마스크는 '00000001'가 된다. 2번째 데이지 체인 순환시에는 제1 I/O 버스 컨트롤러(125)가 먼저 우선순위가 3인 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송하고, 그다음 제2 I/O 버스 컨트롤러(135)가 우선순위가 7인 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송하며, 마지막으로 제3 I/O 버스 컨트롤러(145)가 우선순위가 8인 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송하게 된다. When the first daisy chain cycle ends, the bit mask of the first I /
따라서, 상기의 가정의 경우, 2번은 데이지 체인 순환을 통해 모든 입출력 이벤트의 전송이 완료되게 된다. Therefore, in the case of the above assumption, No. 2 completes the transmission of all input / output events through the daisy chain cycle.
이와 같이, 토큰(320)의 비트 마스크에 표시된 우선순위를 기반으로 하여, 이벤트 버스(160)는 통신이 제어되게 된다. 또한, 토큰(320)은 I/O 버스 컨트롤러들을 하나씩 거쳐감으로써, 다수의 I/O 버스 컨트롤러들이 충돌없이 이벤트 버스(160)를 이용하여 통신할 수 있게 된다. As such, based on the priority indicated in the bit mask of the token 320, the
본 실시예에서는, I/O 모듈가 3개인 것으로 설명하였으나 이는 설명의 편의를 위한 것이며, I/O 모듈의 개수는 적어도 1개 이상이 될 수 있음은 물론이다. In the present embodiment, it has been described that there are three I / O modules, but this is for convenience of description, and the number of I / O modules may be at least one.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention.
100 : 논리연산 제어장치 110 : 메인 제어부
120 : 제1 I/O 모듈 130 : 제2 I/O 모듈
140 : 제3 I/O 모듈100: logical operation control device 110: main control unit
120: first I / O module 130: second I / O module
140: third I / O module
Claims (8)
데이터를 입출력하는 적어도 하나의 I/O 모듈;
상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 메인 제어부에 의해 통신이 제어되는 제1 버스; 및
상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스;를 포함하고,
상기 적어도 하나의 I/O 모듈은,
우선순위 정보가 포함된 토큰(Token)을 이용하여 상기 제2 버스를 통한 상기 메인 제어부와의 통신 여부를 결정하는 것을 특징으로 하는 논리연산 제어장치.
A main controller which performs a logical operation;
At least one I / O module for inputting and outputting data;
A first bus that is a communication path between the main control unit and the at least one I / O module and in which communication is controlled by the main control unit; And
And a second bus that is a communication path between the main control unit and the at least one I / O module and is controlled by the at least one I / O module.
The at least one I / O module,
And determining whether to communicate with the main controller through the second bus by using a token including priority information.
상기 적어도 하나의 I/O 모듈 각각을 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 적어도 하나의 I/O 모듈 각각과 상기 제1 버스 간의 통신 및 상기 적어도 하나의 I/O 모듈 각각과 상기 제2 버스 간의 통신을 제어하는 적어도 하나의 I/O 버스 컨트롤러;를 더 포함하는 것을 특징으로 하는 논리연산 제어장치.
The method of claim 1,
Connect each of the at least one I / O module to the first bus and the second bus, communicate between each of the at least one I / O module and the first bus, and each of the at least one I / O module; And at least one I / O bus controller for controlling communication between the second buses.
상기 I/O 버스 컨트롤러 각각은,
데이터를 상기 I/O 모듈의 프로토콜에 맞게 변형하여 송수신하는 입출력 인터페이스부;
상기 제1버스 또는 상기 제2버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부;
상기 I/O 모듈에 이벤트가 발생된 경우, 입출력 이벤트를 생성하는 이벤트 생성부; 및
상기 버스 제어부 및 상기 이벤트 생성부에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함하는 것을 특징으로 하는 논리연산 제어장치.
The method of claim 2,
Each of the I / O bus controller,
An input / output interface unit configured to transmit / receive data by modifying the data according to the protocol of the I / O module;
A bus controller which encodes and decodes data transmitted and received through the first bus or the second bus;
An event generator configured to generate an input / output event when an event occurs in the I / O module; And
And a bus interface unit configured to transmit / receive data transmitted and received by the bus controller and the event generator in accordance with a bus protocol.
상기 이벤트 생성부는,
상기 제2 버스를 통해 상기 생성된 입출력 이벤트를 상기 버스 제어부로 전송하는 것을 특징으로 하는 논리연산 제어장치.
The method of claim 3,
The event generator,
And transmitting the generated input / output event to the bus controller through the second bus.
상기 메인 제어부를 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 메인 제어부와 상기 제1 버스 간의 통신 및 상기 메인 제어부와 상기 제2 버스 간의 통신을 제어하는 메인 버스 컨트롤러;를 더 포함하는 것을 특징으로 하는 논리연산 제어장치.
The method of claim 1,
And a main bus controller connecting the main control unit with the first bus and the second bus and controlling communication between the main control unit and the first bus and communication between the main control unit and the second bus. Logic operation control device characterized in that.
상기 메인 버스 컨트롤러는,
데이터를 상기 메인 제어부의 프로토콜에 맞게 변형하여 송수신하는 메인 인터페이스부;
상기 제1 버스 또는 상기 제2 버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부;
상기 I/O 버스 컨트롤러로부터 수신된 입출력 이벤트를 우선순위에 따라 정렬하여 상기 메인 제어부로 전송하는 이벤트 핸들러; 및
상기 버스 제어부 및 상기 이벤트 핸들러에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함하는 것을 특징으로 하는 논리연산 제어장치.
The method of claim 5,
The main bus controller,
A main interface unit for transmitting and receiving data by modifying the protocol of the main controller;
A bus controller which encodes and decodes data transmitted and received through the first bus or the second bus;
An event handler for sorting the input / output events received from the I / O bus controller according to priority and transmitting them to the main controller; And
And a bus interface unit configured to modify and transmit data transmitted and received by the bus control unit and the event handler in accordance with a bus protocol.
상기 이벤트 핸들러는,
상기 제2 버스를 통해 상기 I/O 버스 제어부로부터 상기 입출력 이벤트를 수신하는 것을 특징으로 하는 논리연산 제어장치.
The method according to claim 6,
The event handler is
And receiving the input / output event from the I / O bus controller via the second bus.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110131343A KR101275640B1 (en) | 2011-12-08 | 2011-12-08 | Programmable logic controller using multiple buses |
PCT/KR2012/003163 WO2013085121A1 (en) | 2011-12-08 | 2012-04-25 | Programmable logic controller using multiple buses |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110131343A KR101275640B1 (en) | 2011-12-08 | 2011-12-08 | Programmable logic controller using multiple buses |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101275640B1 true KR101275640B1 (en) | 2013-06-17 |
Family
ID=48574455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110131343A KR101275640B1 (en) | 2011-12-08 | 2011-12-08 | Programmable logic controller using multiple buses |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101275640B1 (en) |
WO (1) | WO2013085121A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760659B (en) * | 2023-08-11 | 2023-11-14 | 浙江国利信安科技有限公司 | Programmable logic controller and its data communication method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010049508A (en) * | 2008-08-22 | 2010-03-04 | Koyo Electronics Ind Co Ltd | Selection system of plurality of buses and programmable controller with the system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0830577A (en) * | 1994-07-15 | 1996-02-02 | Mitsubishi Electric Corp | Simd processor |
JPH08204740A (en) * | 1995-01-20 | 1996-08-09 | Nec Corp | Data transmission method and data transmitter |
KR0179868B1 (en) * | 1996-02-26 | 1999-05-15 | 이종수 | Programmable Logic Controller Intermodule Data Transceiver and Method |
KR100451374B1 (en) * | 2002-06-08 | 2004-10-06 | 엘지산전 주식회사 | The improvement apparatus and method of the communication speed and reliability for backplane using a parallel bus |
JP4836811B2 (en) * | 2007-01-26 | 2011-12-14 | 株式会社東芝 | Performance monitoring apparatus and information processing apparatus |
-
2011
- 2011-12-08 KR KR1020110131343A patent/KR101275640B1/en active IP Right Grant
-
2012
- 2012-04-25 WO PCT/KR2012/003163 patent/WO2013085121A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010049508A (en) * | 2008-08-22 | 2010-03-04 | Koyo Electronics Ind Co Ltd | Selection system of plurality of buses and programmable controller with the system |
Also Published As
Publication number | Publication date |
---|---|
WO2013085121A1 (en) | 2013-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02156750A (en) | Multiplex access control method and multiplex access control system executing same | |
US20130179622A1 (en) | System and method for transmitting and receiving data using an industrial expansion bus | |
JP2012064021A (en) | Communication system, master device and slave device, and communication method | |
TWI605696B (en) | Communication device with logic multichannel-communication via a physical transmission route for serial transmission of interchip-data | |
JP5570556B2 (en) | Numerical control device that communicates with IO unit | |
JP6629361B2 (en) | Programmable logic controller | |
CN112269749B (en) | I2C communication system | |
KR102549085B1 (en) | Bus control circuit | |
US7843966B2 (en) | Communication system for flexible use in different application scenarios in automation technology | |
KR101275640B1 (en) | Programmable logic controller using multiple buses | |
JP2015204117A (en) | Plc system having plural cpu modules and control method | |
US6675245B1 (en) | Apparatus and method for providing round-robin arbitration | |
JP4210993B2 (en) | USB hub device, USB peripheral device and data transmission / reception method | |
WO2017145292A1 (en) | Time-synchronous slave apparatus and communication control method | |
US20230161719A1 (en) | Processing of process data | |
US11489697B2 (en) | Transmission of data on a local bus | |
KR102589284B1 (en) | Control device for power conditioning system based on high speed communication | |
US8427955B2 (en) | Method and apparatus for transferring data | |
US11184194B2 (en) | Distributed processing of process data | |
Dheere | Universal computer interfaces | |
TW200307641A (en) | Elevator control transmission system | |
WO2023128479A1 (en) | Memory control system and display device including memory control function | |
JP2010204932A (en) | Plc system | |
WO2009136731A2 (en) | Clock generation method, an identifier issuing method and a data acquisition method | |
US20050080977A1 (en) | Distributed switching method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20111208 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20121206 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20130603 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20130611 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20130612 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20151224 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20151224 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170608 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20170608 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180710 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20180710 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190611 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20190611 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20200611 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20210610 Start annual number: 9 End annual number: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20220531 Start annual number: 10 End annual number: 10 |
|
PR1001 | Payment of annual fee |
Payment date: 20230612 Start annual number: 11 End annual number: 11 |
|
PR1001 | Payment of annual fee |
Payment date: 20240710 Start annual number: 12 End annual number: 12 |