Добрый день, уважаемые профессионалы и любители, подскажите пример объединения например: 4-ех 8-ми битовых масок в одну переменную 4 байта, на языке ST. Или где об этом можно почитать. Быстрый поиск не увенчался успехом. Заранее благодарю за помощь.
Добрый день, уважаемые профессионалы и любители, подскажите пример объединения например: 4-ех 8-ми битовых масок в одну переменную 4 байта, на языке ST. Или где об этом можно почитать. Быстрый поиск не увенчался успехом. Заранее благодарю за помощь.
Можно, если сильно постараться, но зачем это надо? Не просматривается необходимости при работе с овеном..
или как вариантКод:VAR mask1, mask2, mask3, mask4: BYTE; mask: DWORD; END_VAR mask := SHL(mask1 + DWORD#0, 24) OR SHL(mask2 + DWORD#0, 16) OR SHL(mask3 + DWORD#0, 8) OR mask4;или такКод:mask := 0; mask := SHL(mask1 + mask, 24) OR SHL(mask2 + mask, 16) OR SHL(mask3 + mask, 8) OR mask4;Код:mask := mask1 * 16#1000000 + mask2 * 16#10000 + mask3 * 16#100 + mask4;
Последний раз редактировалось Yegor; 01.08.2016 в 20:32.
или такКод:VAR b AT %MB0 : ARRAY[0..3] OF BYTE; mask AT %MD0 : DWORD; END_VAR ;
Всем спасибо, буду пробовать. А необходимость, это передавать с плк в скаду сразу 32 булевых значений одной переменной.
Для меня так нагляднее. Оперируем последним битом в 32-х битном слове.
Код:VAR DWORD_tmp:DWORD; b1:BOOL; END_VAR IF b1 THEN DWORD_tmp:=DWORD_tmp OR 2147483648; ELSE DWORD_tmp:=DWORD_tmp AND NOT 2147483648; END_IF;
+79104444236
С уважением,
Лапшин Вячеслав
krollcbas а для операции со всеми битами делать простыню кода ?
Уж лучше FB сделать со сдвигом регистров, тогда из параметров только номер бита и запись значения
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Сплю с утра, не ругайтесь. В Oscat много чего есть, возможно и необходимое TC.
Столько примеров) столько споров. Вообще в идеале я хотел передавать из скады 2 2-ух байтовых маски для 2-ух 16Р, а из плк хотел передавать в скаду 4 байтовую переменную в которой склеены 2 модуля 8ДФ и +16 переменных из программ плк. Плохая затея?