Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 96

Тема: Прошу совета

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    20.02.2008
    Адрес
    Тверь
    Сообщений
    501

    По умолчанию

    Цитата Сообщение от Одесса Посмотреть сообщение
    Программными средствами я могу контролировать любой байт залетающий в буфер. Допустим могу отловить 1 адресный байт
    и по этому событию могу прочитать буфер. Но толку от этого не будет,потому что буфер будет пуст,так туда ещё ничего не успело
    залететь. Если бы этот адресный байт был последним,то я бы отловив этот байт ,и по этому событию прочитав буфер, увидил бы
    Все данные,где последним был бы адресный байт.
    А что Вам мешает отловить сперва адресный байт, потом байт с командой, потом байты CRC, разобрать весь пакет на лету? Или проделать то же самое, набрав в буфер все принятые байты за время до следующего запроса?

  2. #2

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    А что Вам мешает отловить сперва адресный байт, потом байт с командой, потом байты CRC, разобрать весь пакет на лету? Или проделать то же самое, набрав в буфер все принятые байты за время до следующего запроса?
    Я наверное Вас до конца не понял.Я програмно могу на лету поймать зараннее известный байт. Этим байтом является
    из пакета только адресный, допустим я его отловил.По этому событию я могу сделать толко одно действие. это прочитать содержимое буфера на момент ,когда я этот байт поймал.Ну посмотрю я буфер и не увижу там ничего,потому,
    что следующий байт еще не зашел. Я согласен с Вами,что рыть нужно в направлении указанном Вами,что и делаю в настоя
    щий момент.

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Одесса Посмотреть сообщение
    Я согласен с Вами,что рыть нужно в направлении указанном Вами,что и делаю в настоя
    щий момент.
    а там посмотреть как реализован протокол в modbus.lib и взять из него стоящие моменты, например очистка буфера...
    ЗЫ jamod еще есть в сырцах
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,264

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    А что Вам мешает отловить сперва адресный байт, потом байт с командой, потом байты CRC, разобрать весь пакет на лету? Или проделать то же самое, набрав в буфер все принятые байты за время до следующего запроса?
    Автору темы ничего не мешает заниматся этим онанизмом. Он даже считает что у него что-то получается.
    Но для RTU это в принципе бред. В момент перехода мастера к чтению ответа в приемном буфере пусто (или мусор от помех) т.к. слейв еще принимает запрос или отбивает тайм-маркер а не генерит чего-либо. И если первый же байт не нужный адрес, можно, нет, вру, не можно, а обязательно нужно весь последующий кусок до самого тайм-маркера отправлять в мусор.

  5. #5
    Пользователь
    Регистрация
    20.02.2008
    Адрес
    Тверь
    Сообщений
    501

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Автору темы ничего не мешает заниматся этим онанизмом. Он даже считает что у него что-то получается.
    Но для RTU это в принципе бред. В момент перехода мастера к чтению ответа в приемном буфере пусто (или мусор от помех) т.к. слейв еще принимает запрос или отбивает тайм-маркер а не генерит чего-либо. И если первый же байт не нужный адрес, можно, нет, вру, не можно, а обязательно нужно весь последующий кусок до самого тайм-маркера отправлять в мусор.
    Для справки. Если программа написано правильно, в момент перехода мастера к чтению ответа в приемном буфере либо лежит ответ, либо сообщение об ошибке. Мастеру при этом даже не обязательно ждать таймаута конца передачи. В остальных случаях мастеру незачем переходить к чтению.
    Последний раз редактировалось rwg; 15.09.2018 в 19:08.

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Для справки. Если программа написано правильно, в момент перехода мастера к чтению ответа в приемном буфере либо лежит ответ, либо сообщение об ошибке. Мастеру при этом даже не обязательно ждать таймаута конца передачи. В остальных случаях мастеру незачем переходить к чтению.
    а где, кстати, обозначено что реализуют мастера?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а где, кстати, обозначено что реализуют мастера?
    Цитата Сообщение от Одесса Посмотреть сообщение
    На Овеновское с. STM по модбас рту подаю команду. Мне не важно,когда прийдет ответ....
    ...............в первой посте
    электронщик до мозга костей и не только

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от rovki Посмотреть сообщение
    ...............в первой посте
    ну и кто тут троль?
    Упоминание слова мастер присутствует? Да есть описание работы ведущего и что.

    Ситуация, когда в приемный буфер приходит последовательность запроса модбас но частично меняющая куски запроса (конец с началом), может существовать только когда этот буфер слейва и не корректная работа мастера, который не ждет ответов от слейвов, а каждый цикл шлет запросы
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну и кто тут троль?
    Упоминание слова мастер присутствует? Да есть описание работы ведущего и что.

    Ситуация, когда в приемный буфер приходит последовательность запроса модбас но частично меняющая куски запроса (конец с началом), может существовать только когда этот буфер слейва и не корректная работа мастера, который не ждет ответов от слейвов, а каждый цикл шлет запросы
    Так ведуший это разве не мастер ,а ведомый не слейв в модбасе RTU?
    Последний раз редактировалось rovki; 15.09.2018 в 21:31.
    электронщик до мозга костей и не только

  10. #10
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,264

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Для справки. Если программа написано правильно, в момент перехода мастера к чтению ответа в приемном буфере либо лежит ответ, либо сообщение об ошибке. Мастеру при этом даже не обязательно ждать таймаута конца передачи. В остальных случаях мастеру незачем переходить к чтению.
    Справка от кого ?
    Если слейв реализовал машину времени - да. Если не реализовал, то :
    Мастер переходит в чтению после отправки последнего байта.
    В этот момент в слейве в лучшем случае лежит всё кроме последнего байта. Именно байта. Потому что пока нет последнего бита - на слейве не сработало прерывание о готовности к передаче в систему цельного байта.
    А еще ему (слейву) нужно отбить тайм-маркер потому что все что есть у слейва до окончания тайм-маркера - мусор, и только мусор (Если, конечно мы говорим об RTU а не о "как бы RTU").
    И все это время все слейвы на линии(получил первый байт, ... последний байт, выдержал тайм-маркер) молчат. Тупо молчат. А мастер тем временем уже ждет ответ. И ждет (как минимум) время пути последнего бита последнего байта запроса + тайм-маркер (который выдерживает слейв).
    И откудова у мастера возникнет ответ сразу после ухода запроса ? Звездные врата форева ?

    И это все - если вы сами побайтно пихаете в порт, а не из ЯВУ делает аналог неблокируемого "syscomwrite". В противном случае мастеру нужно учесть :
    1. блуждание данных в собственных системных недрах
    2. время физического ухода данных в линию
    3. ну и тайм-маркер слейва

    Ну и раз пошла такая ... детализация

    4. время разбора пакета слейвом
    5. время формирования ответа слейвом
    6. блуждание данных в собственных системных недрах слева
    7. время в пути до мастера первого (старт) бита
    8. время заскакивания в мастера всех остальных битов сетевого байта
    9. время обслуживания системой прерывания по приходу первого байт на мастере
    10. задержка обращения пользователя к чтению данных из системы чтоб увидеть хотя бы первый пришедший байт для рестарта отсчета таймаута и начале отсчета тайм-маркера (который, в свою очередь будет рестартовать после каждого чтения из системы при условии наличия там данных).

    В зависимости от релиза некоторые пункты могут слится в экстазе. Но все всегда будут.

    Цитата Сообщение от rwg Посмотреть сообщение
    .....в момент перехода мастера к чтению ответа в приемном буфере либо лежит ответ, либо сообщение об ошибке....В остальных случаях мастеру незачем переходить к чтению.
    Ну и как мастер вообще определит читать - пора ? Событие ? Так оно ж формируется из биб-ки/системы. Но при этом остается такой же программой.
    И вот тут-то и переходим к ключевой фразе :
    Цитата Сообщение от rwg Посмотреть сообщение
    Если программа написано правильно.... .
    +100500.
    ТС'у это и предлагал выяснить. Он предложил какие-то цветные пятна несущие кокой-то (по его словам) тайный смысл (видимо в расширенном сознании) и стал измерять ширину распальцовки. Обычное дело.
    Последний раз редактировалось Валенок; 15.09.2018 в 20:29.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Прошу совета...
    от Павел Братковский в разделе Трёп (Курилка)
    Ответов: 21
    Последнее сообщение: 28.02.2017, 10:07
  2. Прошу совета по ПЛК
    от curbat в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 16.07.2015, 08:24
  3. Прошу совета
    от RA9YSS в разделе Наши проекты
    Ответов: 4
    Последнее сообщение: 14.10.2014, 17:39
  4. Прошу помощи и совета. трм 138
    от Nikita13 в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 24.03.2011, 12:13
  5. прошу помощи и совета. трм 138
    от Nikita13 в разделе Подбор Оборудования
    Ответов: 2
    Последнее сообщение: 24.03.2011, 09:41

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •