Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: ModBus

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

    По умолчанию

    Макс, попробуйте
    Захват-2.png
    Скрипт без изысков. Читает Input регистр 0х5, результат отображается в регистре PSW300.
    Пять лишних байт учел.
    Код:
    //В примере адрес устройства равен 1
    //Данные Input 0x05 будут регистре PSW300
    //*************************************************
    BYTE snd[8]={0x01,0x04,0x00,0x05,0x00,0x01};//буфер для посылки команды slave
    //[0]-адрес устройства(0x01)
    //[1]-Код функции ModbusRTU 0x04 -чтение Input registers
    //[2]-ст.байт адреса начального регистра(0x00)
    //[3]-мл.байт адреса начального регистра(0x05)
    //[4]-ст.байт количества регистров(0x00)
    //[5]-мл.байт количества регистров(0x01)
    //[6]-ст.байт CRC(Определим ниже)
    //[7]-мл.байт CRC(Определим ниже)
    
    BYTE rcv[12];//буфер для приема ответа от slave+лишние 5 байт
    //[0]-адрес устройства
    //[1]-Код функции ModbusRTU-чтение Input registers 0x04
    //[2]-счетчик байт(0x02)
    //[3]-мзначение регистра Hi
    //[4]-значение регистра Lo
    //[5]-ст.байт CRC
    //[6]-мл.байт CRC
    //лишние 5 байт
    //[7]
    //[8]
    //[9]
    //[10]
    //[11]
    snd[6]=HIBYTE(Crc(snd,6));//дополнить команду CRC, сначала Hi
    snd[7]=LOBYTE(Crc(snd,6));//затем Lo
    Enter(PLC);//Захватить порт PLC
    Send(PLC,snd,8);//Отправить команду
    Receive(PLC,rcv,12,1000,6);//Получить ответ (тайм-аут 1000мс)
    PSW[300]=MAKEWORD(rcv[4],rcv[3]);
    Leave(PLC);//Освободить порт
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Еще один вариант.
    Захват-1.png
    Здесь глобальная функция чтения одного инпут регистра
    Захват-2.png

    Можно было бы сделать чтение сразу нескольких регистров, но не ясно сколько лишних байт будет от частотника
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #13

    По умолчанию

    Спасибо при использовании функций проблема решилась

  4. #14

    По умолчанию

    не стал паять новую тему.
    зачем заземляя что либо (например какой нибудь прибор) между землей и этим самым прибором ставят конденсатор?
    ар
    Последний раз редактировалось Makc; 14.01.2015 в 05:47.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Modbus (Master) не отображается в память Modbus (Slave)
    от ghoch в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 07.05.2018, 09:40
  2. Modbus Universal MasterOPC сервер или Lectus MODBUS OPC?
    от Olegis в разделе Master SCADA 3
    Ответов: 11
    Последнее сообщение: 05.04.2013, 09:35
  3. Ответов: 4
    Последнее сообщение: 18.09.2012, 22:16
  4. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

Ваши права

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