Программа проверки связи приборов с ЭВМ

+7 (383) 358-68-69; semico@mail.ru |  Контакты  |  Прайс-лист

Главная / Лабораторное оборудование / ПО

Программа предназначена для проверки наличия связи (информационного обмена) приборов серии МУЛЬТИТЕСТ с ЭВМ через последовательный порт. Может использоваться для проверки с помощью ЭКВМ других изделий по протоколу приборов Мультитест.

Программа может быть использована в качестве примера работы клавишной ЭВМ "Электроника МК" с оборудованием через интерфейс последовательной связи RS-232C (Стык С2).

Пример заведомо работоспособен на всех исправных экземплярах ЭКВМ, прибора и кабеля связи. Работа программы от других факторов не зависит.

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

Схема установки для проверки наличия информационного обмена с ЭВМ
  1. Клавишная ЭВМ "Электроника МК-152" НПКД.401348.001 или аналогичная
  2. Кабель связи НПКД.421529.003-03
  3. Прибор МУЛЬТИТЕСТ ИПЛ НПКД.421598.100

На приборе устанавливают сетевой номер, равный нулю.

В ЭВМ с нулевого адреса вводят приведенную ниже программу. После ввода программы переходят в автоматический режим и нажимают клавиши "В/О", "0" и "С/П".

При наличии информационного обмена прибора с ЭВМ в строке комментария выводится сообщение, состоящее из символов "IPL" и номера модификации. При отсутствии информационного обмена в строке комментария выводится сообщение об ошибке.

Программа для проверки наличия информационного обмена с ЭКВМ на языке МК

Старшая часть адреса Младшая часть адреса
0 1 2 3 4 5 6 7 8 9
000 K|x| K[x] B↑ B↑ 2 - Fx<0 11 БП
001 12 2 П4 Сх РРП 90 80 РРП 90 72
002 РРП 90 74 7 РРП 90 73 РРП 90 70
003 П0 ИП4 1 0 × 2 0 0 + РРП
004 90 42 РРИП 90 44 РРП 90 82 FL0 42
005 РПП 03 00 Fx≠0 71 2 3 0 РРП 90
006 26 Сх РРП 90 70 B↑ B↑ ИП4 С/П БП
007 00 4 РРП 90 85 РРИП 90 86 3 3
008 - Рx≤0 01 15 2 РРП 90 85 РРИП 90
009 86 4 - П0 7 РРП 90 85 КНОП КНОП
010 РРИП 90 87 РРП 90 25 FL0 00 РБП 00
011 61 0FFh 0FFh 0FFh 0FFh 2 5 0 РРП 90
012 26 7 РРП 90 85 РРИП 90 86 1 5
013 KAND 4 8 + РРП 90 25 РБП 00 61
014-019 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh
020 00h 00h 04h 00h 10h 00h 00h 0FFh 0FFh 0FFh
021 00h 00h 04h 00h 10h 01h 00h 0FFh 0FFh 0FFh
022 00h 00h 04h 00h 10h 02h 00h 0FFh 0FFh 0FFh
023 0Ah 8Dh 0A5h 0E2h 20h 0E1h 0A2h 0EFh 0A7h 0A8h
024 00h 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh
025 0Ah 8Eh 0E8h 0A8h 0A1h 0AAh 0A0h 20h 00h 0FFh
026-029 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh 0FFh
030 2 РРП 90 80 РРИП 90 81 П9 3 +
031 П0 Сх РРП 90 80 РРИП 90 82 + FL0
032 15 ПП 88 РРП 90 81 ИП9 4 + РРП
033 90 77 РРИП 90 77 Fx=0 32 3 0 РРП
034 90 50 РРИП 90 75 Fx=0 54 РРИП 90 50
035 Fx=0 42 1 В/О РРИП 90 76 Fx=0 54 2
036 РРП 90 85 РРИП 90 86 3 + П0 Сх
037 РРП 90 85 РРИП 90 87 + FL0 73 ПП
038 88 РРИП 90 86 - В/О 0FFh 0FFh B↑ B↑
039 2 5 6 П0 ÷ K[x] ИП0 × - В/О



Описание программы

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

При запуске программы в регистре стека X передается число, соответствующее запрашиваемому параметру: 0 - наименование прибора, 1 - дата внесения изменений в ПО прибора, 2 - наименование предприятия-изготовителя.

После останова программы в строке комментариев МК-152, расположенной в нижней части экрана, будет выведена соответствующая информация.

Смещение Выполняемые действия
00-12 Приведение входного числа к требуемым значениям из множества {0,1,2} и занесение результата в R4
13-30 Инициализация порта
30-49 Вычисление начального адреса строки команды (200, 210 или 220) и перенос последовательности байт команды в выходной буфер порта
50-52 Передача команды и прием ответа через последовательный порт с использованием подпрограммы 300
53-54 Переход на 71 при корректном ответе
55-60 Формирование сообщения "Нет связи" при ошибке
61-70 Останов и переход к началу программы при следующем запуске
71-83 Проверка принятия сообщения об ошибке. Переход на 115 при ошибке
84-110 Перенос строки ответа из буфера порта в строку комментариев и переход на 61
115-139 Формирование сообщения "Ошибка ", добавление в строку комментариев номера ошибки из ответа и переход на 61
200-206 Последовательность байт для команды запроса наименования прибора
210-216 Последовательность байт для команды запроса даты последней модификации программы
220-226 Последовательность байт для команды запроса наименования предприятия-изготовителя
230-240 Сообщение "Нет связи"
250-258 Сообщение "Ошибка "
300-310 Начало подпрограммы обмена с прибором (драйвера протокола Мультитест). Определение длины команды и помещение в R0
311-325 Вычисление контрольной суммы. Обращение к подпрограмме 388 для вычисления остатка от деления на 256. Запись контрольной суммы в буфер передачи
326-336 Передача команды. Ожидание окончания передачи
337-341 Занесение времени ожидания ответа 300 мс в таймер
342-353 Проверка начала приема ответа и переход на 354. Проверка выхода по тайм-ауту и выход по тайм-ауту.
354-358 Ожидание автоматического окончания приема
359-380 Вычисление контрольной суммы принятого пакета. Обращение к подпрограмме 388
381-385 Вычитание принятой контрольной суммы из расчитанной и выход из подпрограммы драйвера
388-399 Подпрограмма вычисления вычета по модулю 256 (остатка от деления на 256)
Примечание. Пропущенные в описании адреса содержат 0FFh и в программе не используются



Далее приведен исходный текст программы для компилятора.

.CHARSET 1251
; Файл mtest_mk
; Программа проверки связи по протоколу приборов Мультитест
; при запуске RX=0 - наименование, 1-версия ПО, 2-изготовитель

.ORG 0

A0:	 ; с адреса 69
	K ABS
	K INT
	ENT
	ENT
	2
	-
	F X<0 A11
	<->
	GOTO A12

A11:	 ; с адреса 6
	2

A12:	 ; с адреса 9
	M 4
	CX
	PP M 9080	; Индесный регистр буфера передачи (Последовательный порт)
	PP M 9072	; Режим обмена (Последовательный порт)
	PP M 9074	; Режим автоматического приема (Последовательный порт)
	7
	PP M 9073	; Время ожидания при приеме (Последовательный порт)
	PP M 9070	; Разрешение порта (Последовательный порт)
	M 0
	RM 4
	10
	*
	200
	+
	PP M 9042	; Индексный регистр памяти программ (Дополнительные функции)

A42:	 ; с адреса 48
	PP RM 9044	; Чтение памяти программ, автоинкремент (Дополнительные функции)
	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	F L0 A42
	P GSB A300	; Подпрограмма драйвера 
	F X!=0 A71
	.NUM STR1	; "Нет связи"
	PP M 9026	; Вывод строки из памяти программ (Строка комментариев)

A61:	 ; с адреса 108, 137
	CX
	PP M 9070	; Разрешение порта (Последовательный порт)
	ENT
	ENT
	RM 4
	R/S
	GOTO A0


A71:	 ; с адреса 53
	4
	PP M 9085	; Индесный регистр буфера приема (Последовательный порт)
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	33
	-
	P X<0 A115
	2
	PP M 9085	; Индесный регистр буфера приема (Последовательный порт)
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	4
	-
	M 0
	7
	PP M 9085	; Индесный регистр буфера приема (Последовательный порт)
	K NOP
	K NOP


A100:	 ; с адреса 106
	PP RM 9087	; Байт буфера передачи, автоинкремент (Последовательный порт)
	PP M 9025	; Вывод символа (Строка комментариев)
	F L0 A100
	P GOTO A61

A115:	 ; с адреса 81
	.NUM STR2	; "Ошибка"
	PP M 9026	; Вывод строки из памяти программ (Строка комментариев)
	7
	PP M 9085	; Индесный регистр буфера приема (Последовательный порт)
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	15
	K AND
	48
	+
	PP M 9025	; Вывод символа (Строка комментариев)
	P GOTO A61

	.ORG 200
	.DB 00h, 00h, 04h, 00h, 10h, 00h, 00h, 0FFh, 0FFh, 0FFh;	команда z=0 r=0
	.DB 00h, 00h, 04h, 00h, 10h, 01h, 00h, 0FFh, 0FFh, 0FFh;	команда z=1 r=0
	.DB 00h, 00h, 04h, 00h, 10h, 02h, 00h, 0FFh, 0FFh, 0FFh;	команда z=2 r=0
STR1:	.DB 0Ah, 8Dh, 0A5h, 0E2h, 20h, 0E1h, 0A2h, 0EFh, 0A7h, 0A8h, 0h	; "Нет связи"
STR2:	.DB 0Ah, 8Eh, 0E8h, 0A8h, 0A1h, 0AAh, 0A0h, 20h, 0h	; "Ошибка "

	.ORG 300
A300:	 ; с адреса 50
	2
	PP M 9080	; Индесный регистр буфера передачи (Последовательный порт)
	PP RM 9081	; Байт буфера передачи (Последовательный порт)
	M 9
	3
	+
	M 0
	CX
	PP M 9080	; Индесный регистр буфера передачи (Последовательный порт)

A315:	 ; с адреса 319
	PP RM 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	+
	F L0 A315
	GSB A388
	PP M 9081	; Байт буфера передачи (Последовательный порт)
	RM 9
	4
	+
	PP M 9077	; Передача данных (Последовательный порт)

A332:	 ; с адреса 335
	PP RM 9077	; Передача данных (Последовательный порт)
	F X=0 A332
	30
	PP M 9050	; Формирование интервалов (таймер 0) (Функции реального времени)

A342:	 ; с адреса 350
	PP RM 9075	; Счетчик посылок (Последовательный порт)
	F X=0 A354
	PP RM 9050	; Формирование интервалов (таймер 0) (Функции реального времени)
	F X=0 A342
	1
	RTN

A354:	 ; с адреса 345, 357
	PP RM 9076	; Прием данных (Последовательный порт)
	F X=0 A354
	2
	PP M 9085	; Индесный регистр буфера приема (Последовательный порт)
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	3
	+
	M 0
	CX
	PP M 9085	; Индесный регистр буфера приема (Последовательный порт)

A373:	 ; с адреса 377
	PP RM 9087	; Байт буфера передачи, автоинкремент (Последовательный порт)
	+
	F L0 A373
	GSB A388
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	-
	RTN

A388:	 ; с адреса 321, 379
	ENT
	ENT
	256
	M 0
	/
	K INT
	RM 0
	*
	-
	RTN
.END 


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)