Форум программистов, компьютерный форум, киберфорум
Измерительная техника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/63: Рейтинг темы: голосов - 63, средняя оценка - 4.87
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536

OpenSource аналог АЛС КОП 814 на микроконтроллере

30.05.2019, 23:37. Показов 15331. Ответов 134
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У кого есть схема и прошивка OpenSource DIY-аналога анализатора логических состояний КОП (GPIB) 814 на микроконтроллере PIC18F4550 + буферные элементы с открытым коллектором стандарта КОП (GPIB )? Поместится ли программа в PIC16F877A или ATMEGA16A...ATMEGA48A (DIP)? Внедрить анлгоязычное обозначение , как в GPIB . (For education only ).
Миниатюры
OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2019, 23:37
Ответы с готовыми решениями:

Эмулятор прибора для проверки КОП 814 в Labview
Как на Labview (>=8.5) написать эмулятор прибора 814 для работы с GPIB (NI488.1 / NI488.2/ IEC625/ ГОСТ26.003-80)?

В кассовом аппарате есть восемь 25-копеечных монет, 10 - стоимостью по 50 коп. и 12 - по 5 коп
В кассовом аппарате есть восемь 25-копеечных монет, 10 - стоимостью по 50 коп. и 12 - по 5 коп. Найти вероятность того, что среди пяти...

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

134
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
31.12.2021, 01:51  [ТС]
Студворк — интернет-сервис помощи студентам
С исправленными битами и схемами (пока не гарантирую отсутствие багов). Исправил на avrfreaks.net.
Вложения
Тип файла: zip gpibtool3.zip (2.59 Мб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
31.12.2021, 04:21  [ТС]
Можно ввести режим $d для чтения состояния выводов ШД самого контроллера (при отправке).

На тему IDY
Automatic Test Equipment Keith Brindley

Возможно , строку идентификации после IDY=1(УП и КП активны , выход ) читать в этой редакции побайтно с режимом ASCII . Возможна доработка программы.
Вложения
Тип файла: zip gpibtool3d.zip (2.59 Мб, 6 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
31.12.2021, 05:29  [ТС]
Там обычно после IDY=1 STB читают (через $7, байт состояния , для параллельного опроса ). Может, кнопку перенести и двоичный вид приделать .


Про отправку "*idn?\r\n" описано в статье в журнале Радио (для прототипа) и инструкции на приборы .

Добавлено через 1 минуту
Обычно читают байты (ATN=0) после адресации на МАП(при этом ATN=1) , потом на МАИ(ATN=1) , потом расшифровывают (двоичный формат вывода пока не вводил).



Добавлено через 25 минут
Про *idn?
передать команду *idn? (*IDN? )
Прежде всего, следует адресовать прибор как слушатель с адресом , например, 2 (по переключателям ).
Для этого необходимо послать байт адреса с шестнадцатеричным значением 0x22 или десятичным 34.
1)REN=1,
2) IFC send
3) устанавливаем ATN=1 (низкий уровень ).
4) Адрес МАП 0x22 (0x20+addr 2) , "Send DB" (hs) .
5) ATN=0
6) передаем следующую последовательность байтов( с помощью "Send DB" (hs) ): 0х2А('*'), 0x69('i'), 0x64('d'), 0х6Е('n'), 0x3f('?'), 0x0D(cr), 0х0А(lf). или *idn?
завершающие ее символы "Возврат каретки" (0x0D) и "Перевод строки" (0х0А)
необходимо вводить в шестнадцатеричном формате (в десятичном будет 13 и 10 )
7) адресуем прибор как говорящий : ATN=1,затем набираем и передаем адрес МАИ 0x42 (0x40+addr 2)
8) Сразу после переключения ATN =0
принимаем ответ прибора,
нажимая для приема каждого символа на экранную кнопку "Read DB" (hs) .
при приеме последнего символа ответа будет установлено ЕО1=1 (v).
(после ЕО1=1 появится сообщение и приостановится чтение байтов)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
31.12.2021, 23:22  [ТС]
Вариант с модифицированным переключением четности при отправке (odd для эксперимента ), чтением состояния ШД в двоичной , восьмеричной и шестнадцатеричной форме (можно и для байта , принятого по алгоритму рукопожатия добавить , отправка и чтение байта по handshake добавить ) , версия с ручным переключением ATN при чтении строки байтов методом рукопожатия (экспериментальная , termgpib_rsatnman , в termgpib переключение в ATN=0 при приеме байта по алгоритму рукопожатия автоматическое , останов при активных (низких) КП или ЗО ) .
Вложения
Тип файла: zip gpibtool3d_binoct_pb.zip (2.63 Мб, 9 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
31.12.2021, 23:23  [ТС]
Обсуждал на avrfreaks.net .
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
02.01.2022, 02:03  [ТС]
Про БСТ(STB) и ОБЗ
Миниатюры
OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
02.01.2022, 02:25  [ТС]
http://g2pc1.bu.edu/~qzpeng/gp... rogTut.pdf
Миниатюры
OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
03.01.2022, 10:06  [ТС]
Ввел обновление надписей для ATN после IDY =1/0 , обновил на avrfreaks.net .
Миниатюры
OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  
Вложения
Тип файла: zip gpib_uart.zip (2.63 Мб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
04.01.2022, 00:28  [ТС]
Возможен вариант для независимого управление линией EOI, чтения режима L/T и ШД (для эмулятора АЛС КОП 814 ). Управление SRQ контроллером (на выход , задать низким или пассивный, чтение ) требует отдельной линии управления направлением буфера SRQ ( ATMEGA16Ф или ATMEGA8A-AU, TQFP ) . Пусть пока будет в виде тумблера на корпусе контроллера (можно с тумблерами EOI, IFC ) для сложных случаев при отладке . Может не использоваться .


C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
void GPIB_GetControllerTakerMode()
{
//If TE=1 sends  'T' (0x54), if TE=0 sends 'L' (0x4C) to the UART 
if((PIND&(1<<PIND4 )) !=0 ) { SendToUART(0x54);  }      else  {    SendToUART(0x4C); }
return ;
}
 
 
 
/******************************/
 uint8_t arg=0;
 
ISR(USART_RXC_vect)
{
cli();
uint8_t uart_byte;
uart_byte=UART_receive();
switch(arg)
{
case '#' :           
             GPIB_SendByte_HS(uart_byte);    
             arg=0;  
             break;
 
case '$' :                            
              switch(uart_byte){   
                case '0' :                            
                             Set_REN_High(); //Set REN=0 NL
                             break;
                case '1' :                                
                             Set_REN_Low(); //Set REN=1 NL
                             break;
               case  '2' :                                       
                              Set_ATN_High(); //Set ATN=0 NL, data mode 
                              break;
               case  '3' :                                
                             Set_ATN_Low();  //Set ATN=1  NL , command mode 
                             break;
               case  '4' :
                             Send_IFC_Low_Pulse();  //IFC =1 pulse  ,   low , 14 ms
                             break;                             
                case  'c' :                               
                            Set_IFC_Low_manual();  //IFC =1 low manual   
                             break;      
                 case  'h' :                 
                             Set_IFC_High_manual();  //IFC =0 high manual   
                             break;                                                                                                   
               case  '5' : 
                             Set_IDY_0();   //mode IDY=0 turn off parallel polling, EOI in,  ATN out,  high , default
                             break;
               case '6' : 
                             Set_IDY_1();   //mode IDY=1 turn on parallel polling , EOI out , EOI =1(out) ,  ATN=1 (out) 
                             break;
                case '7' : 
                             GPIB_Read_DB_Statement(); // Read byte from GPIB
                             break; 
               case '8' :
                             GPIB_Receive_byte_HS();  //Receive byte  from GPIB  (HS)
                              break;
              case '9' :
                              GPIB_Read_control(); // Read control lines from GPIB 
                              break;
              case 'd' :
                              GPIB_Read_DBforOut(); //  Read byte from DB latches 
                              break;
 
              case 't' :
                              GPIB_GetControllerTakerMode();   
                              break;
             case  'e' :
                             Set_EOI_out_low();
                             break;
 
             case  'n' :
                             Set_EOI_input();
                             break;
 
 
 
              default : 
                             break;
             }
             arg=0; //after  2 bytes  
             break;
 
case 0x00:
             
            if(uart_byte=='#') { arg=uart_byte;   }   //if first byte is for send  data HS , wait for second byte          
             if(uart_byte=='$') { arg=uart_byte;   }   //if first byte is  a  command  , wait for second byte 
           
           break;
 
default :
           arg=0;   //reset  
           break; 
 
}
 
asm("sei");
 
return;
 
}
Миниатюры
OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  
Вложения
Тип файла: zip gpib_uart_1.zip (2.68 Мб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
04.01.2022, 08:41  [ТС]
https://www.avrfreaks.net/foru... sor?page=1 О проблеме отправки байта вместе с EOI=1(low) и кнопках сброса EOI=0, ручной установки EOI=1 до отправки байта (конфликтует с IDY=1/0 и ATN=1/0 по управлению надписями, требует смарт-логики управления надписями на форме ). Мониторинг шины управления по фактическому состоянию пока внизу (IDY иногда неадекватное ) .
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
06.01.2022, 11:06  [ТС]
Про управление переключателем ЗО (нижний) :

7.8.15.14 Повторить пункты 7.8.15.4-7.8.15.9.
Повторить пункты 7.8.15.4 и 7.8.15.5 используя данные таблицы 7.5.
Повторить пункты 7.8.15.4 и 7.8.15.5 используя данные таблицы 7.6.
Таблица 7.6

N КП УП ЛД7 ЛД6 ЛД5 ЛД4 ЛД3 ЛД2 ЛД1 ЛД0 Примечания
0 0 1 0 0 1 1 1 1 1 1 НПМ
1 0 1 0 0 1 0 0 0 0 1 МАП
2 0 0 0 1 0 0 0 1 1 0 F
3 1 0 0 0 1 1 1 1 1 1 ?
4 0 1 0 0 0 0 1 0 0 0 ЗАП
5 0 1 0 0 1 1 1 1 1 1 НПМ
6 0 1 0 1 0 0 0 0 0 1 МАИ
7 0 0 0 0 0 0 0 0 0 0 ПУС

7.8.15.15 Установить переключатели анализатора КОП 814 в положения:
«РАБОТА»;
«КОНТ»;
«МЕДЛ»;


7.8.15.15 Установить переключатели анализатора КОП 814 в положения:
«РАБОТА»;
«КОНТ»;
«МЕДЛ»;
установить переключатели нижнего ряда в положения:
ЗО – верхнее;
КП – верхнее;
УП – нижнее;
ЛД1, ЛД3 – верхнее;
ЛДО, ЛД2,
ЛД4-ЛД7 – нижнее
и нажать последовательно клавиши «СБРОС», «ЗАПУСК».
Анализатор переходит после передачи управляющих команд прибору в режим приема данных из прибора и принимает информацию от прибора. Показания прибора запоминаются в течение времени приёма данных.
После окончания приёма данных на цифровом табло анализатора КОП должны установиться данные: ЛДО-ЛД7 - 012.
7.8.15.16 Установить переключатели анализатора КОП 814 в положения:
«РУЧН»;
«ПРОСМОТР ВПЕРЕД»;
«ПРМ».
Нажать клавишу «СБРОС».
7.8.15.17 Производить считывание информации с информационного табло анализатора КОП ЛД7-ЛД0 до появления значения 12
7.8.15.18 Нажать клавишу «ЗАПУСК». Производить сравнение переданной информации с данными, отображенными на информационном табло прибора в момент передачи информации и в соответствии с данными таблицы 7.7, где a, b, c, d – символы кода выводимого числа. Перевод кода выводимого числа a, b, c, d в десятичное число осуществляют с помощью данных таблицы 7.8.

Вложения
Тип файла: zip g4-227.zip (6.24 Мб, 6 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
06.01.2022, 11:11  [ТС]
Возможен вариант с закладками (может быть с багами ):
Вложения
Тип файла: zip gpib_uart_tabs.zip (2.73 Мб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
19.01.2022, 19:10  [ТС]
Нужно ли использовать раздельную проверку состояния шин управления по чтению и при отправке строки (нужно ли при чтении строки каждый раз в режиме стопа по EOI(может не использоваться) проверять SRQ , а также на случай внезапной разадресации по rtl прибора-источника и ошибки в другом приборе, требующем запроса и останова для чтения
и отправки строки байтов , освобождения шины от обмена данными для работы с другим прибором )? Обычно SRQ=1 (активный) после GET, MTA , активен , пока не конец строки байтов и при особых обстоятельствах, зависящих от типа прибора . Обычно там EOS (при случайной разадресации кнопкой на приборе возможно зависание, а не выход по тумблеру (SRQ, EOI , возможно, IFC(?) , правда, проблема с вводом фактического состояния шины в процессор (кроме SRQ), на ATMEGA16A больше возможностей управления ) ).
Вложения
Тип файла: zip sources.zip (218.5 Кб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
19.01.2022, 19:16  [ТС]
Включение тумблера ЗО (в 814) обычно вызывает приоритетное включение светодиода ЗО внизу (запрос но с 814-го ) .
Внизу при компарировании влияет на останов.
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
21.01.2022, 13:14  [ТС]
Можно ввести включение SRQ=1, низкий, активен ("$r") и выключение SRQ с контроллера ("$q" , SRQ =0 ,пассивное , вход, вверх, зависит от шины) , но это на ATMEGA8A-AU, ATMEGA16A-PU(AU) .
Вложения
Тип файла: zip hostprog1.zip (218.4 Кб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
21.01.2022, 13:25  [ТС]
Там нижнего ряда, на компарирование и останов по совпадению . Верхние там выкл., это для прокта с опциями под 814 -й и дополнительные функции, нужны при отладке некоторых устройств.

Добавлено через 3 минуты
Но переключение компарирования по ( SRQ=1, SRQ=0, не реагировать на SRQ остановом ) желательно ввести , пока на SRQ=1, альтернативно, при отправке, при чтении только на EOI( а также на ATN,IFC ).
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
22.01.2022, 13:00  [ТС]
Проект для управления контроллером в режиме упрощенной эмуляции АЛС КОП 814 в аттаче (режим контроллера пока не имплементован, немного иначе реагирует , есть баги и недоработки ) . Возможно встраивание в одну из закладок другого приложения (с терминалом и закладками), тогда проект нужно радикально доработать.
Вложения
Тип файла: zip termals814emulgui_debug.zip (970.2 Кб, 3 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
23.01.2022, 01:33  [ТС]
Обсуждал на avrfreaks.net . Устранил еще некоторые баги , варианты программ после использования консольного эмулятора контроллера :
Вложения
Тип файла: zip progs_modifyed.zip (2.54 Мб, 14 просмотров)
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
23.01.2022, 01:33  [ТС]
Режим контроллера потом допишу.
0
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
25.01.2022, 21:08  [ТС]
В настоящем 814 при вводе программы зажигаются верхние светодиоды и табло , если выкл, то выключается . Если включить верхний перключатель ЗО, зажигается светодиод снизу, верхний после запуска . При нажатии просмотра после сброса первый раз после сброса -нулевая ячейка. При ручном вводе работают верхние светодиоды, про нижние уточнить.
В режиме контроллера работает на передачу, после команд МАИ (УП=1, 0x40| Addr ) , потом ПУС (УП=0) анализатор переходит на прием байтов (Кузнецов, 1987 ), состояние ЗО учитывать .
Миниатюры
OpenSource  аналог   АЛС  КОП  814 на микроконтроллере   OpenSource  аналог   АЛС  КОП  814 на микроконтроллере   OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  

OpenSource  аналог   АЛС  КОП  814 на микроконтроллере   OpenSource  аналог   АЛС  КОП  814 на микроконтроллере  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2022, 21:08
Помогаю со студенческими работами здесь

В киоске продается газета стоимостью 3 коп. и журнал стоимостью 20 коп.
В киоске продается газета стоимостью 3 коп. и журнал стоимостью 20 коп. Составить программу, которая спрашивает о желании ...

DS LAM АЛС и ТЕК
Всем привет , ищу инженеров кто сталкивался с платами ds lam российского производства компании алситек, для консультации

TL-R860 и АЛС 500 не хотят работать вместе
Всем прет!столкнулся с проблемой. у меня есть модем+маршрутизатор от СЦТС - АЛС 500(модель ваще не известная)еще у меня есть роутер...

Товар стоит "a" руб. "b" коп. За него заплатили "c" руб. "d" коп. Сколько сдачи требуется получить?
Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить? Вводятся 4 числа: a, b, c и d. Необходимо...

СМ ardo a 814 010980057 dmpu
Не работает СМ все узлы 220в проверены, проблема в dmpu j1sc1. 220 приходит на 1 и 4 контакт, проверяю 24 вольта между стабилитроном и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru