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

Тема: ПЛК100.ТЛ. Передача данных от Modbus-устройства на сенсорную панель СП310 по Modbus

  1. #1
    Пользователь
    Регистрация
    24.05.2017
    Адрес
    Чебоксары
    Сообщений
    9

    По умолчанию ПЛК100.ТЛ. Передача данных от Modbus-устройства на сенсорную панель СП310 по Modbus

    Здравствуйте!

    Использую Телемеханику ЛАЙТ для программирования ПЛК100.ТЛ.
    Есть некое устройство, с которого получаются данные на ПЛК по протоколу Modbus RTU. Далее эти данные (измерения) нужно передать по Modbus RTU на сенсорную панель СП310. Так же с сенсорной панели нужно передавать значения заданных на панели уставок, а так же команды управления в аналоговом виде (1 и 0) обратно в первое устройство. Подскажите, пожалуйста, какой механизм мне лучше использовать? Какие функциональные блоки? Скрипты?

    Пока подсказали использовать СП310 как Modbus-slave устройство, однако я пока не понял каким образом осуществить, так сказать, миграцию данных с одного устройства на другое посредством ПЛК в enLogiс.

  2. #2
    Сергей Сисейкин
    Гость

    По умолчанию

    Добрый день, Общий алгоритм выглядит примерно следующим образом:
    1) Для начала нужно определиться с количеством и типом параметров, которые вы будете передавать на СП310 (аналоговые, дискретные..)
    2) Для СП310 нужно написать IO файл в котором будут указаны типы данных, адреса Modbus и тд ваших переменных. (инструкции по написанию подобных файлов можно найти в справочной системе Телемеханики ЛАЙТ в разделе Контроллеры\протоколы обмена\modbus master)
    3) далее в модуле Контроллеры, в вашей конфигурации добавляете протокол modbus и карту переменных для СП310, далее Вам будет необходимо записать в СП310 нужные параметры посредствам использования ФБД, например чтобы записать в СП310 аналоговую величину, например напряжение фазы, которая опрашивается так же по modbus с прибора МЭ110-3М, возьмем ФБД из готовых "Суммирование и масштаб" подадим на вход фб напряжение 220В, прибавим "0" и умножим на "1" и результат запишем в нашу аналоговую переменную, которую мы передаем в СП310 Передача параметра в СП.png. Для дискретных сигналов, подойдут ФБ из группы "Логические".
    Последний раз редактировалось Сергей Сисейкин; 12.07.2017 в 10:10.

  3. #3
    Пользователь
    Регистрация
    24.05.2017
    Адрес
    Чебоксары
    Сообщений
    9

    По умолчанию

    Благодарю за помощь!

    Добрался до одного из следующих этапов. Встал вопрос об использовании скрипта для задания нескольким переменным одинаковых значений. Данные (уставки) получаю с сенсорной панели по Модбасу (в будущем, буду их получать и по МЭК-104). Эти данные нужно переслать в три устройства так же по Модбасу. Можно, конечно, использовать ФБ, но как-то громоздко получается..

  4. #4

    По умолчанию

    На выход одного блока можно подавать несколько ( сколько угодно) переменных.

    Но можно оптимизировать этот процесс с использованием скриптового блока используя стандартные функции скрипта. Для этого нужно в функциональных блоках выбрать блок скрипт, добавить его на рабочую область, выделить его и перейти на вкладку "скрипт". Там добавить входы- выходы скриптового блока.в соответствии с вашими переменнымискрипты 0.png .

    Далее нажимаете на кнопку "Редактировать скрипт" - и в появившемся окне можно реализовать свою логику. Реализация блока Move - копирующего входное значение на выход, осуществляется на выбранном языке - си или паскаль. Для этой задачи нужно просто объявить переменную, в которой будет хранится значение внутри скрипта, и использовать стандартные функции ( можно перенести функцию из вкладки справа на рабочую область). Описание функций есть в справочной системе скрипты 1.png .

    В аргументах функций чтения и записи указывается вход или выход. из которого будет прочитано (записано) значение. Чтобы не ошибиться с названием - переключаемся на вкладку "Отладка" и переносим нужный вход-выход в аргумент функции ( внутрь скобок). после запятой указывается значение которое будет записано (или переменная в которую будет считано значение) скрипты 2.png .
    В скрипте обязательно нажать на кнопку "запуск" чтобы скомпилировать код.

    Код скрипта на паскале:
    PHP код:
    var in1 Integer;
    {---------- 
    main program -----------}
    begin
    ReadInteger
    ('Вход'in1);
    WriteInteger('Выход 1'in1);
    WriteInteger('Выход 2'in1);
    WriteInteger('Выход 3'in1);

    end


    Сиигналы привязываются так же как и к любому другому ФБ - "drag'n'drop"-ом переносим сигналы на вх/выход скрипты 3.png
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  5. #5
    Пользователь
    Регистрация
    24.05.2017
    Адрес
    Чебоксары
    Сообщений
    9

    По умолчанию

    Здравствуйте!
    Благодарю за помощь!
    Следующий вопрос. Даже два:
    1) Если ПЛК находиться в работе, а СП временно отключали, то при запуске СП на его экране (отображающем аналоговые величины) не отображаются правильно величины, которые не изменяются на устройствах, которые опрашиваются ПЛК. Как быть? Каким образом посоветуете давать команду на опрос всех аналоговых величин с устройств подключенных к ПЛК по Modbus при включении/перезагрузке СП?
    2) Можно ли на один из экранов СП вывести аналоговые сигналы диагностики линий связи (внутренние регистры СП PSW60-63, PSW70-73)? У меня с наскока не получилось, остался вариант получать данные с этих регистров на ПЛК и передавать их обратно на СП. Может я делаю что-то не так и есть более прямой путь?

    Засим прощаюсь и заранее Благодарю за скорый ответ.

  6. #6
    Пользователь
    Регистрация
    24.05.2017
    Адрес
    Чебоксары
    Сообщений
    9

    По умолчанию

    Пояснения:
    1) После рестарта панели данные в неё передаются, но только те, которые обновляются. А есть данные, которые обновляются редко и такие данные на панель не передаются, соответственно на панели отображаются неверные данные;
    2) Представьте. Есть РПН. С него получаем данные: токи,напряжения, положение РПН. Положение РПН меняется редко. Допустим в какой-то момент это положение равно 12-ти. Если связь пропала с устройством, то при реальном изменении положения РПН на панели будет всё равно отображаться 12. Если перезапустим СП, то на СП будет отображаться значение 0, что также не верно...

    И ещё. Если связь с устройствами пропадает, то на панели отображаются недостоверные данные - либо нули, либо те данные, которые были получены когда связь ещё присутствовала...

  7. #7
    Пользователь
    Регистрация
    24.05.2017
    Адрес
    Чебоксары
    Сообщений
    9

    По умолчанию

    Кстати, как посоветуете быть с недостоверными данными? Связь пропала, данные не обновляются, не верные данные отображать нельзя, либо нужно дать понять, что эти данные недостоверны..

  8. #8

    По умолчанию

    Цитата Сообщение от Данила Мастер Посмотреть сообщение
    1) Если ПЛК находиться в работе, а СП временно отключали, то при запуске СП на его экране (отображающем аналоговые величины) не отображаются правильно величины, которые не изменяются на устройствах, которые опрашиваются ПЛК. Как быть? Каким образом посоветуете давать команду на опрос всех аналоговых величин с устройств подключенных к ПЛК по Modbus при включении/перезагрузке СП?
    Цитата Сообщение от Данила Мастер Посмотреть сообщение
    Пояснения:
    1) После рестарта панели данные в неё передаются, но только те, которые обновляются. А есть данные, которые обновляются редко и такие данные на панель не передаются, соответственно на панели отображаются неверные данные;
    2) Представьте. Есть РПН. С него получаем данные: токи,напряжения, положение РПН. Положение РПН меняется редко. Допустим в какой-то момент это положение равно 12-ти. Если связь пропала с устройством, то при реальном изменении положения РПН на панели будет всё равно отображаться 12. Если перезапустим СП, то на СП будет отображаться значение 0, что также не верно...

    И ещё. Если связь с устройствами пропадает, то на панели отображаются недостоверные данные - либо нули, либо те данные, которые были получены когда связь ещё присутствовала...
    Если пропала связь с устройством, параметры с которых передаются на панель,то на панель сохраняется последнее значение с устройства.
    После рестарта там ничего нет, потому что если связи с устройством нет по прежнему, ПЛК нечего записать в СП,и он ничего и не пишет, а из-за переброса питания переменные с панели сбрасываются

    Если панель теряется,а др.устройства на связи,то при возврате СП в нее подтянутся из ПЛК актуальные параметры.

    Цитата Сообщение от Данила Мастер Посмотреть сообщение
    Кстати, как посоветуете быть с недостоверными данными? Связь пропала, данные не обновляются, не верные данные отображать нельзя, либо нужно дать понять, что эти данные недостоверны..
    Можно в блоке где вы копируете переменные добавить анализ связи, и по флагу -false ( по отсутствию) писать на выходы недостовреное значение, такое которое не достигается никогда (999999 например), а на панели будет видно отсутствие связи по этому коду (например 999999).
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  9. #9

    По умолчанию

    Цитата Сообщение от Данила Мастер Посмотреть сообщение

    2) Можно ли на один из экранов СП вывести аналоговые сигналы диагностики линий связи (внутренние регистры СП PSW60-63, PSW70-73)? У меня с наскока не получилось, остался вариант получать данные с этих регистров на ПЛК и передавать их обратно на СП. Может я делаю что-то не так и есть более прямой путь?
    В режиме slave СП не будет анализировать состояние линий связи,и эти регистры никакой информации не несут. Если нужно отображать на панели наличие связи с др.устройствами, то можно передавать состояние подключения,и так же использовать для анализа например ФБ блок Serial Task Info группы Специальные.

    Если хотите контролировать связь с мастером, то нужно в создать какую нибудь переменную в СП, которую мастер будет устанавливать в 1, а СП - в 0. Когда не будет связи с мастером, переменная всегда будет в 0.
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  10. #10
    Пользователь
    Регистрация
    24.05.2017
    Адрес
    Чебоксары
    Сообщений
    9

    По умолчанию

    Здравствуйте!
    Не стал поднимать новую тему, т.к., в некотором роде, тема та же, слегка видоизменились проблемы..
    Итак. Существует работающий проект для связки ПЛК100.ТЛ-СП310-устройства Modbus. Загружаю данный проект в другой ПЛК100.ТЛ и... связи с остальными устройствами нет. В СП310 залит тот же проект с теми же настройками связи. Кабель между ПЛК100 и СП310 прозвонил заново. Связь с Modbus-устройствами по RS485 присутствует, соединился с ними прям от клемм RS485 ПЛК. Настройки связи, чётности, стоповые биты - всё то же, что и раньше. Адреса идентичны предыдущему проекту.
    Теряюсь в догадках - как поступить!? Ощущение, что не работает связь с последовательными устройствами.
    Изображения Изображения

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

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 12.05.2016, 15:55
  2. Как узнать базовый ModBus адрес устройства для ModBus ASCII?
    от Александр Подыман в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 03.03.2016, 12:49
  3. Передача данных c СПК207 по протоколу Modbus RTU
    от Maria в разделе СПК2xx (архив)
    Ответов: 11
    Последнее сообщение: 02.03.2016, 16:53
  4. ПЛК100 ModBus передача файла
    от АлексейУт в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 08.05.2014, 10:30

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

Ваши права

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