PDA

Просмотр полной версии : язык ST, библиотечные функции



Евгений Пашигоров
05.02.2026, 08:32
Не получилось в языке ST использовать библиотечную функцию SPLIT_DT_LOCAL.
Где можно найти документацию? Каков тип входной переменной, каков - выходной?
И все-таки, это функция или функциональный блок?
Пробовал и так, и эдак. все время ошибки типов и неправильный вызов функции.

pavel.migdalev
05.02.2026, 09:28
Не получилось в языке ST использовать библиотечную функцию SPLIT_DT_LOCAL.
Где можно найти документацию? Каков тип входной переменной, каков - выходной?
И все-таки, это функция или функциональный блок?
Пробовал и так, и эдак. все время ошибки типов и неправильный вызов функции.

https://support.mps-soft.ru/Help-web/index.html?split_dt_local.html

Евгений Пашигоров
05.02.2026, 09:55
https://support.mps-soft.ru/Help-web/index.html?split_dt_local.htmlНе работает. Мне нужно ST.
Покажете пример работающего кода?

pavel.migdalev
05.02.2026, 10:06
Не работает. Мне нужно ST.
Покажете пример работающего кода?

SPLIT_DT(IN:=Время, HOUR =>Параметр_1, MONTH=>Параметр_2);

kondor3000
05.02.2026, 10:11
Не работает. Мне нужно ST.
Покажете пример работающего кода?

Пример на ST есть для функции SPLIT_DT

Q:=SPLIT_DT(IN:=Время, HOUR =>Параметр_1, MONTH=>Параметр_2);

Евгений Пашигоров
05.02.2026, 10:32
Что-то стало получаться.
Откуда вы взяли это сокровенное знание, что выходные параметры присваиваются стрелочкой?
Синтаксис не соответствует стандартному ST?
Приходится еще угадывать, где функция, а где функциональный блок.
SPLIT_DT - это функция? Не похоже, вызывается как ФБ. Но ведь экземпляр ФБ не объявлен?

kondor3000
05.02.2026, 10:35
Что-то стало получаться.
Откуда вы взяли это сокровенное знание, что выходные параметры присваиваются стрелочкой?
Синтаксис не соответствует стандартному ST?
Приходится еще угадывать, где функция, а где функциональный блок.
SPLIT_DT - это функция? Не похоже, вызывается как ФБ. Но ведь экземпляр ФБ не объявлен?
Пример по ссылке
Здесь всё не совсем так, судя по синтаксису-это ФБ и программу на ST всё равно надо вставить на поле FBD, где указать входы и выходы.

Евгений Пашигоров
05.02.2026, 10:43
Ну, по ссылке у меня открывается пример на fbd, а не st.
Значит, сокровенные знания, впитываете из астрала? У меня не получается.
И не ФБ это, поскольку для ФБ надо объявлять экземпляр ФБ. А у функции только одно выходное значение.
А для входных и выходных переменных в редакторе ST справа и слева есть вкладки.

Евгений Кислов
05.02.2026, 10:51
Откуда вы взяли это сокровенное знание, что выходные параметры присваиваются стрелочкой?
Синтаксис не соответствует стандартному ST?


А у функции только одно выходное значение.

В стандарте МЭК 61131-3 декларируется другое.

87890

Евгений Пашигоров
05.02.2026, 11:23
Как всё запущено... Это выходит, Кодесис не соответствует стандарту. Сколько уже программирую, и не знаю.

А у комитета, писавшего этот стандарт, явно сишность головного мозга. Функции с побочными эффектами. Бее-е... У нормальных людей для этого есть процедуры.

Евгений Кислов
05.02.2026, 11:26
Это выходит, Кодесис не соответствует стандарту.

В CODESYS V3.5 функции с "дополнительными выходами" поддержаны.


Функции с побочными эффектами. Бее-е..

Не очень понятно, причем здесь "побочные эффекты (https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B1%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_% D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80% D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0 %BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5))".

pavel.migdalev
05.02.2026, 11:26
Откуда вы взяли это сокровенное знание, что выходные параметры присваиваются стрелочкой?


Внимательнее читайте хелп, в том числе и на другие (соседние) функции.



Приходится еще угадывать, где функция, а где функциональный блок.


Внимательнее читайте хелп, там все четко написано.



SPLIT_DT - это функция?

Функция. В хелпе так написано.

Евгений Пашигоров
06.02.2026, 08:17
Не очень понятно, причем здесь "побочные эффекты (https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B1%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_% D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80% D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0 %BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5))".Согласен. В данном конкретном случае это не так ярко выражено. Но все равно, термин функция к данному программному элементу подходит как корове седло. Эта "функция" принимает на вход дату-время, а возвращает логическое значение. Зачем оно нам? Нам надо совсем другое. А чтобы получить нужные данные, необходимо влезть в потроха этой функции.
Сломана логика, сломан синтаксис. Остается только надеяться, что где-то внутри ее не сохраняется какое-нибудь "состояние".

Евгений Пашигоров
06.02.2026, 08:19
Внимательнее читайте хелп, в том числе и на другие (соседние) функции.

Тоже что-то с логикой. Чтобы узнать, как вызвать нужную мне функцию, надо прочитать всю документацию от корки до корки. :(

Сергей0308
08.02.2026, 22:29
Здесь с вами согласен, в смысле, что прочитать "всю документацию" от корки до корки может быть недостаточно!
Всё от человека зависит, кому-то можно и не читать!