Просмотр полной версии : Библиотеки CAA
Доброго времени суток!
Сразу скажу - в ПЛК новичок. Делал небольшой проект на ПЛК100, на FB. Есть опыт программирования МК (STM, Microchip) на С.
Сейчас присматриваюсь к СПК, т.к. нужно визуализировать некоторые данные.
Есть ряд вопросов на которые не смог ничего найти поиском:
1. Установил Codesys 3.5 - во встроенной помощи идет описание библиотек CAA в качестве системных, но этих библиотек нет в репозитории. Где их можно взять? Или СПК поддерживает только небольшое количество CAA которые есть в \intern\CAA\.....
2. Где можно найти описание на библитеки \System\Syslibs?
3. Возможно ли в СПК использовать таймеры? Если да то с какой библиотекой?
4. Опять же к вопросу по таймерам - как именно вызывается callback функция, механизм вызова? Функция будет вызываться только в основном цикле или в т.ч. и в системной области программы ПЛК (по аналогии с прерыванимем)?
Прошу прощения если вопросы глупые.
С уважением,
Сергей
Евгений Кислов
21.08.2018, 07:19
Добрый день.
1. Дерево библиотек не очень удобное. Нажмите на эти кнопки - и увидите их все в виде списка:
38416
2. Какие именно библиотеки вас интересуют? Для многих из них вообще нет описания (за исключением встроенного в библиотеку).
3. Да, см. библиотеку Standard (обычно она присутствует в проекте по умолчанию).
4. Таймеры представлены в виде функциональных блоков (объектов). При запуске таймера запоминается значение системного тика и далее при каждом вызове таймера оно сравнивается с текущим. По истечению заданного интервала времени выход таймера Q принимает значение TRUE. Т.е. таймеры - асинхронные, вызываются только в программе пользователя.
Cсылки, которые могут вам помочь:
https://habr.com/post/402315/ (реализация таймеров CODESYS на С - поможет понять их внутреннее устройство)
http://prolog-plc.ru/docs/TimeExperience.pdf (про таймеры - со стр. 20)
http://www.codesys.ru/docs/st_c.pdf (статья "Язык ST для С программиста")
1. Спасибо, так действительно видно.
2. Буду копать.
3.4. Возможно я некорректно сформулировал вопрос. К таймерам из библиотеки стандарт у меня вообще никаких вопросов нет. Я разбираюсь с примером на ST для библиотеки CAA.Timers. В ней как раз на событие регистрируется callback функция. Вообще у меня к этому примеру есть ряд вопросов:
А. объявление переменной CB_Timer - выдает ошибку, при замене на CB.Timer ругаться перестает... Зачем в примере с подчеркиванием сделано объявление?
Б. объявление teError, так же выдает ошибку. Тип TMR.ERROR я найти не смог ни в одной библиотеке, хотя судя по тому же хелпу этот тип должен быть в библиотеке CAA Timer, но этой библиотеки у меня нет.
Дальше пока не копал.
38438
Евгений Кислов
21.08.2018, 17:58
А зачем вам CAA Timers? Какую задачу необходимо решить?
Планировал сделать на нем измеритель частоты сигнала - вызов функции циклический, читаем текущее значение счетчика модуля цифрового ввода, вычитаем предыдущее делим на время таймера получаем частоту. Так то по большому счету можно и TON использовать.
Но ведь и библиотека CAA Timers должна работать, так что для чистоты эксперимента надо разобраться. Ну и судя по первым признакам вызов функции должен происходить строго по срабатыванию таймера, хотя возможно я и ошибаюсь но никакой литературы даже на английском я не нашел.
Евгений Кислов
21.08.2018, 19:18
Вам, по-моему, даже таймер не нужен. Достаточно системного тика:
tVar := TIME(); // значение системного тика в текущем цикле (tVar типа TIME)
По поводу CAA Timer сложно дать комментарии, но то, что в документации много ошибок - это факт.
Этот вопрос не связан с конкретно нашим контроллером. Вы можете запросить информацию у ПК Пролог (http://prolog-plc.ru/contacts) или напрямую у разработчиков CODESYS (https://store.codesys.com/, кнопка My Question справа).
спасибо, буду разбираться
не буду создавать новую тему спрошу здесь.
если использовать на первом порту самописный DCON, используя CAA Serial, а на втором порту использовать Modbus через мастер Codesys'а , они нормально друг с другом уживаются?
Евгений Кислов
09.10.2018, 08:41
не буду создавать новую тему спрошу здесь.
если использовать на первом порту самописный DCON, используя CAA Serial, а на втором порту использовать Modbus через мастер Codesys'а , они нормально друг с другом уживаются?
Да, порты независимые и друг на друга никак не влияют.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot