Вопрос по доступу к битам в WORD в SCL

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

Вопрос по доступу к битам в WORD в SCL

Post by a_gricaj »

Здравствуйте,
Изучаю ТИА Портал v13, и стал вопрос.
Например, в CodeSys доступ к биту переменной (тип WORD)такой

описание:

test:word;

в самом коде

test.0:=true; (нулевому биту переменной test присваиваем лог единицу)

Как такое провернуть в ТИА Портале?????

Полчитал доки можно вроде использовать UDT, но в скаду мне всеравно нужно пихать WORD......
Rex2701
Posts: 374
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Вопрос по доступу к битам в WORD в SCL

Post by Rex2701 »

a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

Re: Вопрос по доступу к битам в WORD в SCL

Post by a_gricaj »

СПС, видел этот документ, но насколько я понял так нельзя как я хочу, без использования DB????
Rex2701
Posts: 374
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Вопрос по доступу к битам в WORD в SCL

Post by Rex2701 »

Предлагают такой способ:

Code: Select all

VAR_TEMP
tiINT : INT; //Integer value
tINT AT tiINT : STRUCT //For individual bit access
b08: BOOL ;
b09 : BOOL ;
b10 : BOOL ;
b11 : BOOL ;
b12 : BOOL ;
b13 : BOOL ;
b14 : BOOL ;
b15 : BOOL ;
b00 : BOOL ;
b01 : BOOL ;
b02 : BOOL ;
b03 : BOOL ;
b04 : BOOL ;
b05 : BOOL ;
b06 : BOOL ;
b07 : BOOL ;
END_STRUCT;
END_VAR

BEGIN
tiINT := <whatever integer your are looking at>;
tbXX := tINT.b04; //Fetch bit 04 in the integer
...
Schtiel
Site Admin
Posts: 1122
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel »

Или маски + преобразования типов (на примере 13-го бита):

Code: Select all

VAR
Value:INT;
B13:BOOL;
END_VAR
BEGIN
IF B13=TRUE THEN
Value:= WORD_TO_INT(INT_TO_WORD(Value)OR W#2#0010_0000_0000_0000);
ELSE
Value:= WORD_TO_INT(INT_TO_WORD(Value)AND W#2#1101_1111_1111_1111);
END_IF;
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Вопрос по доступу к битам в WORD в SCL

Post by sania »

всё проще:

Code: Select all

#int_out.%X0 := #bool_in;
a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

Re: Вопрос по доступу к битам в WORD в SCL

Post by a_gricaj »

Code: Select all

#test.%X0 := true;
так ошибка...3,Invalid access %X0 for #test.
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: Вопрос по доступу к битам в WORD в SCL

Post by sania »

ну так надо говорить что проц 3хх,4хх.
тогда как в топиках выше или по абсолютному адресу.
a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

Re: Вопрос по доступу к битам в WORD в SCL

Post by a_gricaj »

СПС всем за ответы, буду пробовать UDT...
a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

Re: Вопрос по доступу к битам в WORD в SCL

Post by a_gricaj »

Дабы не плодить темы, подскажите пожалуйста почему при мониторинге FB на SCL у меня такая фигня:
Image
эта переменная является входом FB и инициализирована.
СПС