Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Номер бита в регистре при адресации к нему. Как указать номер бита в виде переменной?

  1. #1

    Unhappy Номер бита в регистре при адресации к нему. Как указать номер бита в виде переменной?

    Добрый вечер!

    Подскажите, пожалуйста, следующий момент:

    REG1.0 - это доступ к первому биту.
    А как сделать это через REG.num ?

    Какого типа должен быть num? Пробовал INT и STRING и BYTE - выдаёт ошибку.

    Спасибо.

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

    По умолчанию

    так просто не получится, только согласно документации
    Изображения Изображения
    • Тип файла: png owen.png (128.6 Кб, Просмотров: 114)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    так просто не получится, только согласно документации
    Спасибо.
    Так, значит так.

  4. #4

    По умолчанию

    И всё-таки что-то не получается.
    Делаю так:

    1.Объявляю глобальную константу:

    VAR_GLOBAL CONSTANT

    (* Кол-во вентиляторов -1*)
    VDNUM : INT := 2;

    END_VAR

    2. В цикле пытаюсь выбрать бит:

    (* Индивидуальные настройки, полученные с modbus tcp *)
    FOR i:= 0 TO VDNUM DO
    VDARRAY[i].CmdIn.Hact := ACTUATORS_CMDIN_H.i; (* ACTUATORS_CMDIN_H - VD1..VD3 | KDYVD1..KDYVD3 | OZK1..OZK5 *)
    END_FOR

    - ошибка 4027: требуется целое число или символьная константа

    пробую прямо указать константу:
    VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.VDNUM;

    - тоже самое.

    Что я делаю не так?

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

    По умолчанию

    строчка
    Код:
    VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.VDNUM;
    расшифровывается как VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.2;
    Вам именно это нужно?
    Изображения Изображения
    • Тип файла: png owen.png (4.5 Кб, Просмотров: 43)
    Последний раз редактировалось capzap; 27.02.2018 в 11:02.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  6. #6

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    строчка
    Код:
    VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.VDNUM;
    расшифровывается как VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.2;
    Вам именно это нужно?
    Да, всё верно. Так и нужно. Мне нужен третий бит из DWORD`a, который я присваиваю булевому Hact.
    Но ошибку показывает.
    А если ставлю просто 2, то ошибки нет.

  7. #7

    По умолчанию

    Опечатка в мануале смутила( НЕ НУЖНО "_") и я подумал, что надо VAR_GLOBAL CONSTANT!

    объявил как на картинке, которую Вы прикрепили. Но результат тот же.

    Вы сами пробовали скомпилировать?

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

    По умолчанию

    всё работает как надо
    Вложения Вложения
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  9. #9

    По умолчанию

    Полтергейст.
    Вставляю в свой проект - не работает!
    Создаю новый проект - не работает!
    Компилирую Ваш проект - работает.


    Хоть в Вами созданный проект всё переноси
    Вложения Вложения
    Последний раз редактировалось Daedal; 27.02.2018 в 12:56.

  10. #10

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. ПЛК100-32 [М02] Номер сервиса:47, Номер ошибки 80
    от Allmax в разделе ПЛК1хх [М02]
    Ответов: 41
    Последнее сообщение: 27.12.2021, 20:02
  2. Адрес бита в панели
    от Stas в разделе Панели оператора (HMI)
    Ответов: 8
    Последнее сообщение: 19.02.2013, 14:21
  3. Слайдер и 32 бита
    от Columbariy в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 26.10.2012, 15:45
  4. Отображение состояния бита в слове
    от GSK в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 11.09.2012, 19:52
  5. изменение бита с панели и орс
    от николай72 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 28.05.2010, 21:17

Ваши права

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