1) Можно ли запрограммировать скоростной счетчик (hsc2, например) так, чтобы при достижении текущим значением предустановленного значения он (счетчик) сбрасывался в 0 автоматически?
Если счетчик сбрасывать из обработчика прерывания по совпадению текущего и предустановленного значений, то может быть, такое, что это событие (совпадение) произойдет, когда прерывания запрещены, а счетные импульсы тем не менее идут, и счетчик "насчитает" и эти импульсы и соответсвенно его текущее значение превысит предустановленное
2) Что происходит со счетчиком, когда его текущее значение достигает максимального (положительного) значения, а счетные импульсы на вход по-прежнему поступают: он (счетчик) {1} останавливается, сохраняя достигнутое максимальное значение или {2} продолжает счет, как бы с 0, потому, как старший бит значения (не знаковый) теряется из-за переполнения, либо же {3} продолжает счет, как бы с минимального (отрицательного) значения, т. к. из-за переполнения в старший (знаковый) бит попадает 1?
Скоростной счетчик в s7-200 cpu224
-
- Posts: 3
- Joined: Mon Aug 20, 2007 10:07 am
- Location: Казань
-
- Posts: 57
- Joined: Mon Oct 30, 2006 8:54 am
- Location: Russia
Вот что думаю я по этому поводу:
1) Есть три основных режима : -без сбросов, -сброс по входу(конечник), -сброс по входу и установка по входу(два конечника). Для решения вашей задачи необходимо использовать операцию сравнения заданой величины со значением счетчика. Записать новое текущее значение счётчика можно в SMD38(для HC0) SMD58(для HC2) и битом SM37.6(для HC0) SM57.6(для HC2) сделать его актуальным, но это делается вроде бы только один раз до инициализации счета командой HSC. Впрочем можете поэкспериментировать. Сделать новые описания счётчика и снова инициализировать его. У меня кажется не получилось, но я уже точно не помню. Вроде только один выстрел.
2) вытекает из 1) значение счётчика SMD38 является знаковым целым числом, поэтому после переполнения (2147483647 +1) должно перейти (ошибка здесь) в -0 ( 80000000Hex) и дальше -1, -2.
Да, но это теория. Всё конечно надо проверить
1) Есть три основных режима : -без сбросов, -сброс по входу(конечник), -сброс по входу и установка по входу(два конечника). Для решения вашей задачи необходимо использовать операцию сравнения заданой величины со значением счетчика. Записать новое текущее значение счётчика можно в SMD38(для HC0) SMD58(для HC2) и битом SM37.6(для HC0) SM57.6(для HC2) сделать его актуальным, но это делается вроде бы только один раз до инициализации счета командой HSC. Впрочем можете поэкспериментировать. Сделать новые описания счётчика и снова инициализировать его. У меня кажется не получилось, но я уже точно не помню. Вроде только один выстрел.
2) вытекает из 1) значение счётчика SMD38 является знаковым целым числом, поэтому после переполнения (2147483647 +1) должно перейти (ошибка здесь) в -0 ( 80000000Hex) и дальше -1, -2.
Да, но это теория. Всё конечно надо проверить
Last edited by errornet on Wed Aug 22, 2007 5:39 am, edited 2 times in total.
-
- Posts: 57
- Joined: Mon Oct 30, 2006 8:54 am
- Location: Russia
-
- Posts: 57
- Joined: Mon Oct 30, 2006 8:54 am
- Location: Russia