Страница 139 из 154 ПерваяПервая ... 3989129137138139140141149 ... ПоследняяПоследняя
Показано с 1,381 по 1,390 из 1537

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

  1. #1381
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,761

    По умолчанию

    Да Modbus устройство вообще должен игнорировать запросы не к своему адресу,
    Но сначала нужно вычленить пакет. А вот тут, если норм пауз нет и наличии кривой работы с буфером в ПО слейва (а оно бывает*) можно и получить такие эффекты.

    *Например такое было (сейчас не знаю) у местных ПЧ. А когда-то и у МВ..-6У

  2. #1382
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,062

    По умолчанию

    ну да, если паузы тишины нет, прибор может глючить.
    Например у меня два датчика топлива на линии, одно сыпало ошибками. Просто поменял их опрос местами, ошибки пропали. ХЗ че это такое было ?
    Если что, терминаторов нет. Ну или я их не включал, не помню уже.

    з.ы. сейчас глянул, из 9 тысяч запросов, 28 ошибок, и опять на последнем по опросу устройству.
    Последний раз редактировалось melky; 16.10.2024 в 16:31.

  3. #1383

    По умолчанию проблемы при создании своего FB на основе блоков OwenCommunication

    здравствуйте коллеги.
    в проектах чаще всего пользуюсь стандартными средствами при описании части программы Modbus обмена.
    Но вот попалась задача, где на вскидку лучше воспользоваться OwenCommunication.
    Посмотрел видео по реализации, написал опрос в виде своего (!) функционального блока на CFC с использованием
    FB из библиотеки OCL: OCL.COM_Control, OCL.MB_SerialRequest и т.д.
    Но при добавлении экземпляра своего функционального блока в основную программу (на CFC)
    в момент ввода имени экземпляра функционального блока выходит ошибка
    2024-10-31_16-06-54.png
    Если жму "продолжить" после в процессе компиляции выходит ошибка:
    КОД:
    Код:
    ERROR]         Internal error:System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.   
    в ..get__CompiledType()    в _3S.CoDeSys.LanguageModelManager.Expression.get_Type()    в ..(_IVariable , IScope5 , _ICompileContext , _ISignature )    
    в _3S.CoDeSys.Compiler35170.Phase1_Typification.InterfaceCompiler.(_ISignature , IScope5 , _ICompileContext )    
    в _3S.CoDeSys.Compiler35170.Phase1_Typification.InterfaceCompiler.(_ISignature , IScope5 , _ICompileContext )    
    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    
    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    в ..(Boolean , Boolean , Boolean )

    Экспериментальным путем установил, что если я оставляю в объявлении своего блока OCL.COM_Control то ошибка не выходит и все компилируется.
    Стоит только добавить хоть один OCL.MB_SerialRequest даже только в область объявления получаю ошибки вышеописанные.
    Попробовал создать ФБ на ST, поведение тоже самое.
    Программа ранее использовала стандартные средства обращения к модбас, которые я потер, чтобы не конфликтовали.
    Вопрос: может быть библиотека не предоставляет возможность создать свои ФБ на их основе?
    Как выйти из этой ситуации? в документации к OwenCommunication и здесь на форуме ответов не нашел.

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

    По умолчанию

    Добрый день.

    Вопрос: может быть библиотека не предоставляет возможность создать свои ФБ на их основе?
    Предоставляет.
    Насколько помню - это какой-то специфический баг редактора CFC.
    Попробуйте повторить то же самое на ST - будет ли ошибка в этом случае?

  5. #1385

    По умолчанию

    Я написал в предыдущем сообщении, что на ST тоже пробовал. Поведение в точности такое же.
    Сейчас создал новый проект. добавил туда OCL библиотеку и только мой новый ФБ.
    хоть в PLC_PRG.CFC хоть в PLC_PRG.ST (объявлял экземпляр(и определял) своего ФБ) варианте реализации - не компилируется.
    Ок. завтра подключитесь, вероятно подскажете, что я не так делаю.
    Очень надеюсь на вас.
    Последний раз редактировалось Schneider; 31.10.2024 в 18:51.

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

    По умолчанию

    Цитата Сообщение от Schneider Посмотреть сообщение
    Я написал в предыдущем сообщении, что на ST тоже пробовал. Поведение в точности такое же
    Свяжитесь, пожалуйста, завтра утром со мной по телеграм (в подписи) и продемонстрируйте вашу ситуацию по AnyDesk.

  7. #1387

    По умолчанию

    Проверил на CFC и на ST .
    В ФБ и в действиях блоки OCL.COM_Control и OCL.MB_SerialRequest добавляются и работают без ошибок. 1 Блоки биб_к.jpg
    Последний раз редактировалось kondor3000; 31.10.2024 в 22:08.

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

    По умолчанию

    Ошибка компиляции была связана с некорректной инициализацией переменной типа WORD.

    В проекте использовался следующий синтаксис:

    Код:
    wVar: WORD := b#0000_0001;
    Но это некорректно.

    Нужно делать так:

    Код:
    wVar: WORD := 2#0000_0001;

  9. #1389

    По умолчанию

    вопрос:
    Цитата Сообщение от Schneider Посмотреть сообщение
    здравствуйте коллеги.
    в проектах чаще всего пользуюсь стандартными средствами при описании части программы Modbus обмена.
    Но вот попалась задача, где на вскидку лучше воспользоваться OwenCommunication.
    Посмотрел видео по реализации, написал опрос в виде своего (!) функционального блока на CFC с использованием
    FB из библиотеки OCL: OCL.COM_Control, OCL.MB_SerialRequest и т.д.
    Но при добавлении экземпляра своего функционального блока в основную программу (на CFC)
    в момент ввода имени экземпляра функционального блока выходит ошибка
    2024-10-31_16-06-54.png
    Если жму "продолжить" после в процессе компиляции выходит ошибка:
    КОД:
    Код:
    ERROR]         Internal error:System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.   
    в ..get__CompiledType()    в _3S.CoDeSys.LanguageModelManager.Expression.get_Type()    в ..(_IVariable , IScope5 , _ICompileContext , _ISignature )    
    в _3S.CoDeSys.Compiler35170.Phase1_Typification.InterfaceCompiler.(_ISignature , IScope5 , _ICompileContext )    
    в _3S.CoDeSys.Compiler35170.Phase1_Typification.InterfaceCompiler.(_ISignature , IScope5 , _ICompileContext )    
    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    
    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    в ..(Boolean , Boolean , Boolean )

    Экспериментальным путем установил, что если я оставляю в объявлении своего блока OCL.COM_Control то ошибка не выходит и все компилируется.
    Стоит только добавить хоть один OCL.MB_SerialRequest даже только в область объявления получаю ошибки вышеописанные.
    Попробовал создать ФБ на ST, поведение тоже самое.
    Программа ранее использовала стандартные средства обращения к модбас, которые я потер, чтобы не конфликтовали.
    Вопрос: может быть библиотека не предоставляет возможность создать свои ФБ на их основе?
    Как выйти из этой ситуации? в документации к OwenCommunication и здесь на форуме ответов не нашел.

    оказалось это две разных ошибки. точнее одна ошибка и один баг среды.
    неверное объявление двоичной переменной приводило к ошибке при компиляции, не указывающей, как обычно бывает в таких случаях, что именно не так написано.
    Баг среды разработки заключался в том, что при добавлении экземпляра своего самописного функционального блока в поле программы на CFC, сразу после этого должен появится диалог ввода имени экземлпяра. но вместо этого появлялось окно ошибки (не происходило автоматическое объявления). чтобы этого избежать, сначала вручную добавляем в область объявления, а потом выделить имя экземпляра и драгНдроп в текст программы. тогда ошибка не возникает.
    Я думал что это по сути одна ошибка, но оказалось это две разные.
    Спасибо большое за поддержку.
    Последний раз редактировалось Schneider; 02.11.2024 в 06:38.

  10. #1390

    По умолчанию

    Привет форумчани.
    Не пинайте ток ногами....
    Проведя не один день на просторах инета да форумах, мне так и не удалось решить проблему с Modbus TCP Slave. Просмотрел видео уроки на данную тематику, но увы.... Понимаю, что в эмуляции данная ошибка: - Шина не запущена. Данные значения, возможно, неактуальны" допустима. Но вот при опросе не важно каким "Мастером", получить данные или записать не получается. И еще, в данной версии ПЛК 210-04, то ли я с ума выжил, то ли я не правильно опрашиваю данное устройство. Одним словом, хожу вокруг сосны! для форума-1.png для форума-2.png
    Дополнительный вопрос: есть ли разница в дереве переменных "Слейва" кто будет первым "BOOL" или "REAL"?
    Изернет 1-2 WAN с адресом 192.168.2.150
    Изернет 3 LAN с адресом 192.168.3.150 - опрос модулей
    Изернет 4 LAN с адресом 192.168.3.30 - панель(мастер)
    Проброшен порт 502 с WAN в LAN
    Последний раз редактировалось bort992; 05.11.2024 в 22:01.

Страница 139 из 154 ПерваяПервая ... 3989129137138139140141149 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

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