|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
13.09.2016, 18:28 | #1 |
Новичок
Регистрация: Sep 2016
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Trace Mode ошибка 10054
Добрый день.
В TraseMode6 при обращении к переменной типа Bool возникает ошибка 10054. Контроллеры Pixel 2511. Обмен по TCP/IP. Причем часть системы работает а часть серьезно виснет. В TraseMode пока ответа не дали. Может кто сталкивался? |
14.09.2016, 10:59 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trase Mode ошибка 10054.
Цитата:
http://forum.adastra.ru/cgi-bin/ulti...;f=35;t=000326 разрывы соединения по инициативе устройства - ошибка 10054 Что-то не так сервер делает, что сетевой модуль аж соединение разрывает. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
14.09.2016, 12:06 | #3 |
Новичок
Регистрация: Sep 2016
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Trase Mode ошибка 10054.
Замечательно. Только в Техподдержке TraseMоde другая версия.
"Проблема нам известна. В этих контроллерах (фирмы Senetics) искусственно разрывается соединение при возникновении паузы в запросах около 1 с. При большом количестве контроллеров и однопоточном трафике задержки между запросами весьма вероятны. В текущем релизе Trace Mode 6 есть возможность организовать многопоточный режим обмена по Modbus TCP. В определенных пределах это проблему решает. Мы обращались в фирму в 2014 г. с предложением изыскать способ увеличения блокировкочного таймаута. Ответа не получили." Проблема есть, проблема известна, а результата нет. На объекте уже стоят 50 контроллеров. Менять? И отказываться от них в дальнейшем? |
14.09.2016, 12:26 | #4 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trase Mode ошибка 10054.
Цитата:
Да нет, версия не другая, техподдержка так и говорит - медленный опрос сервером, приводящий к закрыванию соединения сетевым модулем. Я недавно отвечал на подобный вопрос, поэтому приведу вам часть своего ответа: Цитата:
При этом по ответу техподдержки в целом понятно, почему их сервер так работает - видно, что человек не совсем понимает, что увеличение времени не устранит проблему, а лишь слегка её отодвинет, породив при этом ещё больше вторичных проблем. Представьте, что мы послушались этого неразумного предложения и сделали так, что модуль закрывает соединение через час. Всё прекрасно работает до тех пор, пока не случается одно из трех событий: 1) Скада-систему перезапускают. Модуль настойчиво держит несуществующее уже соединение и сервер не может до него целый час достучаться. Ничего не работает, дети орут, женщины причитают, по щеке пуско-наладчика медленно стекает скупая мужская слеза 2) Количество контроллеров переваливает 1000 штук, полный опрос становится дольше часа, сетевые модули массово закрывают коннекты. Сегменты сети вываливаются в "Нет связи" на большие промежутки времени. Опять ничего не работает, опять орут дети, опять причитают женщины, а с головы пуско-наладчика падает клок седых волос. 3) Роутер затупил, потерял пакет данных (это TCP, по протоколу это штатная ситуация, а в случае китайского роутера так вообще ежесекундная обыденность на больших нагрузках), Но модуль настойчиво держит несуществующее уже соединение и сервер не может до него целый час достучаться. Ничего не работает, дети срывают голос, женщины выплакали все слёзы, пуско-наладчик кончает жизнь самоубийством. Не хочу учить жизни программистов Адастры, но с их стороны нужно немного: внимательно вчитаться в стандарты TCP и сделать так, как там рекомендовано - время жизни пакета 15 секунд и три попытки возобновления коннекта до получения отказа. Повторю - это не какие-то космические исследования и уровень бога в программировании. Это просто обычное тупое чтение стандартов и следование как самим стандартам, так и рекомендациям к ним. Вам же просто посоветую перейти на любой другой нормальный сервер. МастерOPC с недавних пор очень хорош. Старый добрый Lectus OPC/DDE server тоже играюче справляется с такими детскими ситуациями. Ну а что сервер адастры на любом оборудовании не справляется на больших нагрузках - это известный интернету факт. Со временем допилят. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 14.09.2016 в 12:47 |
||
14.09.2016, 12:43 | #5 |
Senior Member
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trase Mode ошибка 10054.
Я правильно понял, что медленный опрос сервером, это пауза между запросами более 1 с?
__________________ RTFM |
14.09.2016, 12:50 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trase Mode ошибка 10054.
Цитата:
Видать, на 1 секунду опроса у сервера адастры ещё накладных расходов иногда возникает как минимум на 2 секунды. Вот модуль и закрывает соединение. Ещё нужно отличать причину отказа: Reset by peer - это закончился тайм-аут. И Refused - это сокет модуля уже кем-то занят. Собственно, маленький тайм-аут как раз и связан с борьбой с "Refused". Например, пинганул кто-то контроллер, сервер не может подключиться. Прошло 3-5 сек - подключается и работает. Всё в рамках разрешённых 15 секунд. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
14.09.2016, 13:21 | #7 |
Senior Member
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Меня, в общем-то, не точное время интересовало, а сам принцип. Если модуль уже закрыл соединение, то Trace Mode не может до него достучаться?
__________________ RTFM |
14.09.2016, 14:16 | #8 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Ну, грубо говоря, если вы кричите в окно другу и вдруг порыв ветра захлопывает это окно, то вы же наверняка его открыть попытаетесь, а не будете в стекло орать Лектус и МастерОПС переоткрывают соединение. Задержка примерно 2 миллисекунды. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
14.09.2016, 14:37 | #9 |
Senior Member
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Тогда я вообще ничего не понимаю в ответе техподдержки Адастры. В чём проблема то?
Эт я знаю, с ними и работаю. Просто на одном из объектов верхний уровень будет делать другая организация, на самописном драйвере, как бы там такая же проблема не вылезла. __________________ RTFM |
14.09.2016, 14:58 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Если драйвер будет писать обычный программер, а не системщик, то вылезет стопудово В менталитете дело, подходы разные нужны. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
16.09.2016, 13:41 | #11 |
Новичок
Регистрация: Sep 2016
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Отправил эту переписку в TraseMode, попросили проект и логи с ошибками. Отправил.
И все же ведь я не первый кто пытается напрямую связать TraseMode и Pixel, неужели все таки придется все переделывать и ставить между ними OPC-сервер. Сейчас подходит следующий объект там Pixel и SMH правда количество намного меньше и тоже TraseMode. Ждать того же? |
16.09.2016, 14:35 | #12 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Подключали до вас, конечно. Что-то около сотни устройств разных, не считая наших контроллеров. Их сервер так и не заработал удовлетворительно даже на 70 из них, люди на МастерОПС перешли и были рады. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 16.09.2016 в 15:53 |
|
19.09.2016, 15:32 | #13 | |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
PS СОВЕТ! Когда закончите наладку своей системы - переустановите с нуля Windows и все ПО... с ТМ6 это очень хорошо помогает и избавляет от частых зависаний системы. |
|
18.05.2018, 15:18 | #14 | |
Новичок
Регистрация: May 2018
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Планируем делать уровень SCADA на Trace Mode. Подскажите, рекомендация АдАстры по выполнению групповых Modbus-запросов, а также использование многопоточного режима Modbus TCP решили проблему??? На их форуме Ваш вопрос "замялся" и результат не ясен. |
|
22.05.2018, 10:21 | #15 | |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Хотя я сомневаюсь что вопрос решили. Лучше сразу запланировать докупить MAsterOPC... он стоит не дорого, работает надежно. Можно даже при желании реализовывать нестандарнтые протоколы связи путем написания скриптов (не раз уже выручала эта возможность). |
|
14.06.2018, 19:09 | #16 | |
Новичок
Регистрация: May 2018
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Недавно на столе появился Pixel 25xx и мне удалось потестировать опрос контроллера через Мастер OPC и Trace Mode (следил вайршарком). Выяснил следующие моменты отражение которых в явном виде не увидел ни в данном топике, ни на форуме Адастры: - Пиксель закрывает соединение в случае отсутствия запросов от СКАДЫ не через 3 секунды как указано выше, а через полторы (о чем производитель сообщает на 32 странице РЭ SGN.312005.05РЭ); - В случае закрытия сокета Пиксель направляет TCP пакет, в котором есть соответствующие флаги (RST,ACK). Мастер OPC в случае появления данного пакета следующий запрос начинает с открытия сокета. Trace Mode данный TCP пакет игнорирует, что приводит к нескольким попыткам запросить информацию (это отслеживается по внутренним логам трейсмода, однако, вайршарк показывает, что при этом в сеть запросы не идут), а также выжиданию таймаута на переподключение, который по умолчанию в Trace Mode равен 30 с. Затем Трейс Мод открывает сокет и направляет запрос. Направил в АдАстру свои наблюдения касательно реакции СКАДА-системы на сообщения о закрытии удаленного сокета, надеюсь что разработчики добавят в СКАДУ механизм аналогичный тому, что используется в Мастер OPC. Пока со стороны Технической поддержки следующие рекомендации для улучшения ситуации: - можно использовать конфигурационный ключ «TCP_DIFCONN09=1» , а также «TCP_DISCONN09=1». Первый из них уберет 30-ти секундный таймаут на переподключение. Второй ключ вроде как тоже нужен, но сколько не эксперементировал его суть уловить не смог… У меня с данным ключами в случае закрытия контроллером сокета очередные данные приходят через 4 цикла обработки канала в Trace Mode; - по умолчанию в Trace Mode все Modbus-TCP устройства опрашиваются в одном потоке, соответсвенно чем больше устройств, тем больше может оказаться пауза между запросами. Однако есть возможность конфигурационными ключами разнести устройства на 16 потоков, что значительно улучшит динамику; - Чтобы сократить число запросов нужно использовать групповые модбас-запросы, поддержка которых есть как в трэйс мод так и в Пикселе. Модбас карта адресов в Пикселе в этом плане очень хороша! - Каналы Trace Mode которые выполняют опрос обрабатываются в порядке возрастания их ID. Предлагается создавать каналы таким образом, чтобы не сразу вытаскивать все данные с одного контроллера в сети, а по частям. Сначала опросить часть адресов на первом контроллере, потом - часть на втором, затем опять вернуться к первому и т.д. То есть не засиживаться долго на опросе одного контроллера. На мой взгляд решение рабочее, но реализация будет не простой т.к. ID канала после создания уже не поменяешь. Добавлено через 2 минуты Возможно ли добавить функцию изменения таймаута закрытия сокета для сетевого адаптера Pixel? Видел похожую опцию в контроллерах Wago |
|
15.06.2018, 00:34 | #17 | ||
Senior Member
Регистрация: Aug 2013
Сообщения: 3 794
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Цитата:
|
||
15.06.2018, 10:58 | #18 | |
Новичок
Регистрация: May 2018
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Неправильно накручивать промежуточное звено (OPC-сервер) и к тому же платить за него если драйвер в Трейс Моуд декларирован. Чем больше клиентов сообщит Адастре про проблему, тем быстрее она решится. Надо быть активным в этом плане. Пока же от технической поддержки я получил рекомендации, которые динамику обмена при закрытии сокета улучшили на порядок. Последний раз редактировалось Grigor, 15.06.2018 в 11:18 |
|
15.06.2018, 11:10 | #19 | |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
|
|
15.06.2018, 11:39 | #20 | |
Новичок
Регистрация: May 2018
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Под "вылетать всего 3-4 раза в сутки" Вы имеете ввиду, что падал Рантайм или то, что на время обрывался обмен с Модбас-устройствами? |
|
15.06.2018, 11:46 | #21 | |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
(И это был серверный Xeon и 8 Гб оперативной памяти)... |
|
15.06.2018, 12:06 | #22 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Настроить тайм-аут сетевого модуля невозможно и вредно. Почему вредно - уже расписано выше. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 15.06.2018 в 12:21 |
|
15.06.2018, 13:45 | #23 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Trace Mode ошибка 10054.
А SCADA обязана использовать протокол OPC для реализации обмена между "драйвером" и непосредственно своей системой?
PS в SCADA-системе Citect мы тоже первое время пользовались OPC сервером.. думали так будет надежнее... но в итоге сейчас без OPC подключили уже несколько сотен разношерстных контроллеров по RS485 через шлюзы в Эзернет (используя технологию ModbusOverTCP) и по ModbusTCP и по BacnetIP в одну систему, используя встроенные драйвера Ситекта... все работает просто изумительно... забыли про ТМ6, как про страшный сон... PPS бывали случаи когда у нас отваливалась связь c оборудованием подключенным старым способом через OPC из-за его зависания. Помогали перезагрузки OPC сервера... случаев с пропаданием опроса из-за зависания Citect'а у нас не было. |
15.06.2018, 14:50 | #24 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Trace Mode ошибка 10054.
Цитата:
Вообще, глупо делать внутренним протоколом не OPC, т.к. мгновенно лишаешься такого хорошего обвеса, как интерконнект между приложениями MS sertified, т.е. не можешь данные отправлять во всякие аксессы (и БД, которые он поддерживает), ворды (генерация отчётов отчёты), эксели (оно же), поддержку мускула писать свою придётся. Хотя, может и в ТМ психи сидят, которые любят писать свои велосипеды под интерконнект и следить за совместимостью при выходе очередного обновления на винду. Но это топ-менеджменту ТМ реально отмороженным на всю голову нужно быть, чтобы тратить столько денег на то, на что можно деньги не тратить. PS. У вас сервер зависал, а не протокол. Это всего лишь говорит о том, что программеры сервера хуже, чем программеры ситекта. Но они бы и OPC-сервер нормальным написали бы и не висло ничего) Опять же, не удивлюсь, что все эти "драйверы" имеют на стороне интерконнекта старый добрый OPC или DDE, если возможностей OPC им мало. Причину я описал выше. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|