1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Unity Pro + Structure

Unity Pro (Control Expert), Quantum, Premium, M340, M580, Hybrid DCS, Process Expert, Zelio, Twido, M17*, M2**, SCADAPACK, SoMachine, MachineExpert, ZelioSoft, TwidoSoft, TwidoSuite, TelePace

Модератор: Специалисты SE

Ответить
Аватара пользователя

Автор темы
behemot
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 19 авг 2012, 21:29
Имя: Михаил
Страна: Россия
город/регион: Санкт-Петербург

Unity Pro + Structure

Сообщение behemot »

Доброго времени суток.

Подскажите пожалуйста, есть огромное количество однотипного оборудования (по функционалу, автоматические выключатели) с одинаковым набором состояний (вкл, выкл, авария, дистанционное управление и т.д). Информация о состояниях "приходит" по интерфейсу. Для того чтобы не прописывать каждую переменную в таблице символов хочу создать структуру (DDT types). Создаю структуру (QF) из 8 битовых переменных (BOOL). Присваиваю в таблице символов переменной Yacheyka1 тип данных QF, в поле address записываю %m0. Компилирую - ошибка ({Derived Variables} : The topological type is incompatible. : Yacheyka1 ).

Пробовал изменять на EBOOL тоже самое. Изменял на %MW0 - все ок (но тратить 8 байт вместо 1 байта это расточительство).

Подскажите пож-та кто-нибудь сталкивался с такой проблемой?

Заранее благодарен.
Аватара пользователя

san
преподаватель
преподаватель
Сообщения: 1357
Зарегистрирован: 01 сен 2008, 18:32
Имя: Пупена Александр
Страна: Украина
город/регион: Киев
Поблагодарили: 6 раз

Re: Unity Pro + Structure

Сообщение san »

1) Структуре назначается только начальный адрес, например %MW0. Всё отсальное возьмётся исходя из начального адреса. Булы будут брать по одному байту, таково выравнивание, от этого никуда не денешся.
2) Если все булы, можно взять массив, это не так удобно, но не так расточительно.
3) Привязка к адресу (локализация) обязательна? С чем (SCADA/HMI) обмениваться будете?
4) Какой ПЛК? В М340/Premium/Quantum разные особенности.
5) Может есть смысл задейстовать функциональные блоки?
Аватара пользователя

san
преподаватель
преподаватель
Сообщения: 1357
Зарегистрирован: 01 сен 2008, 18:32
Имя: Пупена Александр
Страна: Украина
город/регион: Киев
Поблагодарили: 6 раз

Re: Unity Pro + Structure

Сообщение san »

В догонку. Перемнные типов данных BOOL и EBOOL сами занимают 1 байт. Так что даже если вы привяжетесь к к %M0 он съест один байт. А вот если поштучно пивязывать к %MW0.0 тогда будет кушатся один бит.
Аватара пользователя

Автор темы
behemot
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 19 авг 2012, 21:29
Имя: Михаил
Страна: Россия
город/регион: Санкт-Петербург

Re: Unity Pro + Structure

Сообщение behemot »

Привязка по памяти обязательно СКАДА Intouch.

Если объявляю простые переменные (Elemental variable), и приписываю им адреса %M0, %M1, %M2. Получается что расходуется 1 бит памяти? ПЛК Premium. Заказчик хочет чтобы все входы и выходы были переложены в локальные переменные. Я хотел сразу всё распихать в структуры данных ,но видимо не получится. Либо придется использовать массивы.
Аватара пользователя

san
преподаватель
преподаватель
Сообщения: 1357
Зарегистрирован: 01 сен 2008, 18:32
Имя: Пупена Александр
Страна: Украина
город/регион: Киев
Поблагодарили: 6 раз

Re: Unity Pro + Structure

Сообщение san »

behemot писал(а):Привязка по памяти обязательно СКАДА Intouch.
Если бы связь была чрез OFS (OPC Factory Server by Sсhneider Electric), то привязывать к памяти вобще б не было необходиомсти.
behemot писал(а): Если объявляю простые переменные (Elemental variable), и приписываю им адреса %M0, %M1, %M2. Получается что расходуется 1 бит памяти? ПЛК Premium.
Да нет, расходуется 1 байт.
behemot писал(а): Заказчик хочет чтобы все входы и выходы были переложены в локальные переменные. Я хотел сразу всё распихать в структуры данных, но видимо не получится. Либо придется использовать массивы.
Массивы тоже будут жрать по одному байту на бул. То есть, как бы вы не мудрили, для каждой булевой переменной будет расходоваться 1 байт. Выход есть, если вы привяжете отдельные переменные к битам слов, например %MW0.4 .
Аватара пользователя

Автор темы
behemot
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 19 авг 2012, 21:29
Имя: Михаил
Страна: Россия
город/регион: Санкт-Петербург

Re: Unity Pro + Structure

Сообщение behemot »

Где можно взять OFS? Насколько я понимаю OFS - это OPC сервер?
Аватара пользователя

san
преподаватель
преподаватель
Сообщения: 1357
Зарегистрирован: 01 сен 2008, 18:32
Имя: Пупена Александр
Страна: Украина
город/регион: Киев
Поблагодарили: 6 раз

Re: Unity Pro + Structure

Сообщение san »

behemot писал(а):Где можно взять OFS? Насколько я понимаю OFS - это OPC сервер?
Да. Его можно купить у Шнейдер Электрик. Демо-версию можно получить вместе со средой разработки SCADA VijeoCitect. Зато имея OFS вы можете не думать о адресах и вытягивать все структуры. Раньше OFS тяжело подхавтывал изменения в проекте, сейчас это доведено до автоматического подхвата.
Это не реклама :-) .
Ответить

Вернуться в «ПЛК»