Страница 800 из 811 ПерваяПервая ... 300700750790798799800801802810 ... ПоследняяПоследняя
Показано с 7,991 по 8,000 из 8103

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #7991

    По умолчанию

    Cs-Cs, не нагружайте человека дополнительной информацией. Ему нужна функция, а не функциональный блок. Не нужно смешивать все в кучу - еще больше запутается. Что такое FB, как он работает и чем от простой функции отличается - это уже "темы" последующих "уроков".
    лучше бы подсказали чем обижать и выпендриваться своими знаниями
    Даже и мысли не возникало кого-то обидеть. Дело не в выпендреже и не в блеске знаний, а в том, что человеку (на будущее) нужно дать не просто информацию, а знания, чтобы при написании той или иной строчки кода, человек понимал (сам, своей головой) что он пишет и зачем. У меня, например, вызывает сложности написание доходчивого (для другого человека) толкования, с примерами (в картинках), на "несколько листов А4". Мои тараканы, конечно, знают и понимают то, что им нужно, но по-своему. По азам есть много авторов, которые, на мой взгляд, более подробно и грамотно смогут объяснить, в изложенных ими материалах, те или иные моменты с нюансами/тонкостями, с примерами (примеры очень важны, потому как теория без практики очень плохо усваивается и быстро забывается). Первое, что попалось под руку - "РП ПЛК63.73.pdf", страница 32 - краткое описание, что из себя представляет функция. Вот тут есть информация как вызывать функцию. Чтобы вызвать функцию, нужно чтобы она присутствовала в проекте, не важно где, написанная собственноручно в перечне POU или в добавленной к проекту библиотеке.
    Пример от меня: Задача - "склеить" две строки в одну. Для этого можно воспользоваться функцией "CONCAT" из библиотеки "STANDARD.LIB". Если библиотека не добавлена в проект, то необходимо ее добавить, для этого переходим на вкладку "Ресурсы", двойной клик по "Менеджер библиотек", правой кнопкой мыши в окне перечня библиотек, выбираем "Добавить библиотеку...", идем в (путь по умолчанию) "C:\Program Files\3S Software\CoDeSys V2.3\Library", ищем там файл "STANDARD.LIB", двойной клик по нему. Всё, библиотека добавлена в проект.
    Код:
    PROGRAM PLC_PRG
    VAR
       Str1 : STRING; (*первая склеиваемая строка*)
       Str2 : STRING; (*вторая склеиваемая строка*)
       Str3 : STRING; (*Конечный результат*)
    END_VAR
    
       Str1 := 'Привет,';
       Str2 := ' МИР!';
       Str3 := CONCAT(Str1, Str2);
    В результате работы функции "CONCAT", мы получим значение "Привет, МИР!" в переменной Str3.

    Бывает необходимо, чтобы функция выполнила какие-либо действия, но возвращаемый ею (функцией) результат нам не важен. В таком случае, функция просто вызывается в теле кода с параметрами. Например, есть такая функция, которая очищает экран ПЛК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.

    Код:
    FUNCTION MathsPlus : INT
    VAR_INPUT
       Par1 : INT;
       Par2 : INT;
    END_VAR
       MathsPlus := Par1 + Par2;
    Открываем "PLC_PRG", добавляем в область объявления переменных переменную "Res", в области кода вызываем, добавленную нами собственноручно, функцию с параметрами (с присваиванием/передачей значений переменным функции):
    Код:
    PROGRAM PLC_PRG
    VAR
       Res : INT;
    END_VAR
       Res := MathsPlus(1, 3);
    В результате работы функции и кода в "PLC_PRG", переменная "Res" будет содержать значение 4 (четыре).

    Как-то так... озадачили меня с утра... тараканы еще проснуться не успели, а я их палкой...
    Последний раз редактировалось Spawn; 07.09.2020 в 03:31.

  2. #7992

    По умолчанию

    Спасибо за все разъяснения. Я не программист. И правильно написать для меня, как я понял проблема. Начал думать, что мои коллеги меня тоже не понимают. Сказали, что объяснять умею. За ваше время готов отблагодарить пивом, конфетами или деньгами в размере презента. Я понимаю что такое функция и ваши примеры мне хорошо понятны и я их читал в руководстве и с ними работал, проверял. Как добавлять библиотеки и свои функции в руководстве понятно для меня расписано.
    Я в начале прикреплял картинки, картинку(дублирую). У меня вопрос был, вот есть функции в библиотеках в частности OSCAT Basic функция SCALE. 1. переменные X,K,O,MX,MN-нужно в скобках функции, вводить соблюдая очередность согласно картинке или таблицы входы сверху вниз, или можно не соблюдать очередность. 2. Есть примеры где вводят сразу число, возможно через запятую присваивать данной функции значения констант, числа). С Уважением Павел.2020-09-07_233535.jpg

  3. #7993

    По умолчанию

    Цитата Сообщение от stepavel Посмотреть сообщение
    Спасибо за все разъяснения. Я не программист. И правильно написать для меня, как я понял проблема. Начал думать, что мои коллеги меня тоже не понимают. Сказали, что объяснять умею. За ваше время готов отблагодарить пивом, конфетами или деньгами в размере презента. Я понимаю что такое функция и ваши примеры мне хорошо понятны и я их читал в руководстве и с ними работал, проверял. Как добавлять библиотеки и свои функции в руководстве понятно для меня расписано.
    Я в начале прикреплял картинки, картинку(дублирую). У меня вопрос был, вот есть функции в библиотеках в частности OSCAT Basic функция SCALE. 1. переменные X,K,O,MX,MN-нужно в скобках функции, вводить соблюдая очередность согласно картинке или таблицы входы сверху вниз, или можно не соблюдать очередность. 2. Есть примеры где вводят сразу число, возможно через запятую присваивать данной функции значения констант, числа). С Уважением Павел.2020-09-07_233535.jpg
    stepavel, создайте пустой проект в CodeSys, попробуйте реализовать все ваши вопросы кодом, запустите проект в режиме симуляции и посмотрите что будет происходить. Сами все поймете.

  4. #7994

    По умолчанию

    Спасибо большое. С меня пиво(в личку). Много дней кратковременных размышлений(моих), как все это проверить. элементарное решение не мог увидеть. Spawn отдельное спасибо, что понял меня. Функцию - отработал, посмотрел, понял. Как дойду до следующего ступора напишу.

  5. #7995

    По умолчанию

    Подскажите что это за файлы, открываю один из них, а тм абракадабра ЧТо за файлы.png, плк110 60 v2

  6. #7996
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    240

    По умолчанию

    Цитата Сообщение от Егор Шелдышов Посмотреть сообщение
    Подскажите что это за файлы, открываю один из них, а тм абракадабра ЧТо за файлы.png, плк110 60 v2
    Вот содержимое моего ПЛК 110-30 [M2]:
    filedir
    Код:
    Journal.dat
    debug.txt
    local_addres.dat
    DEFAULT.PRG
    DEFAULT.CHK
    source.dat
    DOWNLOAD.SDB
    А отчего собственно такой вопрос возник? Какая предыстория? Может быть Ваша текущая программа что-то там пишет?
    Последний раз редактировалось Rednaxel; 11.09.2020 в 09:56.

  7. #7997
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    240

    По умолчанию

    И здравствуйте коллеги!

    Может ли кто-нибудь прояснить вопрос смены состояния питания ПЛК 110 [M2] ?

  8. #7998

    По умолчанию

    Цитата Сообщение от Rednaxel Посмотреть сообщение
    Вот содержимое моего ПЛК 110-30 [M2]:
    filedir
    Код:
    Journal.dat
    debug.txt
    local_addres.dat
    DEFAULT.PRG
    DEFAULT.CHK
    source.dat
    DOWNLOAD.SDB
    А отчего собственно такой вопрос возник? Какая предыстория? Может быть Ваша текущая программа что-то там пишет?
    Хотел ПЛК 110 60м2 подключить через ПМ01 к ОРС серверу, вчера бился не получалось никак, поэтому подумал может быть причина в каком нибуть из тех файлов, сегодня все таки удалось запустить! Хотя в плк ничего не записывал кроме файла local_addres.dat и не использовал никаких библиотек по работе с файлами
    Последний раз редактировалось Егор Шелдышов; 11.09.2020 в 12:58.

  9. #7999

    По умолчанию ПЛК110 как шлюз Modbus TCP -> modbus RTU

    Добрый день. Что то я совсем запутался.
    Есть связка:
    ОВЕН СКАДА Телемещаника Лайт ->Ethernet->ПЛК110->modbus RTU->датчики температуры ПВТ100.
    Вопрос 1:
    -могу ли я напрямую со Скады обращаться к датчикам, без реализации опроса датчиков контролоером. Т.е ПЛК110 как бы в роли шлюза.
    Вопрос 2:
    -какие настройки необходимы в CoDeSys чтобы ПЛК110 работал в таком режиме. При этом сам ПЛК110 будет иметь свои регистры modbus для обмена.

    Какие настройки необходимы в Скаде Телемеханика Лайт.
    Пробовал создать контроллер как no target связь по TCP. А в нем канал ввода вывода modbus и датчик ПВТ100 (из встроенной библиотеки). У него настроил RTU over TCP.

    Но ничего не выходит. Ни опроса ПЛК, ни датчиков. Или надо было ПЛК подключать как Эксель Модбус......
    Памагите)))) укажите путь))

  10. #8000
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,515

    По умолчанию

    Цитата Сообщение от Welldi Посмотреть сообщение
    ...ОВЕН СКАДА Телемещаника Лайт ->Ethernet->ПЛК110->modbus RTU->датчики температуры ПВТ100....
    Вопрос 1:-могу ли я напрямую со Скады обращаться к датчикам, без реализации опроса датчиков контролоером. Т.е ПЛК110 как бы в роли шлюза.
    Вопрос 2:
    -какие настройки необходимы в CoDeSys чтобы ПЛК110 работал в таком режиме. При этом сам ПЛК110 будет иметь свои регистры modbus для обмена.
    1. В такой конфигурации - нет в принципе. Если "как бы шлюз" - см. 2.
    2. В ПЛК внутрь ветки tcp-слейва вставить rtu-мастера опрашивающего датчики и разобратся с адресацией регистров. Но проще разнесенные области с копированием данных из одной в другую (плач про лишние строчки оставьте домохозяйкам).

    Пробовал ... .
    Проект - где ?
    . У него настроил RTU over TCP.
    У кого - у него ? В конфигурации ПЛК этого нет как класса.
    Последний раз редактировалось Валенок; 12.09.2020 в 12:45.

Страница 800 из 811 ПерваяПервая ... 300700750790798799800801802810 ... ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •