2016-09-22 10 views
0

Я заметил, что некоторые теги типа BOOL имеют двоичный стиль (который ожидается), и большинство из них десятичны (что удивительно). Кто-нибудь знает разницу?Разница между типом данных и стилем в базе данных тегов контроллера ПЛК

Спасибо,

+0

Ваш вопрос непонятен и звучит так, что это связано с конкретным PLC поставщика (я предполагаю, что RSLogix). «База данных тегов контроллера» и «теги данных» не являются понятиями общего ПЛК. Пожалуйста, обновите свой вопрос –

ответ

0

Значение переменной может отображаться в разных radix изображений. Для типа данных BOOL, выбрав любую Radix двоичной, десятичной, восьмеричной или шестнадцатеричной приведет к дисплей, отображающий 0 и 1.

Для типа данных DINT или WORD, выбирая десятичной, восьмеричной или шестнадцатеричной приведет к дисплей, отображающий значение в этих условиях. Например, значение шестнадцать будет отображаться в десятичной системе счисления как 16, в восьмеричном восьмерке - в 20 и в шестнадцатеричном шестнадцатеричном виде - в 0F.

Чтобы ответить на ваш вопрос, нет никакой полезной разницы в отображении бинарного или радиального десятичного знака переменной типа BOOL.

0

Если говорить о среде программирования ПЛК 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 
=========================================================================== 
0

Вопрос заключается в разнице между тегом типа данных и представлением этого типа данных в ПЛК. Стиль, будь то десятичный, двоичный или шестнадцатеричный, является значением представленным, тогда как реальное определение типа тега относится к типу данных.

+0

** Представлено ** * внутри машины * или отображается как текст? Действительно ли какой-либо промышленный ПЛК «представляет» логическое число в виде десятичного числа внутри машины? Это казалось бы бессмысленным. –

 Смежные вопросы

  • Нет связанных вопросов^_^