Показать сообщение отдельно
Старый 16.04.2012, 11:48   #74
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от lgedmitry
доброго времени суток. Судя по названию топика мне точно сюда.
Взялся за программирование контроллера впервые. Никак не могу понять работу виртуальных счётчиков.
Задача стоИт такая: нужно следить за показаниями реверсивного счётчика. Если они превысят некоторый верхний порог -нужно включить убавлятель. Если окажутся ниже нижнего порога - нужно включить пибавлятель. Посередине диапазона измерения ставлю датчик, который записывает в счётчик число 32768 (то бишь середину пересчёта). Как человеку, прежде работавшему с цифровой техникой прошлого тысячелетия мне это вполне понятно и логично.
Но здесь всё немного по-другому. Программа ФБД-СМлоджикс автоматом начинает переводить все числа в диапазон -32768...+32768.
Значит ли это, что вместо 32768 посередине диапазона я должен обнулять счётчик, а края сравнивать с числами разного знака, например -15620 и +13250? Помогите пожалуйста
Каковы используемые вами пороги?

Что касается "-32768...+32768", то на самом деле этот диапазон "-32768...+32767", и что это такое написано здесь

Счётчики сами по себе беззнаковые устройства, т.е. ниже нуля считать они не умеют.

Если вам нужен сброс в ноль и работа вокруг него, то можно воспользоваться макросом sCNTR(16) - он умеет считать от -32768 до +32767.

Пороги задавайте компараторами, направление счёта храните в RS-триггрере. В примере счётчик, бесконечно болтающийся в диапазоне -24...+24
Изображения
Тип файла: png Безымянный.PNG (9.5 Кбайт, 280 просмотров)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием