Страница 19 из 111 ПерваяПервая ... 917181920212969 ... ПоследняяПоследняя
Показано с 181 по 190 из 1109

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

  1. #181

    По умолчанию

    Пришлите несколько скриншотов описывающих проблему. Также пришлите лог обмена с устройством. Для этого в свойствах сервера включите запись журнала и всех его событий, размер лога задайте равным 10000. Запустите режим исполнения и воспроизведите ошибку. Лог пишется в папку:
    c:\Documents and Settings\All Users\Application Data\InSAT\MasterOPC Universal Modbus Server\SERVERLOGS\
    Лог заархивируйте и вышлите нам.
    Также пришлите конфигурацию ОРС сервера.
    Спасибо.

  2. #182

    По умолчанию

    Прилагаю лог и конфигурацию.
    opc.zip

    Насколько я понял проблема (если это можно отнести к проблеме) связана с тем что переменные server only после опроса остаются в comm_failure и происходит повторный опрос, т.к. если их удалить из конфигурации, то такого не наблюдается.

  3. #183

    По умолчанию

    Да, тег ServerOnly не будет меняться, если в него что либо не записать (скриптом или ОРС клиентом).
    Сейчас внеочередной опрос у вас вызывает тег reconnect. Что вы хотите им сделать?
    Сейчас у вас такой код:
    function OnRead()
    val,qual=server.ReadCurrentTag();
    if qual~=192 and count<4 then
    server.Sleep(5000);
    server.PollCurrentDevice( );
    count=count+1;
    end;
    end
    Зачем вы анализируете признак качества тега ServerOnly? Вы хотите контролировать были ли теги опрошены? Тогда анализируйте обычные Modbus теги, при помощи функции server.ReadTagByRelativeName.
    Спасибо.

  4. #184

    По умолчанию

    Изменил скрипт:
    Код:
    -- Processing
    function OnRead()
    t, q, ts = server.ReadTagByRelativeName("гайдара-99а.гайдара-99а.Pust");
    if q~=192 and count<4 then
    server.Sleep(5000);
    server.PollCurrentDevice( );
    count=count+1;
    end;
    end
    В итоге в логе получаю
    Код:
    [07.01.2015 15:07:19.970] Err : гайдара-99а:ошибка установления соединения хх.хх.ххх.хх 502 
    [07.01.2015 15:07:19.970] SCRIPT : <<reconnect>> : reconnect:гайдара-99а.гайдара-99а.reconnect >> ReadTagByRelativeName : тег не найден
    [07.01.2015 15:07:19.970] SCRIPT : <<timepoll>> : timepoll:гайдара-99а.гайдара-99а.timepoll >> ReadTagByRelativeName : тег не найден
    [07.01.2015 15:07:19.970] Inf : гайдара-99а.гайдара-99а:Ошибка опроса устройства
    И соответственно, повторной попытки соединения нет

  5. #185

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Код:
    [07.01.2015 15:07:19.970] SCRIPT : <<timepoll>> : timepoll:гайдара-99а.гайдара-99а.timepoll >> ReadTagByRelativeName : тег не найден
    Прочитайте в справке описание к функции server.ReadTagByRelativeName
    Спасибо.

  6. #186

    По умолчанию

    Спасибо, разобрался. 2 тега оказались лишними, записал скрипт в текущий тег

  7. #187

    По умолчанию

    Здравствуйте!
    Вопрос начинающего.
    Необходимо производит опрос 4 функцией Modbus аналогично этому: Image 1.png, Image 2.png. Пытаюсь это сделать по примеру из руководства Image 3.png, Image 4.png. Запрос-ответ есть, но как получить десятичное число из 4х байтного ответа не могу разобраться?

  8. #188

    По умолчанию

    Цитата Сообщение от Vitaliy Посмотреть сообщение
    Здравствуйте!
    Вопрос начинающего.
    Необходимо производит опрос 4 функцией Modbus аналогично этому
    А просто тег типа Float с регионом InputRegisters вам не подходит?

    Цитата Сообщение от Vitaliy Посмотреть сообщение
    Запрос-ответ есть, но как получить десятичное число из 4х байтного ответа не могу разобраться?
    Указываете в маске формат числа и нужное чередование байт.
    Также можете посмотреть функцию modbus.ReadInputRegistersAsFloat( )
    Спасибо.

  9. #189

    По умолчанию

    Да, Float с регионом InputRegisters получилось, но для того, что бы разобраться, что не правильно делаю Image 6.png,
    local destmask={"byte","byte","float:10325476"};
    вроде и тип переменной правильный и последовательность байт?
    И как применять modbus.ReadInputRegistersAsFloat( ) совместно с server.SendAndReceiveDataByMask? Если можно, пример.

  10. #190

    По умолчанию

    Цитата Сообщение от Vitaliy Посмотреть сообщение
    local destmask={"byte","byte","float:10325476"};
    вроде и тип переменной правильный и последовательность байт?
    Для четырехбайтовых переменных чередование обычно "старшим словом вперед" (32105476).

    Цитата Сообщение от Vitaliy Посмотреть сообщение
    И как применять modbus.ReadInputRegistersAsFloat( ) совместно с server.SendAndReceiveDataByMask? Если можно, пример.
    Что значит совместно?
    Это две разные функции для разных задач. Примеры есть в справке, а также в документации на сайте.
    Спасибо.

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

Ваши права

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