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

Тема: Modbus

  1. #1
    Пользователь Аватар для Андрей_Б.
    Регистрация
    05.06.2019
    Адрес
    Где-то в этой стране
    Сообщений
    105

    По умолчанию Modbus

    Добрый день!
    Контроллер мзта мс12 по rs485 циклически посылает данные в сом-порт №2 СПК-110 в формате шины Modbus. Но СПК не желает их принимать.
    Ошибок не выдаёт, но и значения в регистрах не появляются.
    Снимок.JPG
    Снимок 2.JPG
    Снимок 3.JPG

    Для проверки поступления данных написал код для прямой работы с портом, используя ФБ COM_CONTROL и COM.Read.
    Настройки порта:
    Код:
    	fb_COMcontrol_2
    	(
    		xOpen			:= xOpen2, 
    		xClose			:= xClose2, 
    		uiPortNumber	:= 2, 
    		udiBaudrate		:= 9600, 
    		uiParity		:= COM.PARITY.NONE, 
    		uiByteSize		:= 8, 
    		uiStopBits		:= COM.STOPBIT.ONESTOPBIT
    	);
    Читает: 01 10 FF FF 00 01 02 00 02 3C 91
    Расшифровка:
    Снимок4.JPG

    Вопрос: почему modbus-устройство не захватывает даые?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,060

    По умолчанию

    Добрый день.
    Если вы пытаетесь одновременно использовать Modbus Slave в дереве проекта и ФБ COM_CONTROL / COM.Read - то так не получится.
    С портом может единовременно работать только кто-то один.

    Судя по пакету - мс12 выполняет запись в 65535 регистр. В Modbus Slave в дереве проекта по умолчанию нумерация регистров начинается с нуля, и регистра с таким номером просто нет (но начальный адрес можно изменить в настройках слэйва).

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

  3. #3
    Пользователь Аватар для Андрей_Б.
    Регистрация
    05.06.2019
    Адрес
    Где-то в этой стране
    Сообщений
    105

    По умолчанию

    Спасибо за подсказку, разобрался, всё получилось.
    Пакет modbus расшифровывал онлайн, адрес FFFF должен был смутить...
    Интересный факт: в МЗТА есть параметр "Адрес первой ячейки" - поставил равным 1, в пакете modbus он вставляется как 0 и в СПК тоже идёт как 0.. Что-то, воля ваша, с этим МЗТА не так..

  4. #4

    По умолчанию

    Для modbus это нормально.
    В некоторых случаях регистры нумеруются с 1, который соответствует адресу 0.

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

    По умолчанию

    Не, это не с МЗТА не так что-то, просто как производитель надумал, так и сделал. У кого-то первым 0, у кого-то 1. Так же как и перестановка байт у разных производителей разные, ну это уже другая история, скорее связана с типом процессора, микроконтроллера и отказ от перестановки в нем, чтобы работало быстрее.

  6. #6
    Пользователь Аватар для Андрей_Б.
    Регистрация
    05.06.2019
    Адрес
    Где-то в этой стране
    Сообщений
    105

    По умолчанию

    Нормально для номеров регистров. Но параметр называется: "Адрес первой ячейки"!

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 31.01.2023, 17:42
  2. Ответов: 2
    Последнее сообщение: 04.06.2019, 16:55
  3. Ответов: 10
    Последнее сообщение: 10.06.2018, 16:36
  4. Как узнать базовый ModBus адрес устройства для ModBus ASCII?
    от Александр Подыман в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 03.03.2016, 12:49
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

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

Ваши права

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