Просмотр полной версии : Управление битами переменной с экрана ПР200
ShmoninEN
15.04.2021, 07:28
Всем привет. Есть проект где задействованы почти все регистры сетевых переменных. Для управления процессами в проекте используется несколько булевских переменных. Эти булевские переменные реализованы как "Целочисленная сетевая переменная" -> "блок Extract с указанием № бита" -> "Внутренняя булевская переменная". Кроме возможности управления по сети мне необходимо управлять и с экрана, причём, если я изменил бит по сети и на экране он должен поменяться тоже и наоборот. Есть ли возможность управлять отдельными битами сетевой переменной с экрана? Как это сделать? Насколько я смог разобраться, в штатных элементах управления это не реализовано? Есть ли возможность как-то обойти это ограничение?
Сергей0308
15.04.2021, 08:16
Всем привет. Есть проект где задействованы почти все регистры сетевых переменных. Для управления процессами в проекте используется несколько булевских переменных. Эти булевские переменные реализованы как "Целочисленная сетевая переменная" -> "блок Extract с указанием № бита" -> "Внутренняя булевская переменная". Кроме возможности управления по сети мне необходимо управлять и с экрана, причём, если я изменил бит по сети и на экране он должен поменяться тоже и наоборот. Есть ли возможность управлять отдельными битами сетевой переменной с экрана? Как это сделать? Насколько я смог разобраться, в штатных элементах управления это не реализовано? Есть ли возможность как-то обойти это ограничение?
С экрана я так управляю:
54564
54566
Ревака Юрий
15.04.2021, 09:11
Всем привет. Есть проект где задействованы почти все регистры сетевых переменных. Для управления процессами в проекте используется несколько булевских переменных. Эти булевские переменные реализованы как "Целочисленная сетевая переменная" -> "блок Extract с указанием № бита" -> "Внутренняя булевская переменная". Кроме возможности управления по сети мне необходимо управлять и с экрана, причём, если я изменил бит по сети и на экране он должен поменяться тоже и наоборот. Есть ли возможность управлять отдельными битами сетевой переменной с экрана? Как это сделать? Насколько я смог разобраться, в штатных элементах управления это не реализовано? Есть ли возможность как-то обойти это ограничение?
Это наверное самый распространенный вариант, есть много примеров https://youtu.be/YibiaUavC20
ShmoninEN
15.04.2021, 09:24
Я правильно понимаю, переменные 1-32 это булевские биты, которые я могу задействовать в программе как мне нужно, в том числе и на экранах, для возможности изменения. А переменная А - целочисленная, неважно, внутренняя или сетевая, 2 или 4 байта, которую я могу менять по сети (или так же с экрана) побитово или целиком. И всё будет синхронно меняться?
Я правильно понимаю, переменные 1-32 это булевские биты, которые я могу задействовать в программе как мне нужно, в том числе и на экранах, для возможности изменения. А переменная А - целочисленная, неважно, внутренняя или сетевая, 2 или 4 байта, которую я могу менять по сети (или так же с экрана) побитово или целиком. И всё будет синхронно меняться?
Я уже устал ссылку приводить :rolleyes:
Ваш вариант -3 из этого поста Обмен битовыми (BOOL) переменными с ПР Slave (https://owen.ru/forum/showthread.php?t=32194&p=318916&viewfull=1#post318916)
Здесь в качестве макросов упаковки/ распаковки можно использовать любые
Сергей0308
15.04.2021, 09:53
В отличии от внутренней целочисленной переменной, сетевая целочисленная переменная (один регистр) имеет не 32, а всего 16 бит! чтобы менять из двух(и более) мест есть специальные макросы(решения), если не ошибаюсь Пётр и Минска предлагал хороший вариант решения этой задачи, посмотрите(поищите), это много раз обсуждалось!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot