// передача триггеров в частотник
front_on_delayTimer(IN:=front_on_delayTimer_start, PT:=front_delayTime); // Запуск таймера задержки после поднятия фронта
front_off_delayTimer(IN:=front_off_delayTimer_star t, PT:=front_delayTime); // Запуск таймера задержки после снятия фронта
IF (G.ROT <> G.ROT_SET) THEN pchv_send:=TRUE; G.ROT:=G.ROT_SET; END_IF
IF (G.FREQ <> G.FREQ_SET) THEN pchv_send:=TRUE; G.FREQ := G.FREQ_SET; END_IF
IF pchv_send AND pchv_send_en THEN pchv_send1Completed:=FALSE;pchv_send:=FALSE; END_IF
// установка переднего фронта
IF NOT pchv_send1Completed THEN pchv_send_en:=FALSE;
pchv_send1Completed := TRUE; // Установка флага завершения первого действия
front_on_delayTimer_start:=TRUE;
G.TR1:=G.TR2:=TRUE; // включить передачу команды управления
END_IF
// снятие переднего фронта
IF front_on_delayTimer.Q AND pchv_send1Completed AND NOT pchv_send2Completed THEN
front_on_delayTimer_start:=FALSE; // Сброс таймера
front_off_delayTimer_start:=TRUE;
pchv_send2Completed := TRUE; // Установка флага завершения второго действия
G.TR1:=G.TR2:=FALSE; // выключить передачу команды управления
END_IF
// задержка после снятия фронта
IF front_off_delayTimer.Q AND pchv_send2Completed THEN pchv_send2Completed:=FALSE; front_off_delayTimer_start:=FALSE; pchv_send_en:=TRUE; END_IF