Деление |
Типовые задачи Предыдущий Следующий |
Общие сведенияНаименование: DIV. Тип выхода: вещественный. Количество входов: 2. Примечания по входамПорядок входов: «Делимое», «Делитель». Функционирование•значение выхода равно частному от деления значений первого («Делимое») и второго («Делитель») входа; •выход имеет неинициализированное состояние, если хотя бы один из входов имеет неинициализированное состояние; •значение выхода недостоверно, если один из входов имеет недостоверное значение (даже если другой вход имеет неинициализированное состояние) или второй вход равен нулю. Примеры использованияBLOCK1 = DIV(5; 2,5) // Использование в аргументах констант; результат равен 2. BLOCK2 = DIV(1; 0) // BLOCK2 имеет недостоверное значение. BLOCK3 = DIV(AI1.1; DI1.1) // Использование в аргументах каналов. BLOCK4 = DIV(BLOCK4; BLOCK2) // Использование в аргументах значений других алгоблоков. // ======================================= // Реализация периодической функции "Пила" // (приращение - 0,001; период - 2пи; // область значений - от 0 до 2пи) // и построение от нее функции "синус" // (область значений - от 20 до 70) B1 = DIV(AO1.1; 6,2815) B2 = TRC(B1) B3 = MUL(B2; 6,283) B4 = ADD(AO1.1; 0,001) B5 = SUB(B4; B3) B6 = RESULT(AO1.1; B5; 0) // Реализация рекурентной формулы // AO1.1 := AO1.1 + 0,001 - 6,283 * TRC( AO1.1 / 6.2815 ) B7 = SIN(AO1.1) B8 = MUL(B7; 25) B9 = ADD(45; B8) B10 = RESULT(AO1.2; B9) // Реализация формулы AO1.2 := 45 + 25 * SIN( AO1.1 ).
// ======================================= // Реализация счетчика моточасов // DI1.1 - равен 1, когда агрегат включен (работает) // AO1.1 - счетчик моточасов // TBL1 - таблица из одной ячейки, хранит значение счетчика B00 = OR(DI1.1; 0) // Шунтирование недостоверных значений DI1.1 нулём B10 = DIV(B00; 36000) // пересчет времени работы агрегата в часы B20 = TBL_SEL(TBL1; 0) B30 = MAX(AO1.1; B20) // восстанавливаем значение, если было отключение питания B40 = ADD(B30; B10) // увеличиваем значение счетчика B50 = TBL_WRITE(TBL1; 0; B40; 1) // записываем значение в первую ячейку таблицы TBL1 // раз в секунду (9 из 10 тактов записи // будут игнорироваться) B60 = RESULT(AO1.1; B40; 0) // записываем значение в канал AO1.1
Файл для импорта: motor.help |