PDA

Просмотр полной версии : Как на ST написать преобразование из своего функционального блока?



дрю
05.04.2015, 13:04
Ребят, всем доброго дня! Подскажите пожалуста. Основная программа пишеться на CFC 17521в ней стоит функциональный блок FB_1написаный на ST 17522. Внутри этого блока работант таймер TON 17523. Я хочу вывести в визуализацию его выход 17524 чтобы можно было наблюдать сколько осталось времени до включения устройства. И вот сам вопрос как написать на ST преобразование TIME_TO_INT чтобы это поподало на выход функционального блока? Я пробовал это все делать на CFC все прекрасно работает в основной программе, а как это сделать на ST в нутри блока не соображу. Т.Е на фыходе функционального блока я хочу получить пременную INT которая будет отображать текущей отсчет таймера а там я его переброшу в визуализацию. Можно конечно это преобразование сделать и на CFC но хочеться добиться компактности отображения программы написаной на CFC Подскажите пожалуста:confused:

lara197a
05.04.2015, 13:51
Пишите фб на st, а потом в своем фб на cfc нажмите F2.
появится ассистент ввода. Выберите созданный вами фб и добавьте в проект.

дрю
05.04.2015, 14:32
это вариант который я попробую, спасибо. А без вставкив свой самодельный FB ещё одного самодельного FB можно? Ну например выходной переменной (INT):= TIME_TO_INT TON_1 (ET); Как это правильно написать?

lara197a
05.04.2015, 14:41
так и пишите, только на выход таймера ЕТ поставьте символьную переменную(Var2 в примере)
Var1:int;
Var2:time

Var1:=TIME_TO_INT(Var2)

дрю
05.04.2015, 14:43
сейчас попробую

дрю
05.04.2015, 14:51
Я написал
TEMP1_2:=TON_1(ET); TEMP1_2 создал типа TIME? а он ругаеться 17528

дрю
05.04.2015, 14:56
Не пропустил преобразование TEMP1_2:= TIME_TO_INT TON_1(ET); но ошибок добавилось

lara197a
05.04.2015, 15:19
Если ругается. то значит не правильно написали.
Я к сожалению не могу силой мысли, через скрин проникнуть в программу и "починить"
TON_1(IN:= , PT:= , Q=> , ET=>TON1_2 );
cм. справку КДС как объявлять функции на каждом языке написано.

capzap
05.04.2015, 15:44
Я написал
TEMP1_2:=TON_1(ET); TEMP1_2 создал типа TIME? а он ругаеться 17528

зачем Вы используете скобки, Вам же не запускать таймер надо а получить внутреннюю переменную, поставте просто TIME_TO_INT(TON_1.ET)

дрю
05.04.2015, 16:18
Ребят, сделал как сказал CAPZAR и все заработало, вот скрин и програмки 17529. Всем большое спасибо за участие и помощь. Буду работать дальше