Просмотр полной версии : язык 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
Здесь с вами согласен, в смысле, что прочитать "всю документацию" от корки до корки может быть недостаточно!
Всё от человека зависит, кому-то можно и не читать!
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot