Страница 30 из 62 ПерваяПервая ... 20282930313240 ... ПоследняяПоследняя
Показано с 291 по 300 из 689

Тема: Функциональные блоки на языке ST

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    01.11.2022
    Адрес
    <7924127@mail.ru> Минск
    Сообщений
    508

    По умолчанию

    Привет всем.

    Глюк проявился: не хочет создавать переменную с именем STEP.

    Код:
    function_block functionblock1 //имя функционального блока.
    
    // ----------------------------------------------------------------
        var_input //объявление входных переменных
           InADCa,  InADCb,  InADCc,  InADCd  :real; // аналоговые входы
           InMAX  :real;  InMIN  :real;  // пределы входные
           UotMAX :real; UotMIN  :real;  // пределы выходные
           Sek, Min, Hour :udint; // время
        end_var
    // ----------------------------------------------------------------
        var_output //объявление выходных переменных
           OutK1, OutK2, OutK3, OutK4   :bool;  // выходы тразисторные
           SvZf1 :bool;  SvKf2          :bool;  // светодиоды на панели ПР200
           OutADCxA, OutADCxB, OutADCxC :real;
          end_var
    // ----------------------------------------------------------------
    
        var //объявление локальных переменных
             STEP :udint;
        end_var
      
    end_function_block

    ОШИБКА : Имя переменной STEP содержит недопустимые символы

    Несколько раз проверял.

    STEP используется в чреве компилятора для своих нужд?
    Или это какой оператор или константа?

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

    По умолчанию

    Цитата Сообщение от ПавелП Посмотреть сообщение
    Привет всем.

    Глюк проявился: не хочет создавать переменную с именем STEP.

    Код:
    function_block functionblock1 //имя функционального блока.
    
    // ----------------------------------------------------------------
        var_input //объявление входных переменных
           InADCa,  InADCb,  InADCc,  InADCd  :real; // аналоговые входы
           InMAX  :real;  InMIN  :real;  // пределы входные
           UotMAX :real; UotMIN  :real;  // пределы выходные
           Sek, Min, Hour :udint; // время
        end_var
    // ----------------------------------------------------------------
        var_output //объявление выходных переменных
           OutK1, OutK2, OutK3, OutK4   :bool;  // выходы тразисторные
           SvZf1 :bool;  SvKf2          :bool;  // светодиоды на панели ПР200
           OutADCxA, OutADCxB, OutADCxC :real;
          end_var
    // ----------------------------------------------------------------
    
        var //объявление локальных переменных
             STEP :udint;
        end_var
      
    end_function_block

    ОШИБКА : Имя переменной STEP содержит недопустимые символы

    Несколько раз проверял.

    STEP используется в чреве компилятора для своих нужд?
    Или это какой оператор или константа?
    Пробовали почитать документацию на оператор цикла FOR?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3
    Пользователь
    Регистрация
    01.11.2022
    Адрес
    <7924127@mail.ru> Минск
    Сообщений
    508

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Пробовали почитать документацию на оператор цикла FOR?
    Да.
    Я сначала порылся в хелпе, потом проверил циклы.
    Потом уже тут спросил.

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

    По умолчанию

    Цитата Сообщение от ПавелП Посмотреть сообщение
    Да.
    Я сначала порылся в хелпе, потом проверил циклы.
    Потом уже тут спросил.
    Т.е. Вы так прочли что не заметили в конструкции for оператор step?

    Вам не попадалось что переменные регистронезависимы, нельзя в коде объявить две переменные с одним именем но в разных регистрах?

    Вам не попадалось использование такого слова как АТ %?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Т.е. Вы так прочли что не заметили в конструкции for оператор step
    Вот я тоже не нашёл упоминания о step в web версии документации для лоджика... Даже поиск ничего не дал. Возможно это в другой документации и его зарезервировали?

  6. #6
    Пользователь
    Регистрация
    01.11.2022
    Адрес
    <7924127@mail.ru> Минск
    Сообщений
    508

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Т.е. Вы так прочли что не заметили в конструкции for оператор step?

    Вам не попадалось что переменные регистронезависимы, нельзя в коде объявить две переменные с одним именем но в разных регистрах?

    Вам не попадалось использование такого слова как АТ %?
    Мы про Owen Logic?

    Цитата Сообщение от Королёв Кирилл Посмотреть сообщение
    Сейчас работаем над доработкой документации на Owen Logic. Отразим эти моменты в следующих версиях справки.
    А вы имели CoDeSys, вероятно:

    Код:
    VAR_GLOBAL  (* старшим байтом вперёд как в ПР200 - поменять в <Universal ModBUS device> Trace_mode на Native *)
                (* DWORD не работает, только WORD 65536   иногда по ошибке таки прописывается, но не работает    *)
    	TACK, mSek, mSek0, mSek1, mSek2, mSek3, mSek4 :WORD;  (* многозадачность *)
    	St0int, St1int: WORD;     (* счёт внутри прерываний *)
        INTset:BOOL; (* рулить прерыванием *)   INTinit:BOOL:=TRUE;  (* Флаг для инициализации прерывания таймера при запуске основной программы *)
        Po,PoZ,  Pk,PkZ, Io,IoZ, Ik,IkZ           :REAL;
    
    
    (*In1   AT   %IX0.0   : BOOL; (* именование I/O как переменны х *)
      In2   AT   %IX0.1   : BOOL;
      In3   AT   %IX0.2   : BOOL; (* для ПЛК-160 - нет в ПЛК-110-30м *)
      In4   AT   %IX0.3   : BOOL; (* для ПЛК-160 - нет в ПЛК-110-30м *)  *)
    (* замена при прерывании *)    In01,In02,In03,In04 : BOOL:=0; (* дублирование при быстрых входах *)
                                   In1, In2, In3, In4  : BOOL:=0; (* дублирование при быстрых входах *)
    	vIn1,fIn1, vIn2,fIn2, vIn3,fIn3 :WORD:=0; (* Счёт для входов *)  In1_4: BYTE;    (* входная маска для SysPortIn(0); *)
    	Sek: WORD; (* секунды  программные *)        tSTOP, tSTART: BOOL; (* секундомер *)
    
    
      In5   AT   %IX1.0.0 : BOOL;  kAlarm  AT  %IX1.0.0: BOOL; (* дублировать входы *)
      In6   AT   %IX1.0.1 : BOOL;  kStop   AT  %IX1.0.1: BOOL;
      In7   AT   %IX1.0.2 : BOOL;  kStart  AT  %IX1.0.2: BOOL;
      In8   AT   %IX1.0.3 : BOOL;  kPause  AT  %IX1.0.3: BOOL;
      In9   AT   %IX1.0.4 : BOOL;
      In10  AT   %IX1.0.5 : BOOL;
      In11  AT   %IX1.0.6 : BOOL;
      In12  AT   %IX1.0.7 : BOOL;
      In13  AT   %IX1.1.0 : BOOL;
      In14  AT   %IX1.1.1 : BOOL;
      In15  AT   %IX1.1.2 : BOOL;
      In16  AT   %IX1.1.3 : BOOL;
    
    
      OUT1  AT   %QX2.0   : BOOL; (* релейные выходы *)
      OUT2  AT   %QX2.1   : BOOL;
      OUT3  AT   %QX2.2   : BOOL;
      OUT4  AT   %QX2.3   : BOOL;
      OUT5  AT   %QX3.0.0 : BOOL; (*  OutADC  AT  %QX3.0.0 : BOOL;  дублировать выходы *)
      OUT6  AT   %QX3.0.1 : BOOL; (*  Out500  AT  %QX3.0.1 : BOOL; *)
      OUT7  AT   %QX3.0.2 : BOOL; (*  Out380  AT  %QX3.0.2 : BOOL; *)
      OUT8  AT   %QX3.0.3 : BOOL;     OutZUM  AT  %QX3.0.3 : BOOL;
      OUT9  AT   %QX3.0.4 : BOOL; (*  Out2000 AT  %QX3.0.4 : BOOL; *)
      OUT10 AT   %QX3.0.5 : BOOL; (*  AlarmSV AT  %QX3.0.5 : BOOL; *)
      OUT11 AT   %QX3.0.6 : BOOL; (*  Out100  AT  %QX3.0.3 : BOOL; *)
      OUT12 AT   %QX3.0.7 : BOOL;
    
    
      InR  AT   %IX6.0   : BOOL;   ResKEY  AT  %IX6.0   : BOOL; (* ПЛПK110 тумблер Работа/СТОП/СБРОС *)
      ZUM0 AT   %QX7.0   : BOOL; (* утробный звук *)
    
    
      ADC1 AT   %IR4.0   : REAL; (* стр 80(87)  (старший байт переменной типа REAL) устанавливается специальное значение соответствующее исключительной ситуации *)
      ADC2 AT   %IR4.1   : REAL; (* результаты измерения заведомо не верны      –  0x F1 *)
      ADC3 AT   %IR4.2   : REAL; (*   результаты измерения не готовы            –  0x F6 *)
      ADC4 AT   %IR4.3   : REAL; (*   сигнал на входе больше возможного         –  0x FA *)
      ADC5 AT   %IR4.4   : REAL; (*   сигнал на входе меньше возможного         –  0x FB *)
      ADC6 AT   %IR4.5   : REAL; (*   перегрузка в канале измерения тока        –  0x FС *)
      ADC7 AT   %IR4.6   : REAL; (* обрыв датчика в канале измерения напряжения –  0x FD *)
      ADC8 AT   %IR4.7   : REAL;
      AdcIn AT  %IW4.8   :DWORD; (* AI real time (10ms) *)
    (*   Кроме  того,  в  переменной «Status» отображаются  следующие  отказы  модуля  аналогового ввода:
         ?  бит 2 – нет конфигурирования аналоговых входов;  ?  бит 5 – отказ FLASH-памяти dsPIC33;
         ?  биты 8...11 – отказы автокалибровки аналоговых входов ComI, RefI, ComU, RefU.   *)
      DAC1 AT   %QR5.0   : REAL; (* с периодом 50 мс выводятся в ЦАП *)
      DAC2 AT   %QR5.1   : REAL;
      DAC3 AT   %QR5.2   : REAL;
      DAC4 AT   %QR5.3   : REAL;
    
    
      (* --- удалённое управление ПР200 4 шт ---      сетевые переменные *)
      (* объявить только в глобальных невозможно - как группы объявлять? *)
      (* ресурсы > глобальные переменные (задать имя) > свойства объекта > связать с файлом (задать имя) > экспортировать *)
    
    
      ADCa1  AT %QD8.1.0.0   :REAL; (* АЦП1 первый ПР200 512 0x03 *)
      ADCb1  AT %QD8.1.1.0   :REAL; (* АЦП2 первый ПР200 514 0x03 *)
      ADCc1  AT %QD8.1.2.0   :REAL; (* АЦП3 первый ПР200 516 0x03 *)
      ADC4P1 AT %QD8.1.3.0   :REAL; (* АЦП3 первый ПР200 518 0x03 *)
    
    
     Inp1P1 AT  %QW8.1.18.0  :WORD; (* ПР200-1 вход 1 registet 534 *)
     Inp2P1 AT  %QW8.1.19.0  :WORD; (* ПР200-1 вход 2 registet 535 *)
     Inp3P1 AT  %QW8.1.20.0  :WORD; (* ПР200-1 вход 3 registet 536 *)
     Inp4P1 AT  %QW8.1.21.0  :WORD; (* ПР200-1 вход 4 registet 537 *)
     Inp5P1 AT  %QW8.1.22.0  :WORD; (* ПР200-1 вход 5 registet 538 *)
     Inp6P1 AT  %QW8.1.23.0  :WORD; (* ПР200-1 вход 6 registet 539 *)
     Inp7P1 AT  %QW8.1.24.0  :WORD; (* ПР200-1 вход 7 registet 540 *)
     Inp8P1 AT  %QW8.1.25.0  :WORD; (* ПР200-1 вход 8 registet 541 *)
    
    
     Out1P1 AT  %QW8.1.4.0   :WORD; (* ПР200-1 вых 1 registet 520 0x06 *)
     Out2P1 AT  %QW8.1.5.0   :WORD; (* ПР200-1 вых 2 registet 521 *)
     Out3P1 AT  %QW8.1.6.0   :WORD; (* ПР200-1 вых 3 registet 522 *)
     Out4P1 AT  %QW8.1.7.0   :WORD; (* ПР200-1 вых 4 registet 523 *)
     Out5P1 AT  %QW8.1.8.0   :WORD; (* ПР200-1 вых 5 registet 524 *)
     Out6P1 AT  %QW8.1.9.0   :WORD; (* ПР200-1 вых 6 registet 525 *)
     Out7P1 AT  %QW8.1.10.0  :WORD; (* ПР200-1 вых 7 registet 526 *)
     Out8P1 AT  %QW8.1.11.0  :WORD; (* ПР200-1 вых 8 registet 527 *)
    
    
     OutSVz1 AT %QW8.1.12.0  :WORD; (* ПР200-1 вых SVz  registet 528 зелёный *)
     OutSVk1 AT %QW8.1.13.0  :WORD; (* ПР200-1 вых SVk  registet 529 красный *)
    
    
     OutK1P1 AT %QW8.1.14.0  :WORD; (* ПР200-1 вых K1 registet 530  открытый колектор *)
     OutK2P1 AT %QW8.1.15.0  :WORD; (* ПР200-1 вых K2 registet 531  открытый колектор *)
     OutK3P1 AT %QW8.1.16.0  :WORD; (* ПР200-1 вых K3 registet 532  открытый колектор *)
     OutK4P1 AT %QW8.1.17.0  :WORD; (* ПР200-1 вых K4 registet 533  открытый колектор *)
    
    
    
    
    (* fAIR    AT %QB10.1.0   :STRING;
       fNOMER  AT %QD10.2.0   :REAL;
       fITOG   AT %QB10.3.0   :STRING;
       fFIO    AT %QB10.13.0  :STRING:='$20';  *)
    
    
    END_VAR
    Последний раз редактировалось ПавелП; 14.11.2023 в 11:50.

  7. #7
    Пользователь
    Регистрация
    01.11.2022
    Адрес
    <7924127@mail.ru> Минск
    Сообщений
    508

    По умолчанию

    Из хелпа:

    Ключевые слова могуут быть введены в символах верхнего и нижнего регистра. Пробелы и метки табуляции не влияют на синтаксис, они могут использоваться везде.
    Структура выражения: [variable] := [value];
    Выражения состоят из операндов и операторов. Операндом может быть литерал, переменная, структурированная переменная, компонент структурированной переменной, обращение к функции или прямой адрес.

    1. Слово "могуут".
    2. "или прямой адрес" - это как?

  8. #8

    По умолчанию

    Да это всё понятно. Мы не о том, а именно о слове step. Человек, мало занимающийся программированием откуда узнаёт о таком? Могли бы в документации указать список зарезервированных слов, которые нельзя применять, и всё.

  9. #9

    По умолчанию

    Сейчас работаем над доработкой документации на Owen Logic. Отразим эти моменты в следующих версиях справки.
    Инженер по продукту | ПР и Owen Logic
    email: k.korolev@owen.ru

  10. #10
    Пользователь
    Регистрация
    01.11.2022
    Адрес
    <7924127@mail.ru> Минск
    Сообщений
    508

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Да это всё понятно. Мы не о том, а именно о слове step. Человек, мало занимающийся программированием откуда узнаёт о таком? Могли бы в документации указать список зарезервированных слов, которые нельзя применять, и всё.
    Это настолько отличается от "нормального программирования", что только проходя по граблям можно выяснить насколько...

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

Похожие темы

  1. ПЛК73 (Функциональные кнопки)
    от necro в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 18.05.2022, 10:03
  2. Функциональные блоки
    от ribamuka в разделе СПК2xx (архив)
    Ответов: 4
    Последнее сообщение: 08.04.2018, 15:01
  3. Функциональные блоки насосов в CoDeSys
    от Алексей Ермолаев в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.03.2017, 13:50
  4. Функциональные блоки- где искать?
    от Xops в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 01.03.2016, 11:07
  5. СПК функциональные клавиши
    от Lyohin в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 30.03.2015, 15:10

Ваши права

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