Страница 605 из 856 ПерваяПервая ... 105505555595603604605606607615655705 ... ПоследняяПоследняя
Показано с 6,041 по 6,050 из 8555

Тема: CODESYS V3.5. Вопросы и ответы

  1. #6041

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    Например, в библиотеке OSCAT Basic есть ФБ RDM2 для этой цели.
    Но задание "шага" там не поддерживается.
    Какие параметры генератора (от/до/шаг) вам могут потребоваться? Приведите пару примеров.
    Ну к примеру генерировать число от 20 до 23, например 21.5, 22, 20, 22.5, 22, 22.8, 21.9

  2. #6042
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,611

    По умолчанию

    Цитата Сообщение от fergus23 Посмотреть сообщение
    Ну к примеру генерировать число от 20 до 23, например 21.5, 22, 20, 22.5, 22, 22.8, 21.9
    И какой в данном случае шаг?

  3. #6043

    По умолчанию

    Здравствуйте !
    Столкнулся с неумением пользоваться интернетом и поисковиками, так как не могу найти ответ на вопрос: есть ли в CoDeSys 3.5 переменная или что-то на неё похожее, которая сбрасывается в FALSE после прохождения первого цикла программы? Своего рода флаг сброса первого прохождения цикла MainTask. Необходима для инициализации функциональных блоков приводов.
    И если её нет, то какие есть способы имитации или замены её при помощи конструкций? Как поймать момент перехода программы на следующий цикл выполнения?
    Спасибо

  4. #6044

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    И какой в данном случае шаг?
    Если нельзя его на лету менять, то пусть будет 0.5
    Т.е хотелось бы узнать, какие есть возможности рандома, чтобы допустим эмулировать показания термометра
    Последний раз редактировалось fergus23; 02.08.2023 в 11:29.

  5. #6045
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,611

    По умолчанию

    Цитата Сообщение от fergus23 Посмотреть сообщение
    Если нельзя его на лету менять, то пусть будет 0.5
    Т.е хотелось бы узнать, какие есть возможности рандома, чтобы допустим эмулировать показания термометра
    Можете с помощью RDM2 генерировать два значения: из диапазона 20...23 и из диапазона 0...1. Если 1 - то к первому значению прибавляете 0.5. Ну или более сложную логику рандомизации, если требуется.

  6. #6046
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,611

    По умолчанию

    Цитата Сообщение от Арсентий Свидетцев Посмотреть сообщение
    Здравствуйте !
    Столкнулся с неумением пользоваться интернетом и поисковиками, так как не могу найти ответ на вопрос: есть ли в CoDeSys 3.5 переменная или что-то на неё похожее, которая сбрасывается в FALSE после прохождения первого цикла программы? Своего рода флаг сброса первого прохождения цикла MainTask. Необходима для инициализации функциональных блоков приводов.
    И если её нет, то какие есть способы имитации или замены её при помощи конструкций? Как поймать момент перехода программы на следующий цикл выполнения?
    Спасибо
    Добрый день.
    См. здесь:
    https://www.owen.ru/forum/showthread...l=1#post304642

  7. #6047

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Можете с помощью RDM2 генерировать два значения: из диапазона 20...23 и из диапазона 0...1. Если 1 - то к первому значению прибавляете 0.5. Ну или более сложную логику рандомизации, если требуется.
    Благодарю, буду с рдм2 заниматься

  8. #6048

    По умолчанию

    Добрый день.
    Codesys 3.5 SP17 Patch 3
    Есть необходимость сделать указатель на BOOL. Читая различные источники так и не понял допустимо ли это? В книге Сергея Романова написано, что "POINTER TO BOOL не работает и указатель должен ссылаться, как минимум, на BYTE". Но BOOL, как известно, по памяти занимает этот самый BYTE. Где то написано, что нельзя ссылаться на BIT, а про BOOL ничего не сказано.

    Смысл этого вот в чем. Есть двумерный массив состояний дискретных входов модулей ввода вида aDiscreteInputs[<номер модуля>, <номер входа>] OF BOOL; Все элементы массива привязаны через соотнесение входов/выходов.
    Есть типовые сигналы, которые из проекта в проект могут быть поданы на разные входы модулей. С выходами то же самое. Хочется иметь универсальный код, который легко адаптировать под проект щита по входам и выходам. В дальнейшем есть идея сделать их настраиваемыми в веб-визуализации (что то типа "Клапан открыт: Номер модуля А ___, Номер входа DI ___" и т.д.)

    Пока пришло в голову такое:

    PROGRAM PLC_PRG
    VAR
    pt_x_Opened: POINTER TO BOOL; //Клапан открыт
    pt_x_Closed: POINTER TO BOOL; //Клапан закрыт
    pt_x_ON: POINTER TO BOOL; //Открыть
    pt_x_OFF: POINTER TO BOOL; //Закрыть

    В самой программе при инициализации выполняем один раз:
    pt_x_Opened := ADR(aDiscreteInputs[1,1]);
    pt_x_Closed := ADR(aDiscreteInputs[1,2]);
    pt_x_ON := ADR(aDiscreteOutputs[2,3]);
    pt_x_OFF := ADR(aDiscreteOutputs[2,4]);

    Ну а дальше оперировать уже сигналами через разыменовывание
    IF pt_x_Opened^ THEN и т.д.
    pt_x_OFF^ := TRUE; и т.д.

    Это для примера. Сигналов на самом деле много, все они упакованы в структуры, а структуры в массивы.

    Имеет ли такая реализация право на существование? Компилятор вроде не ругается пока.

  9. #6049

    По умолчанию

    Здравствуйте, подскажите как можно реализовать обрыв связи с слайв устройством, на языке FBD

  10. #6050
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,611

    По умолчанию

    Цитата Сообщение от Задумкин Сергей Посмотреть сообщение
    Добрый день.
    Codesys 3.5 SP17 Patch 3
    Есть необходимость сделать указатель на BOOL. Читая различные источники так и не понял допустимо ли это? В книге Сергея Романова написано, что "POINTER TO BOOL не работает и указатель должен ссылаться, как минимум, на BYTE". Но BOOL, как известно, по памяти занимает этот самый BYTE. Где то написано, что нельзя ссылаться на BIT, а про BOOL ничего не сказано.

    Смысл этого вот в чем. Есть двумерный массив состояний дискретных входов модулей ввода вида aDiscreteInputs[<номер модуля>, <номер входа>] OF BOOL; Все элементы массива привязаны через соотнесение входов/выходов.
    Есть типовые сигналы, которые из проекта в проект могут быть поданы на разные входы модулей. С выходами то же самое. Хочется иметь универсальный код, который легко адаптировать под проект щита по входам и выходам. В дальнейшем есть идея сделать их настраиваемыми в веб-визуализации (что то типа "Клапан открыт: Номер модуля А ___, Номер входа DI ___" и т.д.)

    Имеет ли такая реализация право на существование? Компилятор вроде не ругается пока.
    Добрый день.
    В CODESYS V3.5 объявление POINTER TO BOOL - корректно.

Страница 605 из 856 ПерваяПервая ... 105505555595603604605606607615655705 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 4027
    Последнее сообщение: Сегодня, 15:02
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 849
    Последнее сообщение: 16.11.2025, 08:58
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 273
    Последнее сообщение: 08.09.2025, 13:21
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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