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

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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

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

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

    По умолчанию

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

  3. #3
    Пользователь
    Регистрация
    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;

  4. #4

    По умолчанию

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

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

    По умолчанию

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

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

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

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

    По умолчанию

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


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

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

  9. #9

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а на моем видео из 75 поста не видно что количество запросов больше чем ответов, как раз снижал время периода опроса впритык с затраченным временем на опрос


    а по поводуо чем опять речь, быстродействие плк как раз не нарушается если ждать асинхронного ответа через последовательный порт
    речь не об этом.
    Попробую объяснить:

    Есть два ведомых. К примеру, опрашиваются непрерывно по очереди. Первый ответил на запрос и необходимо отправить запрос второму ведомому. Как технически выдержать интервал перед отправкой запроса второму ведомому: Если использовать таймер TON, то в любом случае управление как минимум один раз будет передано основной программе перед отправкой запроса. В принципе таким образом реализуется ведержка, но равная приблизительно времени исполнения основной программы. Вопрос том как выдержать интервал необходимый в соответствие со стандартом, а не такой, какой получится.

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    Вопрос том как выдержать интервал необходимый в соответствие со стандартом, а не такой, какой получится.
    Ключевое слово в HELPe "Конфигурация задач".

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

Похожие темы

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

Ваши права

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