Чтение записи данных из ведомого DP-устройства с помощью SFB52 "RDREC"
Интерфейс SFB52 идентичен FB "RDREC", определенному стандартом "PROFIBUS Guideline PROFIBUS Communication and Proxy Function Blocks according to IEC 61131-3" ("Принципы PROFIBUS в коммуникациях PROFIBUS и Proxy FB в соответствии со стандартом IEC 61131-3")
С помощью SFB52 "RDREC" (read record [читать запись]) Вы можете считать запись данных с номером INDEX из ведомого компонента DP (один или несколько модулей), который может быть адресован посредством ID.
Определите в параметре MLEN максимальное число байтов для считывания информации. Если выходной параметр VALID имеет значение TRUE (ИСТИНА), то запись данных успешно считана в целевую область RECORD. В таком случае выходной параметр LEN возвращает значение длины выбранных данных в байтах.
Выходной параметр ERROR показывает, были ли ошибки при передаче записи данных. Если были ошибки, то выходной параметр STATUS содержит информацию об ошибках.
Принцип работы
SFB52 "RDREC" выполняется асинхронно, что означает, что выполнение может перекрывать несколько вызовов. Запуск задания производится с REQ = 1.
Состояние (status) задания отображается посредством выходного параметра BUSY и байтов 2 и 3 выходного параметра STATUS. Байты 2 и 3 параметра STATUS соответственно связаны с выходным параметром RET_VAL асинхронно работающих SFC (см. также значения REQ, RET_VAL и BUSY асинхронно работающих SFC).
Передача записи данных завершена, если выходной параметр BUSY = FALSE (ЛОЖЬ).
Параметр | Описание | Тип данных | Область памяти | Характеристика |
---|---|---|---|---|
REQ | INPUT | BOOL | I, Q, M, D, L, константа | REQ = 1: Запрос на передачу записи данных |
ID | INPUT | DWORD | I, Q, M, D, L, константа | Логический адрес ведомого DP-компонента (модуля) |
INDEX | INPUT | INT | I, Q, M, D, L, константа | Номер записи данных |
MLEN | INPUT | INT | I, Q, M, D, L, константа | Максимальная длина в байтах записи данных для выборки |
VALID | OUTPUT | BOOL | I, Q, M, D, L | Новая запись данных была корректно принята |
BUSY | OUTPUT | BOOL | I, Q, M, D, L | BUSY = 1: Чтение еще не закончилось |
ERROR | OUTPUT | BOOL | I, Q, M, D, L | ERROR = 1: Произошла ошибка чтения |
STATUS | OUTPUT | DWORD | I, Q, M, D, L | ID вызова (байты 2 и 3) или код ошибки |
LEN | OUTPUT | INT | I, Q, M, D, L | Длина в байтах выбранной записи данных |
RECORD | IN_OUT | ANY | I, Q, M, D, L | Область назначения для считываемой записи данных |
информацию об ошибках подробнее можно увидеть в разделе "Получение прерывания от ведомого DP-устройства посредством SFB54 "RALRM".
Внесение записи данных в ведомый DP-компонент с помощью SFB53 "WRREC"
Интерфейс SFB53 идентичен FB "WRREC", определенному стандартом "PROFIBUS Guideline PROFIBUS Communication and Proxy Function Blocks according to IEC 61131-3" ("Принципы PROFIBUS в коммуникациях PROFIBUS и Proxy FB в соответствии со стандартом IEC 61131-3").
С помощью SFB53 "WRREC" (write record [сделать запись]) Вы можете сделать запись данных с номером INDEX в ведомый компонент DP (модуль), который может быть адресован посредством ID. Определите длину в байтах для передачи записи. Выбранная длина в исходной области RECORD будет составлять по крайней мере размер в байтах LEN. Значение TRUE (ИСТИНА) выходного параметра DONE означает, что запись данных была успешно передана в ведомый компонент DP. Выходной параметр ERROR показывает, были ли ошибки при передаче записи данных. Если были ошибки, то выходной параметр STATUS содержит информацию об ошибках.
Как работает
SFB53 "WRREC" выполняется асинхронно, что означает, что выполнение может перекрывать несколько вызовов. Запуск задания производится с REQ = 1.
Состояние (status) задания отображается посредством выходного параметра BUSY и байтов 2 и 3 выходного параметра STATUS. Байты 2 и 3 параметра STATUS соответственно связаны с выходным параметром RET_VAL асинхронно работающих SFC (см. также значения REQ, RET_VAL и BUSY асинхронно работающих SFC).
Учтите, что Вы должны назначить одинаковые значения для фактического параметра RECORD для всех вызовов SFB53, относящихся одному и тому же заданию. Это же относится к значениям параметра LEN.
Передача записи данных завершена, если выходной параметр BUSY = FALSE (ЛОЖЬ).
Параметр | Описание | Тип данных | Область памяти | Характеристика |
---|---|---|---|---|
REQ | INPUT | BOOL | I, Q, M, D, L, константа |
REQ = 1: Запрос на передачу записи данных |
ID | INPUT | DWORD | I, Q, M, D, L, константа |
Логический адрес ведомого DP-компонента (модуля). |
INDEX | INPUT | INT | I, Q, M, D, L, константа | Номер записи данных. |
LEN | INPUT | INT | I, Q, M, D, L, константа | Максимальная длина в байтах записи данных для передачи. |
DONE | OUTPUT | BOOL | I, Q, M, D, L | Запись данных была корректно передана. |
BUSY | OUTPUT | BOOL | I, Q, M, D, L | BUSY = 1: Передача записи еще не закончилось |
ERROR | OUTPUT | BOOL | I, Q, M, D, L | ERROR = 1: Произошла ошибка передачи записи |
STATUS | OUTPUT | DWORD | ID вызова (байты 2 и 3) или код ошибки | |
RECORD | IN_OUT | ANY | Запись данных |
информацию об ошибках подробнее можно увидеть в разделе "Получение прерывания от ведомого DP-устройства посредством SFB54 "RALRM".
<-- Предыдущая статья | Следующая статья --> |