PDA

Просмотр полной версии : подсчет суммы доз материала



niklud19511
10.09.2011, 19:08
имеем переменную (mass:REAL) получаемую из модуля ввода сигналов
тензодатчиков,помогите пожалуйста организовать подсчет суммы
n-доз песка и как вести протокол.

bango
10.09.2011, 20:34
Ну и суммируйте данные
mass:= mass+n-доз;

bango
10.09.2011, 20:48
Лучше выложи код и описание, а то будешь получать вот, такие ответы как я выше написал.

capzap
10.09.2011, 20:57
поддерживаю, без четкого техзадания, что нужно делать, какие могут быть ответы ...

niklud19511
11.09.2011, 18:44
С модуля ввода сигналов тензодатчиков МВ110-224.4ТД
получаю вес дозы материала. (mass1:REAL),
вес дозы в каждом цикле дозировки разный плюс-минус 2-15кг.
Задача,как подсчитать вес всех дозировок за день,месяц,год.
Количество циклов дозирования около400 в день,
и можно ли вести протокол.
оборудование
ПЛК110
МВ110-224.4ТД

capzap
11.09.2011, 19:04
Во первых, как подсчитываются Ваши циклы, оператор дает команду со СКАДы или на весах есть какой то концевик, подтверждающий что можно сосчитать массу
Подсчет лучше делать не с помощью ПЛК, а передавать по модбас на ПК и данные хранить в базе данных, из простых и свободных например MySQL, а из неё можете складывать общую массу хоть за пятилетку

Александр Приходько
12.09.2011, 09:19
Вопрос: каким образом масса считается? Массу можно считать на лету, например при движении конвейера, либо на весах, в этом случае массу можно считать например по двум алгоритмам:
1) по срабатыванию концевого выключателя, в этом случае оператор смотрит на табло (панели оператора или механических часов если такие есть) и когда масса перестает колебаться, дает сигнал на взвешивание.
Но! в данном случае необходимо предусмотреть ситуацию когда оператор может случайно нажать кнопку.
2) Автоматическое взвешивание, когда колебание массы входит в соответствующий диапазон, если взвешивание произошло, то должен загореться индикатор, о том что контроллер готов к следующей итерации.

Как то-так. Задач много, все зависит от конкретной ситуации. То, что описали вы - недостаточно.
Чтобы люди вам помогли, они должны понимать задачу.

niklud19511
12.09.2011, 16:37
материал(песок) при открытие кармана заполнения
сыпется в весовой бункер- дозатор,вес дозы установлен оператором,
по достижении заданного значения карман закрывается вес фиксируется
и по команде происходит сброс,но бывают недосыпы или пересыпы
плюс минус несколько килограмм.Вся система работает на ура,задача как подсчитать сумму всех доз и составить протокол.

capzap
12.09.2011, 17:10
VAR_INPUT
cur_mass : DWORD
END_VAR
VAR_OUTPUT
all_mass : DWORD
END_VAR

all_mass:= (all_mass + cur_mass)

примерно такой фб Вы должны вставить в оброботку команды сброс, перед открытием люков, пока тензодатчик показывает нужную массу

capzap
12.09.2011, 19:40
в моем коде не только в этом ошибка, я вообщем то не сторонник писать за других, главное идею подать :)

capzap
12.09.2011, 19:57
каких, может я не в курсе. Такие вещи, по моему убеждению, надо складывать каждый цикл в БД и считать общую массу уже в проге создающей протокол, кажется те кто с ПЛК умеют печататать документы здесь вопросов уже не задают :)

bango
12.09.2011, 20:15
all_mass:= (all_mass + cur_mass)
Для чего скобки и без них работать будет

Александр Приходько
13.09.2011, 08:47
Объясняю почему Real - это не есть хорошо.
У Real если не ошибаюсь 9-10 значащих чисел - мантисса а все остальное под знаки и степень отводится. Какоето время все будет считаться идеально, но как только в Real накопится определенное значение точность постепенно будет падать, а когда значение станет очень большим, то суммирование должного эффекта приносить не будет. Поэтому лучше DWORD и анализ на переполнение, чтоб среднюю сумму не "проворонить" при переполнении счет начнется с 0!

Александр Приходько
13.09.2011, 08:48
Для чего скобки и без них работать будет

Будет, у всех свои привычки.

niklud19511
13.09.2011, 16:20
спасибо все работает,как подсказал CAPZAP.