PDA

Просмотр полной версии : ПЛК110-32 прямое управление портами



judchin
13.07.2014, 17:32
Добрый день!
Необходимо сгенерировать ШИМ с частотой хотя бы 1 кГц на ПЛК110-32
Для этого пользуюсь высокоскоросным таймером на основе примера hi_timer.pro
При установке периода прерывания от 20 мкс. до примерно 200 мкс. ПЛК повисает и перезагружается.
при 1000 и более работает, но время расчетное и реально не совпадает.
при 200 срабатывает с периодом НЕСКОЛЬКО ДЕСЯТКОВ СЕКУНД.

Настройку прямое управления быстрыми выводами сделал, задачу таймер скофигурировал

основной код:

IF (init=TRUE) THEN
SetIRQ(20);
init:=FALSE;
t_res := 5; (*коэффициент заполнения*)
Q0 :=1; (*Для отладки 5 (обычный) вывод ПЛК*)
END_IF

код обработчика прерывания:

t_count:=t_count+1; (* *)
IF (t_count = 50) THEN
t_count := 0;
SysPortOut(0, 7);
END_IF

IF (t_count = t_res) THEN
SysPortOut(0, 0);
END_IF

judchin
13.07.2014, 18:07
Сам нашел ответ
установлена ОЧЕ-Е-Е-Е-ЕНЬ тормозная прошивка 2.14.0, перепрошил на 2.10.9 и все заработало

В связи с этим возникает вопрос: откуда растут руки у разработчиков если процессор ARM с частотой 200 МГц не может работать с таймером с периодом 20 мкс (50 кГц)
Примитивный AVR с частотой 8 МГц с прямыми руками в состоянии это сделать...
Обращение к модераторам: Я тему продублировал в разделе ПЛК. Удалите одну на свое усмотрение.

Дмитрий Артюховский
14.07.2014, 08:55
дело не в ООООчень тормозной прошивке ))) как мне сильно кажется, в 2.14.0 расставлены более высокие приоритеты для системных надобностей ПЛК (обмены через конфигуратор, поддержание стабильности времени цикла и пр.), поэтому при нехватке производительности тормозится программа пользователя, что собственно вы и наблюдаете... в 2.10.9 приоритет был у программы пользователя, поэтому она выполнялась приоритетом, расширяя время цикла ПЛК (сбивая обмены через конфигуратор)

выводы: - аккуратно смотрите длину пользовательской программы в одном цикле 2.14.0
- осторожно используйте конфигуратор для обменов 2.10.9

judchin
14.07.2014, 12:39
аккуратно смотрите длину пользовательской программы в одном цикле 2.14.0

В общем замечание полезное, но не в тему. Вся прошивка ПЛК приведена в начале обсуждения, больше НИЧЕГО ПЛК не делает.
Хотите сказать, что это уже много?

Вопрос про место роста рук остается открытым.
Еще вопрос: можно ли написать библиотеку на чистом Си? Если есть примеры киньте ссылку.

Дмитрий Артюховский
14.07.2014, 13:26
если не сложно, покажите пожалуйста проект целиком... таких сложностей с 2.14 не замечал раньше, не хотелось бы нарваться...

judchin
14.07.2014, 20:41
проект во вложении