Показано с 1 по 10 из 96

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

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

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

    По умолчанию

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

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

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

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

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

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

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Справка от кого ?
    Если слейв реализовал машину времени - да. Если не реализовал, то :
    Мастер переходит в чтению после отправки последнего байта.
    Не обязательно. В моих программах Мастер отдаёт блок данных обработчику передачи по СОМ-порту, озадачивает обработчиков приёма по СОМ-порту и таймаутов и отключается. А в нужное время, получив сообщение от обработчика приёма или обработчика таймаута, возвращается к своей работе.

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

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Мастер отдаёт блок данных обработчику передачи по СОМ-порту, озадачивает обработчиков приёма по СОМ-порту и таймаутов и отключается....
    Да все понятно )) Отдали всю работу нижнему уровню. При наличии потоков - это вполне норм.
    Тут ТС рассмешил с тем, что получив что-то - сразу посчитал что это - всё.


    "Чото потерялось - ищи у косячного юзера/косячных либы/косячного железа со стороны мастера. Других вариантов нет"
    Вообщем вариант 1.
    Последний раз редактировалось Валенок; 15.09.2018 в 21:25.

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Да все понятно )) Отдали всю работу нижнему уровню. При наличии потоков - это вполне норм.
    Или потоков, или прерываний. Смотря для какого железа пишешь

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

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Или потоков, или прерываний. Смотря для какого железа пишешь
    Я видимо отстал - какая-то именно железка заточена на прерывание по RTU-таймингу ?
    Слово "событие" - не произносить)))
    Последний раз редактировалось Валенок; 15.09.2018 в 22:10.

  6. #6

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Одесса Посмотреть сообщение
    Так отож. Отстали и сильно. Поясняю почему. Только событие может вызвать прерывание. А Вы ,как сильно отставший этого
    не понимаете. А слова событие и прерывание есть терминами ваимно связанными. А вы,не понимая этого советуете не употреблять слово событие.
    А я ж не к Вам обращался. А ну да, это только Вы имеете право адресовать свое "посекретувсемусвету".

    Про слово "событие" конкретизирую (действительно есть неопределенность. Особенно для филителистов) - не физическое событие, а программный калбек называемый в некоторых ЯВУ термином "событие". Если для Вас это одно и тоже - вы не отстали. Нет канешно. Вы просто до этого не дошли.

    А для rwg просил не употреблять это слова в контексте его ответа с терминами "прерывание/потоки" (развивать тему ?)
    А так как вы судя по всему "неотстали", может посоветуете именно железку c прерыванием по RTU-таймингу.


    И если Вас не затруднит (второй раз, заметьте спрашиваю), не могли бы все-таки уточнить у RIS'а он таки советует проверять только тайминга и всё ?

Похожие темы

  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

Ваши права

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