Просмотр полной версии : Функциональные блоки- где искать?
Прошу помощи, пытаюсь объяснить ПЛК что я от него хочу, не получается по ряду причин. До этого реализовывал алгоритм в среде функциональных блоков в другой программе, прошел обучение в Овен- многое узнал. Но не хватает нескольких блоков.
1- Требуется демультиплексор, в программе имеется блок мультиплексор "MUX"- нужна его зеркальная версия, не могу найти.
2- Существует функциональный блок "таблица состояний"? На входе дискретные сигналы в блоке в виде таблице прописывается при какой комбинации на выходе будет 1.
3- Блок на входе которого дискретные сигналы на выходе число (количество) входов с 1. На входе блока 5 дискретных сигналов из которых 3 true- на выходе число 3.
:confused:
"На входе блока 5 дискретных сигналов из которых 3 true- на выходе число 3"
:) ctu подойдет?
"На входе дискретные сигналы в блоке в виде таблице прописывается при какой комбинации на выходе будет 1"
add or xor not (ctrl+a для увеличения кол-ва входов)
"На входе блока 5 дискретных сигналов из которых 3 true- на выходе число 3"
:) ctu подойдет?
причем тут счетчик, здесь просто нужно дискретные сигналы перевести в инты и сложить, а результат на выход
1- Требуется демультиплексор, в программе имеется блок мультиплексор "MUX"- нужна его зеркальная версия, не могу найти. Util.lib (http://www.owen.ru/catalog/codesys_v2/67395347) - UNPACK
2- Существует функциональный блок "таблица состояний"? На входе дискретные сигналы в блоке в виде таблице прописывается при какой комбинации на выходе будет 1. Непонятно написали. Речь либо о тривиальном равенстве, либо о выполнимости булевых формул (https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B2%D1%8B% D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D0%BC%D0%BE%D1%81%D1 %82%D0%B8_%D0%B1%D1%83%D0%BB%D0%B5%D0%B2%D1%8B%D1% 85_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB).
3- Блок на входе которого дискретные сигналы на выходе число (количество) входов с 1. На входе блока 5 дискретных сигналов из которых 3 true- на выходе число 3. BOOL_TO_INT на каждый вход ADD.
Непонятно написали. Речь либо о тривиальном равенстве, либо о выполнимости булевых формул (https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B2%D1%8B% D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D0%BC%D0%BE%D1%81%D1 %82%D0%B8_%D0%B1%D1%83%D0%BB%D0%B5%D0%B2%D1%8B%D1% 85_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB).
слишком глубоко, тут наверное имелось ввиду создание СКНФ/СДНФ, но это должно быть относительно какого то частного случая, для ПК я встречал проги которые оптимизируют набор элементов из любой таблицы, но на плк даже бы не взялся, только голову ломать
причем тут счетчик, здесь просто нужно дискретные сигналы перевести в инты и сложить, а результат на выход
да, может и так
мне с первого раза показалось что речь о счетчике
Владимир Ситников
29.02.2016, 14:59
2- Существует функциональный блок "таблица состояний"? На входе дискретные сигналы в блоке в виде таблице прописывается при какой комбинации на выходе будет 1.
Думаю, имелось ввиду такое:
X | Y | Z | F(x,y,z)
0 | 0 | 0 | 1
0 | 0 | 1 | 1
0 | 1 | 0 | 0
1 | 0 | 0 | 1
Т.е. товарищу нужно, чтобы функцию можно было задавать через таблицу состояний.
Хотя, конечно, если функция полностью задана на этапе написания программы, то СКНФ/СДНФ.
А если предлагается через scada задавать таблицу состояний, то это, наверное, приведёт к головной боли для настройщика.
Scream- Спасибо, вариант рабочий. Попробую оформить в отдельный функциональный блок.
Yegor- Util.lib - UNPACK пакует состояние 8ми дискретных входов в байт. Выполнение равенства простое, но муторное. Использование мною ранее "таблицы состояний"- здорово упрощало это занятие. BOOL_TO_INT + ADD - буду пробовать.
vladimirisitnikov- такая функциональность нужна для оперативного внесения изменений разработчику.
вместо 6ти блоков and
22900
стоит задача ротации оборудование при условии что в работе не менее 3х из 5ти. только сейчас понял что проще это сделать посредства сложения и сравнения. но таблица удобна.
UNPACK пакует состояние 8ми дискретных входов в байтЭто делает PACK.
стоит задача ротации оборудованиеSHL + MOD.
Владимир Ситников
29.02.2016, 16:19
здорово упрощало это занятие
Вот давайте таких штук, и побольше, побольше сюда: http://www.owen.ru/forum/showthread.php?t=23013
стоит задача ротации оборудование при условии что в работе не менее 3х из 5ти. только сейчас понял что проще это сделать посредства сложения и сравнения. но таблица удобна.
Ротацию оборудования обычно делают через битовый сдвиг.
Просто ставим несколько бит, и двигаем их циклически.
Какой смысл явно задавать таблицу состояний?
Особенно, с учётом того, что в зависимости от непредсказуемых аварий оборудования "таблицу" состояний нужно подстраивать на ходу.
ок. UNPACK преобразует вход B типа BYTE в 8 выходов B0,...,B7 типа BOOL. по сути то же. SHL + MOD - не слышал, буду изучать
Вот давайте таких штук, и побольше, побольше сюда: http://www.owen.ru/forum/showthread.php?t=23013
Ротацию оборудования обычно делают через битовый сдвиг.
Просто ставим несколько бит, и двигаем их циклически.
Какой смысл явно задавать таблицу состояний?
Особенно, с учётом того, что в зависимости от непредсказуемых аварий оборудования "таблицу" состояний нужно подстраивать на ходу.
очень интересно. можно пример?
Держать N из M чего-то там, где любой из этих чего-то может самостоятельно куда-то отойти, лучше не через таблицы состояний и битовые поля, а через работу с массивом.
Битовые поля - тоже массивы, только возможных состояний часто нужно больше 2х, а делать дополнительные поля - только для одноразовых алгоритмов. Проще массив хотя бы из байтов.
К сожалению на форуме непонятно как искать вложения. Я выкладывал библиотеку для CDS2.3 переписанную из макроса ПР-ки, которую по просьбе создал AI, аналог Boolen из Schneider Zelio Logic.
Но там надо было на вход подавать маску входов, при которой в нужной(ых) комбинациях на выходе должна быть 1.
Оперативное изменение только по расчету из EXEL файла, иначе запутаться можно :)
Если надо, выложу еще раз, но если честно, то напрягает :)
З.Ы. писал ротацию кондиционеров по отключению питания для полупромышленных кондиционеров Кентатсу, сейчас у них даже модули специальные появились, но тогда не было.
Писал на ПЛК 63 в CFC варианте, как раз использую MOD по наводке с форума.
Могу выложить проектик, там можно переработать для разного числа отдыхающих блоков.
речь не о ротации по моточасам. всего 5 кондиционеров, максимальное число в работе 4. Когда работают 4 кондиционера- температура опускается ниже +15, если работают 3- температура растет выше +25. Задача- по достижению уставке выключить к1, после роста температуры- к1 включить и в последующем выключить к2. Далее к3, к4 и к5. В принципе все уже реализовано, но резервный кондей не задействован. Зачем все это нужно смыла объяснять наверное нет.
А смысл не задействовать резервный кондей ?
4 кондея подойдут к своему логическому ресурсу для обслуживания, а один такой красавец, ни разу не работал, молодец, только один он ни фига не справится в случае чего...
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot