PDA

Просмотр полной версии : ПЛК100 и RS485 BT100



vegus
19.12.2011, 17:44
Задача связать по 485 ПЛК100 и насосы BT100. Протокол там свой.
Использую библиотеки SysLibCom и ComService, настраиваю COM0. Язык ST, CoDeSys 2.3.
Подряд запускаю функции записи и чтения SysLibCom. При этом пакет управления в прибор отправляется нормально, а ответ приходит только несколько последних байт пакета. То есть похоже ПЛК не успевает переключиться с передачи на прием.
Если это проблема софта, то существуют ли другие библиотеки работы с портом, более быстрые?

capzap
19.12.2011, 17:58
а код показать, необязательно использовать один буфер для передачи и приема

vegus
19.12.2011, 18:08
Код сделан по примеру, который уже был где то на форуме.
Там настройки порта на скорость 1200, четность, стоп бит. Открытие порта, и:
SysComWrite(Settings.Port,ADR(BufferW),8,0); (*запись в 485*)
SysComRead(Settings.Port,ADR(BufferR),8,0); (*чтение из 485*)
В ответ приходит только 3 последних байта. С настройками тоже поигрался, без результата.

capzap
19.12.2011, 18:34
что значит где то на форуме, может пример не рабочий, вот если бы Вы сказали что отсюда http://www.owen.ru/forum/showthread.php?t=11279, тогда хоть какое то представление можно иметь как Вы пытаетесь программировать, а без Вашего проекта в слепую ошибок не выловить

vegus
21.12.2011, 11:52
Спасибо, в примере по вашей ссылке более понятно, как работает библиотека SysLibCom. Изменил код, стало лучше, но 1-й байт по прежнему не принимается, возможно аппаратный косяк.
Файл проекта:
5273