Название: Автоматизация промышленных установок - Методические указания (Д.Я. Гринкевич)

Жанр: Технические

Просмотров: 1530


Введение

Настоящие методические указания предназначены для выполнения лабораторных работ по курсам «Автоматизация промышленных установок» и «Автоматизация типовых технологических процессов» студентов ЭМФ, обучающихся по специальностям 180400 – «Электропривод и автоматизация промышленных установок» и  220100 – «Автоматизация технологических процессов и производств», а также студентов ФАМ (специальность 210200).

Структурно методические указания состоят из двух частей. Первая часть посвящена основным принципам построения современных систем автоматического управления на базе электропривода и ЭВМ, которые, по сути, являются системами с числовым программным управлением (ЧПУ). Здесь приведены сведения, необходимые для выполнения лабораторных работ. Они охватывают вопросы организации интерфейса между электроприводом и ЭВМ на примере, использующемся в лабораторных работах. Рассмотрены принципы измерения величин, их преобразования, а также приведены основные сведения об используемом программном обеспечении.

Вторая часть представляет собой собственно методические указания и состоит из четырех лабораторных работ, три из которых посвящены программному управлению асинхронным электроприводом «Размер – 2М –5 –2».

Четвертая лабораторная работа посвящена исследованию характеристик электропривода постоянного тока на базе типового комплектного преобразователя с широтно-импульсным регулированием «ЭШИР – 1 – А» и выполняется только студентами специальности 180400. Эта лабораторная работа может быть использована также в курсе «Типовые комплектные электропривода» специальности 180400.

Там, где это специально не оговорено, задание считается общим для студентов разных специальностей. Разделы, набранные мелким шрифтом, являются необязательными для изучения. Предполагается, что студент должен быть знаком с данным материалом на основании других курсов. В случае, если данный материал вызывает затруднения, необходимо повторить соответствующие разделы.

В приложения вынесены технические данные двигателей, использованных для проведения лабораторных работ, а также методологии расчетов, необходимые при выполнении этих работ.

Методические указания являются переизданием работы [1]. Это вызвано, прежде всего, заменой аппаратной и программной части лабораторного стенда на базе асинхронного электропривода «Размер – 2М –5 –2». Тем не менее, эту литературу, а также [2, 3] следует рекомендовать для углубленного изучения предлагаемого материала.

Программное управление

электроприводом

«Размер – 2М –5 –2»

Общие положения

А) Комплектный асинхронный

 глубокорегулируемый электропривод 

«Размер 2М – 5 – 2»

Электропривод используется в станках с ЧПУ для управления электродвигателями подач и обеспечивает работу во всех четырех квадрантах механической характеристики. Электропривод реализован в соответствии с частотно-токовым принципом управления. Электропривод выполнен по схеме подчиненного регулирования с контурами регулирования фазных токов и скорости. Третий контур регулирования – контур положения – замыкается через устройство числового программного управления (УЧПУ), в роли которого в данном случае выступает ЭВМ.

Частота скольжения  в асинхронном двигателе (АД) выполняет функцию разложения фазного тока на составляющие. Частота приложенного напряжения к статору (частота тока статора)  разлагается на две составляющие:

                                                  .

Здесь  – частота пропорциональная скорости вращения двигателя.

Если обеспечить режим работы АД, при котором частота тока в роторе будет всегда в квазиустановившемся режиме соответствовать частоте скольжения , будет довольно низкой, тогда индуктивным сопротивлением ротора  можно пренебречь. И в соответствии со схемой замещения АД (рис. 1,а) векторная диаграмма для токов имеет вид, показанный на рис. 1,б.

 

 

 

а

б

Рис.1

 

Можно показать, что тангенс угла  пропорционален частоте скольжения и обратно пропорционален активному сопротивлению ротора, а именно:

                                                   .

Поэтому, задавая частоту скольжения при известном  , можно задать угол .

При частотно-токовом способе управления АД сигнал управления формирует момент на валу двигателя. Механические характеристики привода в этом случае являются абсолютно мягкими. Поэтому для устойчивой работы электропривода обязательным является наличие отрицательной обратной связи по скорости вращения с соответствующим регулятором скорости РС. (Для расчета РС можно воспользоваться методикой, изложенной в приложении 3. Параметры для расчета при этом должны быть определены в соответствии с приложением 2 на основании исходных данных приложения 1.)

Функциональная схема одного канала двухкоординатного ЭП подачи «Размер 2М – 5 – 2» приведена на рис. 2.

Регулятор скорости предназначен для формирования сигналов задания токов фаз А и В (сигнал задания на ток фазы С вычисляется). РС выполнен по схеме ПИ-регулятора. Синусоидальные сигналы, пропорциональные заданию токов в фазах А и В, сравниваются с сигналами с датчиков фазных токов и поступают на регуляторы токов двигателя, которые вырабатывают сигналы управления трехфазным инвертором напряжения. К инвертору подключен асинхронный двигатель [4]. Сигнал датчика

 

 

Рис. 2

 

 

температуры двигателя используется для коррекции коэффициента пропорциональности между сигналом задания момента и величиной частоты скольжения. Более подробно с глубокорегулируемым асинхронным электроприводом «Размер 2М – 5 – 2» можно ознакомится в [3] и лекционном курсе. Технические данные асинхронного двигателя приведены в приложении 1.

В данном электроприводе, как уже отмечалось, реализован частотно-токовый принцип управления (ЧТУ), который находит применение в системах с высокими требованиями к диапазону регулирования и качеству переходных процессов.

Принцип частотно-токового управления (ЧТУ) формулируется следующим образом: при частотно-токовом управлении АД в обмотках фаз статора формируется трехфазная система синусоидальных токов, амплитуда, частота и фаза которых зависят от требуемых значений момента двигателя, частоты вращения (или положения ротора), потокосцепления ротора.

Главным требованием при построении системы ЧТУ является питание двигателя от быстродействующих источников тока, что возможно лишь при организации быстродействующих контуров регулирования фазных токов.

Построение такого контура в электроприводе «Размер» для одной фазы представлено на рис. 3.

 

Вставить рисунок

 

Рис.3

 

В цепи обратной связи по току находится фильтр, постоянная времени которого определяет частоту коммутации силовых ключей транзисторного инвертора. Действительно, если воспользоваться методом гармонической линеаризации для предложенного контура, то частота автоколебаний составит:

.                                            (1)

Для того чтобы частота в контуре регулирования тока была постоянной (при этом преобразователь будет работать в режиме ШИМ), необходимо выбирать постоянную времени фильтра из условия ():

                                                   .

Тогда выражение (1) сводится к:

.                                                    (2)

Частота автоколебаний в ЭП «Размер 2М – 5 – 2»:

.

Это означает, что выбором постоянной времени фильтра определяется частота в контуре регулирования тока.

Б) Описание лабораторной установки

Функциональная схема лабораторного стенда показана на рис. 4, где обозначено: БП – блок питания; ПН – пульт наладочный; ЦАП – цифроаналоговый преобразователь (модуль интерфейса – МИ); М1, М2 – асинхронные электродвигатели подачи по координатам X и Z соответственно; BS – встроенные датчики положения; SA1 – переключатель «пульт – ЦАП» на передней панели лабораторного стенда; QF1 – автоматический выключатель.

В лабораторном стенде предусмотрено управление ЭП от наладочного пульта для проверки функционирования комплектного электропривода.

Кроме этого управление скоростью и положением обеих координат комплектного ЭП может осуществляться программно от компьютера (ЭВМ) типа IBM PC 486, 33 МГц. Связь компьютера с комплектным ЭП «Размер 2М – 5 – 2» осуществляется через последовательный порт COM2 (Db25) по интерфейсу RS232 с помощью модуля интерфейса, основным элементом которого является ЦАП, преобразующий цифровой сигнал от ЭВМ в аналоговый сигнал задания на скорость.

Рис.4

Модуль интерфейса RS232

Интерфейсный стандарт RS232 ориентирован на использование источника сигнального напряжения, который расположен со стороны передатчика. Логические сигналы представляются следующим образом:

 1 – отрицательное напряжение   (в диапазоне –3….–25 В),

 0 – положительное напряжение (в диапазоне +3….+25 В).

 Стандарт предполагает применение 25-контактного разъема, причем назначение каждого контакта также определено стандартом. В табл. 1 приведено назначение контактов в соответствии со стандартом RS232.

Модуль интерфейса (далее модуль) предназначен для подключения устройства управления электроприводом «Размер 2М-5-2»  к  персональному компьютеру (ПК). 

Основные технические характеристики

                1. Аналоговых выходов                                     2

                2. Частотных входов                                                           2

                3. Диапазон аналоговых выходных сигналов               -10… +10 В

                4. Амплитуда частотного сигнала                  5…12 В

                5. Разрядность ЦАП                                                           12

                6. Входное сопротивление                                                >100 кОм

7. Интерфейс                                                                    RS232

 

Таблица 1

Номера

 контактов

Описание функций

1

2

3

4

5

6

7

8

9, 10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Экран

Данные передатчика

Данные приемника

Запрос на посылку

Разрешение посылки

Готовность набора данных

«Земля» сигналов

Указатель сигнала на линии данных приемника

Контрольные точки

Вторичная линия приемника

Указатель сигнала

Вторичная линия разрешения посылки

Сигнал передачи

Тактирование

Вторичная линия данных приемника

Элемент сигнала приемника

Готовность терминала данных

Указание качества сигнала

Кольцевой указатель

Выбор скорости передачи сигналов данных

Элемент сигнала передатчика

 

Управление интерфейсным модулем

Управления модулем осуществляется по последовательному каналу.

Используются только сигналы RxD (вход приемника), TxD (выход передатчика). Скорость 115200 бит/с, 8N1. Формат данных следующий:

слово управления:

D7

D6

D5

D4

D3

D2

D1

D0

1

1

C1_EN

C0_EN

0

0

0

0

D7, D6  – признак слова управления должны быть равны 1

D5         – разрешает работу счетчика 1

D4         – разрешает работу счетчика 0

D3...D0 – не используются должны быть равны 0

Данные ЦАП

1-й байт:

D7

D6

D5

D4

D3

D2

D1

D0

№DAC

0

0

0

N11

N10

N9

N8

D7 – номер ЦАП (для координаты X: №DAC=0, для координаты Z: №DAC=1)

D6…D4 – не используются должны быть равны 0

D3…D0 – старшие 4 бита данных ЦАП

2-й байт:

D7

D6

D5

D4

D3

D2

D1

D0

N7

N6

N5

N4

N3

N2

N1

N0

D7…D0 –  младшие 8 бит данных ЦАП

000Н  – -10 в. FFFH  – +10 в.

например

08H , 00H  установить на выходе OUT0 0 В.

8FH , FFH установить на выходе OUT1 10 В.

Если работа счетчиков разрешена соответствующими битами, то каждые 5 мс модуль передает количество импульсов поступивших на частотные входы. Для перевода в герцы нужно умножить на 200. Если включены оба счетчика, то сначала передаются данные 0-го, затем  1-го.

Основные операторы, функции и процедуры языка Pascal

Плата интерфейса допускает программирование последовательного порта с помощью любого языка программирования, имеющего способы обращения к внешним устройствам. При проведении лабораторных работ предполагается использование языка программирования Pascal.

В ходе выполнения лабораторных работ наиболее часто применяемыми операторами являются операторы цикла, условный и составной оператор, операторы выбора, а также процедуры и функции языка Pascal. Не претендуя на полноту изложения (с целью полного ознакомления с данным языком программирования можно рекомендовать, например [5, 6]), приведем в этом разделе синтаксис основных операторов и приведем основные команды версии Turbo Pascal 7.0.

Операторы цикла

С постусловием:

 while условие do оператор;

Оператор выполняется до тех пор, пока остается верным условие цикла. Как только значение условия становится ложным, цикл перестает выполняться. Если значение условия ложно перед первым выполнением цикла, то цикл не выполняется ни разу. Для выхода из цикла внутри него должно производиться изменение переменной, контролируемой в условии.

С предусловием:

repeat оператор until условие;

Оператор выполняется до тех пор, пока не станет истинным условие цикла. Как только значение условия становится истинным, цикл перестает выполняться. Если значение условия ложно перед первым выполнением цикла, то цикл выполняется один раз. Для выхода из цикла внутри него должно производиться изменение переменной, контролируемой в условии.

С параметром:

for I:=N to Z do оператор;   (N<Z)  Либо

for I:=Z downto N do оператор;

I – параметр цикла (целое число).

Цикл выполняется столько раз, сколько это необходимо (Z-N раз). Максимальное число количества циклов в рассматриваемой версии Turbo Pascal 7.0 равно 32570.

Во всех операторах цикла в качестве оператора может использоваться (и чаще всего используется) составной оператор.

Составной оператор

begin оператор1; оператор2; и т.д. end;

Составной оператор используется для записи сложных команд (состоящих более чем из одного действия) и в обязательном порядке употребляется после зарезервированных слов do, then, else и др., если требуется выполнить действие состоящее более чем из одного оператора. В некотором смысле вся программа на языке Pascal является составным оператором. При использовании составного оператора необходимо помнить, что количество begin и end должно совпадать (за исключением end, закрывающих оператор выбора).

Условный оператор

Полная форма:

if  условие then оператор1 else оператор2;

Если условие выполнено, то выполняется оператор1, иначе выполняется оператор2.

Сокращенная форма:

if  условие then оператор;

Если условие выполнено, то выполняется оператор, иначе программа переходит к выполнению последующих операторов.

В условном операторе в качестве оператора1 и/или оператора2 может использоваться составной оператор.

Оператор выбора

Case индекс выбора of

1: оператор1;

2: оператор2;

.

n: оператор n;

end

Индекс выбора в данном случае должен быть целым числом в пределах от 1 до n. В качестве операторов может использоваться составной оператор.

Процедуры

Основным средством по организации подпрограмм в Pascal является процедура.

Ниже приведены структуры программы на Pascal и ход ее выполнения при отсутствии и наличии в ней процедуры.

program имя;

{Раздел описания}

const a=1;

var x,y:real;

      i,j:integer;

label 1,2;

{Основная программа}

begin

{Тело программы}

end.

program имя;

{Раздел описания}

const a=1;

var x,y:real;

      i,j:integer;

label 1,2;

procedure имя;

{Раздел описания процедуры}

begin

{Тело процедуры}

end;

{Основная программа}

begin

{Тело программы 1}

Обращение к процедуре

{Тело программы 2}

end.

 

Из данного примера видно, что процедура является фактически самостоятельной программой со своим описательным разделом. Переменные, которые описаны в нем, называются локальными, в отличие от глобальных переменных (в данном случае x, y, i, j), и используются только в рамках процедуры. Вызов процедуры в теле программы осуществляется простым упоминанием ее имени и нарушает построковое выполнение программы. Процедуры следует рекомендовать к использованию в том случае, если в нескольких (многих) местах программы часто требуется выполнять одну и ту же последовательность действий.

Функции

Частный (наиболее простой) случай процедуры. Функция – процедура, вычисляющая только одно значение. Два отличия от процедуры: 1) должен быть указан тип результата; 2) в теле функции непременно должен присутствовать оператор присваивания, в левой части которого стоит идентификатор этой функции.

Синтаксис:

function имя(x,y:real, i,j:integer):real;

{Раздел описания функции}

begin

{Тело функции}

end;

Типы переменных в рассмотренном примере могут быть и другими, однако необходимо помнить о правилах преобразования типов.

Некоторые стандартные функции языка Pascal:

SQR(X)=, SQRТ(X)=, 13DIV3=4 {целое}, 13MOD3=1 {остаток}, TRUNC(17.9)=17 {округление до целого}, ROUND(17.9)=18 {округление до ближайшего целого}, ODD(5)=TRUE, но ODD(5)=FALSE {контроль нечетности}.

В заключение приведем основные команды версии Turbo Pascal 7.0 и сочетание клавиш для них:

компиляция (COMP) – Alt-F9;

пошаговая отладка (STEP) – F8;

запуск программы (RUN) – Ctrl-F9;

останов программы (BREAK) – Ctrl-Pause.

Сообщение о синтаксических ошибках выдается в версии Turbo Pascal 7.0 автоматически на английском языке.

Основные положения,

 необходимые для выполнения лабораторных работ

 Для выполнения лабораторных работ необходимо владеть следующей базовой информацией о работе с модулем интерфейса.

1. Так как ЦАП – двенадцатиразрядный, то:

Минимальному напряжению – 10 В соответствует шестнадцатеричное число 0;

Максимальному напряжению +10 В соответствует шестнадцатеричное число FFF ().

Все остальные (промежуточные) значения могут быть вычислены из простейшей пропорции, например: , , ,  .

Последнее означает, что нулевое напряжение на входе «Размер 2М – 5 –2» может быть сформировано при подаче в ЦАП шестнадцатеричного числа: 7FF ().

2. Период переполнения ЦАП:

,

где:  – скорость передачи данных;

 *=10.

3. Для работы без сигнала обратной связи по положению необходимо использовать стандартные процедуры инициализации порта (init_com), вывода байта (out_byte) и вывода данных (out_data), которые описаны ниже на примере программы, формирующей синусоидальный сигнал (приложение 4).

Процедура инициализации порта init_com необходима для настройки выбранного последовательного COM-порта. Под переменной bas_adr понимается базовый адрес того или иного COM-порта, которых в современном компьютере может быть 4. В конкретном случае, реализованном в лабораторном стенде, выбран COM2, базовый адрес которого 2f8. Соответственно головная программа обязательно начинается с обращения к данной процедуре init_com(2). Далее в процедуре производится настройка формата посылки: скорость передачи данных 115200 бит/с, передача по 8 бит, контроля четности нет, один стоповый бит. Эти установки являются обязательными, начинаются со строки port[bas_adr+1]:=0 и заканчиваются в конце процедуры (см. приложение 4).

Процедура выдачи одного байта в COM-порт out_byte (см. приложение 4) необходима для проверки готовности COM-порта к передачи данных. С этой целью анализируется регистр состояния COM-порта по адресу 2f9. Регистр приемника готов принять данные только в том случае, если пятый бит регистра состояния выставлен в единицу (см. модуль интерфейса). Именно это условие проверяется в данной процедуре. Таким образом, выдача данных в порт осуществляется только при полной готовности приемника.

Процедура выдачи данных в порт out_data оперирует двумя переменными – это собственно данные (data) и номер ЦАП (dac), по которому следует передавать данные. Фактически переменная dac определяет по какой из координат X или Z следует работать ЭП. В частности, для лабораторного стенда № 6:

№ dac=0  координата Z;

№ dac=1  координата X.

Для лабораторного стенда № 8 наоборот.

В дальнейшем в рассматриваемой процедуре происходит выделение старшего и младшего байта, причем номер ЦАП записывается в старший бит.

Описанные процедуры следует понимать, однако, их написание не требуется в ходе лабораторных работ, они могут быть взяты, например, из файла задания синусоиды.

4. Собственно для задания синусоидального сигнала служит строчка:

z:=$7ff*sin(0.0011*t)+$7ff;

Необходимо понимать, что величина $7ff добавлена для смещения синусоиды таким образом, чтобы колебания происходили относительно нуля. Величина $7ff перед синусоидой задает максимально возможную амплитуду сигнала, а величина 0.0011 соответствует частоте 1 Гц. Для снятия частотных характеристик необходимо менять как частоту, так, зачастую, и амплитуду сигнала. В этих условиях следовало бы рекомендовать запись данной строки в форме:

z:=$7ff*sin(0.0011*k*t)/k1+$7ff;

Коэффициент k  в этом случае должен принимать значения 10, 20, 50, 80, 100 для получения частоты соответственно 10, 20, 50, 80 и 100 Гц, а k1 следует менять от 1 до 1.75 с целью уменьшения амплитуды сигнала, для обеспечения линейности САУ при снятии АЧХ.

5. Так как исследуемый интерфейс является интерфейсом асинхронным, последовательного типа, то задание временных интервалов возможно лишь за счет формирования «пустых» циклов, обеспечивающих задержку выдачи сигнала в порт. Такой подход иллюстрирует приложение 5. Прежде всего необходимо отметить, что в данной программе пропущены три процедуры, которые полностью аналогичны программе приложения 4.

Для пояснения работы программы воспользуемся фрагментом:

for i:=$7ff to $fff do

begin

for j:=0 to 10000 do

begin d:=0; end;

out_data(i,0);

end;

Необходимо понимать, что в порт (т.е. на ЭП) выдается переменная i (кстати, по координате Z, о чем говорит 0 в процедуре out_data). Эта переменная i в соответствии с заданной тахограммой должна меняться от 0 до 10 В, т. е. от 7ff до fff. Если делать это напрямую, то через 0.71c (см. п. 2) наступит переполнение ЦАП. Для задержки вывода сигнала используется «пустой» цикл по переменной j, в котором переменной d присваивается значение 0. Смысл такого цикла в том, что для выдачи следующего i в порт машина должна совершить 10000 циклов по j, это естественно замедляет работу программы и тормозит темп выдачи задания в порт. Экспериментальным путем установлено, что для задания темпа с коэффициентом 0.1 (до единицы за 10 с.) требуется 10000 циклов. При формировании участков установившегося движения «пустой» цикл задает не темп, а время работы на установившейся скорости. Отличие заключается также в том, что в порт выдается не переменная, а фиксированная величина. Времени установившегося движения величиной 10 с соответствует 10000 «пустых» циклов. Другие величины темпов и интервалов времени определяются из простых пропорций.

6. Рекомендации по выбору количества «пустых» циклов, сделанные в предыдущем пункте, верны лишь при управлении одной координатой. При управлении обеими координатами ЭП для получения процесса той же формы следует уменьшить пределы изменения j ровно в два раза.

7. В качестве сигнала обратной связи используются прямоугольные импульсы, условно называемые SIN по терминологии [7]. Количество периодов этих импульсов за один оборот вала двигателя 2000. Фактически количество этих импульсов пропорционально частоте вращения. Для получения сигнала обратной связи по положению необходимо эти сигналы интегрировать в программе. В цифровой реализации интегрирование может быть достигнуто достаточно просто за счет накопления: summa:=summa+port[$2f8].

Адрес port[$2f8] – это по-прежнему адрес порта COM2. Однако в программах с регулируемым положением port[$2f8] может быть как регистром передатчика, когда осуществляется запись, так и регистром приемника в случае чтения сигнала обратной связи. Необходимо помнить, что чтение (как и запись) происходит в два такта. Сначала читается старший, а затем младший байт. Если разрешено чтение сигналов обратной связи по обеим координатам ЭП, то первым поступает старший байт канала с    № dac=0, затем младший байт этого же канала и лишь затем друг за другом поступают старший и младший байты канала с             № dac=1. Эти особенности и должна учитывать программа, позволяющая управлять положением двух ЭП подачи, например см. приложение 7.

8. Отличительной особенностью программ с регулируемым положением является, прежде всего, то, что в них программа работает не только на передачу (запись), но и на прием (чтение) данных. Важно знать, что прием данных о частоте вращения (код скорости) осуществляется только по каналу 0 (№ dac=0), если после инициализации порта и синхронизации (два раза запись с0) в нем сформировать запись: out_byte($e0); чтобы отслеживать обратную связь по каналу с № dac=1 вместо предыдущей строки должно быть записано out_byte($d0); и, наконец, для того чтобы считывать показания обратной связи по обоим каналам нужно записать out_byte($f0), как это и сделано в приложении 7.

Примечание. Курсивом в Приложении 7 помечены строки, которые могут быть убраны, если требуется формировать положение только по координате Z. При этом необходимо записать в подчеркнутой строке out_byte($e0).

9. Формирование заданного положения отличается от рассмотренных выше программ новой функцией out_z (см. приложение 7), которая служит для побайтовой выдачи информации в порт по тому или иному каналу ЦАП, а также для формирования закона, соответствующего требуемой траектории движения. В приложении 7 рассмотрен простейший случай, когда заданно одно конкретное значение перемещений. По координате Z заданное перемещение sz_ref=30000, а по координате X заданное перемещение sx_ref=15000. Ввиду отсутствия привязки к механизму данные значения соответствуют условным единицам перемещения (количеству импульсов). Необходимо отметить, что в наиболее общем случае sz_ref и sx_ref могут быть заданы в виде произвольных функций времени, а между s*_ref и summa могут существовать более сложные зависимости. Первое необходимо для формирования требуемой траектории, а второе для задания функции регулятора положения. В рассматриваемом же примере данные на выходах ЦАП формируются по простейшему закону: пока не достигнуто заданное положение, выдается максимальное задание на скорость; как только заданное положение достигнуто, привод останавливается.

В списке формальных параметров функции out_z значатся целые переменные i, n_dac (смысл этой переменной уже обсуждался – № dac) и summa – последняя переменная и есть интегрированный сигнал обратной связи по положению обоих каналов. Однако в зависимости от № ЦАП (n_dac) управление производится по тому или иному каналу. Кроме того, в данной функции производится деление информации на старший и младший байт, так как в этой программе нельзя напрямую использовать процедуру out_byte.

В самой программе производятся две проверки: if (port[$2fd] and 1)<>0 then… – проверяется регистр состояния COM-порта на готовность приемника считать информацию о коде скорости. В случае, если проверка выполнена происходит накопление суммы, причем если j нечетное накопление идет по каналу Z, иначе по каналу X. Здесь же в зависимости от считанного канала переменной d присваивается значение нуля или 1. Эта переменная и служит впоследствии при выводе информации в качестве n_dac. Второе условие if (port[$2fd] and 32)<>0 then… – проверка готовность передатчика на запись информации.

 

 

Методические указания

к лабораторным работам