Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Генератор случайных чисел

  1. #1

    По умолчанию Генератор случайных чисел

    Здравствуйте,
    Контроллер ПЛК220-30.Р.М

    Пытаюсь сделать проверку связи Контроллер <--> ПК, путем отправки случайного числа в программу установленную на компьютер.
    Сделал следующее : в контроллере создал переменную "Связь" далее просто написал Связь:= Связь+1;
    Все работает, но связь проверяется до тех пор пока переменная "Связь" не достигает видимо конечного максимального значения и перестаёт изменяться.

    Как можно сделать чтоб переменная "Связь" изменялась постоянно, типа : Связь:= (какой-то генератор случайных чисел);

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    RND не? вроде должна быть такая функция. Или счетчик со сбросом и проверка что новое число отличается от старого

  3. #3
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    https://docviewer.yandex.ru/view/102...In0%3D&lang=ru
    Раньше эту книжку давали всем на курсах Овен.
    стр. 210

  4. #4

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    ...
    Раньше эту книжку давали всем на курсах Овен.
    стр. 210
    Только не "генератор Петрова", только не это.
    Понятно, что для конкретной задачи без разницы (должно быть достаточно даже простого +1), но нет никакого смысла в том, чтобы вообще когда-либо использовать генератор Петрова (и вообще помнить о его существовании). Единственный случай когда генератор Петрова нужен -- на лабораторных для того, чтобы показать как НЕ надо делать генераторы случайных чисел.

    Есть гораздо более хорошие генераторы, которые столь же легко реализуются в ПЛК/ПР (для Xorshift, например, нужно несколько сдвигов и несколько XOR'ов): http://www.owen.ru/forum/showthread....l=1#post215894

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    Владимир Ситников ну на кой это все автору ? ему банально контролировать наличие связи путем изменения переменной. Зачем ему возможности криптографии, сдвигов и подвигов ?

  6. #6

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Владимир Ситников ну на кой это все автору ? ему банально контролировать наличие связи путем изменения переменной. Зачем ему возможности криптографии, сдвигов и подвигов ?
    Это вопрос? Или риторический?

    1) Я отвечал не автору, а тов. lara197a
    2) Я же сказал, что "должно быть достаточно даже простого +1"
    3) А вот использовать "генератор Петрова" вообще нет никакого смысла. Вне зависимости от целей использования.

  7. #7

    По умолчанию

    а зачем такие сложности с числами? просто 2мя битами связь контролируется прекрасно.

  8. #8

    По умолчанию

    Мне не важно каким будет тип данных переменной "Связь". Главное чтоб эта переменная постоянно менялась и все.
    Может как вариант попробовать считать секунды с внутренних часов контроллера? Есть такая возможность?

    а максимально число я не знаю какое, когда увидел что нет связи , подключился к контроллеру и увидел что переменная "Связь" просто остановилась и перестала менять своё значение.
    Последний раз редактировалось Stas; 24.12.2018 в 08:39.

  9. #9
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Stas Посмотреть сообщение
    Мне не важно каким будет тип данных переменной "Связь". Главное чтоб эта переменная постоянно менялась и все.
    Может как вариант попробовать считать секунды с внутренних часов контроллера? Есть такая возможность?

    а максимально число я не знаю какое, когда увидел что нет связи , подключился к контроллеру и увидел что переменная "Связь" просто остановилась и перестала менять своё значение.
    Тогда этот код ничуть не хуже подсчета секунд внутренних часов контроллера
    Код:
    PROGRAM PLC_PRG
    VAR
    	myTIMER: TON;
    	Sviaz: WORD;
    END_VAR
    
    myTIMER(in:= NOT myTIMER.Q, PT:= t#500ms);
    Sviaz:= Sviaz + BOOL_TO_WORD(myTIMER.Q);
    ЗЫ.
    Хотя можно и без таймера
    Код:
    PROGRAM PLC_PRG
    VAR
    	Sviaz: WORD;
    END_VAR
    
    Sviaz:= TIME_TO_WORD(TIME()) / 1000;
    ЗЫ
    В обоих вариантах максимальное число 65535, затем счет будет повторяться
    Т.е. 0, 1, 2,...65535, 0,1, 2,...65535,..
    Последний раз редактировалось petera; 24.12.2018 в 10:40.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от Stas Посмотреть сообщение
    Мне не важно каким будет тип данных переменной "Связь". Главное чтоб эта переменная постоянно менялась и все.
    Может как вариант попробовать считать секунды с внутренних часов контроллера? Есть такая возможность?

    а максимально число я не знаю какое, когда увидел что нет связи , подключился к контроллеру и увидел что переменная "Связь" просто остановилась и перестала менять своё значение.
    так может дело не в
    переменная "Связь" не достигает видимо конечного максимального значения и перестаёт изменяться
    а в банальном отсутствии модуля button в конфигурации, если это какая то старая модель плк. И к тому же, не встречал ПЛК220-30.Р.М еще в ассортименте Овена
    Последний раз редактировалось capzap; 25.12.2018 в 08:33.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ввод чисел
    от Deoxes в разделе СПК1хх
    Ответов: 18
    Последнее сообщение: 29.06.2022, 13:34
  2. Ввод чисел с запятой в ИП320
    от Newcomer в разделе Панели оператора (HMI)
    Ответов: 5
    Последнее сообщение: 04.12.2018, 13:38
  3. Ввод отрицательных чисел в ИП320
    от Newcomer в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 06.09.2018, 14:31
  4. Ввод чисел в ИП320
    от Frayl в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 12.08.2012, 10:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •