СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Добрый день.
Есть ли возможность получить доступ к содержимому логов библиотеки CmpLog для отображения их на визуализации ПЛК? Наподобие того, как это сделано в CoDeSys (Device -> Log).
Добрый день.
Логи лежат в папке tmp (файлы PlcLog_x.csv).
В визуализации можно отображать их с помощью элемента Текстовый редактор - но выглядеть, скорее всего, будет не очень здорово.
В баг-трекере CODESYS есть запрос на создание отдельного элемента для отображения логов в визуализации - но в работу его пока не взяли.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Спасибо, поищу тогда.
> но в работу его пока не взяли
Жаль, очень полезная штука будет.
Добрый день!
Посоветуйте, пожалуйста, защиту от бесконечного цикла и последующей перезагрузки контроллера. Безусловно, лучшая защита - это правильный алгоритм. Но сразу все предусмотреть не получается, особенно, когда данные приходят по сети. Есть понимание, что сейчас, в случае искажения данных выход из While может и не произойти, парсер у меня пока написан наживую. Можно ведь, вероятно, если здесь перехват ошибок невозможен, использовать таймер с Exit? Или есть еще методы?
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Согласен, но как тогда обработать данные, полученные по ТСP, только в главном цикле - пока не понимаю. Ведь этот цикл может выполнятся за разное время, а TCP блок, вероятно, работает асинхронно. Использовать глобальный указатель на уже обработанный байт? И в следующем цикле обрабатывать следующий... но тут мы ограничены временем выполнения цикла, которое может и вырасти. Кроме того, мне кажется, при таком подходе могут стать заметны "визуальные эффекты" при выдаче строк в визуализацию. В While они собираются практически мгновенно, я думаю.
Опишите подробно, что вы делаете и что именно вызывает у вас затруднения.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Простейщая программа - TCP клиент (прям из хелпа CODESYS), от внешней железки приходят данные. Есть глобальный флаг, что пришли данные. По этому флагу в главном цикле, начинается побайтовый разбор пришедших данных в массиве RX, массив принадлежит клиенту. Выходящяя строка (точнее строки) собирается через индексы, посимвольно, в цикле While, цикл является частью парсера. Протокол довольно сложный. Вот кстати еще подумал, хотя на глаз это и не заметно. При каждом изменении строки (посимвольно) в WEB-визуализации также происходят изменения надо думать! Стоит сделать промежуточну переменную, и потом однократное присваивание? Но главное, это все устойчиво работает (сутками) по LAN. Парсер так сразу и не соображу как оснастить всеми проверками, сейчас если, например, выпадет байт окончания подсообщения (протокол многословный, упакованный) или что-то еще - зацикливание обеспечено.
Задача прояснилась, но я все равно пока не понимаю, зачем вам там цикл WHILE.
Выложите пример кода, чтобы стало яснее, для чего вы его используете.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk