alexjdie писал(а):
по поводу вопроса о одновременной работе двух портов модуля SCU для этих FB - считаю без проблем, там же есть Port_Number.
PS: когда вставляете в проект этот FB, называете их по разному?
Да, при вставке называю их по разному. При анализе ФБ для обмена оказалось, что они используют фиксированные адреса памяти, что делает невозможной корректную работу двух ФБ одновременно в принципе. Попытка сделать аналогичный ФБ, но с нефиксированными переменными провалилась т.к. точно скопированные данные данного ФБ CX-Programmer отображает как ошибочные, что делает невозможным компиляцию кода. Даже в готовых ФБ явно содержатся части, выделяемые в CX-Programmer как ошибочные.
В связи с этим остаётся лишь один вариант: писать костыли. Предварительная идея костылей такова: написать ФБ (я придерживаюсь концепции написания ФБ), который каждый цикл поочерёдно активирует то один ФБ для обмена данными, то другой. Данный костыль показался мне самым логически верным, но я столкнулся с проблемой: второй ФБ активируется для обмена данными крайне редко: раз в 10-20 секунд, хотя битом активации обмпена (cmd_read) является P_0_1s.
Существуют ли более изящные костыли для решения данной проблемы? Если нет, то каким образом стоит заставить активироваться передачу гарантировано каждые 0,1с?