This is topic Пишу программу на st in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


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

Posted by witcher237 (Участник № / Member № 2272) on :
 
Добрый день.

Есть прога на st
PROGRAM
VAR_OUTPUT Тип_R_00 : REAL; END_VAR
VAR_OUTPUT Усиление_R_00 : REAL; END_VAR
VAR_OUTPUT Смещение_R_00 : REAL; END_VAR
VAR_OUTPUT Тип_R_01 : REAL; END_VAR
VAR_OUTPUT Усиление_R_01 : REAL; END_VAR
VAR_OUTPUT Смещение_R_01 : REAL; END_VAR
VAR_OUTPUT запись_800 : UINT; END_VAR
VAR_OUTPUT запись_801 : UINT; END_VAR
VAR counter : INT := 0; END_VAR
VAR block_adress : REAL := 291; END_VAR

запись_800 :=0x123;
запись_801 := 0x00;
Тип_R_00 := getAttributeI (12,140);
Усиление_R_00 := getAttributeI (12,141);
Смещение_R_00 := getAttributeI (12,142);

запись_800 :=0x123;
запись_801 := 0x01;
Тип_R_01 := getAttributeI (12,140);
Усиление_R_01 := getAttributeI (12,141);
Смещение_R_01 := getAttributeI (12,142);


END_PROGRAM

в ней прекрасно выполняются строчки, с последующим сбором цифирь
запись_800 :=0x123;
запись_801 := 0x00;

но вот напрочь игнорируется
запись_800 :=0x123;
запись_801 := 0x01;

всё это работает на MODBUS\RTU и по логам обмена, видно что запрос атрибутов сваливается в цикл. Есть подозрение что что-то делаю не так, но что не совсем понятно, может подскажите.

лог обмена
Запрос:09.03.2011 17:18:10.48764 (+740.0781 seconds)
C0 06 08 00 01 23 DB 32
Ответ:09.03.2011 17:18:10.48764 (+0.0000 seconds)
C0 06 08 00 01 23 DB 32
Запрос:09.03.2011 17:18:10.48764 (+0.0000 seconds)
C0 06 08 01 00 01 0B 7B
Ответ:09.03.2011 17:18:10.48764 (+0.0000 seconds)
C0 06 08 01 00 01 0B 7B
Запрос:09.03.2011 17:18:10.48764 (+0.0000 seconds)
C0 03 08 02 00 03 B6 BA
Ответ:09.03.2011 17:18:10.48764 (+0.0000 seconds)
C0 03 06 00 05 0E B1 13 8E 6F 7B
Запрос:09.03.2011 17:18:11.84664 (+0.3594 seconds)
C0 03 08 02 00 03 B6 BA
Ответ:09.03.2011 17:18:11.86264 (+0.0156 seconds)
C0 03 06 00 05 0E B1 13 8E 6F 7B
Запрос:09.03.2011 17:18:11.40964 (+0.5469 seconds)
C0 03 08 02 00 03 B6 BA

[ 06.06.2011, 11:55: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
Согласно стандарту МЭК ваша строка:
code:
запись_800 :=0x123;
запись_801 := 0x00;

должна бы выглядеть вот так:
code:
запись_800 := 16#123;
запись_801 := 16#00;


 
Posted by witcher237 (Участник № / Member № 2272) on :
 
поправил согласно стандарту, лучше не стало ^_^

в общем кошмарить разработчиков железяки буду на предмет организации альтернативного доступа к данным
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Из лога видно, что по адресу 0x800 успешно записано 0x123, а по адресу 0x801 успешно записано 0x1.
Затем резонно выполняются регулярные запросы 3-х регистров с адреса 0x802.
Никаких противоречий с текстом программы не видно.
Команды записи выполняются в соответствии с последними присвоениями в программе
запись_800 :=0x123;
запись_801 := 0x01;

Так и должно быть.

М.б., есть смысл более подробно разобрать задачу и пример проекта в непосредственном контакте? Обратитесть в службу техподдержки с файлом *.prj и разъяснениями по постановке задачи.
 
Posted by witcher237 (Участник № / Member № 2272) on :
 
"Команды записи выполняются в соответствии с последними присвоениями в программе"

спасибо это объясняет некоторые странности.
Есть, к сожалению, потребность изменения конкретной переменной дважды в одной программе.

Проекта как такового нет, есть набор кусков с помощью которых тестируется аппаратура, и которые в перспективе лягут в основу АРМа.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Программа выполняется в полном объеме с циклом вызывающего канала.
Поэтому в пределах одной программы переприсвоить значения одному каналу нельзя. Да и канал этот будет отрабатывать со своим циклом, да еще и в асинхронном потоке.
Надо обсуждать задачу, ее постановку и принципиальные подходы к решению.

Регистриуйте свой продукт и обращайтесь в службу техподдержки.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2