Объяснение NT_GetTime в twincat/beckhoff plc
Могу ли я получить объяснение об этом функциональном блоке и его параметрах (тайм-аут: для чего он, занят: когда он будет истинным и ложным)?
2 ответа
Как упомянуто здесь: http://infosys.beckhoff.com/italiano.php?content=../content/1040/TcPlcLibUtilities/HTML/TcPlcLibUtilities_NT_GetTime.htm&id=
Функциональный блок NT_GetTime имеет вход NETID, START, TMOUT и выход BUSY, ERR, ERRID, TIMESTR.
NETID - это AmsNetId целевого устройства. Если вы работаете в локальной среде выполнения, просто поместите пустую строку, то есть ''
СТАРТ: передний фронт запускает функциональный блок
TMOUT - это количество времени, выделенное прежде, чем функциональный блок откажется от выполнения команды
После нарастающего фронта входа START функциональный блок запустится и попытается подключиться к устройству, указанному в NETID, и попытается определить местное время устройства. Занят станет правдой. Если функциональный блок работает хорошо, BUSY станет ложным, а местное время будет задано выходом TIMESTR.
Функциональный блок пытается установить соединение с устройством, указанным в NETID. Если есть проблема с подключением, функциональный блок будет продолжать пытаться соединиться с устройством в течение промежутка времени, указанного в TMOUT, и BUSY останется истинным. По истечении времени, указанного в TMOUT, и если функциональный блок все еще не может подключиться к устройству, BUSY станет ложным, ERR станет истинным, а ERRID сообщит вам, в чем заключается проблема (например, 0x745 истекло время ожидания).
Список кодов ошибок: http://infosys.beckhoff.com/italiano.php?content=../content/1040/TcAdsCommon/HTML/Ads_ReturnCodes.htm&id=
Ну... Это функциональный блок, который возвращает информацию о времени и дате Windows вашему контроллеру.
Похоже, что это асинхронный функциональный блок, а это означает, что вы указываете его запустить, и для возврата результатов требуется несколько выполнений контроллера. В то же время бит занятости будет истинным до тех пор, пока не возникнет ошибка или он не будет успешным.
Если происходит сбой, бит ошибки будет установлен равным true, а номер ошибки будет отображаться в поле ошибки. Если результат будет возвращен успешно, бит занятости будет сброшен без обратной связи об ошибке.
Я не знаком с программированием beckhoff, но похоже, что вы указываете таймаут. Если вы не получите результат в течение времени ожидания, вы получите ошибку.