Ну как и положено. Пришла авария (темно красный индикатор). Нажали подтвердить при активной аварии, она квитировалась (бледно розовый). Если ушла то потухнет. Но без времени. Обычно с регистрацией времени завязывают какой-нибудь SQL сервер. Я вот ни архивы, ни историю в ПЛК стараюсь не писать. Боюсь или память переполнится, или ресурс перезаписи исчерпает себя.
Код:FOR i:= 1 TO 32 DO IF TMP_MEC.ALA_CUR[i] THEN TMP_MEC.ALA_MEM[i]:= TRUE; END_IF //Взвод бита аварии в память IF TMP_MEC.ALA_MEM[i] AND TMP_MEC.COM_RES THEN TMP_MEC.ALA_CON[i]:= TRUE; END_IF //Взвод бита подтветждения аварии IF TMP_MEC.ALA_CON[i] AND NOT TMP_MEC.ALA_CUR[i] THEN TMP_MEC.ALA_MEM[i]:= FALSE; //Сброс бита аварии из памяти при отсутствии аварии после подтверждения TMP_MEC.ALA_CON[i]:= FALSE; //Сброс бита подтветждения аварии при отсутствии аварии после подтверждения END_IF IF NOT(NOT TMP_MEC.ALA_MEM[i] OR (TMP_MEC.PAR_DIS[i] AND TMP_MEC.COM_DIS[i])) THEN TMP_MEC.STA_REA:= FALSE; //Сброс бита готовности TMP_MEC.STA_ALA:= TRUE; //Взведение бита аварии END_IF END_FOR
Последний раз редактировалось МихаилГл; 13.02.2024 в 12:50.
Кстати, а можно ли в данном компоненте отключать какие-либо аварии без использования среды программирования? Честно не знаю, так как не работал. А вот плюсы программных реализаций как раз в том, что вы можете ими вертеть как пожелаете, можете вывести из списка аварий, можете включить. Только для этого должно быть соответствующее инженерное окно настроек быть нарисовано в визуализации.
Была ли уже идея сделать своего рода ключ администратора для ПЛК и СПК (мысль такая) Берём флешку уже готовую, в СПК жмём кнопку применить параметры администратора (если флешки нет то и кнопка в инвизе) и у нас доступ к сервисным настройкам которые сами сделали (вместо ручного ввода логина и пароля) я задумался с библиотекой CAA File будет копирования какого-то текста для запуска таймера обратного отсчёта и последующей деактивации. Вдруг кто-то подобное реализовал, а я начал изобретать колесо заново.
В рамках того варианта, который рассматривается в видео - нет, потому что одна строка группы тревог (со способом наблюдения "событие") будет являться репрезентацией нескольких тревог разных экземпляров ФБ.
Поэтому невозможно "держать" тревоги в таблице, пока они активны - надо сразу отправлять их в историю.
С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
У нас есть пример, как считать серийный номер подключенного к контроллеру USB-накопителя:
https://owen.ru/forum/showthread.php...l=1#post340323
На его базе можно решить описанную вами задачу.
С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
Здравствуйте, появилась такая проблема с ПЛК 200. Есть программа, которая с датчиков в БД sqlite на SD флешку записывает данные. Данные записывались с 01.01.2024г по 13.02.2024г. 5го февраля скачивали "выгрузку" (эксель файл), в нем были данные за 03.02.2024. Вчера (т.е. 13.02.2024) скачали с SD карты всю базу, а в базе пропали записи в промежутке между 26.01.2024 и 13.02.2024г - вопрос, как такое могло произойти ?
Файл Бд сейчас весит 60.9 мб, может быть есть какие то ограничения на размер бд или количество строк в ней ?
При старте ПЛК запускается dir2.sh скрипт для очистки данных из бд:
в нем такой запрос:Код:IF NOT(xIsPlcStarted) THEN StartDate:=EndDate:=TO_DATE(TargetVars.stRtc.dtDateAndTime); StartTime:=EndTime:=TargetVars.stRtc.sGetFormatTime; zapros:='bash /root/dir2.sh'; //проверка и очистка базы sql перед стартом plc_prg.xSendCommand:=TRUE; fb_Rtrig(CLK:=xSendCommand); fb_SE3(xExecute:=xSendCommand, sCommand:=zapros);
Код:sqlite3 /mnt/ufs/media/mmcblk0p1/WRK/drgm_base.db "delete from drgm_table where dates < strftime('%d.%m.%Y','now','-3 month')"
Последний раз редактировалось fergus23; 14.02.2024 в 07:08.
При загрузке любого проекта старых версий в ПЛК и нажатии на кнопку "старт (F5)" в codesys , внизу мигает красная ошибка "Программа загружена - ИСКЛЮЧЕНИЕ" что это такое и как посмотреть, исправить ?