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

Тема: МСД-200. Сбор архивных данных в Scada систему с помощью скрипта.

  1. #11

    По умолчанию

    Еще раз - внимательно посмотрите справку к этой функции.
    Вы ее вообще неправильно пишите - первым вам параметром идет err
    Спасибо.

  2. #12

    По умолчанию

    Добрый день!

    10 11 0D 4D 53 44 2D 32 30 30 20 56 31 2E 35 31 1E BE , где:

    10 - адрес прибора
    11 - функция
    0D - количество байт данных
    1E BE - CRC
    4D 53 44 2D 32 30 30 20 56 31 2E 35 31 - MSD-200 V1.51

    Создаю маску:
    destmask={"byte"(адрес прибора),"byte"(функция),"byte"(кол-во байт данных),"string:4"(MSD-),"int16:3:10"(200),"string:2"(пробел V),"int16:10"(1),"string"(. (точка)),"int16:2:10"(51)};

    Итоговый код:
    function OnRead()
    local send={};
    local Addr=server.GetCurrentDeviceAddress( );
    table.insert(send, Addr);
    table.insert(send, 0x11);
    local sendmask={"byte","byte"};
    local dest={};
    local destmask={"byte","byte","byte","string:4","int16:3 :10","string:2","int16:10","string","int16:2:10"} ;
    dest=server.SendAndReceiveDataByMask(2,table.maxn( send),sendmask, send, destmask, 200);

    server.Message(dest[4]); -- Читаю букву "М"
    end

    Получаю ошибку:
    05-07-2019 10:53:24.483 Tag1:Node1.Device1.Tag1 >> (node)Node1device)Device1teg)Tag1OnRead)::[string "--[[(R)Node1.Device1.Tag1]]..."]:20: attempt to index local 'dest' (a number value)
    stack traceback:
    [C]: in function '__index'
    [string "--[[(R)Node1.Device1.Tag1]]..."]:20: in function <[string "--[[(R)Node1.Device1.Tag1]]..."]:9>

  3. #13

    По умолчанию

    Ответ был дан ранее
    Спасибо.

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

    По умолчанию

    з.ы. у вас в руках устройство с расширенными функциями Modbus, по крайней мере парсер Modbus говорит об этом. Это просто набор запрошенного количества байт, где вы сами определяете набор данных. и сами же этот набор потом раскатываете как вам укажет производитель железки.

    Part of Data Package Description Value
    10 Slave address 0x10 (16)
    11 Function code 0x11 (17)
    0D 4D 53 44 2D 32 30 30 20 56 31 2E 35 31 Data
    1E BE CRC 0x1EBE (7870)

    Точнее набор байт, типы переменных и т.д. должен предоставить производитель устройства...

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

Похожие темы

  1. Ответов: 10
    Последнее сообщение: 22.03.2017, 08:57
  2. Хранение архивных данных
    от Vitamin в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 29.01.2015, 08:12
  3. Ответов: 2
    Последнее сообщение: 21.03.2014, 18:11
  4. Ответов: 19
    Последнее сообщение: 21.03.2013, 08:41

Ваши права

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