This is topic запись из программы в аттрибут 10-25 канала in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/33/t/000194.html

Posted by юный_инженер (Участник № / Member № 8204) on :
 
Здравствуйте!
можно ли записывать в аргумент программы, который привязан к 10му атрибуту канала?

code:
 
PROGRAM
VAR_INPUT ARG_000 : REAL; END_VAR
VAR_INPUT ARG_001 : REAL; END_VAR
VAR_INPUT ARG_002 : REAL; END_VAR
VAR_INPUT ARG_003 : REAL; END_VAR
VAR_INPUT ARG_004 : REAL; END_VAR
VAR_INPUT ARG_005 : REAL; END_VAR
VAR_INPUT ARG_006 : REAL; END_VAR
VAR_INPUT ARG_007 : REAL; END_VAR
VAR_INPUT ARG_008 : REAL; END_VAR
VAR_INPUT ARG_009 : REAL; END_VAR
VAR_INPUT ARG_010 : REAL; END_VAR
VAR_INPUT ARG_011 : REAL; END_VAR
VAR_INPUT ARG_012 : REAL; END_VAR
VAR_INPUT ARG_013 : REAL; END_VAR
VAR_INPUT ARG_014 : REAL; END_VAR
VAR_INPUT ARG_015 : REAL; END_VAR
VAR_OUTPUT ARG_016 : BOOL; END_VAR
VAR_OUTPUT ARG_017 : BOOL; END_VAR
VAR_OUTPUT ARG_018 : BOOL; END_VAR
VAR_OUTPUT ARG_019 : BOOL; END_VAR
VAR_OUTPUT ARG_020 : BOOL; END_VAR
VAR_OUTPUT ARG_021 : BOOL; END_VAR
VAR_OUTPUT ARG_022 : BOOL; END_VAR
VAR_OUTPUT ARG_023 : BOOL; END_VAR
VAR_OUTPUT ARG_024 : BOOL; END_VAR
VAR_OUTPUT ARG_025 : BOOL; END_VAR
VAR_OUTPUT ARG_026 : BOOL; END_VAR
VAR_OUTPUT ARG_027 : BOOL; END_VAR
VAR_OUTPUT ARG_028 : BOOL; END_VAR
VAR_OUTPUT ARG_029 : BOOL; END_VAR
VAR_OUTPUT ARG_030 : BOOL; END_VAR
VAR_INOUT ALL : UINT; END_VAR
VAR_INOUT KPP1 : USINT; END_VAR
VAR_INOUT KPP2 : USINT; END_VAR
VAR_INOUT KPP3 : USINT; END_VAR
VAR_INOUT KPP4 : USINT; END_VAR
VAR_INOUT KPP5 : USINT; END_VAR
VAR_OUTPUT ARG_031 : REAL; END_VAR

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 реагирует отлично.
но как пытаешься управлять из программы - сразу перестаёт реагировать.
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
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 перестанет выполняться.

Подробности по проекту отправлены почтой.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2