Нужно перевести переменную со временем наработки в отображаемую и резервируемую затем для экспорта в excel строку в SimpleScada.
Использую Instat Master OPC.
Для отображения я так понимаю самый простой вариант - передать данные с ПЛК в секундах в Integer, затем написать скрипт который для отображения в текстовой строке будет разбирать эти секунды на часы и минуты.
Тогда след. вопрос: что я делаю не так? ПОстоянно одна за другой ошибки сыпятся,
var
min: single;
sec: single;
begin
if Sender is TM_Text then
min:=int(TM_Text.ValueAsFloat /60);
sec:=int((frac(TM_Text.ValueAsFloat/60))*60);
TM_Text.Text:=FloatToStr(min)+'мин '+FloatToStr(sec)+'сек';
end.[/tr]
В данный момент -[i] Property "Value As Float" is inaccessible here.[/i]
При том не важно - в каком виде я переменную вбиваю, всеравно она неприемлима.[/td]
[/tr]
UPD: с этим разобрался, ввёл промежуточную переменную min_1:=ValueAsFloat/60; затем её уже обрезал через INT и FRAC. Но всеравно почему не работает в таком виде как я до этого прислал - непонятно.
Следующее еще актуально:Может есть более простые, другие способы реализации?
Если переменную в секундах переводить в DateTime при редактировании переменных, или скриптом, она принимает вид "число-месяц-год" с постоянно менгяющейся датой. Если переменную в STRING сохраняю к примеру, а затем скриптом перевожу в StrToTime(var1) - показывает тещущее время, также как последующая конвертация этого значения TimeToStr в текстовое поле, при том что на ОРС сервере значение переменной к примеру 260 секунд.
И еще, опишите пожалуйста работу команд
SetDateFormat
SetTimeFormat
да и вообще, как работать со временными переменными, и как их обрабатывать в клиенте, для последующего экспорта к примеру в Excel, чтобы можно было вывести в отчете за промежуток времени к примеру потребленную электроэнергию + время работы каждого из двигателей. Скрипт который я сейчас пытаюсь написать - поможет только для отображения времени наработки/времени оставшегося до запуска в текстовом поле.
Спасибо!