Раньше видел но сейчас не могу найти. Как скачать тревоги с СПК Codesys 3.5 SP17 и чем их можно просмотреть на компьютере.
Вид для печати
Раньше видел но сейчас не могу найти. Как скачать тревоги с СПК Codesys 3.5 SP17 и чем их можно просмотреть на компьютере.
Штатный способ (требующий подключение к контроллеру из CODESY) описан здесь:
https://youtu.be/LlLMSElG59I?t=352
Если такой вариант не подходит - то, например, можно использовать компонент OwenArchiver (который будет работать параллельно конфигурации тревог):
https://youtu.be/rpwvyahHevw
Здравствуйте. Столкнулся с проблемой. На нажатие кнопки привязано изменение состояния переменной plc_prg.xSendCommand:=TRUE; на отправку запроса
в коде plc_prg прописано:
fb_Rtrig(CLK:=xSendCommand);
fb_SE3(xExecute:=xSendCommand, sCommand:=zapros);
IF fb_SE3.xDone THEN
xSendCommand:=FALSE;
xStatSave:=TRUE; // откл анимацию
В переменной string "zapros" прописывается команда на запуск bash скрипта (скрипт рабочий, команда на запуск работает при отправке из Putty и создается файл с данными из базы sql). При отправке команды с помощью функционального блока на плк - на флешке не создается файл с выгрузкой из базы sql.
код команды из "zapros"
zapros:='bash dir.sh';
zapros:=CONCAT((zapros),' ');
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),StartDateStr);
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),' ');
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),EndDateStr);
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),TO_STRING(' '));
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),TO_STRING(StartTime));
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),' ');
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),TO_STRING(EndTime));
zapros:=CONCAT((zapros),TO_STRING("'"));
zapros:=CONCAT((zapros),TO_STRING(' '));
zapros:=CONCAT((zapros),TO_STRING(60));
конечный вид при отладке: 'bash dir.sh '28.06.2023' '29.06.2023' '08:45:50' '10:45:50' 60'
одинарные кавычки в середине запроса не нужно менять на двойные ?
скрипт dir.sh лежит в папке root. Создавал файл через WinSCP
Codesys 3.5 SP 17 панель СПК 110(М01). На рабочем объекте словил неприятный глюк. Скопировал тревогу из одной группы в другую сделал логин с онлайн изменением никаких ошибок не было, но вот когда программа загрузилась адреналин у меня скакнул контроллер ушел в стоп с исключением, ладно копия была быстро загрузил и никто не заметил.
Помогло bash /root/dir.sh
Подскажите, в примере по работе с файлами две кнопки "выбрать" и "скачать". А как сделать всё на одну кнопку ? По нажатию одной кнопки чтобы создавался файл (создается сейчас нормально) и сразу выходило окно, для указания места для скачивания его ?
Подскажите пожалуйста как перенести проект на другой компьютер чтобы можно было подключится онлайн без загрузки проекта на СПК
Надо перенести ВСЕ файлы, которые создаёт CodeSys для этого проекта в его папке. Там будут файлы с расширениями вида .compileinfo, .coreinfo и другие. Вот их и надо переносить.
По идее можно выдумать такой алгоритм:
1. На CodeSys создать Архив проекта со всеми-всеми галочками
2. На втором компьютере открыть его с CodeSys и распаковать. Таким образом перенесутся все используемые настройки, библиотеки и таргеты.
3. Затем скопировать ВСЮ папку с проектом и его файлами на второй компьютер.
Вот эти файлы надо все переносить:
Вложение 68551
Добрый день.
Подскажите FDBшку счетчика времени хода клапана, чтобы при открытии счетчик накапливался по времени, а при закрытии уменьшался, при максимальном значении (например 600 секунд) он выдавал выходной сигнал.
Нашел такой только для импульсов, называется CTUD, но мне нужен счетчик именно времени.
Берете системное время ПЛК, по RTrig на флаг движения запоминается время. В конце движения по FTrig ещё раз читаете время и вычитание из него первое. Разницу складываете в переменную с накопленным временем со знаком соответствующим направлению движения. Как-то так.
Здравствуйте, это я сделал, но загвоздка в выборе последнего созданного (после нажатия на кнопку) файла - т.е перед скачиванием нужно же сделать выбор файла. У меня в имени файла пишется текущая дата, время, и период отчета.
Получается на кнопку "создать и скачать" у меня вот такой код:
Программа ST:
Выполнить передачу:Код:plc_prg.xSendCommand:=TRUE;
PLC_PRG.saveTime:=(OSU.DT_TO_STRING_FORMAT(TargetVars.stRtc.dtDateAndTime,PLC_PRG.tFormat));
PLC_PRG.saveDir:='/mnt/ufs/media/mmcblk0p1/Reports/';
PLC_PRG.saveDir:=concat((PLC_PRG.saveDir),TO_STRING(PLC_PRG.saveTime));
PLC_PRG.saveDir:=concat((PLC_PRG.saveDir),TO_STRING('_'));
PLC_PRG.saveDir:=concat((PLC_PRG.saveDir),(PLC_PRG.disf)); // период отчета
PLC_PRG.fbFileListProvider.Initialize
(
stDirectory := '/mnt/ufs/media/mmcblk0p1/Reports/',
stFilter := 'csv(*.csv)|*.csv',
stFileIn := PLC_PRG.saveDir,
wstTitle :="Выбор отчета",
wsButtonOKTitle := "ОК",
bBrowseDirectory:=FALSE,
bTouch:=FALSE
);
Переменная с путем и именем файла PLC_PRG.saveDir (на момент нажатия кнопки т.к в имени дата и время с секундами). Имя файла в "stFileIn" совпадает с фактическим именем созданного файла
Файл генерируется, но окно сохранения на компьютер не появляется
В вашем случае, на мой взгляд, fbFileListProvider вообще не нужен.
Вместо него используйте действие Передача файла.
https://youtu.be/IemOlv7FcQI
Файл будет сохранен в директорию загрузок браузера (по умолчанию обычно C:\User\имя_пользователя\Downloads)
Оставил код собирающий имя файла:
имя созданного файла: 03.07.2023_11-30-05_1_sec.csvКод:plc_prg.xSendCommand:=TRUE;
PLC_PRG.saveTime:=(OSU.DT_TO_STRING_FORMAT(TargetVars.stRtc.dtDateAndTime,PLC_PRG.tFormat));
PLC_PRG.saveDir:=TO_STRING(PLC_PRG.saveTime);
PLC_PRG.saveDir:=concat((PLC_PRG.saveDir),TO_STRING('_'));
PLC_PRG.saveDir:=concat((PLC_PRG.saveDir),(PLC_PRG.disf));
PLC_PRG.saveDir:=concat((PLC_PRG.saveDir),TO_STRING('.csv'));
имя файла для скачивания (PLC_PRG.saveDir) : 03.07.2023_11-30-05_1_sec.csv
и "передача файла" из визуализации на ПК ( PLC_PRG.saveDir ).
Нажимаю кнопку - файл создается, но не скачивается на ПК.
Здравствуйте, постоянно слетает версия библиотеки ( скрин прилагаю), это нормальное явление? Как правильно подобрать версии библиотек для проекта?Вложение 68594
Добрый день. Подскажите, пожалуйста, какие настройки изменить в CoDeSys 3.5, чтобы при программировании на языке LD каждой строке можно было добавить комментарий.
Здравствуйте.
К ПЛК подключен по модбас дисплей(в дисплее время между фреймами - выставил 100мс). 115200кбод
Сначала я загружаю значения из памяти ПЛК, а потом через дисплей меняю. 15(адреса последовательно идут) переменных - и чтение и запись... но переменные обновляются раз в 3 или 6 секунд, за это время куча циклов проходит и прога ведет себя не как надо.
Разъясните невежде - что такое фрейм? это каждый "канал"?
быстрее же обмен будет у устройства в котором 1 канал модбаса (допустим 10 слов - в массиве привяжем нужные переменки), вместо 10 отдельных каналов с переменками?
Zerling Фрейм - это одна посылка данных по протоколу Modbus. Например, запрос на запись или чтение - это одна посылка. Ответ на это запрос - вторая посылка.
Пауза нужна для того, что некоторые устройства могут не успевать отвечать на слишком быстрые запросы. Оставь её в 5 мсек.
И - да - один групповой запрос на чтение или запись сразу нескольких регистров быстрее, чем отдельные запросы на каждый. То есть - да - сокращай число каналов опроса.
Доброго времени суток!
Подскажите, возможно ли подключить симулятор ПЛК CODESYS Control Win SysTray к симулятору панели Wintek MT8102iE? Теги импортировать получилось, а вот законектится никак((((
Спасибо, это обнадеживает, но не затруднит ли вас написать каким образом это можно сделать или где про это почитать?
Есть ФБ 'НазваниеФБ' на SFC.
В ФБ переменная 'ИмяПеременной' типа STRUCT, объявленная в VAR_IN_OUT блока.
В ФБ есть переход 'ИмяПерехода', использующий значение одного из полей 'ИмяПеременной' в качестве условия.
Не могу понять смысл предупреждения:
C0371: Обращение к VAR_IN_OUT 'ИмяПеременной', объявленной в 'НазваниеФБ', из внешнего контекста '__getИмяПерехода'
Эти предупреждения - только на переходы с использованием этой переменной, на действия, содержащие в коде эту переменную, предупреждений нет
https://infosys.beckhoff.com/english...459-2.html&id=
См. раздел "Access to VAR_IN_OUT variables of the function block in a method/transition/property"
Коротко - если вызов перехода произойдет до того, как к VAR_IN_OUT в экземпляре ФБ будут привязаны какие-то переменные, то произойдет исключение из-за неициализированной ссылки (т. к. работа с VAR_IN_OUT происходит по ссылкам).
Компилятор предупреждает вас именно об этом.
Здравствуйте!
Подскажите, можно ли что-то сделать, чтобы не писать каждый раз TargetVars. (и т.п.) при обращении к глобальным переменным?
Т.е. вместо Targetvars.V1 :=... сразу V1 :=...
Добрый день.
Подскажите почему при обрыве соединения owencommunication закрывает полностью модбас порт.
InsatModbusServer опрашивает 210 ПЛК, если вытащить изернет кабель и затем подключить то повторное соединение не проходит, посмотрел nmap порт 502 закрыт, помогает сброс ПЛК.
Вот код modbus slave:
Вложение 68715
P.S NOT error это эксперемнты уже были. Изначально там просто было: fbModbusTcpSlave(xEnable := TRUE, ...
Добрый день.
Ответ здесь:
https://owen.ru/forum/showthread.php?t=36837
Здравствуйте!
создал PERSISTENT RETAIN переменную
{attribute 'qualified_only'}
VAR_GLOBAL PERSISTENT RETAIN
AI_Profiles : ARRAY [1..AI_Signals_Count] OF AIP_Data;
END_VAR
При компиляции выдаёт предупреждение:
C0244: Не найден подходящий путь в VAR_PERSISTENT-списке для переменной GPR.AI_Profiles. Используйте команду "Добавить все пути экземпляров"
Ошибок при этом нет.
Нажимал Добавить все пути экземпляров. Не помогает. Предупреждение остаётся.
Подскажите, что от меня хочет CoDeSys? М.б. где-то в ручную нужно ещё что-то прописать? Или просто не обращать внимание?
Кратко по проекту: Имеется панель оператора СПК 107 на которую передается информация и осуществляется управление исполнительными устройствами по радиоканалу через rs 485 несколькими ПР 200. При разработке проекта и подключенной одной ПР 200 все работало как положено, как только добавил вторую ПР 200 появилась задержка при отправке команды на управление исп. устройством. Получилось решить данную проблему с помощью костылей установкой блока времени TP и уставкой в 6 сек. на запись булевых переменных ( скриншот №1). Прошу вашей помощи разобраться так как мне необходимо еще привязать несколько ПР200 и эта задержка носит линейных характер и будет увеличиватся с привязкой новых устройств. Я новичек в этом деле, азы знаю, но нюансы хворают.Вложение 68741
Отправьте, пожалуйста, ваш вопрос на support@owen.ru. К письму приложите проекты для CODESYS и OwenLogic.