ardsoft

Продукты => arOPC сервер => Тема начата: Voldemus от 28.10.2017, 15:52:38 pm

Название: «Задержка» - время "молчания"
Отправлено: Voldemus от 28.10.2017, 15:52:38 pm
Добрый день.

В настройке Канала связи установлена Задержка - 100 мс, но посылки осуществляются раз в 10 секунд. В чем дело ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 29.10.2017, 11:02:49 am
Здравствуйте.

Этот параметр отвечает за паузу, выдерживаемую перед отправкой очередного пакета.
Скорее всего у вас в настройках устройства выставлен период опроса 10 секунд.

Айрат.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 29.10.2017, 16:51:54 pm
У меня стоит 100 мс.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 29.10.2017, 19:40:10 pm
Это вы настройки канала смотрите.
А в устройстве которое вы опрашиваете какие настройки?

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 30.10.2017, 12:06:14 pm
Устройство, которое я опрашиваю дает отклик сразу после получения запроса.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 30.10.2017, 12:50:38 pm
Это вы настройки канала смотрите.
А в устройстве которое вы опрашиваете какие настройки?

Айрат

Master сети должен посылать запросы с заданной периодичностью независимо от того что происходит со Slave сети. Slave может вообще не откликаться на запросы.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 30.10.2017, 13:32:45 pm
Здравствуйте.

Под "Устройством" я имею в виду объект "Устройство" в OPC сервере.
Под настройками устройства я имею в виду те настройки что вы сделали для опроса физического устройства в OPC сервере.

Пришлите пожалуйста вашу конфигурацию и я подскажу что сделать что бы увеличить частоту опроса.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 30.10.2017, 13:53:27 pm
У меня ваш OPC вообще перестал запускаться.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 30.10.2017, 15:51:02 pm
Попробуйте настройки канала как на картинке.
А то что не запускается, может он у вас запущен уже и просто в трее висит?

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 12:30:49 pm
Ваш сервер вообще перестал делать посылки в порт. В чем может быть причина ?

У меня еще есть OPC сервер фирмы "КРУГ". Вот с ним все нормально.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 12:41:38 pm
Вот лог после запуска.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 31.10.2017, 13:27:49 pm
Пришлите пожалуйста полную конфигурацию. В прошлый раз вы прислали просто шаблон устройства, по нему невозможно сказать что и как вы настроили.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 14:02:25 pm
Вот шаблон.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 14:10:39 pm
Пришлите пожалуйста полную конфигурацию. В прошлый раз вы прислали просто шаблон устройства, по нему невозможно сказать что и как вы настроили.

Айрат

Не понятно как создать полную конфигурацию. Может это.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 31.10.2017, 16:07:08 pm
В присланной конфигурации нет настроенных каналов связи с устройствами (Image1.png).
Соответственно в настроенном объекте "Устройство" нет привязки к этому каналу (Image2.png).
Поэтому и опроса нет.

1. Необходимо настроить канал связи, скриншот с настройками я вам высылал ранее.
2. Добавить устройство и в нем сделать привязку к каналу.

Конфигурация OPC сервера открывается и сохраняется с помощью пунктов меню: "Файл - Открыть", "Файл - Сохранить" и "Файл - Сохранить как...".
Так же вы можете скачать с сайта инструкцию, в ней написано как настроить каналы связи, как настроить опрос устройства и т.д (http://ardsoft.ru/Downloads/arOPC/arOPC.pdf (http://ardsoft.ru/Downloads/arOPC/arOPC.pdf)).

Айрат.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 16:59:48 pm
Посылки в порт есть, но период посылок 10 сек., а должно быть 100 мс.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 18:20:39 pm
Еще один вопрос - есть ли возможность посмотреть отклик устройства (какие байты приходят от устройства в ответ на обращение) ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 18:44:48 pm
Если поставить 1,5 стоп бита, то посылок в порт нет.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 31.10.2017, 19:38:20 pm
Что бы посмотреть что происходит в канале связи надо перейти в пункт меню "Диагностика - Каналы связи" и в выпадающем списке выбрать канал.

Modbus устройства обычно работают с 1 или 2 стоп битами.

Вы говорили что OPC сервер круга работает с устройством, сравните настройки с arOPC, скорее всего дело просто в настройках.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 20:29:25 pm
Настройки OPC серверов совпадают. OPC "КРУГ" делает все в соответствии с настройками, а ваш OPC нет. Меня не понятно что у вас творится с периодом опроса.
Если 1,5 стоп бит не отрабатываются, то зачем они предлагаются ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 31.10.2017, 20:46:07 pm
Еще не понятно с контрольной суммой (КС). Расчет КС принимаемой и отправляемой посылки в моем ПЛК производится одинаковым образом. КС принятого пакета совпадает с расчетной КС, т.е. с приемом пакета из сети все в норме. С передачей отклика все нормально, кроме КС. В логе OPC сервер пишет, что КС, передаваемая в отклике, не верна.

OPC "КРУГ" то же пишет, что КС отклика не верна.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 31.10.2017, 21:38:12 pm
Вот теперь картина проясняется.
Пришлите пожалуйста логи OPC сервера с включенным в них протоколом обмена с устройством.
Что бы это сделать необходимо перейти в пункт меню "Работа - Настройки" и в появившемся окне на вкладке "Логи" выставить галочку "Сохранять в протокол обмен с устройствами".
Теперь по поводу периода опроса. На рисунке показаны настройки которые вы используете для опроса устройства.
Период опроса - 1000 мс. Что бы тег опрашивался раз в 100 мс соответственно период опроса необходимо выставить в 100.
Ожидание после отказа - 10000 мс. А это как раз и есть тот параметр который "тормозит" опрос на 10 секунд. Смысл его в том что бы при отказе опрашиваемого устройства, его отсутствие сильно не сказывалось на опросе других устройств, сидящих на этой же линии, соответственно OPC сервер на 10 секунд прекращает опрос этого устройства.

Я так понимаю прошивку для ПЛК вы пишете самостоятельно? Для проверки корректности контрольной суммы пакета можно воспользоваться Эмулятором Modbus (http://www.ardsoft.ru/mEmulator.html (http://www.ardsoft.ru/mEmulator.html)), меню "Утилиты - Проверка CRC16".

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 06.11.2017, 12:58:09 pm
Добрый день.

Почему у меня картинки с дефектами ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 06.11.2017, 12:59:02 pm
Тут то же.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 06.11.2017, 14:08:38 pm
Здравствуйте.

Вы видимо системный шрифт поменяли. Да, недосмотр с нашей стороны, постараемся учесть в следующих релизах.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 06.11.2017, 14:50:11 pm
Ничего я не менял. У меня Windows 7.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 06.11.2017, 16:37:51 pm
Я имел в виду размер текста.
Посмотрите в настройках "Панель управления - Оформление - Экран".
У вас или средний или крупный шрифт.

Айрат.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 06.11.2017, 17:15:25 pm
Может и так, только ваше приложение должно работать корректно в любом случае.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 06.11.2017, 21:41:56 pm
Постараемся учесть в следующих выпусках.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 09.11.2017, 15:52:26 pm
Какое время OPC сервер держит шину RS-485 после окончания передачи ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 09.11.2017, 17:42:07 pm
Здравствуйте.

Что вы понимаете под словом "держит"?
Если речь о переключении с передачи на прием, то все зависит от драйвера устройства.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 09.11.2017, 18:25:44 pm
Здравствуйте.

Что вы понимаете под словом "держит"?
Если речь о переключении с передачи на прием, то все зависит от драйвера устройства.

Айрат

OPC сервер передал пакет, далее должен отпустить шину и встать на прием для получения пакета отклика. Вот я и спрашиваю после передачи пакета OPC сервер сразу шину отпускает или еще какое-то время держит, а потом отпускает и становится на прием. Если какое-то время держит шину, то какова величина этого времени.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 09.11.2017, 18:45:40 pm
В Windows вообще нет понятия удержания шины. Все это делается автоматически, драйвером COM порта. OPC сервер понятия не имеет с каким портом он работает, RS232 или RS485.
Можно читать что переключение осуществляется сразу после передачи.
На тот случай если драйвер медленно переключается из режима передачи в режим приема, или устройство "тупит", в настройках COM порта предусмотрен параметр "Задержка", на это время после приема данных от устройства в COM порт ничего не отправляется для того что бы устройство успело переключиться из передачи в прием.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 09.11.2017, 19:49:08 pm
Хорошо. Мое устройство приняло пакет от OPC сервера, как быстро устройство должно ответить ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 09.11.2017, 20:07:25 pm
Все зависит от драйвера.
Встречаются и такие экземпляры которым и 50 мс не хватит.
А вообще в Modbus период тишины должен быть 3,5 символа.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 09.11.2017, 20:45:56 pm
Все зависит от драйвера.
Встречаются и такие экземпляры которым и 50 мс не хватит.
А вообще в Modbus период тишины должен быть 3,5 символа.

Айрат

Значит мое устройство может ответить не раньше времени прохождения 3,5 символов иначе пакет-отклик будет принят неверно ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 09.11.2017, 20:48:11 pm
Да.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 09.11.2017, 20:55:34 pm
А максимально сколько времени OPC сервер может ждать отклик от устройства ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 09.11.2017, 21:22:59 pm
Какой таймаут зададите в настройках канала связи столько и ждет.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 20.11.2017, 16:51:31 pm
Добрый день.

У меня получилось связать свой ПЛК с вашим OPC сервером. Обмен идет.

Хочу напомнить, что вы обещали поправить это.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 20.11.2017, 22:13:52 pm
Здравствуйте.

Да, я помню, постараюсь не затягивать.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 23.11.2017, 15:11:30 pm
Добрый день.

Возможно ли командой с кодом 4 прочитать за один запрос несколько регистров ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 23.11.2017, 22:44:47 pm
Здравствуйте.

Да, OPC сервер так и делает.
Настраиваете регистры на чтение командой 0x04, OPC сервер автоматически,в соответствии с заданными настройками формирует блоки опроса.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 24.11.2017, 10:56:06 am
Я уже так и сделал. Задал чтение 50 регистров, функция 4. Обмен идет. Только не всегда OPC сервер читает весь пакет отклик. Иногда пакет читается не до конца, обрывается в конце.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 24.11.2017, 22:32:40 pm
Попробуйте в настройках канала связи увеличить таймаут и межбайтовый интервал.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 24.11.2017, 22:42:18 pm
Межбайтовый интервал у меня 0 стоит и его трогать не надо. Таймаут я увеличивал, не помогает. Малое число регистров читается отлично. Я так полагаю, что это ОС рвет обмен при длинном пакете отклике, Т.к. Windows не является ОС реального времени, то она в любой момент может приостановить выполнение программы пользователя для выполнения системных программ.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 24.11.2017, 22:50:51 pm
Это не OPC сервер, это устройство рвет пакеты. А межбайтовый интервал выставлять надо обязательно, т.к. даже в спецификации Modbus сказано что гарантированным окончанием передачи является тишина 1,5 символа, что для скорости 9600 примерно 1,5 мс, я бы порекомендовал 2 или 4.
И дело не в Windows, вы правы что работа программ может быть приостановлена, но драйвер COM порта работает в нулевом кольце, т.е. имеет приоритет выше чем программы прикладного уровня.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 24.11.2017, 22:53:34 pm
Что драйвер COM порта имеет наивысший приоритет и его работу никто не может прервать ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 24.11.2017, 22:55:34 pm
Почему тогда короткие пакеты отклики передаются без проблем. Там то же межбайтовый интервал 0.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 24.11.2017, 23:04:41 pm
Работу драйвер может прервать только другой драйвер. А функции драйвера работаю очень короткое время, соответственно времени хватает и обычным программам.
Что бы передать короткий пакет (ответ на чтение 1 регистра) на скорости к примеру 9600 необходимо примерно 7 мс, это без интервала тишины. За это время работу драйвера последовательного порта в контроллере может никто и не прерывает, вероятность маленькая. А что бы ответить на запрос чтения 50 регистров необходимо уже 105 мс, это много, за это время может сработать прерывание и алгоритм его отрабатывающий может занять к примеру 2 или 3 мс, на это время ответ приостановился, а драйверу COM порта этого достаточно что бы решить что прием завершен.
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 24.11.2017, 23:20:53 pm
Нет у меня в основной программе ПЛК никаких прерываний.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 24.11.2017, 23:34:13 pm
А все длинные пакеты рвутся или только часть?

P.S. По вашему предыдущему замечанию, обновили OPC сервер, можно скачать с сайта.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 24.11.2017, 23:35:46 pm
Забыл, вы писали уже что  иногда.
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 24.11.2017, 23:40:57 pm
Есть отличная утилита, Portmon (https://technet.microsoft.com/ru-ru/sysinternals/portmon.aspx (https://technet.microsoft.com/ru-ru/sysinternals/portmon.aspx))
Позволяет "прослушивать" COM порты, с помощью ее можно посмотреть обмен между OPC сервером и ПЛК.
Своеобразный арбитр, эта утилита сразу покажет, в ком проблема.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 25.11.2017, 12:54:18 pm
Есть отличная утилита, Portmon (https://technet.microsoft.com/ru-ru/sysinternals/portmon.aspx (https://technet.microsoft.com/ru-ru/sysinternals/portmon.aspx))
Позволяет "прослушивать" COM порты, с помощью ее можно посмотреть обмен между OPC сервером и ПЛК.
Своеобразный арбитр, эта утилита сразу покажет, в ком проблема.

Айрат

Спасибо, попробую все о чем вы писали.

Ваш бесплатный OPC сервер какие ограничения имеет ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 25.11.2017, 17:05:01 pm
Здравствуйте.

Неограниченное время для конфигураций до 32 тегов или два часа работы при превышении этого количества.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 25.11.2017, 17:41:33 pm
Здравствуйте.

Неограниченное время для конфигураций до 32 тегов или два часа работы при превышении этого количества.

Айрат

Если я читаю 50 регистров, то это 50 тегов ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 25.11.2017, 19:29:26 pm
Смотря как вы их настроили. Если вы для них выбрали тип данных Double, то в этом случае это будет 200 регистров.

Айрат
Название: Re: «Задержка» - время "молчания"
Отправлено: Voldemus от 25.11.2017, 20:04:19 pm
Смотря как вы их настроили. Если вы для них выбрали тип данных Double, то в этом случае это будет 200 регистров.

Айрат

Вы хотели сказать 200 тегов ? Нет у меня регистр состоит из двух байт. Значит это будет 100 тегов ?
Название: Re: «Задержка» - время "молчания"
Отправлено: Айрат от 25.11.2017, 20:52:49 pm
Нет.
Теги и регистры это разные вещи. Один тег может состоять из 1, 2, 3, 4 и т.д. регистров.
Тег это экземпляр информации не зависящий от внутреннего представления в устройстве, контроллере.
Под тегом понимается например: температура газов на выкиде из котла, состояние насоса, команда управления частотником и т.д. Не важно, сколько необходимо регистров для того что бы получить состояние тега.
OPC сервер считает теги, он не считает регистры. Если вы обратили внимание, в OPC сервере реализованы алгоритмы работы с другими устройствами: электросчетчики, частотники, устройства работающие по DCON протоколу, в них вообще нет понятия регистра или адреса, просто тег и все.

Как я вам говорил ранее, если вы у тега зададите тип данных Double или Int64, этот тег в пространстве Modbus устройства будет занимать 4 регистра или 8 байт, но для OPC сервера это будет 1 тег и вы сможете спокойно добавить еще 31 такой же в конфигурацию.

Айрат