Спасибо за от клик. Да у меня ПР200
Вид для печати
Спасибо за от клик. Да у меня ПР200
Спасибо. По пробую.
Если мощность источника сотни киловатт, то бояться абсолютно нечего.
Здравствуйте. Не пойму почему не проходит инициализация Retain переменной:
VAR_GLOBAL RETAIN
Global_Retain_var :INT:=111;
END_VAR
После загрузки и запуска программы в контроллер ПЛК110-24.60.Р-L эта переменная почему то равна 0 нулю.
Что не так делаю?
Проблема только при первом запуске новой загруженной программы. Если потом меняю значение этой переменной и перегружаю ПЛК, то значение сохраняется...
Здравствуйте.
А подскажите, нет ли случайно готового функционального блока, что бы получить значение периода или частоты из входного сигнала?
Ну типа на вход DI ПЛК, идет последовательность ON/OFF/
maks-gmv
ПЛК110-24.60.Р-L старой или новой версии? Если старой, то вероятно дохлый внутренний аккумулятор.
-
И не понимаю смысла присванивния значения ретайн-переменной в её описании. Ретайн на то и ретайн,что бы запоминать изменения значений по выключении.
Вот накидал простой примерчик для понимания.
Если надо установить некое значение в первом пуске после обновления проекта, то можно сделать проверку на ноль в теле программы, и если да, то присваивать это значение.
Валенок
Про сравнение с нулем - это из собственного опыта работы со старыми ПЛК. У меня был проект, в котором штук тридцать ретайнов, которые по определению не могли иметь нулевые значение. При дохлом акке при включении ПЛК ретайны естественно были в нулях, а это приводило к неработоспособности машины. Вот придумал проверку трех-четырех ключевых переменных на ноль, и если да, то всем ретайнам присваивались некие безопасные значения. В проектах на новых ПЛК такое иногда делаю чисто из за удобства при отладке, т.к. в нем нет акка, и нет такой необходимости.
Версия ПЛК старая, но аккумулятор вроде в норме 4,18 В выдает и опять же значение Retain переменной сохраняет при выключении питания. Проблема только с инициализацией, вопрос в том должна она работать или нет? Как обойти то это понятно, но не очень удобно, придется "огород городить". Retain переменные используются для хранения уставок, которые в свою очередь могут и 0 равняться в процессе изменения, а я им вдруг при Вашей проверке на 0 присвою другое значение, как то не совсем логично ...
maks-gmv
Как вариант моего метода - сделать контрольную переменную, которая в проекте нигде не используется. Если она в нуле, то ей и всему остальному списку присвоить необходимые значения.
Ну или ковырять сохранение в файл.
to sulfur and Валенок
Да, спасибо Вам, похоже так и придется делать, инициализацию уставок по команде.
А насчет файла ещё не подскажите, есть такая возможность на компе его например создать/отредактировать, а потом в ПЛК его загрузить и из программы по команде провести инициализацию уставок, как вариант, я что то не нашёл, может плохо искал?
вопрос от новичка,как обозначаются концевики,для откатных ворот
На объектах стоят ПЛК100 наладчики обратили внимание что при выключении питания на одном ПЛК100 он не запускается -- то есть не включает насосы
данные на включение насосов хранятся в энергонезависимой памяти .
Вопрос не может ли выйти из строя батарейка акумулятор внутри ПЛК100 которая может быть отвечает за хранения данных в энергонезависимой памяти .
Раньше всё работало в течении 4 отопительных сезонов .
Вложение 48097
Сам нахожусь за 300 км на заводе а наладчики местные на объекте . А им доверять боязно .
Самое главное программа сохранена и перезагружается если её сбросить кнопкой "сброс" до заводских уставок .
Батарейку заменить можно элементарно, даже плату снимать не надо.
Алексеев
В качестве батарейки вполне себе работают аккумуляторы для разных гаджетов. Я брал на 430 мА\ч со встроенной платой и проводными выводами. Родная стоит 140мАч (вроде как). Выпаивается старая, впаивается новая и приклеивается к плате двусторонним скотчем (толстым).
Спасибо Я Вас понял.
Вопрос: при смене IP адреса ПЛК100 CodeSys перестал подключаться к контроллеру (конечно IP-адрес в настройках подключения изменил)!
Что делать? Через USB тоже не подключается (ошибка соединения)...
Добрый день, форумчане.
Подскажите, есть функция выдающая код ASCII для символа.
Т.е. подаю на вход, например, символ '0' на выходе получаю значение 48 (в десятичной системе).
Спасибо.
Нашел. CharCode в oscat.lib.
Кто может помочь сделать лабораторные в Codesys?
Подскажите пожалуйста, а можно сделать for по циклу? Перебрать key, value
В целом задача простая, может будет предложение. Есть структура ( конфигурация параметров для софта ), есть TCP. Как сделать отдачу и получение быстрые. Типа получил команду getConfig, преобразовал весь экземпляр структуры в строку и выдал, и так же обратно желательно. Типы данных в структуре к сожалению разные, однотипно не сделать.
Ну видимо нет. Я просто реализовал вывод в лоб то. Просто я то привык к неким более современным языкам, и когда видишь такой код как то немного не по себе.
А по поводу TVariant, нет смысла, слишком избыточно для моей задачи. Он был бы хорош при динамических проходках наверно.
В целом просто решил спросить, вдруг есть.
Здравствуйте. Подскажите пжлста новичку какой порядок блоков использовать для работы с modbus'ом через биб-ку Модбас либ., SysComOpen-SysComSetSettings-SysComRead-MB_RD_INPUTS потом чем то буфер читать, правильно думаю (для чтения сигналов например модуля ввода)?
Уже весь форум перелопатил, ничего не нашел.
Есть ПР200, есть конвейер с 12-ти шестерней на конце и бесконтактный датчик к этой шестерни. Период импульсов теоретический 267ms. Как мне контролировать превышение ширины импульса с точностью до 1ms? Программными средствами создать генератор в 1ms у меня не получилось, да счетчики так бистро не считают. Все как то связано с программным циклом? Как выйти с положения?
С дискретностью(разрешающей способностью) в 1мс не получится, а вот с дискретностью равной одному времени цикла выполнения программы - вполне.
Точность будет +- 1/2 времени цикла.
ЗЫ
Вложение 48368
Огромное спасибо, буду разбираться.
Первый вариант - больше наглядности
Второй вариант - взял первый и немного упростил
Вложение 48370
Доброго дня, подскажите плиз:
для ПЛК-63 , как узнать адреса регистров переменных из проекта для передачи их по modbus? Если ПЛК-100, то в конфигураторе сodesys2.3 можно добавить подэлемент, назвать переменную и адреса регистров присваиваются автоматически, а для плк-63 меню неактивно. библиотеки syslibtime и modbus установлены.
И возможно ли простым способом редактировать расположение данных на дисплее, как в OwenLogic - менеджер экранов для ПР-200?
Адреса назначаются вручную в PLCConfiguration. Надо иметь в виду, что если планируете групповой опрос то необходимо сдвинуть адрес опроса на 1024 кажется. Сейчас точно не помню, напишите в личку если не найдете.
По простому конфигурированию дисплея - нет только как в докуметации на библиотеку.
Добрый день форумчане сам новичок в программировании на Codesys столкнулся с поблеклой написанный проект работает в связке компьютер плк110 панель ип320 нормально но стоит только отключить компьютер от плк и и обесточить и включить плк как с панелью и входами расширения пропадает связь и у меня такое подозрение что программа не записана так как надо . может кто подскажет что я делаю не так?