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

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

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

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

    Здравствуйте,
    подскажите, что возвращают функции чтения/записи данных по Modbus при работе с макросами для панели СП 310-р,
    т.е. функции read, reads, write, writes?

  2. #2

  3. #3
    Пользователь
    Регистрация
    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);

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

    По умолчанию

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

    Можно вызывать 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]);
    Чтобы не вдаваться в мало кому интересные подробности - в документации приведен универсальный вариант.

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

    По умолчанию

    Ясно,
    а есть какие-то ограничения при написании скриптов - их размер например, или может быть что-то еще?

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

    По умолчанию

    Цитата Сообщение от _Алексей_ Посмотреть сообщение
    Ясно,
    а есть какие-то ограничения при написании скриптов - их размер например, или может быть что-то еще?
    Да, есть ограничение на размер кода макросов:

    СП307-Б/Р, СП310-Б/Р - 131072 байт
    СП315-Р - 65536 байт

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

    По умолчанию

    А как определить размер?
    Копируя код в блокнот например, и судить по размеру его файла?

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

    По умолчанию

    Цитата Сообщение от _Алексей_ Посмотреть сообщение
    А как определить размер?
    Копируя код в блокнот например, и судить по размеру его файла?
    Явно определить размер нельзя. В случае его превышения при загрузке проекта появится информационное сообщение.
    Но превысить лимиты при решении большинства задач, мягко говоря, сложновато - и обычно это триггер того, что вы пытаетесь панелью заменить СПК.

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 31.01.2023, 17:42
  2. Ответов: 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

Ваши права

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