Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
31.08.2025
Размер:
5.84 Mб
Скачать

Приложение D: Библиотеки CoDeSys

Приложение D: Библиотеки CoDeSys

Стандартная библиотека Standard.lib

Строковые функции

Внимание: В многозадачных проектах необходимо сосредоточить всю работу со строками в одной задаче. При одновременном вызове одной и той же строковой функции из нескольких параллельных процессов возможно нарушение ее работы (перекрытие данных).

LEN

Возвращает длину строки.

Аргумент STR типа STRING, возвращаемое значение типа INT.

Пример IL:

LD

'SUSI'

LEN

 

ST

VarINT1 (* Результат: 4 *)

Пример FBD:

Пример ST:

VarSTRING1 := LEN (‘SUSI’);

LEFT

Возвращает левую значимую часть строки заданной длины.

Входная строка STR типа STRING, размер SIZE типа INT, возвращаемое значение STRING.

LEFT (STR, SIZE) означает: взять первых SIZE символов от строки STR.

Пример IL:

LD

'SUSI'

 

LEFT

3

 

ST

VarSTRING1

(* Результат ‘SUS’ *)

Пример FBD:

Пример ST:

VarSTRING1 := LEFT (‘SUSI’,3);

RIGHT

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

Входная строка STR типа STRING, размер SIZE типа INT, возвращаемое значение STRING.

CoDeSys V2.3

10-42

Приложение D: Библиотеки CoDeSys

RIGHT (STR, SIZE) означает: взять последних SIZE символов от строки STR

Пример IL:

LD

'SUSI'

RIGHT

3

ST

VarSTRING1 (*Результат: ‘USI’ *)

Пример FBD:

Пример ST:

VarSTRING1 := RIGHT (‘SUSI’,3);

MID

Возвращает часть строки с указанной позиции указанной длины.

Входная строка STR типа STRING, размер LEN и POS типа INT, возвращаемое значение STRING.

MID (STR, LEN, POS) означает: вырезать LEN символов из STR строки, начиная с POS.

Пример IL:

LD

'SUSI'

 

RIGHT

2,2

 

ST

VarSTRING1

(* Результат: ‘US’ *)

Пример FBD:

Пример ST:

VarSTRING1 := MID (‘SUSI’,2,2);

CONCAT

Конкатенация (объединение) двух строк.

Обе входных строки STR1 и STR2 как и результат типа STRING.

Пример IL:

LD

'SUSI'

CONCAT

‘WILLI’

ST

VarSTRING1 (* Результат: ‘SUSIWILLI’ *)

Пример FBD:

Пример ST:

VarSTRING1 := CONCAT (‘SUSI’,’WILLI’);

CoDeSys V2.3

10-43

Приложение D: Библиотеки CoDeSys

Обратите внимание: Функция CONCAT не работает при более чем 5 вложениях.

INSERT

INSERT вставляет строку в указанную позицию другой строки.

Входные переменные STR1 и STR2 - типа STRING, POS - типа INT, возвращаемое значение -

строка STRING.

INSERT(STR1, STR2, POS) означает: вставить STR2 в STR1 в позиции POS.

Пример IL:

LD

'SUSI'

INSERT

‘XY’,2

ST

VarSTRING1 (* Результат: ‘SUXYSI’ *)

Пример FBD:

Пример ST:

VarSTRING1 := INSERT (‘SUSI’,’XY’,2);

DELETE

DELETE удаляет часть строки с указанной позиции.

Входные переменные STR типа STRING, LEN и POS типа INT, возвращаемое значение строка

STRING.

DELETE(STR, L, P) означает: удалить L символов из STR, начиная с позиции P.

Пример IL:

LD

'SUXYSI'

 

DELETE

2,23

 

ST

Var1

(* Результат: ‘SUSI’ *)

Пример FBD:

Пример ST:

Var1 := DELETE (‘SUXYSI’,2,3);

REPLACE

REPLACE заменяет часть строки другой строкой с указанной позиции заданной длины.

Входные переменные STR1 и STR2 типа STRING, LEN и POS типа INT, возвращаемое значение строка STRING.

CoDeSys V2.3

10-44

Приложение D: Библиотеки CoDeSys

REPLACE(STR1, STR2, L, P) означает: заменить L символов строки STR1 на STR2 начиная с позиции P.

Пример IL:

LD

'SUXYSI'

 

REPLACE

'K', 2,2

 

ST

VarSTRING1

(* Результат: ‘SKYSI’ *)

Пример FBD:

Пример ST:

VarSTRING1 := REPLACE (‘SUXYSI’,’K’,2,2);

FIND

FIND ищет заданный контекст в строке.

Входные переменные STR1 и STR2 типа STRING, возвращаемое значение INT.

FIND(STR1, STR2) означает: найти позицию в строке STR1, где впервые встречается подстрока

STR2.

Нумерация позиций в строке начинается с 1. Если STR2 не найдена, STR1 возвращает 0.

Пример IL:

LD

'SUXYSI'

 

FIND

'XY'

 

ST

VarINT1

(* Результат: ‘3’ *)

Пример FBD:

Пример ST:

VarINT1 := FIND (‘SUXYSI’,’XY’);

Переключатели

SR

Переключатель с доминантой включения: Q1 = SR (SET1, RESET) означает:

Q1 = (NOT RESET AND Q1) OR SET1

Входные переменные SET1 и RESET - как и выходная переменная Q1 типа BOOL.

Пример объявления:

SRInst : SR ;

Пример IL:

CoDeSys V2.3

10-45

 

Приложение D: Библиотеки CoDeSys

CAL

SRInst(SET1 := VarBOOL1, RESET := VarBOOL2)

LD

SRInst.Q1

ST

VarBOOL3

Пример FBD:

Пример ST:

SRInst(SET1:= VarBOOL1 , RESET:=VarBOOL2 );

VarBOOL3 := SRInst.Q1 ;

RS

Переключатель с доминантой выключения:

Q1 = RS (SET, RESET1) означает:

Q1 = NOT RESET1 AND (Q1 OR SET)

Входные переменные SET и RESET1 - как и выходная переменная Q1 типа BOOL.

Пример объявления:

RSInst : RS ;

Пример IL:

CAL

RSInst(SET := VarBOOL1, RESET1 := VarBOOL2)

LD

RSInst.Q1

ST

VarBOOL3

Пример FBD:

Пример ST:

RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 );

VarBOOL3 := RSInst.Q1 ;

SEMA

Программный семафор.

BUSY = SEMA(CLAIM, RELEASE) означает: BUSY := X;

IF CLAIM THEN X:=TRUE;

ELSE IF RELEASE THEN BUSY := FALSE; X:= FALSE; END_IF

X - это внутренняя BOOL переменная, изначально имеющая значение FALSE.

CoDeSys V2.3

10-46