Uploaded by Владимир Романов

Романов В.В. УСиП 20.02.13

advertisement
Министерство образования и науки Российской Федерации
Костромской государственный технологический университет
Кафедра технологии машиностроения
Учебно-методическое пособие
к выполнению лабораторных работ по курсу
Управление системами и процессами
в машиностроении
Составитель
В.В. Романов
Кострома
КГТУ
2013
Управление системами и процессами в машиностроении : учеб.- метод. пособие
к лабораторным работам / составитель В.В. Романов. – Кострома: Изд-во Костром. гос. технол. ун-та, 2013. – 90 с.
Учебно-методическое пособие знакомит с порядком выполнения лабораторных работ по курсу «Управление системами и процессами в машиностроении», содержат рекомендации по составлению структурных схем систем управления, разработке алгоритмов и программного обеспечения управляющих ЭВМ.
Предназначено для студентов очной и заочной форм обучения направления подготовки 151900 «Конструкторско-технологическое обеспечение машиностроительных производств», профиль «Технология машиностроения».
Рассмотрено и рекомендовано к изданию редакционно-издательским
КГТУ.
советом
Рецензент: к.т.н., доцент кафедры «Автоматики и микропроцессорной техники»
КГТУ В.В. Лапшин
© Костромской государственный технологический университет, 2013
2
Содержание
Лабораторные
работы № 1-2
Лабораторная
работа № 3
Лабораторная
работа № 4
Лабораторная
работа № 5
Лабораторная
работа № 6
Лабораторная
работа № 7
Лабораторная
работа № 8
Лабораторная
работа № 9
Лабораторная
работа № 10
Лабораторная
работа № 11
Лабораторная
работа № 12
Лабораторная
работа № 13
Лабораторная
работа № 14
Рекомендуемая
Приложение 1
Приложение 2
Приложение 3
Приложение 4
Приложение 5
Приложение 6
Приложение 7
Системы счисления и кодирования информации для
систем управления станков с ЧПУ
Цифровой ввод и вывод на примере Lpt-порта
Изучение модуля программируемого параллельного
интерфейса (МППИ) в режиме цифрового самотеста
платы NVL-01
Прием информации от цифрового измерительного прибора вольтметра В7-18
Прием информации от цифрового измерительного прибора датчика линейных перемещений «Микрон-02» с
использованием платы DIO-48
Изучение работы цифро-аналогового преобразователя
(ЦАП) платы NVL-01
Изучение работы аналого-цифрового преобразователя
(АЦП) в режиме аналогового самотеста платы NVL-01
Моделирование управления приводами подач и шпинделя токарного станка 16Б16 с помощью плат PCL-725
и PCL-726
Измерение частоты вращения шпинделя с использованием платы счетчиков PCL-833
Измерение минутной и оборотной подачи с использованием платы счетчиков PCL-833
Использование последовательного интерфейса в терминальной задаче ЧПУ
Особенности управления Lpt-портом в среде Delphi
Особенности управления Lpt-портом в среде MatLab
5
17
22
27
32
35
40
43
48
51
53
59
63
литература
67
Пример программы преобразования систем счисления
68
Пример программы цифрового ввода-вывода посред70
ством Lpt-порта
Пример программы цифрового самотеста платы NVL71
01
Ввод показаний цифрового вольтметра В7-18 в ЭВМ
72
Пример программы аналогового
самотеста платы
74
NVL-01
Пример программы управления частотой вращения
75
двигателя
Пример программы измерения частоты вращения 76
3
Приложение 8
Приложение 9
Приложение 10
Приложение 11
Приложение 12
шпинделя
Реализация заданной частоты вращения
Пример программы управления величиной и направлением подачи продольного суппорта токарного станка
Пример программы обмена информацией между ЭВМ
IBM PC и УЧПУ «Сфера-36» по интерфейсу RS-232C
Пример программ цифрового ввода-вывода посредством Lpt-порта в среде Delphi
Пример программ цифрового ввода-вывода посредством Lpt-порта в среде MatLab
4
78
80
81
84
90
Лабораторные работы №1/2
СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЯ ИНФОРМАЦИИ
ДЛЯ СИСТЕМ УПРАВЛЕНИЯ СТАНКОВ С ЧПУ
Цель работы
Изучить вопросы теории кодирования информации при передаче, хранении и преобразовании информации.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal.
Теоретические положения
Теория кодирования – раздел теории информаций, изучающей способы
отождествления сообщений с отображающими их сигналами. Кодирование применяют при передаче, хранении и преобразовании информации. Для кодирования сообщений используют набор символов. Множество символов называют
алфавитом кода:
а1 , а2 ,
, ат
Количество символов в алфавите обозначают буквой т и называют основанием кода. Десятичная система счисления является кодом с основанием m =
=10 (т. е. количество значащих цифр равно десяти). При этом значащие цифры
(их форма, вид) составляют алфавит: 0, 1, 2, 3, ..., 9. С помощью алфавита (значащих цифр) в системе счисления можно выразить (закодировать) любую числовую величину.
Код Морзе имеет основание m = 2; следовательно, его алфавит состоит из
двух символов – точки и тире (. —). Выражение звуков языка тоже осуществляется
определенным кодом. Так, для русского языка основание кода m = 33, а алфавит
состоит из букв а, б, в, г, ..., я.
Любую упорядоченную выборку символов из алфавита называют кодовым словом или кодовой комбинацией:
В
аi1 , аi 2 ,
, аin
.
Количество (число) символов в кодовой комбинации обозначают буквой
n и называют длиной кодовой комбинации.
Кодом называют любое упорядоченное множество кодовых комбинаций:
В1 , В2 ,
, Вn
.
Количество (число) кодовых комбинаций в коде называют мощностью
или объемом кода. Максимальная мощность кода
5
N
mn .
Элементы, положения, события и т. д., для которых характерны два
устойчивых и противоположных состояния, удобно описывать кодом с основанием m = 2. Например, контакты реле могут быть замкнуты или разомкнуты,
триод открыт или закрыт, деталь на станке установлена или снята, привод
включен или выключен, самолет обнаружен или не обнаружен и т. п. Если одному состоянию элемента (положения, события) приписать значение 1 (единица), а другому 0 (нуль), то алфавит кода будет содержать всего два символа
(знака) – 0 и 1, а кодовая комбинация – набор символов из этого алфавита.
Например, режим включения шести реле (Pi), определенный кодовой комбинацией 110111 (рис. 1.1 а), будет означать, что в заданный момент времени лишь
контакты реле Р4 не будут замкнуты. Комбинации 110000, 010001 и 111111
означают, что сработали соответственно шестое и пятое, первое и пятое, все реле и т. д. Рассмотренную информацию можно записать на бумаге символами 1,
0 (рис. 1.1б) или представить на бумажной ленте комбинацией отверстий
(рис. 1. 1в), считая пробитое на ленте отверстие за 1, а отсутствие за 0. Расположение отверстий в строке на соответствующих дорожках определит состояние рассматриваемых элементов. При этом полагают, что первая дорожка (счет
справа налево) определяет состояние первого реле, вторая – второго, третья –
третьего и т. д.
В данном случае длина всех рассмотренных комбинаций (110111, 110000
и т. д.) равна шести (n = 6).
Количество единичных символов в комбинации называют ее весом и обозначают l. Комбинация 11001 имеет вес l = 3, комбинация 11111 – вес l = 5, комбинация 00010 – вес l = 1.
Кодовым расстоянием d между двумя комбинациями называют количество несовпадений их разрядов. Например, кодовое расстояние между комбинациями 10000 и 11000 будет d = l, между комбинациями 11100 и 00011 – d = 5.
В первом случае все разряды одинаковы, кроме одного, во втором случае различны все пять разрядов.
Классификация кодов
Имеется большое число признаков классификации кодов. Назовем основные из них.
1. По основанию: коды с основанием m = 2 называют двухпозиционными, с основанием m > 2 – многопозиционными.
2. По длине кодовых комбинаций: коды равномерные, если
n = const, и неравномерные, если n ≠ const.
3. По весу комбинаций: коды равновесные (или коды на одно сочетание),
если l = const, и неравновесные (или коды на сумму сочетаний), если l ≠ const.
Равновесный код называют также кодом l из п. Число комбинаций кода
равно числу сочетаний из n по l и обозначается символом
6
n
l
.
Рис. 1.1. Представление информации кодом с основанием m = 2;
а – состояния элемента реле; б – запись символами;
в – представление на перфоленте отверстиями
Из комбинаторики известно, что
n
l
n(n 1)(n 2)
l!
(n l 1)
.
В технике широкое применение имеет код 2 из 5, число комбинаций этого
кода
5
2
N
5 4
10 .
2
Все комбинации кода имеют одинаковый вес l = 2.
Код на сумму сочетаний содержит комбинации различного веса. В общем
случае вес n членной комбинации изменяется от 0 до n, сумма комбинаций
равновесных кодов
(формула бинома Ньютона)
N
n
0
n
1
7
...
n
n
2n.
Для n =5 общие число комбинаций
5
5
5
1
2
3
1 5 10 10 5 1 32.
N
25
5
0
5
4
5
5
4. По способу упорядочения комбинаций. Число вариантов упорядочения
равно числу перестановок из N, равному N!.
Таким образом, имеется 10! кодов 2 из 5.
Пример одного из вариантов комбинаций:
0)11000;1)10100; 2) 011000;
3) 01010; 4) 00110; 5) 00101;
6) 00011; 7)10010; 8)10001;
9) 01001.
(1.1)
5. По четности или нечетности веса комбинаций. Если все комбинации кода имеют четный вес, то код называют четным, если нечетный вес – нечетным.
Пример четного кода:
0) 0000;1) 0011; 2) 0101; 3) 0110;
4)1001; 5)1010; 6)1100; 7)1111.
(1.2)
6. По числу комбинаций заданной длины. Если код содержит все возможные комбинации заданной длины (N = 2n), то его называют полным или кодом
безызбыточности. Если код содержит только часть этих комбинаций, то его
называют неполным или кодом с избыточностью. Избыточность необходима
для придания коду каких-либо особых свойств, в частности помехозащищенности.
Код (1.2) будет неполным, поскольку при его формировании использовали
только восемь комбинаций (четного веса) из возможных 16. Из оставшихся
восьми нечетных комбинаций можно, в свою очередь, образовать также неполный нечетный код.
7. По кодовому расстоянию. Код с постоянным кодовым расстоянием (d =
=const) между смежными комбинациями называют переменным.
Код 2 из 5 [см. (1.1)] является двухпеременным. Кодовое расстояние между смежными комбинациями этого кода всюду равно двум. Те же десять комбинаций можно расположить по-другому и получить четырехпеременный код:
0) 00011;1)11000; 2) 00110;
3)10001; 4) 01100; 5)10010;
6) 01001; 7)10100; 8) 01010;
9) 00101.
(1.3)
8. По арифметическим свойствам кода. С помощью различных кодов записывают числа. Код, обладающий арифметическими свойствами, называют
арифметическим. Комбинации такого кода можно рассматривать как числа и
производить с ними различные арифметические операции.
8
Если код не обладает арифметическими свойствами, его называют комбинаторным. Комбинаторные коды формируют по законам теории соединений
(сочетаний, размещений, перестановок), изучаемой в разделе математики,
называемом комбинаторикой. Из рассмотренных кодов к комбинаторным относят равновесные, четные, нечетные.
ХАРАКТЕРИСТИКИ ОСНОВНЫХ СИСТЕМ СЧИСЛЕНИЯ
Коды, используемые для представления чисел посредством числовых
знаков (цифр), определяются как системы счисления. Наиболее употребимы позиционные системы, запись произвольного числа А в которых при основании т
базируется на представлении этого числа в виде полинома:
(1.4)
где аi – коэффициент – один из символов (цифр) системы; т – основание системы; n – номер разряда.
При использовании системы счисления основание, как правило, не пишут, а число записывают путем перечисления всех коэффициентов (символов)
полинома:
А аn an 1an 2 a0а 1а 2 .
При этом запятая, отделяя целую часть числа от дробной, служит для
фиксации значения каждой позиции (разряда) в последовательности цифр.
Десятичная система счисления
Это система – наиболее употребляемая. Основание системы – 10. В ней
используют десять символов – десятичные цифры 0, 1, 2, 3, ... 9. В системе 10
единиц каждого разряда объединяют в одну единицу соседнего старшего разряда (выбор числа 10 в качестве основания общепринятой системы счисления исторически связан с числом пальцев на руках).
В десятичной системе последовательность цифр 3807,45 представляет собой сокращенную запись следующего полинома:
3 103 8 102
0 101 7 100
4 10
1
5 10
2
.
В десятичной системе при обычной записи указывают только коэффициенты; при этом предполагают, что их значимость (вес) различна и определяется
разрядом, занимаемым данным коэффициентом (цифрой). Система является
емкой, но для реализации в устройствах вычислительной техники мало пригодна, так как выполнение элемента с десятью четко различимыми состояниями
представляет собой сложную техническую задачу.
Унитарная (единая) система счисления
Такая система имеет один цифровой знак (символ) – 1. Любое и только
целое число в этой системе выражается набором единиц, например число 4 де9
сятичной системы представляется в виде 1111, число 12 – в виде 111111111111
и т. д. Система простая и легко реализуется (она используется, в частности, для
записи заданного количества импульсов на магнитных лентах, барабанах), но
является очень громоздкой. Чтобы записать, например, число десятичной системы 3586/10 , нужно последовательно записать три тысячи пятьсот восемьдесят шесть единичных символов: 1111. . . 111. . . 1111... 111... .
Другие позиционные системы счисления
По принципу десятичной системы строят все другие позиционные системы счисления. В восьмеричной системе используют восемь цифр и полином
строят на основании m = 8, в пятеричной m = 5, в четверичной m = 4 и т. д.
(табл. 1.1). Если основание системы счисления больше десяти, то приходится
конструировать новые цифры. Так, в вычислительной технике применяют
шестнадцатеричную систему счисления с алфавитом
{0,1,2,…,9, 0,1,2,3,4,5 }или {0, 1, 2, …, 9, а, b, с, d, е, f}. Наличие черты
над цифрой свидетельствует о том, что численное значение символа равно численному значению данной цифры плюс десять. Так, десятичное число 175,5/10
в шестнадцатеричной системе запишется в виде
0 161 5 160 8 16
1
05,8/16 .
Двоичная система счисления
В двоичной системе счисления с основанием т = 2 используют два символа – цифры 1 и 0. Произвольное число в двоичной системе записывается полиномом, коэффициенты которого аi, могут иметь только одно из двух значений (0 или 1).
Например, десятичное число 69,5/10 в двоичной системе может быть
представлено полиномом
1 26 0 25 0 24 1 22 0 21 1 2
1
1 64 0 32 0 16 0 8 1 4 0 2 1 1 1
1
2
69,5/10
т.е. числом 1000101,1/2.
Система позволяет использовать приборы и устройства с двумя устойчивыми состояниями, обеспечивает простоту выполнения арифметических операций и экономичность и поэтому широко используется в вычислительной технике и автоматике.
При необходимости в двоичной системе можно представить число, записанное в любой другой системе.
10
11
Перевод чисел из одной системы счисления в другую
Наиболее прост перевод чисел в двоичную систему и обратно из восьмеричной системы, что находит применение в устройствах вычислительной техники. Чтобы восьмеричное число перевести в двоичное, надо каждую восьмеричную цифру заменить эквивалентным ей трехразрядным двоичным числом –
триадой:
восьмеричная цифра .
. 0
1
2
3
двоичное число . .
.
000 001 010 011
восьмеричная цифра .
. 4
5
6
7
двоичное число . .
.
. 100 101 110
111
Соответственно для перевода из двоичной системы в восьмеричную число нужно разделить на триады влево и вправо от запятой и заменить триады
восьмеричными цифрами. Если самая левая или самая правая триада окажется
неполной, к ней надо приписать нули.
Пример 1. Восьмеричное число 34,5/8 перевести в двоичное. Восьмеричные цифры 3, 4, 5 в двоичной системе соответственно запишутся в виде 011,
100, 101, тогда все число будет 11100,101/2. Нуль впереди можно опустить.
Пример 2. Двоичное число 11010111,110101/2 перевести в восьмеричное:
011 010 111110 101
327,65/ 8 .
3 2 7 6 5
Целые числа, записанные в одной системе счисления, в новую систему
счисления переводятся последовательным делением числа и получаемых частных на основании той системы, в которую оно переводится, до тех пор, пока не
получится частное меньше основания системы. Результатом будут остатки от
деления, прочитанные в порядке, обратном их получению, и последнее частное.
Пример 3. Перевести число 47/10 в двоичное:
Таким образом, 47/10=101111/2.
Пример 4. Перевести число 32/10 в двоичное:
12
т. е. 32/10=100000/2.
Пример 5. Перевести число 137/10 в восьмеричное:
т. е. 137/10 = 211/8
Пример 6. Перевести целое десятичное число 123 в двоичное и восьмеричное:
123
122
1
2
61
60
1
2
30
30
0
2
15
14
1
2
7
6
1
2
3
2
2
1
1
т. е. 3/10=1111011/2; 123/10=173/8.
Пример 7. Перевести целое десятичное число 691 в шестнадцатеричное:
т.е. 69116 = 2В3.
13
ДВОИЧНО-КОДИРОВАННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ
Некоторое неудобство двоичной системы счисления заключается в громоздкости записи чисел. Количество цифр двоичного изображения числа примерно в 13,3 раза больше количества цифр в десятичном изображении того же
числа. Поэтому в технике наиболее часто используют смешанные системы
счисления, в частности двоично-восьмеричную, двоично-шестнадцатеричную и
двоично-десятичную. В этих системах объединяются достоинства двух систем:
емкость восьмеричной, шестнадцатеричной или десятичной систем) и двоичное
изображение цифр двоичной системы.
В двоично-десятичной системе каждая цифра десятичного числа (0, 1, 2,
... ..., 9) записывается двоичным кодом. Для этого достаточно четырех двоичных разрядов – тетрады (рис. 1.2). Если в системе используется нормальное
значение (вес) каждого разряда двоичной системы, то значимость разрядов в
тетраде (начиная со старшего левого) составит 23–22–21–20, или 8421.
В соответствии с этим десятичные цифры будут иметь двоичный код:
1–0001; 2–0010; ...; 9–1001 (табл. 1.2).
Для записи любого десятичного числа (более 9) на каждый разряд числа
выделяется тетрада.
Так, для записи десятичных чисел от 0 до 999 необходимы три двоичные тетрады.
Первая
(справа)
определяет
десятичный
разряд
0
1
2
10 , вторая – 10 , третья (слева) – 10 . При этом десятичное число, например 942,
будет иметь вид 1001 0100 0010 (рис.1.2в).
Таким образом, двоично-десятичный код является десятичным по существу
и
двоичным
по
форме
представления
цифр.
В практике наиболее часто десятичные цифры в двоично-десятичном коде записывают на перфоленте строчками, определив для каждой из строчек определенный десятичный разряд (рис.1. 2б).
Двоично-десятичную систему с указанным выше весом разрядов называют двоично-десятичным взвешенным кодом 8421. Код этот очень удобен, но
имеет недостаток: с его помощью могут быть образованы не только цифры от 0
до 9, но и числа от 10 до 15, которые не всегда используются, и их приходится
исключать.
Разработано значительное число кодов с другими наборами весов по разрядам: 2421; 5211; 7421 и т. д. Имеются также коды, у которых некоторые разряды имеют отрицательное значение веса: (6) (4) (–2) (–1); (7) (2) (–4) (–1) и др.
14
Рис. 1.2. Двоично-кодированные системы счисления
в представлении на перфоленте: а – код 8421;
б, в – представление десятичных чисел в коде 8421
Таблица 1.2
Изображение десятичных чисел в системах счисления с различным основанием
Система с основанием
Десятичное
число
0
1
2
3
4
5
6
7
8
9
10
11
12
13
2
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
3
0
1
2
10
11
12
20
21
22
100
101
102
110
111
8
0
1
2
3
4
5
6
7
10
11
12
13
14
15
15
16
0
1
2
3
4
5
6
7
8
9
0
1
2
3
Двоичнодесятичная
система
(код 8421)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0001
0000
0001
0001
0001
0010
0001
0011
Продолжение таблицы 1.2
Изображение десятичных чисел в системах счисления с различным основанием
14
15
16
17
18
19
20
1110
1111
10000
10001
10010
10011
10100
112
120
121
122
200
201
202
16
17
20
21
22
23
24
4
5
10
11
12
13
14
0001
0001
0001
0001
0001
0001
0010
0100
0101
0110
0111
1000
1001
0000
Для изображения десятичных цифр в двоично-кодированных системах
счисления используют и комбинаторные коды: такие как 2 из 5, 3 из 5, однопеременный код Грея, двоично-десятичный однопеременный код и др. Особенно
большую роль в автоматике играют однопеременные коды, у которых кодовое
расстояние d между смежными комбинациями всюду равно 1.
План выполнения работы
Задание 1 (Лабораторная работа №1).
Написать программу перевода десятичного числа в наперед заданную систему
счисления (двоичную, восьмеричную и/или шестнадцатиричную).
В основу программы положить преобразование
k:= D mod S;
D:= D div S;
Задание 2 (Лабораторная работа №2).
Написать программу перевода числа из наперед заданной системы счисления в
десятичную.
В основу программы положить преобразование
S:=0;
;
Примеры программ представлены в приложении 1.
Контрольные вопросы
1. Назовите основные специальные системы счисления.
2. Назовите основные операторы программного преобразования систем
счисления.
3. Назовите термины, лежащие в основе систем счисления.
16
Лабораторная работа №3
ЦИФРОВОЙ ВВОД И ВЫВОД НА ПРИМЕРЕ Lpt-ПОРТА
Цель работы
Изучить вопросы проектирования и эксплуатации устройств дискретного
типа с управлением от Lpt-порта компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием стенда-имитатора источников и
приемников дискретных сигналов с величиной информационного напряжения
U 5 В.
Теоретические положения
Порядок обмена по интерфейсу Centronics
Основным назначением интерфейса Centronics (аналог — ИРПР-М) является подключение к компьютеру принтеров различных типов. Поэтому распределение контактов разъема, назначение сигналов, программные средства
управления интерфейсом ориентированы именно на это использование. В то же
время с помощью данного интерфейса можно подключать к компьютеру и другие внешние устройства, имеющие разъем Centronics, а также специально разработанные УС.
Основным достоинством использования Centronics для подключения УС
по сравнению с ISA является значительно меньший риск вывести компьютер из
строя. Главный недостаток этого подхода — значительно меньшая скорость
обмена. Назначение 25 контактов разъема Centronics приведено в таблице 3.1.
Сигналы Centronics имеют следующее назначение (тип выходных каскадов для всех сигналов — ТТЛ):
DO...D7 — 8-разрядная шина данных для передачи из компьютера в
принтер. Логика сигналов положительная.
-STROBE — сигнал стробирования данных. Данные действительны как
по переднему, так и по заднему фронту этого сигнала. Сигнал говорит приемнику (принтеру), что можно принимать данные.
-АСК — сигнал подтверждения принятия данных и готовности приемника (принтера) принять следующие данные. То есть здесь реализуется асинхронный обмен.
BUSY — сигнал занятости принтера обработкой полученных» данных и
неготовности принять следующие данные. Активен также при переходе принтера в состояние off-line или при ошибке, а также при отсутствии бумаги.
Компьютер начинает новый цикл передачи только после снятия -АСК и после
снятия BUSY.
17
AUTO FD — сигнал автоматического перевода строки. Получив его,
принтер переводит каретку на следующую строку.
PЕ — сигнал конца бумаги. Получив его, компьютер переходит в режим
ожидания. Если в принтер вставить лист бумаги, то сигнал снимается.
SLCT — сигнал готовности приемника. С его помощью принтер говорит
о том, что он выбран и готов к работе. У многих принтеров имеет постоянно
высокий уровень.
-SLCT IN — сигнал принтеру о том, что он выбран и последует передача
данных.
-ERROR — сигнал ошибки принтера. Активен при внутренней ошибке,
переходе принтера в состояние off-line или при отсутствии бумаги. Как видим,
здесь многие сигналы дублируют друг друга.
-INIT — сигнал инициализации (сброса) принтера. Его длительность не
менее 2,5 мкс. Происходит очистка буфера печати.
Таблица 3.1
Назначение контактов разъема Centronix
Контакты разъема Контакты разъема
адаптера
принтера
Назначение
Вход/выход
1
1
Строб
Выход, инверсия
2
2
Данные бит 0
Выход
3
3
Данные бит 1
Выход
4
4
Данные бит 2
Выход
5
5
Данные бит 3
Выход
6
6
Данные бит 4
Выход
7
7
Данные бит 5
Выход
8
8
Данные бит 6
Выход
9
9
Данные бит 7
Выход
10
10
ACK
11
11
BUSY
12
12
PE
13
13
SLCT
14
14
15
32
ERROR
16
31
INIT
17
36
SLCTIN Принтер выбран
18-25
15-30, 33
Подтверждение
Занято
Конец бумаги
Выбор
Вход инверсия
Вход
Вход
Вход
Автомат. перевод строки
Выход инверсия
Ошибка
Вход инверсия
Сброс
Земля
Выход инверсия
Выход инверсия
-
Все сигналы интерфейса Centronics передаются в уровнях TTL и рассчитаны на подключение одного стандартного вход ТТЛ. Максимальная длина
соединительного кабеля по стандарту — 1,8 м. Как видно из таблицы 1, в ин18
терфейсе Centronics для подключения к компьютеру произвольных УС мы
можем использовать 17 линий, назначение которых можно выбирать по своему усмотрению.
Формирование и прием сигналов интерфейса Centronics производится путем записи и чтения выделенных для него nopтов ввода/вывода. В компьютере
может использоваться три порта Centronics, обозначаемых LPT1 (базовый адрес
378h); LPT2 (базовый адрес 278h) и LPT3 (базовый адрес 3BCh).
Базовый адрес порта используется для передачи принтеру байта данных.
Установленные на линиях данные можно считать из этого же порта. Следующий адрес (базовый + 1) служит для чтения битов coстояния принтера (бит 3
соответствует сигналу -ERROR, бит 4 — сигналу SLCT, бит 5 — сигналу РЕ,
бит 6 — сигналу ASK, -АСК, бит 7 — сигналу BUSY). Последний используемый адрес (базовый + 2) предназначается для записи битов управления принтером (бит 0 соответствует сигналу -STROBE, бит 1 — сигналу -AUTO FD, бит 2
— сигналу -INIT, бит 3 — сигналу -SLCT IN и наконец, бит 4, равный единице,
разрешает прерывание от принтера).
Таблица 3.2
Размещение информационных сигналов в адресном пространстве IBM
6
D6
Регистр данных
Биты
5
4
3
D5
D4
D3
2
D2
1
D1
0
D0
6
ACK
Регистр состояния
Биты
5
4
3
PE
Slct
Error
2
-
1
-
0
-
Адрес
$378
7
D7
Адрес
$379
7
Busy\
Адрес
$37А
7
-
6
-
5
-
Регистр управления
Биты
4
3
2
Slct In\
Init
1
Auto
FD\
0
Strobe\
Подключение простейших нестандартных устройств
Интерфейс Centronics и, соответственно, параллельный порт персонального компьютера ориентированы на подключение принтера. Подтверждением этому является и название сигналов интерфейса — AUTO FD — автоматический перевод бумаги, РЕ — конец бумаги и т.д. Однако при разработке нестандартных устройств для подключения к интерфейсу Centronics его
сигналы могут быть использованы произвольно.
19
Все сигналы интерфейса можно разделить на четыре группы:
1 — восьмиразрядная шина данных для записи из компьютера (сигналы DO...D7);
2 — четырехразрядная шина управления для записи из компьютера
(сигналы STROBE, AUTO FD, INIT и SLCT IN);
3 — пятиразрядная шина состояния для чтения в компьютер (сигналы
АСК, BUSY, PE, SLCT и ERROR);
4 — шина "земли".
Все сигналы программно доступны, что позволяет реализовать произвольные протоколы информационного обмена в рамках имеющегося их
набора и быстродействия компьютера. Простейший анализ набора сигналов
позволяет выделить основную проблему, возникающую при сопряжении
устройств с интерфейсом Centronics. Поскольку шина данных является однонаправленной, что позволяет использовать ее только на вывод, для ввода
данных необходимо использовать сигналы из пятиразрядной шины состояния. Таким образом, разрядность информационного обмена по чтению ограничена пятью линиями. Рассмотрим следующую задачу.
Необходимо разработать устройство типа "набор лампочек и кнопочек", содержащее переключатели и светодиоды. В зависимости от положения
переключателей по некоторому алгоритму должны загораться светодиоды.
Устройство должно подключаться к персональному компьютеру через параллельный порт. На рис.3.1 показан вариант простейшей реализации такого
устройства. Для управления светодиодами использованы сигналы D0 ... D7,
поэтому их число ограничено восемью. Для опроса положения переключателей используются пять сигналов шины состояния, поэтому максимальное
число таких переключателей — пять. Регистр К5803ИР82 предназначен для
фиксации данных и начальной установки (гашения) светодиодов. Сигнал STROBE используется для стробирования записи данных в регистр, а сигнал
-INIT — для сброса регистра и гашения светодиодов (светодиод горит при
записи логической "1" в соответствующий разряд регистра). При замыкании
переключателя по соответствующей ему линии шины состояния читается логический "0", а при размыкании — логическая "1". Для питания устройства
используется внешний источник напряжением +5 В.
20
Рис.3.1. Схема экспериментальной установки
Порядок выполнения работы
1. Разработать программу включения «лампочек» по заданному преподавателем алгоритму (Режим Output);
2. Разработать программу опроса и определения «веса» имеющихся в стенде
«кнопочек» (Режим Input);
3. Разработать программу, задающую различные режимы свечения «лампочек»
в зависимости от вариантов нажатия «кнопочек».
Примеры программ представлены в приложении 2.
Контрольные вопросы
1.
2.
3.
4.
Сколько регистров содержит параллельный порт компьютера IBM?
Какие адреса имеют эти регистры?
Какое направление передачи информации имеют эти регистры?
Области применения параллельного порта?
21
Лабораторная работа №4
ИЗУЧЕНИЕ МОДУЛЯ ПРОГРАММИРУЕМОГО ПАРАЛЛЕЛЬНОГО
ИНТЕРФЕЙСА (МППИ) В РЕЖИМЕ ЦИФРОВОГО САМОТЕСТА
Цель работы
Изучить вопросы проектирования и эксплуатации устройств дискретного
типа с управлением от компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы NVL-01
источника и
приемника дискретных сигналов с величиной информационного напряжения
U 5 В. Для предварительного ознакомления с возможностями модуля используется программа из комплекта поставки платы «NVL_demo.exe».
Теоретические положения
Модуль дискретного ввода/вывода платы NVL-01
Цифровой ввод-вывод осуществляется через цифровой программируемый порт
ввода-вывода КР580ВВ55А. Его портам соответствуют следующие адреса
регистров:
308h порт А;
309h порт В;
30Ah порт С.
30Bh управляющий порт.
Модуль содержит микросхему параллельного интерфейса К580ВВ55А. Три
порта микросхемы параллельного интерфейса выведены на разъем и могут
быть запрограммированы на ввод или вывод пользователем по своему усмотрению.
Программируемый параллельный интерфейс
Программируемый параллельный интерфейс (ППИ) КР580ВВ55А предназначен для организации портов безусловного и условного ввода, портов, работающих по прерываниям. Общая функциональная схема ППИ приведена на
рис.4.1. ППИ связан выводами D7…D0 с шиной данных микропроцессорной
системы. Схема управления получает из микро-ЭВМ следующие сигналы:
– «выбор кристалла»;
– «чтение»;
– «запись»;
22
RESET – «сброс»;
A1,A0 – двухразрядный адрес внутреннего порта ППИ.
Рис.4.1.Общая функциональная схема ППИ
Микросхема содержит четыре порта – регистр управляющего слова (РУС),
порты А, В и С. Порт С разделен на две самостоятельные половины – старшую
(разряды С7…С4) и младшую (разряды С3…С0). С микро-ЭВМ взаимодействует тот из портов, адрес которого выставлен на входах А1,А0 микросхемы.
Адреса портов сведены в таблицу 4.1.
Таблица 4.1
Адреса внутренних портов ППИ
Адресат
a1
a0
Порт А
0
0
Порт В
0
1
Порт С
1
0
РУС
1
1
Другими необходимыми условиями взаимодействия являются выбор микросхемы сигналом
и подача одного из сигналов
или
.
Режимы работы портов ППИ и направление передачи через них информации устанавливается в процессе настройки, инициализации микросхемы. При
инициализации микросхемы в порт РУС выводится управляющее слово MS.
Его формат представлен на рис.4.2. Порты А, В, С микросхемы могут работать
в следующих режимах:
порт А – режимы 0,1,2;
порт В – режимы 0,1;
порт С – режим 0.
В режиме 0 порт работает как порт безусловного ввода-вывода, в режиме
1 – как порт условного ввода–вывода или порт ввода-вывода по прерываниям.
Режим 2 аналогичен режиму 1, но используется при двунаправленной шине
внешнего устройства.
23
Рис.4.2.Формат управляющего слова MS
Для передачи и приема сигналов сопровождения кодов (известительного и квитирующего), выдачи запросов прерываний в режимах 1 и 2 используются
определенные биты порта С. Биты порта С, не используемые в этих режимах,
могут использоваться для безусловного ввода или вывода (в зависимости от
инициализации). Конструкцией микросхемы предусмотрено так же избирательное управление битами порта С с помощью управляющего слова BSR. Формат
этого показан на рис.4.3.
Рис.4.3.Формат управляющего слова BSR
Порядок выполнения работы
1. Задание 1. Использование демо-версии программы NVL-01.
Порты А и B соединены между собой побитно (Рис.4.4).
Запустить программу «nvl_demo.exe». На главном экране выбрать режим
работы «Цифровой ввод-вывод» (Рис.4.5).
24
Рис.4.4. Структурная схема обмена информацией
Рис.4.5. Экран выбора режимов работы интерфейса
Произвести запись в порт А байта произвольного значения, прочитать
байт из порта В.
Сравнить результаты.
Задание 2. Написать Pascal-программу, осуществляющую запись некоторого байта в определенный порт и считывающую байт из другого порта.
Варианты:
2.1.
А В; А В;
2.2.
Смл.т
Сст.т ; Смл.т
Сст.т.
25
Примеры программ приведены в приложении 3.
Контрольные вопросы
1.
2.
3.
4.
5.
Что такое «самотест» цифрового устройства?
На какой микросхеме основан цифровой ввод/вывод платы NVL-01?
Каковы основные функции МППИ?
Каковы основы программирования МППИ?
Назовите области применения цифрового ввода-вывода?
26
Лабораторная работа №5
ПРИЕМ ИНФОРМАЦИИ ОТ ЦИФРОВОГО ИЗМЕРИТЕЛЬНОГО
ПРИБОРА (ЦИП) ВОЛЬТМЕТРА В7-18
Цель работы
Изучение программных и аппаратных методов сопряжения цифровых измерительных приборов с выходом в стандарте 1-2-4-8 с интерфейсом дискретного ввода ЭВМ.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы NVL-01 - источника и
приемника дискретных сигналов с величиной информационного напряжения
U 5 В. Вторая версия работы выполняется с использованием платы дискретного ввода/вывода DIO-48.В качестве цифрового измерительного прибора используется мультиметр В7-18 в режиме вольтметра.
Теоретические положения
Конструкция мультиметра В7-18
На передней панели расположены отсчетное устройство, кнопочные переключатели, входные разъемы, органы калибровки, тумблеры включения сети
и выключения последнего знака на отсчетном устройстве, кнопка ручного запуска, световые индикаторы перегрузки и счета, клемма защитного заземления.
На задней панели расположены дублирующие входные разъемы, разъемы для
подсоединения вольтметра в систему автоматического контроля, для вывода
информации на регистрирующее устройство и дистанционно-программного
управления.
ОБЩИЕ УКАЗАНИЯ ПО ЭКСПЛУАТАЦИИ
Переключатель ВИД ЗАПУСКА предназначен для выбора вида запуска
счетной части: ручного (РУЧ.), периодического (ПЕРИОД.) и дистанционного
(ДИСТ.). В режиме РУЧ. запуск схемы производится нажатием кнопки ПУСК;
в режиме ПЕРИОД. — автоматически; в режиме ДИСТ. — внешними сигналами через разъем ДИСТАНЦИОННОЕ УПРАВЛЕНИЕ на задней панели вольтметра. Переключателем РОД РАБОТЫ устанавливается режим работы вольтметра: калибровка по частоте, постоянному напряжению, току и сопротивлению; установка нуля; вид выбора пределов измерения (ручной или автоматический), а также дистанционно-программное управление. При измерении постоянного напряжения, тока и сопротивления производится калибровка вольтметра
с помощью переменных резисторов КАЛИБР. ( + , —, IR), оси которых выведены на переднюю панель. Установка нуля вольтметра производится с помощью
переменного резистора НУЛЬ U, ось которого выведена на переднюю панель,
27
при нажатой кнопке НУЛЬ U переключателя РОД РАБОТЫ. Ручное переключение пределов измерения производится нажатием кнопок, переключателя
ПРЕДЕЛЫ при установленном режиме работы РУЧ. Автоматическое переключение пределов измерения производится в режиме работы АВТ. Дистанционнопрограммное управление вольтметром производится внешними сигналами через разъем ДИСТАНЦИОННОЕ УПРАВЛЕНИЕ на задней панели в режиме работы ДИСТ. Переключателем ВРЕМЯ ИЗМЕРЕНИЙ S устанавливается время
измерения 0,01; 0,1 или 1с. Переключателем ВРЕМЯ ИНДИКАЦИИ S устанавливается время 0,05; 0,2; 0,5; 1 или 5 с, в течение которого высвечивается результат измерения. В режиме работы АВТ. время индикации постоянно и равно
1 с. При дистанционно-программном управлении работой вольтметра время
индикации устанавливается внешними устройствами. Переключателем ВИД
ИЗМЕРЕНИЙ устанавливается вид измеряемых величин: U, I, R, f. Тумблер
ОТСЧЕТ предназначен для гашения последнего знака индикации в положении
0,1. Индикатор ПЕРЕГРУЗКА светится при превышении измеряемой величиной (U, I, R) значения установленного предела измерения более чем на 50%.
По индикатору СЧЕТ определяется работоспособность частотомера.
Переключение вольтметра на работу от внешнего или внутреннего генератора
производится тумблером на задней панели (ВНЕШ. или 5 MHz).
На задней панели расположены также разъемы ДИСТАНЦИОННОЕ УПРАВЛЕНИЕ, АВТОМАТИЧЕСКАЯ СИСТЕМА КОНТРОЛЯ, РЕГИСТРИРУЮЩЕЕ
УСТРОЙСТВО, ВЫХОД НА В9-1, 220V/50Hz.
УКАЗАНИЯ МЕР БЕЗОПАСНОСТИ
При эксплуатации прибора запрещается, во избежание его отказа, подавать на вход U 100V напряжение свыше 150 В, а на вход IR постоянное
напряжение свыше 10 В.
Перед включением вольтметра в сеть 220 В/50 Гц корпус необходимо
надежно заземлить.
При измерении напряжений 100 В и более необходимо измеряемый объект отключить, подсоединить вольтметр, включить его в сеть, а затем включить
измеряемый объект.
ПОРЯДОК РАБОТЫ
1. Подготовка к проведению измерений. Для проведения измерений необходимо произвести следующие операции:
а)
установите тумблер на задней панели в положение 5 MHz;
б)
нажмите кнопку ПЕРИОД, переключателя ВИД ЗАПУСКА;
в)
нажмите кнопку КАЛИБР. f переключателя РОД РАБОТЫ;
г)
тумблер ОТСЧЕТ установите в положение xl;
д)
положение остальных переключателей — любое, удобное для работы;
е)
подсоедините вольтметр к сети питания с помощью сетевого кабеля;
ж) включите вольтметр, установив тумблер СЕТЬ в верхнее положение.
28
Измерение постоянного напряжения
а) Нажмите кнопку U переключателя ВИД ИЗМЕРЕНИЙ. Положение кнопок
переключателей ВИД ЗАПУСКА, ВРЕМЯ ИЗМЕРЕНИЙ S и тумблера ОТСЧЕТ — любое, удобное для измерений;
б)
при работе в режиме ручного переключения пределов измерения нажмите
кнопку РУЧ. переключателя РОД РАБОТЫ, а на переключателях ПРЕДЕЛЫ и
ВРЕМЯ ИНДИКАЦИИ S — кнопки, соответствующие нужному пределу измерений и выбранному времени индикации;
в)
при работе в режиме автоматического выбора пределов измерения
нажмите кнопку АВТ. переключателя РОД РАБОТЫ.
ВНИМАНИЕ! Переключение пределов измерения в режиме автоматического
выбора пределов измерения начинается с IV-гo предела (100 В). Измеряемое
напряжение не должно превышать 150 В;
г)
в зависимости от ожидаемого значения изменяемые напряжения подайте
на разъем U < 100 V или U = 1000 V и произведите измерение.
Дистанционно-программное управление
Нажмите кнопку ДИСТ. переключателя РОД РАБОТЫ. Кнопки остальных переключателей должны быть в не нажатом состоянии. В зависимости от
предполагаемого вида запуска нажмите соответствующую кнопку переключателя ВИД ЗАПУСКА: РУЧ. или ДИСТ.
В соответствии
с табл. 5.2 подайте на контакты разъема ДИСТАНЦИОННОЕ УПРАВЛЕНИЕ сигналы управления или соедините контакты, сигналы, которых имеют уровень напряжения, соответствующий логическому «0», с контактом 50, а на контакты 22 и 1 подайте положительные сигналы СОПРОВОЖДЕНИЕ и ВНЕШНИЙ ПУСК с амплитудой 2,5 В.
Работа с регистрирующим устройством
Через разъем вольтметра РЕГИСТРИРУЮЩЕЕ УСТРОЙСТВО на регистрирующее устройство поступают кодовые сигналы информации в соответствии с
табл. 5.1.
Таблица 5.1
Кодовые сигналы цифровой информации на разъеме
РЕГИСТРИРУЮЩЕЕ УСТРОЙСТВО
КодоНомера контактов
Кодовые сигналы информации
вое
Разрядные декады
Цифры
число
1
2
4
8
I
II
III IV V
VI 0
1
2
3
4
5
6 7
8
9
2
3
4
5
6
7
8
9
10
11
12
13
22
23
24
25
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
]
0
0
1
1
0
0
0
0
1
1
0
0
1
14
15
16
17
18
19
20
21
0
0
0
0
29
1
1
1
0
Вольтметр подключается к цифровому входу платы NVL-01 по структурной
схема (Рис.5.1).
Рис.5.1. Схема подключения вольтметра В7-18 к ЭВМ IBM через ППИ К580ВВ55
Таблица 5. 2
Кодовые сигналы цифровой информации на разъеме
ДИСТАНЦИОННОЕ УПРАВЛЕНИЕ
Номера кон- сигналы информации
тактов
1
ПУСК РЕГИСТРИРУЮЩЕГО УСТРОЙСТВА
22
СОПРОВОЖДЕНИЕ
48
ЗАПРЕТ, РАЗРЕШЕНИЕ
50
корпус
Порядок выполнения работы
1.
Разработать программу на языке Pascal подекадного приема информации
с четырех младших декад вольтметра В7-18.
2.
Скорректировать программу для определения реального напряжения, подаваемого на вольтметр.
30
3.
Сымитировать работу программы в режиме системы автоматического
контроля (САК) для реакции на максимальное и минимальное подаваемые
напряжения.
Пример программы представлен в приложении 4.
Контрольные вопросы
1.
Какие измерительные приборы называют цифровыми?
2.
Что такое код «1-2-4-8»?
3.
Какой код применяется при выдаче информации из ЦИП?
31
Лабораторная работа №6
ПРИЕМ ИНФОРМАЦИИ ОТ ЦИФРОВОГО ИЗМЕРИТЕЛЬНОГО
ПРИБОРА ДАТЧИКА ЛИНЕЙНЫХ ПЕРЕМЕЩЕНИЙ «МИКРОН-02»
С ИСПОЛЬЗОВАНИЕМ ПЛАТЫ DIO-48
Цель работы
Изучение программных и аппаратных методов сопряжения цифровых измерительных приборов с выходом в стандарте 1-2-4-8 с интерфейсом дискретного ввода ЭВМ.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы дискретного ввода-вывода
DIO-48 источника и приемника дискретных сигналов с величиной информационного напряжения U 5 В. В качестве цифрового измерительного прибора
используется датчик линейных перемещений «Микрон-02».
Теоретические положения
Схема подключения цифрового измерительного прибора «Микрон-02»
идентична прибору В7-18, рассмотренной в лабораторной работе №5 (Рис.6.1).
Рис.6.1. Схема подключения ЦИП « Микрон-02» к плате DIO-48
Описание платы DIO-48
1. Базовый адрес устройства настраивается переключателями SW2 путем
изменения 6-ти старших битов (А4…А9).
2. Диапазон адресов соответствует таблице 6.1.
32
Таблица 6.1
Настройка адресного пространства платы DIO-48
Адрес
1
2
3
4
5
А9
А8
А7
А6
А5
200-20F
1
0
0
0
0
210-21F
1
0
0
0
0
6
А4
0
1
2C0-2CF(*)
1
0
1
1
0
0
3F0-3FF
1
1
1
1
1
1
0 – On (Включен), 1 – Off (выключен).
(*) – настройка по умолчанию.
3. Каналы CN1 и CN2 аналогичны микросхеме Intel 8255 (К580ВВ55) по структуре и методике программирования.
4. Каналы CN1 и CN2 эмулируют режим 0 микросхемы Intel 8255 (К580ВВ55),
имеют каждый по 2 восьмибитных порта (А и В) и 2-е четырехбитные тетрады
порта С.
5. Назначение регистров платы представлено в таблице 6.2.
Таблица 6.2
Адрес (Hex)
Base+0
Base+1
Base+2
Base+3
Base+4
Base+5
Base+6
Base+7
Чтение
CN1 Port A Input
CN1 Port B Input
CN1 Port C Input
Clear Iterrupt
CN2 Port A Input
CN2 Port B Input
CN2 Port C Input
Soft Interrupt trigger
Запись
CN1 Port A Output
CN1 Port B Output
CN1 Port C Output
Configured Word
CN2 Port A Output
CN2 Port B Output
CN2 Port C Output
Configured Word
CW – configured word – управляющее слово микросхемы.
Формат управляющего слова представлен в таблице 6.3.
Таблица 6.3
33
Для определения CW можно воспользоваться таблицей 6.4 конфигурации
управляющего слова. Следует учесть, что она справедлива лишь для 0-го режима работы портов А и В.
Таблица 6.4
Порядок выполнения работы
1.
Разработать программу на языке Pascal подекадного приема информации
с декад датчика «Микрон-02».
2.
Скорректировать программу для определения реального перемещения
индуктивного преобразователя.
3.
Сымитировать работу программы в режиме системы автоматического
контроля (САК) для реакции на максимальное и минимальное подаваемые перемещения.
Пример программы представлен в приложении 4.
Контрольные вопросы
1.
Какие измерительные приборы называют цифровыми?
2.
Что такое код «1-2-4-8»?
3.
Какой код применяется при выдаче информации из ЦИП?
Текст программы позаимствовать из лабораторной работы №4.
34
Лабораторная работа №7
ИЗУЧЕНИЕ РАБОТЫ ЦИФРО-АНАЛОГОВОГО ПРЕОБРАЗОВАТЕЛЯ
(ЦАП) ПЛАТЫ NVL-01
Цель работы
Изучить вопросы проектирования и эксплуатации устройств аналогового
типа с управлением от компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы NVL-01
источника и
приемника аналоговых сигналов с величиной напряжения 5 В. Для предварительного ознакомления с возможностями модуля используется программа из
комплекта поставки платы «NVL_demo.exe». Измерение выходного напряжения ЦАП осуществляется: а) визуально – по показаниям цифровых вольтметров
В7-18 или В7-40; б) программно (по методике лабораторной работы №4).
Теоретические положения
Таблица 7.1
Аналоговый
вывод
Модуль аналогового вывода
Количество каналов
1
Разрядность ЦАП
Диапазон выходного напряжения
10 бит
+/-5V
Модуль состоит из 10-разрядного цифроаналогового преобразователя DAC
(К572ПА1А ), источника опорного напряжения
( КС191Ф ) и преобразователя ток-напряжение ( К140УД708 ) (Рис.7.1).
Инициализация регистров,
обеспечивающих функционирование АЦП и ЦАП, осуществляется путем
записи в регистр с адресом 30716 упpавляющего слова 8А16. Управление выходным напряжением ЦАП обеспечивается через регистр
с адресом 30416.
Два младших бита ЦАП управляются 2 и 3 разрядами регистра с адресом
30С16.
Выходное напряжение 0V соответствует коду 8016, максимальное
напряжение устанавливается при записи в регистр с адресом 30416 (порт А)
кода FF16 (255) и кода 0С16 (12) в регистр с адресом 30С16 (триггеры), минимальное – устанавливается записью в те же регистры кода 0.
35
Рис.7.1. Модуль аналогового выхода платы NVL-01
Математический анализ функций управления
Механизм линейной аппроксимации
Линейный парный регрессионный анализ (метод наименьших квадратов –
МНК) заключается в определении параметров эмпирической линейной зависимости: Y = Ax + B, описывающей связь между некоторым числом N пар значений Xi и Yi, обеспечивая при этом наименьшую среднеквадратичную погрешность (Рис. 7.2). Имея N точек, требуется провести прямую так, чтобы величина
всех отклонений отвечала условию:
N
F
N
(Y
i 1
Y)
2
( Ax B Y ) 2
0
i 1
Для этого необходимо приравнять к нулю частные производные:

2
A
X
B
X
X
Y
dF
0

dA
A X NB
Y
dF
0
dB
что дает для определения неизвестных коэффициентов A и B
36
,
A
N
N

XY
X
X2 (

Y
X )2
Рис. 7.2. Интерпретация МНК (Yi
чения)
B
X2

Y
N
X2 (
X

XY
X )2
экспериментальные значения; Yi
расчетные зна-
Порядок выполнения работы
I. Работа с Демо- версией программы NVL.
а) Запустить в работу программу NVL_demo.exe (Рис.7.3)
Рис.7.3. Экран выбота режимов работы
б) Выбрать «аналоговый ввод вывод» и перейти на страницу №2 программы
(Рис.7.4).
37
Рис.7.4. Экран аналоговых ввода-вывода
в) В окне ввода кода, подаваемого на ЦАП, последовательно набрать коды от 0
до 1023 в соответствии с требованиями таблицы 7.2.
Таблица 7.2
№ п/п
Экспериментальные и расчетные значения напряжения
U, В
Демо-версия
Pascal-Программа
Код
1
0
Эксп.
5,01
2
100
4,03
3
200
3,03
4
300
2,04
5
400
1,03
6
500
0,03
7
600
- 0,96
8
700
- 1,96
9
800
- 2,96
10
900
-3,96
11
1000
-4,95
12
1023
-5,15
Расч.
U,%
Расч.
U,%
г) Нажимая кнопку F2, установить напряжение выхода ЦАП, зарегистрировать
его по показанию вольтметра В7-18 и занести в таблицу 7.2.
38
д) Произвести математическую обработку результатов эксперимента по методу
наименьших квадратов, использую программу «approx.exe».
II. Программирование выходного напряжения ЦАП
Текст программы приведен в приложении 5.
По результатам работы Pascal-программы заполнить графу таблицы 7.2,
произвести математическую обработку результатов расчета. Результаты работы
по частям 1 и 2 нанести на график «код ЦАП – выходное напряжение UЦАП»
(Рис.7.5).
6
Напряжение ЦАП
4
2
0
0
200
400
600
800
1000
1200
-2
-4
-6
Код ЦАП
Рис.7.5. Вид графика
III. Разработать программу, устанавливающую выходное напряжение ЦАП в
соответствии с запросом технологического процесса (оператора).
Математическая модель вида:
U = 5.01810- 0.00996 -cod
Контрольные вопросы
1. Устройство цифроаналогового преобразователя?
2. Области применения ЦАП?
3. Назовите три основных параметра качества ЦАП.
4. Что такое «аппроксимация»?
5. Для чего применяется «метод наименьших квадратов»?
39
Лабораторная работа №8
ИЗУЧЕНИЕ РАБОТЫ АНАЛОГО-ЦИФРОВОГО ПРЕОБРАЗОВАТЕЛЯ
(АЦП) В РЕЖИМЕ АНАЛОГОВОГО САМОТЕСТА ПЛАТЫ NVL-01
Цель работы
Изучить вопросы проектирования и эксплуатации устройств аналогового
типа с управлением от компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы NVL-01
источника и
приемника аналоговых сигналов с величиной напряжения 5 В. Для предварительного ознакомления с возможностями модуля используется программа из
комплекта поставки платы «NVL_demo.exe».
Теоретические положения
Аналоговый
ввод
Таблица 8.1
К1113ПВ1
10 бит
16
+/-5V
программный,
программный
Аппаратная реализация
Разрядность
Количество каналов
Диапазон входных напряжений
Режим запуска
Метод приема информации
Внешние аналоговые сигналы через входной разъем поступают на аналоговый коммутатор КР590КН6. Выходы коммутаторов подключены к входу аналого-цифрового преобразователя К1113ПВ1. На выходе АЦП формируется 10разрядный код и бит готовности. АЦП взаимодействует с шиной компьютера
через микросхему параллельного интерфейса К580ВВ55А (Рис.8.1). Выбор канала АЦП, чтение режима работы АЦП, определение готовности АЦП, а так
же прием двух старших битов выходного кода АЦП осуществляется через регистр с адресом 30616. Этот регистр имеет следующую структуру:
Разряды:
7
6
Старшие биты
АЦП
(чтение)
5
4
3
2
1
0
Выбор
канала АЦП
Готовность
АЦП
(чтение)
Младший байт выходного кода АЦП принимается по адресу 30516.
40
Запуск АЦП осуществляется по переходу состояния 0-го разряда регистра с адресом 30С16 (триггеры) из состояния логической "1" в состояние логического "0", причем, в состоянии логического "0" этот разряд должен находиться в течение всего времени преобразования и считывания сформированного выходного кода.
Рис.8.1. Структурная схема измерительного комплекса
Порядок выполнения работы
1. Составить структурную схему модуля аналогового ввода в режиме аналогового самотеста. Схему аналогового вывода принять в соответствии с
данными лабораторной работы №7.
2. Составить алгоритм ввода кода в зависимости от изменяемого на входе
напряжения.
3. Написать и отработать программу на языке Паскаль ввода кода измеряемого напряжения.
4. Заполнить таблицу соответствия кода ЦАП при выводе и кода АЦП при
вводе (пример в табл.8.1).
5. Построить сравнительный график кодов, постанных в ЦАП и принятых
АЦП (Рис.8.2).
41
Таблица 8.2
1
U,В
Код
ЦАП
Код
АЦП
2
3
Результаты экспериментов
4
5
6
7
8
9
10
11
12
-5.02 -4.03 -3.03 -2,03 -1.03 -0.03 +0.96 +1.96 +2.96 +3.96 +4.96 +5.19
0
100
200
300
400
500
600
700
800
900 1000 1023
4
100
203
305
407
516
613
714
815
923 1016 1023
Сравнение кодов ЦАП и АЦП
1200
1000
Код
800
600
Код ЦАП
400
Код АЦП
200
0
-6
-4
-2
0
2
4
6
U, В
Рис.8.2.Вид графиков
Текст программы приведен в приложении 5.
Контрольные вопросы
1. Устройство АЦП?
2. Области применения АЦП?
3. Основные показатели качества АЦП?
4. Что такое «метод последовательного приближения»?
5. Особенности программирования уни- и биполярных ЦАП и АЦП?
42
Лабораторная работа №9
МОДЕЛИРОВАНИЕ УПРАВЛЕНИЯ ПРИВОДАМИ ПОДАЧ
И ШПИНДЕЛЯ ТОКАРНОГО СТАНКА 16Б16
С ПОМОЩЬЮ ПЛАТ PCL-725 И PCL-726
Цель работы
Изучить вопросы проектирования и эксплуатации устройств аналогового
и дискретного типов с управлением от компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием плат PCL-726 источника аналоговых сигналов с величиной информационного напряжения 10 В и платы
управления релейными элементами PCL-725. Объекты управления: тиристорный преобразователь частоты LG для управления шпинделем токарного станка
мод. 16Б16 и приводы постоянного тока для управления двигателями продольной и поперечной подачами станка.
Теоретические положения
Геометрическая задача ЧПУ формулируется как «материализация в готовом изделии требований чертежа». Для решения этой задачи станок должен
обеспечивать соответствующие формообразующие движения. А это в свою
очередь значит, что станок должен выполнять определенные требования,
предъявляемые к этим движениям. Основные требования к движениям известны как ―параметры движения‖. Основные параметры движения: траектория,
скорость, направление, путь, исходная точка.
В коде ISO-7bit требования к движению, а следовательно и геометрическая задача «формально» описываются адресами:
N номер кадра;
G1 (G2,G3) траектория прямолинейная или круговая;
F подача (скоростной параметр);
X,Y,Z перемещения (в зависимости от системы отсчета играют роль параметров пути и направления).
Исходная точка начала движения рассматривается как текущая, достигнутая в предыдущем кадре. Она же, как правило, контролируется системой отсчета координаты.
Изменение какого-либо параметра движения требует изменения содержания кадра. Следовательно, изделие, имеющее поверхности различной пространственной ориентации и формы, для своей обработки требует программ, состоящих из десятков и сотен кадров.
Алгоритм реализации геометрической задачи представлен на рис. 9.1.
43
Рис.9.1. Укрупненный алгоритм работы устройства ЧПУ в автоматическом режиме
Техническая характеристика платы PCL-725
Диапазон адресов платы: 2A816 - 2A916.
Плата имеет 8 реле с переключающим контактом 120 В/ 0,5 А (переменного тока); 30 В/ 1 А (постоянного тока) со светодиодными индикаторами состояния
реле и 8 дискретных входов с гальванической изоляцией для входных сигналов
от 5 до 24 В постоянного тока.
Адреса на плате распределены так:
BASE+0: Цифровой выход каналов 0-7.
BASE+1: Цифровой вход каналов 0 -7.
Значение входных сигналов можно определить с использованием оператора чтения с адреса BASE+1. Например,
VALUE:=Port[BASE+1].
Состояние релейных элементов можно изменить оператором вывода в порт
с адресом BASE. Например,
Port[BASE]:=XYZ,
где XYZ – число в диапазоне от 0 до 255.
Состояние релейных элементов можно определить оператором ввода из
порта с адресом BASE. Например,
STATUS:=Port[BASE].
Схема подключения внешних устройств к плате показана на рис.9.2.
44
Рис.9.2. Подключение внешних устройств к плате PCL-725
Техническая характеристика платы PCL-726
Основное назначение платы: шесть двенадцатиразрядных
цифроаналоговых преобразователей (ЦАП) для управления устройствами аналогового
типа (регулируемые электроприводы).
Кроме того, плата имеет два 8-ми битных порта для ввода/вывода цифровых сигналов уровня TTL (5 В).
Возможности ЦАП:
а) 0 - +5В (униполярный тип);
б) 0 - +10В (униполярный тип);
в) +/- 5В (биполярный тип);
г) +/- 10В с внешним источником опорного напряжения.
Базовый адрес платы PCL-726 BASE = 2C016.
Диапазон адресов платы: 2С016 – 2СF16.
Схема подключения потребителя аналогового сигнала к плате PCL-726 показана на рис. 9.3.
Рис.9.3. Подключение внешнего устройства аналогового типа
Особенности программирования платы представлены в таблице 9.1.
Условные обозначения:
D/A – аналоговый выход;
D/O – цифровой выход;
D/I – цифровой вход;
R - операция чтения-ввода (Read);
W – операция записи-вывода (Write).
45
Таблица 9.1
Адрес
BASE+0
BASE+1
BASE+2
BASE+3
BASE+4
BASE+5
BASE+6
BASE+7
BASE+8
BASE+9
BASE+10
BASE+11
BASE+12
BASE+13
BASE+14
BASE+15
Адресное пространство платы PCL-726
R/W
Использование
W
ЦА кан #1 данные старшего байта (биты 0 – 3)
W
ЦА кан #1 данные младшего байта
W
ЦА кан #2 данные старшего байта (биты 0 – 3)
W
ЦА кан #2 данные младшего байта
W
ЦА кан #3 данные старшего байта (биты 0 – 3)
W
ЦА кан #3 данные младшего байта
W
ЦА кан #4 данные старшего байта (биты 0 – 3)
W
ЦА кан #4 данные младшего байта
W
ЦА кан #5 данные старшего байта (биты 0 – 3)
W
ЦА кан #5 данные младшего байта
W
ЦА кан #6 данные старшего байта (биты 0 – 3)
W
ЦА кан #6 данные младшего байта
W
D/O ch 8-15
W
D/O ch 0-7
R
D/I ch 8-15
R
D/I ch 0-7
Методика программирования регистров цифро-аналогового вывода
Регистры ЦАП занимают адресное пространство от BASE+0 до BASE+11.
Формат выходных данных:
Base+0 (2,4,6,8,10)
D7
D6
D5
D4
D3
D2
D1
D/A #1 (2,3,4,5,6)
X
X
X
X
DA11 DA10 DA9
High byte
Base+1 (3,5,7,9,11)
D7
D6
D5
D4
D3
D2
D1
D/A #1 (2,3,4,5,6)
DA7 DA6 DA5 DA4 DA3 DA2 DA1
Low byte
D0
DA8
D0
DA0
Примечание: старший байт (High) должен записываться первым!
Пример фрагмента программы для вывода напряжения U=3В через ЦАП№1 в
режиме ±5В (биполярный режим).
Структурная схема управления движениями в токарном станке показана на
рис.9.4.
46
Рис.9.4. Структурная схема управления шпинделем и приводами подач
Порядок выполнения работы
1. Составить структурную схему управления шпинделем и приводами подач.
2. Составить алгоритм управления частотой вращения шпинделя.
3. Написать программу на языке Паскаль; отработать программу в режимах
изменения частоты вращения и направления вращения.
4. Повторить пункты 1 – 3 для управления движениями подач по осям Z
и/или X.
Примеры программ представлены в приложениях 6 и 9.
Контрольные вопросы
1. Что понимается под геометрической задачей ЧПУ?
2. Управление какими механизмами станка подразумевает геометрическая задача ЧПУ?
3. Какие платы используются для бесступенчатого регулирования частоты вращения двигателей?
4. Сколько ЦАП должно быть в токарном станке?
5.Сколько ЦАП должно быть во фрезерном станке?
47
Лабораторная работа №10
ИЗМЕРЕНИЕ ЧАСТОТЫ ВРАЩЕНИЯ ШПИНДЕЛЯ ТОКАРНОГО
СТАНКА С ИСПОЛЬЗОВАНИЕМ ПЛАТЫ СЧЕТЧИКОВ PCL-833
Цель работы
Изучить вопросы применения устройств аналогового и импульсного типа
для управления технологическим оборудованием от компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы счетчиков импульсных
сигналов PCL-833.
Теоретические положения
При наличии фотоимпульсного датчика частота вращения вала (шпинделя) может быть определена по формуле
,
(9.1)
где Z2, Z1 – показания ФИД, считанные с платы PCL-833;
t2, t1 – текущее время , считанное с таймера, с.
NZ – константа ФИД (1000, 2500 и т.д. импульсов на 1 оборот);
n частота вращения (об/с) или n1 = 60n (мин-1).
Для выполнения задачи необходимы платы PCL-725 (релейные элементы),
PCL-726 (6-канальная плата 12-ти разрядных ЦАП с выходными сигналами:
±5В и 0...5В) и PCL-833 – четырехкоординатный счетчик импульсов (Рис.10.1).
Рис.10.1. Структура измерительного комплекса
АД – асинхронный двигатель главного привода; ФИД
ТПЧ LG
датчик обратной связи;
тиристорный преобразователь частоты.
Порядок выполнения работы
Часть I: Определение частоты вращения в зависимости от кода ЦАП.
1. Составить структурную схему измерительного комплекса.
2. Составить алгоритм измерения частоты вращения шпинделя.
3. Разработать программу на языке Pascal, реализующую составленный алгоритм.
4. Задавая код от 0 до 4095 ( ZДОС = 1000 импульсов за 1 оборот) с определенным шагом, определить соответствующие частоты вращения шпинделя
5. Результаты измерений свести в таблицу 10.1.
Таблица 10.1
код
100
500
1000
1500
2000
2500
3000
3500
4000
4095
N, мин-1
6. Построить график зависимости вида n=f(Код ЦАП), вид которого показан
на рис.10.2.
7. Методом наименьших квадратов (МНК) аппроксимировать результаты
экспериментов уравнением прямой линии вида
n =A +b*Cod
(10.1)
49
Рис.10.2. Типовая зависимость частоты вращения шпинделя от кода ЦАП
Часть II: Реализация заданной частоты вращения.
1. Решить уравнение (10.1) относительно кода и получить уравнение вида
Cod=f(n)
(10.2)
2. Подставить уравнение (10.2) в ранее разработанную программу и сохранить еѐ как новую версию.
3. Запустить в работу версию 2, добиться изменения частоты вращения по
прямому запросу программы.
Примеры программ приведены в приложениях 7 и 8.
Контрольные вопросы
1. Какой датчик используется для фиксации угла поворота шпинделя?
2. Какая плата используется для приема сигналов датчика?
3. Как определяется временной интервал между измерениями?
4. Как называется метод аппроксимации экспериментальных данных?
50
Лабораторная работа №11
ИЗМЕРЕНИЕ МИНУТНОЙ И ОБОРОТНОЙ ПОДАЧИ
С ИСПОЛЬЗОВАНИЕМ ПЛАТЫ СЧЕТЧИКОВ PCL-833
Цель работы
Изучить вопросы применения устройств аналогового и импульсного типа
для управления технологическим оборудованием от компьютера IBM.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Turbo Pascal с использованием платы счетчиков импульсных
сигналов PCL-833.
Теоретические положения
Отличия от работы №10:
1. Структура измерительного комплекса показана на рис.11.1. Объект исследования – цепь подач по выбранной оси.
Рис.11.1. Измерение минутной и оборотной подачи
2.
3.
4.
5.
6.
ЦАП имеет другой адрес;
ЦАП программируется как знакопеременный (реверсивный);
Реле разрешает выбор подачи, а не направление вращения шпинделя;
Используется только одно реле по оси;
Необходим переход от частоты вращения к линейному перемещению по
формулам
- для подачи на 1 оборот шпинделя
;
- для минутной подачи
51
,
где TХВ – шаг ходового винта токарного станка (TХВ= 10 мм по оси Z и 5 мм по
оси X).
Порядок выполнения работы
Для написания программы за основу взять программу из лабораторной
работы №10 (Приложение 8).
Контрольные вопросы
1. В каких единицах измеряется подача на токарном и фрезерном станках?
2. Что необходимо учитывать, помимо скорости движения суппорта, для
определения принятой на токарных станках величины подачи?
3. Чем объяснить отличия в методах определения подачи в токарном и фрезерном станках?
52
Лабораторная работа №12
ИСПОЛЬЗОВАНИЕ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА
В ТЕРМИНАЛЬНОЙ ЗАДАЧЕ ЧПУ
Цель работы
Изучить вопросы эксплуатации стандартных устройств ЭВМ для управления технологическим оборудованием.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Интерфейс RS-232C предназначен для подключения к компьютеру стандартных внешних устройств (принтера, сканера, модема, мыши и др.), а также
для связи компьютеров между собой. Основными преимуществами использования RS-232C по сравнению с Centronics являются возможность передачи на
значительно большие расстояния и гораздо более простой соединительный кабель. В то же время работать с ним несколько сложнее. Данные в RS-232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в
другую сторону (дуплексный режим).
Теоретические положения
Последовательный интерфейс синхронной и асинхронной передачи данных определяется стандартом EIA RS-232-C и рекомендациями V.24 CCITT.
Компьютер имеет 25-контактный (DB25P) или 9-контактный (DB9P) разъем
для подключения RS-232C (Рис.12.1). Назначение контактов разъема приведено
в табл. 12.1. Последовательный интерфейс RS-232 был разработан более 40 лет
назад. Давно появились более современные интерфейсы, компьютерные (USB и
др.) и микроконтроллерные (CAN, ГС, SPI, RS485 и др.). которые по многим
параметрам (скорость и надежность обмена информацией, длина линии связи и
др.) превосходят интерфейс RS-232. Но до сих пор этот интерфейс не утратил
своего значения, активно и широко используется на практике.
Причина такой поразительной живучести высокая сбалансированность
и универсальность интерфейса RS-232. В этом интерфейсе сочетаются средняя
скорость обмена, среднее расстояние линии связи, средняя простота программирования, средняя надежность обмена информации и т.п.
Интерфейс RS-232 в сравнении с другими последовательными интерфейсами:
- значительно проигрывает USB в скорости и надежности обмена;
- выигрывает у USB по длине линии связи (15-20 м против 3 м);
- значительно выигрывает у USB по простоте программирования.
- проигрывает CAN и RS-485 по скорости и дальности линии связи
- выигрывает у CAN и RS-485 по простоте программирования:
53
- проигрывает 12С по скорости;
- выигрывает у 12С по дальности линии связи и простоте программирования:
- проигрывает SPI по скорости и простоте программирования:
- выигрывает у SPI по дальности линии связи.
Таблица 12.1
Порядок обмена по интерфейсу RS-232C
Наименование Направление
DCD
IN
RXD
IN
TXD
OUT
DTR
OUT
GND
-
DSR
IN
RTS
OUT
CTS
IN
RI
IN
Описание
Carrie Detect (Определение несущей)
Receive Data (Принимаемые данные)
Transmit Data (Передаваемые данные)
Data Terminal Ready
(Готовность терминала)
System Ground (Корпус системы)
Data Set Ready (Готовность данных)
Request to Send (Запрос на отправку)
Clear to Send (Готовность приема)
Ring Indicator (Индикатор)
Контакт
(25контактный
разъем)
Контакт
(9контактный
разъем)
8
1
3
2
2
3
20
4
7
5
6
6
4
7
5
8
22
9
Наиболее часто используются трех- или четырехпроводная связь (для двунаправленной передачи). Схема соединения для трехпроводной линии связи показана на рис. 12.2.
Для двухпроводной линии связи в случае только передачи из компьютера во
внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом.
54
Рис.12.1. Сигналы интерфейса RS232C на разъѐмах Com1 и Com2
Формат передаваемых данных показан на рис. 12.3. Собственно данные (5, 6,
7 или 8 бит) сопровождаются стартовым битом, битом четности и одним или
двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определѐнные интервалы времени. Очень важно, чтобы
тактовые частоты приемника и передатчика были одинаковыми, допустимое
расхождение - не более 10%). Скорость передачи по RS-232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200 бит/с.
Рис.12.2. Схема 4-проводной линии связи для RS-232C
Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис.12.4). Данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю высокий уровень).
55
Рис.12.3. Формат данных RS-232C
Обмен по RS-232C осуществляется с помощью обращений по специально
выделенным для этого портам COM1 (адреса 3F8h...3FFh, прерывание IRQ4),
COM2 (адреса 2F8h...2FFh, прерывание IRQ3), COM3 (адреса 3F8h...3EFh, прерывание IRQ10), COM4 (адреса 2E8h...2EFh, прерывание IRQ11). Форматы обращений по этим адресам можно найти в многочисленных описаниях микросхем контроллеров последовательного обмена UART (Universal Asynchronous
Receiver/Transmitter), например, i8250, КР580ВВ51.
Рис.12.4. Уровни сигналов RS-232C на передающем и принимающем концах линии связи
Изучение работы модуля последовательного интерфейса (МПИ) УЧПУ
«СФЕРА-36» для связи с ЭВМ верхнего ранга
МПИ имеет в своем составе четыре представленных в табл. 12.2 однотипных канала для подключения к ним устройств, реализующих обмен информацией с центральным процессором по протоколу последовательного интерфейса типа Стык С2 (RS-232C) .
56
Таблица 12.2
№ разъема
1
2
3
4
Устройство
Дисплей с клавиатурой
Дисковод
Выносной пульт
ЭВМ верхнего ранга (внешнее устройство)
Таблица 12.3
Распределение сигналов на разъѐме 4 «Внешнее устройство»
№ контакта
Наименование
сигнала
Обозначение сигнала
RxD
TxD
GND
1
Вход приѐмника
4
Выход передатчика
9,10,11,12,13,14 Общий
Код
сигнала
104
103
102
Понятие адреса в языке ARPS
В языке ARPS адрес внешнего устройства определяется как разность между
фактическим адресом и предельным значением адреса, принятым 2000008.
Тогда адрес RSKeyb определится как
_ 1775608
2000008
-2208
или – (2*64 +2*8 + 0) = -144.
Адреса устройств, участвующих в обмене информации, приведены в табл. 12.4.
Таблица 12.4
Адреса периферийных устройств МПИ
Наименование
Клавиатура
Регистр состояния
Регистр данных
Дисплей
Регистр состояния
Регистр данных
Приѐмник
Регистр состояния
Регистр данных
Передатчик
Регистр состояния
Регистр данных
Имя переменной
Адрес
Электроника -60
СФЕРА-36
RSKeyb
RDKeyb
1775608
1775628
-144
-142
RSD
RDD
1775648
1775668
-140
-138
RSInp
RDInp
1775508
1775528
-152
-150
RSOut
RDOut
1775548
1775568
-148
-146
57
Программное описание адресов в ARPS осуществляется оператором присваивания Set:
Set RSInp = - 152.
Set RDInp = - 150.
Set RSOut = - 148.
Set RDOut = - 146.
Оператор ввода из порта и вывода в порт имеют вид:
Set G = INGROUP RSInp.
OUTGROUP RDOut = Symbol.
Тогда ожидание события в режиме опроса готовности некоторого устройства
можно записать:
1 Set GInp = InGroup RSInp
If GInp Div 128 <> 1 Then Jump 1
Set Sym = Ingroup RDInp
2 Set GOut = Ingroup RSOut
If GOut Div 128 <> 1 Then Jump 2
OutGroupt RDOut = Sym
Программное обеспечение для RS232 IBM PC приведено в приложении 10.
Порядок выполнения работы
1. Работа с портами COM1 и COM2 ЭВМ IBM в режиме самотеста;
1.1. Вставить в соответствующий порт ЭВМ тестовую заглушку;
1.2. Запустить тестовую программу RS_samo.exe.
2. Работа с сом-портом УЧПУ «Сфера-36» в режиме самотеста.
2.1. Вставить в разъем «Внешнее устройство» УЧПУ тестовую заглушку;
2.2. На языке ARPS написать тестовую программу;
2.3. Запустить еѐ в работу и убедиться в работоспособности устройства.
3. Реализация терминальной задачи.
3.1. Подключить ЭВМ и УЧПУ специальным кабелем;
3.2. Запустить на ЭВМ программу RS_cont.exe;
3.3. Разработать на языке ARPS программу управления движениями робота с приемом директив через RS-порт и запустить еѐ;
3.4. Убедиться в выполнении роботом команд, подаваемый с ЭВМ.
Контрольные вопросы
1. Основные интерфейсы сопряжения, применяемые в терминальной задаче
ЧПУ?
2. Достоинства и недостатки интерфейса RS-232С.
3. Назовите порядок формирования адресов внешних устройств в языке ARPS.
4. Изобразите алгоритм обмена информацией между ЭВМ и УЧПУ «Сфера-36».
5. Какие возможности имеет интерфейс RS в УЧПУ «Сфера-36»?
58
Лабораторная работа №13 (а д)
ОСОБЕННОСТИ УПРАВЛЕНИЯ LPT-ПОРТОМ В СРЕДЕ DELPHI
Цель работы
Изучить вопросы применения среды программирования Delphi для
управления внешними устройствами посредством параллельного порта.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Работа выполняется на персональных компьютерах IBM PC в среде программирования Delphi с использованием интерфейса Centronics источника и
приемника дискретных сигналов с величиной напряжения 5 В.
Теоретические положения
Lpt-порт подробно рассмотрен в лабораторной работе №2. В данной работе показаны отличия в работе с этим портом, вызванные особенностями операционной системы Windows.
Управление регистрами
В компьютерах с операционными системами MS-DOS, Windows 9x возможен
доступ к портам непосредственно из самой операционной системы, тогда как в
системах с NT такой прямой доступ невозможен. Для этих целей используются
драйвера в виде библиотек (Inpout32.dll). Подключив соответствующие библиотеки к средам программирования, получаем возможность программно работать
с портами (считывание состояния порта или установка выводов порта в необходимое состояние)
Порядок выполнения работы
1. Лабораторная работа «Перебор от 0 до 5»
1.1. Создаем проект (Рис.13.1).
1.2. Сохраняем его.
1. 3. В папку, где сохранили файл, добавляем драйвер inpout32.dll.
1.4. В тело программы обязательно добавляем две функции:
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
59
Рис.13.1. Вид проекта
1.5. Добавляем на форму «Объект кнопка» ( TButton) и два объекта типа
(TEdit) (Рис.13.2):
Рис.13.2. Изменение формы
1.6. Создаем процедуру (по нажатию на кнопку):
procedure TForm1.Button1Click(Sender: TObject);
var g:integer;
1.7. Обьявляем переменные (Приложение 11, программа 1).
60
2. Лабораторная работа «Перебор от 5 до 0»
2.1. Создаем проект.
2.2. Сохраняем его.
2.3. В папку, где сохранили файл, добавляем драйвер inpout32.dll.
2.4. Добавляем две функции:
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
Добовляем на форму Объект типа кнопка( TButton) и два объекта типа
(TEdit)
2.6. Создаем процедуру (Приложение 11, программа 2).
3. Лабораторная работа «Перебор от 5 до 0» (второй вариант)
3.1. Создаем проект.
3.2. сохраняем его.
3.3. В папку, где сохранили, добавляем драйвер inpout32.dll.
3.4. Добавляем две функции:
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
3.5. Добовляем на форму Объект типа кнопка( TButton) и два объекта типа
(TEdit)
3.6. Создаем процедуру (Приложение 11. Программа 3).
4. Лабораторная работа (12_01_23_45):
4.1. Создаем проект.
4.2. Сохраняем его.
4.3. В папку, где сохранили, добавляем драйвер inpout32.dll.
4.4. Добавляем две функции:
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
4.5. Добовляем на форму Объект типа кнопка( TButton) и два объекта типа
(TEdit)
4.6. Создаем процедуру (Приложение 11. Программа 4)
5. Лабораторная работа (45_23_01_12):
5.1. Создаем проект.
5.2. Сохраняем его.
5.3. В папку, где сохранили, добавляем драйвер inpout32.dll.
5.4. Добавляем две функции:
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
5.5. Добовляем на форму Объект типа кнопка( TButton) и два объекта типа
(TEdit)
5.6. Создаем процедуру (Приложение 11, программа 5).
61
Контрольные вопросы
1. Особенности программирования управления внешними устройствами в среде
Windows?
2. Что такое библиотека драйверов?
3. Назовите основные процедуры ввода и вывода информации через Lpt-порт в
среде Delphi?
62
Лабораторная работа №14
ОСОБЕННОСТИ УПРАВЛЕНИЯ LPT-ПОРТОМ В СРЕДЕ MATLAB
Цель работы
Изучить вопросы применения MATLAB для управления внешними
устройствами посредством параллельного порта.
Метрологические данные измерительной техники, оргтехники и программного обеспечения
Параллельный порт (LPT) изначально предназначен для сопряжения с печатающими устройствами, но может быть использован для управления и контроля за сравнительно простыми механизмами или устройствами (шаговые
двигатели, световые табло, дискретное коммутирование внешней нагрузки и
т.п.). Появление современных высокоскоростных портов ввода-вывода, например USB, незаслуженно отодвинуло параллельный порт на последние позиции.
Тем не менее, возможностей LPT порта, в рамках прикладных задач, вполне достаточно, а подключение внешних устройств через простые «буферные» элементы практически напрямую к порту значительно снижает стоимостные показатели системы управления. Востребованность LPT порта подтверждается также наличием последнего даже в некоторых моделях ультрасовременных материнских плат. Среда визуального моделирования MATLAB хорошо зарекомендовала себя благодаря высокой эффективности вычислений и визуализации результатов. Для MATLAB и пакетов расширений доступны тысячи технических
изданий и методических пособий, однако большинство литературы описывает
систему команд и не указывает применение пакета в конкретных технических
задачах. Почти невозможно найти описание сопряжения MATLAB и периферийных портов компьютера, посредством которых возможно управление внешними устройствами.
Теоретические положения
Для инициализация параллельного порта в среде MATLAB, изначально в
системе ввода-вывода BIOS, необходимо задать двунаправленный режим работы ввода-вывода LPT порта. Необходима также установка оригинальных драйверов материнской платы. После этого необходимо в «диспетчере устройств»
убедиться в наличии параллельного порта (рис. 14.1) и в «параметрах порта»
назначить исполнение любых прерываний портом (рис. 14.2). После этого потребуется перезагрузка компьютера. Если эти условия выполнены, возможно
управление параллельным портом из MATLAB в любой операционной системе.
Следует отметить, что с помощью MATLAB возможно управление только
«оригинальным» LPT портом, внешние LPT порты, подключаемые через USB,
инициализированы не будут.
63
Рис. 14.1. Наличие LPT порта в диспетчере устройств
Для управления параллельным портом в MATLAB достаточно нескольких простых последовательно записанных команд, описанных далее:
daqhwinfo('parallel') возвращает структурную составляющую адаптера,
указанного в кавычках, в данном случае параллельного порта;
dio = digitalio('parallel', 'lpt1') – инициирует переменную dio с устройством ввода-вывода параллельного порта, после ввода этой команды будет указанно количество подпортов параллельного порта и их статус;
addline(dio, 0:7, 'out') – указывает число линий вывода (в данном случае вывод, если необходимо вводить информацию через порт обозначаем ввод данных через 'in', если необходимо вводить и выводить информацию, можно перечислить несколько вводных и выводных линий порта, например
аddline(dio,0:7,{'in','in','in','in','out','out','out','out'});
bvdata = logical([1 1 1 0 1 0 0 1]) – с помощью переменной bvdata обозначим двоичное слово для параллельного порта;
putvalue(dio,bvdata) – после выполнения данного оператора, на параллельном порте инициализируется двоичное слово, определенное переменной
bvdata;
portval = getvalue(dio) – оператор getvalue позволяет считать содержимое
LPT-порта и записать его в переменную portval.
64
Рис. 14.2. Назначение прерываний для параллельного порта
После выполнения указанных выше операторов в рабочей области
MATLAB появится следующая информация:
AdaptorDllName:'C:\Program
Files\MATLAB1\R2006a\toolbox\daq\daq\private\mwparallel.dll'
AdaptorDllVersion: '2.8.1 (R2006a)'
AdaptorName: 'parallel'
BoardNames: {'PC Parallel Port Hardware'}
InstalledBoardIds: {'LPT1'}
ObjectConstructorName: {'' '' 'digitalio('parallel','LPT1')'}
Display Summary of DigitalIO (DIO) Object Using 'PC Parallel Port Hardware'.
Port Parameters: Port 0 is port configurable for reading and writing.
Port 1 is port configurable for reading.
Port 2 is port configurable for reading and writing.
Engine status: Engine not required.
DIO object contains no lines.
Index: LineName: HwLine: Port: Direction:
1 'Pin2' 0 0 'Out'
2 'Pin3' 1 0 'Out'
65
3 'Pin4' 2 0 'Out'
4 'Pin5' 3 0 'Out'
5 'Pin6' 4 0 'Out'
6 'Pin7' 5 0 'Out'
7 'Pin8' 6 0 'Out'
8 'Pin9' 7 0 'Out'
bvdata = 1 1 1 0 1 0 0 1
portval = 1 1 1 0 1 0 0 1
Для выдачи на параллельный порт новой комбинации, достаточно только
изменить значение переменной bvdata и отправить значение последней с помощью оператора putvalue. При использовании современного компьютера возможно организовать до нескольких десятков тысяч обращений к параллельному
порту в секунду.
Порядок выполнения работы
1. Запустите среду MatLab.
2. Наберите программу в соответствии с заданием.
3. Убедитесь в правильной отработке алгоритма.
Примеры программ представлены в приложении 12.
Контрольные вопросы
1. Сравните методики программирования команд ввода-вывода через Lpt-порт
в различных программных средах.
2. Дайте объективную оценку возможностям и удобству работы с портом в различных программных средах.
3. Оцените области применения различных программных продуктов для управления Lpt-портом.
66
Рекомендуемая литература
1. Никифоров А.Д., Ковшов А.Н., Назаров Ю.Ф. Процессы управления объектами машиностроения: Уч. пособие для машиностроит. спец. вузов.М.: Высшая школа, 2001. – 455 с.
2. Бржозовский Б.М., Мартынов В.В., Схиртладзе А.Г. Управление системами и процессами: учебник. – Старый Оскол: ТНТ, 2010. – 296 с.
3. Управление системами и процессами в машиностроении: учебное пособие / В.К. Иванов, Т.К. Сиразетдинов. Йошкар-Ола: Марийский государственный технический университет, 2008. – 140 с.
4. Зориктуев В.Ц., Лютов А.Г. Управление процессами механообработки
деталей авиационных двигателей в условиях неопределенности. – М.:
Изд-во МАИ, 2003. – 120 с.
67
Приложение 1
Пример программ преобразования систем счисления
1. Преобразование десятичного числа в шестнадцатиричное
Uses CRT;
Var
D:LongInt;
M:Array [0..100] of Byte;
i,j:Integer;
BEGIN
ClrScr;{Чистка экрана}
Write('Введите десятичное число:');
ReadLn(D);
i:=0;
Repeat
M[i]:=D mod 16;
D:=D div 16;
Inc(i);
Until D=0;
For j:=i-1 downto 0 Do
Begin
Case M[j] of
0..9:Write(M[j]);
10..15:Write(Chr(M[j]+55));
End;
End;
Readln;
END.
2. Преобразование шестнадцатиричного числа в десятичное
Uses CRT;
Const
A=10; B=11; C=12; D=13; E=14; F=15;
Var
M:Array[0..100] of Integer;
i,k,S:Byte;
Dc:LongInt;
BEGIN
ClrScr;
Write('Система счисления (2->1; 8->3; 16 ->4)');
Readln(S);
68
S:=Trunc(Exp(S*Ln(2)));
Write('Сколько цифр в числе?');
ReadLn(k);
ClrScr;
Writeln('<<<< Ввод числа >>>>');
For i:=0 to k-1 Do
Begin
Write(i,'-й элемент массива->: ');
Readln(M[i]);
End;
Dc:=0;
For i:=0 to k-1 Do Dc:=Dc+M[i]*Round(Exp(i*Ln(S)));
Writeln('Результат :',Dc);
Readln;
END.
69
Приложение 2
Пример программ цифрового ввода-вывода посредством Lpt-порта
Программа, зажигающая диоды по три подряд через определѐнный промежуток времени.
Uses crt; Begin
Port[$37A]:=0;
Repeat
Рort[$378]:=7;
Delay( 10000);
Port[$378]:=56;
Delay( 10000);
Until keypressed;
End.
Определение номеров битов, соответствующих кнопкам 1 и 2.
Uses crt;
Begin
Repeat
Writeln(port[$379]);
Until keypressed;
End.
Программа, включающая лампочки при нажатии кнопок.
Uses crt;
Var
Date:byte;
Begin
Port[$37A]:=0;
Repeat
Date:=port[$379];
Case date of
63:port[$378]:=l;
255:port[$378]:=2;
191: begin
Port[$378]:=0;
Halt;
End;
End;
Until keypressed;
End.
70
Приложение 3
Пример программы цифрового самотеста платы NVL-01
uses crt;
const
BA=$308;
var
cl,c2:byte;
begin
Repeat
clrscr;
port[BA+3]:=$81;
c2:=0;
port[BA+2]:=c2;
cl:=port[BA+2];
Writeln(cl,' ',c2);
c2:=240;
port[BA+2]:=c2;
cl:=port[BA+2];
Writeln(cl,",c2);
delay(1000);
until keypressed;
end.
71
Приложение 4
Ввод показаний цифрового вольтметра В7-18 в ЭВМ
Uses CRT;
Const
Base=$308;
Var
A,B,d1,d2,d3,d4:Byte;
Procedure Init;
Begin
Port[$30B]:=$9A;
End;
Procedure Test_Got;
Var
Got:Byte;
Begin
Port[Base+2]:=1;
Repeat
Got:=(Port[Base+2] And 128) div 128 ;
GotoXY(1,1);
Writeln('Готовность = ',Got);
Until Got=1;
Delay(1000);
Port[Base+2]:=0;
End;
Procedure Input;
Begin
A:=Port[Base];
B:=Port[Base+1];
d1:=Trunc((B And 240)/16);
d2:=B and 15;
d3:=Trunc((A And 240)/16);
d4:=A and 15;
GotoXY(10,1);
Writeln;
Writeln;
Write('Показания прибора ===>',d1:2);
Write(d2:2,'.');
Writeln(d3:2,d4:2,' mV');
End;
BEGIN
ClrScr;
72
Init;
Port[Base+2]:=1;
Repeat
Test_Got;
Input;
Until KeyPressed;
END.
73
Приложение 5
Пример программы аналогового самотеста платы NVL-01
Uses CRT;
Const
CS1=$304;{К580ВВ55}
CS2=$30C;{Триггеры}
Var
Lo,Hi,Lo1,Hi1,i:Byte;
Cod,Ci:Word;
C:LongInt;
BEGIN
Port[CS1+3]:=$8A;{Инициализация ЦАП и АЦП}
Repeat
ClrScr;
Write('Введите код 1..1023; 0 - выход из программы ');
Readln(Cod);
Hi:=Cod Div 4;
Lo:=(Cod Mod 4)*4;
Port[CS1]:=Hi;
Port[CS2]:=Lo+1;{Готовимся к запуску АЦП}
{**************************** Установили ЦАП**************}
Repeat
Port[CS1+2]:=10;{0-й канал АЦП}
C:=0;
For i:=1 to 100 Do
Begin
Port[CS2]:=Lo+0;{Запуск АЦП}
Repeat Until Port[CS1+2] And 32 =0;{Ожидание готовности АЦП}
Lo1:=Port[CS1+1];
Hi1:=Port[CS1+2] shr 6;
Port[CS2]:=Lo+1;{Отмена запуска АЦП}
Ci:=Hi1*256+Lo1;
C:=C+Ci;
End;
C:=Round(C/100);
GotoXY(10,10);
Writeln('Послан код в ЦАП: ', Cod:4,' Принят код в АЦП: ',C:6);
Delay(2000);
Writeln('Для изменения кода ЦАП нажмите Esc ');
Until KeyPressed;
Until Cod=0;
END.
74
Приложение 6
Пример программы управления частотой вращения двигателя
Uses crt;
Const
ba726=$2c0;
ba725=$2A8;
Var
cod:word;
d:byte;
lo,hi:byte;
BEGIN
repeat
clrscr;
write('введите код (0...4096)');
readln(cod);
lo:=cod mod 256;
hi:=cod div 256;
write('по часовой стрелке CW - 1, против часовой стрелки CCW - 2');
readln(d);
port[ba726+4]:=hi;
port[ba726+5]:=lo;
port[ba725]:=d;
until cod=0;
port[ba726]:=0;
port[ba726+1]:=0;
port[ba725]:=0;
END.
75
Приложение 7
Пример программы измерения частоты вращения шпинделя
Uses CRT,DOS,upcl833; {Используется модуль upcl833.pas или upcl833.tpu}
Const
pcl725 = $2A8;
pcl726 = $2C0;
Var
S:Word;
Xt,Zt,N0,N1:LongInt;
a,b,c,d:word;
Sp, T0,T1:Real;
Procedure Spindel_On;
Begin
Port[pcl726+4]:=Round(S div 256);
Port[pcl726+5]:=Round(S mod 256);
Port[pcl725]:=1;
End;
Procedure Spindel_Off;
Begin
Port[pcl726+4]:=0;
Port[pcl726+5]:=0;
Port[pcl725]:=0;
End;
Procedure Counter;
Begin
GetTime(a,b,c,d);
T0:=b*60+c+d/100;
Read_Coord(xt,zt,N0);
N0:=Abs(N0-8388608);
GotoXY(20,10);
Delay(10000);
GetTime(a,b,c,d);
T1:=b*60+c+d/100;
Read_Coord(xt,zt,N1);
N1:=Abs(N1-8388608);
Sp:=(N1-N0)/1000/(T1-T0)*60;
Writeln(Sp:5:3, ' об/мин.');
End;
BEGIN
Repeat
ClrScr;
Write('Введите код (1..4095): ');
Readln(S);
76
Spindel_On;
Init;
ClrScr;
Repeat
Counter;
Until KeyPressed;
Until S=0;
Port[pcl726+4]:=0;
Port[pcl726+5]:=0;
Port[pcl725]:=0;
END.
77
Приложение 8
Реализация заданной частоты вращения
uses crt, upcl833_,dos;
Const
Base726=$2c0;
Base725=$2A8;
var
H,L:byte;
Cod, a,b,с,d:word;
Nl,n2,x,Z,n:longint;
tl,t2,w:real;
Begin
repeat
Write('Введите требуемую частоту вращения (0-1000 об/мин.) ');
Read(W);
cod:= trunc((w+5.40049)/0.2431);
H:= cod div 256;
L:= cod mod 256;
Port[Base726+4]:=H;
Port[Base726+5]:=L;
Port[Base725]:=l;
gettime(a,b,c,d);
tl:=b*60+c+d/100;
read_coord(x,z,n);
nl:=n;
delay(5000);
gettime(a,b,c,d);
t2:=b*60+c+d/100;
read_coord(X,z,n);
n2:=n;
78
w:=((nl-n2)/1000)/((t2-tl)/60);
writeln('Частота вращения:‘);
until (w=0) or (cod =0);
Port[Base726+4]:=0;
Port[Base726+5]:=0;
Port[Base725]:=0;
End.
79
Приложение 9
Пример программы управления величиной и направлением подачи
продольного суппорта токарного станка
uses crt;
const
ba726=$2c0;
ba725=$2A8;
var
cod:word;
d:byte;
lo,hi:byte;
Key:Char;
Procedure Read_Knob;
Begin
Key:=ReadKey;
If Ord(Key)=0 Then Key:=ReadKey;
End;
begin
repeat
ClrScr;
lo:=cod mod 256;
hi:=cod div 256;
write('нажмите кнопку "влево" или "вправо"');
Repeat Until KeyPressed;
Read_knob;
Case Ord(Key) of
75:Begin Cod:=2000;d:=4;End;
77:Begin Cod:=3000; d:=4; End;
End;
port[ba726]:=hi;
port[ba726+1]:=lo;
port[ba725]:=d;
until Ord(Key)=32;
port[ba726]:=8;
port[ba726+1]:=0;
port[ba725]:=0;
end.
80
Приложение 10
Пример программы обмена информацией между ЭВМ IBM PC и УЧПУ
«Сфера-36» по интерфейсу RS-232C
Программа для УЧПУ «Сфера-36»
1.
SET RSK = -144
2.
SET RDK = -142
3.
SET RDD = -138
4.
SET RDPM = -150
5.
SET RDPD = -146
6.
SETRSPM = -152
7.
SETRSPD = -148
8.
10
CALL CLRSCR
9.
CALL CLRSCR
10. PRINT ‗INPUT ----> 1‘
11. PRINT ‗OUTPUT ----> 2‘
12. 11
SET RS = INGRIUP RSK AND 128
13. IF RS <> 128 THEN JUMP 11
14. SET REG = INGROUP RDK AND 127
15. IF REG < 49 THEN JUMP 10
16. IF REG > 50 THEN JUMP 10
17. IF REG = 49 THEN JUMP 201
18. 101 CALL CLRSCR
19. CALL CLRSCR
20. PRINT ‗PRESS ANY KEY TO CONTINUE, PLEASE ...‘
21. PRINT ‗KEY ―SPACE -> EXIT‖‘
22. 1
IF INGROUP RSK < 128 THEN JUMP 1
23. SET KEY = INGROUP RDK
24. PRINT ‗‘, KEY
25. OUTGROUP RDD = KEY
26. OUTGROUP RDPD = KEY AND 127
27. JUMP 301
28. 201 CALL CLRSCR
29. CALL CLRSCR
30. 3
SET RS = INGROUP RSPM AND 128
31. IF RS <> 128 THEN JUMP 3
32. SET COD = INGROUP RDPM AND 255
33. PRINT ‗‘, COD
34. OUTGROUP RDD = COD
35. SET KEY = COD
36. DELAY 3.00
37. 301 IF KEY <> 160 THEN JUMP 10
81
Процедура CLRSCR :
1.
SET RDD = -138
2.
OUTGROUP RDD = 12
3.
OUTGROUP RDD = 12
4.
RETURN
Программа для ЭВМ IBM PC.
Uses Crt;
Var
Base_COM1:Word absolute $40:0; { Базовый адрес COM1 порта }
Base_COM2:Word absolute $40:2; { Базовый адрес COM2 порта }
Base,Com,Status,Err,Reg:Word;
Gd,Gm:Integer;
Key:Char;
Napr:Byte;
procedure InitCOM;
begin
port[Base+3]:=$80;
{ Регистр управления линией : DLAB = 1 }
port[Base]:=$0C; { Скорость обмена }
port[Base+1]:=0; { 9600 бод }
port[Base+3]:=$07;
{ 00000111
}
{
^^- длина слова 8 бит}
{ ^---- 1 бит останова
}
{ ^^------ нечет
}
{ ^----------- DLAB := 0
}
port [Base+1]:=0;
{ Запретить прерывания }
end; { of InitCOM }
Procedure Test_Status;
Begin
Status:=port[Base+5];
{ Получить байт статуса }
If Status and $1E <> 0 Then writeln ('** Ошибка связи **');
End;
Procedure Port_Select;
Begin
ClrScr;
Repeat
Writeln('Активный порт :<COM1> - 1');
Writeln('
<COM2> - 2');
Key:=ReadKey;
82
Until Key in ['1'..'2'];
Val(Key,Com,Err);
Case Com Of
1:Base:=Base_COM1;
2:Base:=Base_COM2;
End;
ClrScr;
End;
Procedure Input;
Begin
Repeat
Test_Status;
If Status and 1 = 1 then Napr:=Port[base]; { Если байт получен }
Until (Napr=0) Or KeyPressed;
End;
Procedure Output;
Begin
Test_Status;
if (Status and $40 <> 0)
{ Если регистр передатчика пуст }
and keypressed then
{ и клавиша нажата }
Begin
Key:=ReadKey;
If Key=#0 Then Key:=ReadKey;
If Ord(Key) In [27,32,72,73,75,77,80,81] Then
Begin
Port[Base]:=Ord(Key); { то передать ее код в линию }
GotoXY(1,3);
Write(Ord(Key),' ',Key);
End;
End;
End;
BEGIN
Port_Select;
InitCOM;
{ Инициализация COM порта }
GoToXY(20,1);
Writeln('*** Обмен с порта COM',Com,' ***');
Repeat
OutPut;
Input;
Until Key=#27;
END.
83
Приложение 11
Пример программ цифрового ввода-вывода посредством
Lpt-порта в среде Delphi
Программа 1
procedure TForm1.Button1Click(Sender: TObject);
var g:integer;
k,f,time:integer;
a:array[0..10] of real;
begin
f:=strtoint(Edit2.Text); //Сохраняем значение поля Edit2 в переменной f
time:=strtoint(Edit1.text); //Сохраняем значение поля Edit1 в переменной time
Out32($378, 0);
//Обнуляем регистр Data
Out32($37a,0);
for k:=1 to f do //Определяет количество циклов
begin
a[0]:=Exp(0*Ln(2));//Значение определяющие первый диод 1(00000001)
g:=round(a[0]);//Округление чисел с плавающей запятой до целого числа
Out32($378,g);//В регистр Data запишеться число 1(00000001)
sleep(time);//Задержка на заданное врямя
Out32($378,0); //Обнуляем регистр Data
a[0]:=Exp(1*Ln(2));//Значение определяющие второй диод 2(00000010)
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(2*Ln(2)); //Значение определяющие третий диод 4(00000100)
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(3*Ln(2)); //Значение определяющие четвертый диод 8(00001000)
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(4*Ln(2)); //Значение определяющие пятый диод 16(00010000)
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(5*Ln(2)); //Значение определяющие шестой диод 32(00100000)
g:=round(a[0]);
84
Out32($378,g);
sleep(time);
Out32($378,0);
end;
end;
Программа 2
procedure TForm1.Button1Click(Sender: TObject);
var g:integer;
k,f,time:integer;
a:array[0..10] of real;
begin
f:=strtoint(Edit2.Text);
time:=strtoint(Edit1.text);
Out32($378, 0);
Out32($37a,0);
for k:=1 to f do
begin
a[0]:=Exp(5*Ln(2));
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(4*Ln(2));
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(3*Ln(2));
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(2*Ln(2));
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(1*Ln(2));
85
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(0*Ln(2));
g:=round(a[0]);
Out32($378,g);
sleep(time);
Out32($378,0);
end;
end;
Программа 3
procedure TForm1.Button1Click(Sender: TObject);
var i:real;
g:integer;
k,f,time:integer;
a:array[0..10] of real;
begin
f:=strtoint(Edit2.Text);
time:=strtoint(Edit1.text);
Out32($378, 0);
Out32($37a,0);
for k:=1 to f do
begin
sleep(time);
a[0]:=Exp(0*Ln(2));
a[1]:=Exp(1*Ln(2));
a[2]:=Exp(2*Ln(2));
a[3]:=Exp(3*Ln(2));
a[4]:=Exp(4*Ln(2));
a[5]:=Exp(5*Ln(2));
i:=a[0]+a[1]+a[2]+a[3]+a[4]+a[5];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
end;
end;
Программа 4
86
procedure TForm1.Button1Click(Sender: TObject);
var i:real;
g:integer;
k,f,time:integer;
a:array[0..10] of real;
begin
f:=strtoint(Edit2.Text);
time:=strtoint(Edit1.text);
Out32($378, 0);
Out32($37a,0);
for k:=1 to f do
begin
a[0]:=Exp(1*Ln(2));
a[1]:=Exp(2*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(0*Ln(2));
a[1]:=Exp(1*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(2*Ln(2));
a[1]:=Exp(3*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(4*Ln(2));
a[1]:=Exp(5*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
end;
87
end;
Программа 5
procedure TForm1.Button1Click(Sender: TObject);
var i:real;
g:integer;
k,f,time:integer;
a:array[0..10] of real;
begin
f:=strtoint(Edit2.Text);
time:=strtoint(Edit1.text);
Out32($378, 0);
Out32($37a,0);
for k:=1 to f do
begin
a[0]:=Exp(4*Ln(2));
a[1]:=Exp(5*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(2*Ln(2));
a[1]:=Exp(3*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(0*Ln(2));
a[1]:=Exp(1*Ln(2));
i:=a[0]+a[1];
g:=round(i);
Out32($378,g);
sleep(time);
Out32($378,0);
a[0]:=Exp(1*Ln(2));
a[1]:=Exp(2*Ln(2));
i:=a[0]+a[1];
g:=round(i);
88
Out32($378,g);
sleep(time);
Out32($378,0);
end;
end;
89
Приложение 12
Пример программ цифрового ввода-вывода посредством Lpt-порта
в среде MatLab
Задача: составить программу в среде MatLab, позволяющую отправлять
на исполнительное устройство ( светодиоды, подключенные к шине данных
LPT порта) сигнал, имитирующий бегущие огни.
Решение:
1. Инициализируем порт в среде MatLab:
daqhwinfo('parallel')
2. Создадим две линии ввода-вывода:
DIO1 = digitalio('parallel','LPT1');
DIO2 = digitalio('parallel','LPT1');
3. Ассоциируем эти линии с регистром данных и регистром управления соответственно и зададим направление передачи данных:
outreg = addline(DIO1, 0:7, 0, 'out');
inreg = addline(DIO2, 0:3, 2, 'out');
4. Создадим цикл While для непрерывности процесса и цикл For для последовательного перебора битов в регистре данных:
putvalue(inreg,0);
i = 0;
while i <100 ;
for n = 0:1:7;
putvalue(outreg,2^n);
pause(1);
end;
i = i + 1;
end;
Готовая программа выглядит следующим образом:
daqhwinfo('parallel')
DIO1 = digitalio('parallel','LPT1');
DIO2 = digitalio('parallel','LPT1');
outreg = addline(DIO1, 0:7, 0, 'out');
inreg = addline(DIO2, 0:3, 2, 'out');
putvalue(inreg,0);
i = 0;
while i <100 ;
for n = 0:1:7;
putvalue(outreg,2^n);
pause(1);
end;
i = i + 1;
end;
90
Download