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

Тема: Чтение/запись данных по Modbus панели СП310

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

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

    По умолчанию

    Подскажите еще, почему синтаксис функции Reads -
    Reads(PortName, SlaveID, DeviceRegType, Adr, Length, &ArrVar);
    в руководстве пользователя, требует взятия адреса переменной массива, а функция Writes -
    Writes(PortName, SlaveID, DeviceRegType, Adr, Length, ArrVar);
    не требует?

    Ведь они объявлены одинаково:

    typedef BOOL (*MacroFReads)(int comID, int staID, int objType, int add1, int regs, void* pRegs);
    typedef BOOL (*MacroFWrites)(int comID, int staID, int objType, int add1, int regs, void* pRegs);

    struct MACRO_CALL_BACK
    {
    WORD* pPSW;
    BYTE* pPSB;
    MacroFRead pRead;
    MacroFReads pReads;
    MacroFWrite pWrite;
    MacroFWrites pWrites;

    ..................
    }Macro;

    #define Reads (Macro.pReads)
    #define Write (Macro.pWrite)

    Имя массива это же указатель на первый его элемент, т.е. содержит адрес первого элемента массива,
    а при вызове Reads получается передается адрес этого указателя.

    Можно вызывать Reads вот так:

    WORD arrReadModbusRtu[62];
    Reads(PLC,1,MODBUS_RTU_REG_4X,0,62,arrReadModbusRtu);

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

    По умолчанию

    Цитата Сообщение от _Алексей_ Посмотреть сообщение

    Можно вызывать Reads вот так:

    WORD arrReadModbusRtu[62];
    Reads(PLC,1,MODBUS_RTU_REG_4X,0,62,arrReadModbusRtu);
    Можно, не вопрос. А теперь попробуйте вот это:

    Код:
    // копируем DWORD PSW256-257 в PSW300-301
    Reads(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 2, PSW[300]);
    и это:

    Код:
    // копируем DWORD PSW256-257 в PSW300-301
    Reads(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 2, &PSW[300]);
    Чтобы не вдаваться в мало кому интересные подробности - в документации приведен универсальный вариант.

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 31.01.2023, 17:42
  2. Чтение и запись регистров данных с помощью СПК107
    от Aleexaandr в разделе СПК1xx (архив)
    Ответов: 1
    Последнее сообщение: 24.08.2017, 07:14
  3. Ответов: 4
    Последнее сообщение: 27.02.2017, 16:41
  4. Чтение/запись данных по сети
    от Атаман в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 18.12.2016, 06:57
  5. Ответов: 11
    Последнее сообщение: 22.05.2015, 11:50

Ваши права

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