Периодический опрос приборов - программа без графического интерфейса


Главная / ЭКВМ / Программы для ЭКВМ / Работа с оборудованием

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

Результаты измерений записываются в энергонезависимый электронный блокнот ЭКВМ и могут быть перенесены из него в компьютер для последующей обработки. В блокноте сохраняется также и время каждой произведённой записи, полученное от встроенных часов ЭКВМ.

Одновременно с опросом приборов и журналированием программа выводит результаты измерений на индикатор в регистры X, Y, Z, T стека.

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

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

Программа может считывать с приборов любые числовые данные. Для настройки необходимо указать в программе соответствующие параметры Z и R команды протокола и нужным образом изменить текстовые строки. В программе для примера приведены ЭДС и pH первого канала в мВ и ед. pH, а также значение температуры в градусах Цельсия.

Начало работы

Перед началом работы необходимо ввести в регистры начальные значения:

  • R9 - сетевой номер прибора. Если требуется опрашивать одновременно несколько приборов, следует добавить их номера непосредственно в программу.
  • RB - период опроса, сек., не более 655. Максимальный период опроса - около 10 минут - ограничен таймером. Для увеличения возможно изменить алгоритм и синхронизироать запись не по таймеру, а по встроенным часам реального времени.
  • RC - максимальное число записей, число не более 16384. Число записей ограничено размером электронного блокнота ЭКВМ. Продолжительность мониторинга зависит от числа записей и установленного в RB значения периода. При периоде 10 минут максимальное число записей достигается примерно за 11,5 дней; при периоде 1 сек. - за 4,5 часа.
  • R20, R21 - нижняя и верхняя границы для первого опрашиваемого параметра.
  • R23, R24 - нижняя и верхняя границы для второго опрашиваемого параметра.
  • R26, R27 - нижняя и верхняя границы для третьего опрашиваемого параметра.

Для запуска программы нажать клавиши "В/О", "С/П".

Окончание работы

Программа автоматически заканчивает работу при достижении указанного в RC числа записей.

Для немедленного выхода из программы следует нажать клавишу "Выход", при этом выполняется корректное завершение работы. При принудительном останове программы клавишей "С/П" состояние последовательного порта не восстанавливается и связь с ЭКВМ через последовательный порт будет возможна только после очистки регистра функции R9070 вручную, либо после выключения и последующего включения питания ЭКВМ.

Для временной приостановки работы можно использовать клавишу "С/П", но состояние стека, регистров данных и текущего адреса при этом не должно изменяться. Для просмотра записанных в блокнота результатов измерений следует воспользоваться режимом "Просмотр/Очистка" - "Блокнот". Продолжение работы после входа в режим калькулятора - повторным нажатием "С/П". При этом возможно нарушение длительности задержки между двумя записями - до и после момента останова.

Обработка данных

После окончания работы возможен перенос данных из электронного блокнота в компьютер. Для этого требуется считать данные блокнота и записать их в файл как текст. Поля текста при записи будут разделены табуляцией. Для примера ниже приведен файл opros.mkn и результаты его обработки программой OpenOffice.org Calc. Для переноса диаграммы в изображение использована программа OpenOffice.org Draw. При желании можно использовать аналогичные программы из пакета MS Office.

Файлы:

  • opros.mkn - исходный файл с данными блокнота ЭКВМ;
  • opros.txt - текстовый файл с данными, разделёнными табуляцией;
  • opros.ods - электронная таблица в формате OpenDocument;
  • opros.xls - таблица, конвертированная в формат MS Excel;
  • opros.odg - диаграмма в формате OpenDocument;
  • opros.pdf - диаграмма в формате PDF.
Диаграмма с результатами опроса pH-метра ИПЛ-301 при помощи ЭКВМ Электроника МК

Программа "Опрос приборов (без ГИ)"

Файл opros1.mkp версия 1.0 от 17.02.2011 (КС 71713/49)

  0 1 2 3 4 5 6 7 8 9
000 P ПП 06 07 P ИП 21 P ИП 20 - F x<0 19
010 P ИП 21 P ИП 20 P П 21 P П 20 P ИП
020 24 P ИП 23 - F x<0 35 P ИП 24 P ИП 24
030 P П 24 P П 23 P ИП 27 P ИП 26 -
040 F x<0 51 P ИП 27 P ИП 26 P П 27 P П
050 26 ИП C F x<0 60 P БП 01 63 P ПП 01 74
060 1 6 3 8 4 - F x≥0 74 1 6
070 3 8 4 П C Cx PP П 90 60 ИП B 6
080 5 6 - P x≥0 00 90 6 5 5 П B
090 ИП B ВП 2 П B ИП B PP П 90 51 P ПП 03
100 69 ИП C 1 - П C P x≥0 01 63 PP ИП 90
110 51 P x≠0 00 94 5 0 - F x<0 27 PP ИП
120 90 51 F x≠0 19 P БП 00 94 PP ИП 90 51
130 5 0 ÷ K {x} F x=0 08 PP ИП 90 29 3
140 2 - F x=0 46 БП 63 P ПП 01 74 F x=0
150 08 P ПП 02 19 PP ИП 90 55 ИП 4 ИП 5 ИП 6
160 K ЭКР БП 08 P ПП 06 34 ИП B ВП 2 ÷
170 - ÷ П B С/П 1 6 П 7 1 6 П 8
180 P ПП 04 32 P x=0 02 17 П 4 1 6
190 П 7 4 8 П 8 P ПП 04 32 P x=0 02 17
200 П 5 2 6 П 7 3 2 П 8 P ПП 04
210 32 F x=0 17 П 6 0 В/О 1 В/О Cx
220 P П 30 P П 31 P П 32 P П 33 1 PP П
230 90 90 PP П 90 93 P ИП 21 ИП 4 - F x<0
240 62 P ИП 33 2 + P П 33 4 P П 30
250 2 0 0 B↑ 1 0 0 PP П 90 52
260 БП 76 ИП 4 P ИП 20 - F x<0 76 P ИП 33
270 1 + P П 33 БП 47 P ИП 24 ИП 5 -
280 P x<0 03 05 P ИП 33 8 + P П 33 4
290 P П 31 3 0 0 B↑ 1 0 0 PP П
300 90 52 P БП 03 20 ИП 5 P ИП 23 - F x<0
310 20 P ИП 33 4 + P П 33 P БП 02 89
320 P ИП 27 ИП 6 - F x<0 48 P ИП 33 3 2
330 + P П 33 4 P П 32 4 0 0 B↑
340 1 0 0 PP П 90 52 БП 63 ИП 6 P ИП
350 26 - F x<0 63 P ИП 33 1 6 + P П
360 33 БП 33 P ИП 33 PP П 90 91 В/О PP ИП
370 90 55 PP П 90 61 PP ИП 90 65 P x=0 04
380 24 ИП 4 PP П 90 62 PP ИП 90 65 P x=0 04
390 24 ИП 5 PP П 90 63 PP ИП 90 65 P x=0 04
400 24 ИП 6 PP П 90 64 PP ИП 90 65 F x=0 24
410 PP ИП 90 60 1 + PP П 90 60 PP ИП 90
420 65 F x=0 24 В/О 1 0 0 B↑ PP П 90
430 52 В/О 9 0 8 2 П E Cx PP П 90
440 80 K П E ИП 9 K П E 4 K П E Cx K П E 1 6
450 K П E ИП 7 K П E ИП 8 K П E 7 П 0 Cx PP П 90
460 80 K ИП E + F L0 61 P ПП 05 95 K П E 8
470 PP П 90 77 PP ИП 90 77 F x=0 73 3 0
480 PP П 90 50 PP ИП 90 75 F x=0 99 PP ИП 90
490 50 F x=0 83 Cx B↑ 2 5 6 В/О PP ИП
500 90 76 P x=0 04 99 9 0 8 5 П E
510 Cx K П E PP ИП 90 87 P x=0 04 93 PP ИП 90
520 87 ИП 9 - P x=0 04 93 PP ИП 90 86 3
530 + П 0 Cx K П E PP ИП 90 87 + PF L0 05
540 34 P ПП 05 95 PP ИП 90 87 - P x=0 04
550 93 4 K П E PP ИП 90 86 3 3 - F x≥0
560 69 7 K П E PP ИП 90 86 0 В/О Cx
570 PP П 90 31 PP П 90 30 4 П 0 7 PP П
580 90 85 PP ИП 90 87 PP П 90 34 F L0 82
590 PP ИП 90 38 0 В/О B↑ B↑ 2 5 6
600 П 0 ÷ K [x] ИП 0 × - В/О 1 PP П 90
610 70 9 PP П 90 71 0 PP П 90 72 5
620 PP П 90 73 0 PP П 90 74 2 4 0
630 PP П 90 78 В/О 0 PP П 90 70 В/О  

Для изменения опрашиваемых данных следует изменить числа по адресам 174, 175, 177, 178 для Z и R первого параметра; 188, 189, 191, 192 для второго; 2026, 203, 205, 206 для третьего. В таблице они отмечены цветом, аналогичным цвету данных на диаграмме.


Исходный текст для кросс-компилятора

Файл opros1.mkl от 17.02.2011

.CHARSET 1251

; Программа опроса нескольких результатов измерений
; по протоколу приборов Мультитест
; Вариант без графической оболочки

; Версия 1.0 от 17.02.2011
; Проверка на выход за границы: звук, управление линиями параллельного порта

; Записать перед началом работы:
; RB - период опроса (сек <= 655)
; RC - продолжительность опроса (число записей < 16384)
; R9 - сетевой номер прибора
; R20, R21, R23, R24, R26, R27 - границы диапазонов для R4, R5, R6

; Используются

; R7,R8 - текущие Z,R

; R4,R5,R6 - В базовом варианте - ЭДС, pH, температура 

; RE - используется для косвенной адресации и временного хранения

; R22, R25, R28 - ширина диапазона
; R30, R31, R32 - признак выхода за границу диапазона для R4, R5, R6 (атрибут: 4 - выход, 0 - нет)
; R33 - данные в параллельный порт (D0:R4<R20; D1:R4>R21; D2:R5<R23; D3:R5>R24; D4:R6<R26; D5:R6>R27)

.ORG 0
	P GSB PORT_I	; Инициализация порта
			; Проверка границ диапазонов
	P RM 21
	P RM 20
	-
	F X<0 B1
	P RM 21
	P RM 20	
	P M 21
	<->
	P M 20
	
B1:	P RM 24
	P RM 23
	-
	F X<0 B2
	P RM 24
	P RM 24	
	P M 24
	<->
	P M 23
	
B2:	P RM 27
	P RM 26
	-
	F X<0 B3
	P RM 27
	P RM 26	
	P M 27
	<->
	P M 26
	
B3:	RMC	
	F X<0 A0
	P GOTO A_END

	P GSB IZM	; Считать данные с прибора 

A0:	16384 -
	F X>=0 A00
	16384 MC
A00:
	CX PP M 9060	; Группа записей блокнота 

	RMB 656 -	; Период записи должен быть меньше 65600 секунд
	P X>=0 A01
	655 MB

A01:	RMB EE 2 MB	

A1:	RMB
	PP M 9051	; Таймер 1
	
	P GSB ZAP	; Записать в блокнот

	RMC 1 - MC
	P X>=0	A_END	; Количество записей достигнуто

A2:	PP RM 9051
	P X!=0 A1	; Повторить запись

	50 -
	F X<0 A21

A22:	PP RM 9051	; За 0,5 секунды - больше ничего не измерять и не выводить
	F X!=0 A22	
	P GOTO A1		

A21:	PP RM 9051
	50 /
	K FRAC
	F X=0 A2	; Цикл ожидания 0,5 сек

	PP RM 9029
	32 -		; 32 "Выход"
	F X=0 A23
	GOTO A_END

A23:	P GSB IZM	; Считать новые данные
	F X=0 A2	; Если ошибка - вернуться	

	P GSB PROV	; Проверка выхода за диапазон

	; вывод в стек
	PP RM 9055	; Часы
	RM4		; ЭДС
	RM5		; pH
	RM6		; Температура
	K SCR
	GOTO A2

A_END:	
	P GSB PORT_UI	; запрет использования порта
	RMB EE 2 /-/ MB	; Вернуть значение RB
	R/S

;----------------------------- Измерение
IZM:	16 M7
	16 M8
	P GSB PORT_K	
	P X=0 IZM_E
	<->
	M4

	16 M7
	48 M8
	P GSB PORT_K
	P X=0 IZM_E
	<->
	M5
	
	26 M7
	32 M8
	P GSB PORT_K
	F X=0 IZM_E
	<->
	M6
	0
	RTN

IZM_E:  1
	RTN

;-------------------- Проверка выхода за границы диапазонов

PROV:	CX
	PM 30
	PM 31
	PM 32
	PM 33

	1 
	PP M 9090	; Статический режим параллельного порта
	PP M 9093	; запись

	PRM 21
	RM 4 
	-
	F X<0 PROV2
	PRM 33
	2 +
	PM 33
PROV1:	4
	PM 30
	200 ENT 100 PP M 9052
	GOTO PROV3
PROV2:  RM 4
	PRM 20
	-
	F X<0 PROV3
	PRM 33
	1 +
	PM 33
	GOTO PROV1
 	
PROV3: 
	PRM 24
	RM 5 
	-
	P X<0 PROV5
	
	PRM 33 
	8 + 
	PM 33
PROV4:	4
	PM 31
	300 ENT 100 PP M 9052
	P GOTO PROV6
PROV5:  RM 5
	PRM 23
	-
	F X<0 PROV6
	PRM 33
	4 +
	PM 33
	P GOTO PROV4 

PROV6:
	PRM 27
	RM 6 
	-
	F X<0 PROV8
	PRM 33
	32 +
	PM 33

PROV7:	4
	PM 32
	400 ENT 100 PP M 9052
	GOTO PROV9
PROV8:  RM 6
	PRM 26
	-
	F X<0 PROV9 
	PRM 33
	16 +
	PM 33
	GOTO PROV7

PROV9:	PRM 33
	PP M 9091	; Запись в порт
	RTN

;---------------------- Запись в блокнот
ZAP:	PP RM 9055
	PP M 9061
	PP RM 9065
	P X=0 ZAP_E
	RM4
	PP M 9062
	PP RM 9065
	P X=0 ZAP_E
	RM5
	PP M 9063
	PP RM 9065
	P X=0 ZAP_E
	RM6
	PP M 9064
	PP RM 9065
	F X=0 ZAP_E
	PP RM 9060
	1 +
	PP M 9060
	PP RM 9065
	F X=0 ZAP_E
	RTN

ZAP_E:  100 ENT PP M 9052	; звук
	RTN


; Драйвер протокола приборов Мультитест используются R0 и RE (RЕ если понадобится можно убрать)

; Инициализация последовательного порта

PORT_K:	
	; Команда протокола - запрос данных в формате float. Используется регистр R0
			; Формирование команды в буфере
	9082 ME		; Для косвенной адресации регистра 9082

	CX PP M 9080	; Индексный регистр буфера передачи. Запись нуля - заполнение буфера с начала
	KME		; PP M 9082	Запись с автоинкрементом. Первое число =0
	RM9 KME		; Сетевой номер
	4 KME		; Длина мл
	CX KME		; Длина ст
	16 KME		; K
	RM7 KME		; Z
	RM8 KME		; R

	7 M0
	CX PP M 9080	; Индесный регистр буфера передачи (Последовательный порт)

PORT_K1:	
	KRME		; Подсчёт КС
	+
	F L0 PORT_K1
	P GSB MOD_256	; По модулю 256
	KME		; Запись КС в буфер
	
	8 PP M 9077	; Передача команды запроса Z=R7, R=R8, адрес=R9 (8 байт)
PORT_K2:
	PP RM 9077
	F X=0 PORT_K2
	30 PP M 9050	; Тайм-аут приёма - 300 мс (таймер 0)

PORT_K3:
	PP RM 9075	; Счетчик посылок 
	F X=0 PORT_K5	; Приём начался
	PP RM 9050	; Таймер 0
	F X=0 PORT_K3	; Ожидание 

PORT_K4:
	CX ENT 256	; Выход с кодом 256 - тайм-аут
	RTN		

PORT_K5:
	PP RM 9076
	P X=0 PORT_K5	; Ожидание окончания приёма

	9085 ME		; Для косвеной адресации регистра 9085

	CX KME		; PP M 9085 Индексный регистр буфера приема (Последовательный порт)
	PP RM 9087	; Байт буфера приёма, автоинкремент 
	P X=0 PORT_K4	; Первый байт не 0 - выход с ошибкой 256
	PP RM 9087	; Байт буфера приёма, автоинкремент
	RM 9
	-
	P X=0 PORT_K4	; Сетевой номер не совпадает - выход с ошибкой 256
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	3
	+
	M 0		; Длина пакета
	CX KME		; PP M 9085 Индесный регистр буфера приема (Последовательный порт)

PORT_K6:
	PP RM 9087	; Байт буфера приёма, автоинкремент
	+		; КС принятого пакета
	PF L0 PORT_K6		
	P GSB MOD_256
	PP RM 9087	; Байт буфера приёма, автоинкремент (Последовательный порт)
	-
	P X=0 PORT_K4	; Сравнение КС, выход с ошибкой при несовпадении
	4 KME		; PP M 9085 Индесный регистр буфера приема (Последовательный порт)
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	33 -
	F X>=0 PORT_K7	; Проверка кода команды K>20h, переход на обработку ошибки протокола
			
	7 KME 		; PP M 9085 Индесный регистр буфера приема (Последовательный порт)
	PP RM 9086	; Байт буфера передачи (Последовательный порт)
	0
	<->		; В RX - код ошибки протокола
	RTN

PORT_K7:
	CX
	PP M 9031	; Индексный регистр 1 (Универсальный байтовый буфер)
	PP M 9030	; Индексный регистр 0 (Универсальный байтовый буфер)
	4 M0
	7 PP M 9085	; Индесный регистр буфера приема (Последовательный порт)

PORT_K8:
	PP RM 9087	; Байт буфера передачи, автоинкремент (Последовательный порт)
	PP M 9034	; Запись и чтение по индексному регистру 1, автоинкремент (Универсальный байтовый буфер)
	F L0 PORT_K8	; перенос принятых данных float в универсальный буфер
	PP RM 9038	; Преобразование числа в float и обратно (В индексном регистре 0 - 0)
	0
	RTN

MOD_256:	; Нахождение суммы по модулю 256
	
	ENT
	ENT
	256 M0
	/
	KINT
	RM0
	*
	-
	RTN

PORT_I:
	1 PP M 9070	; Разрешение порта, запись 1 - разрешение использования порта ЭКВМ
	9 PP M 9071	; Установить скорость 9600
	0 PP M 9072	; Установить режим 8 бит
	5 PP M 9073	; Задержка между байтами в ответе 5*1,25=6 мс.
	0 PP M 9074	; Режим автоматического приёма разрешён
	240 PP M 9078	; Время ожидания ответа 240*1,25=300 мс.
	RTN	

PORT_UI:
	0 PP M 9070	; Регистр разрешения порта, запись 0 - запрет использования порта программой ЭКВМ
	RTN
; конец драйвера протокола
.END 


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