Страница 30 из 708 ПерваяПервая ... 2028293031324080130530 ... ПоследняяПоследняя
Показано с 291 по 300 из 7075

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

  1. #291

    По умолчанию

    добрый день, подскажите пожалуйста, есть входная переменная на ней через определённое время появляется сигнал типа BOOL(True), и по появлению этого сигнала необходимо производить запись из другой переменной в переменную массива, трудность у меня заключается в том, чтобы по приходу сигнала производить запись в разные переменные массива, то есть я понимаю так, появился разрешающий сигнал на запись, произошла запись, потом появился следующий сигнал, должен осуществиться запрет на запись в первую переменную массива и осуществиться разрешение на запись в следующую переменную того же массива, как это осуществить? Пишу программу в CFC.

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

    По умолчанию

    Цитата Сообщение от alek4322 Посмотреть сообщение
    добрый день, подскажите пожалуйста, есть входная переменная на ней через определённое время появляется сигнал типа BOOL(True), и по появлению этого сигнала необходимо производить запись из другой переменной в переменную массива, трудность у меня заключается в том, чтобы по приходу сигнала производить запись в разные переменные массива, то есть я понимаю так, появился разрешающий сигнал на запись, произошла запись, потом появился следующий сигнал, должен осуществиться запрет на запись в первую переменную массива и осуществиться разрешение на запись в следующую переменную того же массива, как это осуществить? Пишу программу в CFC.
    Ну, например так:

    bool.png

    Когда переменная Trigger принимает значение TRUE, то счетчик Index увеличивается на единицу, и переменная Variable записывается в равный Index'у элемент массива Arr.

    Порядок выполнения блоков имеет значение.

    Если у вас сигнал приходит импульсом (т.е. после появления сразу сбрасывается в FALSE), то блоки 4-6 не нужны.

  3. #293

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Ну, например так:

    bool.png

    Когда переменная Trigger принимает значение TRUE, то счетчик Index увеличивается на единицу, и переменная Variable записывается в равный Index'у элемент массива Arr.

    Порядок выполнения блоков имеет значение.

    Если у вас сигнал приходит импульсом (т.е. после появления сразу сбрасывается в FALSE), то блоки 4-6 не нужны.
    Спасибо за помощь, но у меня есть вопрос по поводу увеличения Index на единицу, у меня массив My_Data: ARRAY[0..89] OF My_Type; и я так понял [Index] это [0..89] а как прибавлять к [Index] это [0..89] единицу и ещё, у меня массив (как бы состоит) из структуры и всё это используется для таблицы состоящей из двух столбцов и много строчек, так вот я по появлению сигнала, допустим в 18:00, каждый день произвожу запись в таблицу, у меня в таблицу запись производится но только в одну строку под №0, а по приходу следующего сигнала на следующий день, также в 18:00, у меня в таблицу производится следующая запись, только вот в эту же строку под №0, просто происходит перезапись, а нужно чтобы запись на следующий день происходила в следующую строку под №1 и так далее, помогите с советом пожалуйста, программированием занимаюсь всего 1.5 месяца и поэтому сложновато догадаться самому, а информации по работе с таблицами в визуалке на СПК почти нет или я так умею искать, за ранее благодарен за внимание.
    TYPE My_Type :
    STRUCT
    DAT: DT;
    sred: DWORD;
    END_STRUCT
    END_TYPE

  4. #294
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от alek4322 Посмотреть сообщение
    Спасибо за помощь, но у меня есть вопрос по поводу увеличения Index на единицу, у меня массив My_Data: ARRAY[0..89] OF My_Type; и я так понял [Index] это [0..89] а как прибавлять к [Index] это [0..89] единицу и ещё, у меня массив (как бы состоит) из структуры и всё это используется для таблицы состоящей из двух столбцов и много строчек, так вот я по появлению сигнала, допустим в 18:00, каждый день произвожу запись в таблицу, у меня в таблицу запись производится но только в одну строку под №0, а по приходу следующего сигнала на следующий день, также в 18:00, у меня в таблицу производится следующая запись, только вот в эту же строку под №0, просто происходит перезапись, а нужно чтобы запись на следующий день происходила в следующую строку под №1 и так далее, помогите с советом пожалуйста, программированием занимаюсь всего 1.5 месяца и поэтому сложновато догадаться самому, а информации по работе с таблицами в визуалке на СПК почти нет или я так умею искать, за ранее благодарен за внимание.
    TYPE My_Type :
    STRUCT
    DAT: DT;
    sred: DWORD;
    END_STRUCT
    END_TYPE
    Выложите, пожалуйста, ваш проект, чтобы было, от чего отталкиваться.

    Я правильно понимаю, что вы хотите что-то вроде этого?

  5. #295

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Выложите, пожалуйста, ваш проект, чтобы было, от чего отталкиваться.

    Я правильно понимаю, что вы хотите что-то вроде этого?
    Да, точно вы правильно поняли, только там вы нажимаете кнопку триггер и по её срабатыванию производится запись, а у меня вместо кнопки сигнал приходит по времени каждые сутки допустим в 18:00, но в принципе это одно и тоже.
    структуру объявил так


    Screenshot_1.png

    Массив объявил так

    Screenshot_2.png

    к сажелению полностью выложить проект не могу, делается частями, но вот моя часть это работа с часами реального времени и вот собственно ведение таблицы по времени
    первая часть
    Screenshot_3.jpg
    вторая часть
    Screenshot_4.jpg
    Заранее благодарен за помощь

    экран визуализации выглядит вот так
    Screenshot_5.jpg
    Последний раз редактировалось alek4322; 19.06.2015 в 13:30.

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

    По умолчанию

    Извините, мне кажется, вам будет легче адаптировать код моей ST программы на CFC, чем мне - разобраться в вашей.

    19-06-2015 13-36-35.png

    Если нужно, чтобы изначально таблица была пустой, а не заполнена нулями, то надо делать конвертацию в тип STRING и выводить в таблице его.

  7. #297

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Извините, мне кажется, вам будет легче адаптировать код моей ST программы на CFC, чем мне - разобраться в вашей.

    19-06-2015 13-36-35.png

    Если нужно, чтобы изначально таблица была пустой, а не заполнена нулями, то надо делать конвертацию в тип STRING и выводить в таблице его.
    Спасибо за помощь, попробую адаптировать, правда ST я не очень понимаю, там на скриншотах верхняя часть - это я выдернул системное время преобразовал в секунды с 1970г и вобщем выделил минуты и часы, а потом для проверки поставил для разрешения на запись переменную Rabs, в которой каждую минуту появляется сигнал, и эта часть программы производит запись в таблицу Screenshot_6.jpg, попробовал сделать так Screenshot_7.jpg но не получилось, буду пробовать дальше может что нибудь и получится

  8. #298
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от alek4322 Посмотреть сообщение
    Спасибо за помощь, попробую адаптировать, правда ST я не очень понимаю, там на скриншотах верхняя часть - это я выдернул системное время преобразовал в секунды с 1970г и вобщем выделил минуты и часы, а потом для проверки поставил для разрешения на запись переменную Rabs, в которой каждую минуту появляется сигнал, и эта часть программы производит запись в таблицу Screenshot_6.jpg, попробовал сделать так Screenshot_7.jpg но не получилось, буду пробовать дальше может что нибудь и получится
    Самое главное - когда вы пишите MyData[0], вы записываете данные в нулевую строку структуры (и, соответственно, таблицы). Поэтому очевидно, что у вас данные будут только в этой строке. Нужно использовать MyData[index], где index - переменная типа INT. Меняя ее значение, вы будете менять строку структуры, в которую записываются данные.

  9. #299

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Самое главное - когда вы пишите MyData[0], вы записываете данные в нулевую строку структуры (и, соответственно, таблицы). Поэтому очевидно, что у вас данные будут только в этой строке. Нужно использовать MyData[index], где index - переменная типа INT. Меняя ее значение, вы будете менять строку структуры, в которую записываются данные.
    Спасибо за ответ, я думал об этом, сейчас буду пробовать, а объявить массив нужно так MyData[index] OF My_type или так MyData[index1..index31] OF My_type и ещё хотел спросить, а вот в таблицу в столбец дата в строки записывается значение текущей даты и времени DT#2015-06-19-18:00:00 а возможно чтобы запись велась так 2015-06-19-18:00:00 или отображалась так на СПК

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

    По умолчанию

    Цитата Сообщение от alek4322 Посмотреть сообщение
    Спасибо за ответ, я думал об этом, сейчас буду пробовать, а объявить массив нужно так MyData[index] OF My_type или так MyData[index1..index31] OF My_type и ещё хотел спросить, а вот в таблицу в столбец дата в строки записывается значение текущей даты и времени DT#2015-06-19-18:00:00 а возможно чтобы запись велась так 2015-06-19-18:00:00 или отображалась так на СПК
    Массив у вас объявлен правильно: MyData[0..89] OF My_type. Но когда вы обращаетесь к его элементу в программе, обращайтесь не по константе [0], а по переменной [index]. Меняя значение переменной index, вы будете менять элемент, в который происходит запись.

    По поводу времени - преобразуйте его в строку (блок DT_TO_STRING) и используйте функцию Delete из библиотеки Standard, чтобы вырезать ненужные символы. Соответственно, вместо массива DT вам потребуется массив STRING.

Страница 30 из 708 ПерваяПервая ... 2028293031324080130530 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3193
    Последнее сообщение: 15.04.2024, 12:51
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 822
    Последнее сообщение: 20.11.2023, 17:48
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 245
    Последнее сообщение: 02.10.2022, 11:34
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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