Сообщение от
Sulfur
Созданный в 1.6.1 проект без изменений перекомпилирован в 1.6.2, и все нужные файлы перенесены в КДС как положено.
Что я не так делаю?
Да, в 1.6.2 не работает обмен.
Если других дополнений нет, то выложу обновление с таким составом:
Сообщение от
Hardella 1.7.0
Исправлено:
- Восстановлен PRU - host обмен данными (в 1.6.2 обмен был сломан)
Новые возможности:
- Получение фактической длительности PRU цикла в online режиме. При включении этой опции в PRU configuration, в программу `MemoryRead` передаётся максимальная длительность работы программы и фактическая длительность PRU цикла. PRU ядро накапливает максимальнюу длительность и сброс происходит в момент очередного чтения данных из PRU.
- Теперь комментарии можно добавять после точки с запятой, после `IF`, `ELSE`, и т.п.
Замечание:
- При открытии проекта, созданного в предыдущих версиях Hardella, запустится "Migration Assistant" и предложит обновить проект (формат хранения комментариев изменился). Достаточно просто пронажимать next.
Статистика времени выполнения выводится в MemoryRead следующим образом.
Фактическая длительность PRU цикла. Т.е. время от одной записи выходов до следующей.
Код:
maxOutputWriteTimeMicros : REAL; (* макс. длительность цикла за всё время работы ПЛК, мкс *)
lastOutputWriteTimeMicros : REAL; (* последняя длительность цикла, считанная из PRU, мкс *)
Например, если указать "min cycle: 1µs", и PRU программа очень простая (всегда укладывается в 1мкс), то OutputWriteTimeMicros будут равны 1.0
Ну, мы указали, что хотим 1 мкс цикл, его и получили.
Если же программа заняла дольше, то тут будет фактическое значение.
Разумеется, второй вопрос "а сколько реально занимает программа, без учёта ожиданий?"
Для этого выведены переменные про длительность полезного кода (это длительность программы + 2 опроса входов с фильтрацией + приём-передача)
Код:
maxCycleTimeMicros : REAL; (* макс. длительность работы PRU программы за всё время работы ПЛК, мкс *)
lastCycleTimeMicros : REAL; (* последняя длительность работы PRU программы, считанная из PRU, мкс *)