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

Тема: Запись значений в булевы переменные с абсолютной адресацией из визуализации

  1. #1

    По умолчанию Запись значений в булевы переменные с абсолютной адресацией из визуализации

    Добрый день,
    Столкнулся с такой проблемой:
    В глобальном списке определены булевы переменные. Переменные определены с привязкой к адресам при помощи декларации AT. Например, так:
    Код:
    {attribute 'qualified_only'}						
    VAR_GLOBAL						
    	bVar0	AT %QX10.0	:BOOL;
    	bVar1	AT %QX10.1	:BOOL;
    	bVar2	AT %QX10.2	:BOOL;
    	bVar3	AT %QX10.3	:BOOL;
    	bVar4	AT %QX10.4	:BOOL;
    	bVar5	AT %QX10.5	:BOOL;
    	bVar6	AT %QX10.6	:BOOL;
    	bVar7	AT %QX10.7	:BOOL;
    	bVar8	AT %QX11.0	:BOOL;
    	bVar9	AT %QX11.1	:BOOL;
    и т.д.
    END_VAR
    Привязка необходима для того, чтобы можно было в дальнейшем читать/писать переменные посредством Modbus.
    Эти же переменные привязаны к элементам управления на визуализации (кнопкам, чекбоксам).
    При компиляции проекта генерируются предупреждения:
    Код:
    C0355:  A single bit cannot be referenced. A reference to the complete byte will be stored.
    Если я правильно понял, BIT и BOOL это два разных типа. И если в BOOL можно писать, как в отдельный бит, то при записи в BIT ,будет перезаписан весь байт.
    Т.е. при нажатии кнопки, привязанной, например, к bVar3, перезапишутся все переменные от bVar0 до bVar7 значением 2#00001000.
    Проверить это на данный момент мне не на чем, нет контроллера под рукой. Если кто-нибудь сталкивался, это действительно так? Как можно обойти это ограничение? Или можно игнорировать предупреждения?
    Последний раз редактировалось S#716_0P; 27.10.2022 в 07:51.

  2. #2

    По умолчанию

    Цитата Сообщение от S#716_0P Посмотреть сообщение
    ...
    При компиляции проекта генерируются предупреждения:
    Код:
    C0355:  A single bit cannot be referenced. A reference to the complete byte will be stored.
    Если я правильно понял, BIT и BOOL это два разных типа. И если в BOOL можно писать, как в отдельный бит, то при записи в BIT ,будет перезаписан весь байт.
    Т.е. при нажатии кнопки, привязанной, например, к bVar3, перезапишутся все переменные от bVar0 до bVar7 значением 2#00001000.
    Проверить это на данный момент мне не на чем, нет контроллера под рукой. Если кто-нибудь сталкивался, это действительно так? Как можно обойти это ограничение? Или можно игнорировать предупреждения?
    Да, похоже память организована в виде байтов (видно по адресации битов) и ссылка делается только на весь байт.
    Вот здесь есть тоже про сравнение BIT с BOOL, может поможет.

  3. #3

    По умолчанию

    Спасибо за ссылку. Полезная статья.
    Попробовал в режиме симуляции: нажимаю на кнопку значение записывается только в переменную, которая привязана к кнопке, соседние биты не затрагивает. Как будет возможность проверю на реальном контроллере и отпишусь.

  4. #4
    Пользователь
    Регистрация
    09.08.2010
    Адрес
    Новосибирск
    Сообщений
    22

    По умолчанию

    Цитата Сообщение от S#716_0P Посмотреть сообщение
    Привязка необходима для того, чтобы можно было в дальнейшем читать/писать переменные посредством Modbus.
    Эти же переменные привязаны к элементам управления на визуализации (кнопкам, чекбоксам).
    А не проще ли объявить одну переменную bVar типа BYTE или WORD и обращаться к отдельным битам и в визуализации и в программе.
    bVar.0 := TRUE; bVar.1 := FALSE и т.д.

Похожие темы

  1. Запись дискретных значений в ПЛК 110 М2
    от oasafronov в разделе Телемеханика ЛАЙТ
    Ответов: 4
    Последнее сообщение: 13.10.2020, 17:15
  2. Lectus и булевы переменные.
    от lunyov_i в разделе OPC Серверы
    Ответов: 4
    Последнее сообщение: 29.08.2017, 07:42
  3. Запись значений в МВ110-16Д
    от BETAL в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 27.12.2016, 11:20
  4. Запись значений из OPC сервера в ПЛК
    от Александр_Гранд в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 16.12.2012, 13:32
  5. запись значений по маске
    от swerder в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 13.07.2011, 09:44

Ваши права

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