Чушь.
xor дает TRUE когда только один вход отличается от всех других
Знаки входов не имеют значения.
Вид для печати
Да ну на ?
Внимание: Допускается расширяемая форма, т.е. XOR имеет более двух входов. В этом случае входы обрабатываются попарно, затем к результатам опять применяется XOR. Такой алгоритм определен стандартом.
Из справки CDS
Не ну так есть. Я накосячил. Более точная трактовка. После проверки ессно ))
xor дает TRUE при нечетной сумме единиц на входе.
Разбивка в гирлянду как угодно не имеет -значения.
PS
Мои предыдущие утверждения - рез-т хождения во тьмах )))
Валенок, так ведь указано проверка попарно, а не сразу по всем входам. И какая разница сколько входов ?
На скрине выше четное количество входов, но true там нет на выходе, а 1 четное количество.
Скорее всегда true на выходе, когда нечетное количество 1 при любом количество входов. Изменение любого входа меняет состояние выхода.
Видимо пока Вы писали ответ - я свой немного отредактировал.
и Вы тоже пришли к этому выводу как я выше.Цитата:
true на выходе, когда нечетное количество 1 при любом количество входов.
Теорема Melky-Валенка. Или Валенка-melky. Если, конечно, не подрезали ранее )))
Я хз насчёт пар в стандарте. Там есть вот что:
Вложение 16428
Типичный парсер в случае правоассоциативного синтаксиса строит деревья вот так: q1 XOR (q2 XOR (q3 XOR q4))
Отсюда:В случае левоассоциативного синтаксиса: ((q1 XOR q2) XOR q3) XOR q4. Результат тот же, ибо коммутативность.Код:TRUE XOR (TRUE XOR (TRUE XOR FALSE)) =
TRUE XOR (TRUE XOR TRUE) =
TRUE XOR FALSE =
TRUE
Гораздо проще было написать то же самое в документации, нежели пытаться что-то объяснять в попарных терминах.
Yegor так в приведенной табличке и указано, что ксорится каждая пара.
in1 xor in2 xor in3 xor .... inN, так что все правильно, ксор идет сразу значение за значением последовательно.
Какая каждая? Выделите мне пары в выражении q1 xor q2 xor q3, пожалуйста, а то я так и не усну.
Yegor q1 и q2, потом результат с q3, потом результат с q4 и так далее.
В программе сравниваю LT (меньше) и надо по отключению командного входа на этом операторе устанавливать булевый выход в фалс. И не получается. Только сбросом плк. Как можно сделать?
Это какая-то очень альтернативная терминология, на мой взгляд. Есть оператор, у него два операнда. Мы их парой называть будем в изоляции от остального? Странно. Вот пары: (q1 XOR q2) XOR (q3 XOR q4). И это можно вычислить попарно. Одну пару попарно нельзя вычислить.Цитата:
q1 и q2, потом результат с q3, потом результат с q4 и так далее.
Покажите свой код.Цитата:
Только сбросом плк. Как можно сделать?
Подошел. Наполовину. Пришлось схему усложнять... Хотя она и без того уже сложная из-за таких вот фишек...
Уважаемый Капзап,подскажите, где я могу прочитать про функции и как их использовать в практике на CFC. С учетом, что я не программмист, а электрик с пониманием релейной логики, не больше. Иногда туплю в элементарных вещах. Недостаток образования в лихие девяностые сказывается. Обязуюсь исправиться. Кстати, пытался использовать XOR - на мой взглд абсолютно непрактичная хрень. Алгоритм моей задачи- забиваем вес, которого нужно достичь, включаем пуск- открывается клапан- вода пошла. Колебания жидкости в баке и напор струи вызывают погрешности на весах. Поэтому я ввожу процент, сколько недолить. Достигнув этого значения клапан закрывается, включается таймер на успокоение жидкости в баке. Затем, с учетом, что открытый клапан пропускает литр в секунду, таймер TP открывается на тот период, сколько надо долить. Егор, прости, тему твою перебиваю, но не знаю, куда свой вопрос запихать- надо очень. Семья жрать просит.
А проблема в том, что клапан электромеханический, я пошагово прогу смортю- и понимаю, что будет врать.
У нас в сельском хозяйстве поступают проще--ВОПРОС1:В эту емкость наливается одна и таже жидкость? (плотность и дрожание емкости прочее ха-рки), ели ответ да--то эту коррекцию на высоту падающего столба определяю эксперементально и делаю упреждение. Если нет-- если продуктов несколько для каждого вида определяется эта погрешность и соответсвенно вносится в программу. У нас сыпучие продукты (зерно отруби итд) при работе 3 питателей в одну емкость удается добиться точности+- 0,5кг на тонну смеси, что устраивает заказчика (этот метод весового дозирования используется давно).УЧЕТ ВЕСА ПРИ ЗТОМ ВЕДЕТСЯ С НАРАСТАЮЩИМ ИТОГОМ, тогда и сбрасывать не придется.. Ну а если такая точность не устраивает да и вообще я на жидкости не пробовал.. при подходе к уставке веса 10-15 процентов клапан прикрыть, чтобы погрешность была меньше на тонкой струйке..Вообщем надо использовать девиз не искать спасение в коде программы, а понять структуру и физику работы системы, а потом уже применять посильные познания в прграммировании и пытаться реализовать--совет электрику:) Правда прогу писал на великом и могучем st с помощью 2-3х операторов.
не совсем представляю схему установки в целом, если это тензо-весы, то на табло всегда должен имется стабильный ноль, по которому судят можно верить показаниям или нет, но никогда не слышал что по весам осуществляют дозирование, для этого надо приобретать счетчик, семен или ендрюс имеют на борту функции дозирования, т.е задали объем/массу и по ней релейный вход управляет клапаном, а программные штучки тут не пройдут, можно и не учиться :)
А я вот делал дозирование воды на тензо. Заказчик просто пожопил на нормальный счетчик. Да и на частотник тоже. И то 100 литров дозирует за 5 сек с точностью 100 гр. Надо просто в коде учитывать время измерения значения с тензомодуля и все остальное время не смотреть на старое значение веса, а апроксимировать исходя из предыдущего замера на каждый цикл ПЛК + додозировка и учет веса в полете естественно. Таким образом и воду и сухие дозирую. В зависимости от требовпний ко времени дозирования и качества механики получается до 0.01% точность получить.
не поверю, у Вас 100гр проходит за 5мс, тут уже с точностью не срастается и второй вопрос еуда струя бьет что весы точные показания выдают
Господа ! макрос написал , библиотеку макросов завел а как поместить макрос в нее не как не пойму(
А каких макросах идет речь если о тех, что в CFC, то какая может быть библиотека макросов? Здесь понятие библиотека макросов неуместна, нужно не библиотеку макросов делать, а делать нормальные ФБ.
Если макрос, как подсистема пакетного выполнения команд кодесиса, то читать в справке
Вложение 16501 Вложение 16502
Вы правы работаю в CFC , тогда не понятно как гирлянду свернуть в ФБ если это не макрос ?
Обычный POU типа функция или функциональный блок.
рахмат , вроде вышло )
Как вытащить данные с панели ИП320?
Данные ? По RS. Или, глядючи, на бумажку записать
Программу залитую необходимо вытащить,исходник утерян благодаря вирусной активности.
Проблемка еще такая с сп270. 04,03 это функции чтения, 06-записи, так вот в конфигураторе сп200 присутствуют лишь память панельки, 03,04. 06-отсутствует.Как выполнить запись с панели на стороннее устройство с адресом 11 регистр 1001. Планирую управлять без плк
Тогда причем здесь среда программирования CoDeSys v2? Вопрос нужно задавать, например, здесь "сп270 для чайников" http://www.owen.ru/forum/showthread.php?t=8604
Глупости:rolleyes:. Все там есть. Не нужно путать ссылки на области регистров Modbus(3х, 4х) с командами 03, 04, 06.Цитата:
Проблемка еще такая с сп270. 04,03 это функции чтения, 06-записи, так вот в конфигураторе сп200 присутствуют лишь память панельки, 03,04. 06-отсутствует.
http://www.owen.ru/forum/attachment....1&d=1397777586
Нужные команды панель выберет сама, в зависимость от ссылки, числа регистров и типа операции(чтение или запись)
Вложение 16545
Команда будет 06(0х06)
Вложение 16546
А здесь команда будет 16(0х10)
Объясните поподробней про настройку переменных
какие команды для чего и на простом примере как ими пользоваться
Вложение 16548
Вложение 16549
Вложение 16550
Зависит от распределения регистров и бит в адресном пространстве подчиненного устройства(Slave) https://sites.google.com/site/fieldb...odbuseducation.
Всего предусмотрены четыре области
-Discrete Inputs, биты только чтение
-Coils, биты чтение и запись
-Input Registers, регистры только чтение
-Holding Registers, регистры чтение и запись.
Для каждой области нужны свои команды. Какие команды нужны для этих областей см. на картинке выше.
В общем случае эти четыре области расположены независимо друг от друга, в разных физических областях памяти. Но могут быть и варианты, например все области совпадают, т.е. накладываются на общее адресное пространство, так сделано в ПЛК ОВЕН. В этом случае не имеет значения какую команду выбирать для Register input module 0х04 или 0х03, обе будут правильными. То же относится и к 8 bit input module 0х01 и 0х02 будут правильными.
Так что заранее однозначно сказать нельзя, нужно смотреть карту распределения регистров конкретного устройства и какие команды оно поддерживает. По этому никаких простых примеров привести нельзя.