Страница 351 из 699 ПерваяПервая ... 251301341349350351352353361401451 ... ПоследняяПоследняя
Показано с 3,501 по 3,510 из 6982

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

  1. #3501

    По умолчанию

    Спасибо! Надеюсь привыкну к новой версии. Ещё бы найти пару тройку видео по быстрому хорошему старту, те что нашёл не особо помогли вникнуть в идеологию версии 3.5

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

    По умолчанию

    Цитата Сообщение от Robur Посмотреть сообщение
    Спасибо! Надеюсь привыкну к новой версии. Ещё бы найти пару тройку видео по быстрому хорошему старту, те что нашёл не особо помогли вникнуть в идеологию версии 3.5
    А что именно вы называете "идеологией"?

  3. #3503

    По умолчанию

    Подскажите, кто чем может: Каким образом в таблице выделить строки цветом в зависимости от значения булевой колонки?
    Т.е. могу красить ячейку, но как узнать индекс закрашиваемой в этот момент строки?

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

    По умолчанию

    Цитата Сообщение от PavelGO Посмотреть сообщение
    Подскажите, кто чем может: Каким образом в таблице выделить строки цветом в зависимости от значения булевой колонки?
    Т.е. могу красить ячейку, но как узнать индекс закрашиваемой в этот момент строки?
    Посмотрите это видео до конца:
    https://youtu.be/-qPyjuiPbbk

  5. #3505

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    А что именно вы называете "идеологией"?
    Может я и не совсем правильно выразился.... В КДС 2.3 было всё просто и понятно, в конфигурации ПЛК все входа и выхода поименовал как мне понятно (например DI1_V100_Open, AI5_T125, AO_F224_OP) и дальше не морочась во всех POU используешь. в 3.5 смотрю видеопримеры - одно, создаю проект с ПЛК21004 - уже всё даже визуально другое, появились понятия аппликейшн, каналы и прочее. Зачем то (может для удобства а может есть в этом смысл явный) разделено на лефтсайд и райтсайд, в них есть отдельно конфигурация и отдельно соотнесение входов-выходов, наименование входа (или канала, или чего?) имеет вид Application.TargetVars.stLeftSide.xFastDi01, наверняка же не просто так? Или я так же могу это переименовать как DI1_V100_Open и далее использовать? И так далее. Наверняка если прочесть и осмыслить все мануалы всё станет ровненько и понятненько, однако (как в моём случае) есть срочный заказ типа "сделай вчера" а по тому и напряг. С версией 2.3 не напрягаясь в своё время разобрался за неделю с нуля (до того вообще КДС не видел ни разу) до начала полноценной разработки. Рою инеты и пока не нашёл пошагового, так сказать "для прапорщиков", мануала с короткими пояснениями. Вот примерно что я имел ввиду )).
    Да, есть ещё и структуированные данные. в Application - TargetVariables - TRGLeftSide описаны опять входы и выходы. Вот здесь я так понимаю я могу назвать вход или выход как пожелаю. Но опять же вопрос, в чём основной смысл имён (тем более длинных, разделённых точками и в чём различие их с именами в ветке PLC210_04 - LeftSide?

    П.С. Живого контроллера и модулей на руках пока нет, они монтируются на объекте. Возможно когда потычу живую технику всё встанет на свои места....
    Последний раз редактировалось Robur; 21.09.2021 в 08:45.

  6. #3506

    По умолчанию

    Robur Ну, типа идеология сменилась на:
    а) Дерево объектов теперь ЕДИНОЕ для - проекта, каждого ПЛК (можно сделать проект с кучей ПЛК разом), всех устройств (включая внутренние устройства ПЛК - экран, динамик, сеть, диски, модем, порты и прочее), всех элементов проекта (POU, визуализации, списки текстов, программы и прочее).
    б) Устройство (то, что раньше могло быть "Modbus Slave", или модем, или диски) теперь содержит дофига информации о себе. Включая и вкладки Каналов, и вкладки сопоставления переменных, где ты путаешься.
    Ко многим устройствам теперь можно обращаться по имени. И поэтому имя устройств ВАЖНО. То есть, когда ты добавляешь Serial_COM_Port - сразу его переименовывай нормально в что-то типа RS485_Main (например), потому что потом можно прям в программе написать что-то вида RS485_Main.xEnable := TRUE и включить или отключить этот порт из работы (опроса).
    Точно так же сами Modbus-устройства стоит переименовывать, потому что все их настройки тоже доступны через точку.
    Например, у меня есть датчик WirenBoard, для которого неизвестен адрес на шине (потом заказчик его будет вводить). Датчик называется WB_Zal, и в коде у меня написано прям так (условно - я спросонья пишу по памяти, а комп с CodeSys отключен):
    WB_Zal.DeviceAddress := NewAdress;
    И вот прям на лету я могу теперь поменять адрес, по которому этот датчик работает. Благодаря новому концепту.
    Так же через точку можно тырить ошибки (.xError - TRUE или FALSE), включать и выключать опрос (если у тебя универсальный проект и устройства могут ставиться или не ставиться).
    в) Теперь переменные в сопоставлении можно вписать разными способами: или сначала описать нужные прям в коде программы, а потом привязать к каналам устройства (этого не было в прошлой версии), или прям сразу назвать новую переменную в сопоставлении. Штатный шаблон предлагает один из примеров сопоставления, но мне он не нравится - и я делаю как раньше. Например, к каждому биту входов привязыаю переменные типа ButtonStart, ButtonStop и так далее.
    г) Вкладка POU, которая осталась (и где есть второе дерево) нужна в основном для того, чтобы удобно было накидывать туда программные компоненты - FB, Функции, созданные типы данны или ENUM. Там тоже можно всё по папочкам раскладывать.
    д) И ещё будь внимателен! Теперь работа по Modbus тут НЕ такая как в CDS 2.3 (когда-нить я это всё опишу, дада...)!!!
    * Если раньше CDS 2.3 пытался опросить один канал (регистр) устройства, не видел ответа и отваливался с ошибкой (и шёл к опросу следующего устройства, а не канала) - то здесь опрос будет долбиться по всем каналам одного устройства даже если оно не отвечает вообще. С указанным таймаутом. То есть если ты читаешь из устройства три регистра, и таймаут стоит 500 мсек - то если устройство НЕ отвечает вообще (отключено или сдохло) - то новый CodeSys ткнётся в канал 1, выждет таймаут, ткнётся в канал 2, выждет таймаут, ткнётся в канал 3, выждет таймаут - и только потом пойдёт опрашивать остальные устройства. То есть задержка будт равна "Таймаут х Число каналов опроса" = 500 х 3 = 1500 мсек!
    * Сама скорость опроса стала медленнее, чем в CDS2.3. Я на нескольких проектах с этим нагорел, но сотрудники ОВЕН и участники форума мне подсказали решения (использовать библиотеки для ручного опроса), и задачу более-менее решил.

    Конкретно в шаблонах проектов ПЛК ОВЕН сделал:
    а) LeftSide и RightSide - это они так для ПЛК2хх сделали, потому что это физически разные платы внутри ПЛК (а для проекта - устройства), а тип плат зависит от модели ПЛК - где-то дискретные, где-то аналоговые.
    б) TargetVars - это тоже шаблон. Рассчитан на то, чтобы формализовать все-все примеры ОВЕНа (наверное, это моя догадка) и чтобы новичок увидел все TargetVars в одном месте и не путался, что загрузка процессора у него лежит в устройстве "Debug", а текущее время - в узле часов (ща на память не вспомню как зовётся, хех). Это всё можно удалить и делать как нравится.

    Вот, надобавлял скриншотов структуры проекта.
    CDS-3.5-UI-Demo-1.gif CDS-3.5-UI-Demo-2.gif CDS-3.5-UI-Demo-3.gif CDS-3.5-UI-Demo-4.gif WB-Address.gif
    Последний раз редактировалось Cs-Cs; 21.09.2021 в 08:59. Причина: Выпендрился, добавил скриншоты
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

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

    По умолчанию

    Зачем то (может для удобства а может есть в этом смысл явный) разделено на лефтсайд и райтсайд
    У ПЛК физически есть левая и правая плата входов-выходов.
    При этом они совпадают у разных моделей (например, у ПЛК210-01, -02 и -04 одна и та же левая плата).
    Разделение на два узла упрощает разработку и перенос проектов между модификациями.

    в них есть отдельно конфигурация и отдельно соотнесение входов-выходов
    ...как и в CoDeSys V2.3

    2021-09-21_8-40-31.png

    наименование входа (или канала, или чего?) имеет вид Application.TargetVars.stLeftSide.xFastDi01, наверняка же не просто так? Или я так же могу это переименовать как DI1_V100_Open и далее использовать?
    Такие "наименования" есть в шаблонах проектов, где к каналам входов-выходов уже привязаны глобальные переменные.
    В данном случае:

    • Application - название приложения ПЛК (носит чисто информативный характер);
    • TargetVars - название списка глобальных переменных;
    • stLeftSide - название экземпляра структуры, содержащей параметры левой платы входов-выходов;
    • xFastDi01 - название элемента структуры (переменная, характеризущая состояние первого быстрого дискретного входа).


    Вы можете объявить DI1_V100_Open - например, в программе PLC_PRG - и привязать ее вместо переменной шаблона.
    Тогда в канале будет отображаться полный путь к вашей переменной: Application.PLC_PRG.DI1_V100_Open.

    В рамках программы PLC_PRG обратиться к переменной можно будет по одному ее имени: DI1_V100_Open (без дополнительных префиксов)

    Рою инеты и пока не нашёл пошагового, так сказать "для прапорщиков", мануала с короткими пояснениями.
    Самый короткий мануал есть в форме видео: https://youtu.be/tm7a98Ojp7g

  8. #3508

    По умолчанию

    Cs-Cs, спасибо! Обязательно изучу выкладки!

  9. #3509

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    В рамках программы PLC_PRG обратиться к переменной можно будет по одному ее имени: DI1_V100_Open (без дополнительных префиксов)
    Т.е. за пределами PLC_PRG, например если в отдельном FB то необходимо полный путь прописывать, как указан в канале?

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

    По умолчанию

    Цитата Сообщение от Robur Посмотреть сообщение
    Т.е. за пределами PLC_PRG, например если в отдельном FB то необходимо полный путь прописывать, как указан в канале?
    Не надо ничего прописывать - просто нажмите на кнопку рядом с названием канала и выберите переменную из выпадающего списка.
    Полный путь пропишется автоматически.

    2021-09-21_12-56-32.png

Страница 351 из 699 ПерваяПервая ... 251301341349350351352353361401451 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3177
    Последнее сообщение: Вчера, 12:47
  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

Ваши права

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