Thread Content
Посмотрим, кто из экспертов по программированию сможет помочь с переводом следующей программы. Это действительно сложно: у этого модуля есть четыре вывода – входные: IN, PT; выходные: Q, ET. FUNCTION_BLOCK TM (* Внешний интерфейс *) VAR_INPUT IN : BOOL ; (* Входной сигнал *) PT : TIME ; (* Время импульса *) END_VAR VAR_OUTPUT Q : BOOL ; (* Выходной импульс *) ET : TIME ; (* Прошедшее время *) END_VAR VAR M : BOOL ; (* Состояние *) T0 : DT ; (* Время начала работы *) END_VAR IF NOT Q THEN IF IN AND NOT M THEN Q := TRUE ; T0 := GetTimer() ; END_IF ; IF NOT IN THEN ET := T#0ms ; END_IF ; ELSE ET := GetTimer() - T0 ; IF ET >= PT THEN ET := PT ; Q := FALSE ; END_IF ; IF ET < PT THEN Q := M; END_IF; END_IF ; M := IN ; END_FUNCTION_BLOCK
Это, должно быть, программа, написанная в структурированном тексте TRICON ST. На самом деле это просто импульсный триггер: IN — вход для обнаружения сигнала, а PT — параметр, задающий время импульса. Q — это импульсный выход, а ET — это время, с которого импульс уже активирован.
Использовать ST для написания программ — бессмысленно, гораздо лучше использовать FBD и LAD.
Да, писать с использованием ST не имеет особого смысла, но в современных системах это всё ещё широко распространено
Спасибо, действительно сложно, совсем не понимаю. Раньше привык к программированию с использованием блоков функций, спасибо
ST позволяет гибко управлять процессами — можно настраивать его по своему усмотрению. Для реализации функций, которые сложно реализовать с помощью обычной логики, можно использовать ST в качестве средства для более продвинутого управления.