посмотрел страничку что предложили, там он работает с задержкой сигнала типa bool, а мне нужно с real(
так никто не поможет в данном случае?
за 2004 год последнее издание петрова?
посмотрел страничку что предложили, там он работает с задержкой сигнала типa bool, а мне нужно с real(
так никто не поможет в данном случае?
за 2004 год последнее издание петрова?
Надо бы описать задачу подробнее. Что дано и что должны получить в итоге. А то не совсем понятно что Вам нужно.
Нужно смотреть библиотеку OSCAT
Захват-1.png
Захват-2.png
Захват-3.png
Три ФБ, различаются разрешением(дискретизацией) сигнала на выходе
FT_TN8:
FT_TN16:
FT_TN64:
Используется функция T_PLC_MS из той же библиотеки
Код:FUNCTION T_PLC_MS : DWORD VAR CONSTANT debug : BOOL := 0; N : INT := 0; offset : DWORD := 0; END_VAR VAR tx : TIME; END_VAR tx := TIME(); T_PLC_MS := TIME_TO_DWORD(Tx); IF debug THEN T_PLC_MS := (SHL(T_PLC_MS,N) OR SHL(DWORD#1,N)-1) + OFFSET; END_IF;
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Пример работы ФБ FT_TN. Для наглядности на языке CFC
Захват-2.png Захват-1.png
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
спасибо большое! разобрался поверхностно с элементами- как надо действует, завтра посмотрю КАК это работает)
у меня несколько вопросов...
0-а что это за "библиотеку OSCAT"?
1- как сделать чтобы на выход подавался именно вещественный синус, а не "целый"?
2- мы же вроде задали 4 секунды, а "отпаузил" он лишь 2,2? и даже если считать с начала работы то тоже порядка 3,2 с, почему так? и с какого момента отсчет этого времени, с момента нажатия "Старт"?
3- как ДОБАВИТЬ элемент в библиотеку(как создавать новые библиотеки - понял, а как добавить элемент, не пойму)?
0.OSCAT - это сообщество разработчиков библиотек в стандарте IEC 61131-3 с открытым исходным кодом, существующее с 2006 года. Скачать библиотеки и документацию к ним можно по ссылкам из этой темы http://www.owen.ru/forum/showthread.php?t=14007. Для CDS v2.xx нужно качать "OSCAT Basic Codesys / Twincat 2.x"
1. Например взять генератор синуса из той же библиотеки OSCAT
1.png
2. Где Вы увидели 2,2 с? Я увидел 220 мс
А Вас не смущает, что половина периода исходного сигнала на трассировке равна примерно 460 мс, а должна быть 7500 мс?
Скорей всего Вы пытаетесь запускать трассировку в эмуляции. Тогда покажите настройки сэмплирования. Скорей всего Вы задали интервалы выборок несколько мс, а для эмулятора нужно задавать сотни мс, что бы получить более менее правильные результаты.
Дело в том, что в эмуляции используется системный таймер компьютера и сама Windows не является оп.системой реального времени.
Запускать трассировку нужно в режиме онлайн соединения с живым ПЛК, в крайнем случае можно использовать PLC WinNT. И не нужно устанавливать интервалы в трассировке меньше чем время цикла ПЛК. Например
Выполнение программы и трассировки в эмуляторе
2.png
Результат
3.png 4.png
Хорошо видно, что в эмуляции трассировка с выборкой 20 мс отображается не верно.
Теперь эта же программа выполняется в PLC WinNT с теми же параметрами выборки
5.png
Здесь видно, что задержка сигнала действительно равна 4 сек.
3. Библиотека такой же проект кодесис. Добавить элемент можно так, же как и в проекте "Добавить объект.."
ЗЫ. Эта простейшая программа в эмуляторе имеет время цикла 63 мс, а в PLC WinNT примерно 16 мс.
Последний раз редактировалось petera; 17.11.2014 в 04:57.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
а всё таки с GEN можно такое совершить?
добавил "OSCAT Basic Codesys / Twincat 2.x" вылезло вот - ошибка 3612 превышено максимальное кол-во POU.
вычленил из библиотеки, но там еще полно вложенных функций было, мне надо каждую из них искать вручную? нельзя так вытащить функцию из библиотеки, чтобы всё вложенное так же утащилось?)
такие как MATH - это элементы всё той же библиотеки? не могу его найти помогите найти сего динозавра, нашёл всё остальное что нужно, а это не нашел
хочу нормальный sin(, если с GEN нельзя так сделать
и ещё подскажите как в цифровой трассировке сделать адекватный масштаб по оси Х - хотябы секунд 40 реальных чтоб помещалось...
Последний раз редактировалось longalier; 18.11.2014 в 23:06.
1. Для GEN из Util.lib для синуса или косинуса можно так
1.png
2.ошибка 3612 превышено максимальное кол-во POU.
Для PLCWinNT увеличить число POU в настройках целевой платформы
Захват-3.png
Для ПЛК63/73 такой способ не доступен. В этом случае либо экспорт из библиотеки и импорт в проект нужных ФБ(можно несколько за одну операцию), либо в опциях проекта для генератора кода исключить неиспользуемые POU.
Только, чтобы исключить неиспользуемые POU необходимо хотя бы один раз выполнить компиляцию проекта, но при этом получается "ошибка 3612 превышено максимальное кол-во POU".
По этому вначале нужно выбрать другой ПЛК, даже тот же PLCWinNT или None, выполнить компиляцию проекта. Затем исключить неиспользуемые POU
Захват-4.png
Затем в настройках целевой платформы выбрать ПЛК63/73, в конфигурации ПЛК в меню "Дополнение" выполнить "Стандартная конфигурация".
3."такие как MATH - это элементы всё той же библиотеки? не могу его найти помогите найти сего динозавра"
Нужно также не забывать про другие ресурсы библиотек, глобальные переменные и пользовательские типы данных
Захват-5.png
Захват-7.png
Последний раз редактировалось petera; 19.11.2014 в 03:49.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Если шаг выборки 100мс, то поместится 49 сек.
Анимация:
можно вместо трассировки использовать визуализацию с трендом
Захват-1.png
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg