WHILE ARG_000>3 DO ALL=1; ARG_016=1; END_WHILE; WHILE ARG_001>3 DO ALL=1; ARG_017=1; END_WHILE; WHILE ARG_002>3 DO ALL=1; ARG_018=1; END_WHILE; WHILE ARG_003>3 DO ALL=1; ARG_019=1; END_WHILE; WHILE ARG_004>3 DO ALL=1; ARG_020=1; END_WHILE; WHILE ARG_005>3 DO ALL=1; ARG_021=1; END_WHILE; WHILE ARG_006>3 DO ALL=1; ARG_022=1; END_WHILE; WHILE ARG_007>3 DO ALL=1; ARG_023=1; END_WHILE; WHILE ARG_008>3 DO ALL=1; ARG_024=1; END_WHILE; WHILE ARG_009>3 DO ALL=1; ARG_025=1; END_WHILE; WHILE ARG_010>3 DO ALL=1; ARG_026=1; END_WHILE; WHILE ARG_011>3 DO ALL=1; ARG_027=1; END_WHILE; WHILE ARG_012>3 DO ALL=1; ARG_028=1; END_WHILE; WHILE ARG_013>3 DO ALL=1; ARG_029=1; END_WHILE; WHILE ARG_014>3 DO ALL=1; ARG_030=1; END_WHILE; WHILE ARG_015>3 DO ALL=1; ARG_031=1; END_WHILE;
WHILE ALL==1 //setAttributeI(25, 10, 1) DO KPP1=1; KPP2=1; KPP3=1; KPP4=1; KPP5=1; END_WHILE;
IF ALL<1 THEN KPP1=0; KPP2=0; KPP3=0; KPP4=0; KPP5=0; END_IF;
END_PROGRAM
[IMG]https://wdfiles.ru/0ccdbf [/IMG]
сам проект [URL]=https://wdfiles.ru/3604d0]web page[/URL]
можно ли привязаться к атрибутам не ВХОДНОЕ_ЗНАЧЕНИЕ, а к БИТ_1 и тд (ID10 - ID25 канала W_WORD16 , отправляемого по модбасу в устройство?
без программы устройство на команды 1 отправляемые на ID10 - ID25 реагирует отлично. но как пытаешься управлять из программы - сразу перестаёт реагировать.
Сообщения / Posts 57 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by юный_инженер: Здравствуйте! можно ли записывать в аргумент программы, который привязан к 10му атрибуту канала?
можно ли привязаться к атрибутам не ВХОДНОЕ_ЗНАЧЕНИЕ, а к БИТ_1 и тд (ID10 - ID25 канала W_WORD16 , отправляемого по модбасу в устройство?
Да, можно. Подробнее о работе канала класса Hex16 с направлением OUT можно прочесть в Справочной Системе – Каналы и Системные переменные – Числовые каналы – Канал класса HEX16.
quote:без программы устройство на команды 1 отправляемые на ID10 - ID25 реагирует отлично. но как пытаешься управлять из программы - сразу перестаёт реагировать.
В программы Вы используете While. Особенность данного оператора в том, что он отрабатывает последовательность операций пока выполняется условие.
На примере вашего кода. Если ARG_000 = 6 То выполнится условие строки WHILE ARG_000>3 и будут отрабатываться операции DO ALL=1; ARG_016=1; до тех пор, пока ARG_000>3;
К следующим строкам отработка кода перейдет только когда условие ARG_000>3 перестанет выполняться.