Страница 132 из 1052 ПерваяПервая ... 3282122130131132133134142182232632 ... ПоследняяПоследняя
Показано с 1,311 по 1,320 из 10512

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

  1. #1311

    По умолчанию

    вопреки хэлпу кодезиса (по крайней мере на ПЛК100) сброс убивает все переменные.
    Чтобы понять рекурсию нужно понять рекурсию

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

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    не могу сказать что до конца понял как это реализовать. Не могли бы вы меня пнуть в направлении описания реализации динамического выделения памяти? А что-то не могу в руководстве Codesys найти, а так как это делается в паскале компилятор сделать не дает. Возможно после прочтения об реализации сего я пойму что к чему.
    если чем то поможет, вот ссылка на видео http://www.owen.ru/forum/showpost.ph...0&postcount=15 , ну и соответственно саму тему почитать с первых постов, а так же на диске в разделе системных библиотек есть документация на бибку по работе с памятью

  3. #1313

    По умолчанию

    товарищи, у меня разрыв шаблона в мозгу. Нужно склеить 2 переменные типа BYTE в одну типа WORD. Делаю
    x:=16#A3;
    y:=16#B9;

    xy:=SHL(x,8) + y; и на выходе получаю 16#00B9. тоже самое если сдвиг написать руками умножив x на FF. Непонимаю почему так? х просто теряется.
    Чтобы понять рекурсию нужно понять рекурсию

  4. #1314

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    если чем то поможет, вот ссылка на видео http://www.owen.ru/forum/showpost.ph...0&postcount=15 , ну и соответственно саму тему почитать с первых постов, а так же на диске в разделе системных библиотек есть документация на бибку по работе с памятью
    премного благодарен. Буду изучать.
    Чтобы понять рекурсию нужно понять рекурсию

  5. #1315
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,851

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    товарищи, у меня разрыв шаблона в мозгу. Нужно склеить 2 переменные типа BYTE в одну типа WORD. Делаю
    x:=16#A3;
    y:=16#B9;

    xy:=SHL(x,8) + y; и на выходе получаю 16#00B9. тоже самое если сдвиг написать руками умножив x на FF. Непонимаю почему так? х просто теряется.
    А так
    xy:=SHL(BYTE_TO_WORD(x),8) OR BYTE_TO_WORD(y);
    ЗЫ.
    SHL(x,8) => x:=0
    0+B9=B9
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #1316

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    А так
    xy:=SHL(BYTE_TO_WORD(x),8) OR BYTE_TO_WORD(y);
    логично . Спасибо большое)
    Чтобы понять рекурсию нужно понять рекурсию

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

    По умолчанию

    Еще проще
    xy:=x*256+y;
    Все приведения типов здесь уже есть.

  8. #1318

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Еще проще
    xy:=x*256+y;
    Все приведения типов здесь уже есть.
    у меня так не заработало. Правда умножал я на 16#FF. Но разницы то по сути нет.
    Чтобы понять рекурсию нужно понять рекурсию

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

    По умолчанию

    попробуйте такую форму 16#0100, а то как бы разница то есть, а еще лучше указать тип дополнительно

  10. #1320

    По умолчанию Неправильный пример

    В книге Петрова И.В. (Программируемые контроллеры приводится такой пример):
    Как было описано выше, ПЛК функционирует циклически — чтение входов, выполнение прикладной программы и запись выходов. В результате прикладное программирование для МЭК ПЛК существенно отличается от традиционной модели, применяемой при работе на языках высокого уровня ПК. Рассмотрим в качестве иллюстрации простейшую задачу: необходимо запрограммировать мерцающий световой индикатор. Очевидно, что алгоритм должен быть примерно такой:
    1) включить выход;
    2) выдержать паузу;
    3) выключить выход;
    4) выдержать паузу;
    5) переход к шагу 1 (начало программы);
    6) конец программы.

    Реализованная по этому алгоритму программа для ПЛК работать не будет:
    - она содержит бесконечный цикл. Весь код прикладной программы выполняется от начала и до конца в каждом рабочем цикле, поэтому шаг 5 «переход на начало программы» лишний.
    - выход всегда будет оставаться в выключенном состоянии, поскольку физически установка значений выходов производится по окончании прикладной программы один раз. Промежуточные изменения значений выходов не отображаются на аппаратные средства. Конечно, значение переменной будет изменяться многократно, но определяющим выход станет только последнее значение.


    А теперь вопрос - Как реализовать этот неправильный пример, чтобы он действительно не работал? (как сделать правильно я знаю).

Страница 132 из 1052 ПерваяПервая ... 3282122130131132133134142182232632 ... ПоследняяПоследняя

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

Ваши права

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