Добрый день! Для синхронизации приборов по времени в сети Modbus используется широковещательная рассылка через CALL.ChGroupReq=>W_Word(16) - адрес 0 для широковещательной рассылки; рассылка должна осуществлятся каждые 20-60 секунд. При широковещательной рассылке ответ приборами не формируется, ТМ6 ожидает ответ в течении timeout'а, считает запрос необработанным и циклично (около семи секунд)повторяет запрос, что не соответствует требованию для синхронизации по времени. Могли бы Вы дать какие-нибудь рекомендации?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В Trace Mode 6 функция 16 Mobus RTU не позиционируется как широковещательная.
Если необходима именно эта функция, придется управлять атрибутом EXEC (39) этого канала (сбрасывать его в 0 с некоторой задержкой после передачи команды). Не ясно, почему синхронизация осуществляется так часто? При принципиально асинхронном потоке Modbus RTU это не понятно. Какой формат передаваемой команды синхронизации?
Posted by ddkel (Участник № / Member № 4120) on :
Управление атрибутом 39 из-за асинхронности потока дает случайное время рассылки (при задержке в 30 сек - от 40 до 70 сек, за меньшее время задержки рассылка может быть не отработана). Синхрониззация осуществляется записью (команда 16) т.н. "сообщения времени" в 4 слова (00000000YYYYYYYY, 0000MMMM000DDDDDD, 000HHHHH00MnMnMnMnMnMn, MsMsMsMsMsMsMsMsMsMsMsMsMsMsMsMs). Частота синхронизации определена в документации (10-60 сек) к Schneider Electric Sepam S20. Неплохо было бы иметь какой-нибудь файл конфигурации Modbus типа modbus.set для задания адреса широковещательной рассылки.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Если асинхронность потока приводит к задержкам в отправке команды синхронизации в десятки секунд смысл в синхронизации с такой периодичностью и с точностью до миллисекунд теряется. 2. Пришлите, пожалуйста, на hotline@adastra.ru текст документации на Sepam S20.
Posted by Romсheg (Участник № / Member № 3792) on :
2ddkel: А осциллограммы вы как из него штатным ModBus'ом ТМ6 собираетесь считывать?
Posted by ddkel (Участник № / Member № 4120) on :
1. Синхронизация происходит не по географическому времени, а по времени компа с МРВ. По широковещательной посылке время выставляется во всех приборах примерно одновременно с возможной задержкой на цикл Sepam (50-150 мс), в "сообщении времени" миллисекунды я обнуляю, что дает "терпимую" погрешность в записи осциллограмм приборами (ну или, если угодно, микрпроцессорными блоками релейной защиты) в 1-3 периода промышленной частоты. 2. Документацию отправлю завтра. 3. Считыванием осциллограмм вплотную не занимался, мало времени на основную часть проекта, но то, что наработал, настораживает: есть ощущение что штатными способами это не решить.
Posted by Romсheg (Участник № / Member № 3792) on :
2ddkel: Вот вот, рекомендую основательно проработать эти вопросы заранее: в нашей практике работы с Sepam'ами это вылилось в то, что мы теперь работаем с ними через свой собственный внешний драйвер. Там много особенностей и не только в части логики работы по ModBus: - обмен по текущим параметрам - чтение осциллограмм - передача времени синхронизации - управление уставками
Posted by ddkel (Участник № / Member № 4120) on :
Все перечисленные задачи (кроме чтения осциллограмм) решены с помощью штатного Modbus'а и ST; синхронизация времени только кривовато из-за отсутствия широковещательной рассылки. Я не программист, поэтому "внешний драйвер" то же что МКС.
Posted by ddkel (Участник № / Member № 4120) on :
Добрый день! В ТМ60707 видимо добавили широковещательную рассылку, т.к. в логе работы профайлера нет ошибки по каналу этой рассылки, но help'e ничего по этому поводу я не нашел. В связи с чем прошу дать разъяснения как пользоваться этим механизмом. Я создал канал СALL.8 типа INPUT с периодом пересчета 30 сек, канал не отрабатывает, приходится программно взводить EXEC.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Несмотря на то, что Вы создали канал INPUT, он в реальном времени все равно будет иметь тип OUT - по типу привязанного шаблона функции Modbus. Поэтому придется его "подталкивать" программно.