Страница 700 из 795 ПерваяПервая ... 200600650690698699700701702710750 ... ПоследняяПоследняя
Показано с 6,991 по 7,000 из 7941

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #6991
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,450

    По умолчанию

    Цитата Сообщение от Rednaxel Посмотреть сообщение
    Всем привет!
    Для отображения в панели нужно присвоить биту модуля ModBus Slave значение Дискретного выхода ПЛК.
    Создал для этого отдельный от основного программный модуль и в нем, чтобы не дублировать переменные пытаюсь использовать прямую адресацию:
    AT%QX2.0 := MbFDo01;
    и получаю ошибку компиляции 4250: Требуется (ST)-выражение или окончание POU.

    Приходится вместо этого создавать повторно в модуле переменную для каждого выхода и для каждого бита обратной связи, связывать её с адресом выхода и с адресом Modbus,
    ну или задавать как глобальные переменные. Неоптимально как-то
    Хотя в справке читаю:

    Как вообще правильно и красиво делать подобную обратную связь для панели, посоветуйте пожалуйста?
    Ну так и напиши
    %QX2.0 := MbFDo01;
    К чему тут ключевое слово АТ?
    Захват-1.png
    Последний раз редактировалось petera; 27.07.2019 в 22:22.
    26 лет деятельности в области промышленной безопасности

  2. #6992
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,696

    По умолчанию

    Цитата Сообщение от Rednaxel Посмотреть сообщение
    чтобы не дублировать переменные пытаюсь использовать прямую адресацию
    ни одна переменная не использовалась, так же не использовались ни АТ ни проценты
    Изображения Изображения
    • Тип файла: png owen.png (84.8 Кб, Просмотров: 17)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  3. #6993
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    200

    По умолчанию Прямая адресация

    Цитата Сообщение от petera Посмотреть сообщение
    Ну так и напиши
    %QX2.0 := MbFDo01; К чему тут ключевое слово АТ?
    Захват-1.png
    Точно, есть такое! Просто привычка сработала. Этот же ответ и сам нашел в РП CodeSys: читайте инструкции, господа
    Благодарю за подсказку!

    Цитата Сообщение от capzap Посмотреть сообщение
    ни одна переменная не использовалась, так же не использовались ни АТ ни проценты
    В общем-то тоже вариант, только это и есть глобальные переменные, что не совсем оптимально.
    К тому же давно решил для себя что удобнее и наглядней использовать прямую адресацию чем переменные в Конфигурации ПЛК.
    А вот в варианте %QX7.1.0.0:=%QX2.0; точно ни одна переменная не использовалась и получилось очень компактненько. Недостаток по сравнению с Вашим методом, что если добавить элемент области Ввода/Вывода перед операндом, то все полетит к чертям

    Спасибо за обсуждение!

  4. #6994
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,469

    По умолчанию

    Цитата Сообщение от Rednaxel Посмотреть сообщение
    только это и есть глобальные переменные, что не совсем оптимально.
    А чем видение оптимальности ?
    Цитата Сообщение от Rednaxel Посмотреть сообщение
    %QX7.1.0.0:=%QX2.0; точно ни одна переменная не использовалась и получилось очень компактненько
    Получилась полная жесть. В чем компактность ? Даже символов и нажатий на клавиатуру больше ))
    Цитата Сообщение от Rednaxel Посмотреть сообщение
    что если добавить элемент области Ввода/Вывода перед операндом, то все полетит к чертям
    "К чертям" - это станет более надежным ? Вы любитель экстрима )) ? Или самое сложное пока - светофор ?
    Благодарю за подсказку!
    Вам petera показал фичу типа упоминания гужевого транспорта в ПДД, а вы это за новую технологию приняли ))
    Цитата Сообщение от Rednaxel Посмотреть сообщение
    К тому же давно решил для себя что удобнее и наглядней использовать прямую адресацию чем переменные в Конфигурации ПЛК!
    Просто этап такой. Через него проходят и идут дальше. Но кто-то видимо и остается. Бывает.
    Первые кто прошел сказали примерно так - "машинам - машинное, а мы делом займемся". Но все равно - удачи.
    Последний раз редактировалось Валенок; 28.07.2019 в 11:14.

  5. #6995
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,096

    По умолчанию

    %QX7.1.0.0: - ага, а потом через время вспоминай, че эта такое ? давление, температура, авария или еще что....

  6. #6996
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,469

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    %QX7.1.0.0: - ага, а потом через время вспоминай, че эта такое ? давление, температура, авария или еще что....
    Дык они скажутъ что это у нас - деменция. А они - наизусть помнютъ.
    "Маладой еще" (С)

  7. #6997
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    200

    По умолчанию Во всем есть свои + и -

    Цитата Сообщение от Валенок Посмотреть сообщение
    А чем видение оптимальности ?
    Ладно, готов согласится: вряд ли мне удастся заполнить предназначенную для Глобальных переменных область памяти.
    Получилась полная жесть. В чем компактность ? Даже символов и нажатий на клавиатуру больше ))
    "К чертям" - это станет более надежным ? Вы любитель экстрима )) ? Или самое сложное пока - светофор ?
    Вам petera показал фичу типа упоминания гужевого транспорта в ПДД, а вы это за новую технологию приняли ))
    В общем случае думаю Вы правы, но в данном конкретном случае задача была просто отобразить значение выхода в модуле ModBus, не создавая при этом кучу промежуточных переменных что, в общем-то и получилось (методом "copy/paste" между прочим, при чем здесь нажатия?) :
    Отображение.png И совсем не обязательно вставлять модули перед, можно и после, а если понадобится -- ну поправим циферки.

    Просто этап такой. Через него проходят и идут дальше. Но кто-то видимо и остается. Бывает.
    Первые кто прошел сказали примерно так - "машинам - машинное, а мы делом займемся". Но все равно - удачи.
    Ну не знаю. В чем проблема когда все переменные в одном месте, легко доступные для обозрения и не нужно прыгать по разным окнам? Особенно актуально при отладке с ноутбука на объекте
    Прямая_адресация.png
    А если приходится переходить на другую модель ПЛК, что не так уже и редко, то тоже не нужно все переменные вместе с комментариями снова вносить в области ввода/вывода, достаточно пройтись по цифрам.

    Самое главное, как итог:
    я (а может и тот, кто прочтет) теперь гораздо глубже понимаю тонкости разных подходов и смогу выбирать более осознанно
    Так что не зря спросил и спасибо за обсуждение!

  8. #6998
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    967

    По умолчанию

    Цитата Сообщение от Rednaxel Посмотреть сообщение
    Для отображения в панели нужно присвоить биту модуля ModBus Slave значение Дискретного выхода ПЛК.
    Поскольку дискретные выходы ПЛК не имеют аппаратного контроля состояния (т. е. считается что он всегда исправен, и если на выход подано 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, статус-слово будет генерироваться автоматически.
    Никакой прямой адресации, более легкая читаемость кода.
    пример.jpg
    Вложения Вложения
    Последний раз редактировалось Sulfur; 29.07.2019 в 07:16.

  9. #6999
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    200

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Ок, спасибо за пример. Принимаем на вооружение, особенно в части передачи битов состояния с помощью Word

  10. #7000
    Пользователь
    Регистрация
    06.03.2018
    Адрес
    Барнаул
    Сообщений
    97

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    А сразу в конфигурации ПЛК создавать регистры FLOAT\REAL не? При явной адресации всегда есть вариант нарваться на конфликт. При адресации в конфиге КДС сам распределяет память, исключая конфликты.
    при таком раскладе как в конфигураторе обозначать ретейновские переменные?

Страница 700 из 795 ПерваяПервая ... 200600650690698699700701702710750 ... ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •