Евгений, а не подскажите, что это за ошибка:
Вложение 24430
Она появляется сразу после "Пуска" программы...
Вид для печати
Евгений, а не подскажите, что это за ошибка:
Вложение 24430
Она появляется сразу после "Пуска" программы...
Доброе. Не стал создавать тему, но ситуация похожа. Через несколько часов зависает. СОМ гаснет, РАБОТА нет, горит постоянно. Подключится кодесисом не могу. На визуализации есть часы реального времени, они останавливаются. Нажатие на визуализации ни к чему не приводят. Связи с этим несколько вопросов:
1. Что происходит если сработает вотчдог? Я то привык, что перезагрузка, но когда был подключен кодесисом всплыло исключение вотчдога визутаска.
2. Есть подозрения, что именно визуалиазция меня весит, к тому же факт из предыдущего пункта наводит на мысли. Читал, что не стоит группировать объекты на визуализации: это правда или наглая ложь?
3. Сама визуализация состоит из кучи рисунков средствами кодесиса, которые сгруппированы и просто невидимы, если не нужны сейчас. Плюс различные кнопки которые выполняют несложный ST код и имеют изменяющуюся надпись. Таких элементов на экране более 1000, просто как правило они невидимы. Но отыскать какой элемент вызывает ошибку нереально. Их слишком много, зависание происходит далеко не сразу. Есть какие нибудь средства попроще?
4. мэйн таск по монитору выполняется в среднем 2,5 мс, к ней привязаны опросы модулей, как я понял. С ними проблем не возникает. Цикличность мэйн таск 5мс. Поставлю больше и бывает пропускает датчики положения (не успевает опрашивать).
Ну и еще вопросик, который давно меня мучает.
5. Опрос модулей. Мы там ставим циклически, но без приоритета, как в задачах. Какой опрос будет происходить, если циклически вышло на один и тот же фрейм сразу 2 опроса?
update: spktools и alarmmanager в проекте не использую, с файлами так же не работаю
4. У меня та же фигня с опросом модулей хотя и стоит 20 мс но опрос привязался к циклу мэйн таск, правда я опрашиваю через триггер,
5 вопрос тоже интересует....
По своей проблеме - отключил работу с файлами в примере для гистограммы, оставил только реальный режим, также оставил архвирование на SD - ночь пережил, пока все работает, еще подожду до конца дня...
То есть создается очередь из опросов?
Еще объясните, чисто гипотетически:
фреймы 5мс
опрос модуля 1 - цикл 10 мс
опрос модуля 2 - цикл 15 мс
больше модулей нет.
на второй фрейм пошел опрос модуля 1
к третьему фрейму (15мс от начала) первый еще не ответил, соответственно второй в очередь встал
к четвертому (20мс) первый еще не ответил, второй по прежнему в очереди, но пришла очередь первого опять. Первый же не встанет в очередь, он ведь и так опрашивается?
Сейчас не могу утверждать это со 100% вероятностью т.к. этот вопрос уже к разработчикам CODESYS, но мне реализация видится так:
1) Старт контроллера
2) Опрос модуля 1
3) Опрос модуля 2
4) Проверяем прошел ли цикл опроса модуля 1 если да - опрашиваем, если нет - переходим к шагу 5
5) Проверяем прошел ли цикл опроса модуля 2, если да - опрашиваем, если нет - переходим к п. 4
Поэтому очереди как таковой нету, а есть цикл опроса.
Я в ступоре. Думал модуль сделал запрос или получил ответ и ушел до следующего фрейма. А он выходит еще и ответа дожидается между фреймами? Как он определяет сколько ждать? До следующей задачи?
На примере понятнее.
Мейнтаск 5 мс, среднее время работы 2мс
Во время работы задачи, отображаемое в конфигураторе, входит работа с модбас модулями?
Если входит, то почему тогда работа не ровна 5мс, что останавливает работу модбасмодулей?
Если не входит, то как я понимаю, работа с модбас идет всё время, пока его не прервет следующая задача?
Вы как бы доходили до места как на картинке?
На первой вкладке есть тайм-аут, это время после которого контроллер уже не ждет ответа от конкретного слейва, на вкладке с кaнaлaми там где триггер, есть циклическое выполнение, ставить его равным циклу контроллера не стоит менее 20мс нормальной работы со слейвами не получится