де ExitCode приймає значення-1, 0, і 1, які відповідно означають “не зберігати нічого”, “дати запит на збереження змінених файлів” і “Зберігати все” (відкриті об’єкти “Модель” і “Процес моделювання”).
Файлові процедури використовуються для керування потоками даних у PLUS-процедурах. До них належать:
· Open – відкриває файл:
ReturnCode=Open(DataStream,FileNameString)
де DataStream – номер нового файлу, що відкривається (потоку даних); FileNameString – назва файлу, що відкривається; ReturnCode – код результату виконання операції (0 – немає помилки; 10 – довга назва файлу; 11 – помилка читання зовнішнього файлу; 12 – під час спроби відкрити файл був заборонений доступ до пам’яті);
· Close – закриває файл і вказує код помилки:
ReturnCode=Close(DataStream)
де DataStream – номер файлу, що закривається (потоку даних); ReturnCode – результат виконання операції (0 – немає помилки, 41 – запис файлу на диск не здійснений через помилку введення-виведення; 42 – файл не був відкритий);
· Read – зчитує текстовий рядок з файлу:
ReturnString=Read(DataStream)
де DataStream – номер файлу (потоку даних), з якого здійснюється зчитування; коди результату виконання операції (0 – немає помилки; 21 – під час спроби здійснити читання був заборонений доступ до пам’яті; 22 – файл не був відкритий);
· Write – записує текстовий рядок у файл
ReturnCode=Write(DataStream,SourceString)
де DataStream – номер файлу, в який здійснюється запис; SourceString – рядок, який записується у файл; ReturnCode – код результату виконання операції (0 – немає помилки; 31 – під час спроби здійснити запис був заборонений доступ до пам’яті; 32 – файл не був відкритий);
· Seek – встановлює позицію поточного рядка файлу:
PreviousLinePosition=Seek(DataStream,NewLinePosition)
де DataStream – номер файлу, в якому встановлюється нова позиція поточного рядка; NewLinePosition – нове значення позиції поточного рядка; PreviousLinePosition – попереднє значення поточного рядка; 51 – код помилки: файл не був відкритий;
Процедури динамічного виклику використовуються для виклику функцій, що зберігаються на зовнішніх виконавчих файлах, включаючи бібліотеку DLL:
· Call – викликає зовнішню CDECL -функцію без аргументів:
ReturnCode=Call(ExecutabFileName,FunctionName)
· Call_Integer викликає зовнішню CDECL -функцію з цілочисельним аргументом:
ReturnCode=Call_Integer(ExecutabFileName,FunctionName,Argument)
· Call_String викликає зовнішню CDECL -функцію з одним символьним аргументом (char):
ReturnCode=Call_String(ExecutabFileName,FunctionName,Argument)
· Call_Real викликає зовнішню CDECL -функцію з одним дійсним аргументом (double):
ReturnCode=Call_Real(ExecutabFileName,FunctionName,Argument)
Тут всюди ExecutableFileName – назва модуля (.DLL або.EXE файлу), що містить функцію, яка викликається; FunctionName – назва функції, яка викликається.
Математичні процедури:
· ABS – абсолютне значення: ABS(Expression);
· ATN – арктангенс: ATN(Expression);
· COS – косинус: COS(Expression);
· EXP – експонента: EXP(Expression);
· INT – виділяє цілу частину з відкиданням дробової частини: INT(Expression);
· LOG – натуральний алгоритм: LOG(Expression);
· SIN – синус: SIN(Expression);
· SQR – здобуває квадратний корінь: SQR(Expression);
· TAN – тангенс: TAN(Expression), де всюди Expression – Plus-вираз.
Рядкові процедури виконують операції з рядками:
· Align – вставляє один рядок у інший з вирівнюванням за правим краєм
ReturnString=Align(InsertString, SourceString,Offset)
де InsertString – рядок, який потрібно вставити; SourceRtring – рядок, в який буде вставлений перший рядок; Offset – зміщення у рядку SourceString для першого символа рядка InsertString, починаючи з якого буде вставлятись рядок. Процедура повертає значення Return String, що є результатом запису рядка Insert String у рядок SourceString зі зміщенням Offset;
· Catenate – об’єднує два рядки String 1 i String 2:
ReturnString=Catenate(String1,String2)
· Copies – створює один рядок із декількох копій вихідного рядка:
ReturnString=Copies(SourceString,Count)
де SourceString – рядок, який буде розмножений; Count – кількість копій;
· Datetype – визначає тип даних аргумента;
ReturnString=Datatype(Datum),
де Datum – дані, типи яких необхідно визначити;
· Find – обчислює зміщення одного рядка, що міститься в іншому рядку:
ReturnInteger=Find(TestString, SourceString)
де TestString – рядок для пошуку; SourceString – рядок, в який буде здійснений пошук рядка TestString;
· Left – повертає ліву частину заданого рялдка:
ReturnString=Left(SourceString,MaxCount)
де SourceString – вихідний рядок; MaxCount – максимальна кількість символів у кінцевому рядку.
· Length – підраховує кількість символів у рядку:
ReturnInteger=Length(SourceString)
де SourceString – вихідний рядок;
· Lowercase – переводить усі прописні літери у рядкові:
ReturnString=Lowercase(SourceString)
де SourceString – вихідний рядок;
· Place – вставляє один рядок у інший з вирівнюванням по лівому краю:
ReturnString=Place(InsertString,SourceString,Offset)
де InsertString – рядок, який потрібно вставити; SourceString – рядок, в який буде вставлений перший рядок; Offset – зміщення у рядку SourceString для найлівішого символа рядка InsertString, починаючи з якого буде вставлятись рядок;
· PolyCatenate здійснює об’єднання двох і більше рядків в один рядок:
ReturnString=PolyCatenate(String1,...)
де String1,... – рядки, які об’єднуються послідовно;
· Right –повертає праву частину заданого рядка:
ReturnString=Right(SourceString,MaxCount)
де SourceString –вихідний рядок; MaxCount – максимальна кількість символів у кінцевому рядку
· String – перетворює дані у їх рядковий еквівалент:
ReturnString=String(Datum)
де Datum – вихідні дані;
· StringCompare – порівнює два рядка:
ReturnInteger=StringCompare(String1,String2)
де String1, String2 – рядки, що порівнюються;
· Substring – повертає частину рядка:
ReturnString=Substring(SourceString,Offset,MaxCount)
де SourceString – вихідний рядок; Offset – зміщення першого символу підрядка; MaxCount – максимальна кількість символів у підрядку, що виділяється;
· Trim – видалення пробілів з початку і з кінця рядків:
ReturnString=Trim(SourceString)
де SourceString –вихідний рядок;
· Uppercase – перетворює рядкові літери у великі:
ReturnString=Uppercase(SourceString)
де SourceString –вихідний рядок;
· Value – перетворює рядок у числовий еквівалент:
ReturnReal=Value(Datum)
де Datum – елемент даних, які підлягають перетворенню;
· Word – виймає слово із рядка:
ReturnString=Word(SourceString,WordNumber)
де SourceString – вихідний рядок; WordNumber – порядковий номер слова в рядку SourceString.
Процедури запиту стану транзакта повертають інформацію про стан транзакта, що є у моделі:
· QueryXNExist – повертає 1, якщо транзакт є в моделі, інакше – 0:
QueryXNExist(TransactionNumber);
· QueryXNParameter – повертає значення параметра транзакту:
QueryXNParameter (TransactionNumber,Parameter);
де Parameter – номер або назва параметра транзакту;
· QueryXNAssemblySet – повертає номер сімейства транзакту:
QueryXNAssemblySet (TransactionNumber);
· QueryXNPriority – повертає пріоритет транзакту:
QueryXNPriority (TransactionNumber);
· QueryXNМ1 – повертає час входу транзакту в систему: