Спасибо! Надеюсь привыкну к новой версии. Ещё бы найти пару тройку видео по быстрому хорошему старту, те что нашёл не особо помогли вникнуть в идеологию версии 3.5
Спасибо! Надеюсь привыкну к новой версии. Ещё бы найти пару тройку видео по быстрому хорошему старту, те что нашёл не особо помогли вникнуть в идеологию версии 3.5
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Подскажите, кто чем может: Каким образом в таблице выделить строки цветом в зависимости от значения булевой колонки?
Т.е. могу красить ячейку, но как узнать индекс закрашиваемой в этот момент строки?
Посмотрите это видео до конца:
https://youtu.be/-qPyjuiPbbk
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Может я и не совсем правильно выразился.... В КДС 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.
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
У ПЛК физически есть левая и правая плата входов-выходов.Зачем то (может для удобства а может есть в этом смысл явный) разделено на лефтсайд и райтсайд
При этом они совпадают у разных моделей (например, у ПЛК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Рою инеты и пока не нашёл пошагового, так сказать "для прапорщиков", мануала с короткими пояснениями.
Последний раз редактировалось Евгений Кислов; 21.09.2021 в 10:48.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Cs-Cs, спасибо! Обязательно изучу выкладки!
Не надо ничего прописывать - просто нажмите на кнопку рядом с названием канала и выберите переменную из выпадающего списка.
Полный путь пропишется автоматически.
2021-09-21_12-56-32.png
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk