Страница 1 из 10 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 96

Тема: Отображение данных с ПЛК210 на цифровом дисплее СП310-Р

  1. #1

    По умолчанию Отображение данных с ПЛК210 на цифровом дисплее СП310-Р

    Добрый день,

    Есть необходимость вывести на панель заданное время таймера (уставка в программе задана в секундах) и оставшееся время до его отключения (рассчитывается в программе в секундах) в секундах.
    ПЛК - Мастер, Панель - Слейв. Протокол ModBus TCP.

    Панель: два цифровых дисплея с регистрами PSW типом значений WORD форматов Unsigned c разрядностью 6 знаков до запятой.

    Цифровой дисплей 1.png Цифровой дисплей 2.png

    ПЛК: две переменных типа WORD, в которые заносятся значения в секундах. Программа работает правильно, и заносит в переменные корректные значения. Соответствующие регистры Панели привязаны к переменным ПЛК.

    Переменные в ПЛК.png Переменные в HMI.png Канал в HMI.png

    На визуализации Панели получаю непонятный результат значений переменных. Перепроверял типы данных, привязку регистров к переменным, привязку регистров к цифровым дисплеям. Не понимаю, что делаю не так?

    HMI.png

  2. #2

    По умолчанию

    Передаёте в секундах или минутах? Где пересчитываете?
    Время TIME, надо конвертировать в DWORD, разделить на 1000, для перевода в секунды и передавать или ещё проще пересчитать в минуты разделив на 60 и тогда передавать как WORD.
    Тип данных WORD, это максимальное число 65535, для передачи 6 знаков как у вас, необходимо использовать DWORD.
    Типы данных давно надо было выучить)
    Последний раз редактировалось kondor3000; 05.01.2025 в 13:43.

  3. #3

    По умолчанию

    Нужно будет передавать в минутах. На данный момент, пока разбираюсь, передаю в секундах.
    Получается, если я ограничу разрядность до 4 знаков, то могу использовать WORD?

    Пересчитываю в Main PRG:

    dwSetTime:=TO_DWORD (TargetVars.tSetTactTime/1000) //заданное время счетчика
    dwRemainTime:=TO_DWORD ((TargetVars.tSetTactTime-TargetVars.fbTimerTOFPause/1000) //заданное время счетчика

  4. #4

    По умолчанию

    Вы в самих регистрах плк что видите? То же, что хотите увидеть на панели, или что-то другое. Вы сразу на панель грешите, а может дело в том, что вы не то и отдаете...? Но это выше другими словами сказано. Сначала добейтесь, чтобы в плк было то число, что вам нужно. Word или Dword, а потом за панель беритесь.

    PS Еще и коилы с регистрами используете...

    PS2 8229 в плк и на панели... Что не так то? Где "неправильно"?
    Последний раз редактировалось МихаилГл; 05.01.2025 в 14:55.

  5. #5

    По умолчанию

    Цитата Сообщение от Mikhail_NNT Посмотреть сообщение
    Нужно будет передавать в минутах. На данный момент, пока разбираюсь, передаю в секундах.
    Получается, если я ограничу разрядность до 4 знаков, то могу использовать WORD?

    Пересчитываю в Main PRG:

    dwSetTime:=TO_DWORD (TargetVars.tSetTactTime/1000) //заданное время счетчика
    dwRemainTime:=TO_DWORD ((TargetVars.tSetTactTime-TargetVars.fbTimerTOFPause/1000) //заданное время счетчика
    Ошибка ваша в том, что вы до конвертации в DWORD делите на 1000, а надо делить после конвертации. И только потом, выделив минуты и секунды, конвертировать в WORD.
    Передавать надо в секундах или отдельно в минутах и секундах, иначе секунды потеряете.
    Последний раз редактировалось kondor3000; 05.01.2025 в 17:11.

  6. #6

    По умолчанию

    А панель точно адекватно обрабатывает сначала 16 команду, потом 3...
    Никогда СП315 как слэйв не пробовал использовать.

    Может попробуете отдельно сначала без 3 для 012С области, потом без 16... Т.е. удалите сначала одну из опроса на чтение, потом другую без опроса на запись. Надо после праздников глянуть, что-то тут не так. Слэйв это та еще штука...

  7. #7

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ошибка ваша в том, что вы до конвертации в DWORD делите на 1000, а надо делить после конвертации. И только потом, выделив минуты и секунды, конвертировать в WORD.
    Передавать надо в секундах или отдельно в минутах и секундах, иначе секунды потеряете.
    По замечаниям, все исправил. Действительно, сейчас программа работает и выдает нужные (правильные) значения переменных.
    Зеленым выделены значения, которые должны считываться из переменных ПЛК и выводятся на Панель.
    Красным выделил значения, которые должны задаваться с Панели и передаваться в переменные ПЛК.

    ПЛК1.png HMI1.png

  8. #8

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Вы в самих регистрах плк что видите? То же, что хотите увидеть на панели, или что-то другое. Вы сразу на панель грешите, а может дело в том, что вы не то и отдаете...? Но это выше другими словами сказано. Сначала добейтесь, чтобы в плк было то число, что вам нужно. Word или Dword, а потом за панель беритесь.

    PS Еще и коилы с регистрами используете...

    PS2 8229 в плк и на панели... Что не так то? Где "неправильно"?
    По ПЛК все работает четко и выдаёт правильные значения переменных, которые должны отображаться на Панели, при условии, что правильно заданы переменные, которые должны подгружаться из Панели в ПЛК.

    HMI1.png
    Но даже с рабочей программой, на Панели отображаются неверные значения, и вводимые значения с Панели не передаются в ПЛК.

    HMI3.png HMI2.png
    В Конфигураторе заданы настройки для элементов Ввода данных и Цифрового дисплея (разрядность 4, формат Unsigned).

    Конфигуратор1.png Конфигуратор2.png
    Каналы для HMI настроены, но думаю дело в них, раз на Панели некорректное отображение. Для считывания из элемента Ввод данных нужна триггерная переменная, или данные будут циклично считываться? Использую coils, так как на элементе Панели регистр PFW (данные должны загружаться при загрузки ПЛК).
    К слову, каналы №4 и №5 работают и передают значения на Панель, правда Bool, а не Word.

    Привязка регистров.png

  9. #9

    По умолчанию

    При загрузке программы на ПЛК (без принудительно заданных значений) наблюдаю непонятные значения переменных. Откуда они берутся?
    Интересуют переменные, выделенные красным, они задаются с Панели. На основе их значений рассчитываются и отображаются переменные, выделенные зеленым. Кстати, зеленные переменные отображаются корректно (с текущими неверными значениями красных переменных) в ПЛК, но неверно на Панели.
    ПЛК0.png HMI3.png HMI2.png

  10. #10

    По умолчанию

    А разве 16 и 03 это не одна область холдинг регистров? Судя по документации СП315 это одна область PSW. А ни как не PSW и PFW, как вы подписали.

    https://wiki.navtelecom.ru/ru/home/d...otocols/modbus
    Последний раз редактировалось МихаилГл; 06.01.2025 в 11:37.

Страница 1 из 10 123 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 25
    Последнее сообщение: 03.09.2020, 09:37
  2. Программируемое реле ПР200. Отображение информации на дисплее.
    от mchelarsky в разделе Программируемые реле
    Ответов: 2
    Последнее сообщение: 08.08.2019, 12:50
  3. Отображение float/int на дисплее ПР200
    от flicker581 в разделе Среда программирования OWEN Logic
    Ответов: 0
    Последнее сообщение: 17.02.2016, 19:12
  4. Ответов: 8
    Последнее сообщение: 05.06.2014, 21:33
  5. Ответов: 4
    Последнее сообщение: 21.02.2014, 09:24

Ваши права

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