Смысл есть: если после загрузки программы выполнить команду сброса, то этим переменным будут присвоены начальные значения
Вид для печати
а вы как думаете?
я бы задумался после прочтения этого абзаца - а что собственно у меня тогда происходит? может вот этот абзац мне поможет понять, что я что-то не так делаю?Цитата:
Онлайн изменение не приводит к переинициализации переменных, таким
образом, модификация начальных значений не приведет к изменению Retain переменных. В этих
случаях необходимо перезагрузить проект целиком командой 'Онлайн' 'Загрузка' ('Online'
'Download').
так что у ВАС происходит, когда вы дёргаете тумблер Старт-Стоп?Цитата:
Существуют два типа реманентных переменных:
Retain variables, сохраняющие свои значения при выключении питания и сбросе 'Онлайн' 'Сброс' ('Online' 'Reset') в CoDeSys.
Persistent variables сохраняют свои значения при сбросе без выключения питания, управляемом останове системы исполнения (стоп, старт).
не хотите вот эту табличку посмотреть?
Вложение 66881
:DЦитата:
Код запущенный из Кодесис и с тумблера на ПЛК - разный.
продолжайте игнорировать документациюЦитата:
При перезаписи программы, их значения стираются или остаются без изменений? Если инициализировать их один раз, а потом убрать этот код из программы, их значения сохранятся или нет?
Чтоб не украли, писать в файл внутри! :)
Я вот тут так и сделал - всё работает.
По надобности сваливать в комп, или на внешнюю флешку.
Но это уже другая история.
Привет всем!
QR-код, Шрих-код считать и распознать.
Принтер узкий ленточный"типа кассовый" не термо?
Для ПЛК160.
Кто подскажет по теме, куда копать?
это вас что-ли наняли автоматизаторы со склада? :D
никуда не надо копать.
перестаньте ерундой заниматься. Для всего этого есть готовые решения, вагон и тележка
никакой ваш дешёвый труд и рукописные костыли не обойдутся дешевле готового POS терминала
Нет.
Прочитать номер изделия, установить параметры испытания по номеру.
Провести испытания.
Результаты проверки напечатать - сопроводилка изделия.
Нет.Цитата:
никуда не надо копать.
перестаньте хернёй заниматься. Для всего этого есть готовые решения, вагон и тележка
никакой ваш дешёвый труд и рукописные костыли не обойдутся дешевле готового POS терминала
Готовый не подходит.
Необходимо обработать полученный код,
произвести манипуляции,
зафиксировать.
добрый день уважаемые, не могу найти библиотеку SysFile.lib. для работы с энергонезависимой памятью, а может сможете и так что то подсказать новичку, на codesys хочу написать наработку часов и мин, но не могу записать значения так чтобы после перезагрузки или отключения питания значения сохранялись
Зачем вам эта биб-ка и работа с файлами?
Сохранение в памяти делается RETAIN переменными или если ПЛК слейв, то в конфигурации все переменные глобальные и энергонезависимые.
Биб-ка SysLibFile выложена на сайте https://owen.ru/product/codesys_v2/libraries
Может "SysLibFile.lib"?
Вложение 67220
Только мне кажется, что фрагмент
"Спасет отца русской демократии" и без SysLibFile.libКод:VAR RETAIN
NARABOTKA:INT; (*Сохраняемая переменная*)
END_VAR
я пробовал через RETAIN и VAR RETAIN PERSISTENT ну или я может что то не так делаю или не понимаю, но после сброса питания(даже записав перед этим значение) на плк он устанавливает переменную в 0
PROGRAM PLC_PRG
VAR_INPUT
PUSK: BOOL:=TRUE;
END_VAR
VAR
time_ton: TIME:=T#1s;
TON1: TON;
result: BOOL;
fileName: STRING := 'myFile';
mode: STRING := 'w';
state: INT:=0;
in_ton: BOOL;
cycle: INT;
OUT_flag: BOOL;
PULSE: BOOL:=TRUE;
END_VAR
VAR RETAIN PERSISTENT
counter:INT ;
END_VAR
IF PUSK=TRUE THEN
cycle:=counter;
PUSK:=FALSE;
END_IF
CASE state OF
0: IF PULSE=TRUE THEN
in_ton:=TRUE;
state:=10;
END_IF
10:
IF in_ton=TRUE THEN
cycle:=cycle+1;
state:=20;
END_IF
20:
TON1(IN:=in_ton, PT:= time_ton, Q=>OUT_flag);
state:=30;
30:
in_ton:=FALSE;
OUT_flag:=FALSE;
state:=40;
40:
IF PULSE=FALSE THEN
counter:=cycle;
ELSE
state:=0;
END_IF
END_CASE
вот такой тестовый код написал для проверки и пробы
Из всего этого нужно всего лишь
Память убить нельзя, т.к. RETAIN переменные физически записываются в момент выключения питанияКод:PROGRAM PLC_PRG
VAR
TON1: TON:=(PT:=T#1s);
OUT_flag: BOOL;
END_VAR
VAR RETAIN
cycle: UDINT;
END_VAR
TON1(IN:=NOT OUT_flag, Q=>OUT_flag );
cycle:= cycle + BOOL_TO_INT(OUT_flag);
Вся программа мутная, Retain переменные можно было проверить вообще без программы, просто записать число.
В новых ПЛК нет аккумулятора, только батарейка для часов.
Для работы со временем и наработкой есть примеры на сайте, используется биб-ка SysLibTime,
в эмуляции она не работает, только на ПЛК или виртуальном ПЛК.
Привет всем!
В ПЛК160 создал файл "File LOG" с пробелом в названии.
Не могу прочитать/удалить через ПЛК-браузер.
plc_io.exe /TCP192.168.1.250 /del "File log"
Удаление файла File
Ошибка: невозможно удалить файл
Удаление файла log
Ошибка: невозможно удалить файл
plc_io.exe /TCP192.168.1.250 /del "File log."
Удаление файла File log.
Ошибка: невозможно удалить файл
plc_io.exe /TCP192.168.1.250 /del "File log.*"
Удаление файла File log.*
Ошибка: невозможно удалить файл
у файла имя File LOG
а зачем вы его название сделали с пробелом?
и не получится скорее всего. А считать его удаётся?Цитата:
Не удалось удалить файл
Не факт что поможет... :)
Он как бы не мешает.
Лишь немного озадачил, что такие вывихи возможны
в такой уважаемой корпорации...
SysLibFile - порог вхождения в тему - много нагромождений.
Кто бы на ЭТОМ написал нормальную файловую систему,
с краткой и ЛАКОНИЧНОЙ системой команд.
Эдакий МС-ДОС с Нортоном в придачу. :)
какие вывихи, какая корпорация, какой мсдос....
вас предупреждали - перестаньте требовать от ПЛК каких-то чудес, это просто выполнитель простых логических последовательностей, а не ПК с форточками-линуксами
и кодесис и то, что создатели напихали в него в 90ые - это не относится к конкретному ПЛК, который делался другими, и не факт, что там что-то будет реализовано идеально, как фантазировали авторы КДС про абстраткный ПЛК в начале 90ых
сколько ещё граблей вы готовы отловить своей головой? :D
Всем привет.
Создал проект для управления электроприводом на база ПЛК-160 2015года (старая версия), применив счетчик. Если задавать значения уставки 0 или 100%, привод работает согласно сохраненным количествам импульсов. А вот если задавать уставку произвольно, то привод переезжает либо не доезжает к крайним точка, одним словом происходит смещение точек. Хотя счетчик отображает правильное значение.
Который день пытаюсь понять данную проблему.... Счетчики применял разные, параметры входов также менял, но все, - УВЫ....
Применяю оптический ИК транзисторный выключатель от принтера в связке с транзисторным ключом. Частота импульса в 1-ну секунду, не более.
Нужна ваша помощь в данной.
Заранее, спасибо!
Что за привод ?
Добрый день! Подскажите как настроить СИ 8 (первичный прибор стоит СТВХ 100 ДГ1), для считывания расхода воды в метрах кубических.