Category Archives: CDS_LIB

Библиотека SysLibStr.lib CoDeSys 2.3

Данная библиотека обеспечивает функции манипулирования строками. Нижеописанные

функции доступны, если они поддержаны в системе исполнения. Исполнение функций

происходит синхронно.

Сравнение строк:

  • SysStrCmp
  • SysStrCmpI
  • SysStrCmpN
  • SysStrCmpNI

Копирование строк:

  • SysStrCpy

Определение длины строки:

  • SysStrLen

SysStrCmp

Функция типа DINT выполняет лексикографическое сравнение 2х строк. Возвращаемое значение:

Результат < 0 строка 1 меньше чем строка 2;

Результат = 0 строки равны;

Результат > 0 строка 1 больше чем строка 2;

Входные переменные: sString1, sString2

Тип данных: STRING

Описание: Первая строка, Вторая строка

 

SysStrCmpI

Функция типа DINT выполняет сравнение 2х строк, без учета регистра. Возвращаемое значение:

Результат < 0 строка 1 меньше чем строка 2;

Результат = 0 строки равны;

Результат > 0 строка 1 больше чем строка 2;

Входные переменные: sString1, sString2

Тип данных: STRING

Описание: Первая строка, Вторая строка

 

SysStrCmpN

Функция типа DINT выполняет сравнение 2х строк, с учетом не более первых diChars символов.

Возвращаемое значение:

Результат < 0 строка 1 меньше чем строка 2;

Результат = 0 строки равны;

Результат > 0 строка 1 больше чем строка 2;

Входные переменные: sString1, sString2, diChars

Тип данных: STRING, STRING, DINT

Описание: Первая строка, Вторая строка, Число сравниваемых символов

 

SysStrCmpNI

Функция типа DINT выполняет сравнение 2х строк, с учетом не более первых diChars символов и без учета регистра.

Возвращаемое значение:

Результат < 0 строка 1 меньше чем строка 2;

Результат = 0 строки равны;

Результат > 0 строка 1 больше чем строка 2;

Входные переменные: sString1, sString2, diChars

Тип данных: STRING, STRING, DINT

Описание: Первая строка, Вторая строка, Число сравниваемых символов

 

SysStrCpy

Функция типа DWORD копирует строку sString2 в строку sString1. Возвращает указатель на sString1.

Входные переменные: sString1, sString2, diChars

Тип данных: STRING, STRING, DINT

Описание: Первая строка, Вторая строка, Число сравниваемых символов

 

SysStrLen

Функция типа DINT вычисляет длину строки. Возвращает число символов в строке,

исключая завершающий ноль.

Входные переменные: sString1

Тип данных: STRING

Описание: Первая строка

 

    Библиотека SysLibTasks.lib CoDeSys 2.3

    Данная библиотека позволяет управлять задачами, если это поддержано целевой системой. Под управлением подразумевается создание, удаление, изменение приоритета, останов и перезапуск задач. (Получить информацию о МЭК задаче позволяет библиотека SysLibIECTasks.lib.)

     

    Функции управления задачами:

    • SysTaskCreate
    • SysTaskDestroy
    • SysTaskGetInfo
    • SysTaskGetPriority
    • SysTaskSetPriority
    • SysTaskSuspend
    • SysTaskResume

     

    Функции для применения внутри задач:

    • SysTaskSleep
    • SysTaskEnd
    • SysTaskGetCurrent
    • SysTaskCreate

     

    Функция типа UDINT, создает новую задачу. Возвращает уникальный Id номер задачи, необходимый при вызове других функций SysLibTask.lib.

    SysTaskCreate

    Функция типа UDINT, создает новую задачу. Возвращает уникальный Id номер задачи,необходимый при вызове других функций SysLibTask.lib.

    SysTaskDestroy

    Функция типа BOOL, используется для удаления задачи. Возвращает TRUE при успешном завершении, иначе FALSE.

    SysTaskGetInfo

    Функция типа BOOL, используется для получения информации о задаче по ее Id

    идентификатору.

    Элементы структуры SysTaskInfo:

    dwHandle: DWORD; ОС дескриптор задачи

    dwId: DWORD; Индекс задачи

    dwSem: DWORD; Зарезервировано для использования системой исполнения

    wIECTaskNr: WORD; Индекс МЭК задачи, если это МЭК задача.

    stName: STRING; Имя задачи

    SysTaskGetPriority

    Функция типа BYTE, возвращает приоритет задачи по ее Id идентификатору.

    Приоритет имеет значение между 0 (наивысший) и 255 (самый низкий).

    SysTaskSetPriority

    Функция типа BOOL, используется для задания приоритета задачи. Возвращает TRUE при успешном завершении, иначе FALSE. Приоритет имеет значение между 0 (наивысший) и 255 (самый низкий).

    SysTaskSuspend

    Функция типа BOOL, используется для приостановки задачи. Возвращает TRUE при успешном завершении, иначе FALSE. Для возобновления работы задачи, используйте функцию SysTaskResume.

    SysTaskResume

    Функция типа BOOL, используется для возобновления работы задачи, приостановленной функцией SysTaskSuspend. Возвращает TRUE при успешном завершении, иначе FALSE.

    SysTaskSleep

    Функция типа BOOL, используется для приостановки работы задачи на заданное время. Возвращает TRUE при успешном завершении, иначе FALSE.

    SysTaskEnd

    Функция типа BOOL, должна вызываться из задачи для ее завершения.

    SysTaskGetCurrent

    Функция типа UDINT вызывается из задачи для определения ее Id.

     

      Библиотека SysLibTime для CoDeSys 2.3

      Описание библиотеки.

       

      Библиотека SysLibTime предназначена для установки и считывания системного времени ПЛК. Библиотека сдержит в себе два функциональных блока:

      1. CurTime – это урезанный вариант CurTimeEx. Считывает время, прошедшее с момента загрузки ПЛК. Содержит себе структуру типа «SysTime64».
        SysTime: SysTime64;
      SysTime ulHigh: dword; Содержит 0
      ulLow: dword; Содержит время с момента загрузки ПЛК в миллисекундах

       

      2.  CurTimeEx – это полный набор данных, там содержится не только время, прошедшее с момента загрузки ПЛК, но и дата и время. В этом функциональном блоке содержится две структуры, одна типа «SysTime64», другая типа «SystemTimeDate»:

      SysTime: SysTime64;

      Data_Time: SystemTimeDate;

      Data_Time Hour: uint; Часы
      Minute: uint; Минуты.
      Second: uint; Секунды.
      Milliseconds: uint; Миллисекунды.
      Day: uint; Число.
      Month: uint; Месяц.
      Year: uint; Год.
      DayOfWeek: uint; День недели – числа от нуля до 6. 0 – воскресенье.
      DwHighMsec: dword;
      DwLowMSecs: dword;

       

      Примеры использования библиотеки.

      Для чтения и записи данных из функциональных блоков CurTime и CurTimeEx – необходимо создать конструкции, которые используются в самом функциональном блоке, для «CurTime» — «SysTime64», а для «CurTimeEx» — «SysTime64» и «SystemTimeDate».

      PROGRAM Get_time

      VAR

      TimeAndDate: SystemTimeDate;

      Sys_Time: SysTime64;

      GetTime: CurTimeEx;

      END_VAR

      Данный функциональный блок работает следующим образом: он анализирует состояние переменных на входе-выходе. Если переменные имеют значение «0» то производиться запись в эти переменные, а если переменные имеют какое-то значение отличное от нуля, то производиться чтение из них.

      Тоесть что бы произвести чтение времени необходимо сначала обнулить конструкцию, а что бы записать данные необходимо присвоить данные в эту же конструкцию, поскольку переменные функционального блока CurTimeEx предназначены как для чтения, так и для записи.

      Получение системного времени:

      Возьмем конструкции «TimeAndDate» и «Sys_Time» — запишем в них нули:

      TimeAndDate.Day :=0; TimeAndDate.DayOfWeek :=0; TimeAndDate.dwHighMsec :=0;

      TimeAndDate.dwLowMSecs :=0; TimeAndDate.Milliseconds :=0; TimeAndDate.Minute :=0; TimeAndDate.Second :=0; TimeAndDate.Hour :=0; TimeAndDate.Year :=0; TimeAndDate.Month :=0;

       

      Sys_time.ulHigh :=0; Sys_time.ulLow :=0;

       

      Затем, когда конструкции равны нулю, поставим их на вход-выход функционального блока CurTimeEx:

      GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);

      В последствии конструкция «Sys_Time» и «TimeAndDate» примут значения времени, даты и системного цикла.

      Установка системного времени:

      Для установки, необходимо в структуру «TimeAndDate» записать значение времени:

      TimeAndDate.Hour := 12; TimeAndDate.Minute := 30; TimeAndDate.Second := 15;

      После чего функция

      GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);

      Запишет эти значения в систему.