16:26 SIEMENS STEP7 SCL пример 1 Генерация случайных чисел | |
//- DB1 контейнер для случайных значений a ------------------------------------- DATA_BLOCK DB1 STRUCT buffer_a : ARRAY[1..10] OF INT := 10(0); // несортированные значения а END_STRUCT BEGIN END_DATA_BLOCK //- FB2 сохранение значений в буфере (DB1) ------------------------------------- FUNCTION_BLOCK FB2 // Случ. знач. a помещается в DB1.buffer_a CONST BUFLENGTH := 10; // длина буфера END_CONST VAR_INPUT NewValue : INT; // случ. значение END_VAR VAR index : INT := 1; // счетчик № сохраненного значения END_VAR BEGIN IF index > BUFLENGTH THEN // очистка буфера на старте index := 1; END_IF; DB1.buffer_a[index] := NewValue; // сохранение значений index := index +1; END_FUNCTION_BLOCK //- FC60 генератор случайных чисел ------------------------------------------- FUNCTION FC60 : VOID; VAR rand_val : INT; END_VAR CONST m:=101; // случ. число 0 to 100 END_CONST BEGIN // вычисление случ. числа rand_val := (ABS(711*DINT_TO_INT(TIME_TO_DINT(SFC64())))) MOD m; FB2.DB11(NewValue := rand_val); // Вызывается FB2 и создает число END_FUNCTION //- OB 35 -------------------------------------------------------------------- ORGANIZATION_BLOCK OB35 Циклическое прерывание 100мс VAR_TEMP info : ARRAY[0..19] OF BYTE; END_VAR BEGIN FC60(); //создание случ. значения a END_ORGANIZATION_BLOCK | |
|
Всего комментариев: 0 | |