Logo! Как разбить Int на биты?

ПЛК / Децентрализованная периферия
Ответить
Strohmann
Дилетант
Сообщения: 23
Зарегистрирован: 26 апр 2014, 05:58

Logo! Как разбить Int на биты?

Сообщение Strohmann »

Здравствуйте, товарищи!
Дано: Logo! 8 серии, панель KTP900 (как крайний вариант).
В виду жестких ограничений на количество входов/выходов в UDF возникает вопрос, как можно передавать в UDF большое количество битовых сигналов. Методология паковки битов (MUX, цепочка калькуляторов) достаточно понятна, а вот распаковка полученного значения вызывает затруднение.
Каким образом можно реализовать преобразование Int в битовые сигналы?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Logo! Как разбить Int на биты?

Сообщение Михайло »

Вместо Int лучше рассмотреть Word, так как этот тип данных специально предназначен для склеивания 16 битов. Может это значительно упростит задачу?

Вообще, есть два способа извлекания битов из слова:
1. Поразрядные операции над словами (AND, OR, XOR; не нашел в лого 7).
2. Сдвиг регистра (в лого комфорте 7 была операция Shift register) и контроль флага переполнения.

Strohmann
Дилетант
Сообщения: 23
Зарегистрирован: 26 апр 2014, 05:58

Re: Logo! Как разбить Int на биты?

Сообщение Strohmann »

Дело в том, что Logo! - штука загадочная (до сих пор не понимаю их путанного объяснения относительно адресации и объёма доступной памяти). И выбора типа данных не предоставляет.
При использовании инструмента для конфигурирования памяти переменных, все переменные имеют типа Word. А при конфигурировании блока тот же самый параметр уже вроде как Int, потому что может быть отрицательным. Поэтому я и считаю, что имею дело с Int.
Проблема не в знаке или его отсутствии а в том, что функционал сильно ограничен и то, что в полноценных ПЛК делается за минуты в случае с Logo! отнимает дни на поиск решения, реализацию и тестирование.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Logo! Как разбить Int на биты?

Сообщение Михайло »

Надо как-то ознакомиться с составом инструкций в лого 8...

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Logo! Как разбить Int на биты?

Сообщение Михайло »

Shift register не хочет принимать тип Int. Если как-то скормить, то задача, можно сказать, решена...

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

Re: Logo! Как разбить Int на биты?

Сообщение Ka3ax »

на форуме сименс, немецкоговорящий, попадалась UDF без ограничений на входа.
Вопрос частично понятен, как преобразовать INT в биты в UDF?
Причем здесь панель?
Я передаю INT в панель или контроллер и там обрабатывается.
Если по первому варианту, то на количество "камней" в UDF так же имеется ограничение.
Сильно не повыпендриваешься. Универсального способа нет.
Не могли бы пример задачи предоставить, что бы как то помыслить в одном русле, а не глобально.

ps
посмотрел немецкий сименс форум, тему убрали прикрепленную, со всякими решениями.
решения работы с битами там были еще применительно к 6ой версии.

повидимому сименс тактику поменял помощи, делает все, что бы только к ним обращались в сапорт.
psps
в примерах
http://w3.siemens.com/mcms/programmable ... fault.aspx
имеется пример Dezimal - BCD Konverter
http://www.automation.siemens.com/sales ... erters.zip
внутри и английские версии
полагаю, может почь
Supervision of erection

Ответить