Саша
Forum Member / Участник форума
Участник № / Member № 925
отправлено / posted
В FBD программе критичным является последовательность вычисления FBD блоков, есть необходимость обеспечить синхронность вычисления. Например в FBD программе есть участок из последовательных блоков 1) умножения, 2) деления, 3) вычисления абсолютного и 4)вычитания. Когда я работаю в эмуляторе FBD редактора, то наблюдаю следующую картину: условно говоря на 1-ом такте пересчета пересчитываются 1 и 2 блоки, на втором 3 и 4, а по алгоритму работы они все должны пересчитываться в течение 1-го цикла. По описанию не понятно какой принцип пересчета, как влияют номера FBD блоков на их пересчет, как работает FBD блок STEP, каким образом можно повлиять на последовательность пересчета в процессе разработки? Работаю в версии 5.12
Сообщения / Posts 54 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
FBD не могут вычисляться в несколько тактов - в одном такте выполнения программы вычисляются ВСЕ блоки программы. Только последовательность их вычислений в этом такте определяет кто будет вычислен раньше, а кто позже. Управлять с помощью STEP Вы не сможете, потому как этот блок сейчас не работает ни в Редакторе ни в МРВ. Очередность вычисления блоков зависит от их линий связи - кто с кем соединен друг за другом. У Вас как в режиме эмуляции пронумерованы блоки?
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sldk_buf
Forum Member / Участник форума
Участник № / Member № 2898
отправлено / posted
quote: в одном такте выполнения программы вычисляются ВСЕ блоки программы
Как я понимаю, если интерпретатор не успеет за такт пересчитать все FBD-блоки программы, то он не остановит вычисления, а продолжит их. Тем самым превысит отведенное для вычислений время(длительность такта). Канал с подтипом "СИСТЕМНЫЙ" и дополнением к подтипу "время пересчета" будет иметь значение превышающее установленный такт для узла?
Сообщения / Posts 54 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Baikal_1
Junior Member / Новичок
Участник № / Member № 3959
отправлено / posted
Подскажите, пожалуйста. Как можно посчитать время выполнения программы выполненной на языке FBD ?
Сообщения / Posts 18 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
125-й атрибут канала, вызывающего программу. Но он оценивает время с точностью до 1 мс. Для подавляющего большинства программ он покажет 0.
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Baikal_1
Junior Member / Новичок
Участник № / Member № 3959
отправлено / posted
125-й атрибут канала, вызывающего программу? Это вроде для TM6. Вопрос был задан для ТМ5
Сообщения / Posts 18 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В Trace Mode 5 определить время исполнения отдельной программы нельзя. Можно только определить время, затрачиваемое на пересчет всей базы каналов. Для этого существует системная переменная "Время пересчета". Если Вам необходимо оценить затраты времени на конкретный вызов программы, сделайте тестовый проект, в котором будет, например, 1000 вызовов этой программы и оцените "Время пересчета".
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Baikal_1
Junior Member / Новичок
Участник № / Member № 3959