На FBD можно написать следующим образом: у вас почти все было готово))) элемент XOR в Network 2 на первый вход элемента XOR нужно подключить элемент PTRIG который выделяет фронт сигнала с кнопки ( у вас он уже готовый и стоит в Network 1 перед FC1), дальше на выход элемента XOR нужно подключить катушку [=] и подвязать к ней выход Lamp, и этот выход нужно нужно подключить ко второму входу элемента XOR. Получается нажимая первый раз на кнопку и по положительному фронту вы включаете выход Lamp и он же появиться на втором входе элемента XOR, повторно нажимая на кнопку выход выключиться. Спасибо за то что показали как можно написать на SCL я немного по другому писал код на SCL чтобы все работало по одной кнопке.
Только вчера занимался такой проблемой. А тут видео на тему. В нормальных ЯП это решается просто. А в ЯП автоматизации я как-то не сообразил как это изящно реализовать. Нужно чисто на LAD-FBD.
На FBD логику XOR для буля можно написать на двух AND и один OR. Классика (на первый AND подаем кнопку и инвертируемый выход после OR, на второй AND наоборот выход после OR и инвертируемая кнопка, оба AND сводятся в OR . выход после OR это и будет переключаемый bool от одной кнопки. И кнопка по переднему фронту подается обязательно.
Оставлю это здесь.. на языке SCL (STL) . сам обыскался этого простейшего кусочка кода IF ("KNOPKA1" = TRUE AND NOT #button_last) THEN "LAMP1" := NOT "LAMP1"; END_IF; #button_last := "KNOPKA1";
Можно также инкрементить какой-нибудь байт, например MB5. А после простое логическое сравнение младшего бита(M5.0) с единицей. Если тру, то активировать выход. Таким способом можно удивить на собеседовании, где предлагают решить эту распространенную задачу. Иногда даже ведущего инженера-электроника это ставит в ступор, когда он ожидает увидеть ксор, а тут хоба! что-то неожиданное
Можно использовать блок сет/ресет, 2 блока энд и поситив фронт нашей кнопки. На блок анд сета будет давать нормально закрытый сигнал лампы ну а на ресете соответсвенно нормально открытый сигнал лампы. Благодаря этому разрешение на включение или отключение лампы будет зависеть от ее текущего состояния
Ну вы ваще) На фбд делается так : Нашц кнопку ведем на негативный фронт, отслеживает который (например) меркерный бит м200.4, выход с него - на блок И, второй вход блока И - инверсия темпаральной переменной "Тр", с этого блока И выход на S вход SR триггер. R триггера такой - инверсия нашей кнопки идет на положительный фронт, который пишется (например) в меркерный бит м200.5. Далее выход на блок И, второй вход которого - темпаральная переменна "Тр". Ну и в конце - выход триггера на нашу лампу и темпаральную переменную "Тр". И никакого SCL )
Друзья, спасибо за комментарии. Напомню, что речь шла конкретно о XOR. Пусть в связке с чем то. OR и AND это другая история. Вопрос не ставился как вообще сделать.
Автор, можно вкл.выкл. с одной кнопки сообразить и с двух счётчиков. Т.е. Первому счётчику поставил уставку 1, и на выходе катушка, второму счётчику поставил уставку 2 и на выходе сброс обоих счётчиков. При этом контакт на входе счётчиков адрес один и тот же, адрес счётчиков 1 и 2, разные.
думаю, не хватает защиты от дребезга контактов (у механических кнопок они могут быть) - блок усложнится сразу на плохих кнопках или концевиках результат срабатывания может быть непредсказуемым
Решил задачу изрядно потратив времени (в основном на разборки с синтаксисом). Как же зверски реализован FBD в сименсе. Хорошо что на сименсе я пишу только на SCL и соединяю лестничной: В общем: Bit_in --> | P trig | --> | X | Tmp | | | | Bit_out Bit_out-->| | -- >| = |
Харт больше киповская тема. Встал возле ПЛК, посмотрел что нужно, настроил... А как несколько? Это же токовая петля, априори датчик один должен быть. Ну или какая то приблуда, которая Харт умеет, какой то спец ПЛК, к которому несколько датчиков подключено. Не встречал такие... Простой то Харт коммуникатор стоит немало))
Вот теперь вопрос понятен. Что в коде написать?)) Ответ - не знаю. Если это ТИА, то смотреть раздел коммуникаций и справки по блокам. Если это лад или фбд
@@SlavaSlavin1 подключить без бубна можно к каждому каналу и читать через токовую петлю ещё одно значение у датчиков через hart. На датчиках адрес должен быть только нулевым, Сименс схематически показывает подключение к одному из каналов подключение до 15 датчиков. А как реализовать протокол опроса по ихнему оборудованию информации нет,вот думал Вы сталкивались с таким.
@@korjik8651 Нет, не сталкивался. Это, на мой взгляд, прям спецефично)) Я вообще никогда Hart не рассматривал для обмена. Ну не для того его придумали.
@@СтаниславМаляр-я5б Вы спросили - смогу, я ответил) FBD "переводится" в LAD и обратно двумя клика и. Просто выберите в редакторе другой язык и произойдёт замена
@@SlavaSlavin1 да что то так и не получилось. Тоже подумали перевести, ругается на синтаксис, видать что то не так делали. Будем пробовать еще. Пока только начал изучать портал, по работе пришлось. Простейшее научился уже включать выключать. А вот по одной кнопке пока не осилил программу.
@@СтаниславМаляр-я5б ролик недопиленный. В телеге потом разобрались, что мне связь с космосом порвало что то просто)) Легко там и на FBD делается и на чем угодно
LAD это немного перефразированный FBD. Ну или я так вижу)) То, что тут на SCL, есть кусок, так в телеге давно уже в комментариях к этому видео разобрались, что можно и без него ;)
Есть очень наглядное видео ,как включить и выключить одной кнопкой,и не только это. Реализуется это в FBD,в step7. Автор видео Игорь Альтерман,ролик называется :"Логические функции в Степ7". Рекомендую к просмотру всем.И,кстати,реализуется это как раз на XORe.
Друзья, истина как всегда была рядом)) Всё там просто на FBD. Заходите в телегу и в комментах к посту на это видео все есть
На FBD можно написать следующим образом: у вас почти все было готово))) элемент XOR в Network 2 на первый вход элемента XOR нужно подключить элемент PTRIG который выделяет фронт сигнала с кнопки ( у вас он уже готовый и стоит в Network 1 перед FC1), дальше на выход элемента XOR нужно подключить катушку [=] и подвязать к ней выход Lamp, и этот выход нужно нужно подключить ко второму входу элемента XOR. Получается нажимая первый раз на кнопку и по положительному фронту вы включаете выход Lamp и он же появиться на втором входе элемента XOR, повторно нажимая на кнопку выход выключиться. Спасибо за то что показали как можно написать на SCL я немного по другому писал код на SCL чтобы все работало по одной кнопке.
На канале, в телеграм, именно на таком варианте FBD и остановились, пожалуй как на самом лаконичном ;)
Только вчера занимался такой проблемой. А тут видео на тему. В нормальных ЯП это решается просто. А в ЯП автоматизации я как-то не сообразил как это изящно реализовать. Нужно чисто на LAD-FBD.
Чисто на FBD уже реализовали в телеге. Заходите ;)
На FBD логику XOR для буля можно написать на двух AND и один OR. Классика (на первый AND подаем кнопку и инвертируемый выход после OR, на второй AND наоборот выход после OR и инвертируемая кнопка, оба AND сводятся в OR . выход после OR это и будет переключаемый bool от одной кнопки. И кнопка по переднему фронту подается обязательно.
И снова не про XOR
@@SlavaSlavin1 это и есть логика XOR , хоть сам блок XOR не используется а только логика его работы.
@@demin504 возможно. Со слов воспроизвести код FBD, это уже другая задача. Но я верю ;)
@@SlavaSlavin1 в телеграм канале вашем фото выложил как логика XOR выглядит на двух AND и один OR
Оставлю это здесь.. на языке SCL (STL) . сам обыскался этого простейшего кусочка кода
IF ("KNOPKA1" = TRUE AND NOT #button_last) THEN
"LAMP1" := NOT "LAMP1";
END_IF;
#button_last := "KNOPKA1";
Можно также инкрементить какой-нибудь байт, например MB5. А после простое логическое сравнение младшего бита(M5.0) с единицей. Если тру, то активировать выход. Таким способом можно удивить на собеседовании, где предлагают решить эту распространенную задачу. Иногда даже ведущего инженера-электроника это ставит в ступор, когда он ожидает увидеть ксор, а тут хоба! что-то неожиданное
Логику понял не до конца, но код явно длиннее будет) Можно чего угодно, на мой взгляд, "на удивлять", но итог оценивается по читаемости и лаконичности
Хорошее видео ❤️💪💪
Можно использовать блок сет/ресет, 2 блока энд и поситив фронт нашей кнопки. На блок анд сета будет давать нормально закрытый сигнал лампы ну а на ресете соответсвенно нормально открытый сигнал лампы. Благодаря этому разрешение на включение или отключение лампы будет зависеть от ее текущего состояния
Согласен, но это не про XOR))
@@SlavaSlavin1 Не понял вопроса) Как нибудь вечерком потренируюсь с XOR, не доводилось использовать его на практике
Ну вы ваще)
На фбд делается так :
Нашц кнопку ведем на негативный фронт, отслеживает который (например) меркерный бит м200.4, выход с него - на блок И, второй вход блока И - инверсия темпаральной переменной "Тр", с этого блока И выход на S вход SR триггер. R триггера такой - инверсия нашей кнопки идет на положительный фронт, который пишется (например) в меркерный бит м200.5. Далее выход на блок И, второй вход которого - темпаральная переменна "Тр". Ну и в конце - выход триггера на нашу лампу и темпаральную переменную "Тр". И никакого SCL )
Хуже не придумаешь код на фбд словами описывать))
Да, наверняка можно. Мне нужен был XOR. С ним не дотямкал
@@SlavaSlavin1 XOR не нужен в приведенном мною случае
Друзья, спасибо за комментарии. Напомню, что речь шла конкретно о XOR. Пусть в связке с чем то. OR и AND это другая история.
Вопрос не ставился как вообще сделать.
Автор, можно вкл.выкл. с одной кнопки сообразить и с двух счётчиков. Т.е.
Первому счётчику поставил уставку 1, и на выходе катушка, второму счётчику поставил уставку 2 и на выходе сброс обоих счётчиков. При этом контакт на входе счётчиков адрес один и тот же, адрес счётчиков 1 и 2, разные.
Можно и так)
думаю, не хватает защиты от дребезга контактов (у механических кнопок они могут быть) - блок усложнится сразу
на плохих кнопках или концевиках результат срабатывания может быть непредсказуемым
Передний фронт как раз для этого. Если там совсем дикий дребезг ожидается, значит не в ОВ1 запускать. В каком другом с другим циклом
Решил задачу изрядно потратив времени (в основном на разборки с синтаксисом). Как же зверски реализован FBD в сименсе. Хорошо что на сименсе я пишу только на SCL и соединяю лестничной:
В общем:
Bit_in --> | P trig | --> | X |
Tmp | |
| | Bit_out
Bit_out-->| | -- >| = |
только неделю назад думал как это воплотить!
В телеге разобрались как и на FBD) Забегайте
Можно и лаконичнее: Button из интерфейса FC убрать, IF внутри тоже, а передний фронт кнопки привязать к EN вызова FC ;)
В других моделях плк на LAD легко делается вкл.и выкл. одной кнопкой. Вот и спрашивал как реализовать на LAD.
@@korjik8651 ну вот теперь у вас море инфы зато)) Разбирайтесь
Что бы не заморачиваться с текстовым описанием как реализовать данный пример на FBD, я скинул скриншот в комментарии к видео в телеграм канале.
Если знаете что нибудь про протокол sercos iii, подскажите каким оборудованием его состыковать с сименсом?
Увы, впервые слышу
Можете рассказать про hart протокол? Как читать несколько датчиков?
Харт больше киповская тема. Встал возле ПЛК, посмотрел что нужно, настроил...
А как несколько? Это же токовая петля, априори датчик один должен быть. Ну или какая то приблуда, которая Харт умеет, какой то спец ПЛК, к которому несколько датчиков подключено. Не встречал такие... Простой то Харт коммуникатор стоит немало))
@@SlavaSlavin1 есть такая приблуда 6ES7134-6TD00-0CA1
Вот теперь вопрос понятен. Что в коде написать?))
Ответ - не знаю.
Если это ТИА, то смотреть раздел коммуникаций и справки по блокам. Если это лад или фбд
@@SlavaSlavin1 подключить без бубна можно к каждому каналу и читать через токовую петлю ещё одно значение у датчиков через hart. На датчиках адрес должен быть только нулевым, Сименс схематически показывает подключение к одному из каналов подключение до 15 датчиков.
А как реализовать протокол опроса по ихнему оборудованию информации нет,вот думал Вы сталкивались с таким.
@@korjik8651 Нет, не сталкивался. Это, на мой взгляд, прям спецефично))
Я вообще никогда Hart не рассматривал для обмена. Ну не для того его придумали.
Я делаю банально на D триггере, на вход С цепляю кнопку, а на вход D подаю сигнал с выхода этого же триггера через инверсию NOT.
Я русский . Мой страна Россия . Я из России. Защищает мне. Мальчики , девочки, маны и Женщины тунисцы раздражают мне .
чего
@@palacecountry5923
- Я - русский!
- Нам то не гони!
На lad можете то же самое показать?
Смогу)
@@SlavaSlavin1 а где можно подсмотреть?
@@СтаниславМаляр-я5б Вы спросили - смогу, я ответил) FBD "переводится" в LAD и обратно двумя клика и. Просто выберите в редакторе другой язык и произойдёт замена
@@SlavaSlavin1 да что то так и не получилось. Тоже подумали перевести, ругается на синтаксис, видать что то не так делали. Будем пробовать еще. Пока только начал изучать портал, по работе пришлось. Простейшее научился уже включать выключать. А вот по одной кнопке пока не осилил программу.
@@СтаниславМаляр-я5б ролик недопиленный. В телеге потом разобрались, что мне связь с космосом порвало что то просто))
Легко там и на FBD делается и на чем угодно
Дайте мне нотбук windows 10 и wifi
InvertBit в Events кноки)
Интересно) Но это на уровне HMI и только в случае с вирт кнопкой. Из области М, например
Что же так сложно то? На LAD сделаешь?))
Конечно?
LAD это немного перефразированный FBD. Ну или я так вижу))
То, что тут на SCL, есть кусок, так в телеге давно уже в комментариях к этому видео разобрались, что можно и без него ;)
Есть очень наглядное видео ,как включить и выключить одной кнопкой,и не только это. Реализуется это в FBD,в step7. Автор видео Игорь Альтерман,ролик называется :"Логические функции в Степ7". Рекомендую к просмотру всем.И,кстати,реализуется это как раз на XORe.
Уже реализовали) В телеге. А Альтерман - со всем уважением. Многое и от него узнавал
посмотрел несколько раз, так и не понял как схема работает
Там больше код SCL работает)