НАДЕЖНОЕ === что бы не написал - всё работает? и УДОБНОЕ === инструкцию читать не надо?
Мы не молотки с интуитивно понятным интерфейсом выпускаем.
НАДЕЖНОЕ === что бы не написал - всё работает? и УДОБНОЕ === инструкцию читать не надо?
Мы не молотки с интуитивно понятным интерфейсом выпускаем.
Ну не всё, но по возможности, а если возможности нет - выдает признак ошибки.
Например, когда пользователь закрывает порт, можно было бы и сбросить буфер, а затем уж закрывать. Ведь функции, определяющей, закончилась ли передача, нет.
И, разумеется, НАДЕЖНОЕ ПО не пропускает принимаемые байты, если оно не способно обеспечить безошибочный прием на определенной скорости, она просто не устанавливается. Почему пользователь должен догадываться, что 57600 "многовато будет" (на 19200 пропусков нет)?
Надо. Но прежде всего - программистам Овен. Тогда они не будут писать return 0; вместо return (DWORD)port_num; и пользователю не придется изучать различия ДВУХ инструкций - английской и русской, а программа, возможно, будет одинаково работать и в Сименсе, и в Адаме, и в Овене. Собственно, чтобы пользователю не нужно было так много читать, и придуманы стандарты - IEC1131-3, например
.
Сейчас вот разбираюсь с SysLibTime.
Опять фирменные особенности. Естественно, в английском описании ни слова о том, что структуру нужно обнулять перед чтением времени. Но это еще мелочь. А вот:
Structure SysTime64
This structure contains the realtime of the local computer in microseconds. A Low- plus a High-DWORD
are used for that purpose, thus 64 Bit are available. The structure is used by the function blocks CurTime
and CurTimeEx.
Component Data type Description
ulLow DWORD Low DWORD of the realtime value (microseconds)
ulHigh DWORD High DWORD of the realtime value (microseconds)
1.SysTime: SysTime64;
SysTime
ulHigh: dword;
Содержит 0
ulLow: dword;
Содержит время с момента загрузки ПЛК в миллисекундах
Найдите 3 отличия. Ответ. 1) Миллисекунды вместо микросекунд. 2) старшее слово не используется (программист получил премию за экономию 10 команд?). 3) Время с момента загрузки ПЛК вместо realtime.
А теперь скажите, как записать в переменную CodeSys типа DT текущую дату/время? Микросекунды в секунды перевести и упаковать в одно слово было бы несложно, а вот вспоминать сколько дней в каждом месяце и какие годы високосные - брр.
Последний раз редактировалось alex1963; 19.01.2009 в 13:45.