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

Пояснение выбора подобного алгоритма.

Модераторы: Глоб.модераторы, специалисты по PLC

Ответить

Автор темы
jutzle
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 03 апр 2024, 12:27
Имя: Андрей
Страна: Россия

Пояснение выбора подобного алгоритма.

Сообщение jutzle »

Всем здравствуйте!
Я работаю инженером АСУТП и в ходе работы часто сталкиваюсь с готовыми программами ПЛК. Регулярно видел подобный алгоритм объявления входной переменной на LD языке.
M0.0 ....M0.1..........Start
===I I===I/I====.====( )
.................... I
M0.1 .... X0..... I
===I I===I I====.
Переменные "М" нигде в программе не фигурируют, Х0 - это цифровой вход ПЛК, "Start" - любой койл.
Хотел бы узнать логику такого объявления входа ПЛК.
Заранее благодарен.
Аватара пользователя

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

Пояснение выбора подобного алгоритма.

Сообщение petr2off »

M - это как правило внутренние битовые регистры. Часть из них зарезервированно под надстроечные нужды, скажем M1004 - становится в ON при старте ПЛК (адрес я назвал от балды). Часть могут быть энерго независимыми, и т.д. Вообще - если занимаешься с конкретным контроллером - нужно найти его мануал и распечатать карту его регистров. Они очень разные бывают.
Какой кстати ПЛК юзаете ?

stesl
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 100 раз
Поблагодарили: 141 раз

Пояснение выбора подобного алгоритма.

Сообщение stesl »

jutzle писал(а): 03 апр 2024, 12:45 M0.0 ....M0.1..........Start
===I I===I/I====.====( )
.................... I
M0.1 .... X0..... I
===I I===I I====.
Что это за brainfuck ))
Не вижу ничего общего со всеми известными мне ассемблероподобными языками.
Дайте скрин или копипаст

PS Пардон, речь видимо о релейном языке, но все равно ничего не понятно
Аватара пользователя

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

Пояснение выбора подобного алгоритма.

Сообщение petr2off »

Вопрос не об алгоритме.
Это лестничная диаграмма (LD нотация)
Конкректно это фрагмент читается так:
Start = (M0.0 AND (NOT M0.1)) OR (M0.1 AND X0)

stesl
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 100 раз
Поблагодарили: 141 раз

Пояснение выбора подобного алгоритма.

Сообщение stesl »

petr2off писал(а): 09 май 2024, 07:48 Start = (M0.0 AND (NOT M0.1)) OR (M0.1 AND X0)
Ну это тогда не объявление, а инициализация некоей переменной. В чем суть вопроса - снова непонятно)
Аватара пользователя

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

Пояснение выбора подобного алгоритма.

Сообщение petr2off »

Вопрос больше по архитектуре ПЛК. Человек не понимает, откуда берутся переменные M0, он ведь их не объявлял.
Ответ - берутся из карты регистров ПЛК.

SBeaRM
здесь недавно
здесь недавно
Сообщения: 98
Зарегистрирован: 01 апр 2022, 11:08
Имя: Артем
город/регион: Благовещенск
Благодарил (а): 1 раз
Поблагодарили: 25 раз

Пояснение выбора подобного алгоритма.

Сообщение SBeaRM »

Столько понаписали, а ответа человеку так и не дали.
М0.0 и М0.1 в проекте ни где больше не фигурируют, потому что это какие-то кнопки или переключатели на панели управления.
При неактивном М0.1 переменная Start включается кнопкой М0.0 с панели управления, при активном М0.0 - внешней кнопкой, подключенной на вход Х0.

Автор темы
jutzle
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 03 апр 2024, 12:27
Имя: Андрей
Страна: Россия

Пояснение выбора подобного алгоритма.

Сообщение jutzle »

Часть рабочего проекта на ПЛК Direct Logic 06:
https://iimg.su/i/e8B9Y
Где Х* -вход ПЛК
С* - внутренний битовый меркер (управляющее реле)
В* -номер бита в слове
Вопрос: Почему так инициируют внутреннею переменную? Запись переменной происходит через это условие, где В* не фигурирует ни в проекте ПЛК, ни на панели, ни в системной области ПЛК. Это не условия взаимной блокировки. Каждый вход инициируется через этот алгоритм, изменяя только адреса.

AlexandrGr
не первый раз у нас
не первый раз у нас
Сообщения: 306
Зарегистрирован: 26 май 2022, 12:10
Имя: Александр
Страна: Россия
город/регион: lipetsk
Благодарил (а): 5 раз
Поблагодарили: 28 раз

Пояснение выбора подобного алгоритма.

Сообщение AlexandrGr »

Возможно используется для замены реальных сигналов симулятором. Просто симулятора у вас нет.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2471
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 2121 раз
Поблагодарили: 208 раз

Пояснение выбора подобного алгоритма.

Сообщение keysansa »

SBeaRM писал(а): 13 май 2024, 08:38 М0.0 и М0.1 в проекте ни где больше не фигурируют
Это могут быть системные меркеры.
Например, M0.0 - это бит, означающий, что контролер в пуске (т.е. правильно прочитал все программные циклы, загрузил параметры и запустил их)
M0.1 может, например, обозначать первый проход программного цикла, после перезагрузки.

Так же, это могут быть обычные меркеры, а в программе они используются "словом".
Например, M0 = 7.
Тогда M0.0 и М0.1 = 1.
Может быть не прямое присваивание, а косвенное.

Так же данные в М0 могут записываться из панели управления. Так называемые HMI vars.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

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

Пояснение выбора подобного алгоритма.

Сообщение petr2off »

Keysansa - ну зачем смуту вносишь :)
У нас же нашелся специалист который сразу определил
SBeaRM писал(а): 13 май 2024, 08:38 М0.0 и М0.1 в проекте ни где больше не фигурируют, потому что это какие-то кнопки или переключатели на панели управления.
Без всяких сомнений между прочем :)

SBeaRM
здесь недавно
здесь недавно
Сообщения: 98
Зарегистрирован: 01 апр 2022, 11:08
Имя: Артем
город/регион: Благовещенск
Благодарил (а): 1 раз
Поблагодарили: 25 раз

Пояснение выбора подобного алгоритма.

Сообщение SBeaRM »

petr2off писал(а): 22 май 2024, 05:23 Без всяких сомнений между прочем :)
Ну с вашим то ответом мне не тягаться.
petr2off писал(а): 09 май 2024, 16:58 Ответ - берутся из карты регистров ПЛК.
Абсолютно точный и абсолютно бесполезный ответ.
Только проблема в том, что похожий алгоритм я видел не однократно. Его очень любят китайцы. Один бит - переключатель ручной/автомат, второй бит - собственно включение исполнителя в ручном режиме. Вместо X может быть что угодно, от одного бита до логической цепочки.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5790
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 673 раза
Поблагодарили: 841 раз

Пояснение выбора подобного алгоритма.

Сообщение Ryzhij »

SBeaRM писал(а): 22 май 2024, 09:34 Абсолютно точный и абсолютно бесполезный ответ.
Коллега, только Вы знаете архитектуру Вашей системы.
Только разработчик программы знает назначение используемых в программе конструкций.
jutzle писал(а): 03 апр 2024, 12:45 Переменные "М" нигде в программе не фигурируют
Забыли уточнить - "в программе этого ПЛК".
Биты могут быть системными, а могут и устанавливаться извне, например с панели оператора или компьютера АРМ, с другого ПЛК.
Нам отсюда не видно.
Возможно даже, что в имеющейся у Вас конфигурации оборудования панель оператора, АРМ или другой ПЛК опционально отсутствуют, но программа ПЛК уже готова для управления агрегатом и с подобных устройств, а не только с физических кнопок.
Типа: "- А хотите ещё один пульт управления с манерной красивой панелькой? Или даже АРМ? Купите, подцепите, и будет Вам счастье!"
Повторюсь - наверняка знает цель таких решений только разработчик.

Отправлено спустя 9 минут 45 секунд:
jutzle писал(а): 21 май 2024, 11:36 Часть рабочего проекта на ПЛК Direct Logic 06
ЕМНИП в этом ПЛК, как и во многих других, все внутренние програмные устройства (биты памяти, регистры, счётчики, входы-выходы) имеют однозначную адресацию извне по тому же Modbus и не требуют дополнительного объявления.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Ответить

Вернуться в «Алгоритмы»