Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 24 из 24

Тема: Какой синтаксис инициализации массива структур

  1. #21

    По умолчанию

    Цитата Сообщение от allozavr Посмотреть сообщение
    Спасибо огромное! Вы случайно не знаете книжку, где описаны нюансы подобные этому?
    Я не думаю, что все эти варианты в принципе имеет смысл описывать.
    Проще в таких случаях воспользоваться редактором инициализации - он автоматически сгенерирует нужное объявление.
    См. здесь: https://youtu.be/KjVlFH2lF4k?t=341

  2. #22

    По умолчанию

    вопрос.jpg
    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Я не думаю, что все эти варианты в принципе имеет смысл описывать.
    Проще в таких случаях воспользоваться редактором инициализации - он автоматически сгенерирует нужное объявление.
    См. здесь: https://youtu.be/KjVlFH2lF4k?t=341
    Я имел ввиду касательно синтаксиса в CodeSys, иногда он не очень очевиден. Вот опять столкнулся с проблемой. Пытаюсь обратиться к переменной IN_OUT на языке ST, компилятор выдает ошибку. При обращений к переменной IN_OUT на FBD таких проблем нет.
    Может быть знаете, как обратится к переменной IN_OUT в ST.

  3. #23

    По умолчанию

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


    Я имел ввиду касательно синтаксиса в CodeSys, иногда он не очень очевиден. Вот опять столкнулся с проблемой. Пытаюсь обратиться к переменной IN_OUT на языке ST, компилятор выдает ошибку. При обращений к переменной IN_OUT на FBD таких проблем нет.
    Может быть знаете, как обратится к переменной IN_OUT в ST.
    Насчет синтаксиса - скоро обновим документ "Первый старт", в нем будет рассмотрено большинство этих нюансов.

    По вашему вопросу - обращение к входам, выходам и входам-выходам нужно производить при вызове ФБ:

    Код:
    VarGlobal.AI_FB[1](VAR_AI := VarGlobal.AI_MOD[1]);

  4. #24

    По умолчанию

    Цитата Сообщение от Jobin Посмотреть сообщение
    Доброй ночи! На второй день знакомства с CoDeSys 3.5 не нашёл ответа на вопрос
    из той же оперы после применения квадратных вот только здесь обнаруженных скобок -

    PROGRAM PLC_PRG
    VAR
    wtpr1: INT := 65;
    wtpr2: INT := 78;
    wtpr3: INT := 25;
    wtpr4: INT := 59;
    wt1:INT;
    wt2:INT;
    wt3:INT;
    wt4:INT;
    wt: ARRAY [1..4] OF INT:= [wt1,wt2,wt3,wt4];//[wt1:=120,wt2:=56,wt3:=84,wt4:=33]
    check:INT;

    END_VAR

    Компилятор ругается на попытку обратиться к элементу через точку - wt.wt1:=wtpr1;
    считает, что wt вообще не структурированная штука. Никаких вариантов синтаксиса
    нигде не обнаружил. Может, я слепой - подскажите, чего не хватает, чтобы записывать
    ..
    просто невнимательность,
    если для массива заданы переменные символами wt1, wt2, ...
    то запись. "wt.wr1 := ..." ошибочная, массив не содержит в себе wR1 чтобы присвоить ему хоть какое значение
    wt.wt4 := wtpr4;" - попробуйте, может понравится


    Цитата Сообщение от Jobin Посмотреть сообщение

    C0018: 'wt.wr1:=wtpr1' is no valid assignment target
    C0062: 'wt' не является структурированной переменной

    Добавлю после экспериментов. Компилятор не бракует такой вариант
    wt[wt4]:=wt4:=wtpr4;
    check:=wt[wt4];

    ?..
    Последний раз редактировалось e.vavilov81; 12.09.2023 в 07:25.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. ПЛК 110, модбас и массивы структур.
    от lttn в разделе ПЛК (среда MasterSCADA 4D)
    Ответов: 7
    Последнее сообщение: 17.10.2019, 22:01
  2. Синтаксис Если()
    от Nikel097 в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 21.11.2017, 19:43
  3. Ответов: 4
    Последнее сообщение: 05.09.2012, 06:17
  4. инициализация массива структур
    от drvlas в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 16.12.2010, 18:31
  5. Ответов: 6
    Последнее сообщение: 05.04.2010, 08:06

Ваши права

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