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

Тема: Не могду добиться что бы заработали ссылки BITADR

  1. #1
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию Не могду добиться что бы заработали ссылки BITADR

    Значит у меня панель подключено к ПЛК 110. Есть регистры которые с панели передают значения булевые, они разные но я их все сбрал в один массив.

    Код:
    VAR
        glbaxValvesP : ARRAY[1..2] OF POINTER TO BOOL;
        glbaxValvesQ : ARRAY[1..2] OF POINTER TO BOOL;
    END_VAR
    
    glbaxValvesP[1] := BITADR(spValve1);
    glbaxValvesP[2] := BITADR(spValve2);
    
    glbaxValvesQ[1] := BITADR(qwValves.0);
    glbaxValvesQ[2] := BITADR(qwValves.1);
    spValve1 и 2 это биты с регистров с панели а qwValves это WORD регистр модуля выходов цифровых. Так вот если я делаю так это не работает.

    Код:
    glbaxValvesQ[1]^ := glbaxValvesP[1]^;
    Что не так с этим примером?

  2. #2
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию

    Ну просто ADR не работает. Много кода будет без этого. Так я раз и циклом все назначил прошелся, а так придется много писать.

    Ну я в принципе на BITADR и грешил.

  3. #3

    По умолчанию

    Цитата Сообщение от Serhioromano Посмотреть сообщение
    Значит у меня панель подключено к ПЛК 110. Есть регистры которые с панели передают значения булевые, они разные но я их все сбрал в один массив.

    Код:
    VAR
        glbaxValvesP : ARRAY[1..2] OF POINTER TO BOOL;
        glbaxValvesQ : ARRAY[1..2] OF POINTER TO BOOL;
    END_VAR
    
    glbaxValvesP[1] := BITADR(spValve1);
    glbaxValvesP[2] := BITADR(spValve2);
    
    glbaxValvesQ[1] := BITADR(qwValves.0);
    glbaxValvesQ[2] := BITADR(qwValves.1);
    spValve1 и 2 это биты с регистров с панели а qwValves это WORD регистр модуля выходов цифровых. Так вот если я делаю так это не работает.

    Код:
    glbaxValvesQ[1]^ := glbaxValvesP[1]^;
    Что не так с этим примером?
    и не забывайте в Codesys один Bool занимает полный байт, так что м.б. пользоваться упаковкой в байты?

  4. #4
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию

    Цитата Сообщение от Трофимов Артем Посмотреть сообщение
    и не забывайте в Codesys один Bool занимает полный байт, так что м.б. пользоваться упаковкой в байты?
    Наверно не получиться. Мне же это для того чтобы проходить циклом. А как я пройду циклом байт.

  5. #5

    По умолчанию

    Цитата Сообщение от Serhioromano Посмотреть сообщение
    Наверно не получиться. Мне же это для того чтобы проходить циклом. А как я пройду циклом байт.
    программа ПЛК итак крутится циклически... так что минус 1 бесконечный while.

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 21.09.2021, 09:47
  2. ПЛК150. Неразрешенные ссылки на внешние POU
    от КучаВопросов в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 21.12.2017, 01:10
  3. ТРМ201 не могу добиться стабильности
    от Роман АБ в разделе Эксплуатация
    Ответов: 21
    Последнее сообщение: 29.11.2016, 09:06

Ваши права

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