Страница 176 из 1044 ПерваяПервая ... 76126166174175176177178186226276676 ... ПоследняяПоследняя
Показано с 1,751 по 1,760 из 10436

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

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

    По умолчанию

    Вообще при работе с последовательным портом надо быть готовым к тому, что сообщение будет разбито на несколько кусков. Уж не знаю, как это учитывается в библиотеке.

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

    По умолчанию

    Yegor при чтении 1-ого байта (ячеек) ? офигеть, он что на три куска бьет чтение одной ячейки ? параметр quantity у FB.

    Предположим FB разбил чтение на три куска. 2 байта, 8 и 7. Но почему тогда функция пишет это в массив (а функции массив дали из 256 байт) всегда с начала и не делает приращения ?

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Видео слабо, но скринами сейчас сделаю.

    Три шага выполнения чтения регистров. На третьем шаге в ячейку [4] попадает состояние выходов МК110, потом прыгает еще и в ячейку [1] и на втором шаге, когда ByteCnt = 8 все убивается и так по кругу, если убрать r_trig и просто разрешить работу.

    То есть не один раз какое-то значение получаем из МК а постоянно меняющиеся значения, одно из которых мое. я уже не говорю, что параметр Quantity = 1 и я его не меняю.

    Либо в описалове на библиотеку что-то не рассказано, либо ее поведение полный неадекват.
    Сразу же по первой картинке, а у Вас вообще работает обмен, Вы хоть раз прочитали или записали данные?

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

    По умолчанию

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

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

    По умолчанию

    capzap да, обмен есть. через FB MB_WR_SNG_COIL прекрасно передается изменение выходов МК, запись 0 или 1 на нужные выход. Выхода вкл/выкл.
    При чтении FB регистров на трерьем шаге я вижу в [4] значения выходов.
    Но то, что он делает это циклом мне непонятно.
    Видно, что в ячейке [0] появляется 16 - вероятно адрес слейва.
    в ячейке [3] появляется 50 - видимо адрес регистра 0х32

    Я бы понял, если бы FB в массив возвращал полный ответ от устройства
    Адрес устройства, функция, данные, контрольная сумма но он несет явную ахинею, которую трудно понять...

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

    По умолчанию

    Вы хоть имеете представление для чего вход En нужен, блок будет работать пока на этот вход подается ИСТИНА, в Вашем случае это один цикл, за это время обмена с устройством не может происходить. В то же время на вход Enable совсем не требуется подавать постоянно ИСТИНА, там как раз хватит запуска через фронтальный триггер

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

    По умолчанию

    capzap сути проблемы это не меняет, буфер заполняется не от [0] до [Х] за один шаг (до complete = 1), а несколько раз начиная с [0] разным количеством байт.

  8. #1758

    По умолчанию

    Прошу помощи специалистов.
    На панель СП270 требуется вывести текущее значение из таймера (Timer.ET) в виде строки типа "3s150ms" (а ещё лучше вообще без ms). Как преобразовать время во что-то удобоваримое для вывода (не применяя массив)?

    П.С. Контроллер ПЛК 100, забыла написать)))

  9. #1759

    По умолчанию

    Формат time подразумевает хранение времени, выраженном в миллисекундах, поэтому если сначала преобразовать формат времени, ну например, к формату DWord, а затем разделить целочисленным делением на 1000, то получится количество секунд. Его и выводите на здоровье.

  10. #1760

    По умолчанию

    Приветствую! Пишу с помощью библиотеки SysLibFile данные в файл CSV, подскажите как сделать перевод записи на след. строку, $0d+$0a не помогает, получается какая-то ерунда.

    VAR
    CR:STRING:='$00D';
    LF:STRING:='$0d0a'
    END_VAR


    PerevodStroki:=CONCAT(CR,LF);
    SysFileWrite(f, ADR(PerevodStroki), SIZEOF(PerevodStroki));

Страница 176 из 1044 ПерваяПервая ... 76126166174175176177178186226276676 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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