-
ПЛК100 и датчики ИВТМ
Вопрос такой.
Есть у нас датчики ИВТМ. Температу и влажность по ним можно снимать при помощи rs485. По документации к библиотеке написано, что RS485 - это СОМ0. В PORTS библиотеки syslibcom нету значения СОМ0(Надеюсь исправите эту неточность в библиотеке). Потому выдает ошибку при установке параметров порта. Но кажется открывает 485. Данные передаются и принимаются.
ну вот возникает следующая проблемма. при подключении датчика к порту 485. В буффере порта черт знает какие данные. Откуда берутся не понимаю. К RS 485 подключен только датчик. При подключении датчика к RS232 через АС3 все работает нормльно, приходят правильные данные. Ну вот хотелось бы узнать ваши мысли по этому поводу. Выслушаю любые советы и предложения )))
-
может мне кто нибудь ответит что нибудь , а ?
-
Наводки и т.д.
Да, вполне может возникнуть ситуация что при подключении возникают посторонние символы в буфере.
Это же можно убрать предварительно (перед запросом к прибору прочитав буфер пока SysComRead не станет =0.)
-
Да делал я это. Предварительное чтение буфера, перед записью. Там ничего нету. Потому и обратился к вам. Через преобразователь AC3 и по RS 232 все отлично проходит , а при подключении напрямую к RS 485 выдает непонятно что. Это не может быть связанно никак с библиотекой syslibcom?
-
Ок проверим
А пробовали подключать через AC3M к компу и гонять гипертерминалом и вашей прогой данные? Программировал RS485 на ПЛК - проблема была именно при начальном старте, далее вроде все ок. Кстати версию прошивки не подскажете?
-
Скорее всего дело в линии.
-
PLCInfo
PLC model MODEL PLC 100
Binary VERSION 2.01.8
Need Target version 2.0-4.
Терминалкой не пробывал, попробую конечно. Но думаю что мало что изменится.
Почему думаете что в линии ?
-
А я наблюдал такие эффекты, с панелью на DCON-е. Постоянно какой-то мусор лез. По CRC он, конечно отсекался, но всё-же. А датчик на каком протоколе датчик? Есть контроль правильности пачки? Мусор в пачке или между (тогда он не страшен)?
-
Протокол обмена у датчиков свой.
Протокол обмена для приборов ИВТМ-7Н.
- установки порта – скорость 9600 бод, 8 инф. + 1 стоп-бит, без контроля
четности.
- Обмен начинается только по инициативе компьютера (все приборы
работают в режиме “slave”)
- Весь обмен ведется посредством передачи и приема ASCII символов (!!!
например, адрес устройства 0001 кодируется (дес) 48 48 48 49).
- Признак конца посылки: символ с кодом 0Dh.
- Все приборы имеют служебный адрес – FFFFh
Команда чтения данных:
$0001 RR 0000 08 B1<0d> (пробелы добавлены для удобочитаемости)
Здесь:
$ - символ начала запроса
0001 - сетевой адрес устройства
RR - команда чтения
0000 - адрес блока данных
(0000h – адрес блока измеренных данных)
08 - длина блока данных в байтах
С6 - контрольная сумма (один байт, арифметическая сумма
кодов всех символов)
<0d> - символ 0Dh
Правильный ответ:
!0001 RR 7A14BE41 AA6E3F42 2B (пробелы добавлены для удобочитаемости)
Здесь:
! - символ начала правильного ответа
0001 - сетевой адрес устройства
RR - в запросе была указана команда чтения
7A14BE41 - Температура, 4 байта в формате float, каждый байт
представляется двумя символами
в данном случае закодировано ~23.8 ºС
AA6E3F42 - Влажность, 4 байта в формате float, каждый байт
представляется двумя символами
в данном случае закодировано ~48 %
2B - контрольная сумма (один байт, арифметическая сумма
кодов всех символов)
<0d> - символ 0Dh
длжно принимать, типа такого:
'!0001RR7A14BE41AA6E3F422B$R'
принимает :
'‚Љ’I2$N$RўЉВєІ’љєў’2е$R'
-