- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
ПУ/КП и метки типа по МЭК 60870-5-104
Модератор: Глоб.модераторы
-
- частый гость
- Сообщения: 409
- Зарегистрирован: 20 ноя 2012, 13:45
- Имя: :.О.N.Ф
- Страна: Россия
- Благодарил (а): 3 раза
- Поблагодарили: 7 раз
ПУ/КП и метки типа по МЭК 60870-5-104
Познаю протокол) Есть некоторые вопросы, помогите, пожалуйста.
Итак, в МЭКе есть разделение на мастера (пункт управления, ПУ) и слейва (контролируемый пункт, КП), как и в модбасе - верно? Однако, мастер может писать по своей воле в слейва (что логично), но и слейв может писать в мастера, что уже выглядет странноватым. В чём тогда разница между мастером и слейвом?
Ещё есть метки типов. Которые, во-первых, не совсем то же, что и тип данных по компьютерно-айтишной терминологии (real, int, etc) - верно? И если верно, то как они связаны; если не верно, то как на самом деле? И во-вторых, приставка к метке, первая буква (C или M) указывает направление записи: command - запись, measured - чтение. Верное?
Сам гост читал, перечитывал, внимательно, да, и ещё раз - вопросы остались
Итак, в МЭКе есть разделение на мастера (пункт управления, ПУ) и слейва (контролируемый пункт, КП), как и в модбасе - верно? Однако, мастер может писать по своей воле в слейва (что логично), но и слейв может писать в мастера, что уже выглядет странноватым. В чём тогда разница между мастером и слейвом?
Ещё есть метки типов. Которые, во-первых, не совсем то же, что и тип данных по компьютерно-айтишной терминологии (real, int, etc) - верно? И если верно, то как они связаны; если не верно, то как на самом деле? И во-вторых, приставка к метке, первая буква (C или M) указывает направление записи: command - запись, measured - чтение. Верное?
Сам гост читал, перечитывал, внимательно, да, и ещё раз - вопросы остались
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Мастер в МЭКе ничего в слейв не пишет. Стандартный опрос выглядит так:
Мастер (М) общий опрос Слейву (С)
С все данные (порция 1 + бит еще есть данные ) М
М порцию 1 принял, CRC ok, жду еще С
С все данные (порция 2 + бит еще есть данные ) М
М порцию 2 принял, CRC ok, жду еще С
...
С все данные (порция m + бит еще есть данные ) М
М порцию m принял, CRC bad, повтори С
С все данные (порция m + бит еще есть данные ) М
М порцию m принял, CRC ok, жду еще С
...
С все данные (порция n + бит последняя порция ) М
М порцию n принял, CRC ok С
...
С изменились данные (порция 1 + бит еще есть данные ) М
М порцию 1 принял, CRC ok, жду еще С
...
С изменились данные (порция 1 + бит еще есть данные ) М
ответа от М нет - таймаут
С больше ничего не передает, ждет общего опроса
Улавливаете разницу с модбасом? Мастер говорит слейву только то, что он существует, потом слейв передает мастеру только то, что он захочет передать.
Команды бывают 2-х типов; одинарная - сразу выполнить и двойная - с предварительным выбором (подготовкой). Слейв волен не выполнять команду и дать отрицательный ответ.
То, что Вы называете метками типов, в МЭК зовется адресом ASDU. До 127 номера - стандартный диапазон адресов. Как правило - структура (от 1-го до 8 байт переменной + байт недостоверность + 3 или 6 байт дата-время изменения). После 128 номера - частный диапазон адресов. Там можно создавать свои типы данных без ограничений.
Мастер (М) общий опрос Слейву (С)
С все данные (порция 1 + бит еще есть данные ) М
М порцию 1 принял, CRC ok, жду еще С
С все данные (порция 2 + бит еще есть данные ) М
М порцию 2 принял, CRC ok, жду еще С
...
С все данные (порция m + бит еще есть данные ) М
М порцию m принял, CRC bad, повтори С
С все данные (порция m + бит еще есть данные ) М
М порцию m принял, CRC ok, жду еще С
...
С все данные (порция n + бит последняя порция ) М
М порцию n принял, CRC ok С
...
С изменились данные (порция 1 + бит еще есть данные ) М
М порцию 1 принял, CRC ok, жду еще С
...
С изменились данные (порция 1 + бит еще есть данные ) М
ответа от М нет - таймаут
С больше ничего не передает, ждет общего опроса
Улавливаете разницу с модбасом? Мастер говорит слейву только то, что он существует, потом слейв передает мастеру только то, что он захочет передать.
Команды бывают 2-х типов; одинарная - сразу выполнить и двойная - с предварительным выбором (подготовкой). Слейв волен не выполнять команду и дать отрицательный ответ.
То, что Вы называете метками типов, в МЭК зовется адресом ASDU. До 127 номера - стандартный диапазон адресов. Как правило - структура (от 1-го до 8 байт переменной + байт недостоверность + 3 или 6 байт дата-время изменения). После 128 номера - частный диапазон адресов. Там можно создавать свои типы данных без ограничений.
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- частый гость
- Сообщения: 409
- Зарегистрирован: 20 ноя 2012, 13:45
- Имя: :.О.N.Ф
- Страна: Россия
- Благодарил (а): 3 раза
- Поблагодарили: 7 раз
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Хм, ладно, а если переформулировать - мастер не "пишет", а посылает команды слейву. Я имею в виду то, что в МЭКе описано с меткой CON и адресами ASDU ("идентификаторами типов") <45>..<69> и <100>..<119>. Это разве не суть запись значений в слейв? Мастер (ПУ) посылает слейву (КП) "команду уставки, короткое число с сплавающей запятой".
Гляньте, пожалуйста, вот этому "Описанию протокола МЭК 60870-5-101 для чайников" насколько можно верить?
Гляньте, пожалуйста, вот этому "Описанию протокола МЭК 60870-5-101 для чайников" насколько можно верить?
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Суть в том, что слейву посылается аналог SMS, тот - в свою очередь может заранее поставить блокировку на эту команду, или дать отрицательный ответ, или вообще - не ответить. "Описание ..." видел, в принципе - правильное, сильно упрощенное.
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- частый гость
- Сообщения: 409
- Зарегистрирован: 20 ноя 2012, 13:45
- Имя: :.О.N.Ф
- Страна: Россия
- Благодарил (а): 3 раза
- Поблагодарили: 7 раз
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Не, эт-то я понял. Не пойму в чём здесь разница между мэковской командой и записью мастером в регистры слейва, если по аналогии с модбасом. У нас же посылается команда (то бишь запись значения) в определённый IOA определённого идентификатора типа (номер ASDU, как вы назвали). Те же яйца, только в профиль, не?)hell_boy писал(а):Суть в том, что слейву посылается аналог SMS, тот - в свою очередь может заранее поставить блокировку на эту команду, или дать отрицательный ответ, или вообще - не ответить..
Смысл затеи в чём: надо передавать по МЭКу значения - просто считать определённые переменные и парочку иногда записать, без всех этих мэковских наворотов, простого как топор модбаса было бы достаточно, и все были бы счастливы... но кто-то решил, что будет МЭК
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Этот кто-то, кто за всех выбирает протокол, во многих случаях будет совершенно прав. На огромных распределенных объектах, где на одной неустойчивой линии связи висят сотни КП, применение протоколов МЭК - единственный выход. Вероятность прихода ошибочного пакета в МЭК-104 1Е-12, в модбас - 1Е-4. Т.е. в модбас на 10000 команд (дневной объем мосметро) - одна будет понята КП неправильно и соответственно - выполнена. Второе преимущество МЭК-104 - минимальный объем траффика в сети: данные передаются практически по изменениям, команды - без многократного отслеживания результатов выполнения.Exactamente писал(а):hell_boy писал(а):... модбаса было бы достаточно, и все были бы счастливы... но кто-то решил, что будет МЭК
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- частый гость
- Сообщения: 409
- Зарегистрирован: 20 ноя 2012, 13:45
- Имя: :.О.N.Ф
- Страна: Россия
- Благодарил (а): 3 раза
- Поблагодарили: 7 раз
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Разве команда может быть понята - но неправильно? CRC и TCP/IP бдят
Не хотелось бы спорить по отвлечённым темам с единственным здесь человеком, который помогает в вопросе, вот только вы говорите в общем случае, а я про свой конкретный, где линия связи устойчива, а КП на порядки меньше, чем сотни :)
Не хотелось бы спорить по отвлечённым темам с единственным здесь человеком, который помогает в вопросе, вот только вы говорите в общем случае, а я про свой конкретный, где линия связи устойчива, а КП на порядки меньше, чем сотни :)
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
-
- осмотрелся
- Сообщения: 101
- Зарегистрирован: 10 сен 2012, 08:56
- Имя: Евгений
- Страна: РФ
- город/регион: СПб
- Поблагодарили: 3 раза
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Если честно, я тоже не понимаю, как команда модбаса может быть воспринята неверно - если пакет будет битый, то, как уже сказал Exactamente, контрольная сумма не сойдется.Т.е. в модбас на 10000 команд (дневной объем мосметро) - одна будет понята КП неправильно и соответственно - выполнена.
Для меня, как инженера по телемеханике для подстанций 6/10кВ, преимущества МЭК-104 выглядят следующим образом:
1) Передача данных по спорадике с возможностью настроить апертуры - это позволяет использовать протокол с откровенно паршивыми каналами связи;
2) Метки времени - на том же GPRS/3G время передачи пакета может превышать одну секунду.
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Я долго экспериментировал именно с возможностью искажения пакета TCP/IP при записи регистров Modbus и с командой МЭК. Пакет с записью регистра Modbus и с одинарной командой МЭК - очень короткий, при искажении 2-х не соседних битов CRC всего пакета в ряде случаев не изменится. В случае Modbus спасает только то, в регистр пишется последовательность нулевых битов и только 1 бит - значащий. В МЭК, если 2 искаженных бита будут в IOA, то спасает двойная команда по одному IOA (Select - Execute). На практике возможно Modbus приблизить к МЭК по безопасности. Надо сделать запись регистров тоже двойной.Exactamente писал(а):Разве команда может быть понята - но неправильно? CRC и TCP/IP бдят
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Извиняюсь за оффтоп, но в развернувшейся здесь дискуссии были представлены, на мой взгляд, очень важные и неожиданные данные. Хочу уточнить пару деталей.hell_boy писал(а):Я долго экспериментировал именно с возможностью искажения пакета TCP/IP при записи регистров Modbus и с командой МЭК. Пакет с записью регистра Modbus и с одинарной командой МЭК - очень короткий, при искажении 2-х не соседних битов CRC всего пакета в ряде случаев не изменится. В случае Modbus спасает только то, в регистр пишется последовательность нулевых битов и только 1 бит - значащий. В МЭК, если 2 искаженных бита будут в IOA, то спасает двойная команда по одному IOA (Select - Execute). На практике возможно Modbus приблизить к МЭК по безопасности. Надо сделать запись регистров тоже двойной.
Вероятность прихода ошибочной команды, равная 1E-4, действительно очень высока. Но что было учтено при анализе? Только CRC TCP-пакета? Учитывалось ли то, что кадр протокола канального уровня будет защищен еще одним CRC-полем, в общем случае с другим полиномом? И есть ли практические подтверждения столь высокого возможного уровня искажений?
Ни в коей мере не пытаюсь спорить о необходимости использования МЭК-104 для ответственных решений. Просто хочется больше знать о подводных камнях в использовании привычного Модбаса.
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: ПУ/КП и метки типа по МЭК 60870-5-104
Было такое обсуждение "плохой-хороший ModBUS RTU" http://iprog.pp.ru/forum/read.php?f=1&i=40027&t=39519
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой