1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Программа на FBD (Siemens) - пытаюсь понять...

Модератор: Глоб.модераторы

Ответить
Аватара пользователя

Автор темы
VADR
администратор
администратор
Сообщения: 4925
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 245 раз
Поблагодарили: 426 раз

Программа на FBD (Siemens) - пытаюсь понять...

Сообщение VADR »

Здравствуйте, коллеги.

Самостоятельно пытаюсь изучить программирование симатиков, и дабы совместить полезное с полезным, ковыряю рабочий проект (задать вопросы разработчику не могу, поэтому взываю к мировому разуму). И вот столкнулся с языковыми конструкциями на FBD, которые понять не могу.

1. Вот такая конструкция. Если я правильно понял, здесь из слова берётся младший байт, сравнивается со значением 37, и если равно, по определённому адресу закидывается число 2. Если я правильно понимаю, это же самое можно сделать гораздо проще (учитывая, что аналогичных конструкций с другими константами ещё штук 5 в коде). Или есть какой-то глобальный смысл делать именно так?
screen1.jpg
2. И вот такая. Комментарии соответствуют реальности, в M199.0 всегда 1, в M199.1 - всегда 0. Мне кажется или эта конструкция и вправду никогда не сработает?
screen2.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
Аватара пользователя

erv_asutp
осмотрелся
осмотрелся
Сообщения: 125
Зарегистрирован: 25 авг 2015, 11:55
Имя: Ефименко Роман Владимирович
Страна: Россия
город/регион: Москва
Благодарил (а): 1 раз
Поблагодарили: 17 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

Сообщение erv_asutp »

Ну как бы "Что-то"&"0" всегда будет равно "0", остальное там уже ни к чему.
Аватара пользователя

Автор темы
VADR
администратор
администратор
Сообщения: 4925
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 245 раз
Поблагодарили: 426 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

Сообщение VADR »

erv_asutp писал(а):Ну как бы "Что-то"&"0" всегда будет равно "0", остальное там уже ни к чему.
Я о том и говорю. Там ещё, кстати, "что-то или инвертированная 1", которая всегда даст "что-то", бывшее в начале (впрочем, да - следующий "и" сводит это на нет...). То есть, я правильно понимаю, что никаких скрытых смыслов в этих фрагментах нет и всё работает именно так, как это выглядит на первый взгляд?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
Аватара пользователя

erv_asutp
осмотрелся
осмотрелся
Сообщения: 125
Зарегистрирован: 25 авг 2015, 11:55
Имя: Ефименко Роман Владимирович
Страна: Россия
город/регион: Москва
Благодарил (а): 1 раз
Поблагодарили: 17 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

Сообщение erv_asutp »

Ответы специалиста, которому я доверяю))
[9:14:49] Дмитрий Филь: второй блок - сбор по И и там переменная которая всегда ноль
[9:14:50] Дмитрий Филь: странная конструкция конечно...
[9:15:17] Дмитрий Филь: наверное что - то было написано, а потом исправлялось, вот и получается такая "петрушка"
[9:15:19] Дмитрий Филь: да уж... ну може оно так задумано? типа очень хитро закоментировали код ;)
Аватара пользователя

Автор темы
VADR
администратор
администратор
Сообщения: 4925
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 245 раз
Поблагодарили: 426 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

Сообщение VADR »

Значит, дело не в том, что я что-то недопонял, а всё так и есть :lol:
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.

Михайло
эксперт
эксперт
Сообщения: 3648
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 8 раз
Поблагодарили: 286 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

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

Что за блок "==0" на первом скриншоте?

agent_serg
здесь недавно
здесь недавно
Сообщения: 94
Зарегистрирован: 12 мар 2014, 16:43
Имя: Сергей
Поблагодарили: 1 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

Сообщение agent_serg »

VADR писал(а):Или есть какой-то глобальный смысл делать именно так?
Сколько раз разбирался в чужих программах, столько и находил подобные "висяки".
Скорее всего, это просто остатки от каких-то предыдущих задумок автора. Потом автор что-то переосмыслил, внёс изменения, кое-где подвесил нолики, кое-где единички. Иногда, так проще, чем вносить кучу изменений.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Re: Программа на FBD (Siemens) - пытаюсь понять...

Сообщение megavolt86 »

А извиняюсь, блок wand_w это логическое умножение слова? А wxor_w исключительно или для слова? Тыл бы степ 7 под рукой посмотрел бы хелп, но его нет а жутко интересно)))
:ext_secret:
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1743
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 79 раз
Поблагодарили: 236 раз

Программа на FBD (Siemens) - пытаюсь понять...

Сообщение petr2off »

wand_w это побитовое логические И а wxor_w соответственно побитовое исключающее или
Ответить

Вернуться в «ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)»