Я бы сказал более общно: программа ПЛК - сама по себе, а интерфейсы + входы/выходы - сами по себе.
Нет, никак невозможна, если подходить формально: блок F/R_TRIG даёт импульс РОВНО на ОДИН цикл программы.
Он не привязан ни к каким интерфейсам. Более того: передача данных по интерфейсу может потребовать:
* Времени (на линии бывает не только одно устройств, а несколько; обмен данными с ними требует времени)
* Повторной попытки (если на линии была помеха и первая посылка данных не дошла)
Поэтому, конечно же, профукает.
Здесь везде нужен другой подход. И тут есть стандартные решения:
а) Запись по изменению (есть в ПРках и ПЛК) или запись по команде (есть в ПЛК). Она говорит обмену по шине примерно так: "Как будет свободное время, пошли-ка запрос на запись вот этого вон туда". То есть, создаёт "задание" на запись, но не выполняет его мгновенно.
б) Забить на работу обмена и обрабатывать всё в программе по схеме "Если текущее не равно предыдущему и если мы это не меняли - то изменили по Modbus".




Ответить с цитированием
