Мы пытаемся выполнить измерение/вычисление в реальном времени на выборочных данных. Наш предыдущий опыт был основан на C
программировании. Интересно, может ли кто-нибудь помочь мне перенести структуру программирования c
в реальном времени в структурированный текст ПЛК IEC61131?
Для цикла управления в реальном времени (с постоянным циклом цикла) нам нужен таймер запуска, таймер окончания и функция ожидания, которая работает следующим образом:
while(1) {
t_start=timems(); /* a variable gets the current processor time in ms*/
/*... here the function performs the calculation...*/
t_stop=timems(); /* a variable gets the current processor time in ms*/
deltaT=t_stop-t_start; /* time difference between the start of the loop and end of the loop is calculated*/;
waitms(loop_constant-deltaT); /* the loop waits for the remainder of the constant loop time before the next iteration*/
}
В частности, мне интересно, как мы можем реализовать эти временные структуры внутри IEC61131? Я думаю, мы можем сделать задержку с помощью TON. Тем не менее, любые советы о том, как получить время от процессора, приветствуются.
(В этом сообщении обсуждается, что можно написать код и передать его IEC 61131. Однако в образовательных целях предпочтительнее написание кода внутри IEC 61131.)
p.s.1: Я работаю над устройством SEL-3350, оснащенным прошивкой CODESYS для написания программ IEC61131.
p.s.2: после пары дней поиска я понял разницу между управлением в реальном времени на основе программирования на C и на IEC61131 (используя CODESYS).
По сути, когда вы кодируете устройства ПЛК, у вас есть возможность внутри диспетчера задач настроить свойства цикла обработки контроллера. Следовательно, в отличие от «C», нет необходимости выполнять бесконечный цикл (пока (1)) и программное обеспечение позаботится об этом. Например, в среде CODESYS вы выбираете тип программы как «циклический» и интервал времени как «константу цикла», и это будет похоже на код C, упомянутый выше.
"C"
код? И мы не переводческая служба. - person too honest for this site   schedule 24.07.2017task
, где вы можете выбрать, как часто он сканирует (например, 1 мс, 10 мс, 100 мс и т. д.). - person mrsargent   schedule 25.07.2017