PDA

Просмотр полной версии : Прием данных по Com порту



Klik
14.01.2008, 14:53
необходимо принимать данные с электронного штангенциркуля по Rs-232.
изменение состояния линии Dtr инициирует передачу отображенного значения, при этом Rts должно быть все время включено.
можно ли это реализовать на контроллере.

Kirill
14.01.2008, 15:25
необходимо принимать данные с электронного штангенциркуля по Rs-232.
изменение состояния линии Dtr инициирует передачу отображенного значения, при этом Rts должно быть все время включено.
можно ли это реализовать на контроллере.

ПЛК использует только линии TxD, Rxd и GND

Филоненко Владислав
14.01.2008, 20:50
1. попробуйте соединить Dtr и Rts,а плк пусть постоянно опрашивает. более подробно можно посоветовать если выложите док-ю или ссылку на нее.

Klik
15.01.2008, 08:01
Вся информация которая есть это 2 листочка факса, сайт производителя не русифицированный.
Все, что касательно обмена:
Скорость передачи данных - 4800 бод
Паритет - even
Данные - 7 разрядный код ASCII
Стартовых битов - 1
Стоповых битов - 2
Остальное на рисунке.
http://i014.radikal.ru/0801/ea/5e31a878980d.jpg

Филоненко Владислав
15.01.2008, 09:38
и где рисунок?

Klik
15.01.2008, 11:35
а вам рисунок разве не виден?
рисунок вставлен в виде Bb-кода.

Филоненко Владислав
15.01.2008, 12:32
Нет, используйте jpg

Klik
15.01.2008, 14:10
вроде получилось.

Филоненко Владислав
16.01.2008, 10:40
а не могли ьы вы отсканировать и выложить всё, а то не понятно

Klik
16.01.2008, 12:35
Больше ни чего нет. Остальное рисунок подсоединения кабеля, замена батареи и технические данные.
Штангенциркуль TESA digit-cal.
Можно ли использовать дискретный выход для инициировании передачи значения по DTR.

Филоненко Владислав
16.01.2008, 16:35
да, ключевой с делителем для получения необходимого уровня.
от реле будет шум при замыкании/размыкании

Klik
29.02.2008, 15:25
Опять поднимаю эту тему. Наконец руки дошли до прибора.
Пробую подсоединять RTS и DTR штангенциркуля на дискретный вход контроллера, а TXD и RXD на COM порт контроллера, но что-то ни чего не выходит. Землю обязательно подсоединять на COM порту.

Филоненко Владислав
29.02.2008, 15:49
Не забудьте соединить земли порта и дискретного выхода

Никита Заиграев
11.03.2008, 06:01
Вряд ли получится. Конфигуратор ПЛК не поддерживает прием простых данных с RX-232. Только по протоколу

Малышев Олег
11.03.2008, 07:38
Никита - какой раз ответ не в тему...
ПЛК поддерживает прием и передачу по последовательным портам через библиотеки SysLibCom и UNM

Klik
11.03.2008, 09:45
Получилось управление, через БП на 12V.
Еще немного разъясните, что значить "ключевой с делителем". Это подразумеваеться ШИМ сигнал. Как подключить при данном управлении.
Когда указываешь Number of output равный 3 моргать начинает выход 3.1

Филоненко Владислав
11.03.2008, 09:57
Ключевой выход коммутирует 24 В, а надо 6В. (Не 12! порт сожжёте).
А делитель - это 2 резистора, от средней точки отбирается 6 В.
Выхода на ПЛК группируются в 6 групп. В группе либо 1 реле, либо 2 ключа.

Klik
11.03.2008, 10:13
У меня ПЛК100-24.Р-М соответственно ключей нет есть "сухой контакт", как быть в этом случае.

Филоненко Владислав
11.03.2008, 10:44
Использовать доп. блок питания, к-й и коммутировать.
Однако я подозреваю, что если Вы постоянно подадите +6В на необх. ножку, всё будет работать и без коммутации

K.I.V.
18.03.2008, 01:52
успешно ?
... где 6В, там 12 влезит ... Россия

Филоненко Владислав
18.03.2008, 08:20
успешно ?
... где 6В, там 12 влезит ... Россия

Извините, K.I.V., а не расшифруете? И причём здесь Россия?

K.I.V.
18.03.2008, 10:51
Извините, K.I.V., а не расшифруете? И причём здесь Россия?

да не проблема ...
см. личку

Филоненко Владислав
18.03.2008, 11:21
Много эмоций. А по поводу ответственности - она несомненно нужна. Наблюдая бардак в космической области, к которой немного имею отношения, думаю выборочные расстрелы бы помогли.

Klik
21.03.2008, 14:04
Если в стране бардак, значит это кому-нибудь нужно.
Теперь ближе к теме.
Чтение данных произвожу соответственно используя библиотеку SysLibCom. Порт открывается, параметры установлены соответственно документации. Запросы я не посылаю так-как нет необходимости.
Работает только на прием, но при этом данных так и не принимает.
Со штангенциркуля отсылка данных идет, присутствует индикация.
Проверяя с помощью проги Terminal, данные приходят.

В чем может быть проблема.
Кусок проги с приемом данных:
sz:=SysComRead(com_num,ADR(rcvbuf)+i,1024,0);
IF sz<>0 THEN
snd_str2:=CONCAT(snd_str2,BYTE_TO_STRING(rcvbuf[i]) );
i := i+sz;
END_IF

Филоненко Владислав
21.03.2008, 14:13
Порт должен быть открыт и настроен.
Что в переменной com_num?
Что возвращает функция?
Как часто она вызывается?