CODESYS
Генератор случайных чисел на CFC Нужно
реализовать генератор случайных (псевдослучайных) чисел (ГСЧ) на языке
программирования CFC,
вырабатывающий случайные величины в диапазоне [0; 64]. Сам генератор случайных чисел реализуется по формуле:
Примерные значения для которых можно взять следующие: A=5, B=3, C=64; Диапазон
полученных чисел будет [0; C]. Функция
«mod» возвращает
остаток от деления. В качестве начального значения «y» возьмем число, полученное после
преобразования времени из таймера TON и преобразованного в целочисленный
тип стандартной функцией TIME_TO_INT. Для удобства можно создать свой функциональный блок на языке FBD (рис.1). Входом будет служить время, получаемое из таймера TON, а на выходе будет генерироваться случайная величина. В качестве начального значения случайной величины будем брать время, приведенное к целочисленному типу. Рис.1. Функциональный
блок RANDOM Далее
разместим на рабочей области компонент таймер TON, пользовательский функциональный
блок RANDOM, вход и
выход, и соединим все как надо (рис.2). Программа
работает следующим образом: при появлении на входе IN таймера
значения ИСТИНА, на его выходе ET
(Time Exit) начнется отсчет времени
в миллисекундах, который поступает на функциональный блок RANDOM, с выхода которого уже выходит
наша случайная величина в диапазоне [0; 64]. Рис.2. Программа генерации случайного числа на CFC Для визуализации работы ГСЧ можно использовать графические компоненты «Тренд» и «Прямоугольник». В компоненте «Тренд» нужно установить диапазон значений по вертикальной оси и переменную для отображения «PLC_PRG.Vihod», а также цвет линии и шаг вспомогательной сетки. Кроме того, можно сохранить сгенерированные случайные величины в отдельный файл «*.trd», если настроить в конфигурировании элемента «Тренд – Регистрация – История – Настройка». В графическом
компоненте «Прямоугольник» нужно установить переменную на ввод и переменную на
изменение цвета «PLC_PRG.Knopka», а также выбрать обычный (серый) и тревожный (зеленый)
цвета. Результат
работы программы показан ниже, на рис.3. Рис.3. Визуализация
работы ГСЧ |
||||