Я заметил, что некоторые теги типа BOOL имеют двоичный стиль (который ожидается), и большинство из них десятичны (что удивительно). Кто-нибудь знает разницу?Разница между типом данных и стилем в базе данных тегов контроллера ПЛК
Спасибо,
Я заметил, что некоторые теги типа BOOL имеют двоичный стиль (который ожидается), и большинство из них десятичны (что удивительно). Кто-нибудь знает разницу?Разница между типом данных и стилем в базе данных тегов контроллера ПЛК
Спасибо,
Значение переменной может отображаться в разных radix изображений. Для типа данных BOOL, выбрав любую Radix двоичной, десятичной, восьмеричной или шестнадцатеричной приведет к дисплей, отображающий 0 и 1.
Для типа данных DINT или WORD, выбирая десятичной, восьмеричной или шестнадцатеричной приведет к дисплей, отображающий значение в этих условиях. Например, значение шестнадцать будет отображаться в десятичной системе счисления как 16, в восьмеричном восьмерке - в 20 и в шестнадцатеричном шестнадцатеричном виде - в 0F.
Чтобы ответить на ваш вопрос, нет никакой полезной разницы в отображении бинарного или радиального десятичного знака переменной типа BOOL.
Если говорить о среде программирования ПЛК 61131-3, то BOOL фактически BYTE, где ненулевое значение TRUE (1-255), и 0 ЛОЖЬ.
Однако переменная BOOL может быть использован непосредственно с логическим оператором IF, WHILE, И т.д ..:
===========================================================================
FUNCTION myFunction : BOOL;
VAR
MyA : BOOL;
END_VAR
---------------------------------------------------------------------------
IF MyA THEN
// Do something
myFunction := MyA;
END_IF
===========================================================================
Большинство реализаций 61131-3 языков программирования заставит операцию сравнения на типа BYTE:
===========================================================================
FUNCTION myFunction : BOOL;
VAR
MyA : BYTE;
END_VAR
---------------------------------------------------------------------------
IF MyA > 0 THEN
// Do something
myFunction := BYTE_TO_BOOL(MyA);
END_IF
===========================================================================
Вопрос заключается в разнице между тегом типа данных и представлением этого типа данных в ПЛК. Стиль, будь то десятичный, двоичный или шестнадцатеричный, является значением представленным, тогда как реальное определение типа тега относится к типу данных.
** Представлено ** * внутри машины * или отображается как текст? Действительно ли какой-либо промышленный ПЛК «представляет» логическое число в виде десятичного числа внутри машины? Это казалось бы бессмысленным. –
Ваш вопрос непонятен и звучит так, что это связано с конкретным PLC поставщика (я предполагаю, что RSLogix). «База данных тегов контроллера» и «теги данных» не являются понятиями общего ПЛК. Пожалуйста, обновите свой вопрос –