Чтение онлайн

на главную

Жанры

Интернет-журнал "Домашняя лаборатория", 2007 №5
Шрифт:

151. Регенеративный режекторный фильтр.

152. Стабилизатор повышенной стабильности.

153. Замена высокоомного сопротивления обратной связи на более низкоомные.

154. Стабилизатор напряжения с удвоением пульсаций.

155. Генератор тока.

156.

Схема с отрицательным коэффициентом стабилизации.

157. Преобразователь пилообразного напряжения в синусоидальное.

158. Преобразователь напряжение-ток.

159. Амплитудно-стабилизированный гетеродин.

АВТОМАТИЗАЦИЯ ЭКСПЕРИМЕНТА

Учимся использовать QSL (начальный курс автоматизации)

QSL (Quick Script Language) это просто небольшой диалект языка PERL, немного более близкий к языку «С», чем сам PERL. Интерпретатор QSL был сделан из интерпретатора PERL, для использования в составе программного пакета SOROS. Последний предназначен для построения и отладки систем автоматизации эксперимента на основе персонального компьютера. Взять пакет SOROS, включающий QSL, можно по этой ссылке:QSL оптимизирован для манипулирования данными в среде операционной системы Microsoft Windows. QSL, также как и PERL, является легким, не жестким языком программирования. Строгих правил и деклараций переменных нет. Писать программы (скрипты) на нем можно так, как вам больше нравится, корректируя их по результатам их работы или по выдаваемым сообщениям об ошибках. Приводимые в данной статье небольшие примеры, являются только возможными вариантами использования конструкций языка. Полное описание языка QSL вы можете найти в файле qsl.hlp. Интерпретатор QSL независим от периферийных устройств компьютера, команды языка используют доступ к устройствам и файлам, предоставляемый операционной системой. Такими устройствами могут являться, например, параллельный порт, последовательный порт и т. п. QSL поддерживает только текстовую консоль, драйверы устройств должны быть внешними.

Создавать скрипты для QSL можно с помощью любого текстового редактора. Договоримся использовать для файлов с QSL скриптами расширение «.qsl». Для того чтобы было удобно вызывать скрипт на выполнение можно поместить qsl.exe в какую-нибудь директорию, например, Program Files. Кликнув первый раз по файлу с расширением «.qsl», можно задать вызов qsl.exe для всех файлов с расширением «.qsl» (с помощью кнопки «Other…» в возникшем диалоге «Open With»).

Урок 1. Вывод на консоль

Сразу возникает вопрос — для чего это нужно? Прежде всего, консоль используется для отлаживания скриптов, для вывода промежуточных результатов. Консоль может использоваться также для демонстрации результатов измерений и информирования о ходе экспериментальных процессов. Хотя консоль текстовая, не графическая, но может быть использована для вывода простейших графиков и диаграмм. Кроме того, не следует забывать, что язык QSL может быть использован для проведения вычислений «на ходу, на скорую руку». Результаты таких вычислений тоже могут быть выведены на консоль, как, например, в скрипте Lesson 1.

# Lesson 1

$> = 0x10 | 0х0е;

print "\t\t", "Number", "\t\t", "Square root of number\n";

for ($i =1; $i < 10; $i++) {

sleep 500;

$> = 7; print "\n\n\t\t";

$> = 10; print $i;

$> = 7; print "\t\t";

$> = 12; print sqrt($i);

}

warn " ";

Рассмотрим

использованные в примере элементы языка QSL (также учтите сноску внизу статьи).

Комментарии, то есть то, что не подлежит выполнению, показываются символом #. Действие этого символа простирается до конца строки. Символ; разделяет команды скрипта. Пробелы в командах и операторах игнорируются. Все команды и операторы должны быть в нижнем регистре (маленькие, прописные буквы).

QSL интерпретатор не держит консоль открытой, консоль вызывается только при необходимости, при завершении скрипта закроется и консоль. Для того чтобы задержать консоль на экране в данном примере используется команда warn. Эта команда выводит указанное сообщение (то, что в парных кавычках, в нашем примере пустое место — пробел) или сообщения в диалоге и задает вопрос «да/нет». Если мы ответим «нет», то скрипт завершается (в нашем примере он в любом случае завершается, поскольку это последняя команда) с кодом «0» (нормальный выход с кодом «1»). Это может быть использовано при вызове QSL из других программ и скриптов (например, из *.bat файлов), но для нашего примера это сейчас неважно.

Команда sleep приостанавливает выполнение скрипта на указанное число миллисекунд. Ее применение в данном примере не особо важно, просто замедляется вывод. В основном она используется для временного согласования вывода и вычислений. Интерпретатор производит вычисления достаточно быстро, тогда как вывод данных наружу зачастую должен осуществляться с определенным интервалом.

Всю работу по выводу делает команда print. Она вызывает консоль и выводит указанный список данных. Элементы списка разделяются запятой. В частном случае может быть просто один элемент. То, что в двойных кавычках выводится как текст (символьная строка) и всегда преобразуется к этому виду. Обратите внимание, что этом примере выводимое первой командой print, можно записать как один элемент, а не список. Символьная строка может включать специальные (управляющие) символы. То, что это управляющий символ, указывается слешем \.

В примере для вывода использовался символ табуляции \t и символ перевода строки \n.

Другим выводимым элементом является содержимое переменной с именем «i». Все переменные имеют предшествующий символ $. Переменные могут иметь любые имена, состоящие из букв, цифр и символа подчеркивания, но первый символ в имени переменной должен быть буквой. Имена переменных зависят от регистра, то есть переменные $Data и $data являются разными. Имена в разных видах хранения независимы, интерпретатор не спутает переменную $days с массивом переменных @days. Переменные в памяти компьютера создаются интерпретатором при первом их упоминании, так что мы не заботимся об их создании. Одни и те же переменные могут содержать числа и/или текст. Представление содержания переменных в нужном формате, при выводе, берет на себя интерпретатор. Если нам что-то не нравится в выводе, то нужно использовать команду форматированного вывода printf, хорошо знакомую программирующим на языке «С».

Особой группой переменных являются системные переменные, они уже существуют до выполнения первой команды, содержат данные (которые по умолчанию) и их имена зарезервированы. В данном примере была использована системная переменная, хранящая цвет и фон выводимых символов $>.

Запись в переменные осуществляется с помощью операции =. Обратите внимание, что в первой записи в переменную $>, участвовали два числа, в шестнадцатеричном представлении, объединенные в одно с помощью битовой операции «или»: |. А в дальнейшем записывалось десятичное представление кодов цвета — это кому, что нравится.

Поделиться:
Популярные книги

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров

Маленькая хозяйка большого герцогства

Вера Виктория
2. Герцогиня
Любовные романы:
любовно-фантастические романы
7.80
рейтинг книги
Маленькая хозяйка большого герцогства

Рядовой. Назад в СССР. Книга 1

Гаусс Максим
1. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Рядовой. Назад в СССР. Книга 1

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Новый Рал 3

Северный Лис
3. Рал!
Фантастика:
попаданцы
5.88
рейтинг книги
Новый Рал 3

Последний попаданец 9

Зубов Константин
9. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 9

Тот самый сантехник. Трилогия

Мазур Степан Александрович
Тот самый сантехник
Приключения:
прочие приключения
5.00
рейтинг книги
Тот самый сантехник. Трилогия

Первый среди равных

Бор Жорж
1. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных

Под маской моего мужа

Рам Янка
Любовные романы:
современные любовные романы
5.67
рейтинг книги
Под маской моего мужа

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Теневой Перевал

Осадчук Алексей Витальевич
8. Последняя жизнь
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Теневой Перевал

Огненный князь 6

Машуков Тимур
6. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 6

Хозяйка большого дома

Демина Карина
4. Мир Камня и Железа
Фантастика:
фэнтези
9.37
рейтинг книги
Хозяйка большого дома

Санек

Седой Василий
1. Санек
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Санек