Как сделать вывод информации на ЭВМ из контрольно проверочной аппаратуры

61732
Offline
Зарегистрирован: 11.10.2020

Проверил отличия имеющиегося напряжения при отключенном МПУ: когда СЦВМ включена и когда запущена программа и должна начаться печать. У всех все одинаково кроме ЗПС, когда должна начаться печать загорается на СЦВМ неисправность и на ЗПС появляется 3.6 в.

61732
Offline
Зарегистрирован: 11.10.2020
SLKH
Offline
Зарегистрирован: 17.08.2015

61732 пишет:
Проверил отличия имеющиегося напряжения при отключенном МПУ: когда СЦВМ включена и когда запущена программа и должна начаться печать. У всех все одинаково кроме ЗПС, когда должна начаться печать загорается на СЦВМ неисправность и на ЗПС появляется 3.6 в.
всё правильно - при отсутствии сигнала ГТВ от принтера СЦВМ отправлять информацию на печать не будет.

======

ещё:

- сигнал "ошибка (ошб)" на какой стороне формируется?

- осциллограммы сделай ЗПР - ИФ-Б с синхронизацией по спаду того и другого сигналов. 

imp
Offline
Зарегистрирован: 20.06.2020

Гм... А вот такой момент, осциллограммы ЗПР и ИНФ-Б (#179) снимали ведь с линий внутри МПУ (разъем Ш-12, а внешний разъем для последовательной передачи у нас Ш-3). Вполне возможно, что они просто инвертированы входными цепями. Отсюда и отличие сигналов от описания. В этом ничего страшного, алгоритм чтения мы все равно получили, просто придется немного изменить скетч.
Но что бы в этом убедиться, нужно во время печати снять аналогичные осциллограммы (достаточно одной с пина соответствующего "ИНФ-Б") но именно с самого разъема.
И кстати в этом случае, при подкючении ардуины к "СЦВМ", сигнал "ГТВ" надо подключать не через резистор к +5 а прямо на общий провод.

61732
Offline
Зарегистрирован: 11.10.2020

Осцилограммы я не снимал с разъемов, а из самого кабеля делал вывод всех проводов. ГТВ на общий - это какой?

imp
Offline
Зарегистрирован: 20.06.2020

61732 пишет:
Осцилограммы я не снимал с разъемов, а из самого кабеля делал вывод всех проводов. ГТВ на общий - это какой?
Кабель соединяющий "СЦВМ" и "МПУ"? Тогда все в порядке, ничего переделывать не нужно. Да, кстати, на какой из трех разъемов "МПУ" он подключен? Если не на "Ш-3", то это значит не стандартная схема включения. Кстати схема кабеля указанная в #173 именно от этого кабеля? На ней сигнал "ГТВ" назван "ГОТОВ (ГТВ)". Общий можно взять рядом, он идет витой парой свитой с "ГТВ", и назван на схеме "(ОШБ, ГТВ)". Картинка сжата слишком сильно, по этому номера пинов не определить

61732
Offline
Зарегистрирован: 11.10.2020

Кабель соединяющий "СЦВМ" и "МПУ" подключен к Ш3. Схема от этого кабеля разъема Ш12. Витой пары там нет, просто экранированные провода. ГТВ, куда только не тыкал выдаёт ошибку перед печатью.

imp
Offline
Зарегистрирован: 20.06.2020

Ну на схеме витая пара с общим проводом, если заменили на экранированные провода, значит можешь цепляться к экранам. Посмотри чему равно напряжение в момент, когда происходит печать на сигналах "ОШИБКА (ОШБ)", "КВМ (СМС-К)", "ГОТОВ (ГТВ)" а так же проверь точно "КР" не подключен. Сигналы смотреть лучше осциллографом, если на них импульсы, то может быть важным вид импульсов.

61732
Offline
Зарегистрирован: 11.10.2020

Посмотрел данные сигналы при печати на 100ms и 1в. Результат нулевой. ГТВ на экранировку результата нет.

imp
Offline
Зарегистрирован: 20.06.2020

61732 пишет:
Посмотрел данные сигналы при печати на 100ms и 1в. Результат нулевой. ГТВ на экранировку результата нет.
То есть на всех указанных пинах 0? Еще, отключи МПУ и измерь напряжения на этих же контактах. (Нужно попробовать определить какие из них входы).

61732
Offline
Зарегистрирован: 11.10.2020

imp пишет:

61732 пишет:
Посмотрел данные сигналы при печати на 100ms и 1в. Результат нулевой. ГТВ на экранировку результата нет.
То есть на всех указанных пинах 0? Еще, отключи МПУ и измерь напряжения на этих же контактах. (Нужно попробовать определить какие из них входы).


Осцилограф работал в ждущем режиме, даже ноль не показал. При выключенном МПУ тот же результат.
У ЗПС только появляется постоянных 3.6 вольта - когда выключена МПУ в момент когда должна начаться печать или когда МПУ включена данное напряжение появляется в начале печати.

SLKH
Offline
Зарегистрирован: 17.08.2015

61732 пишет:
Кабель соединяющий "СЦВМ" и "МПУ" подключен к Ш3. Схема от этого кабеля разъема Ш12. Витой пары там нет, просто экранированные провода. ГТВ, куда только не тыкал выдаёт ошибку перед печатью.
1. подключить МПУ к СЦВМ 

2. подключить осциллограф или вольтметр к проводу ГТВ

3. включить СЦВМ. Измерить ГТВ. Результат?

4. Включить МПУ. Измерить ГТВ. Результат?

5. Нажать на МПУ кнопку ЭВМ. Измерить ГТВ. Результат?

6. Распечатать тестовый чек. Измерить ГТВ. Результат?

 

 

 

SLKH
Offline
Зарегистрирован: 17.08.2015

61732 пишет:

У ЗПС только появляется постоянных 3.6 вольта - когда выключена МПУ в момент когда должна начаться печать или когда МПУ включена данное напряжение появляется в начале печати.[/quote]

нормально. для инверсной логики "появляется напряжение" == "отсутствует/снимается сигнал". 

61732
Offline
Зарегистрирован: 11.10.2020

ГТВ ТОЛЬКО ПОКАЗЫВАЕТ ПРИ ВЫКЛЮЧЕННОМ  МПУ если выставить 200mv

imp
Offline
Зарегистрирован: 20.06.2020

Измерь тестером напряжения на "ОШИБКА (ОШБ)", "КВМ (СМС-К)", "ГОТОВ (ГТВ)" во время печати.

61732
Offline
Зарегистрирован: 11.10.2020

ОШБ- до печати 0.040 В., во время печати 0.081 В.
ГТВ- до печати 0.142 В., во время печати 0.142 В.
СМС-К - до печати 0.035 В., во время печати 0.035 В.

SLKH
Offline
Зарегистрирован: 17.08.2015

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

 

nik182
Offline
Зарегистрирован: 04.05.2015

  Я правильно понял, что при вытащенном разъёме неисправность загорается только после начала печати? До начала печати сигнала неисправность нет? 

61732
Offline
Зарегистрирован: 11.10.2020

nik182 пишет:

  Я правильно понял, что при вытащенном разъёме неисправность загорается только после начала печати? До начала печати сигнала неисправность нет? 

Да, когда должна начаться печать.

nik182
Offline
Зарегистрирован: 04.05.2015

Может иметь место два варианта. Первый - надо сравнить напряжения на всех выводах разъёма до и после разъединения. Это самый простой вариант. Второй - найти первый импульс на разъёме после подачи команды печати и реакцию на него. Это может быть любой провод. Здесь нужен многоканальный осциллограф, что бы точно определить как проверяется исправность. Сигнал должен быть не менее 3 вольт. На миливольты не обращать внимание.

61732
Offline
Зарегистрирован: 11.10.2020

В понедельник измерю и выложу.

MaksVV
Offline
Зарегистрирован: 06.08.2015

при подключенных разъемах  в жгуте между СЦВМ и МПУ  перекусывать по одному проводу, каждый раз наблюдая появление ошибки. Так можно выяснить какие провода влияют на появление ошибки.  Может только  один провод на это влияет

ПС. естественно после каждого перекусывания провода и наблюдения его восстанавливаем, чтобы не влиять на контроль других проводов

 

nik182
Offline
Зарегистрирован: 04.05.2015

Кусать это лишнее. Надо измерить напряжение покоя на всех проводах разъёма - без обращения к принтеру но с подключенным разъёмом. Потом отключить разъём и снова замерить, запустить печать, увидеть ошибку и снова замерить. Получить таблицу из 3 состояний всех проводов. Дальнейшие действия зависят от результата.

61732
Offline
Зарегистрирован: 11.10.2020

Замеры уже такие делал, в покое везде миливольты, если отключить разъем, то только  один сигнал  ЗПС, когда  должна начаться печать выдаёт постоянных 3.6 в.

nik182
Offline
Зарегистрирован: 04.05.2015

А если его (ЗПС) соединить с землёй через резистор 1к в этом состоянии сколько вольт остаётся?

61732
Offline
Зарегистрирован: 11.10.2020

Надо проверить так не скажу.

nik182
Offline
Зарегистрирован: 04.05.2015

Если останется меньше 1 вольта надо пробовать печать со снятой фишкой.

З.Ы. Очень интересно, что будет если со снятой фишкой начать печать, увидеть ошибку и надеть фишку обратно? В какой момент исчезнет ошибка? В момент одевания фишки или при следующем старте печати?

61732
Offline
Зарегистрирован: 11.10.2020

ЗПС (желтый сигнал) и ЗПР

 

ЗПС и ПЧТ

 

ЗПС и СМС-к

ЗПР и ПЧТ

61732
Offline
Зарегистрирован: 11.10.2020

ЗПР через резистор 3.1 в.

61732
Offline
Зарегистрирован: 11.10.2020

Психанул перерезал ГТВ, без него не печатает, когда должна начаться печать на СЦВМ загорается неисправность, т.е. так же если отключить разъем с МПУ.

nik182
Offline
Зарегистрирован: 04.05.2015

После перерезания ГТВ сколько на нём вольт с обоих сторон и что происходит, если ГТВ со стороны источника соединить через 1к с землёй и +5 вольт?     

61732
Offline
Зарегистрирован: 11.10.2020

 Так, я правильно понял.

nik182
Offline
Зарегистрирован: 04.05.2015

Да. 

Вам нужно обеспечить работу вывода информации без подключенной фишки. Для этого на ней надо сформировать такие же сигналы как формирует принтер. Если обрыв сигнала ГТВ даёт ошибку, значит надо на нём сделать сигнал противоположный существующему. Если на нем со стороны СЦВМ уровень 5 вольт, то нужно соединить с землёй. Если ноль вольт, то с+5.  

imp
Offline
Зарегистрирован: 20.06.2020

Не правильно. nik182 имел в виду два измерения, сначала соединить ГТВ через резистор на корпус, и измерить на ГТВ напряжение, затем ГТВ соединить через резистор на +5 вольт и опять измерить на нем напряжение.

61732
Offline
Зарегистрирован: 11.10.2020

Сделал два замера пока без резистора сигнал ГТВ: со стороны СЦВМ 0.136в., со стороны МПУ 3.6 в.

nik182
Offline
Зарегистрирован: 04.05.2015

Значит надо соединить  со стороны СЦВМ с +5.

 

61732
Offline
Зарегистрирован: 11.10.2020

Когда ГТВ на корпус и + 5 через резистор. В цепи 0 в. т.е. если замерить на ГТВ и землю.

nik182
Offline
Зарегистрирован: 04.05.2015

На разорванный провод ГТВ со стороны СЦВМ надо подать +5 вольт через 1к и никакого корпуса! Измерять напряжение относительно земли. По всем признакам при этом должна пропасть ошибка.  

61732
Offline
Зарегистрирован: 11.10.2020

Напряжение 0.45в. Ошибка не пропала.

nik182
Offline
Зарегистрирован: 04.05.2015

100 Ом можно найти вместо 1к? И попробовать?

61732
Offline
Зарегистрирован: 11.10.2020

5.3.2 В режиме ЭВМ устройство выдает сигнал ГТВ. В ответ на сигнал ГТВ источник информации выдается сигнал СМС-К, который блокирует управление работы устройства с панели управления, а также выдает сигнал ЗПС. Если печатающее устройство находится в ожидании поступлении информации, то сигнал ЗПС производит автоматическое включение электродвигателей.
5.3.3. При наличии сигналов ГТВ, ЗПС и подготовленной информации источник выдает сигнал сопровождения ИНФ-Б

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так именно надо на провод ГТВ в направлении источника информации подать сигнал - напряжение больше 3 вольт. Если 1к оказалось много, надо уменьшать. Это защитный резистор. Его можно уменьшить до 50 Ом. Т.Е. соединить +5 и провод ГТВ в сторону ЭВМ. Скорее всего этого будет достаточно для работы ардуины без принтера. Остальные сигналы управляют печатью и в общем не  нужны кроме строба и данных.  

SLKH
Offline
Зарегистрирован: 17.08.2015

nik182 пишет:

Ну так именно надо на провод ГТВ в направлении источника информации подать сигнал - напряжение больше 3 вольт. Если 1к оказалось много, надо уменьшать. Это защитный резистор. Его можно уменьшить до 50 Ом. Т.Е. соединить +5 и провод ГТВ в сторону ЭВМ. Скорее всего этого будет достаточно для работы ардуины без принтера. Остальные сигналы управляют печатью и в общем не  нужны кроме строба и данных.  

#213, пункт 3.14 и рисунки 1-2-3 мануала - не? 

nik182
Offline
Зарегистрирован: 04.05.2015

Не

 

61732
Offline
Зарегистрирован: 11.10.2020

Спасибо. СЦВМ ошибку больше не выдает, поставил резистор на 27 ом. Чек выбивает на эране. МПУ снял разъем. 

Есть смещение строк.

 

imp
Offline
Зарегистрирован: 20.06.2020

Попробуй увеличить скорость обмена и уменьшить длительность сигнала ПЧТ:

const int INFB_PIN = 2;         // Номер пина принемающего сигнал ИНФ-Б
const int INFB_INTERRUPT = 0;   //Номер прерывания которое использует ИНФ-Б

const int ZPR_PIN = 3;	        // Номер пина генерирующего сигнал ЗПР
const int PCHT_PIN = 4;		//Номер пина генерирующего сигнал ПЧТ
const int PCHT_DURATION = 40;   //Дополнительная задержка для генерции сигнала ПЧТ

const int max_counter = 16;	//Количество символов в строке
char buffer[max_counter+1];	//Буфер под строку вывода
unsigned int counter = 0;	//Счётчик строки
char char_table[16] = {'0','1','2','3','4','5','6','7','8','9','*','+',',','-','.',' '};

bool print_flag = false;
bool input_char_flag = false;
     
void setup()
{
  pinMode(ZPR_PIN, OUTPUT);
     pinMode(PCHT_PIN, OUTPUT);
     
     digitalWrite(ZPR_PIN, false);
     digitalWrite(PCHT_PIN, false);
     
     attachInterrupt(INFB_INTERRUPT, input_char, CHANGE);
     
  DDRB = 0b11110000;
  Serial.begin(57600);
}

void input_char ()
   {

   	if(digitalRead(INFB_PIN))
       {
       	buffer[counter] = char_table[(PINB & 0x0F)];
		counter++;
         	if(counter >= max_counter)
           {
           	print_flag = true;
             	digitalWrite(PCHT_PIN, true);
           }	
         	else
           {
           	print_flag = false;
           }
         	digitalWrite(ZPR_PIN, true);
       }
     	else
       {
       	digitalWrite(ZPR_PIN, false);
       }

   }

void loop()
{
     if(print_flag)
     {
       Serial.println(String(buffer));
       counter = 0;
       print_flag = false;
       delay(PCHT_DURATION);
       digitalWrite(PCHT_PIN, false);
     }
}

 

61732
Offline
Зарегистрирован: 11.10.2020

Спасибо. Все получилось. Попробовал использовать макрос PLX-DAQ, порт определяется, но информация не выводится мигает красным R. Может что-то не так делаю или это можно другим способом сделать. Хочу именно в excel, чтобы потом по этим цифрам которые на чеке, показывалась информация об неисправностях.

nik182
Offline
Зарегистрирован: 04.05.2015

Поздравляю со снятым разъёмом. С экселем не помогу. Раньше писал на visualbasice для офиса программы, которые получали данные из компорта и раскладывали по таблицам в 1997 офисе, но как сейчас с этим обстоят дела не знаю.   

61732
Offline
Зарегистрирован: 11.10.2020

Спасибо nik182, SLKH за помощь, но особую благодарность imp. Прошу прощения, что обращаюсь не по имени и отчеству, вы молодцы. Правда я еще пока не понял, как будет выводится информация в excel, надеюсь вы подскажите, но даже если это не возможно, будем копировать.

nik182
Offline
Зарегистрирован: 04.05.2015

Под PLX-DAQ нужно делать специальный вывод. Если количество строк на каждый вывод одинаково, то можно сначала считать данные в массивы, а потом сделать вывод в ком порт в соответствии с требованиями PLX-DAQ.

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