Пример программирования на языке ФБД
Задача: средствами языка ФБД запрограммировать получение интервала наблюдения длительностью 10 секунд. Следует предусмотреть один дискретный вход для активизации программы и два дискретных выхода для получения отметок времени со сдвигом на полпериода друг относительно друга.
Выполнение.Перед тем, как начать что–то делать, целесообразно при всём многообразии вариантов решения остановиться на каком–то одном. Пусть для нашего примера выбранный способ решения задачи соответствует временным диаграммам на рисунке 2.10.
Входным сигналом (диагр.1) программа запускается. Формируемая непрерывная последовательность импульсов (диагр.2) поступает на счётчик (диагр.3). Временные параметры генерируемых импульсов (2) и устанавливаемый коэффициент счёта счётчика должны допускать настраиваемость программы на получение интервала наблюдения 10 секунд.
После достижения установленного коэффициента счёта надо предусмотреть мероприятия для сброса счётчика в исходное состояние. Здесь могут оказаться полезными функции укорочения импульсов, задержки появления сигнала, чтобы можно было разнести по времени действия сигналы счёта и сброса (диагр.4 и 5). Выходные сигналы (диагр.6 и 7) выдаются в виде инвертированных импульсов. Их форма кривой получается путём преобразования, похожего на деление частоты импульсов (диагр.4) вдвое с помощью элемента, работающего как D – триггер. Если формирование интервала наблюдения выполнять в соответствии с рис. 2.10, то на языке ФБД в среде α – Programming это могло бы быть представлено как на рис. 2.11. Очень легко устанавливается соответствие между временными диаграммами и программой. На каждой строке диаграмм справа проставлены номера выходных сигналов блоков, на которых эти сигналы получены.
Рис. 2.10
При включении I 01 начинает генерировать импульсы блок FLICKER. В окне описания блока заданы длительности импульса ON и паузы OFF между ними, каждая из которых равна 100ms. При таком задании период равен 200 ms, что соответствует частоте 5 Гц, т.е. получению 5 импульсов в секунду. Чтобы обеспечить общую длительность интервала 10 секунд, в счётчик COUNTER надо ввести коэффициент счёта 50. Все эти вводимые величины показаны на вкладках, представляющих собой фрагменты окон описания блоков FLICKER и COUNTER.
Рис.2.11
Пока счётчик не закончил очередной счёт, его выходной сигнал B 02имеет уровень OFF,и для того, чтобы начать формирование выходного импульса, начиная с первого полупериода, установка триггера (B 03) осуществляется через инвертор (B 04). Выходной сигнал R - S триггера (B 03) делится по частоте вдвое элементом ALT (B 07), представляющим собой аналог D – триггера. Блоки задержки (B 05) и «дифференцирования» (B 06) применены для сброса счётчика в нулевое состояние.
По рассмотренному примеру можно сформулировать принцип программирования методом функциональных блоковых диаграмм. В решаемой задаче условно выделяются типовые процедуры по преобразованию сигнала, последовательное выполнение которых позволяет получить требуемое выходное воздействие, которое контроллер должен оказать на управляемое устройство объекта. Затем по этим типовым операциям подбираются программно реализованные средой программирования блоки, ориентированные на выполнение этих операций. В результате соответствующего соединения блоков между собой получается готовая программа работы контроллера.
Любая задача может быть решена различными способами, более или менее удачными. Программы могут отличаться набором использованных блоков, их количеством, степенью оправданности их применения. Например, задача, решаемая программой на рис. 2.11, может быть запрограммирована гораздо проще, и принять вид, изображённый на рис. 2.12.
Рис.2.12
По сравнению с рис.2.11 в полях задания длительностей импульса и паузы блока FLICKER вместо единиц введены коэффициенты 100. После умножения их на 100ms = 0,1s получаются длительности импульса и паузы как раз равными требуемым 10 секундам. В этом варианте экономится объём занимаемой памяти, программа просто выглядит, легко читается.
Чтобы минимизировать излишества, допускаемые при составлении программ, надо знать назначение блоков, особенностей их применения в тех или иных условиях.
Дата добавления: 2014-12-20; просмотров: 746;