посмотрел страничку что предложили, там он работает с задержкой сигнала типa bool, а мне нужно с real(
так никто не поможет в данном случае?
за 2004 год последнее издание петрова?
Вид для печати
посмотрел страничку что предложили, там он работает с задержкой сигнала типa bool, а мне нужно с real(
так никто не поможет в данном случае?
за 2004 год последнее издание петрова?
Надо бы описать задачу подробнее. Что дано и что должны получить в итоге. А то не совсем понятно что Вам нужно.
Нужно смотреть библиотеку OSCAT
Вложение 15168
Вложение 15169
Вложение 15170
Три ФБ, различаются разрешением(дискретизацией) сигнала на выходе
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;
Пример работы ФБ FT_TN. Для наглядности на языке CFC
Вложение 15171 Вложение 15172
спасибо большое! разобрался поверхностно с элементами- как надо действует, завтра посмотрю КАК это работает)
у меня несколько вопросов...
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
Вложение 15227
2. Где Вы увидели 2,2 с? Я увидел 220 мс:)
А Вас не смущает, что половина периода исходного сигнала на трассировке равна примерно 460 мс, а должна быть 7500 мс?
Скорей всего Вы пытаетесь запускать трассировку в эмуляции. Тогда покажите настройки сэмплирования. Скорей всего Вы задали интервалы выборок несколько мс, а для эмулятора нужно задавать сотни мс, что бы получить более менее правильные результаты.
Дело в том, что в эмуляции используется системный таймер компьютера и сама Windows не является оп.системой реального времени.
Запускать трассировку нужно в режиме онлайн соединения с живым ПЛК, в крайнем случае можно использовать PLC WinNT. И не нужно устанавливать интервалы в трассировке меньше чем время цикла ПЛК. Например
Выполнение программы и трассировки в эмуляторе
Вложение 15228
Результат
Вложение 15229 Вложение 15230
Хорошо видно, что в эмуляции трассировка с выборкой 20 мс отображается не верно.
Теперь эта же программа выполняется в PLC WinNT с теми же параметрами выборки
Вложение 15231
Здесь видно, что задержка сигнала действительно равна 4 сек.
3. Библиотека такой же проект кодесис. Добавить элемент можно так, же как и в проекте "Добавить объект.."
ЗЫ. Эта простейшая программа в эмуляторе имеет время цикла 63 мс, а в PLC WinNT примерно 16 мс.
а всё таки с GEN можно такое совершить?:)
добавил "OSCAT Basic Codesys / Twincat 2.x" вылезло вот - ошибка 3612 превышено максимальное кол-во POU.
вычленил из библиотеки, но там еще полно вложенных функций было, мне надо каждую из них искать вручную? нельзя так вытащить функцию из библиотеки, чтобы всё вложенное так же утащилось?)
такие как MATH - это элементы всё той же библиотеки? не могу его найти помогите найти сего динозавра, нашёл всё остальное что нужно, а это не нашел
хочу нормальный sin(, если с GEN нельзя так сделать
и ещё подскажите как в цифровой трассировке сделать адекватный масштаб по оси Х - хотябы секунд 40 реальных чтоб помещалось...
1. Для GEN из Util.lib для синуса или косинуса можно так
Вложение 15286
2.ошибка 3612 превышено максимальное кол-во POU.
Для PLCWinNT увеличить число POU в настройках целевой платформы
Вложение 15287
Для ПЛК63/73 такой способ не доступен. В этом случае либо экспорт из библиотеки и импорт в проект нужных ФБ(можно несколько за одну операцию), либо в опциях проекта для генератора кода исключить неиспользуемые POU.
Только, чтобы исключить неиспользуемые POU необходимо хотя бы один раз выполнить компиляцию проекта, но при этом получается "ошибка 3612 превышено максимальное кол-во POU".:(
По этому вначале нужно выбрать другой ПЛК, даже тот же PLCWinNT или None, выполнить компиляцию проекта. Затем исключить неиспользуемые POU
Вложение 15288
Затем в настройках целевой платформы выбрать ПЛК63/73, в конфигурации ПЛК в меню "Дополнение" выполнить "Стандартная конфигурация".
3."такие как MATH - это элементы всё той же библиотеки? не могу его найти помогите найти сего динозавра"
Нужно также не забывать про другие ресурсы библиотек, глобальные переменные и пользовательские типы данных:rolleyes:
Вложение 15289
Вложение 15290
Если шаг выборки 100мс, то поместится 49 сек.
Анимация:
можно вместо трассировки использовать визуализацию с трендом
Вложение 15292