Страница 42 из 111 ПерваяПервая ... 3240414243445292 ... ПоследняяПоследняя
Показано с 411 по 420 из 1109

Тема: Modbus Universal MasterOPC Server новый OPC сервер от компании ИнСАТ

  1. #411

    По умолчанию

    Вот тут вы что то напутали:
    local str2=string.sub(str1,1,3); --выделяем подстроку со значением
    server.Message("номер найден, ",str2);
    local str3=string.sub(str1,4); --символ найден - выделяем подстроку с номером
    server.Message("значение найдено, val=",str3);
    if string.len(str3)<6 then
    elem[str3+1]=str2; --вставляем в таблицу полученный элемент
    server.Message("вставили элемент в таблицу - ", elem[str3+1]);
    end;

    str2 - выделяете начало строки, то есть номер, но затем работаете с ним, как будто это значение. Аналогично с str3.
    Спасибо.

  2. #412

    По умолчанию

    Не знаю, код взят из оригинального скрипта
    Код:
    local k,z= string.find(str1, "=" ); --разбираем остальные элементы по символа "="
           if k~=nil and z~=nil then    
               local str2=string.sub(str1,z+1); --символ найдет - выделяем подстроку со значением
               local str3=string.sub(str1,1,z-1); --символ найден - выделяем подстроку с номером
               elem[str3+1]=str2; --вставляем в таблицу полученный элемент
    Он же рабочий, поэтому не пойму, что не так.

    Всё, я понял что вы имеете ввиду, спасибо большое за подсказку
    Последний раз редактировалось energvk; 13.08.2016 в 15:30.

  3. #413

    По умолчанию

    Цитата Сообщение от Alexandr Ryzhikov Посмотреть сообщение
    Спасибо большое! Пока не заработало.
    Ошибка исправлена - обновитесь до текущей версии ОРС сервера.
    Добавлять server.IsWriteFromScript( ) не нужно.
    Спасибо.

  4. #414

    По умолчанию

    Добрый день!
    Подскажите пожалуйста. Пишу скрипт на Луа с использованием побитовых операторов. В стандартном интерпретаторе под
    Windows для Луа 5.1 отсутствуют библиотеки для работы с битами. Можно ли подключить вашу библиотеку к этому интерпретатору для проверки кода до вставки в OPC сервер (на-пример, кодом вычисляю число, print - проверяю число)?
    Или как проверить тоже самое средствами сервера без запуска тегов?

  5. #415

    По умолчанию

    Нет, вставить нашу библиотеку не получится.
    Спасибо.

  6. #416

    По умолчанию

    Добрый день!
    В одном из Ваших примеров по реализации собственных протоколов путем побитового сдвига получаете из 16-битного числа 32-битное. Мне нужно операции побитовых сдвигов производить с 8-битным числом, но данное число должно оставаться 8-битным. Мне нужно заранее объявить переменные 8-битным числом? Как это сделать?
    Спасибо.

  7. #417

    По умолчанию

    В Lua нельзя явно указать битность числа.
    Но проблема решается очень просто - после сдвига примените маску по "Логическое И" с числом 255 (8 единиц).
    Спасибо.

  8. #418

    По умолчанию

    Добрый день!
    Мне необходимо поменять биты в 8-битном числе, т.е. 7 бит на место 0-бита, 6 бит на место 1-бита и т.д.
    Правильный ли следующий код?
    local a --число до перестановки бит
    local b --нужное число после перестановки бит
    for i=0,7,1 do --цикл по битам байта
    c=bit.BitFromData(a,i)
    b=bit.BitToData(b,c,(-1(i-7)))
    return b
    end

    Спасибо.

  9. #419

    По умолчанию

    Зачем -1 в bittodata?
    Примерно так:
    function OnInit()
    local a=78 --число до перестановки бит
    local b=0; --нужное число после перестановки бит
    for i=0,7,1 do --цикл по битам байта
    c=bit.BitFromData(a,i)
    b=bit.BitToData(b,c,7-i)
    end
    server.Message("b=",b )
    end
    Спасибо.

  10. #420

    По умолчанию

    Спасибо большое!

Страница 42 из 111 ПерваяПервая ... 3240414243445292 ... ПоследняяПоследняя

Ваши права

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