-
Окончательно побороть не смог. Там, где было критично, я сделал просто: читаю СМС несколько раз подряд и сравниваю. Трижды прочёл с одинаковым результатом - считаем чтение успешным. В принципе, после этого больше проблем не встречал.
То же и с командами: шлю команду до получения требуемого ответа.
По итогам разработки работа через RS-485 проходит чуть лучше, чем через RS-232.
Хотя, в целом, ситуация очень напоминает 90-е годы, когда модемы со скоростью >2400 цепляли к портам, сделанным на 8250 или 16450. Кстати, тогда такие проблемы решались зажиманием скорости порта на 2400 (на 4800 потеря байт уже проскакивала). Здесь я уже не помню, пробовал ли это делать, или нет.
Кстати, модемы в этом случае делились на две категории, кто такое издевательство выносил, и кто просто вис при появлении большого потока данных.
Последний раз редактировалось Elka; 29.11.2011 в 14:06.
Причина: Две категории модемов.
-
Те же проблемы с ПЛК-110-32.Ни через порт RS-232 Debug ни через RS-232 в режиме CSD не работают,хотя порты исправны (проверка портов через гипертерминал и спомощью панели оператора ИП320).Проверка связи производилась через модем Siemens.
Вторая проблема с этими ПЛК -постоянно горит индикатор "Связь" независимо от того есть ли связь или нету.
-
Та же проблема ( ПЛК63 + syslib.com ), теряются байты.
Симптомы - при чтении из "порта" кол-ва байт меньше чем находится в буфере.
Например в буфере 10 байт,
SysComRead( port, ADR( dest ), 10, 0 ) -> 10
все хорошо, а
SysComRead( port, ADR( dest1 ), 5, 0 ) -> 5
SysComRead( port, ADR( dest2 ), 5, 0 ) -> 4
причем теряется 6 байт.
ПРИЧЕМ НА ПЛК100 ВСЕ РАБОТАЕТ !!! Следовательно проблема не в ПРОГРАММЕ
-
-
У меня тоже всегда проявлялся симптом, что при побайтном чтении потери чаще, чем при блоковом. А две команды чтения у вас в одном цикле ПЛК, или в разных?
Вот интересно, на ПЛК-73 никто с такими симптомами не встречался? Я до сих пор грешу на железо ПЛК-63, но после внедрения "тройного чтения" проблема для меня перестала быть актуальной. Но это, конечно, не правильно, т.к. могут возникать ситуации, когда таким образом можно и потерять входящее СМС - при удалении отработанных, когда ответ на команду удаления придёт "покоцаный". Опять же решается для критичных взаимодействий внедрением методов гарантированной доставки, т.к. СМС может и просто не дойти - встречалось при межоператорских СМС - с МТС(клиент) на БиЛайн (ПЛК). Всё зависит от проекта. в общем и целом мне 63ий нравится. Недорог и функционален. Да и работает без серьёзных нареканий.
Вот жду работающего модема линейки МОДУС - хочу посмотреть, как это будет работать там.
-
пробовал и так и так, результат одинаковый
-
Эту проблему можно обойти, если забыть про то, что при чтении ответа в буфере может появиться "мусор".
Просто раньше ПЛК100 + ИП320, а сейчас захотелось ПЛК63. Переделывать придется довольно много, а времени мало, да и не очень хочется.
Настройки порта пробовал разные ( baudrate, parity и тд ) эффект остается.
Может использование для настройки порта SysComSetSettingsEx() поможет решить проблему. Но как "правильно" заполнять COMSETTINGSEX я описания не нашел.
БЫЛО БЫ ОЧЕНЬ ЗДОРОВО, ЕСЛИ ПРЕДСТАВИТЕЛИ "ОВЕН" ОТПИСАЛИСЬ БЫ ПО ДАННОЙ ПРОБЛЕМЕ.
-
Тоже столкнулся с проблемой потери данных... При чтении СМС при каждом запросе (at+cmgr) длина прочтенного СМС разная... Полностью получить текст СМС-ки удалось при снижении скорости до 2400...
Не помогли ни полный нуль-модемный кабель с аппаратным управлением потоком, ни вариации и настройками порта и модема.
MasterOPC в 50% запросов выдает неверную контрольную сумму. Проблему решил отказавшись от ноутбука с аппаратным COM портом и перейдя на стационарный компьютер с PCI карточкой портов.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума