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

Тема: СП3хх + ПЛК 110-60, связь по modbus

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию СП3хх + ПЛК 110-60, связь по modbus

    Добрый день! Столкнулся с проблемой передачи числовых значений FLOAT из области памяти PFW по протоколу modbus rtu через интерфейс RS-232 между ПЛК110-60 и СП310. Имеются регистры PFW402-416.В функциональной области добавил копирование регистров из PFW402-416 в регистры 4х6-4х20 с типом данных DWord. В настройках проекта у порта стоят галочки: Передача данных и Изменить порядок регистров. Настройки ПЛК представлены ниже, добавлено 5 8-битных регистров и 3 FLOAT регистра. Также ПЛК выступает мастером и опрашивает модуль МВ-110-8А и значение передает в панель через регистр AI1QD7.6.0 FLOAT. В панели адресация для него PSW400 из 4х4, тип данных DWord. Все данные опрашиваются и передаются из панели в ПЛК, но на последнем регистре с адресом QD7.8.0.FLOAT выдает 0, в панели соответствует регистр PFW404, для передачи в ПЛК скопировал в регистр 4х8, тип данных DWord. При этом же предыдущий регистр с адресом PFW402 и 4х6 передает значение корректно, если в конфигурации ПЛК добавлено всего 3 регистра FLOAT. Если добавить все необходимые регистры FLOAT в ПЛК конфигурации, то все они также показывают 0,кроме самого первого AI1. Причем регистр PFW402- 4х6 также обращается в 0 при опросе ПЛК . В чем может быть проблема?
    Изображения Изображения
    • Тип файла: jpg плк.jpg (95.6 Кб, Просмотров: 15)
    • Тип файла: jpg rs232.jpg (26.4 Кб, Просмотров: 14)
    • Тип файла: jpg id6.jpg (109.4 Кб, Просмотров: 11)
    • Тип файла: jpg id5.jpg (107.5 Кб, Просмотров: 9)
    • Тип файла: jpg id4.jpg (145.4 Кб, Просмотров: 12)
    • Тип файла: jpg id3.jpg (145.8 Кб, Просмотров: 10)
    • Тип файла: jpg ai1_real.jpg (47.3 Кб, Просмотров: 9)

  2. #2

    По умолчанию

    Цитата Сообщение от Sammbl Посмотреть сообщение
    Добрый день! Столкнулся с проблемой передачи числовых значений FLOAT из области памяти PFW по протоколу modbus rtu через интерфейс RS-232 между ПЛК110-60 и СП310. Имеются регистры PFW402-416.В функциональной области добавил копирование регистров из PFW402-416 в регистры 4х6-4х20 с типом данных DWord. В настройках проекта у порта стоят галочки: Передача данных и Изменить порядок регистров. Настройки ПЛК представлены ниже, добавлено 5 8-битных регистров и 3 FLOAT регистра. Также ПЛК выступает мастером и опрашивает модуль МВ-110-8А и значение передает в панель через регистр AI1QD7.6.0 FLOAT. В панели адресация для него PSW400 из 4х4, тип данных DWord. Все данные опрашиваются и передаются из панели в ПЛК, но на последнем регистре с адресом QD7.8.0.FLOAT выдает 0, в панели соответствует регистр PFW404, для передачи в ПЛК скопировал в регистр 4х8, тип данных DWord. При этом же предыдущий регистр с адресом PFW402 и 4х6 передает значение корректно, если в конфигурации ПЛК добавлено всего 3 регистра FLOAT. Если добавить все необходимые регистры FLOAT в ПЛК конфигурации, то все они также показывают 0,кроме самого первого AI1. Причем регистр PFW402- 4х6 также обращается в 0 при опросе ПЛК . В чем может быть проблема?
    "...
    Если в модуле используются переменные разных типов (например, одновременно восьмибитный, двухбайтный и четырехбайтный), то во время распределения адресов CODESYS «выравнивает» адресов переменных – упорядочивать адреса переменных в памяти модуля. Упорядочение адресов заключается в организации памяти таким образом, что переменные размером 8 бит, 2 байта и 4 байта располагаются только по определенным адресам: четырехбайтным переменным присваиваются адреса, кратные 2, двухбайтным – кратные 1. Вне зависимости от порядка задания переменных, выравнивание назначает переменным адреса, кратные их длине.
    "
    Посмотрите "Выравнивание адресации" в РЭ

  3. #3

    По умолчанию

    Если я правильно понял, то в моей конфигурации регистр 4-5 соответствует первому значению FLOAT - AI1. Следующий регистр 6-7 соответствует переменной с адресацией QD7.7.0. который корректно передает значение, не могу понять почему следующий 8-9 показывает 0, если должен также как и предыдущий показывать корректное значение. Или там уже передавать именно в 9 регистр с панели чтобы он передал значение корректно?

  4. #4

    По умолчанию

    Цитата Сообщение от Sammbl Посмотреть сообщение
    Если я правильно понял, то в моей конфигурации регистр 4-5 соответствует первому значению FLOAT - AI1. Следующий регистр 6-7 соответствует переменной с адресацией QD7.7.0. который корректно передает значение, не могу понять почему следующий 8-9 показывает 0, если должен также как и предыдущий показывать корректное значение. Или там уже передавать именно в 9 регистр с панели чтобы он передал значение корректно?
    Чтобы избежать сдвига при выравнивании, поставьте первыми в ПЛК все FLOAT значения, а потом - 8bit-ные

  5. #5

    По умолчанию

    Просто 8bit надо добавлять по 2 шт. (заполнить регистр), я наоборот ставлю все 8bit, потом все 2 BYTE (с запасом), потом FLOAT, так чтобы FLOAT начинались с чётного адреса.
    В функц. области надо ставить Копировать группу регистров, даже для 1 DWORD (это 2 регистра), но можно копировать и 10 регистров сразу, например с адреса 400, кол-во 10 регистров, это 5 Float.
    Последний раз редактировалось kondor3000; 29.07.2024 в 15:07.

  6. #6

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Просто 8bit надо добавлять по 2 шт. (заполнить регистр), я наоборот ставлю все 8bit, потом все 2 BYTE (с запасом), потом FLOAT, так чтобы FLOAT начинались с чётного адреса.
    В функц. области надо ставить Копировать группу регистров, даже для 1 DWORD (это 2 регистра), но можно копировать и 10 регистров сразу, например с адреса 400, кол-во 10 регистров, это 5 Float.
    Поменял конфигурацию в соответствии с вашим советом и изменил функциональную область на копирование группы регистров, теперь все корректно работает, спасибо!

Похожие темы

  1. Связь по Modbus TCP
    от super100 в разделе ПЛК1хх
    Ответов: 35
    Последнее сообщение: 19.05.2023, 19:20
  2. ПР200(x2 rs-485 )->modbus-rtu->OPC(SCADA)-master + панель СП3хх-master
    от asutp_ в разделе Программируемые реле
    Ответов: 5
    Последнее сообщение: 07.05.2020, 09:54
  3. Ответов: 2
    Последнее сообщение: 04.06.2019, 16:55
  4. Регистры СП3хх и Modbus
    от Р.Александр в разделе Сетевые технологии
    Ответов: 4
    Последнее сообщение: 12.02.2017, 15:24
  5. связь по Modbus TCP
    от TYER в разделе Сетевые технологии
    Ответов: 12
    Последнее сообщение: 01.03.2010, 11:00

Ваши права

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