163 страница руководства программирования плк110\160
Вложение 50741
Вид для печати
163 страница руководства программирования плк110\160
Вложение 50741
ЕСЛИ LastError != 0 ТОГДА
АварияВсеПропало := ИСТИНА;
ИНАЧЕ
АварияВсеПропало := ЛОЖЬ;
КОНЕЦ_ЕСЛИ
Здравствуйте, есть вопрос по поводу работы входов на ПЛК110-24.60.Р-М , при подаче напряжения -24В на вход контроллер не реагирует на это, нету индикации и подтверждения сигнала в codesys .
Проблема решена. Причина банальна. Отсутствие контакта на нуле.
Невнимательность.
Спасибо. Займусь.
Вложение 50803 Здравствуйте, мне нужно пинговать устройство в сети. Нашел библиотеку OwenLibPing.lib на сайте Овен. Не получается ввести данные, Вложение 50804 не знаю как вбить пингуемый адрес?
Добрый день.
Адрес задается в HEX:
192.168.39.2 = 16#C0A82702
(192 = 0xC0, 168 = 0xA8, 39 = 0x27, 2 =0x02)
Рекомендую также ознакомиться с примером использования библиотеки - в него входит функция конвертации IP из строкового вида в DWORD:
https://ftp.owen.ru/CoDeSys23/07_Exa...xx/21_Ping.zip
Что означают эти синие стрелочки с в кодесис Вложение 50825
Добрый день..в cfc работают перекрестныее ссылки?...Места использования в программе выводит...перейти невозможно...кидает в раздел объявления переменных.
Вложение 50922
как вызывать любую функцию? что нужно исправить в данном примере
Вы перепутали, среда разработки не от сименса. Здесь каждое ПОУ только для чего то одного либо программы, либо ФБ либо функции
https://ftp.owen.ru/CoDeSys23/06_Doc...anual_v2.8.pdf раздел 3
Есть простые примеры на st как организовывать функцию поу и вызывать ее из программы. За ранее спасибо
Как правильно добавлять функцию в поу из библиотеки
Копировать код из библиотеки или можно просто добавить Блок функции? Из библиотеки
Нужно подключить нужную библиотеку к проекту через менеджер библиотек, после этого можно использовать функции из этой библиотеки в своем коде.
Добрый день! Есть плк100 2020 года, есть ли адаптеры юсб рс232, так как по юсб проблематично подключиться, по езернет не могу так как работаю с ПМ01. Прикол в том что один плк 100 по юсб можно подключить, а второй идентичный подключил только раз, залил програму, а после винда выдает ошибку юсб не опознано, может дело в прошивке?
тогда что я сделал не так в посте выше - дублирую. Вложение 50935
мне объявлять переменные не нужно? они привязаны с библиотекой. я просто вызываю в программе функцию?
Объявлять нужно именно переменные, а вы пытаетесь объявить функцию. Начните с просмотра примеров, тогда все станет ясно.
можно пример
или что у меня нет еще разВложение 50938
Вложение 50949
какие параметры, входы и выходы нужно писать в скобках функции?
x123:=SCALE_R(X, I_LO, I_HI, O_LO, O_HI); правильно я сделал? какой порядок очередности нужно соблюдать ввода в скобках в библиотеке это не написано, в библиотеке.
stepavel, Вы меня извините, конечно, но если для Вас вызов функции вызывает сложности, то может стоит начать с самого начала, а именно с мат. части по программированию на темы, например, "Что такое функция?", "Для чего нужна функция?" и т.д. и т.п.? На эти темы куча, уже существующей, информации на просторах сети Интернет, где все подробно расписано.
да тоже приношу свои извинения, работы много времени нет все читать и искать. да я понимаю что такое функция и для чего она нужна. но раз тема для новичков я и пишу в эту тему если нет желания можете не читать. если кому не сложно объяснить буду благодарен. У меня вопрос был как правильно на языке st в кодесис пишится функция мне ответили в примере для меня это понятно, но что в скобках нужно указывать формулу или вводные параметры функции? я прочитал справку кодесис, но хочется уточнения. как я понял что в скобках пишется через запятую вводные данные функции - это правильно? ввод воходных значений можно не через переменную а сразу число, и порядок вводных значений обязательно соблюдать?
stepavel Ага... работы много нетвремени песыт верно прастите тут запятая это мне функция нужна в общем лучше бы подсказали чем обижать и выпендриваться своими знаниями.
Так, да? А уважить тех, у кого просишь помощи (написать понятно и ясно) - это тоже работы много? Может у нас всех тоже работы много, и нам много работы в текст без знаковы препинаний и абзацев вчитываться работы много... Пхх.
Короче, функция на языке st в кодисись пишется при помощи отдельного POU которай надо дабавить в праэкд при пом прав кноп мыще но тебе функция нужна не вызов функциональуго блока нужен а это разные вещи функцыйа чтото вычисляет и возвращает результат о функционал блог работает как минепрограмма и может эметь много парам на вх-вых вот тебе это и надо ты объявляешь такой ФБ как переменную вразделе перем сверху так MyFB: FUNCTION_BLOCK; а потом в коде вставляешь его выхзов по кнопке F2 как вызов экземпляра и там будет чтоить типа MyFB (InVar :=, InVar2 :=, OutVar1 =>, OutVar2 =>) куда надо подставить те переменные куда ты хочешь передать или записать значения это если ты вызываешь заранее сделанный FB из библиотеки например таймер счётчик а свои функции надо объявлять через POU а не в VAR это не паскаль ни разу
Вот тут написан верный ответ. У меня тоже, как у тебя - работы много времени нет всё писать разборчиво разберись сам
Cs-Cs, не нагружайте человека дополнительной информацией. Ему нужна функция, а не функциональный блок. Не нужно смешивать все в кучу - еще больше запутается. Что такое FB, как он работает и чем от простой функции отличается - это уже "темы" последующих "уроков".
Даже и мысли не возникало кого-то обидеть. Дело не в выпендреже и не в блеске знаний, а в том, что человеку (на будущее) нужно дать не просто информацию, а знания, чтобы при написании той или иной строчки кода, человек понимал (сам, своей головой) что он пишет и зачем. У меня, например, вызывает сложности написание доходчивого (для другого человека) толкования, с примерами (в картинках), на "несколько листов А4". Мои тараканы, конечно, знают и понимают то, что им нужно, но по-своему. По азам есть много авторов, которые, на мой взгляд, более подробно и грамотно смогут объяснить, в изложенных ими материалах, те или иные моменты с нюансами/тонкостями, с примерами (примеры очень важны, потому как теория без практики очень плохо усваивается и быстро забывается). Первое, что попалось под руку - "РП ПЛК63.73.pdf", страница 32 - краткое описание, что из себя представляет функция. Вот тут есть информация как вызывать функцию. Чтобы вызвать функцию, нужно чтобы она присутствовала в проекте, не важно где, написанная собственноручно в перечне POU или в добавленной к проекту библиотеке.Цитата:
лучше бы подсказали чем обижать и выпендриваться своими знаниями
Пример от меня: Задача - "склеить" две строки в одну. Для этого можно воспользоваться функцией "CONCAT" из библиотеки "STANDARD.LIB". Если библиотека не добавлена в проект, то необходимо ее добавить, для этого переходим на вкладку "Ресурсы", двойной клик по "Менеджер библиотек", правой кнопкой мыши в окне перечня библиотек, выбираем "Добавить библиотеку...", идем в (путь по умолчанию) "C:\Program Files\3S Software\CoDeSys V2.3\Library", ищем там файл "STANDARD.LIB", двойной клик по нему. Всё, библиотека добавлена в проект.
В результате работы функции "CONCAT", мы получим значение "Привет, МИР!" в переменной Str3.Код:PROGRAM PLC_PRG
VAR
Str1 : STRING; (*первая склеиваемая строка*)
Str2 : STRING; (*вторая склеиваемая строка*)
Str3 : STRING; (*Конечный результат*)
END_VAR
Str1 := 'Привет,';
Str2 := ' МИР!';
Str3 := CONCAT(Str1, Str2);
Бывает необходимо, чтобы функция выполнила какие-либо действия, но возвращаемый ею (функцией) результат нам не важен. В таком случае, функция просто вызывается в теле кода с параметрами. Например, есть такая функция, которая очищает экран ПЛК63 (например) - "ClearScreen", находящаяся в библиотеке "Work_Mode.lib" (тоже должна быть добавлена в проект), которая после выполнения возвращает значение типа DINT (при успешном выполнении номер очищенного экрана или -1 в случае ошибки). Нас, допустим, не интересует возвращаемое значение, нам нужно, чтобы функция просто выполнила какие-то действия (в нашем случае очистила экран), тогда функция будет вызываться так:
Код:PROGRAM PLC_PRG
VAR
END_VAR
ClearScreen(0);
Пример собственноручно написанной функции:
В проекте, на вкладке "POU", жмем правой кнопки мыши по изображению папки с названием "POU" в дереве проекта, выбираем "Добавить объект...", в открывшемся окне вводим имя добавляемой нами функции в поле "Имя нового POU", например, "MathsPlus", выбираем "Тип POU" - "Функция", выбираем "Язык реализации" - "ST", выбираем "Тип результата:" - "INT", жмем кнопку "ОК". В дереве проекта появится новый POU с именем "MathsPlus" и откроется окно для редактирования кода. В области переменных оставляем только VAR_INPUT.
Открываем "PLC_PRG", добавляем в область объявления переменных переменную "Res", в области кода вызываем, добавленную нами собственноручно, функцию с параметрами (с присваиванием/передачей значений переменным функции):Код:FUNCTION MathsPlus : INT
VAR_INPUT
Par1 : INT;
Par2 : INT;
END_VAR
MathsPlus := Par1 + Par2;
В результате работы функции и кода в "PLC_PRG", переменная "Res" будет содержать значение 4 (четыре).Код:PROGRAM PLC_PRG
VAR
Res : INT;
END_VAR
Res := MathsPlus(1, 3);
Как-то так... озадачили меня с утра...:) тараканы еще проснуться не успели, а я их палкой...:)
Спасибо за все разъяснения. Я не программист. И правильно написать для меня, как я понял проблема. Начал думать, что мои коллеги меня тоже не понимают. Сказали, что объяснять умею. За ваше время готов отблагодарить пивом, конфетами или деньгами в размере презента. Я понимаю что такое функция и ваши примеры мне хорошо понятны и я их читал в руководстве и с ними работал, проверял. Как добавлять библиотеки и свои функции в руководстве понятно для меня расписано.
Я в начале прикреплял картинки, картинку(дублирую). У меня вопрос был, вот есть функции в библиотеках в частности OSCAT Basic функция SCALE. 1. переменные X,K,O,MX,MN-нужно в скобках функции, вводить соблюдая очередность согласно картинке или таблицы входы сверху вниз, или можно не соблюдать очередность. 2. Есть примеры где вводят сразу число, возможно через запятую присваивать данной функции значения констант, числа). С Уважением Павел.Вложение 50975
Спасибо большое. С меня пиво(в личку). Много дней кратковременных размышлений(моих), как все это проверить. элементарное решение не мог увидеть. Spawn отдельное спасибо, что понял меня. Функцию - отработал, посмотрел, понял. Как дойду до следующего ступора напишу.
Подскажите что это за файлы, открываю один из них, а тм абракадабра Вложение 51006, плк110 60 v2
И здравствуйте коллеги!
Может ли кто-нибудь прояснить вопрос смены состояния питания ПЛК 110 [M2] ?
Хотел ПЛК 110 60м2 подключить через ПМ01 к ОРС серверу, вчера бился не получалось никак, поэтому подумал может быть причина в каком нибуть из тех файлов, сегодня все таки удалось запустить! Хотя в плк ничего не записывал кроме файла local_addres.dat и не использовал никаких библиотек по работе с файлами
Добрый день. Что то я совсем запутался.
Есть связка:
ОВЕН СКАДА Телемещаника Лайт ->Ethernet->ПЛК110->modbus RTU->датчики температуры ПВТ100.
Вопрос 1:
-могу ли я напрямую со Скады обращаться к датчикам, без реализации опроса датчиков контролоером. Т.е ПЛК110 как бы в роли шлюза.
Вопрос 2:
-какие настройки необходимы в CoDeSys чтобы ПЛК110 работал в таком режиме. При этом сам ПЛК110 будет иметь свои регистры modbus для обмена.
Какие настройки необходимы в Скаде Телемеханика Лайт.
Пробовал создать контроллер как no target связь по TCP. А в нем канал ввода вывода modbus и датчик ПВТ100 (из встроенной библиотеки). У него настроил RTU over TCP.
Но ничего не выходит. Ни опроса ПЛК, ни датчиков. Или надо было ПЛК подключать как Эксель Модбус......
Памагите)))) укажите путь))