Пакет CRW-DAQ.BMP CRW-DAQ

Программный пакет CRW-DAQ зарегистрирован
в государственном Реестре программ для ЭВМ как
«Программа для автоматизации физических измерений
и экспериментальных установок (CRW-DAQ)»

Это название хорошо описывает его предназначение.

CRW-DAQ - Web sites 1 2.
 

Содержание   Top-List:  
Info  Readme  Doc  News 
DAQ [..] DaqPascal Style {$I ..} StdLibrary Template.pas PhysLibrary unix RegExp cmd bat ./
DIM SMI &DimSrv &SmiSrv &WebSrv &CronSrv &SpeakSrv &FdbSrv &DatSrv &ModbusSrv &ModbusProxy &PlotSrv &VkbdSrv &EmlSrv
Painter(v) DaqConstructor Colors Markdown ADO SQL UniHeat cmdtoolkit Metrology Calibration Lua svg-edit
Другие полезные проекты:

DIM    SMI    ROOT 1    GNUPLOT 1,2,3,4    Markdown    Cygwin Guide    unix man www   
Lua www    svg-edit www 1 2    UnitConverter CRC Calculator


CRW-DAQ.BMP Каталоги:

Оглавление


CRW-DAQ.BMP Файлы:

Примечание:
Файловые индексаторы доступны только после выполнения индексации,
которая выполняется либо при инсталляции, либо позже командами
Инструменты\Консольные утилиты\Make Crw32 HTML indexes,
Инструменты\Консольные утилиты\Make Daq32 HTML indexes.

Оглавление


CRW-DAQ.BMP Crw32 file index:

Примечание:
Файловый индексатор Crw32 доступен только после выполнения индексации,
которая выполняется либо при инсталляции, либо позже командой
Инструменты\Консольные утилиты\Make Crw32 HTML indexes.

Оглавление


CRW-DAQ.BMP Daq32 file index:

Примечание:
Файловый индексатор Daq32 доступен только после выполнения индексации,
которая выполняется либо при инсталляции, либо позже командой
Инструменты\Консольные утилиты\Make Daq32 HTML indexes.

Оглавление


CRW-DAQ.BMP Введение в CRW-DAQ

Общие сведения

Конфигурирование DAQ систем

Стандартные секции

Языки программирования

Оглавление


CRW-DAQ.BMP CRW-DAQ software suite

Программный пакет CRW-DAQ создавался для решения двух основных задач:
  1. Создания автоматизированных контрольно-измерительных систем реального времени и автоматизированных физических установок
  2. Обработки и анализа экспериментальных данных
Обе эти задачи взаимосвязаны, поэтому удобно, когда программа совмещает в себе средства измерений и анализа измеренных данных. Подсистема, при помощи которой решаются задачи измерений и автоматизации, получила название CRW-DAQ. Эта система содержит компилятор языка DAQ-PASCAL, интерпретатор языка DAQ-SCRIPT, а также драйверы для работы с рядом измерительных устройств, подключаемых через последовательный порт RS-232 или RS-485, ISA или PCI шину. Кроме того, в пакет интегрирован компилятор Delphi 5 (облегченная версия), что позволяет создавать, редактировать, компилировать и тут же исполнять DLL-программы и драйверы CRW-DAQ.

Оглавление


CRW-DAQ - официально зарегистрированнная программа, предназначенная для разработки систем сбора данных и автоматизации исследовательских физических установок, а также первичного анализа измеряемых экспериментальных данных. Программа доступна на сайте www.crw-daq.su. Автор и разработчик программы CRW-DAQ - Курякин Алексей Валерьевич, который написал всю системную часть пакета и немалую часть прикладных программ. Соавтор - Виноградов Юрий Иванович, который оказывал помощь в идейных и методических вопросах, а также создал много прикладных программ. Значительную помощь в создании пакета оказали также перечисленные ниже сотрудники, написавшие значительную часть прикладных программ. Программа разработана в славном городе Сарове, Россия.
Примечание: Разработка шла на Delphi 5.0 в период 2001..2008 г. При создании программы использован опыт программы CRW16 для DPMI.

Пакет CRW-DAQ

Свидетельство о регистрации программы CRW-DAQ

Зарегистрирован

в Гос.
Реестре
России

Автор

Алексей Курякин

Алексей Курякин

в.н.с.,к.ф.м.н.
разработчик
системное ПО
прикладное ПО

Соавтор

Юрий Виноградов

Юрий Виноградов

дфмн,быв.нач.лаб.
физ.методики
прикладное ПО
Светлая память...

Благодарности:

Сергей Фильчагин

Сергей Фильчагин

нач.лаб.
электроника
прикладное ПО

Олег Вихлянцев

Олег Вихлянцев

н.с.
электроника
прикладное ПО

Николай Гурин

Николай Гурин

инженер
программист
прикладное ПО

Александр Тумкин

Александр Тумкин

н.с.
электроника
прикладное ПО

Дарья Дроздова

Дарья Дроздова

инженер
документация
прикладное ПО

Николай Катаев

Николай Катаев

инженер
документация
электроника

Оглавление


Герб Сарова Саров

Это наш Саров - город в Нижегородской области
Колокольня Саровского монастыря
Герб Сарова

Славный
Город

Икона Серафима Саровского

Серафима
Саровского

Эмблема Российского Федерального Ядерного Центра (РФЯЦ ВНИИЭФ)

и Ядерного
Центра

Флаг России

Россия

Оглавление


CRW-DAQ.BMP Реальное время?

Пакет CRW-DAQ создавался, в частности, для решения задач реального времени, RealTime. Поэтому временные характеристики системы являются наиболее важными для понимания и оценки ее работы.

Аксиома №1

Аксиома №2 Аксиома №3 Следствие №1

Аксиома №1 написана крупными буквами во всех серьезных документах, описывающих Windows, Linux, Unix. Есть модификации каждой из упомянутых операционных систем, утверждающие, что они реализованы как RealTime системы. Не собираюсь ни с кем спорить. Если ты богат, как ГазПром, имеешь большую и хорошо оплачиваемую задачу, можно позволить себе вести разработку приложений на специализированной системе типа QNX, Real Time Linux и т.д. В реальности приходится работать на том, что есть, то есть на одном из упомянутых трех китов современной компьютерной индустрии. Если же учесть, какой "хвост" из готовых наработок, обязательств и пожеланий тяготеет над теми, кто давно уже работает в конкретной системе, например, Windows, получается, что выбора зачастую и нет. Поэтому могу согласиться со всеми, кто скажет "Надо писать под QNX или …(любимая система советчика)". Надо. И еще раз надо. Но против паровоза не попрешь. Смена платформы - дорогая вещь, минимум год работы, а платить за это никто не станет.

Давайте поэтому не вдаваться в бесполезные споры. Лучше поговорим, что же такое RealTime и что может предложить в этом смысле Windows/Linux/Unix. Мой опыт говорит, что их возможности примерно одинаковы. Разумеется, под Windows понимается Windows NT/2000/XP.

О значении термина RealTime можно долго спорить. В недостижимом идеале RealTime система - такая система, которая мгновенно реагирует на изменение параметров измеряемого объекта и мгновенно же вырабатывает реакцию на нее. На практике же возникает вопрос "а насколько мгновенно". А также резонный вопрос "а сколько надо-то?". Я считаю, что эти вопросы должны быть увязаны друг с другом, иначе разговор теряет смысл. Например, можно сказать, что QNX является RealTime системой, потому что вход в прерывание у нее составляет, к примеру, 3 микросекунды. Но позвольте, скажет метеоролог, следящий за температурой воздуха, зачем мне это надо, если моя задача требует выполнения измерений раз в 10 минут? А физик скажет: для регистрации элементарных частиц мне нужна реакция 10 наносекунд. А 3 микросекунды - какой же это RealTime? И оба будут правы. Для одного RealTime - наносекунды, для другого - сутки. В зависимости от задачи. И не надо говорить, что опрос раз в сутки - не RealTime. Если нарушение срока очередного опроса повлечет за собой нежелательные последствия, это RealTime система, независимо от того, равен этот период наносекунде или минуте. Упор тут надо делать на гарантии опроса в заданное время, а не на конкретной цифре периода времени опроса. Другой аспект связан с понятием жесткого и мягкого реального времени. Мне кажется, тут важнее всего - кто инициирует опрос. Если опрос инициирует объект измерения (аппаратное прерывание), а система гарантирует реакцию в течение заданного срока - реальное время жесткое. Если опрос инициирует субъект - наблюдатель, то есть программа, в том числе по прерываниям таймера компьютера, реальное время мягкое. Жесткое реальное время возникает в случае, когда информационная загрузка очень неравномерна. В этом случае опрос может идти редко, но, если уж в нем есть необходимость, должен быть выполнен быстро. Я бы еще ввел понятие "статистическое реальное время". Это когда скажем, опрос делается в среднем через 100 миллисекунд, но может колебаться от 50 до 200. Для некоторых систем это вполне приемлемо.

Можно ввести такие определения. Задача t реального времени - задача, в которой задержка времени опроса/реакции на срок более чем t, приводит к потере информации или другому нарушению нормального функционирования программы/алгоритма или измеряемого/контролируемого объекта. Система t реального времени - контрольно-измерительная система, которая гарантирует, что задержка времени опроса/реакции составляет не более чем t. Естественно, что задача t реального времени требует для решения не менее чем системы t реального времени. Однако гнаться за бесконечно малым временем реакции t не стоит, это не улучшит характеристики системы, а может и навредить, если ведет к перегрузке процессора, снижению устойчивости или стабильности работы.

Перейдем теперь к тому, что может дать CRW-DAQ под Windows. Ядро Windows-NT/2000/XP имеет, по крайней мере для процессов RealTime и потоков с приоритетом tpTimeCritical, довольно стабильное время переключения контекста 10 миллисекунд. Специальными вызовами (см. SetClockRes) можно установить квант времени операционной стстемы в 1 ms. Более высокой скорости обычными средствами не добиться. Все программы и сервисы Windows, включая Explorer, имеют приоритет не выше tpHighest, поэтому слабо влияют на частоту опроса потоков tpTimeCritical. Если подключить к машине измерительную карту, программно генерирующую под CRW-DAQ меандр с частотой 100 Гц в потоке tpTimeCritical, на осциллографе можно увидеть, что запуск любого обычного приложения слабо сказывается на форме и частоте меандра. Даже запуск нескольких экземпляров архиватора для создания 600-мегабайтного zip-архива не дает заметного замедления реакции. При этом надо заметить, что RealTime задача должна быть "интеллигентной", она должна быстро делать свое дело и тут же освобождать процессор, переводя поток в спящий режим. Это связано с тем, что Windows "штрафует" потоки, которые не освобождают процессор и дают большую загрузку. Штраф заключается в том, что таким потокам реже выделяется квант времени. См. также о планировании (scheduling) потоков.

Лемма №1.
При правильной настройке программы и конкретной инсталляции Windows система CRW-DAQ является 10 миллисекундной системой мягкого реального времени. Она может применяться для решения задач 10 миллисекундного реального времени с равномерной информационной загрузкой. При специальных усилиях реакция системы может быть улучшена до 1 миллисукунды.

Лемма №2.
При правильной настройке программы и конкретной инсталляции Windows и при наличии фирменных драйверов устройств система CRW-DAQ может служить системой жесткого реального времени, время реакции определяется драйверами и самими устройствами.

Что понимается здесь под настройкой Windows? Это в первую очередь:

Что понимается под настройкой программы? Это правильная организация потоков CRW-DAQ. Каждое устройство CRW-DAQ имеет свой программный поток и такие временные характеристики как:

  InquiryPeriod = aPeriod
  DevicePolling = aDelay, aPriority
  
Параметры aPeriod, aDelay, aPriority задают временные характеристики опроса устройства. При выборе времен надо учесть, что квант времени Windows может составлять от 1 до 10 миллисекунд. Приоритет потока влияет на гарантию его своевременной активизации: чем выше приоритет, тем стабильнее частота опроса. Не следует делать высокоприоритетными все потоки устройств CRW-DAQ. Отнюдь не все устройства требуют жесткого времени опроса. Лучше дать им низкий приоритет, чтобы облегчить работу тех устройств, где режим времени действительно жесткий. См. подробнее описание [DeviceList].

Надо отметить, что система CRW-DAQ имеет консоль монитора ресурсов, через которую можно наблюдать за частотой работы всех потоков программы, а также сторожевой таймер для отслеживания зависших потоков.

Оглавление