포항가속기연구소 - LabVIEW를 이용한 EPICS 전송속도 테스트 프로그램 구현
Author(s):
최효진 연구원 - 포항가속기연구소
Industry:
Telecommunications
Products:
LabVIEW
The Challenge:
가속기연구소 가속기부에서 Storage Ring과 Linac을 제어하기 위해 EPICS를 도입한 이유는 Data 전송속도 향상과 Channel Name(PV)을 이용한 편리함을 도모하기 위함이다.
The Solution:
Data 전송 Speed를 정량적으로 Test하기 위해 Server Program (IOC) 으로 EPICS Net Test_01.vi 을 프로그램하였다.
"LabVIEW에서 기본적으로 제공하고 있는 Network Library를 이용한 간단한 Network 통신 프로그램 예제를 통해 Network 통신 프로그램 작성방법과 동작원리를 살펴보고, 이것을 이용하여 전송속도도 함께 측정하여 보았다. "
가속기연구소 가속기부에서 Storage Ring과 Linac을 제어하기 위해 EPICS를 도입한 이유는 Data 전송속도 향상과 Channel Name(PV)을 이용한 편리함을 도모하기 위함이다. 기존 제어시스템은 Workstation - SCC - VME 로 이어지는 3단 구조에서는 Monitoring(설정하기 나름이었으나 빠른 경우 평균50ms)과 Control (평균100ms)으로, 빠른 Feedback Control이 불가능하여, Storage Ring을 돌고 있는 Electronics Beam Bunch 제어에 필요한 Feedback Control은 원천적으로 불가능하고, 일반적인 운전만 가능하였다. 이와 같은 Network Speed를 향상시키기 위해 EPICS를 도입하였다.
외국에서 작성한 EPICS의 통신속도를 일방적으로 제시하기보다, EPICS 프로그램을 제대로 응용하여 포항가속기연구소의 Network에서 EPICS가 얼마나 빠른 Data 전송속도를 나타내고 있는지 정량적으로 측정하고 제시할 필요가 있다. 특히, Feedback Control에서는 측정과 제어에 경과되는 시간을 정확히 알아야만 정상적으로 작동하는 Feedback Control Speed (Hz)를 결정할 수 있다. 즉, Feedback Control에는 동특성(Dynamic Characteristic)에 따른 응답(Response)의 시간특성을 알아야 제어계의 안정성을 확보할 수 있다. 또한, 외부외란의 영향을 적절히 배제시킬 적합한 제어이론(Control Theory)을 적용치 못한다면, Feedback Control이 오히려 역효과를 나타낼 수도 있다. 따라서 본 연구는 EPICS의 전송속도를 정량화하여 정상적인 작동을 테스트하는 프로그램을 작성하였다.
Data 전송 Speed Test Program
* PC Server (IOC) Program
Data 전송 Speed를 정량적으로 Test하기 위해 Server Program (IOC) 으로 EPICS Net Test_01.vi 을 프로그램하였다. 이것은 milli-second 단위의 시간변화를 Data로 전송하도록 하였다.

Millisecond의 시간변화를 알기위해 LabVIEW에 제공하는 Tick-Count 기능을 이용하였다. 즉, EPICS Server는 평균 4ms마다 16EA의 PV값을 지속적으로 Reflash 하며 시간변화를 알려 준다.

* PC Client Program
PC Client Program은 LabVIEW EPICS의 Get 명령을 이용하여 PV값을 가져온다. 16개의 PV값을 가져오는 EPICS Get 16ch Client.vi 와 1개의 PV값만 가져오는 EPICS Get 1ch Client.vi 프로그램을 작성하여 Data 전송속도를 측정비교 하였다.
|
16개 모두 가져오기
|
1 개만 가져오기
|
|
|
Data 전송속도
|
평균 5ms
|
3~4ms
|

LabVIEW EPICS에서 Valid는 Data의 Reflash 여부를 알려주는 것이다. Reflash 된 Data를 가져오는 경우는 녹색등(True)이 켜지며 Data 값을 표시해 준다. Server의 Data 가 Reflash 되지 않은 상태에서 사용자가 임의로 설정한 PV Client의 Timeout에 의해 Client의 요청이 끊기는 경우, Valid는 검은색(False)을 보이며 Data 값은 0으로 표시된다. Valid를 통해 Server (IOC)의 Data Reflash 여부를 확인할 수 있다.
Network 통신의 Basic은 TCP/IP 이다. TCP/IP 통신은 Client가 Server의 IP Address와 Port Number를 알아야 Network 연결이 가능하다. 또한 한 Server에 여러 개의 Client가 Network 연결하여 Data를 전송 받을 수 있다. 이용자가 보다 쉽고 편리하게 Network 기능을 응용하여 사용할 수 있도록 NI사에서는 DataSocket Library를 제공하고 있다. 이것은 EPICS 처럼 Channel Name과 IP Address를 통해 Server 연결이 가능하다. DataSocket의 가장 큰 장점은 여러 Type의 Data를 한 Block 형태로 전송함으로서 이용자는 Data 형태에 구애 없이 이용할 수 있다는 것이다.
LabVIEW에서 기본적으로 제공하고 있는 Network Library를 이용한 간단한 Network 통신 프로그램 예제를 통해 Network 통신 프로그램 작성방법과 동작원리를 살펴보고, 이것을 이용하여 전송속도도 함께 측정하여 보았다.
결론
EPICS 전송 속도 테스트 결과
| PC LabVIEW EPICS | 16개 가져오기 = 평균 5ms 1개만 가져오기 = 3~4ms |
| Workstation EPICS ca | 16개 가져오기 = 평균 60ms 1개만 가져오기 = 평균 55ms |
| Workstation EPICS Ezca | 16개 가져오기 = 평균 65ms 1개만 가져오기 = 평균 60ms |
| Workstation Event Get | 16개 가져오기 = 3~4ms |
Related Case Studies
포항가속기연구소 - LabVIEW를 이용한 EPU 제어 프로그램 구현포항방사광가속기연구소 - Storage-Ring Beam Size Monitor
한국표준과학연구원 - FPGA 모듈을 이용한 Long Range AFM용 다축 제어 프로그램 개발
파크전자㈜ - VibMasterTM Servo Hydraulic Vibration System
한국표준과학연구원 - NI PXI-5412 AWG를 이용한 조셉슨 표준교류전압 발생기 개발
|
|
