блок write to FB и импульс на R только в этом случае после достижения 8 установиться опять значение какое находиться в блоке "write to FB", если нужно чтоб начал с нуля поставьте еще SEL на входе в блок "write to FB"
Последний раз редактировалось Sergej_; 04.11.2020 в 10:28.
Было бы интересно и познавательно если бы ОВЕН выложил такие данные по всем функциям и ФБ. и их комбинациям.Вряд ли такие исследования кто делал. А из курса "автоматики и вычислительной техники" АЛУ процессора только складывать и сдвигать умеет ( мож. чего забылТот вопрос, на который я всё не могу получить ответ: какие ФБ больше влияют на время цикла (считай, больше грузят процессор)?, а мож чему еще "научили" с тех пор).Все остальное как программисты наворотят, так и будет крутиться. Ваши ответы на последний вопрос подтверждают, как можно изящно сделать.
Последний раз редактировалось Sergej_; 04.11.2020 в 13:42.
Не знаю как там, не смотрел, у меня для аналогичного макроса существует настройка для каждого выхода извлекаемого бита:
Настройка извлекаемых бит для каждого выхода.PNG
Упаковка-распаковка_7.owl
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Этот мы имеем) и пользуемся регулярно.
Так же раз уж Вы появились, сам я стеснялся спросить.
Может можно как то сэкономить памяти энергонезависимой, я проект урезал, вписался он в 70%, до урезания был 99% и как бы что бы себя не ограничивать решил отказаться от определенных функций.
Смысл в чем, есть 8 автоматических программ, в каждой программе 8 шагов, каждый шаг имеет 4 типа и каждый шаг длится определенное время, все эти параметры пользователь с дисплея может редактировать сам, а потом уже в автоматическом режиме использовать. Так вот можно ли как то память сэкономить?
image_2020-11-04_171643.png
Молоко2.owl
У Вас в переменной ввода данных используется 4 десятичных разряда, даже не зная точного диапазона ввода, можно с уверенностью на 100% утверждать, что это занимает не более 14 бит и объём занимаемой энергонезависимой памяти, что используется сейчас для запоминания этих переменных можно без труда уменьшить в 2 раза, кстати, проект, что я выложил, для подобных целей и создавался, только там энергонезависимая переменная делится на байты, Вам достаточно на регистры поделить(пополам) по 2 байта(16 бит), всё! Можно располовинить и теми макросами, что в выложенном проекте, но удобнее, что в этом проекте:
Упаковка-распаковка.owl
И зачем у Вас столько однотипных экранов редактирования программ, я делаю так в аналогичных случаях: ввожу переменную номер программы, она меняется, и таких экранов надо в 8 раз меньше!
И для номера шага используйте переменную, тогда у Вас все экраны редактирования уместятся в двух строках, номер программы и номер шага!
Вот посмотрите проекты с подобным подходом:
Командоаппарат реальногого времени с маской недели на 32 команды 8 канальный_00.owl
Термостат_7.owl
Последний раз редактировалось Сергей0308; 05.11.2020 в 08:38.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Приветствую.
Есть два способа "донести" сигнал со входа DI до элементов схемы:
1. Занести значение входа в входную переменную, далее использовать переменную где необходимо.
2. Без использования переменной - сразу вести связь в нужную часть схемы.
При использовании первого способа схемы получаются аккуратными и читаемыми.
При использовании второго способа - получается нагромождение связей.
Поэтому предпочитаю использовать первый способ.
Вопрос такой - есть ли какие-то минусы в первом способе, например - больше ресурсов используется, программа выполняется за большее кол-во тактов, еще что-то?
Может быть есть какие-то случаи, в которых стоит предпочесть использование второго способа?
Последний раз редактировалось K123; 04.11.2020 в 22:48.
K123 если не используете энергонезависимые переменные, то разницы в затрачиваемых ресурсах нет.
Сергей 0308 поинтересуюсь, раз уж речь зашла, а нет ли способа передавать из/в скада-системы отрицательные целые числа в формате обычного int? чтобы потом в программе уже превращать их во флоат?
просто я тут ваял себе свой собственный аналог ТРМ32, и столкнулся с тем, что для корректировки отрицательных значений по сети и локально приходится использовать float числа, что просто уничтожает запас сетевых переменных, хотя по факту передавать нужно обычные целые числа, но со знаком минус.
тут даже основная задача не преобразовать int во флоат, а как соорудить аналог selchgF (чтобы можно было и с экрана и по сети). раньше была беда с тем, что оператор мог внести во флоат не только целое число, а теперь нам стали доступны на экране флоат без знаков после запятой!
осталось только кому-нибудь соорудить такой классный макрос!
Последний раз редактировалось bayk; 05.11.2020 в 20:10.
Насколько понял, это давно уже придумано, один из первых моих макросов:
https://owen.ru/forum/showthread.php?t=13106&page=3
INT_TO_FLOAT_2.PNG
Последний раз редактировалось Сергей0308; 05.11.2020 в 21:16.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Вариант...
Захват-1.png
Только не забываем, про допустимый диапазон чисел от -32768 до +32767
Последний раз редактировалось petera; 05.11.2020 в 22:32.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg