Com port перезапуск

defecator
Дата: 24.05.2011 16:23:03
Мимопроходящий
Hello, defecator!
You wrote on 24 мая 2011 г. 13:16:24:

defecator
> А гальваническая развязка присутствует ? Если не
присутствует - пробуй сделать нормальное заземление

не факт что заземление поможет.
мы использовали оптронную развязку-переходник 485<-->232.


Да ну, забыл поди ? ;-)
Каким таким образом вы оптронами преобразовали дифференциальную линию RS485 в RS232 ?
Наверняка ведь заюзали какой-нить чип типа MAX1480/1490 ? А он уже внутри себя содержит все, что надо - и транс, и оптроны
Мимопроходящий
Дата: 24.05.2011 16:29:01

Hello, defecator!
You wrote on 24 мая 2011 г. 13:23:03:

defecator
Каким таким образом вы оптронами преобразовали
дифференциальную линию RS485 в RS232 ?
Наверняка ведь заюзали какой-нить чип типа MAX1480/1490 ? А он уже
внутри себя содержит все, что надо - и транс, и оптроны

вот такую чешскую хрень использовали:
http://www.papouch.com/cz/shop/product/tc485-prevodnik-rs232-na-rs485/

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

Jude
Дата: 24.05.2011 16:34:30
defecator,

пока набирал про "землю" - вы уже успели все сказать (

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

тоже валило жутко, когда в соседней комнате кто-то врубал ТЭНы.
Помогло установка UPSа (вместо фильтра) + земля + установка карточки для ком порта.
SergioSV
Дата: 24.05.2011 17:03:01
Сменил драйвера чипа FTDI с 2.04.16 от 02.2009 на 2.08.14 от 18.03.2011 будем наблюдать пока.
Будут ещё рекомендации с удовольствием рассмотрю.

Всем огромное спасибо!
Александр Спелицин
Дата: 24.05.2011 18:47:50
Уж сколько раз твердили миру...
Метод Terminate только устанавливает флаг Terminated в TRUE. И все!!!
А Ваш поток в это время работает.

Код метода Execute в студию!!!
SergioSV
Дата: 25.05.2011 09:50:11
Александр Спелицин,

constructor TAPIComPort.Create;
begin
  inherited Create;
  FreeOnTerminate:=True; // На сколько я понимаю это уничтожит весь поток при завершении Execute
end;

procedure TAPIComPort.Execute;
begin
 while not Terminated do
    Sleep(1);
end;

defecator
Дата: 25.05.2011 09:56:13
SergioSV
procedure TAPIComPort.Execute;
begin
 while not Terminated do
    Sleep(1);
end;


Какой богатый код ! Зачем поток ?
SergioSV
Дата: 25.05.2011 10:04:53
defecator,

Его методы вызываю снаружи когда надо. А поток затем чтоб можно было его контролировать.
Александр Спелицин
Дата: 25.05.2011 10:28:47
В корне неправильно.
Ищите в примерах к MSDN файлы tty.c и tty.h. Это пример терминальной программы, работающей с COM портом. Смотрите как там сделано.
defecator
Дата: 25.05.2011 10:31:33
SergioSV
defecator,

Его методы вызываю снаружи когда надо. А поток затем чтоб можно было его контролировать.


Скажи, ты же вроде не идус ?