- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Пояснение выбора подобного алгоритма.
Модераторы: Глоб.модераторы, специалисты по PLC
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 03 апр 2024, 12:27
- Имя: Андрей
- Страна: Россия
Пояснение выбора подобного алгоритма.
Всем здравствуйте!
Я работаю инженером АСУТП и в ходе работы часто сталкиваюсь с готовыми программами ПЛК. Регулярно видел подобный алгоритм объявления входной переменной на LD языке.
M0.0 ....M0.1..........Start
===I I===I/I====.====( )
.................... I
M0.1 .... X0..... I
===I I===I I====.
Переменные "М" нигде в программе не фигурируют, Х0 - это цифровой вход ПЛК, "Start" - любой койл.
Хотел бы узнать логику такого объявления входа ПЛК.
Заранее благодарен.
Я работаю инженером АСУТП и в ходе работы часто сталкиваюсь с готовыми программами ПЛК. Регулярно видел подобный алгоритм объявления входной переменной на LD языке.
M0.0 ....M0.1..........Start
===I I===I/I====.====( )
.................... I
M0.1 .... X0..... I
===I I===I I====.
Переменные "М" нигде в программе не фигурируют, Х0 - это цифровой вход ПЛК, "Start" - любой койл.
Хотел бы узнать логику такого объявления входа ПЛК.
Заранее благодарен.
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
Пояснение выбора подобного алгоритма.
M - это как правило внутренние битовые регистры. Часть из них зарезервированно под надстроечные нужды, скажем M1004 - становится в ON при старте ПЛК (адрес я назвал от балды). Часть могут быть энерго независимыми, и т.д. Вообще - если занимаешься с конкретным контроллером - нужно найти его мануал и распечатать карту его регистров. Они очень разные бывают.
Какой кстати ПЛК юзаете ?
Какой кстати ПЛК юзаете ?
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Пояснение выбора подобного алгоритма.
Что это за brainfuck ))
Не вижу ничего общего со всеми известными мне ассемблероподобными языками.
Дайте скрин или копипаст
PS Пардон, речь видимо о релейном языке, но все равно ничего не понятно
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
Пояснение выбора подобного алгоритма.
Вопрос не об алгоритме.
Это лестничная диаграмма (LD нотация)
Конкректно это фрагмент читается так:
Start = (M0.0 AND (NOT M0.1)) OR (M0.1 AND X0)
Это лестничная диаграмма (LD нотация)
Конкректно это фрагмент читается так:
Start = (M0.0 AND (NOT M0.1)) OR (M0.1 AND X0)
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Пояснение выбора подобного алгоритма.
Ну это тогда не объявление, а инициализация некоей переменной. В чем суть вопроса - снова непонятно)
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
Пояснение выбора подобного алгоритма.
Вопрос больше по архитектуре ПЛК. Человек не понимает, откуда берутся переменные M0, он ведь их не объявлял.
Ответ - берутся из карты регистров ПЛК.
Ответ - берутся из карты регистров ПЛК.
-
- здесь недавно
- Сообщения: 98
- Зарегистрирован: 01 апр 2022, 11:08
- Имя: Артем
- город/регион: Благовещенск
- Благодарил (а): 1 раз
- Поблагодарили: 25 раз
Пояснение выбора подобного алгоритма.
Столько понаписали, а ответа человеку так и не дали.
М0.0 и М0.1 в проекте ни где больше не фигурируют, потому что это какие-то кнопки или переключатели на панели управления.
При неактивном М0.1 переменная Start включается кнопкой М0.0 с панели управления, при активном М0.0 - внешней кнопкой, подключенной на вход Х0.
М0.0 и М0.1 в проекте ни где больше не фигурируют, потому что это какие-то кнопки или переключатели на панели управления.
При неактивном М0.1 переменная Start включается кнопкой М0.0 с панели управления, при активном М0.0 - внешней кнопкой, подключенной на вход Х0.
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 03 апр 2024, 12:27
- Имя: Андрей
- Страна: Россия
Пояснение выбора подобного алгоритма.
Часть рабочего проекта на ПЛК Direct Logic 06:
https://iimg.su/i/e8B9Y
Где Х* -вход ПЛК
С* - внутренний битовый меркер (управляющее реле)
В* -номер бита в слове
Вопрос: Почему так инициируют внутреннею переменную? Запись переменной происходит через это условие, где В* не фигурирует ни в проекте ПЛК, ни на панели, ни в системной области ПЛК. Это не условия взаимной блокировки. Каждый вход инициируется через этот алгоритм, изменяя только адреса.
https://iimg.su/i/e8B9Y
Где Х* -вход ПЛК
С* - внутренний битовый меркер (управляющее реле)
В* -номер бита в слове
Вопрос: Почему так инициируют внутреннею переменную? Запись переменной происходит через это условие, где В* не фигурирует ни в проекте ПЛК, ни на панели, ни в системной области ПЛК. Это не условия взаимной блокировки. Каждый вход инициируется через этот алгоритм, изменяя только адреса.
-
- не первый раз у нас
- Сообщения: 305
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
Пояснение выбора подобного алгоритма.
Возможно используется для замены реальных сигналов симулятором. Просто симулятора у вас нет.
-
- эксперт
- Сообщения: 2469
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2119 раз
- Поблагодарили: 206 раз
Пояснение выбора подобного алгоритма.
Это могут быть системные меркеры.
Например, M0.0 - это бит, означающий, что контролер в пуске (т.е. правильно прочитал все программные циклы, загрузил параметры и запустил их)
M0.1 может, например, обозначать первый проход программного цикла, после перезагрузки.
Так же, это могут быть обычные меркеры, а в программе они используются "словом".
Например, M0 = 7.
Тогда M0.0 и М0.1 = 1.
Может быть не прямое присваивание, а косвенное.
Так же данные в М0 могут записываться из панели управления. Так называемые HMI vars.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
Пояснение выбора подобного алгоритма.
Keysansa - ну зачем смуту вносишь :)
У нас же нашелся специалист который сразу определил
У нас же нашелся специалист который сразу определил
Без всяких сомнений между прочем :)
-
- здесь недавно
- Сообщения: 98
- Зарегистрирован: 01 апр 2022, 11:08
- Имя: Артем
- город/регион: Благовещенск
- Благодарил (а): 1 раз
- Поблагодарили: 25 раз
Пояснение выбора подобного алгоритма.
Ну с вашим то ответом мне не тягаться.
Абсолютно точный и абсолютно бесполезный ответ.
Только проблема в том, что похожий алгоритм я видел не однократно. Его очень любят китайцы. Один бит - переключатель ручной/автомат, второй бит - собственно включение исполнителя в ручном режиме. Вместо X может быть что угодно, от одного бита до логической цепочки.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Пояснение выбора подобного алгоритма.
Коллега, только Вы знаете архитектуру Вашей системы.
Только разработчик программы знает назначение используемых в программе конструкций.
Забыли уточнить - "в программе этого ПЛК".
Биты могут быть системными, а могут и устанавливаться извне, например с панели оператора или компьютера АРМ, с другого ПЛК.
Нам отсюда не видно.
Возможно даже, что в имеющейся у Вас конфигурации оборудования панель оператора, АРМ или другой ПЛК опционально отсутствуют, но программа ПЛК уже готова для управления агрегатом и с подобных устройств, а не только с физических кнопок.
Типа: "- А хотите ещё один пульт управления с манерной красивой панелькой? Или даже АРМ? Купите, подцепите, и будет Вам счастье!"
Повторюсь - наверняка знает цель таких решений только разработчик.
Отправлено спустя 9 минут 45 секунд:
ЕМНИП в этом ПЛК, как и во многих других, все внутренние програмные устройства (биты памяти, регистры, счётчики, входы-выходы) имеют однозначную адресацию извне по тому же Modbus и не требуют дополнительного объявления.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)