Отображение даты

Avatar
  • обновлен

Image 2146

Добрый день. Прошу помощи с корректным выводом даты в формате ДД:ЧЧ:ММ.

Данные с Codesys 3.5 приходят в формате ltime. Можно ли вывести также, в таком же формате?

Image 2141

Avatar

Для начала нужно разобраться с тем что передаёт ОРС. В теме я все подробно расписал.

Avatar
иван_в
Цитата от иван_в

Image 2173

Спасибо большое. Все заработало!

Image 2175

Осталось разобраться с соседней темой "Не корректное отображение переменной типа REAL"

Avatar

Предлагаю внимательно изучать присланный пример.

Image 2174

Avatar
иван_в
Цитата от СИМП Лайт (тех поддержка)
var
  val: int64;

function LTimeToString(const LTime: Int64): string;
var
  TotalSeconds: Int64;
  Days, Hours, Minutes, Seconds: Integer;
begin
  // 1 наносекунда = 1e-9 секунд
  TotalSeconds := LTime div 1000000000;
  Days := TotalSeconds div 86400;
  TotalSeconds := TotalSeconds mod 86400;
  Hours := TotalSeconds div 3600;
  TotalSeconds := TotalSeconds mod 3600;
  Minutes := TotalSeconds div 60;
  Seconds := TotalSeconds mod 60;
  Result := Format('%dd:%dh:%dm:%ds', [Days, Hours, Minutes, Seconds]);
end;

Begin
  val := ReadValue('Имя вашего канала с которого читаем LTIME');
  WriteValue('Virtual channel', LTimeToString(val));
end.

В видео примере я показал что данные считываются и отображаются корректно.

Image 2173

Avatar
var
  val: int64;

function LTimeToString(const LTime: Int64): string;
var
  TotalSeconds: Int64;
  Days, Hours, Minutes, Seconds: Integer;
begin
  // 1 наносекунда = 1e-9 секунд
  TotalSeconds := LTime div 1000000000;
  Days := TotalSeconds div 86400;
  TotalSeconds := TotalSeconds mod 86400;
  Hours := TotalSeconds div 3600;
  TotalSeconds := TotalSeconds mod 3600;
  Minutes := TotalSeconds div 60;
  Seconds := TotalSeconds mod 60;
  Result := Format('%dd:%dh:%dm:%ds', [Days, Hours, Minutes, Seconds]);
end;

Begin
  val := ReadValue('Имя вашего канала с которого читаем LTIME');
  WriteValue('Virtual channel', LTimeToString(val));
end.

В видео примере я показал что данные считываются и отображаются корректно.

Avatar
иван_в
Цитата от СИМП Лайт (тех поддержка)

Image 2172

Если скрипт как на скрине - то он не будет ничего читать. Там константное значение установлено.

Все верно, это понимаю. Тут просто факт в том что это значение попадает в монитор. Но при чтении регистра с ПЛК, данные не принимаются.

Avatar
Цитата от иван_в

Image 2166

Вроде работает но данные не подтягивает с основного канала (переменной)

Image 2167

Вот же рабочий пример скрипта!!!

Avatar

Image 2172

Если скрипт как на скрине - то он не будет ничего читать. Там константное значение установлено.

Avatar
иван_в
Цитата от СИМП Лайт (тех поддержка)

Это штатное отображение для строкового типа!

Image 2170

Image 2171

При установки значения, данные отображаются, как будто не читает значение

Avatar
Цитата от иван_в

нет, тип канала например?

Это штатное отображение для строкового типа!