CODESYS

Генератор случайных чисел на CFC

 

            Нужно реализовать генератор случайных (псевдослучайных) чисел (ГСЧ) на языке программирования CFC, вырабатывающий случайные величины в диапазоне [0; 64].

            Сам генератор случайных чисел реализуется по формуле:

 

y = (A*y0 + B) mod C,

 

где A, B, С – константы;

y0 – начальное значение случайной величины (СВ).

 

Примерные значения для которых можно взять следующие: A=5, B=3, C=64;

            Диапазон полученных чисел будет [0; C].

            Функция «mod» возвращает остаток от деления. В качестве начального значения «y» возьмем число, полученное после преобразования времени из таймера TON и преобразованного в целочисленный тип стандартной функцией TIME_TO_INT.

            Для удобства можно создать свой функциональный блок на языке FBD (рис.1). Входом будет служить время, получаемое из таймера TON, а на выходе будет генерироваться  случайная величина. В качестве начального значения случайной величины будем брать время, приведенное к целочисленному типу.

Функциональный блок RANDOM

Рис.1. Функциональный блок RANDOM

 

            Далее разместим на рабочей области компонент таймер TON, пользовательский функциональный блок RANDOM, вход и выход, и соединим все как надо (рис.2).

Программа работает следующим образом: при появлении на входе IN таймера значения ИСТИНА, на его выходе ET (Time Exit) начнется отсчет времени в миллисекундах, который поступает на функциональный блок RANDOM, с выхода которого уже выходит наша случайная величина в диапазоне [0; 64].

Программа генерации случайного числа на CFC

Рис.2. Программа генерации случайного числа на CFC

 

            Для визуализации работы ГСЧ можно использовать графические компоненты «Тренд» и «Прямоугольник». В компоненте «Тренд» нужно установить диапазон значений по вертикальной оси и переменную для отображения «PLC_PRG.Vihod», а также цвет линии и шаг вспомогательной сетки. Кроме того, можно сохранить сгенерированные случайные величины в отдельный файл «*.trd», если настроить в конфигурировании элемента «Тренд – Регистрация – История – Настройка».

В графическом компоненте «Прямоугольник» нужно установить переменную на ввод и переменную на изменение цвета «PLC_PRG.Knopka», а также выбрать обычный (серый) и тревожный (зеленый) цвета.

            Результат работы программы показан ниже, на рис.3.

Визуализация работы ГСЧ

Рис.3. Визуализация работы ГСЧ