Сергей, мне кажется на такой совсем не конкретный вопрос можно ответить разве что ссылкой на Видео курс "Программирование ОВЕН ПЛК"
Вид для печати
Сергей, мне кажется на такой совсем не конкретный вопрос можно ответить разве что ссылкой на Видео курс "Программирование ОВЕН ПЛК"
Собственно у меня есть несколько более конкретный вопрос:
соорудил модуль для задачи "Синхронизация состояния битов ModBus и DO (переменная Lamp) с возможностью изменения этих переменных в другом месте":
Вложение 33303
Все работает прекрасно, но меня не покидает ощущение, основанное, видимо на убеждении типа "я знаю что ничего не знаю" ;) что все это можно сделать как-то гораздо красивее, и/или компактнее, что-ли. Поскольку таких модулей в программе будет довольно много, оптимизировать было бы очень даже не вредно.
Как вариант думаю создать FB на ST, но пока только умею copy/past на этом языке.
Подскажите пожалуйста: существует готовое решение (блок) для подобной задачи?
Здравтвуйте, как в ПЛК-110 М первой модификации сбросить IP-адрес?
Нажатие СБРОС не помогает, нажатие СБРОС и удержание 30сек не помогает. адрес 10.0.6.10 не пингуется
Подскажите, как сбросить?
Помогите, пожалуйста.
К аналоговому входу ПЛК подключен преобразователь тока. Как в программе получить переменную, которая хранила бы среднее значение тока за последние 10 секунд?
Проект на ST, переменная REAL.
petera, как всегда большое спасибо и низкий поклон. Можем с вами в ЛС пообщаться? Если да, напишите, пожалуйста.
Вставлю 5 копеек, такой вариант не покажет среднюю за ПОСЛЕДНИЕ 10 секунд в ЛЮБОЙ момент.
Для накопления средней за 10 секунд понадобится как минимум 1 массив из 10 переменных ( с точностью разрешения в 1 секунду или больше при большей точности) и алгоритм заполняющий массив циклически.
Данный же вариант кода будет показывать среднюю температуру за 10 секунд с момента НАЧАЛА измерения (его исполнения).
Добрый день.
Начинаю изучать CoDeSys и ПЛК160 и сразу возник вопрос.
У ПЛК160 16 дискретных входов.
Создал проект в CoDeSys начал переименовывать входы.
В "Fast discrete inputs" 4 входа(на скрине пронумеровано №1), в "Discrete inputs" 2 блока, на одном (на скрине №2) написано 8 входов и там 8 переменных, во втором блоке(на скрине №3) 4 входа, но снова 8 переменных.
Вложение 33405
Не понял почему 4 входа, но 8 переменных. Проясните?
И какие биты соответствуют каким входам на самом ПЛК, по номерам имею в виду?
Переменных 8, потому что переменная, отвечающая за дискретные входы имеет тип BYTE (8 бит), типов менее 8 бит не существует.
Поэтому был применен минимальный тип данных.
Значащие биты 0-3.
Более подробно о соотнесении переменных со входами:
Вложение 33418
Осинский Алексей
Огромное спасибо! Коротко и ясно.
Добрый день.
Проект в CoDeSys 3.5 SP7 для СПК110. В глобальных переменных объявлено 26 RETAIN переменных INT и 26 RETAIN переменных WSTRING.
В состав других объектов переменные не входят. При загрузке в режиме эмуляции получаю сообщение о недостатке энергонезависимой памяти. В сообщении также указано, что использовано 162 байта из доступных 124.
С таким, относительно большим количеством RETAIN переменных сталкиваюсь впервые. Подскажите, пожалуйста, как поправить ситуацию?
SIZEOF(arr2) сколько показывает? А при WSTRING(14)?
SIZEOF(arr2) не научился пользоваться (не было проблем). При WSTRING(14) загрузка выполняетсябез ошибок.
Во вложении текст объекта "Глобальные переменные".
SIZEOF(arr2) сколько показывает?
Массив не причем. Убрал его, а ситуация не изменилась совсем.
При этом, c другими типами переменных нет вопросов.
а я разве говорил что проблема в массиве? Если Вы пишите что проблема в объеме памяти ретайнов, то внимательно присмотритесь из чего состоит Ваш ретайн, из строк с размером по умолчанию, а теперь попробуйте этим строкам задать фиксированный размер меньшего значения, чтоб хватало на самый длинный текст
так может сесть и поизучать основы программированияЦитата:
не научился пользоваться (не было проблем)
WSTRING переменная по умолчанию занимает 162 байт памяти (81 символ по 2 байта на символ).
В Вашем случае 26 переменных типа WSTRING займут 4212 байт.
Я проверил, ошибка действительно должна выглядеть вот так:
C0103: Out of retain memory: Variable 'm_awsTestWstrings', 4212 bytes (Largest contiguous memory gap 4064).
Не совсем понятно, почему в Вашем случае всего 162 байта?
Приложите, пожалуйста, проект.
Какую задачу Вы решаете, сохраняя строки в энергонезависимой памяти?
Опишите задачу, подумаем как еще ее можно решить.
Спасибо, capzap.
Задал длину строк, все заработало.
Спасибо, Алексей.
Вопрос решен.
Задача сохранять строки в энергонезависимой памяти - дать возможность оператору два-три раза в день делать краткие комментарии значениям переменных.
Народ, столкнулся с непонятной проблемой при работе Сп270, при переходе от экрана к экрану посредством функциональных кнопок, панель уходит в перезагрузку, при подключенном контроллере, при отключенном все работает как часы, чем может быть вызвана такая реакция?
Собственно вот, на суждение и замечания. Где косяк, я не вижу.
Сделайте панель мастером , а плк slave. Думаю проблемы пропадут
Без смены мастер слейв, еще варианты может будут?
Добрый день подскажите пожалуйса !
что означает треугольник на входе блока или (OR) снизу? Спасибо
Кто нибудь сталкивался с проблемой записи параметров в ПЧВ1 такого рода: с панели ЛПО задаю напряжение двигателя, выключаю питание, потом включаю, значение напряжения сохраняется, а если через RS485 пишу в параметр 1-22 оно меняется, но после выключения питания, сбрасывается до значения установленного ранее на ЛПО.
Задача стоит настроить ПЧВ с ПЛК по RS485(Т.е. задать основные параметры и режимы работы), но не понятно почему сбрасывается этот параметр, другие не трогаю, мощность двигателя не меняю, ничего кроме записи параметра 1-22.
Прошу совета . Нужно точно дозировать вес жидкости из куба (1м3) , непрерывный поток кг/ч качает насос с частотником . Думаю правильнее использовать весовое оборудование , а расход вычислять по уменьшению массы . К расходомерам нет доверия - жидкости используем разные по плотности и текучести .
Какое весовое оборудование посоветуете ? Может есть в продаже готовое оборудование (терминал с датчиками массы ) На выходе нужно 4-20ма т.е 0-100кг/ч чтобы подключить вместо расходомера .
Не будет ли проблемой дозировать такой малый расход на весах в 1т. ?
Любые 4 тензодатчика номиналом на 250 кг и МВ110-1ТД
Добрый вечер! В русскоязычной версии CoDeSys в языке SFС не удаляются и не выделяются для удаления шаги и переходы.
Это недоработка или все таки это возможно? Тогда как это сделать?
Караван.
Шаг можно удалить только совместно с переходом, иначе никак. Поэтому выделяйте и шаг и переход вместе и удаляйте сколько вам влезет.
Сделал программу codesys на плк100 , с ОРС (codesys) визуализация с Simple-Scada . К контроллеру подсоединён МУ110 но от отдельного питания .
При отключении питания контроллера на 2 мин и включения , перестаёт работать . Simple-Scada на кнопках (!) . Загрузочный проект создавал . Что я делаю не так ?
Ещё при загрузке проекта выскакивает окно - #2000:2000.12.16 19:19:28 # 1PLC STARTED и восклицательный знак в жёлтом треугольнике .
Вот также как на видео . https://www.youtube.com/watch?v=Es3c2e8GwvI
Автор видео говорит , что при пропадании питания , нужно программу перезагружать . И ничего не поделаешь . Это действительно так ? Если да , то годятся ли плк другой серии - 110 или 160 ?
Здравствуйте. Есть такой вопрос:
Имеется структура, например Control : ARRAY[1..MaxQuantityAlert] OF SMS_notification:= (Alert:= FALSE, NumMain:=0,NumSpare:= 9(0), Mode:=0, Msg:='',Count:=0);
Как можно обнулить переменные в программе NumMain, начиная от 1 и до MaxQuantityAlert?
Control[1-MaxQuantityAlert].NumMain:=0; пробовал так, но в эмуляции без ПЛК ругается на неверный индекс массива