Помогите чайнику разобраться. У меня есть проект для Lagoon. Период пересчета в нем равен 4, разрешение 0.055. Есть каналы, для которых период пересчета рвен 1F1, 1F4. Обясните, как мне почитать время, через которое будут пересчитываться каналы?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Период пересчета каждого из двух каналов будет равен 5*4*0.055 = 1.1 сек. При этом канал "1F4" будет обрабатываться со сдвигом по отношению к каналу "1F1" на 3*4*0.055 = 0.66 сек. Оценки, естественно, приблизительные.
Posted by sldk_buf (Участник № / Member № 2898) on :
Понятно. Спасибо. А вот ещё один вопрос, может и не в тему. Вы говорите, что необходимо указывать разрешение таймера(tick). А вот скажите, необходимо указать аппаратное разрешение таймера, или же я могу поставить его любым, в допустимых пределах. Я пробовал установить это разрешение в 1 и период в 1. Период пересчета базы был 1000 мс. Ещё я знаю, что разрешение пользовательского таймера в виндовс 55 мс. т.е. используя функцию Sleep(1мс) мы получим задержку минимум в 55 мс. Как в ДОС не скажу, но мне интересно, что же именно необходимо здесь указать?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В Windows и в DOS таймер может перепрограммироваться, что реально и имеет место. Но в Windows XP аппаратное разрешение и заказанное приложением разрешение - это разные параметры. Вы заказали разрешение 1 сек. и соответственно получили период обработки 1000 мс. В Lagoon таймер перепрограммироваться не может. Его разрешение всегда равно 0.055 сек. Но если Вы зададите в настройках узла разрешение больше, чем 0.055, то МикроМРВ не будет перепрограммировать таймер, но реализует период пересчета, равный заданному Вами.