Удалить шаблоны и сделать групповой опрос регистров модулей. Читать только нужные регистры.
Разделить все модули на несколько портов.
Вид для печати
Проект градирни - 4 вентилятора на ПЧ, 10 насосов на УПП, порядка 40 э/м задвижек, около 60 аналоговых датчиков 4...20мА во всех контурах, плюс еще некоторое технологическое оборудование. Также будет локальная панель управления по Modbus TCP + скорее всего еще АРМ на базе MasterSCADA 4D (также по Modbus TCP). Связь со всеми ПЧ/УПП по Modbus RTU.
Соответственно нужно управление и контроль за всем этим хозяйством. Супербыстрая реакция не нужна. Но хотелось бы чтобы задержка от изменения показания датчиков или нажатия кнопки была не больше 2 секунд
Добрый день, коллеги!
Вопрос для разминки в понедельник: ускорит ли выполнение программы за счет времени чтения предварительная перегрузка persist и retain переменных в "оперативные" переменные (если это делать единожды после запуска контроллера в модуле инициализации) до старта основного POU программы? Сама логика программы организована методами SFC.
Добрый день!
При нажатии внутри PersistentVars кнопки "Сохранить текущие значения в рецепт" Codesys зависает. Отвисания ещё ни разу не дождался - приходится перезапускать через диспетчер
На соседнем ноутбуке эта операция занимает долю секунды без всяких зависаний
60 аналоговых датчиков - это 8 модулей AI, лучше взять с быстрыми входами (FAI).
40 задвижек - взять подули по 32 DI/DO, не так много их будет.
В общем, думаю, в 2 секунды спокойно можно уложиться.
По собственному опыту - был проект с ПЛК210-04 + 2 панели HMI около 400 регистров + 16 модулей DI/DO/AI/AO по Modbus TCP + 14 УПП на Modbus RTU.
Даже приходилось показания на панели замедлять от FAI, а иначе данные слишком быстро скакали. Вроде делал триггер на отсылку данных ПЛК->Панель в 250мс.
Задержек по управлению/отображению никаких не было. Но отдельное внимание на подключение RS485: спец кабели с экраном + прокладка + резисторы и пр.
п.с.: прочитал чуть выше, что всего модулей 35.
Если будет тормозить дольше 2 сек - из идей приходит на ум только добавление ещё одного ПЛК - разбить входы/выходы примерно на половину , либо как-то по местоположению оборудования.
Евгений, уточните пожалуйста, если возможно. Разве энергонезависимые переменные не хранятся в отдельном типе микросхем ППЗУ контроллера с более медленной скоростью чтения?
Или они предварительно загружаются в ОЗУ средствами ОС до старта пользовательской программы?
Или в большей степени это касается ПР-хх?
Спасибо!
Не слушайте никого про скорость - это смешно. Главные ваши вопросы:
1.Сколько может держать одновременно открытых сокетов этот ПЛК (возможно часть модулей нужно будет опрашивать в режиме открыл сокет/опросил/закрыл сокет. Очевидно те которых 11)
2.Сколько транзакций вытягивает система за 1 цикл (предположительно 1. Если больше - то даже лучше)
3.На сколько минимальным сможете сделать цикл сами и насколько сумеете оптимизировать обмен (даже по TCP надо) и сам код.
Если б речь шла про ПЛК110, то с некоторыми ньансами можно было бы уложится в 50...100мс на всё.
Господа, помогите пожалуйста мне с выбором. У меня шесть ПР-100, шесть ПР-200. Работают на автомойке, управляют воротами и насосами. Хочу их объединить в локальную сеть и подключить к ноуту. Вопрос в выборе системы runtime. Как я понимаю, из доступного самого есть codesys и scada. scada дорогая и информации по работе с ней по моему мнению- меньше. codesys - имел опыт работы с ней, в принципе понятное ПО и много обуч. материала. Но на codesys не знаю, где взять (скачать/найти/купить- на крайняк) лицензию для runtime сервера. Видел сайт официальный codesys но не пойму, какая лицензия мне нужна там.. Подскажите, какую систему выбрать лучше в моем случае (онлайн системе не нужен, кол-во сетевых переменных около 300, на ноуте w10 будет стоять, нужна визуализация) и где достать (официально или нет- без разницы) лицензию. Я бы, конечно выбрал codesys, так как уже работал с ней . Но ставил я ее на СПК 107, а там, лицензия не нужна.. Теперь же нужно поставить на ноут... Спасибо.
При чем тут CodeSys ? Вы собрались писать ещё и программу контроллера для виртуального ПЛК? Это сильно, только потому, что сталкивались...
А scada есть и бесплатные и с недорогим функционал опционально.
Наприме RapidScada для опроса бесплатна.
В вашем случае самое то, каких-то 2 лярда сигналов бесплатно.
А уж десяток другой тысяч рублей на доп опции найдете.
Предположу, что программы в ПР идентичны, ну 2 модели, 2 карты регистров. Создать 2 шаблона и вывести в табличном виде пару часов в Рапиде.
Потом рюшечки навешивать, смотреть что из допов вам нужно и т.д.
На оф. сайте лицензии подбираются под определенный проект по идее. Если санкции не смущают, то можно сделать проект сначала, без лицензии 2 часа бесплатно работает. Если после проверки все нормально, тогда можно купить лицензию, в зависимости от размера проекта, точек в/в и протоколов. Можно вроде перезагружать из кода runtime раз в два часа.
CodeSys при том, что я с ее использованием писал программку для СПК-107 с визуализацией и программку для ПЛК 100 и связывал их в локальную сетку, работает и сейчас, стоит, поэтому и упомянул. Спасибо за инфу о бесплатной RapidScad. Она позволяет сделать визуализацию на ПК? И нормально работает по rs-485 с ПР-ками? И ставится на w10?. Да, ПО в ПР-ках идентичны. 6 боксов для машин. в каждом боксе 1 ПР-100, 1 ПР-200, ТРМ - приставка для пр-200. итого 6 пр-100, 6- ПР-200, 6 - ТРМ
ну там картой можно заплатить, в баксах. цены вроде не сильно высокие. только как понять, что нужно... да, вроде работает 2 часа, потом перезапуск, но это не приемлемо...
Нужно посмотреть сколько точек, протоколов и размер кода в приложении. Зайти в устройство можно и посмотреть метрики лицензии вроде. По ним подобрать. Там к каждой лицензии написано, на сколько она
Modbus master встроен в Rapid. Можете и не напрямую по rs485, а через любой прозрачный преобразователь Ethernet-RS485 без всяких виртуальных COM портов работать.
Позволяет ли scada (не важно какая) делать визуализацию - это был сарказм или вопрос? :)
Почти на всех скадах есть бесплатные версии, на 32 тега или на 1 час работы. Вам по идее надо найти удобную, простую и подешевле,
например Simplight https://simplight.ru/simplight4/
Встроенный ОРС модбас и ТСР сервер.
У меня на 1 проект ушёл всего час, вместе с визуализацией и опросом. Все остальные скада намного сложнее, только разбираться можно по несколько дней.
http://176.109.111.174:10008/View
ggg
321
Там где-то в конце можно даже звук послушать :)
Да ладно вам, час? Час это на "Hellow Word" а нормально сделать на любой, часа мало.
Ну кстати если купить самый дешёвый ПЛК с Codesys то можно и на нём всё сделать же. К примеру панель СПК210-07 45тысяч рублей. К ней обращаться по Web и через к остальным ПР.
Ну или любой плк с исполнительной средой. Я не давно сделал отличный проект на ПЛК с MS4d, жаль он почему-то снимается с производства. Очень недооцененная вещь.
У скады минус тот, что проект ещё становится компьютерозависимым, а в суровых реалиях это минус.
Компьютерозависимым проект становится при покупке платного функционала.
Это минус в сторону той же Rapid, так как некоторым хочется иметь ключи на usb ключе, против софтовых ключей, это да, есть такое.
В остальном в чем зависимость, если вы можете запустить проект на любой практически ОС ?
а ноутбук уже есть :)Цитата:
К примеру панель СПК210-07 45тысяч рублей
Ну выходит из строя у Вас комп к примеру или админские дела, дела с безопасностью. А в случае с плк со встроенной web визуализацией подтаскиваем любой комп и без настроек - всё работает как раньше.
Я не давно сделал проект на ПЛК110-MS4 с встроенной скадой, очень доволен как работает.
Ну вышел из строя и что? Притащили другой комп и залили проект на него. В чем проблема то?
А ваш ПЛК умер, и вы ждёте месяц доставки нового, а то и два.
Не ну тут предполагается совмещение функций. Этот ПЛК же может выполнять управляющие функции и быть визуализацией одновременно. К примеру высвободить ПР или дополнительное оборудование будет вводиться в эксплуатацию.
Просто человек хочет на codesys сделать, так как умеет с ним работать. Я и говорю, что можно и на нём без проблем, в общем-то...
kondor3000 ну это все меряние письками :) в той же симплайт надо делать выгрузку в csv, там дублировать, потом обратную загрузку. з.ы. я им об этом и не только писал. Вообще ждут от них "чуда" но что-то не чешутся, хотя говорили, что проходит тестирование...
В Рапиде не надо ломать голову, там после подключения шаблона к устройству все каналы создаются одной кнопкой, после настройки "подели меня на 10", "а команду умножь на 10" делается клонирование каналов через соответствующего мастера с указанием с какого по какой надо сделать клон. Все.
А если вы про символьную конфигурацию CodeSys, так у человека ПР, а не ПЛК
з.ы. а вообще в каждой scada есть плюшки, которые хотелось бы видеть везде, в каждом продукте, чтобы выбирать его не по тому, что в нем есть, а просто потому, что проще с ним работать.
Ну например у одних скрипты на javascript, у других LUA, у третьих C#, у четвертых Паскаль и т.д. Что ближе знакомо, то и берешь.
Но к сожалению это все не так, то на Linux надо через Wine запускать, то с тем не работает, то с этим и т.д. Вот народ и мучается в выборе :)
пусть делает, чего уж там :)Цитата:
Просто человек хочет на codesys сделать
С рапид скадой можно многие вещи через блокнот++ делать. Хотя она и убогинькая, но есть у неё хорошие функционалы, которые во всех скадах платные, например, работа с базами данных. Одно это я уже в 3х проектах использовал. Просто механизм, без использования визуализации.
Добрый день коллеги. Подскажите что означает выделение 1. жёлтым цветом, и 2."программа загружена исключение"?
В данной ситуации среда не даёт запустить программу в онлайн режиме, но при компиляции не выдаёт никаких ошибок.
Вложение 88656
Спасибо!
Здравствуйте коллеги!. С чем может быть связано такое непоследовательное размещение рецептов в памяти ПЛК?
PPD_3
PPD_2
PPD_1
PPD_6
PPD_4
PPD_5
Вложение 88732
Там много чего непоследовательно может быть и вообще в разных местах. Я столкнулся с этим когда написал процедуру которая по указателю на первую и последнюю переменные сохраняет настройки в файл и потом их восстанавливает когда необходимо. На небольших кусках памяти она отлично работает. А когда переменных и массивов становится много то оказывается они хранятся в памяти далеко не последовательно и вообще по разным секторам. И функция SysMemCopy становится бесполезной.
Добрый день.
Если коротко - с тем, что так устроена реальная жизнь.
Все операции с чтением содержимого директорий сводятся к вызову на нижнем уровне чего-то вроде readdir, для которой:
The order in which filenames are read by successive calls to
readdir() depends on the filesystem implementation; it is unlikely
that the names will be sorted in any fashion.
https://man7.org/linux/man-pages/man3/readdir.3.html
Не надо вживаться, достаточно в слейве выделить группу регистров (достаточного для всех рецептов) и положить туда массив структур рецептов.
Всё будет по порядку и передаваться будет по порядку.
Длину String надо тоже ограничить, местом достаточным для записи,
вы например добавляете 5 символ в String(4), вот и съезжают структуры.
Надо поставить String(5), если меньше 10 или String(6), если до 99 рецептов
Нужно отслеживать момент изменения значения в ячейке таблицы. Нашел событие OnValueChanged. Попробовал его использовать. Событие не генерируется. Баг Codesysa? Вопрос, можно ли с этим бороться? Или как еще, в принципе, можно в коде отследить это событие?
Добрый день.
Это действительно похоже на баг CODESYS.
Если есть возможность организовать ввод через диалог NumpadOwen/KeypadOwen из библиотеки OwenVisuDialogs - то можно отследить закрытие диалога с помощью анализа полей структуры OVD.DialogsSettings.g_stClosedDialogInfo
Поле wsDialogTitle позволит понять, что был закрыт именно диалог, открытый из таблицы (соответственно, в настройках открытия диалога ввода в таблице нужно указать ему уникальный заголовок).
Но это не позволит отличить ввод нового значения от ввода того же значения, что и было.
В принципе, можно в коде циклически проверять значение каждой ячейки - совпадает ли оно с тем, которое было при прошлой проверке.
Спасибо, буду пробовать.
Еще вопрос про библиотеки.
1. Если библиотека установлена в разделе POU, то нужно ли ее устанавливать в разделе "Устройства", если Устройство не использует код из раздела "POU" ?
2. Почему папки одной версии библиотеки OSCAT BASIC выглядят по разному в Менеджерах библиотек POU и Устройств?
3. Что значит плейсхолдер POU не будет разрешен на устройстве и с чем связана ошибка ...Невозможно разрешить библиотеку плейсхолдера?
... небольшая каша в голове по этому вопросу, хотелось бы прояснить...
Где Можно ли поподробнее поизучать этот момент, лучше на русском языке.Вложение 88830Вложение 88831Вложение 88832Вложение 88833