v4orb2.wiki

описание пикапов и диссектора ВЭПП3-4
git clone http://www.inp.nsk.su/~bekhte/v4orb2.wiki.git
Log | Files | Refs

commit 1d315b986a9542377bfbd406b923d068c57a28ad
parent d87e52ee9e8fa6320c72bb6b83b3a97a57893fe1
Author: E.A.Bekhtenev <E.A.Bekhtenev@inp.nsk.su>
Date:   Wed Oct  5 21:32:16 +0700

upd kserv

Diffstat:
kserv.md | 78+++++++++++++++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 45 insertions(+), 33 deletions(-)
diff --git a/kserv.md b/kserv.md @@ -5,7 +5,7 @@ Title: Краткое описание модификации многокана Краткое описание модификации многоканальной программы-сервера Системы измерения положения пучка ВЭПП-3 импорта данных из EPICS. -# Методика измерений. +# Методика измерений Принцип работы новой системы измерения положения пучка ВЭПП-3 основан на одновременном измерении сигналов с 4-х @@ -32,15 +32,14 @@ Nturns = 1-2 миллиона оборотов). Таким образом, во программно. Нужно только следить, чтобы общая длительность полного цикла измерения Nturns была больше 1024×Nav. -# Краткое описание сервера. +# Краткое описание сервера -Сервер для работы с восемью пикап-станциями обеспечивает +Сервер для работы с двадцатью пикап-станциями обеспечивает прокси доступ к системе управления на базе EPICS, и производит все действия по работе с железом пикап станций. Сервер управляется через шелл скрипт v3bpmd. Шелл скрипт - доступен из командной строки pult6, располагается в директории - /opt/ppc860/v3bpm_build_cache, репозиторий проекта + доступен из командной строки pult6, располагается в директории пути поиска пользователя vepp4 (физически расположен /opt/ppc860/v3bpm_build_cache), репозиторий проекта «http://www.inp.nsk.su/~bekhte/v3orb2.git». Запускается сервер на PULT6 вместе с остальными программами работы с пикап станциями. @@ -53,7 +52,7 @@ Nturns = 1-2 миллиона оборотов). Таким образом, во Затем клиент посылает код команды в сервер из 1-го байта. В связи с последними нововведениями полностью безопасными являются команды получения данных [2](#2), [3](#3), [4](#4), [5](#5), [69](#69), [8](#8), [9](#9). Сервер пикап станции самостоятельно следит за правильным коэффициентом усиления, и вроде нет необходимости вмешиваться в его работу. Поэтому пользоваться командами [64](#64), [65](#65), [96](#96), [67](#67) для установки коэффициента усиления постоянной необходимости нет. Основные EPICS сервера постоянно производят медленные измерения производят подстройку усиления, и всегда имеют актуальные данные по медленным измерениям. -## Коды команд, используемые в системе +## Коды команд[code] ### 64 @@ -65,46 +64,46 @@ Nturns = 1-2 миллиона оборотов). Таким образом, во ### 96 -Код = 96 – тоже что 65 +Код = 96 – тоже что [65](#96) ### 67 -Код = 67 – посылка параметров в сервер (в формате кода 64), и получение медленных данных для всех 8-и пикап-станций, независимо включена та или иная станция или нет. Формат медленных данных описан 1.1.3 ниже. +Код = 67 – посылка параметров в сервер (в формате кода [64](#64)), и получение медленных данных для всех 20-и пикап-станций, независимо включена та или иная станция или нет. Формат медленных данных [описан ниже](#param). ### 6 -Код = 6 – запуск быстрых измерений по маске, формат маски тот же что и в параметрах 1.1.2. +Код = 6 – запуск быстрых измерений по маске, формат маски тот же что и в [параметрах](#param). ### 7 -Код = 7 – запуск пооборотных измерений по маске, формат маски тот же что и в параметрах 1.1.2. +Код = 7 – запуск пооборотных измерений по маске, формат маски тот же что и в [параметрах](#param). ### 2 -Код = 2 – чтение медленных данных для всех 8-и пикап-станций, если есть пикапстанции работающие в режиме 3 Гц то происходит ожидание свежих данных от них, для остальных пикап станций отдаются последние актуальные данные. Если нет пикапстанций в режиме 3 Гц, ответ отдается мгновенно. Формат ответа тотже что код 67; +Код = 2 – чтение медленных данных для всех 20-и пикап-станций, если есть пикапстанции работающие в режиме 3 Гц то происходит ожидание свежих данных от них, для остальных пикап станций отдаются последние актуальные данные. Если нет пикапстанций в режиме 3 Гц, ответ отдается мгновенно. Формат ответа тотже что код [67](#67); ### 3 -Код = 3 – тоже что 2. +Код = 3 – тоже что [2](#2). ### 4 -Код = 4 – ожидание окончания измерения (код 6) и чтение 2-х массивов быстрых данных (координат X, Z) по 1024 вещественных чисел каждый. После посылки кода команды в сервер посылается еще один байт – номер пикап-станции (0-7), для которой надо прочитать результат измерений. Команда ожидает окончание измерения конкретной пикапстанцией, только после этого из сервера приходят массивы данных. Данные будут достоверны только, если соответствующая пикап-станция включена и с ней есть связь по Ethernet. +Код = 4 – ожидание окончания измерения (код [6](#6)) и чтение 2-х массивов быстрых данных (координат X, Z) по 1024 вещественных чисел каждый. После посылки кода команды в сервер посылается еще один байт – номер пикап-станции (0-19), для которой надо прочитать результат измерений. Команда ожидает окончание измерения конкретной пикапстанцией, только после этого из сервера приходят массивы данных. Данные будут достоверны только, если соответствующая пикап-станция включена и с ней есть связь по Ethernet. ### 69 -Код = 69 – ожидание окончания измерения(код 7) и чтение 2-х массивов данных пооборотных измерений (координат X, Z) по Nt вещественных чисел каждый. Размер читаемых массивов пооборотных данных Nt может устанавливаться программно (см. ниже): 2048, 4096, 8192 или 16384 чисел. После посылки кода команды в сервер посылается еще один байт – номер пикап-станции (0-7), откуда нужно прочитать данные. Только после этого из сервера приходят массивы данных. +Код = 69 – ожидание окончания измерения(код [7](#7)) и чтение 2-х массивов данных пооборотных измерений (координат X, Z) по Nt вещественных чисел каждый. Размер читаемых массивов пооборотных данных Nt может устанавливаться программно (см. [ниже](#TODO)): 2048, 4096, 8192, 16384, 32768, 65536 или 131072 чисел. После посылки кода команды в сервер посылается еще один байт – номер пикап-станции (0-19), откуда нужно прочитать данные. Только после этого из сервера приходят массивы данных. ### 5 -Код = 5 – тоже что 69. +Код = 5 – тоже что [69](#69). ### 8 -Код = 8 – чтение маски реально работающих пикап-станций – 1 байт. Каждый бит этого байта (0-7) соответствует определенной пикап-станции. Реально работающая пикап-станция должна быть включена не только программно, но и электрически, то есть с ней должна быть связь по Ethernet. +Код = 8 – чтение маски реально работающих пикап-станций – 4 байт. Каждый бит этого байта (0-31) соответствует определенной пикап-станции. Реально работающая пикап-станция должна быть включена не только программно, но и электрически, то есть с ней должна быть связь по Ethernet. ### 9 -Код = 9 – чтение буфера последних медленных измерений для выбранного пикапа. После кода команды сервер ожидает один байт с номером пикап-станции (0-7), и один байт с длинной массива n-1 (0-255 соответствует длине массива 1-256). В ответ отвечает: +Код = 9 – чтение буфера последних медленных измерений для выбранного пикапа. После кода команды сервер ожидает один байт с номером пикап-станции (0-19), и один байт с длинной массива n-1 (0-255 соответствует длине массива 1-256). В ответ отвечает: * магическое число 2 байта (0x55aa) * координата X, n точек в формате float @@ -133,40 +132,53 @@ Nturns = 1-2 миллиона оборотов). Таким образом, во запрос: нет ответ - uint8_t – маска пикапов у которых сработал режим timeback, при чтении флаг сбрасывается автоматически + uint32_t – маска пикапов у которых сработал режим timeback, при чтении флаг сбрасывается автоматически ### 22 Код = 22 – чтение пооборотных данных timeback, запрос: - uitn8_t – номер пикапа (0-7) + uitn8_t – номер пикапа (0-19) ответ: массивы X, Y, I, размер массивов определяется параметром t_bufer, тоже что и для пооборотных данных. Максимальные коды АЦП не должны выходить за границы ±8191, иначе измерения будут неправильными. Код усиления (0-28) выставляется такой, чтобы максимальные значения АЦП были на уровне 5-7 тысяч. Но еще лучше не управлять самому кодом усиления, а поручить это дело автогэйну ЭПИКСА. ## Загружаемые параметры по порядку следования[param] -1. nturn – задает общую длительность полного цикла измерения в оборотах (Nturns); +### nturn -2. nav – задает длительность элементарного цикла измерения в оборотах (Nav) для быстрых данных, величина nav лежит в диапазоне 0-16000, при этом общая длительность полного цикла измерения Nturns должна быть больше 1024× nav; +nturn – задает общую длительность полного цикла измерения в оборотах (Nturns); -3. gain[8] – 8 значений усиления в децибелах (0-28) для пикап-станций 0-7, для большого тока пучка (~150 мА в двух сгустках) усиление должно быть около 17, при меньших токах оно желательно устанавливается больше (чтобы максимальные значения АЦП были на уровне 5-7 тысяч); +### nav -4. t_bufer – задает размер читаемых массивов пооборотных данных: -<ul> - <li> t_bufer = 0 – размер массива Nt = 2048 </li> - <li> t_bufer = 1 – размер массива Nt = 4096 </li> - <li> t_bufer = 2 – размер массива Nt = 8192 </li> - <li> t_bufer = 3 – размер массива Nt = 16384 </li> -</ul> +nav – задает длительность элементарного цикла измерения в оборотах (Nav) для быстрых данных, величина nav лежит в диапазоне 0-16000, при этом общая длительность полного цикла измерения Nturns должна быть больше 1024× nav; -5. ext_start – выбор источника запуска. Запускать цикл измерения от внутреннего запуска (0x00), от внешнего запуска (0x01), от 3Гц 0x02. Внешний запуск осуществляется импульсом “Впуск”, поступающим на соответствующий вход блока электроники. Значение 1-го бита: Запуск от импульса 3Гц осуществляется импульсом 3Гц, поступающим на вход 3Гц; +### gain -6. mask_bl – маска работающих блоков электроники (или пикап-станций) – один байт. Каждый бит этого байта (0-7) соответствует определенной пикап-станции, бит 0 соответствует пикап-станции №0, бит 1 соответствует пикап-станции №1 и т.д. Если бит, например, №2 равен 1, значит пикап-станция №2 включена, если бит №2 равен 0, значит пикап-станция №2 выключена. +gain[8] – 8 значений усиления в децибелах (0-28) для пикап-станций 0-7, для большого тока пучка (~150 мА в двух сгустках) усиление должно быть около 17, при меньших токах оно желательно устанавливается больше (чтобы максимальные значения АЦП были на уровне 5-7 тысяч); + +### t_bufer + +t_bufer – задает размер читаемых массивов пооборотных данных: +* t_bufer = 0 – размер массива Nt = 2048 +* t_bufer = 1 – размер массива Nt = 4096 +* t_bufer = 2 – размер массива Nt = 8192 +* t_bufer = 3 – размер массива Nt = 16384 +* t_bufer = 4 – размер массива Nt = 32768 +* t_bufer = 5 – размер массива Nt = 65536 +* t_bufer = 6 – размер массива Nt = 131072 + +### ext_start + +ext_start – выбор источника запуска. Запускать цикл измерения от внутреннего запуска (0x00), от внешнего запуска (0x01), от 3Гц 0x02. Внешний запуск осуществляется импульсом “Впуск”, поступающим на соответствующий вход блока электроники. Значение 1-го бита: Запуск от импульса 3Гц осуществляется импульсом 3Гц, поступающим на вход 3Гц; + +### mask_bl + +mask_bl – маска работающих блоков электроники (или пикап-станций) – 4 байта. Каждый бит этого байта (0-19) соответствует определенной пикап-станции, бит 0 соответствует пикап-станции №0, бит 1 соответствует пикап-станции №1 и т.д. Если бит, например, №2 равен 1, значит пикап-станция №2 включена, если бит №2 равен 0, значит пикап-станция №2 выключена. Соответствие битов маски и пикпапов: -| id | маска | пикап | -|----|--------------|-------| +| id | маска | пикап | +|----|--------------|-----------| | 0 | 0x0000 0001 | VEPP3:1P1 | | 1 | 0x0000 0002 | VEPP3:1P7 | | 2 | 0x0000 0004 | VEPP3:2P3 |