Прошивка 1.31.1 выложена на сайте. Прошивку 1.31.2 могу выслать всем желающим на мыло. Надо, однако, понимать на сколько она нужна, потому что 1.31.2 от 1.31.1 отличается только возможностью работать в одной линии RS-485 по двум протоколам. Задача не тривиальная, и в 90% случаев не очень нужная.
Если не затруднит скинте 1.31.2 plz, на zilog_086@mail.ru
И мне если можно astahovns@rambler.ru
буду благодарен и я, как раз нужна эта возможность, плиз на sergey@kippribor.ru
Прошивку 1.31.2 выслал на электронку.
Для задачи управления тиристорами требуется таймер с более высокой дискретностью (одна милисекунда маловато). Достаточная дискретность 100 мкс.
В сатндартных библиотеках CoDeSys все завязано со структурой TIME, а это не чаще 1 мс. В то же время ПЛК100 может обрабатывать входные импульсы с частотой до 10 кГц.
Если не существует 100 микросекундного таймера, тогда подскажите каким образом можно обеспечить необходимую точность выходного сигнала. ШИМ не подходит т.к. длительность импульса не меняется, меняется периодичность их следования.
Таймер 100мкс несомненно есть внутри ядра
Входы обрабатываются на таких частотах либо по прерыванию (счетчики и тригеры) либо поллингом без фильтрации (энкодер)
Однако цикл ПЛК не может быть раз в 100мкс. - ресурсов не хватает!
Купите БУСТ или его аналог и управляйте тиристорами на здоровье!
Тролль-наседка, добрый, нежный и ласковый
БУСТ не подходит. Время нарастания сигнала, если не ошибаюсь не менее 5с, да и в разных режимах необходимо действовать по разному.
Получить задержку менее 1мс, можно. Но существуют некоторые проблемки. С которыми, я надеюсь, вы поможете мне справиться.
Идея состоит в следующем. Необходимо вставить програмный код время выполнения которого будет значительно меньше дискреты в 1 мс.
Думаю наиболее удобно использовать цикл.
Поясню на примере. Допустим мне необходма задержка в 12.4мс. Я знаю, что 0.4мс время выполнения 10 пустых циклов. Тогда решение будет следующим.
n:=10
TONInst(IN:=var1,PT:=T#12ms);
var2:=TONInst.Q;
IF var2 THEN
FOR I:=1 TO n
END_FOR
var3:=
END_IF
А теперь вопросы.
1. Функция TON сразу начинает свою работу (по событию) или дожидается окончания милисекундного интервала?
2. Как можно расчитать необходимое количество пустых циклов?
3. Какова точность такой задержки если параллельно работают в ждущем режиме(срабатывают по событию) программы с одинаковым приоритетом?
сейчас посмотрел на шим, а ведь у него дискретность тоже 100мкс.
из этого следует, что внутри крутиться 100 микросекундный таймер.
помогите только к нему обратиться или написать обработчик прерываний от этого таймера. по сути дела у меня задача не сложнее шим, поэтому считаю что процессору это под силу. ведь шим регулирует задний фронт выходного сигнала, а мне нужна регулировка переднего фронта.