Страница 12 из 16 ПерваяПервая ... 21011121314 ... ПоследняяПоследняя
Показано с 111 по 120 из 157

Тема: Конфигуратор vs modbus.lib

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    приведите раумное обоснование необходимости паузы после того, как ведомый ответил и мастер принял ответ полностью
    Разумных объяснений целых 2:
    1. Не все Slave достаточно умные, чтобы понять, что другой Slave закончил ответ и не смогут понять, где находится конец ответа, а где - начало следующего запроса. Такой болезнью, в частности, раньше болели ТРМы. Сейчас не знаю.
    2. Без таймаута надпись в паспорте Вашего устройства "Modbus" будет откровенной ложью.

  2. #112

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    называю это:

    Вложение 20027


    не переиначивайте! я привел пример одной задачи, а не многозадачности. многозадачность как разделение мэк программ на вызовы с разным временем цикла сейчас вытащу и заскриню. Надеюсь, мы друг друга понимаем и говорим о разделении мэк-(под)программ на задачи с разным временем цикла средствами среды разработки и исполнения Codesys, а не о особенностях операционных систем?

    Последний раз редактировалось spectrum48k; 21.09.2015 в 11:17. Причина: появился скрин

  3. #113

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    Вы совсем не понимаете?

    Как 2 определит, что 1 закончил передачу ответа?
    Конечно, понимаю, что пауза - это момент определения стартовой позиции адреса ведомого итд, момент синхронизации начала посылки, чтобы правильно разделить ее содержимое на составляющие. Но 3мс не дают мне покоя.) У кого есть идеи как правильно высчитывать выдержку в зависимости от скорости передачи данных в коде программы на ST например? Не расчет времени (с этим все понятно), а реализация. Обычное использование таймера передает управление остальной программе, и она как минимум прокручивается еще раз, прежде чем выполнится отправка след запроса. А это не очень красиво с точки зрения быстройдействия. Цикл WHILE с таймером внутри не предлагать?)
    Последний раз редактировалось spectrum48k; 21.09.2015 в 11:39.

  4. #114
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Касательно кейса.

    Код:
    CASE step OF
    	send:
    		stuff();
    	rcv:
    		stuff();
    END_CASE
    
    
    
    
    REPEAT
    	repeat := FALSE;
    	CASE step OF
    		send:
    			stuff();
    		rcv:
    			stuff();
    	END_CASE
    UNTIL
    	NOT repeat
    END_REPEAT;

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    длина любого ответа заранее известна в соответствии с запросом.
    В обязанности Slave не входит анализ чужих запросов и ответов. Нормальный драйвер сом-порта Slave анализирует первый принятый после таймаута байт и, если это не его адрес, ждёт следующий первый после таймаута байт .

  6. #116

    По умолчанию

    Как я ранее выше говорил, есть у меня некоторая самоделка. Как доберусь до железа, попробую непрерывный опрос ведомых с таймаутом и без него. Интересно на практике узнать выдерживается ли таймаут средствами самой среды исполнения кодесис при передачи управления "операционной системе" или модули будут "затыкаться" через раз. У кого есть плк с удаленным доступом?) Предложите вариант выдержки с приостановкой выполнения? через REPEAT или WHILE ?
    Последний раз редактировалось spectrum48k; 21.09.2015 в 12:40.

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    Как я ранее выше говорил, есть у меня некоторая самоделка. Как доберусь до железа, попробую непрерывный опрос ведомых с таймаутом и без него. Интересно на практике узнать выдерживается ли таймаут средствами самой среды исполнения кодесис при передачи управления "операционной системе" или будут таймауты сыпатсься через раз. У кого есть плк с удаленным доступом?) Предложите вариант выдержки с приостановкой выполнения? через REPEAT или WHILE ?
    Сталкивася с тем, что МСД-100 опрашивал ТРМ200 именно через один. В связи с отсутствием настройки нужного таймута вставил в опрашиваемые приборы нечётные несуществующие адреса.
    А для организации нужного таймаута достаточно запускать программу циклически. В одном цикле обработать ответ, в следующем, через 3-4мс послать запрос. Только сначала убедиться, что для Slave не требуется таймаут нестандартной большей длины.

  8. #118

    По умолчанию

    Скорее всего попробую организовать таймаут в диспетчере вызова блоков. Пример где-то выше в теме. Добраться бы только до железа. Нет у меня ПЛК, а жаль)

  9. #119

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Сталкивася с тем, что МСД-100 опрашивал ТРМ200 именно через один. В связи с отсутствием настройки нужного таймута вставил в опрашиваемые приборы нечётные несуществующие адреса.
    А для организации нужного таймаута достаточно запускать программу циклически. В одном цикле обработать ответ, в следующем, через 3-4мс послать запрос. Только сначала убедиться, что для Slave не требуется таймаут нестандартной большей длины.
    В случае модулей пр-ва Овен я бы вообще настройку проводил исключительно со сниффером ком-порта. Уже напоролись на то, что модули воспринимают все запросы как свои родные и отвечают, когда их не просят)

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    Интересно на практике узнать выдерживается ли таймаут средствами самой среды исполнения кодесис при передачи управления "операционной системе" или модули будут "затыкаться" через раз.
    а на моем видео из 75 поста не видно что количество запросов больше чем ответов, как раз снижал время периода опроса впритык с затраченным временем на опрос


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

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

Страница 12 из 16 ПерваяПервая ... 21011121314 ... ПоследняяПоследняя

Похожие темы

  1. Библиотеки MODBUS.LIB и OWENNET.LIB
    от desperadoes в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 30.01.2014, 20:15
  2. Modbus.lib и МДВВ
    от ПРОЕКТ-П в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 17.05.2013, 15:04
  3. Ответов: 4
    Последнее сообщение: 18.09.2012, 22:16
  4. ПЛК100 и Modbus.lib
    от Slev в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 19.03.2012, 08:22
  5. RTE + Modbus.lib
    от K.I.V. в разделе ПЛК3хх
    Ответов: 10
    Последнее сообщение: 09.07.2008, 10:30

Ваши права

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