Показано с 1 по 5 из 5

Тема: SysComRead & SysComWrite

  1. #1

    По умолчанию SysComRead & SysComWrite

    Добрый день!

    Подскажите, кто знает, как реализованы функции SysComRead & SysComWrite? Когда происходит собственно чтение и передача в порт? В промежутках между вызовами PLC_PRG (как, например, устанавливаются выходы ПЛК), или PLC_PRG прерывается и происходит прием/передача?

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

    По умолчанию

    нет, прием и передача идут несколько циклов программы, если память не отшибает, когда переделывал пример опроса Меркурия с UNM на данные библиотеки.

  3. #3

    По умолчанию

    Эмм... скажем так...
    Если посчитать количество переданных байт в секунду на скорости 115200 по формуле:
    V_byte = V_com * d / (d + 1 + s + p) / 8

    где:

    V_com — битрейт (например: 115200), бод;
    d — количество бит данных; (8)
    s — количество стоповых бит; (1)
    p — количество бит четности, p = 1 если бит четности присутствует, или p = 0 если бит четности отсутствует;
    единица в знаменателе отражает наличие стартового бита.

    то получаецо за 1ms ~ 11 байт так?. Предположим запрос 10 байт задержка 1ms и ответ 10 байт итого на круг 3ms. Eсли цикл ПЛК 10ms то запрос-ответ может быть реализован в одном цикле (Ну если SysComRead & SysComWrite на прерываниях)? А если прием передача происходят между циклами то нужно два цикла ПЛК (или 20ms).

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

    По умолчанию

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

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

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

    По умолчанию

    lazy ага, а байты принятые вы как считать собираетесь ? все бросить и только этим и заниматься ? а программа ?

Похожие темы

  1. ПЛК110-30 (М02), SysComRead
    от monteg в разделе ПЛК1хх [М02]
    Ответов: 7
    Последнее сообщение: 11.01.2017, 21:07
  2. SysComWrite() & SysComRead()
    от spectrum48k в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 18.05.2015, 08:23
  3. SysLibCom.lib (SysComRead) потеря байтов.
    от AlexPC1 в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 13.10.2014, 22:38
  4. Функция SysComRead из библиотеки SysLibCom.Com
    от Newcomer в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 01.06.2014, 11:25

Ваши права

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