Показано с 1 по 10 из 353

Тема: Вопрос-ответ по Телемеханика ЛАЙТ

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Доброго времени суток.
    2 вопроса по телемеханике лайт.
    Первый: в контроллере создаю строковую переменную, как её можно изменить из визуализации?
    3.png

    Второй: есть скрипт, который в зависимости от настройки делит переменную на 1, 10 или 100. Переменная - ток, читается из прибора БЗП-01. При отладке скрипта выходная переменная нормально делится и отображаются все знаки после запятой. Но в таблице "Входы/выходы функционального блока" после запятой нули. Например, получили переменную 1234, в окне отладки скрипта при делении на 100 получим 12,34, а в таблице "Входы/выходы функционального блока" будет только 12,00. В чем проблема?

    Программа для одного канала:

    var Inom, ain, bin, cin: integer;
    var aout, bout, cout: real;
    {---------- main program -----------}
    begin
    ReadInteger('Inom',Inom);
    ReadInteger('Iain',ain);
    if Inom < 31 then begin
    aout := ain / 100;
    end
    else begin
    if Inom < 301 then begin
    aout := ain / 10;
    end;
    end;
    if Inom > 300 then begin
    aout := ain;
    end;
    WriteFloat('Iaout', aout);
    end.

    Типы переменных:
    переменные.png

  2. #2
    Сергей Сисейкин
    Гость

    По умолчанию

    Цитата Сообщение от Neru Посмотреть сообщение
    Доброго времени суток.
    2 вопроса по телемеханике лайт.
    Первый: в контроллере создаю строковую переменную, как её можно изменить из визуализации?
    3.png

    Второй: есть скрипт, который в зависимости от настройки делит переменную на 1, 10 или 100. Переменная - ток, читается из прибора БЗП-01. При отладке скрипта выходная переменная нормально делится и отображаются все знаки после запятой. Но в таблице "Входы/выходы функционального блока" после запятой нули. Например, получили переменную 1234, в окне отладки скрипта при делении на 100 получим 12,34, а в таблице "Входы/выходы функционального блока" будет только 12,00. В чем проблема?

    Программа для одного канала:

    var Inom, ain, bin, cin: integer;
    var aout, bout, cout: real;
    {---------- main program -----------}
    begin
    ReadInteger('Inom',Inom);
    ReadInteger('Iain',ain);
    if Inom < 31 then begin
    aout := ain / 100;
    end
    else begin
    if Inom < 301 then begin
    aout := ain / 10;
    end;
    end;
    if Inom > 300 then begin
    aout := ain;
    end;
    WriteFloat('Iaout', aout);
    end.

    Типы переменных:
    переменные.png
    Здравствуйте.

    К сожалению переменные типа string в Телемеханике не работают.

    По второму вопросу, уже ранее писали (20.02.2020), о том что при отладке используется одни исполнители скрипта, в рабочем режиме другие.
    пока данная проблема не решена.

  3. #3

    По умолчанию

    Цитата Сообщение от Сергей Сисейкин Посмотреть сообщение
    Здравствуйте.

    К сожалению переменные типа string в Телемеханике не работают.

    По второму вопросу, уже ранее писали (20.02.2020), о том что при отладке используется одни исполнители скрипта, в рабочем режиме другие.
    пока данная проблема не решена.
    Планируется ли наладить работу со строковыми переменными?

  4. #4

    По умолчанию

    нет, не планируется ( на данный момент и в ближайшее время точно нет)
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  5. #5

    По умолчанию

    Цитата Сообщение от Neru Посмотреть сообщение
    Доброго времени суток.
    2 вопроса по телемеханике лайт.
    Первый: в контроллере создаю строковую переменную, как её можно изменить из визуализации?
    3.png

    Второй: есть скрипт, который в зависимости от настройки делит переменную на 1, 10 или 100. Переменная - ток, читается из прибора БЗП-01. При отладке скрипта выходная переменная нормально делится и отображаются все знаки после запятой. Но в таблице "Входы/выходы функционального блока" после запятой нули. Например, получили переменную 1234, в окне отладки скрипта при делении на 100 получим 12,34, а в таблице "Входы/выходы функционального блока" будет только 12,00. В чем проблема?

    Программа для одного канала:

    var Inom, ain, bin, cin: integer;
    var aout, bout, cout: real;
    {---------- main program -----------}
    begin
    ReadInteger('Inom',Inom);
    ReadInteger('Iain',ain);
    if Inom < 31 then begin
    aout := ain / 100;
    end
    else begin
    if Inom < 301 then begin
    aout := ain / 10;
    end;
    end;
    if Inom > 300 then begin
    aout := ain;
    end;
    WriteFloat('Iaout', aout);
    end.

    Типы переменных:
    переменные.png
    Как вариант, можно изменить скрипт следующим образом - и он будет работать уже правильно:

    var Inom, ain, bin, cin: integer;
    var aout, bout, cout, temp: real;
    {---------- main program -----------}
    begin
    ReadInteger('Inom',Inom);
    ReadInteger('Iain',ain);
    temp:=ain;

    if Inom < 31 then begin
    aout := temp / 100;
    end
    else begin
    if Inom < 301 then begin
    aout := ain / 10;
    end;
    end;
    if Inom > 300 then begin
    aout := ain;
    end;
    WriteFloat('Iaout', aout);
    end.

    test.png

  6. #6

    По умолчанию

    Спасибо, помогло

Похожие темы

  1. CODESYS V3.5. Вопросы и ответы
    от ООО "БЛС инжинеринг" в разделе ПЛК (среда CODESYS V3.5)
    Ответов: 8544
    Последнее сообщение: 03.12.2025, 10:01
  2. Экспресс вопрос (ответ)
    от rovki в разделе Программируемые реле
    Ответов: 8684
    Последнее сообщение: 03.12.2025, 09:35
  3. ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)
    от Serge_UA в разделе ПЛК (среда CoDeSys V2.3)
    Ответов: 11761
    Последнее сообщение: 01.12.2025, 07:41
  4. вопрос-ответ , или а поговорить????
    от Павел Братковский в разделе Трёп (Курилка)
    Ответов: 10
    Последнее сообщение: 24.01.2018, 11:05
  5. Вопрос-ответ по Телемеханика ЛАЙТ
    от Popov Boris в разделе В разработке
    Ответов: 80
    Последнее сообщение: 03.11.2016, 15:24

Метки этой темы

Ваши права

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