Ну так и напиши
%QX2.0 := MbFDo01;
К чему тут ключевое слово АТ?
Вложение 43779
Ну так и напиши
%QX2.0 := MbFDo01;
К чему тут ключевое слово АТ?
Вложение 43779
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Точно, есть такое! Просто привычка сработала. Этот же ответ и сам нашел в РП CodeSys: читайте инструкции, господа
Благодарю за подсказку!
В общем-то тоже вариант, только это и есть глобальные переменные, что не совсем оптимально.
К тому же давно решил для себя что удобнее и наглядней использовать прямую адресацию чем переменные в Конфигурации ПЛК.
А вот в варианте %QX7.1.0.0:=%QX2.0; точно ни одна переменная не использовалась и получилось очень компактненько. Недостаток по сравнению с Вашим методом, что если добавить элемент области Ввода/Вывода перед операндом, то все полетит к чертям
Спасибо за обсуждение!
А чем видение оптимальности ?
Получилась полная жесть. В чем компактность ? Даже символов и нажатий на клавиатуру больше ))
"К чертям" - это станет более надежным ? Вы любитель экстрима )) ? Или самое сложное пока - светофор ?
Вам petera показал фичу типа упоминания гужевого транспорта в ПДД, а вы это за новую технологию приняли ))Благодарю за подсказку!
Просто этап такой. Через него проходят и идут дальше. Но кто-то видимо и остается. Бывает.
Первые кто прошел сказали примерно так - "машинам - машинное, а мы делом займемся". Но все равно - удачи.
%QX7.1.0.0: - ага, а потом через время вспоминай, че эта такое ? давление, температура, авария или еще что....
Ладно, готов согласится: вряд ли мне удастся заполнить предназначенную для Глобальных переменных область памяти.
В общем случае думаю Вы правы, но в данном конкретном случае задача была просто отобразить значение выхода в модуле ModBus, не создавая при этом кучу промежуточных переменных что, в общем-то и получилось (методом "copy/paste" между прочим, при чем здесь нажатия?) :Получилась полная жесть. В чем компактность ? Даже символов и нажатий на клавиатуру больше ))
"К чертям" - это станет более надежным ? Вы любитель экстрима )) ? Или самое сложное пока - светофор ?
Вам petera показал фичу типа упоминания гужевого транспорта в ПДД, а вы это за новую технологию приняли ))
Вложение 43781 И совсем не обязательно вставлять модули перед, можно и после, а если понадобится -- ну поправим циферки.
Ну не знаю. В чем проблема когда все переменные в одном месте, легко доступные для обозрения и не нужно прыгать по разным окнам? Особенно актуально при отладке с ноутбука на объектеПросто этап такой. Через него проходят и идут дальше. Но кто-то видимо и остается. Бывает.
Первые кто прошел сказали примерно так - "машинам - машинное, а мы делом займемся". Но все равно - удачи.
Вложение 43782
А если приходится переходить на другую модель ПЛК, что не так уже и редко, то тоже не нужно все переменные вместе с комментариями снова вносить в области ввода/вывода, достаточно пройтись по цифрам.
Самое главное, как итог:
я (а может и тот, кто прочтет) теперь гораздо глубже понимаю тонкости разных подходов и смогу выбирать более осознанно
Так что не зря спросил и спасибо за обсуждение!
Поскольку дискретные выходы ПЛК не имеют аппаратного контроля состояния (т. е. считается что он всегда исправен, и если на выход подано TRUE, то он действительно TRUE), то я бы сделал проще.
В ОП нужным битовым элементам присваивать значение нужного бита статус-слова.Код:(*Назначенные аппаратные выходы*) DO1:bool; DO2:bool; .. DO16:bool; (*Переменная статуса, возможно в виде регистра 2byte в области Модбас для обмена с ОП*) OutStatus:WORD; ---- OutStatus.0:=DO1; OutStatus.1:=DO2; .. OutStatus.15:=DO16;
Присваивание значений статус-слову можно сделать в виде своей программы, и вставить в конце PLC_PRG.
В PLC_PRG останется только присваивать значения выходам DO1..DO16, статус-слово будет генерироваться автоматически.
Никакой прямой адресации, более легкая читаемость кода.
Вложение 43785