Такой вопросик - к часу надо привязываться, т.е. расход с часу до двух, с двух до трех и т.д. или просто от момента включения?
Вид для печати
Да, расход за час, ну то-есть с часу до двух, с двух до трех и т.д., общий накопленный уже есть.
Ну, как вариант
Вложение 34031
Понял ваш вариант, но у меня немного другие обстоятельства. У меня час, день, месяц - ваша minute всегда будет больше 0. Я беру время из плк с помощью библиотеки. Мне нужно фиксировать изменение времени, прошу прощения за туфтологию. Например переменная hour (час) увеличилась на 1 час (то есть прошел 1 час) срабатывает бит, по которому я пишу в архив накопленный расход за этот час, далее часовой расход обнуляется и накапливается на следующий час и т.д. Точно также мне нужно фиксировать изменение суток и месяца. Вроде все просто но никак не дойду,как это провернуть. Кто делал архив расхода, может есть другие способы?
Такие вещи элементарно делаются если вместо отдельно взятых ЧЧ ММ СС использовать время в формате TOD (TIME_OF_DAY).Цитата:
Я беру время из плк с помощью библиотеки. Мне нужно фиксировать изменение времени, прошу прощения за туфтологию. Например переменная hour (час) увеличилась на 1 час (то есть прошел 1 час) срабатывает бит, по которому я пишу в архив накопленный расход за этот час, далее часовой расход обнуляется и накапливается на следующий час и т.д.
Соберите время суток в секунды, результат разделите по модулю 86400. Получите нолик строго в момент начала очередного часа. Т.к. длительность нолика - 1 сек, то нужно еще добавить F_TRIGGEG - получите нужный импульс.
А начало суток получите в момент когда TOD = 0.
Вложение 34034
А для того, чтобы фиксировать изменение недели, месяца, или года нужно использовать время в формате TD(TIME_AND_DATE).
Только упаковка времени в TOD немного по хитрее будет.
ЗЫ.
Почитайте на досуге статью И.Петрова "Программируем временные сложности" http://prolog-plc.ru/docs/TimeExperience.pdf
Я думаю, что это Вам поможет :)
Хорошо, тогда так
Вложение 34040
как только час поменяется, будет импульс. Аналогично можно сделать для дня, недели, месяца и года. Только здесь важен порядок блоков - MOVE должен исполняться последним
Всем спасибо за помощь, буду пробовать.
как в кодесис можно реализовать резервирование подсетей? Ситуация следующая. У меня на одном компьютере трудится ОРС сервер кодесис, и проект АРМ мастер скада. В ОРС сервере настроены две подсети до одного контрлоллера.Вложение 34081 Мастер скада не позволяет резервировать подстеи в таком случае, только когда используется удалённый ОРС. можно ли в кодесис настроить одну группу тегов которая бы общалась с двумя подсетями и при выдёргивании одного из шнурков из адаптера автоматически подтягивал данные с другого адаптера?
Довольно часто встречается вроде бы несложная ситуация: нужно управлять одним выходом по сигналу с 2х и более битовых переменных (например DI или ModBus), а также синхронизировать состояние этого выхода с управляющими переменными.
Сейчас решаю следующим способом:
Вложение 34125
Оно конечно работает, но как то уж очень громоздко выходит: куча переменных и триггеров, а когда таких выходов много, разбираться становится тяжело, невольно вспоминается слово "быдлокод" ;)
Может быть есть более элегантное (эффективное) решение, подскажите пожалуйста?
Иногда достаточно спросить у кого-нибудь, чтобы додуматься самому ;)
В результате переделал алгоритм на ST и оформил в виде блока:
Вложение 34130
Получилось 20 переменных и 20 строк -- уже веселее, хотя на мой взгляд все еще как на кировце огород пахать...
Let it be, поскольку других идей все равно больше нет.
Скрытый текст:
Добрый день. Имеем панель оператора СП 307, ПЛК 150 и ПЧВ-1 Овен. Плк используем в качестве мастера. Проблем со связью между ПЛК и СП нет, а вот
между ПЛК и ПЧВ нет. Настройки порта одинаковые. Лампочка на ПЧВ мигает, но при этом в конфигураторе кодесиса постоянно горит last error 81. Куда копать?Вложение 34132
Предлагаю копать в сторону проверки:
1) адрес устройства в настройках RS485 ПЛК и ПЧВ - должны совпадать, адрес ПЧВ должен быть уникальным, отличаться от адреса панели
2) скорость связи, битность, четность в настройках RS485 ПЛК и ПЧВ - должны совпадать
3) наличия оконечного резистора линии
99% случаев помогает. Если не помогает, можно применить метод "прослушки" линии с помощью RS485-RS232 преобразователя в компе + терминал.
Пункты 1 и 2 перепроверены 100 раз. Проблема не в этом. Валенок "С биб-ками - как 2 пальца." Можно поподробней.
ПЧВ имеет трудно реализуемые (при наличии еще кого-нить на линии) в штатном мастере особенности - такие же как и в ИП320 (см. там)
Валенок, скажите "трудно реализуемые" это значит, что с помощью штатного мастера не получится организовать связь между ПЛК и ПЧВ или
все таки каким то образом можно? Очень странно, что нет никакой информации от производителя по этому вопросу.
Всем спасибо. Если ПЧВ конфигурировать отдельным Modbus Master как это сделал я то связи нет. Если в состав Modbas Master панели оператора сконфигурировать Universal Modbus device с данными ПЧВ то связь с частотником начинает работать. Вот такие дела. Как то все кривовато.
Здравствуйте! Имеется проект на плк-110-24.30.к-м и 12 модулей. Организовано через модбас и 12 Universal modbas device. В определенный момент возникает ошибка 81 (last error) на одном из адресов. Помогает сброс плк на заводской и загрузка программы заново. Подскажите как это сделать в ПО. Заранее спасибо!
Адресацию сделать кратно 8, скорость опроса?,время цикла-5мс хотя бы? в конце линии резистор 100-120 Ом стоит? Какие типы модулей? Надо оптимизировать опрос, а сброс-последнее дело, зачем лишние проблемы..
Адресацию поменяю. Скорость опроса 115200 на всех модулях. Время цикла была 1мс сделал 10мс. Резистора нет - поставлю. Модули дискретные ввода/вывода МВ110-16Д(ДН), аналоговый модуль ввода МВ110-24.8АС.
Все верно,ну и как результат? Да, если модули далеко от плк (100метров). то скорость опроса лучше понизить.
Добрый день!Решил попробовать управллять ПЧВ 103 4К0 ОВЕН через RS-485.Создал три регистра в Конфигурации ПЛК Вложение 34243, установил с диска библиотеку для работы с ПЧВ, в проекте использовал только два функциональных блока: блок командного слова и слова состояния Вложение 34244. Компилируеться нормально без ошибок но при попытке загрузить в ПЛК выскакивает вот это Вложение 34245 и после это Вложение 34246. И все . Что я не доделал или сделал не так?
Подскажите, где взять функциональный блок Bits_to_Word?Вложение 34267
открыть документацию http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf и прочитать раздел: доступ к битам переменных и далее самостоятельно написать такой блок если понадобится
Для не опытных как я прилагаю "бумагу" с подробной инструкцией как подключить частотник к ПЛК в пошаговом исполнении
Подскажите как можно сделать регистрацию изменения состояния "true"-"false"-"true" и при втором "true" выходил сигнал с переменной "true".
Примерно схема и "алгоритм" следующий:
Ик приёмник, для состояния движения с перехода "true"-"false"-"true" на "true" выдавал сигнал в "true"
Ик всегда светит и приходит на ПЛК "true" если проходит движение (не важной какой длины) сигнал "false" при последующем появлении объекта "true" на переменной должен проходит "true" когда второй раз появился "true" в остальных случаях "false"... Что то както не понятно я написал...
Может данная схема поможет.
Самое главное начальное значение в переменной оно должно быть всегда в "false" а уже после регистрации меняться на "true"
Пока писал подумал может сделать счетчик и при каждом втором появлении "true" с ИК на выход "Q".... Или может есть какой то другой подход к данной задачи?
Спасибо.
Код:VAR
ik: BOOL;
peremen: BOOL;
f_trig_start: F_TRIG;
start: BOOL;
END_VAR
Код:f_trig_start(CLK:=ik);
IF start THEN
peremen:=ik;
ELSE
peremen:=FALSE;
END_IF
IF f_trig_start.Q THEN
start:=TRUE;
END_IF
Мой вариант
Вложение 34282
Как отцепит верхний вход SUB от выхода AND и прицепить туда нижний вход SUB ?
Не, это Математика на FBD.
Там палки не удаляются
Вложение 34375
Ткнуть мышом на нижний вход SUB и вставить еще один AND. А верхний AND удалить
Спасибо, petera.
Доброго времени суток!
Столкнулся вот с какой проблемой. ПЛК-73 в момент запуска начинает "перебирать" экран, как бы моргает, перебирает строки, плавно, спокойно, в отношении датчиков и исполнительных устройств - нет проблем. Успокаивается. И работает потом грамотно, все отлично, все значения соответствуют заданным и ожидаемым параметрам. Потом опять, время от времени, начинает "перемаргивать" экран (за час работы - раз пять/шесть). Для работы - не мешает, но как-то напрягает. Что-то с функцией очистки экрана? Намекните направление, вроде как чисто программный нюанс, которого не знаю.
Спасибо!
Как вычленить ФБ CTRL_PI из библиотеки OSCAT чтобы не тащить в проект всю библиотеку ? Иначе при компиляции возникает ошибка по причине большого количества ФБ.
В конфигураторе ПЛК есть подэлемент Button . Для чего он ?
Это кнопка "Старт/Cтоп" на передней панели ПЛК.
Добавление в конфигуратор элемента Button отключает функцию "Старт/Cтоп" и превращает кнопку в еще один вход, на который можно повесить какую-либо свою функцию.
Во избежание глюков и саботажа настоятельно рекомендуется добавлять элемент Button в КАЖДЫЙ проект.
Спасибо . У меня проблема , если отключить питание ПЛК100 на 2 мин. и включить , то simple-scada не востанавливает связь . Я так понял не стартует ПЛК . Поможет ли подэлемент Button .
Всё делал , согласно https://forum-ru.codesys.com/viewtopic.php?t=883 , кроме MatrikonOPC Explorer .
Да всё сделал ! Ещё к ПЛК100 подключён МУ110-224.16Р но от другого БП . Может ли это повлиять ? ПЛК подключён к компу через Ethernet . Через модем к которому подключены ещё видеокамеры . Но при подключении к ПЛК программой CODESYS связь работает без проблем .
Уважаемые специалисты форума. Никак не могу разобраться с функциональным блоком HEAT METER из бибилиотеки OSCAT. Есть ли у кого нибудь опыт работы с данным блоком. Применяю расходомер не импульсным входом а 4-20 мА. Не подскажите как адаптировать данный блок к моей задаче?
Извиняюсь за банальный вопрос но что то меня заклинило
Могут ли два или более мастера обращаться к одному слейву Modbus TCP в ПЛК?
Поделят один порт?