Показано с 1 по 9 из 9

Тема: ПЛК100 - Панель СП270 (передача бита)

  1. #1

    По умолчанию ПЛК100 - Панель СП270 (передача бита)

    ПЛК -master, панель - slave. Пишу программу отображения выхода за уставку параметра, для этого из ПЛК по modbus отправляю бит в панель. В ПЛК использую "8 bit output module State" В панеле использую объект "Лампа". Сами значения параметров передаются - связь есть! Столкнулся с двумя проблемами:
    1. Не получается использовать разные биты одного регистра для разных объектов, т.е для каждого объекта "лампа" приходится использовать отдельный регистр и весь его передавать по modbus, хотя программно это предусмотрено. В объекте "Лампа" -> Управление\регистр приходится задавать PSB, а не PSW\bit !!!

    2. Столкнулся с проблемой "мигающих регистров" - некоторые регистры (точнее их биты) не держат своего значения а вместо этого мигают как по таймеру. Никакой закономерности не получилось найти, регистр может мигать, а может и не мигать... В параметре Мигание объекта "Лампа" стоит статус "Стоп"! может это связано с объемом передаваемых данных? у меня передается по modbus 17 параметров типа real (использовано 34 регистра -> 68 байт), и еще нужно 9 битов для сигнализации (приходится использовать 9 регистров, а не один!).
    Последний раз редактировалось DELPHI_FOREVE; 22.04.2013 в 09:32.
    "Опытный программист на C++ легко решает любые не существующие в Паскале проблемы"

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

    По умолчанию

    Цитата Сообщение от DELPHI_FOREVE Посмотреть сообщение
    ПЛК -master, панель - slave. Пишу программу отображения выхода за уставку параметра, для этого из ПЛК по modbus отправляю бит в панель. В ПЛК использую "8 bit output module State" В панеле использую объект "Лампа". Сами значения параметров передаются - связь есть! Столкнулся с двумя проблемами:
    1. Не получается использовать разные биты одного регистра для разных объектов, т.е для каждого объекта "лампа" приходится использовать отдельный регистр и весь его передавать по modbus, хотя программно это предусмотрено. В объекте "Лампа" -> Управление\регистр приходится задавать PSB, а не PSW\bit !!!

    2. Столкнулся с проблемой "мигающих регистров" - некоторые регистры (точнее их биты) не держать своего значения а вместо этого мигают как по таймеру. Никакой закономерности не получилось найти, регистр может мигать, а может и не мигать... В параметре Мигание объекта "Лампа" стоит статус "Стоп"! может это связано с объемом передаваемых данных? у меня передается по modbus 17 параметров типа real (использовано 34 регистра -> 68 байт), и еще нужно 9 битов для сигнализации(9 регистров, а не один!).
    По п.2 и возможно п.1.
    Адреса регистров панели PSB, PSW, PFW от 0 до 255 используются системным ПО. http://www.owen.ru/forum/showthread.php?t=13179
    Вы должны использовать адреса регистров панели начиная с адреса 256!
    В этом документе найдете свои мигающие регистры http://www.imenista.com/pdf/InternalObjTP.pdf
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    Я использую регистры начиная с 256... проблема мигания у меня начинается с регистра 295... и даже 257 в одном случае замигал
    "Опытный программист на C++ легко решает любые не существующие в Паскале проблемы"

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

    По умолчанию

    Цитата Сообщение от DELPHI_FOREVE Посмотреть сообщение
    Я использую регистры начиная с 256... проблема мигания у меня начинается с регистра 295... и даже 257 в одном случае замигал
    Не видя Вашего проекта для СП270 не могу Вам помочь.
    Скорей всего проблема в программе ПЛК.
    По поводу предыдущего поста для разных "Ламп" можно использовать отдельные биты одного и того же регистра ПЛК вида 4хAAANN, где AAA -номер регистра ПЛК и NN -номер бита.
    Можете с сообщению прикрепить архивированный (будет маленький размер) проект СП270. Еще бы увидеть скрин конфигурации modbus ПЛК.
    ЗЫ. По поводу ламп
    Можно использовать прямую адресацию к битам ПЛК, если использовать для Ламп адреса вида 0хААА, где ААА-адрес бита в модуле modbus ПЛК. Только нужно правильно его рассчитать.
    Что касается адресации вида 4хAAANN, где AAA -номер регистра ПЛК и NN -номер бита, то нужно учитывать что регистр 16 бит, а модуль "8 bit output module State" в ПЛК -8бит.
    Последний раз редактировалось petera; 22.04.2013 в 10:00.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Не видя Вашего проекта для СП270 не могу Вам помочь.
    Скорей всего проблема в программе ПЛК.
    По поводу предыдущего поста для разных "Ламп" можно использовать отдельные биты одного и того же регистра ПЛК вида 4хAAANN, где AAA -номер регистра ПЛК и NN -номер бита.
    Можете с сообщению прикрепить архивированный (будет маленький размер) проект СП270. Еще бы увидеть скрин конфигурации modbus ПЛК.
    ЗЫ. По поводу ламп
    Можно использовать прямую адресацию к битам ПЛК, если использовать для Ламп адреса вида 0хААА, где ААА-адрес бита в модуле modbus ПЛК. Только нужно правильно его рассчитать.
    Что касается адресации вида 4хAAANN, где AAA -номер регистра ПЛК и NN -номер бита, то нужно учитывать что регистр 16 бит, а модуль "8 bit output module State" в ПЛК -8бит.
    Вы пишете о программировании панели когда она - master, в этом случае многое проще становится, но у меня ПЛК - master! или я чего-то не знаю...
    "Опытный программист на C++ легко решает любые не существующие в Паскале проблемы"

  6. #6

    По умолчанию

    Вот проект ПЛК100 и СП270. здесь регистр 295 - работает; 296,297 - "мигают"; 298 вообще не работает.
    Изображения Изображения
    • Тип файла: jpg 1.jpg (48.4 Кб, Просмотров: 30)
    • Тип файла: jpg 2.jpg (52.1 Кб, Просмотров: 24)
    Вложения Вложения
    "Опытный программист на C++ легко решает любые не существующие в Паскале проблемы"

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

    По умолчанию

    PSB - это не регистр

    Не получается использовать разные биты одного регистра для разных объектов, т.е для каждого объекта "лампа" приходится использовать отдельный регистр и весь его передавать по modbus, хотя программно это предусмотрено.
    Детский лепет. Не усложняйте себе жизнь.Используйте Rigister Output Module. Передавайте весь регистр, а в нем устанавливайте кому хотите какие хотите биты.
    Последний раз редактировалось Валенок; 23.04.2013 в 08:38.

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

    По умолчанию

    Цитата Сообщение от DELPHI_FOREVE Посмотреть сообщение
    Вы пишете о программировании панели когда она - master, в этом случае многое проще становится, но у меня ПЛК - master! или я чего-то не знаю...
    Прошу прощения, ошибся, но не сильно. Следует читать
    "для разных "Ламп" можно использовать отдельные биты одного и того же регистра PSW вида PSW.AAA.NN, где AAA -номер регистра и NN -номер бита"

    Одного регистра PSW достаточно для обслуживания 16 ламп.
    Нужно делать, как Вам советуют
    Цитата Сообщение от Валенок Посмотреть сообщение
    Используйте Rigister Output Module. Передавайте весь регистр, а в нем устанавливайте кому хотите какие хотите биты.
    Про регистры
    СП270 имеет:
    -оперативную память -набор 16-ти разрядных регистров PSW[0...1024] и бит PSB[0...1024]. Области PSB и PSW не пересекаются,
    -энергонезависимую память набор 16-ти разрядных регистров PFW[0...1024].
    PSB это один бит.
    Про адресацию регистров СП270(слейв), с точки зрения мастера http://www.owen.ru/forum/showthread.php?t=14257

    ЗЫ. Посмотрел Ваш проект. Хотя я сам и не использую Панель(слейв)-ПЛК(мастер), но думаю, что у Вас адресация битов PSB выглядит так

    Затем у Вас идут модули
    "8-bit output module State" с адресом 295 - (PSB295, PSB296, PSB297, PSB298, PSB299, PSB300, PSB301, PSB302)
    "8-bit output module State" с адресом 296 - (PSB296, PSB297, PSB298, PSB299, PSB300, PSB301, PSB302, PSB303)
    "8-bit output module State" с адресом 297 - (PSB297, PSB298, PSB299, PSB300, PSB301, PSB302, PSB303, PSB304)
    И так далее.
    То есть каждый последующий модуль записывает информацию в те же PSB, что и предыдущий модуль.
    Последний раз редактировалось petera; 23.04.2013 в 13:26.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9

    Smile

    все ясно, все работает, спасибо за полную информацию
    "Опытный программист на C++ легко решает любые не существующие в Паскале проблемы"

Похожие темы

  1. ПЛК100 - Панель СП270 передача строки
    от DELPHI_FOREVE в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 05.04.2013, 06:11
  2. Передача массива данных в СП270
    от Nerd в разделе Панели оператора (HMI)
    Ответов: 10
    Последнее сообщение: 26.07.2012, 16:43
  3. передача на панель дробного значения
    от acidburst в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 18.12.2009, 13:27
  4. Передача переменной string из ПЛК в СП270
    от DimAndr в разделе Панели оператора (HMI)
    Ответов: 7
    Последнее сообщение: 30.07.2009, 09:33

Ваши права

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